git log -1 --format="%H" > githash.txt ldc2 src/common/messages.d src/common/socket.d src/common/constants.d src/common/dcd_version.d src/client/client.d msgpack-d/src/msgpack.d -Imsgpack-d/src -Imsgpack-d/src -Icontainers/experimental_allocator/src -J=. -release -O5 -singleobj -of=bin/dcd-client -v -vv binary /usr/bin/ldc version 0.16.1 (DMD v2.067.1, LLVM 3.7.1) config /etc/ldc2.conf Targeting 'x86_64-unknown-linux-gnu' (CPU 'x86-64' with features '+cx16') predefs LDC all D_Version2 X86_64 D_InlineAsm_X86_64 D_HardFloat LittleEndian D_LP64 linux Posix CRuntime_Glibc LDC_LLVM_307 Building type: real parse messages parse socket parse constants parse dcd_version parse client parse msgpack importall messages import object (/usr/include/dlang/ldc/object.di) import std.socket (/usr/include/dlang/ldc/std/socket.d) import core.stdc.stdint (/usr/include/dlang/ldc/core/stdc/stdint.d) import core.stdc.stddef (/usr/include/dlang/ldc/core/stdc/stddef.d) import core.stdc.signal (/usr/include/dlang/ldc/core/stdc/signal.d) import core.stdc.wchar_ (/usr/include/dlang/ldc/core/stdc/wchar_.d) import core.stdc.config (/usr/include/dlang/ldc/core/stdc/config.d) import core.stdc.stdarg (/usr/include/dlang/ldc/core/stdc/stdarg.d) import core.stdc.stdio (/usr/include/dlang/ldc/core/stdc/stdio.d) import core.stdc.time (/usr/include/dlang/ldc/core/stdc/time.d) import core.sys.posix.sys.types (/usr/include/dlang/ldc/core/sys/posix/sys/types.d) import core.sys.posix.config (/usr/include/dlang/ldc/core/sys/posix/config.d) import core.stdc.string (/usr/include/dlang/ldc/core/stdc/string.d) import std.string (/usr/include/dlang/ldc/std/string.d) import std.uni (/usr/include/dlang/ldc/std/uni.d) import core.stdc.stdlib (/usr/include/dlang/ldc/core/stdc/stdlib.d) import std.traits (/usr/include/dlang/ldc/std/traits.d) import std.typetuple (/usr/include/dlang/ldc/std/typetuple.d) import std.range.primitives (/usr/include/dlang/ldc/std/range/primitives.d) import std.internal.unicode_tables (/usr/include/dlang/ldc/std/internal/unicode_tables.d) import std.format (/usr/include/dlang/ldc/std/format.d) import core.vararg (/usr/include/dlang/ldc/core/vararg.d) import std.exception (/usr/include/dlang/ldc/std/exception.d) import std.range (/usr/include/dlang/ldc/std/range/package.d) import std.range.interfaces (/usr/include/dlang/ldc/std/range/interfaces.d) import std.array (/usr/include/dlang/ldc/std/array.d) import std.functional (/usr/include/dlang/ldc/std/functional.d) import std.algorithm (/usr/include/dlang/ldc/std/algorithm/package.d) import std.algorithm.comparison (/usr/include/dlang/ldc/std/algorithm/comparison.d) import std.typecons (/usr/include/dlang/ldc/std/typecons.d) import std.algorithm.iteration (/usr/include/dlang/ldc/std/algorithm/iteration.d) import std.algorithm.mutation (/usr/include/dlang/ldc/std/algorithm/mutation.d) import std.algorithm.setops (/usr/include/dlang/ldc/std/algorithm/setops.d) import std.algorithm.sorting (/usr/include/dlang/ldc/std/algorithm/sorting.d) import std.algorithm.searching (/usr/include/dlang/ldc/std/algorithm/searching.d) import core.stdc.errno (/usr/include/dlang/ldc/core/stdc/errno.d) import std.conv (/usr/include/dlang/ldc/std/conv.d) import std.ascii (/usr/include/dlang/ldc/std/ascii.d) import core.time (/usr/include/dlang/ldc/core/time.d) import core.exception (/usr/include/dlang/ldc/core/exception.d) import core.internal.traits (/usr/include/dlang/ldc/core/internal/traits.d) import core.sys.posix.time (/usr/include/dlang/ldc/core/sys/posix/time.d) import core.sys.posix.signal (/usr/include/dlang/ldc/core/sys/posix/signal.d) import core.sys.linux.time (/usr/include/dlang/ldc/core/sys/linux/time.d) import core.sys.posix.sys.time (/usr/include/dlang/ldc/core/sys/posix/sys/time.d) import core.sys.posix.sys.select (/usr/include/dlang/ldc/core/sys/posix/sys/select.d) import std.internal.cstring (/usr/include/dlang/ldc/std/internal/cstring.d) import core.sys.posix.netdb (/usr/include/dlang/ldc/core/sys/posix/netdb.d) import core.stdc.inttypes (/usr/include/dlang/ldc/core/stdc/inttypes.d) import core.sys.posix.netinet.in_ (/usr/include/dlang/ldc/core/sys/posix/netinet/in_.d) import core.sys.posix.arpa.inet (/usr/include/dlang/ldc/core/sys/posix/arpa/inet.d) import core.sys.posix.sys.socket (/usr/include/dlang/ldc/core/sys/posix/sys/socket.d) import core.sys.posix.sys.uio (/usr/include/dlang/ldc/core/sys/posix/sys/uio.d) import core.sys.posix.sys.un (/usr/include/dlang/ldc/core/sys/posix/sys/un.d) import core.sys.posix.fcntl (/usr/include/dlang/ldc/core/sys/posix/fcntl.d) import core.sys.posix.sys.stat (/usr/include/dlang/ldc/core/sys/posix/sys/stat.d) import core.sys.posix.unistd (/usr/include/dlang/ldc/core/sys/posix/unistd.d) import core.sys.posix.inttypes (/usr/include/dlang/ldc/core/sys/posix/inttypes.d) import core.sys.posix.netinet.tcp (/usr/include/dlang/ldc/core/sys/posix/netinet/tcp.d) import std.stdio (/usr/include/dlang/ldc/std/stdio.d) import std.stdiobase (/usr/include/dlang/ldc/std/stdiobase.d) importall socket import std.process (/usr/include/dlang/ldc/std/process.d) import core.sys.posix.stdio (/usr/include/dlang/ldc/core/sys/posix/stdio.d) import core.sys.posix.sys.wait (/usr/include/dlang/ldc/core/sys/posix/sys/wait.d) import std.path (/usr/include/dlang/ldc/std/path.d) import std.file (/usr/include/dlang/ldc/std/file.d) import std.datetime (/usr/include/dlang/ldc/std/datetime.d) import core.sys.posix.stdlib (/usr/include/dlang/ldc/core/sys/posix/stdlib.d) import core.sys.posix.dirent (/usr/include/dlang/ldc/core/sys/posix/dirent.d) import core.sys.posix.utime (/usr/include/dlang/ldc/core/sys/posix/utime.d) import std.internal.processinit (/usr/include/dlang/ldc/std/internal/processinit.d) import core.thread (/usr/include/dlang/ldc/core/thread.d) import core.atomic (/usr/include/dlang/ldc/core/atomic.d) import ldc.intrinsics (/usr/include/dlang/ldc/ldc/intrinsics.di) import core.memory (/usr/include/dlang/ldc/core/memory.d) import core.sync.mutex (/usr/include/dlang/ldc/core/sync/mutex.d) import core.sync.exception (/usr/include/dlang/ldc/core/sync/exception.d) import core.sys.posix.pthread (/usr/include/dlang/ldc/core/sys/posix/pthread.d) import core.sys.posix.sched (/usr/include/dlang/ldc/core/sys/posix/sched.d) import core.sys.posix.semaphore (/usr/include/dlang/ldc/core/sys/posix/semaphore.d) importall constants importall dcd_version importall client import std.getopt (/usr/include/dlang/ldc/std/getopt.d) import std.experimental.logger (/usr/include/dlang/ldc/std/experimental/logger/package.d) import std.experimental.logger.core (/usr/include/dlang/ldc/std/experimental/logger/core.d) import std.concurrency (/usr/include/dlang/ldc/std/concurrency.d) import std.variant (/usr/include/dlang/ldc/std/variant.d) import core.sync.condition (/usr/include/dlang/ldc/core/sync/condition.d) import core.sync.config (/usr/include/dlang/ldc/core/sync/config.d) import std.experimental.logger.filelogger (/usr/include/dlang/ldc/std/experimental/logger/filelogger.d) import std.experimental.logger.nulllogger (/usr/include/dlang/ldc/std/experimental/logger/nulllogger.d) import std.experimental.logger.multilogger (/usr/include/dlang/ldc/std/experimental/logger/multilogger.d) importall msgpack semantic messages Building type: uint Building type: ulong Building type: int Building type: ushort Building type: byte Building type: char Building type: long Building type: ubyte Building type: dchar import std.bitmanip (/usr/include/dlang/ldc/std/bitmanip.d) import std.system (/usr/include/dlang/ldc/std/system.d) Building type: float Building type: double import core.bitop (/usr/include/dlang/ldc/core/bitop.d) Building type: short Building type: bool import std.algorithm.internal (/usr/include/dlang/ldc/std/algorithm/internal.d) semantic socket import core.demangle (/usr/include/dlang/ldc/core/demangle.d) Type::getTypeInfo(): const(char[]) Type::getTypeInfo(): const(char[]) Type::getTypeInfo(): const(char[]) Type::getTypeInfo(): const(char[]) semantic constants semantic dcd_version semantic client Type::getTypeInfo(): void Type::getTypeInfo(): void entry main src/client/client.d semantic msgpack semantic2 messages semantic2 socket semantic2 constants semantic2 dcd_version semantic2 client semantic2 msgpack semantic3 messages Type::getTypeInfo(): const(string) Type::getTypeInfo(): const(RequestKind) Type::getTypeInfo(): const(string[]) Type::getTypeInfo(): const(ubyte[]) Type::getTypeInfo(): const(ulong) Type::getTypeInfo(): const(string) Type::getTypeInfo(): const(string) Type::getTypeInfo(): const(string) Type::getTypeInfo(): const(ulong) Type::getTypeInfo(): const(string[]) Type::getTypeInfo(): const(string[]) Type::getTypeInfo(): const(char[]) Type::getTypeInfo(): const(ulong[]) Type::getTypeInfo(): const(string[]) Type::getTypeInfo(): AutocompleteRequest Type::getTypeInfo(): AutocompleteResponse Type::getTypeInfo(): const(uint) Type::getTypeInfo(): const(string) Type::getTypeInfo(): const(ulong[]) Type::getTypeInfo(): const(ulong[]) Type::getTypeInfo(): const(ulong[]) Type::getTypeInfo(): const(ulong[]) Type::getTypeInfo(): const(ulong[]) Type::getTypeInfo(): const(ulong[]) Type::getTypeInfo(): const(ulong[]) Type::getTypeInfo(): const(ulong[]) Type::getTypeInfo(): const(ulong[]) Type::getTypeInfo(): const(ulong[]) Type::getTypeInfo(): const(ulong[]) Type::getTypeInfo(): const(ulong[]) Type::getTypeInfo(): const(ulong[]) Type::getTypeInfo(): const(ulong[]) Type::getTypeInfo(): const(ulong[]) Type::getTypeInfo(): char[] Type::getTypeInfo(): immutable(char) Type::getTypeInfo(): immutable(char) Type::getTypeInfo(): const(uint[]) import std.math (/usr/include/dlang/ldc/std/math.d) import core.stdc.math (/usr/include/dlang/ldc/core/stdc/math.d) import ldc.llvmasm (/usr/include/dlang/ldc/ldc/llvmasm.di) DtoOverloadedIntrinsicName * template instance: llvm_log10!real * template declaration: llvm_log10(T)(T val) * intrinsic name: llvm.log10.f# * final intrinsic name: llvm.log10.f80 DtoOverloadedIntrinsicName * template instance: llvm_log2!real * template declaration: llvm_log2(T)(T val) * intrinsic name: llvm.log2.f# * final intrinsic name: llvm.log2.f80 DtoOverloadedIntrinsicName * template instance: llvm_fabs!real * template declaration: llvm_fabs(T)(T val) * intrinsic name: llvm.fabs.f# * final intrinsic name: llvm.fabs.f80 DtoOverloadedIntrinsicName * template instance: llvm_ceil!real * template declaration: llvm_ceil(T)(T val) * intrinsic name: llvm.ceil.f# * final intrinsic name: llvm.ceil.f80 DtoOverloadedIntrinsicName * template instance: llvm_floor!real * template declaration: llvm_floor(T)(T val) * intrinsic name: llvm.floor.f# * final intrinsic name: llvm.floor.f80 DtoOverloadedIntrinsicName * template instance: llvm_nearbyint!real * template declaration: llvm_nearbyint(T)(T val) * intrinsic name: llvm.nearbyint.f# * final intrinsic name: llvm.nearbyint.f80 DtoOverloadedIntrinsicName * template instance: llvm_rint!real * template declaration: llvm_rint(T)(T val) * intrinsic name: llvm.rint.f# * final intrinsic name: llvm.rint.f80 DtoOverloadedIntrinsicName * template instance: llvm_round!real * template declaration: llvm_round(T)(T val) * intrinsic name: llvm.round.f# * final intrinsic name: llvm.round.f80 DtoOverloadedIntrinsicName * template instance: llvm_trunc!real * template declaration: llvm_trunc(T)(T val) * intrinsic name: llvm.trunc.f# * final intrinsic name: llvm.trunc.f80 DtoOverloadedIntrinsicName * template instance: llvm_copysign!real * template declaration: llvm_copysign(T)(T mag, T sgn) * intrinsic name: llvm.copysign.f# * final intrinsic name: llvm.copysign.f80 Type::getTypeInfo(): char Type::getTypeInfo(): char import std.utf (/usr/include/dlang/ldc/std/utf.d) DtoOverloadedIntrinsicName * template instance: ctlz!ulong * template declaration: ctlz(T)(T v, bool is_zero_undef) * intrinsic name: llvm.ctlz.i# * final intrinsic name: llvm.ctlz.i64 Type::getTypeInfo(): const(uint) Type::getTypeInfo(): const(Intervals!(CowArray!(GcPolicy))) Type::getTypeInfo(): const(uint[]) Type::getTypeInfo(): const(uint[]) Type::getTypeInfo(): const(CowArray!(GcPolicy)) Type::getTypeInfo(): const(int) Type::getTypeInfo(): const(int) Type::getTypeInfo(): const(char) Type::getTypeInfo(): const(ubyte) Type::getTypeInfo(): const(ubyte) Type::getTypeInfo(): const(ubyte) Type::getTypeInfo(): const(ubyte) Type::getTypeInfo(): const(char[]) Type::getTypeInfo(): const(char[]) Type::getTypeInfo(): const(char[]) Type::getTypeInfo(): const(uint[]) Type::getTypeInfo(): const(ulong) Type::getTypeInfo(): const(ubyte[]) Type::getTypeInfo(): const(bool) Type::getTypeInfo(): ubyte[] Type::getTypeInfo(): immutable(TimeZone) Type::getTypeInfo(): const(TimeZone) Type::getTypeInfo(): const(ulong) Type::getTypeInfo(): const(DirHandle[]) Type::getTypeInfo(): const(bool) Type::getTypeInfo(): DirHandle[] Type::getTypeInfo(): const(ulong) Type::getTypeInfo(): const(DirEntry[]) Type::getTypeInfo(): const(bool) Type::getTypeInfo(): DirEntry[] Type::getTypeInfo(): const(DirIteratorImpl) Type::getTypeInfo(): const(ulong) Type::getTypeInfo(): DirIteratorImpl Type::getTypeInfo(): DirIteratorImpl Type::getTypeInfo(): DirIteratorImpl Type::getTypeInfo(): const(ulong) Type::getTypeInfo(): const(char[]) Type::getTypeInfo(): const(bool) Type::getTypeInfo(): const(ulong) Type::getTypeInfo(): const(ulong) Type::getTypeInfo(): const(CowArray!(GcPolicy)) Type::getTypeInfo(): const(ulong) Type::getTypeInfo(): const(ulong) Type::getTypeInfo(): const(uint[]) Type::getTypeInfo(): const(Intervals!(uint[])) Type::getTypeInfo(): const(void*) Type::getTypeInfo(): const(ulong) Type::getTypeInfo(): const(char[]) Type::getTypeInfo(): const(bool) semantic3 socket semantic3 constants semantic3 dcd_version semantic3 client Type::getTypeInfo(): const(string) Type::getTypeInfo(): const(string) Type::getTypeInfo(): const(string) Type::getTypeInfo(): const(ulong) Type::getTypeInfo(): const(ulong) Type::getTypeInfo(): const(Result) Type::getTypeInfo(): const(void*) Type::getTypeInfo(): const(string[]) Type::getTypeInfo(): const(void*) Type::getTypeInfo(): string[] Type::getTypeInfo(): const(SortedRange!(string[], "a < b")) Type::getTypeInfo(): VariantN!32LU[1] Type::getTypeInfo(): ulong Type::getTypeInfo(): float Type::getTypeInfo(): double Type::getTypeInfo(): real Type::getTypeInfo(): const(ulong) Type::getTypeInfo(): const(float) Type::getTypeInfo(): const(double) Type::getTypeInfo(): const(real) Type::getTypeInfo(): ulong Type::getTypeInfo(): ulong Type::getTypeInfo(): ulong Type::getTypeInfo(): void Type::getTypeInfo(): ulong Type::getTypeInfo(): ulong Type::getTypeInfo(): ulong Type::getTypeInfo(): ulong Type::getTypeInfo(): void[] Type::getTypeInfo(): ulong Type::getTypeInfo(): void[] Type::getTypeInfo(): Message Type::getTypeInfo(): Message Type::getTypeInfo(): const(Node*) Type::getTypeInfo(): const(Message) semantic3 msgpack Type::getTypeInfo(): const(ubyte[]) Type::getTypeInfo(): const(ulong) Type::getTypeInfo(): immutable(ulong) Type::getTypeInfo(): immutable(ulong) Type::getTypeInfo(): const(Chunk[]) Type::getTypeInfo(): const(ulong) Type::getTypeInfo(): const(iovec[]) Type::getTypeInfo(): ubyte[] Type::getTypeInfo(): ubyte Type::getTypeInfo(): ubyte Type::getTypeInfo(): const(ubyte[]) Type::getTypeInfo(): const(ulong) Type::getTypeInfo(): const(ulong) Type::getTypeInfo(): const(ulong) Type::getTypeInfo(): const(bool) Type::getTypeInfo(): const(bool) Type::getTypeInfo(): const(bool) Type::getTypeInfo(): const(ulong) Type::getTypeInfo(): const(long) Type::getTypeInfo(): const(real) Type::getTypeInfo(): const(ubyte[]) Type::getTypeInfo(): const(Value) Type::getTypeInfo(): const(ContainerElement) Type::getTypeInfo(): const(Value) Type::getTypeInfo(): const(Value) Type::getTypeInfo(): const(ulong) Type::getTypeInfo(): const(State) Type::getTypeInfo(): const(ulong) Type::getTypeInfo(): const(ulong) Type::getTypeInfo(): const(Container[]) Type::getTypeInfo(): const(Context) Type::getTypeInfo(): const(ubyte[]) Type::getTypeInfo(): const(ulong) Type::getTypeInfo(): const(ulong) Type::getTypeInfo(): const(ulong) Type::getTypeInfo(): const(bool) Type::getTypeInfo(): Value[] Type::getTypeInfo(): const(string) Type::getTypeInfo(): const(DIR*) Type::getTypeInfo(): const(string) Type::getTypeInfo(): const(stat_t) Type::getTypeInfo(): const(uint) Type::getTypeInfo(): const(ubyte) Type::getTypeInfo(): const(bool) Type::getTypeInfo(): const(bool) Type::getTypeInfo(): const(bool) Type::getTypeInfo(): const(SpanMode) Type::getTypeInfo(): const(bool) Type::getTypeInfo(): const(DirEntry) Type::getTypeInfo(): const(Appender!(DirHandle[])) Type::getTypeInfo(): const(Appender!(DirEntry[])) Type::getTypeInfo(): const(string) Type::getTypeInfo(): const(string) Type::getTypeInfo(): const(string) Type::getTypeInfo(): const(bool) Type::getTypeInfo(): const(ulong) Type::getTypeInfo(): const(string[]) Type::getTypeInfo(): const(bool) Type::getTypeInfo(): const(string[]) Type::getTypeInfo(): const(MsgType) Type::getTypeInfo(): const(VariantN!32LU) code messages CodeGenerator::emit(common.messages) * resetting 254609 Dsymbols * *** Initializing D runtime declarations *** * * building runtime module * * Building type: char[] * * Building type: wchar[] * * * Building type: wchar * * Building type: dchar[] * * Building type: object.Object * * * Building class type object.Object @ /usr/include/dlang/ldc/object.di(47) * * * * Instance size: 16 * * * * Building vtbl type for class object.Object * * * * * Building type: object.TypeInfo_Class * * * * * * Building class type object.TypeInfo_Class @ /usr/include/dlang/ldc/object.di(196) * * * * * * * Instance size: 152 * * * * * * * adding default initializer for struct field init * * * * * * * adding default initializer for struct field name * * * * * * * adding default initializer for struct field vtbl * * * * * * * adding default initializer for struct field interfaces * * * * * * * adding default initializer for struct field base * * * * * * * adding default initializer for struct field destructor * * * * * * * adding default initializer for struct field classInvariant * * * * * * * adding default initializer for struct field m_flags * * * * * * * adding default initializer for struct field deallocator * * * * * * * adding default initializer for struct field m_offTi * * * * * * * adding default initializer for struct field defaultConstructor * * * * * * * adding default initializer for struct field m_rtInfo * * * * * * * Building type: byte[] * * * * * * * Building type: string * * * * * * * Building type: void*[] * * * * * * * * Building type: void* * * * * * * * * * Building type: void * * * * * * * Building type: Interface[] * * * * * * * * Building type: Interface * * * * * * * * * Building struct type object.Interface @ /usr/include/dlang/ldc/object.di(97) * * * * * * * * * * adding default initializer for struct field classinfo * * * * * * * * * * adding default initializer for struct field vtbl * * * * * * * * * * adding default initializer for struct field offset * * * * * * * * * * final struct type: %object.Interface = type { %object.TypeInfo_Class*, { i64, i8** }, i64 } * * * * * * * Building type: void function(Object) * * * * * * * * Building type: void(Object) * * * * * * * * * DtoFunctionType(void(Object)) * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: void (%object.Object*) * * * * * * * Building type: ClassFlags * * * * * * * Building type: ClassFlags * * * * * * * Building type: OffsetTypeInfo[] * * * * * * * * Building type: OffsetTypeInfo * * * * * * * * * Building struct type object.OffsetTypeInfo @ /usr/include/dlang/ldc/object.di(104) * * * * * * * * * * adding default initializer for struct field offset * * * * * * * * * * adding default initializer for struct field ti * * * * * * * * * * Building type: object.TypeInfo * * * * * * * * * * * Building class type object.TypeInfo @ /usr/include/dlang/ldc/object.di(110) * * * * * * * * * * * * Instance size: 16 * * * * * * * * * * * * Building vtbl type for class object.TypeInfo * * * * * * * * * * * * * Adding type of object.TypeInfo.toString * * * * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * * * * DtoFunctionType(const pure nothrow @safe string()) * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * Final function type: { i64, i8* } (%object.TypeInfo*) * * * * * * * * * * * * * Adding type of object.TypeInfo.toHash * * * * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * * * * DtoFunctionType(const nothrow @trusted ulong()) * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * Final function type: i64 (%object.TypeInfo*) * * * * * * * * * * * * * Adding type of object.TypeInfo.opCmp * * * * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * * * * DtoFunctionType(int(Object o)) * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * Final function type: i32 (%object.TypeInfo*, %object.Object*) * * * * * * * * * * * * * Adding type of object.TypeInfo.opEquals * * * * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * * * * DtoFunctionType(bool(Object o)) * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * Final function type: i1 (%object.TypeInfo*, %object.Object*) * * * * * * * * * * * * * Adding type of object.TypeInfo.getHash * * * * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * * * * DtoFunctionType(const nothrow @trusted ulong(const(void*) p)) * * * * * * * * * * * * * * Building type: const(void)* * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * Final function type: i64 (%object.TypeInfo*, i8*) * * * * * * * * * * * * * Adding type of object.TypeInfo.equals * * * * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * * * * DtoFunctionType(const bool(const(void*) p1, const(void*) p2)) * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * Final function type: i1 (%object.TypeInfo*, i8*, i8*) * * * * * * * * * * * * * Adding type of object.TypeInfo.compare * * * * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * * * * DtoFunctionType(const int(const(void*) p1, const(void*) p2)) * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * Final function type: i32 (%object.TypeInfo*, i8*, i8*) * * * * * * * * * * * * * Adding type of object.TypeInfo.tsize * * * * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * * * * DtoFunctionType(const pure nothrow @nogc @property @safe ulong()) * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * Final function type: i64 (%object.TypeInfo*) * * * * * * * * * * * * * Adding type of object.TypeInfo.swap * * * * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * * * * DtoFunctionType(const void(void* p1, void* p2)) * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * Final function type: void (%object.TypeInfo*, i8*, i8*) * * * * * * * * * * * * * Adding type of object.TypeInfo.next * * * * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * * * * DtoFunctionType(inout pure nothrow @nogc @property inout(TypeInfo)()) * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * Final function type: %object.TypeInfo* (%object.TypeInfo*) * * * * * * * * * * * * * Adding type of object.TypeInfo.init * * * * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * * * * DtoFunctionType(const pure nothrow @nogc @safe const(void)[]()) * * * * * * * * * * * * * * Building type: const(void)[] * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * Final function type: { i64, i8* } (%object.TypeInfo*) * * * * * * * * * * * * * Adding type of object.TypeInfo.flags * * * * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * * * * DtoFunctionType(const pure nothrow @nogc @property @safe uint()) * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * Final function type: i32 (%object.TypeInfo*) * * * * * * * * * * * * * Adding type of object.TypeInfo.offTi * * * * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * * * * DtoFunctionType(const const(OffsetTypeInfo)[]()) * * * * * * * * * * * * * * Building type: const(OffsetTypeInfo)[] * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * Final function type: { i64, %object.OffsetTypeInfo* } (%object.TypeInfo*) * * * * * * * * * * * * * Adding type of object.TypeInfo.destroy * * * * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * * * * DtoFunctionType(const void(void* p)) * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * Final function type: void (%object.TypeInfo*, i8*) * * * * * * * * * * * * * Adding type of object.TypeInfo.postblit * * * * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * * * * DtoFunctionType(const void(void* p)) * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * Final function type: void (%object.TypeInfo*, i8*) * * * * * * * * * * * * * Adding type of object.TypeInfo.talign * * * * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * * * * DtoFunctionType(const pure nothrow @nogc @property @safe ulong()) * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * Final function type: i64 (%object.TypeInfo*) * * * * * * * * * * * * * Adding type of object.TypeInfo.argTypes * * * * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * * * * DtoFunctionType(nothrow @safe int(out TypeInfo arg1, out TypeInfo arg2)) * * * * * * * * * * * * * * Building type: TypeInfo* * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * Final function type: i32 (%object.TypeInfo*, %object.TypeInfo**, %object.TypeInfo**) * * * * * * * * * * * * * Adding type of object.TypeInfo.rtInfo * * * * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * * * * DtoFunctionType(const pure nothrow @nogc @property @safe immutable(void)*()) * * * * * * * * * * * * * * Building type: immutable(void)* * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * Final function type: i8* (%object.TypeInfo*) * * * * * * * * * * * * class type: %object.TypeInfo = type { %object.TypeInfo.__vtbl*, i8* } * * * * * * * * * * final struct type: %object.OffsetTypeInfo = type { i64, %object.TypeInfo* } * * * * * * * Building vtbl type for class object.TypeInfo_Class * * * * * * * * Adding type of object.TypeInfo.toString * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * DtoFunctionType(const pure nothrow @safe string()) * * * * * * * * Adding type of object.TypeInfo.toHash * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * DtoFunctionType(const nothrow @trusted ulong()) * * * * * * * * Adding type of object.TypeInfo.opCmp * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * DtoFunctionType(int(Object o)) * * * * * * * * Adding type of object.TypeInfo.opEquals * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * DtoFunctionType(bool(Object o)) * * * * * * * * Adding type of object.TypeInfo.getHash * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * DtoFunctionType(const nothrow @trusted ulong(const(void*) p)) * * * * * * * * Adding type of object.TypeInfo.equals * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * DtoFunctionType(const bool(const(void*) p1, const(void*) p2)) * * * * * * * * Adding type of object.TypeInfo.compare * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * DtoFunctionType(const int(const(void*) p1, const(void*) p2)) * * * * * * * * Adding type of object.TypeInfo.tsize * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * DtoFunctionType(const pure nothrow @nogc @property @safe ulong()) * * * * * * * * Adding type of object.TypeInfo.swap * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * DtoFunctionType(const void(void* p1, void* p2)) * * * * * * * * Adding type of object.TypeInfo.next * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * DtoFunctionType(inout pure nothrow @nogc @property inout(TypeInfo)()) * * * * * * * * Adding type of object.TypeInfo.init * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * DtoFunctionType(const pure nothrow @nogc @safe const(void)[]()) * * * * * * * * Adding type of object.TypeInfo.flags * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * DtoFunctionType(const pure nothrow @nogc @property @safe uint()) * * * * * * * * Adding type of object.TypeInfo.offTi * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * DtoFunctionType(const const(OffsetTypeInfo)[]()) * * * * * * * * Adding type of object.TypeInfo.destroy * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * DtoFunctionType(const void(void* p)) * * * * * * * * Adding type of object.TypeInfo.postblit * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * DtoFunctionType(const void(void* p)) * * * * * * * * Adding type of object.TypeInfo.talign * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * DtoFunctionType(const pure nothrow @nogc @property @safe ulong()) * * * * * * * * Adding type of object.TypeInfo.argTypes * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * DtoFunctionType(nothrow @safe int(out TypeInfo arg1, out TypeInfo arg2)) * * * * * * * * Adding type of object.TypeInfo.rtInfo * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * DtoFunctionType(const pure nothrow @nogc @property @safe immutable(void)*()) * * * * * * * * Adding type of object.TypeInfo_Class.info * * * * * * * * Running late semantic3 to infer return type. * * * * * * * * isMember = this is: object.TypeInfo_Class * * * * * * * * DtoFunctionType(const pure nothrow @property @safe const(TypeInfo_Class)()) * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * Final function type: %object.TypeInfo_Class* (%object.TypeInfo_Class*) * * * * * * * * Adding type of object.TypeInfo_Class.typeinfo * * * * * * * * Running late semantic3 to infer return type. * * * * * * * * isMember = this is: object.TypeInfo_Class * * * * * * * * DtoFunctionType(const pure nothrow @property @safe const(TypeInfo_Class)()) * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * Final function type: %object.TypeInfo_Class* (%object.TypeInfo_Class*) * * * * * * * * Adding type of object.TypeInfo_Class.create * * * * * * * * isMember = this is: object.TypeInfo_Class * * * * * * * * DtoFunctionType(const Object()) * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * Final function type: %object.Object* (%object.TypeInfo_Class*) * * * * * * * class type: %object.TypeInfo_Class = type { %object.TypeInfo_Class.__vtbl*, i8*, { i64, i8* }, { i64, i8* }, { i64, i8** }, { i64, %object.Interface* }, %object.TypeInfo_Class*, i8*, void (%object.Object*)*, i32, [4 x i8], i8*, { i64, %object.OffsetTypeInfo* }, i8*, i8* } * * * * * Adding type of object.Object.toString * * * * * isMember = this is: object.Object * * * * * DtoFunctionType(string()) * * * * * * x86-64 ABI: Transforming return type * * * * * * x86-64 ABI: Transforming argument types * * * * * * Final function type: { i64, i8* } (%object.Object*) * * * * * Adding type of object.Object.toHash * * * * * isMember = this is: object.Object * * * * * DtoFunctionType(nothrow @trusted ulong()) * * * * * * x86-64 ABI: Transforming return type * * * * * * x86-64 ABI: Transforming argument types * * * * * * Final function type: i64 (%object.Object*) * * * * * Adding type of object.Object.opCmp * * * * * isMember = this is: object.Object * * * * * DtoFunctionType(int(Object o)) * * * * * * x86-64 ABI: Transforming return type * * * * * * x86-64 ABI: Transforming argument types * * * * * * Final function type: i32 (%object.Object*, %object.Object*) * * * * * Adding type of object.Object.opEquals * * * * * isMember = this is: object.Object * * * * * DtoFunctionType(bool(Object o)) * * * * * * x86-64 ABI: Transforming return type * * * * * * x86-64 ABI: Transforming argument types * * * * * * Final function type: i1 (%object.Object*, %object.Object*) * * * * class type: %object.Object = type { %object.Object.__vtbl*, i8* } * * Building type: object.TypeInfo_AssociativeArray * * * Building class type object.TypeInfo_AssociativeArray @ /usr/include/dlang/ldc/object.di(173) * * * * Instance size: 32 * * * * adding default initializer for struct field value * * * * adding default initializer for struct field key * * * * Building vtbl type for class object.TypeInfo_AssociativeArray * * * * * Adding type of object.TypeInfo.toString * * * * * isMember = this is: object.TypeInfo * * * * * DtoFunctionType(const pure nothrow @safe string()) * * * * * Adding type of object.TypeInfo.toHash * * * * * isMember = this is: object.TypeInfo * * * * * DtoFunctionType(const nothrow @trusted ulong()) * * * * * Adding type of object.TypeInfo.opCmp * * * * * isMember = this is: object.TypeInfo * * * * * DtoFunctionType(int(Object o)) * * * * * Adding type of object.TypeInfo.opEquals * * * * * isMember = this is: object.TypeInfo * * * * * DtoFunctionType(bool(Object o)) * * * * * Adding type of object.TypeInfo.getHash * * * * * isMember = this is: object.TypeInfo * * * * * DtoFunctionType(const nothrow @trusted ulong(const(void*) p)) * * * * * Adding type of object.TypeInfo.equals * * * * * isMember = this is: object.TypeInfo * * * * * DtoFunctionType(const bool(const(void*) p1, const(void*) p2)) * * * * * Adding type of object.TypeInfo.compare * * * * * isMember = this is: object.TypeInfo * * * * * DtoFunctionType(const int(const(void*) p1, const(void*) p2)) * * * * * Adding type of object.TypeInfo.tsize * * * * * isMember = this is: object.TypeInfo * * * * * DtoFunctionType(const pure nothrow @nogc @property @safe ulong()) * * * * * Adding type of object.TypeInfo.swap * * * * * isMember = this is: object.TypeInfo * * * * * DtoFunctionType(const void(void* p1, void* p2)) * * * * * Adding type of object.TypeInfo.next * * * * * isMember = this is: object.TypeInfo * * * * * DtoFunctionType(inout pure nothrow @nogc @property inout(TypeInfo)()) * * * * * Adding type of object.TypeInfo.init * * * * * isMember = this is: object.TypeInfo * * * * * DtoFunctionType(const pure nothrow @nogc @safe const(void)[]()) * * * * * Adding type of object.TypeInfo.flags * * * * * isMember = this is: object.TypeInfo * * * * * DtoFunctionType(const pure nothrow @nogc @property @safe uint()) * * * * * Adding type of object.TypeInfo.offTi * * * * * isMember = this is: object.TypeInfo * * * * * DtoFunctionType(const const(OffsetTypeInfo)[]()) * * * * * Adding type of object.TypeInfo.destroy * * * * * isMember = this is: object.TypeInfo * * * * * DtoFunctionType(const void(void* p)) * * * * * Adding type of object.TypeInfo.postblit * * * * * isMember = this is: object.TypeInfo * * * * * DtoFunctionType(const void(void* p)) * * * * * Adding type of object.TypeInfo.talign * * * * * isMember = this is: object.TypeInfo * * * * * DtoFunctionType(const pure nothrow @nogc @property @safe ulong()) * * * * * Adding type of object.TypeInfo.argTypes * * * * * isMember = this is: object.TypeInfo * * * * * DtoFunctionType(nothrow @safe int(out TypeInfo arg1, out TypeInfo arg2)) * * * * * Adding type of object.TypeInfo.rtInfo * * * * * isMember = this is: object.TypeInfo * * * * * DtoFunctionType(const pure nothrow @nogc @property @safe immutable(void)*()) * * * * class type: %object.TypeInfo_AssociativeArray = type { %object.TypeInfo_AssociativeArray.__vtbl*, i8*, %object.TypeInfo*, %object.TypeInfo* } * * Building type: ModuleInfo * * * Building struct type object.ModuleInfo @ /usr/include/dlang/ldc/object.di(324) * * * * adding default initializer for struct field _flags * * * * adding default initializer for struct field _index * * * * final struct type: %object.ModuleInfo = type { i32, i32 } * * Building type: object.TypeInfo_Struct * * * Building class type object.TypeInfo_Struct @ /usr/include/dlang/ldc/object.di(237) * * * * Instance size: 136 * * * * adding default initializer for struct field name * * * * adding default initializer for struct field m_init * * * * adding default initializer for struct field xtoHash * * * * adding default initializer for struct field xopEquals * * * * adding default initializer for struct field xopCmp * * * * adding default initializer for struct field xtoString * * * * adding default initializer for struct field m_flags * * * * adding default initializer for struct field xdtor * * * * adding default initializer for struct field xpostblit * * * * adding default initializer for struct field m_align * * * * adding default initializer for struct field m_arg1 * * * * adding default initializer for struct field m_arg2 * * * * adding default initializer for struct field m_rtInfo * * * * Building type: void[] * * * * Building type: uint function(const(void*)) pure nothrow @safe * * * * * Building type: pure nothrow @safe uint(const(void*)) * * * * * * DtoFunctionType(pure nothrow @safe uint(const(void*))) * * * * * * * x86-64 ABI: Transforming return type * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * Final function type: i32 (i8*) * * * * Building type: bool function(const(void*), const(void*)) pure nothrow @safe * * * * * Building type: pure nothrow @safe bool(const(void*), const(void*)) * * * * * * DtoFunctionType(pure nothrow @safe bool(const(void*), const(void*))) * * * * * * * x86-64 ABI: Transforming return type * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * Final function type: i1 (i8*, i8*) * * * * Building type: int function(const(void*), const(void*)) pure nothrow @safe * * * * * Building type: pure nothrow @safe int(const(void*), const(void*)) * * * * * * DtoFunctionType(pure nothrow @safe int(const(void*), const(void*))) * * * * * * * x86-64 ABI: Transforming return type * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * Final function type: i32 (i8*, i8*) * * * * Building type: string function(const(void*)) pure nothrow @safe * * * * * Building type: pure nothrow @safe string(const(void*)) * * * * * * DtoFunctionType(pure nothrow @safe string(const(void*))) * * * * * * * x86-64 ABI: Transforming return type * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * Final function type: { i64, i8* } (i8*) * * * * Building type: StructFlags * * * * Building type: StructFlags * * * * Building type: void function(void*) * * * * * Building type: void(void*) * * * * * * DtoFunctionType(void(void*)) * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * Final function type: void (i8*) * * * * Building type: void function(void*) * * * * * Building type: void(void*) * * * * * * DtoFunctionType(void(void*)) * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * Final function type: void (i8*) * * * * Building vtbl type for class object.TypeInfo_Struct * * * * * Adding type of object.TypeInfo.toString * * * * * isMember = this is: object.TypeInfo * * * * * DtoFunctionType(const pure nothrow @safe string()) * * * * * Adding type of object.TypeInfo.toHash * * * * * isMember = this is: object.TypeInfo * * * * * DtoFunctionType(const nothrow @trusted ulong()) * * * * * Adding type of object.TypeInfo.opCmp * * * * * isMember = this is: object.TypeInfo * * * * * DtoFunctionType(int(Object o)) * * * * * Adding type of object.TypeInfo.opEquals * * * * * isMember = this is: object.TypeInfo * * * * * DtoFunctionType(bool(Object o)) * * * * * Adding type of object.TypeInfo.getHash * * * * * isMember = this is: object.TypeInfo * * * * * DtoFunctionType(const nothrow @trusted ulong(const(void*) p)) * * * * * Adding type of object.TypeInfo.equals * * * * * isMember = this is: object.TypeInfo * * * * * DtoFunctionType(const bool(const(void*) p1, const(void*) p2)) * * * * * Adding type of object.TypeInfo.compare * * * * * isMember = this is: object.TypeInfo * * * * * DtoFunctionType(const int(const(void*) p1, const(void*) p2)) * * * * * Adding type of object.TypeInfo.tsize * * * * * isMember = this is: object.TypeInfo * * * * * DtoFunctionType(const pure nothrow @nogc @property @safe ulong()) * * * * * Adding type of object.TypeInfo.swap * * * * * isMember = this is: object.TypeInfo * * * * * DtoFunctionType(const void(void* p1, void* p2)) * * * * * Adding type of object.TypeInfo.next * * * * * isMember = this is: object.TypeInfo * * * * * DtoFunctionType(inout pure nothrow @nogc @property inout(TypeInfo)()) * * * * * Adding type of object.TypeInfo.init * * * * * isMember = this is: object.TypeInfo * * * * * DtoFunctionType(const pure nothrow @nogc @safe const(void)[]()) * * * * * Adding type of object.TypeInfo.flags * * * * * isMember = this is: object.TypeInfo * * * * * DtoFunctionType(const pure nothrow @nogc @property @safe uint()) * * * * * Adding type of object.TypeInfo.offTi * * * * * isMember = this is: object.TypeInfo * * * * * DtoFunctionType(const const(OffsetTypeInfo)[]()) * * * * * Adding type of object.TypeInfo.destroy * * * * * isMember = this is: object.TypeInfo * * * * * DtoFunctionType(const void(void* p)) * * * * * Adding type of object.TypeInfo.postblit * * * * * isMember = this is: object.TypeInfo * * * * * DtoFunctionType(const void(void* p)) * * * * * Adding type of object.TypeInfo.talign * * * * * isMember = this is: object.TypeInfo * * * * * DtoFunctionType(const pure nothrow @nogc @property @safe ulong()) * * * * * Adding type of object.TypeInfo.argTypes * * * * * isMember = this is: object.TypeInfo * * * * * DtoFunctionType(nothrow @safe int(out TypeInfo arg1, out TypeInfo arg2)) * * * * * Adding type of object.TypeInfo.rtInfo * * * * * isMember = this is: object.TypeInfo * * * * * DtoFunctionType(const pure nothrow @nogc @property @safe immutable(void)*()) * * * * class type: %object.TypeInfo_Struct = type { %object.TypeInfo_Struct.__vtbl*, i8*, { i64, i8* }, { i64, i8* }, i32 (i8*)*, i1 (i8*, i8*)*, i32 (i8*, i8*)*, { i64, i8* } (i8*)*, i32, [4 x i8], void (i8*)*, void (i8*)*, i32, [4 x i8], %object.TypeInfo*, %object.TypeInfo*, i8* } * * Building type: void(in Object) * * * DtoFunctionType(void(in Object)) * * * * x86-64 ABI: Transforming argument types * * * * Final function type: void (%object.Object*) * * x86-64 ABI: Transforming argument types * Ignoring Dsymbol::codegen for common.messages.object * Ignoring Dsymbol::codegen for common.messages.std * Ignoring Dsymbol::codegen for common.messages.msgpack * Ignoring EnumDeclaration::codegen: 'common.messages.CompletionType' * Ignoring EnumDeclaration::codegen: 'common.messages.RequestKind' * StructDeclaration::codegen: 'common.messages.AutocompleteRequest' * * Resolving struct type: AutocompleteRequest (src/common/messages.d(84)) * * * Building type: AutocompleteRequest * * * * Building struct type common.messages.AutocompleteRequest @ src/common/messages.d(84) * * * * * adding default initializer for struct field fileName * * * * * adding default initializer for struct field kind * * * * * adding default initializer for struct field importPaths * * * * * adding default initializer for struct field sourceCode * * * * * adding default initializer for struct field cursorPosition * * * * * adding default initializer for struct field searchName * * * * * Building type: RequestKind * * * * * Building type: RequestKind * * * * * Building type: string[] * * * * * Building type: ubyte[] * * * * * final struct type: %common.messages.AutocompleteRequest = type { { i64, i8* }, i16, [6 x i8], { i64, { i64, i8* }* }, { i64, i8* }, i64, { i64, i8* } } * * VarDeclaration::codegen(): 'common.messages.AutocompleteRequest.fileName' * * * DtoResolveVariable(common.messages.AutocompleteRequest.fileName) * * VarDeclaration::codegen(): 'common.messages.AutocompleteRequest.kind' * * * DtoResolveVariable(common.messages.AutocompleteRequest.kind) * * VarDeclaration::codegen(): 'common.messages.AutocompleteRequest.importPaths' * * * DtoResolveVariable(common.messages.AutocompleteRequest.importPaths) * * VarDeclaration::codegen(): 'common.messages.AutocompleteRequest.sourceCode' * * * DtoResolveVariable(common.messages.AutocompleteRequest.sourceCode) * * VarDeclaration::codegen(): 'common.messages.AutocompleteRequest.cursorPosition' * * * DtoResolveVariable(common.messages.AutocompleteRequest.cursorPosition) * * VarDeclaration::codegen(): 'common.messages.AutocompleteRequest.searchName' * * * DtoResolveVariable(common.messages.AutocompleteRequest.searchName) * * Building default initializer for common.messages.AutocompleteRequest * * * Creating initializer constant for AutocompleteRequest * * * * Implicit initializer: fileName @+0 * * * * * DtoConstExpInit(targetType = string, exp = null) * * * * * * NullExp::toConstElem(type=string): null * * * * Implicit initializer: kind @+16 * * * * * DtoConstExpInit(targetType = RequestKind, exp = cast(RequestKind)cast(ushort)0u) * * * * * * IntegerExp::toConstElem: cast(RequestKind)cast(ushort)0u @ RequestKind * * * * * * * Building type: RequestKind * * * * * * * value = i16 0 * * * * Implicit initializer: importPaths @+24 * * * * * DtoConstExpInit(targetType = string[], exp = null) * * * * * * NullExp::toConstElem(type=string[]): null * * * * Implicit initializer: sourceCode @+40 * * * * * DtoConstExpInit(targetType = ubyte[], exp = null) * * * * * * NullExp::toConstElem(type=ubyte[]): null * * * * Implicit initializer: cursorPosition @+56 * * * * * DtoConstExpInit(targetType = ulong, exp = 0LU) * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * value = i64 0 * * * * Implicit initializer: searchName @+64 * * * * * DtoConstExpInit(targetType = string, exp = null) * * * * * * NullExp::toConstElem(type=string): null * * * * adding field fileName * * * * adding field kind * * * * Building type: RequestKind * * * * adding field importPaths * * * * adding field sourceCode * * * * adding field cursorPosition * * * * adding field searchName * * * * final initializer: %common.messages.AutocompleteRequest_init zeroinitializer * * DtoTypeInfoOf(type = 'AutocompleteRequest', base='1') * * * Type::getTypeInfo(): AutocompleteRequest * * * TypeInfoDeclaration::codegen(typeid(AutocompleteRequest)) * * * * type = 'AutocompleteRequest' * * * * typeinfo mangle: _D47TypeInfo_S6common8messages19AutocompleteRequest6__initZ * * * * TypeInfoStructDeclaration::llvmDefine() typeid(AutocompleteRequest) * * * * * DtoResolveClass(object.TypeInfo_Struct): /usr/include/dlang/ldc/object.di(237) * * * * * * DtoResolveClass(object.TypeInfo): /usr/include/dlang/ldc/object.di(110) * * * * * * * DtoResolveClass(object.Object): /usr/include/dlang/ldc/object.di(47) * * * * * DtoFunctionType(nothrow @trusted ulong(ref const(AutocompleteRequest) p)) * * * * * * Building type: const(AutocompleteRequest)* * * * * * * x86-64 ABI: Transforming return type * * * * * * x86-64 ABI: Transforming argument types * * * * * * Final function type: i64 (%common.messages.AutocompleteRequest*) * * * * * DtoResolveFunction(common.messages.AutocompleteRequest.__xtoHash): * * * * * * DtoDeclareFunction(common.messages.AutocompleteRequest.__xtoHash): * * * * * * * DtoFunctionType(nothrow @trusted ulong(ref const(AutocompleteRequest) p)) * * * * * * * func = declare i64 @_D6common8messages19AutocompleteRequest9__xtoHashFNbNeKxS6common8messages19AutocompleteRequestZm(%common.messages.AutocompleteRequest*) * * * * * DtoFunctionType(bool(ref const(AutocompleteRequest) p, ref const(AutocompleteRequest) q)) * * * * * * x86-64 ABI: Transforming return type * * * * * * x86-64 ABI: Transforming argument types * * * * * * Final function type: i1 (%common.messages.AutocompleteRequest*, %common.messages.AutocompleteRequest*) * * * * * DtoResolveFunction(common.messages.AutocompleteRequest.__xopEquals): * * * * * * DtoDeclareFunction(common.messages.AutocompleteRequest.__xopEquals): * * * * * * * DtoFunctionType(bool(ref const(AutocompleteRequest) p, ref const(AutocompleteRequest) q)) * * * * * * * func = declare i1 @_D6common8messages19AutocompleteRequest11__xopEqualsFKxS6common8messages19AutocompleteRequestKxS6common8messages19AutocompleteRequestZb(%common.messages.AutocompleteRequest*, %common.messages.AutocompleteRequest*) * * * * * IntegerExp::toConstElem: cast(void*)305419896LU @ void* * * * * * * pointer * * DtoDefineFunction(common.messages.AutocompleteRequest.__xopEquals): * * * Doing function body for: __xopEquals * * * DtoCreateNestedContext for __xopEquals * * * * DtoCreateNestedContextType for common.messages.AutocompleteRequest.__xopEquals * * * CompoundStatement::toIR(): * * * * ReturnStatement::toIR(): * * * * * AndAndExp::toElem: p.fileName == q.fileName && cast(int)p.kind == cast(int)q.kind && p.importPaths == q.importPaths && p.sourceCode == q.sourceCode && p.cursorPosition == q.cursorPosition && p.searchName == q.searchName @ bool * * * * * * AndAndExp::toElem: p.fileName == q.fileName && cast(int)p.kind == cast(int)q.kind && p.importPaths == q.importPaths && p.sourceCode == q.sourceCode && p.cursorPosition == q.cursorPosition @ bool * * * * * * * AndAndExp::toElem: p.fileName == q.fileName && cast(int)p.kind == cast(int)q.kind && p.importPaths == q.importPaths && p.sourceCode == q.sourceCode @ bool * * * * * * * * AndAndExp::toElem: p.fileName == q.fileName && cast(int)p.kind == cast(int)q.kind && p.importPaths == q.importPaths @ bool * * * * * * * * * AndAndExp::toElem: p.fileName == q.fileName && cast(int)p.kind == cast(int)q.kind @ bool * * * * * * * * * * EqualExp::toElem: p.fileName == q.fileName @ bool * * * * * * * * * * * DotVarExp::toElem: p.fileName @ const(string) * * * * * * * * * * * * VarExp::toElem: p @ const(AutocompleteRequest) * * * * * * * * * * * * * DtoSymbolAddress ('p' of type 'const(AutocompleteRequest)') * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * type: const(AutocompleteRequest) * * * * * * * * * * * * Indexing aggregate field common.messages.AutocompleteRequest.fileName: * * * * * * * * * * * * * Value: %1 = getelementptr %common.messages.AutocompleteRequest, %common.messages.AutocompleteRequest* %p_arg, i32 0, i32 0 * * * * * * * * * * * DotVarExp::toElem: q.fileName @ const(string) * * * * * * * * * * * * VarExp::toElem: q @ const(AutocompleteRequest) * * * * * * * * * * * * * DtoSymbolAddress ('q' of type 'const(AutocompleteRequest)') * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * type: const(AutocompleteRequest) * * * * * * * * * * * * Indexing aggregate field common.messages.AutocompleteRequest.fileName: * * * * * * * * * * * * * Value: %2 = getelementptr %common.messages.AutocompleteRequest, %common.messages.AutocompleteRequest* %q_arg, i32 0, i32 0 * * * * * * * * * * * static or dynamic array * * * * * * * * * * * comparing arrays * * * * * * * * * * * casting to dynamic arrays * * * * * * * * * * * DtoCastArray * * * * * * * * * * * * from array or sarray * * * * * * * * * * * * to array * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * isslice * * * * * * * * * * * DtoCastArray * * * * * * * * * * * * from array or sarray * * * * * * * * * * * * to array * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * isslice * * * * * * * * * * * DtoTypeInfoOf(type = 'string', base='1') * * * * * * * * * * * * Type::getTypeInfo(): string * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(string)) * * * * * * * * * * * * * type = 'string' * * * * * * * * * * * * * typeinfo mangle: _D12TypeInfo_Aya6__initZ * * * * * * * * * * EqualExp::toElem: cast(int)p.kind == cast(int)q.kind @ bool * * * * * * * * * * * CastExp::toElem: cast(int)p.kind @ int * * * * * * * * * * * * DotVarExp::toElem: p.kind @ const(RequestKind) * * * * * * * * * * * * * VarExp::toElem: p @ const(AutocompleteRequest) * * * * * * * * * * * * * * DtoSymbolAddress ('p' of type 'const(AutocompleteRequest)') * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * type: const(AutocompleteRequest) * * * * * * * * * * * * * Indexing aggregate field common.messages.AutocompleteRequest.kind: * * * * * * * * * * * * * * Building type: RequestKind * * * * * * * * * * * * * * Value: %15 = getelementptr %common.messages.AutocompleteRequest, %common.messages.AutocompleteRequest* %p_arg, i32 0, i32 1 * * * * * * * * * * * * Casting from 'ushort' to 'int' * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * CastExp::toElem: cast(int)q.kind @ int * * * * * * * * * * * * DotVarExp::toElem: q.kind @ const(RequestKind) * * * * * * * * * * * * * VarExp::toElem: q @ const(AutocompleteRequest) * * * * * * * * * * * * * * DtoSymbolAddress ('q' of type 'const(AutocompleteRequest)') * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * type: const(AutocompleteRequest) * * * * * * * * * * * * * Indexing aggregate field common.messages.AutocompleteRequest.kind: * * * * * * * * * * * * * * Building type: RequestKind * * * * * * * * * * * * * * Value: %18 = getelementptr %common.messages.AutocompleteRequest, %common.messages.AutocompleteRequest* %q_arg, i32 0, i32 1 * * * * * * * * * * * * Casting from 'ushort' to 'int' * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * integral or pointer or interface * * * * * * * * * * * lv: %17 = zext i16 %16 to i32 * * * * * * * * * * * rv: %20 = zext i16 %19 to i32 * * * * * * * * * EqualExp::toElem: p.importPaths == q.importPaths @ bool * * * * * * * * * * DotVarExp::toElem: p.importPaths @ const(string[]) * * * * * * * * * * * VarExp::toElem: p @ const(AutocompleteRequest) * * * * * * * * * * * * DtoSymbolAddress ('p' of type 'const(AutocompleteRequest)') * * * * * * * * * * * * * function param * * * * * * * * * * * * * type: const(AutocompleteRequest) * * * * * * * * * * * Indexing aggregate field common.messages.AutocompleteRequest.importPaths: * * * * * * * * * * * * Value: %22 = getelementptr %common.messages.AutocompleteRequest, %common.messages.AutocompleteRequest* %p_arg, i32 0, i32 3 * * * * * * * * * * DotVarExp::toElem: q.importPaths @ const(string[]) * * * * * * * * * * * VarExp::toElem: q @ const(AutocompleteRequest) * * * * * * * * * * * * DtoSymbolAddress ('q' of type 'const(AutocompleteRequest)') * * * * * * * * * * * * * function param * * * * * * * * * * * * * type: const(AutocompleteRequest) * * * * * * * * * * * Indexing aggregate field common.messages.AutocompleteRequest.importPaths: * * * * * * * * * * * * Value: %23 = getelementptr %common.messages.AutocompleteRequest, %common.messages.AutocompleteRequest* %q_arg, i32 0, i32 3 * * * * * * * * * * static or dynamic array * * * * * * * * * * comparing arrays * * * * * * * * * * casting to dynamic arrays * * * * * * * * * * DtoCastArray * * * * * * * * * * * Building type: const(string)[] * * * * * * * * * * * from array or sarray * * * * * * * * * * * to array * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * isslice * * * * * * * * * * DtoCastArray * * * * * * * * * * * from array or sarray * * * * * * * * * * * to array * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * isslice * * * * * * * * * * DtoTypeInfoOf(type = 'const(string)[]', base='1') * * * * * * * * * * * Type::getTypeInfo(): const(string)[] * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(const(string)[])) * * * * * * * * * * * * * type = 'const(string)[]' * * * * * * * * * * * * * typeinfo mangle: _D14TypeInfo_AxAya6__initZ * * * * * * * * * * * * * TypeInfoArrayDeclaration::llvmDefine() typeid(const(string)[]) * * * * * * * * * * * * * * DtoResolveClass(object.TypeInfo_Array): /usr/include/dlang/ldc/object.di(150) * * * * * * * * * * * * * * * Building type: object.TypeInfo_Array * * * * * * * * * * * * * * * * Building class type object.TypeInfo_Array @ /usr/include/dlang/ldc/object.di(150) * * * * * * * * * * * * * * * * * Instance size: 24 * * * * * * * * * * * * * * * * * adding default initializer for struct field value * * * * * * * * * * * * * * * * * Building vtbl type for class object.TypeInfo_Array * * * * * * * * * * * * * * * * * * Adding type of object.TypeInfo_Array.toString * * * * * * * * * * * * * * * * * * isMember = this is: object.TypeInfo_Array * * * * * * * * * * * * * * * * * * DtoFunctionType(const pure nothrow @safe string()) * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * Final function type: { i64, i8* } (%object.TypeInfo_Array*) * * * * * * * * * * * * * * * * * * Adding type of object.TypeInfo.toHash * * * * * * * * * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * * * * * * * * * DtoFunctionType(const nothrow @trusted ulong()) * * * * * * * * * * * * * * * * * * Adding type of object.TypeInfo.opCmp * * * * * * * * * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * * * * * * * * * DtoFunctionType(int(Object o)) * * * * * * * * * * * * * * * * * * Adding type of object.TypeInfo_Array.opEquals * * * * * * * * * * * * * * * * * * isMember = this is: object.TypeInfo_Array * * * * * * * * * * * * * * * * * * DtoFunctionType(bool(Object o)) * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * Final function type: i1 (%object.TypeInfo_Array*, %object.Object*) * * * * * * * * * * * * * * * * * * Adding type of object.TypeInfo_Array.getHash * * * * * * * * * * * * * * * * * * isMember = this is: object.TypeInfo_Array * * * * * * * * * * * * * * * * * * DtoFunctionType(const nothrow @trusted ulong(const(void*) p)) * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * Final function type: i64 (%object.TypeInfo_Array*, i8*) * * * * * * * * * * * * * * * * * * Adding type of object.TypeInfo_Array.equals * * * * * * * * * * * * * * * * * * isMember = this is: object.TypeInfo_Array * * * * * * * * * * * * * * * * * * DtoFunctionType(const bool(const(void*) p1, const(void*) p2)) * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * Final function type: i1 (%object.TypeInfo_Array*, i8*, i8*) * * * * * * * * * * * * * * * * * * Adding type of object.TypeInfo_Array.compare * * * * * * * * * * * * * * * * * * isMember = this is: object.TypeInfo_Array * * * * * * * * * * * * * * * * * * DtoFunctionType(const int(const(void*) p1, const(void*) p2)) * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * Final function type: i32 (%object.TypeInfo_Array*, i8*, i8*) * * * * * * * * * * * * * * * * * * Adding type of object.TypeInfo_Array.tsize * * * * * * * * * * * * * * * * * * isMember = this is: object.TypeInfo_Array * * * * * * * * * * * * * * * * * * DtoFunctionType(const pure nothrow @nogc @property @safe ulong()) * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * Final function type: i64 (%object.TypeInfo_Array*) * * * * * * * * * * * * * * * * * * Adding type of object.TypeInfo_Array.swap * * * * * * * * * * * * * * * * * * isMember = this is: object.TypeInfo_Array * * * * * * * * * * * * * * * * * * DtoFunctionType(const void(void* p1, void* p2)) * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * Final function type: void (%object.TypeInfo_Array*, i8*, i8*) * * * * * * * * * * * * * * * * * * Adding type of object.TypeInfo_Array.next * * * * * * * * * * * * * * * * * * isMember = this is: object.TypeInfo_Array * * * * * * * * * * * * * * * * * * DtoFunctionType(inout pure nothrow @nogc @property inout(TypeInfo)()) * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * Final function type: %object.TypeInfo* (%object.TypeInfo_Array*) * * * * * * * * * * * * * * * * * * Adding type of object.TypeInfo.init * * * * * * * * * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * * * * * * * * * DtoFunctionType(const pure nothrow @nogc @safe const(void)[]()) * * * * * * * * * * * * * * * * * * Adding type of object.TypeInfo_Array.flags * * * * * * * * * * * * * * * * * * isMember = this is: object.TypeInfo_Array * * * * * * * * * * * * * * * * * * DtoFunctionType(const pure nothrow @nogc @property @safe uint()) * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * Final function type: i32 (%object.TypeInfo_Array*) * * * * * * * * * * * * * * * * * * Adding type of object.TypeInfo.offTi * * * * * * * * * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * * * * * * * * * DtoFunctionType(const const(OffsetTypeInfo)[]()) * * * * * * * * * * * * * * * * * * Adding type of object.TypeInfo.destroy * * * * * * * * * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * * * * * * * * * DtoFunctionType(const void(void* p)) * * * * * * * * * * * * * * * * * * Adding type of object.TypeInfo.postblit * * * * * * * * * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * * * * * * * * * DtoFunctionType(const void(void* p)) * * * * * * * * * * * * * * * * * * Adding type of object.TypeInfo_Array.talign * * * * * * * * * * * * * * * * * * isMember = this is: object.TypeInfo_Array * * * * * * * * * * * * * * * * * * DtoFunctionType(const pure nothrow @nogc @property @safe ulong()) * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * Final function type: i64 (%object.TypeInfo_Array*) * * * * * * * * * * * * * * * * * * Adding type of object.TypeInfo_Array.argTypes * * * * * * * * * * * * * * * * * * isMember = this is: object.TypeInfo_Array * * * * * * * * * * * * * * * * * * DtoFunctionType(nothrow @safe int(out TypeInfo arg1, out TypeInfo arg2)) * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * Final function type: i32 (%object.TypeInfo_Array*, %object.TypeInfo**, %object.TypeInfo**) * * * * * * * * * * * * * * * * * * Adding type of object.TypeInfo.rtInfo * * * * * * * * * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * * * * * * * * * DtoFunctionType(const pure nothrow @nogc @property @safe immutable(void)*()) * * * * * * * * * * * * * * * * * class type: %object.TypeInfo_Array = type { %object.TypeInfo_Array.__vtbl*, i8*, %object.TypeInfo* } * * * * * * * * * * * * * * DtoTypeInfoOf(type = 'const(string)', base='1') * * * * * * * * * * * * * * * Type::getTypeInfo(): const(string) * * * * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(const(string))) * * * * * * * * * * * * * * * * type = 'const(string)' * * * * * * * * * * * * * * * * typeinfo mangle: _D13TypeInfo_xAya6__initZ * * * * * * * * * * * * * * * * TypeInfoConstDeclaration::llvmDefine() typeid(const(string)) * * * * * * * * * * * * * * * * * DtoResolveClass(object.TypeInfo_Const): /usr/include/dlang/ldc/object.di(273) * * * * * * * * * * * * * * * * * * Building type: object.TypeInfo_Const * * * * * * * * * * * * * * * * * * * Building class type object.TypeInfo_Const @ /usr/include/dlang/ldc/object.di(273) * * * * * * * * * * * * * * * * * * * * Instance size: 24 * * * * * * * * * * * * * * * * * * * * adding default initializer for struct field next * * * * * * * * * * * * * * * * * * * * Building vtbl type for class object.TypeInfo_Const * * * * * * * * * * * * * * * * * * * * * Adding type of object.TypeInfo.toString * * * * * * * * * * * * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(const pure nothrow @safe string()) * * * * * * * * * * * * * * * * * * * * * Adding type of object.TypeInfo.toHash * * * * * * * * * * * * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(const nothrow @trusted ulong()) * * * * * * * * * * * * * * * * * * * * * Adding type of object.TypeInfo.opCmp * * * * * * * * * * * * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(int(Object o)) * * * * * * * * * * * * * * * * * * * * * Adding type of object.TypeInfo.opEquals * * * * * * * * * * * * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(bool(Object o)) * * * * * * * * * * * * * * * * * * * * * Adding type of object.TypeInfo.getHash * * * * * * * * * * * * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(const nothrow @trusted ulong(const(void*) p)) * * * * * * * * * * * * * * * * * * * * * Adding type of object.TypeInfo.equals * * * * * * * * * * * * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(const bool(const(void*) p1, const(void*) p2)) * * * * * * * * * * * * * * * * * * * * * Adding type of object.TypeInfo.compare * * * * * * * * * * * * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(const int(const(void*) p1, const(void*) p2)) * * * * * * * * * * * * * * * * * * * * * Adding type of object.TypeInfo.tsize * * * * * * * * * * * * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(const pure nothrow @nogc @property @safe ulong()) * * * * * * * * * * * * * * * * * * * * * Adding type of object.TypeInfo.swap * * * * * * * * * * * * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(const void(void* p1, void* p2)) * * * * * * * * * * * * * * * * * * * * * Adding type of object.TypeInfo.next * * * * * * * * * * * * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(inout pure nothrow @nogc @property inout(TypeInfo)()) * * * * * * * * * * * * * * * * * * * * * Adding type of object.TypeInfo.init * * * * * * * * * * * * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(const pure nothrow @nogc @safe const(void)[]()) * * * * * * * * * * * * * * * * * * * * * Adding type of object.TypeInfo.flags * * * * * * * * * * * * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(const pure nothrow @nogc @property @safe uint()) * * * * * * * * * * * * * * * * * * * * * Adding type of object.TypeInfo.offTi * * * * * * * * * * * * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(const const(OffsetTypeInfo)[]()) * * * * * * * * * * * * * * * * * * * * * Adding type of object.TypeInfo.destroy * * * * * * * * * * * * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(const void(void* p)) * * * * * * * * * * * * * * * * * * * * * Adding type of object.TypeInfo.postblit * * * * * * * * * * * * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(const void(void* p)) * * * * * * * * * * * * * * * * * * * * * Adding type of object.TypeInfo.talign * * * * * * * * * * * * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(const pure nothrow @nogc @property @safe ulong()) * * * * * * * * * * * * * * * * * * * * * Adding type of object.TypeInfo.argTypes * * * * * * * * * * * * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(nothrow @safe int(out TypeInfo arg1, out TypeInfo arg2)) * * * * * * * * * * * * * * * * * * * * * Adding type of object.TypeInfo.rtInfo * * * * * * * * * * * * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(const pure nothrow @nogc @property @safe immutable(void)*()) * * * * * * * * * * * * * * * * * * * * class type: %object.TypeInfo_Const = type { %object.TypeInfo_Const.__vtbl*, i8*, %object.TypeInfo* } * * * * * * * * * * * * * * * * * DtoTypeInfoOf(type = 'string', base='1') * * * * * * * * * * * * * * * * * * Type::getTypeInfo(): string * * * * * * * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(string)) * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(const(string)[])) * * * * * * * * EqualExp::toElem: p.sourceCode == q.sourceCode @ bool * * * * * * * * * DotVarExp::toElem: p.sourceCode @ const(ubyte[]) * * * * * * * * * * VarExp::toElem: p @ const(AutocompleteRequest) * * * * * * * * * * * DtoSymbolAddress ('p' of type 'const(AutocompleteRequest)') * * * * * * * * * * * * function param * * * * * * * * * * * * type: const(AutocompleteRequest) * * * * * * * * * * Indexing aggregate field common.messages.AutocompleteRequest.sourceCode: * * * * * * * * * * * Value: %46 = getelementptr %common.messages.AutocompleteRequest, %common.messages.AutocompleteRequest* %p_arg, i32 0, i32 4 * * * * * * * * * DotVarExp::toElem: q.sourceCode @ const(ubyte[]) * * * * * * * * * * VarExp::toElem: q @ const(AutocompleteRequest) * * * * * * * * * * * DtoSymbolAddress ('q' of type 'const(AutocompleteRequest)') * * * * * * * * * * * * function param * * * * * * * * * * * * type: const(AutocompleteRequest) * * * * * * * * * * Indexing aggregate field common.messages.AutocompleteRequest.sourceCode: * * * * * * * * * * * Value: %47 = getelementptr %common.messages.AutocompleteRequest, %common.messages.AutocompleteRequest* %q_arg, i32 0, i32 4 * * * * * * * * * static or dynamic array * * * * * * * * * comparing arrays * * * * * * * * * casting to dynamic arrays * * * * * * * * * DtoCastArray * * * * * * * * * * Building type: const(ubyte)[] * * * * * * * * * * from array or sarray * * * * * * * * * * to array * * * * * * * * * * DtoArrayLen * * * * * * * * * * DtoArrayPtr * * * * * * * * * * isslice * * * * * * * * * DtoCastArray * * * * * * * * * * from array or sarray * * * * * * * * * * to array * * * * * * * * * * DtoArrayLen * * * * * * * * * * DtoArrayPtr * * * * * * * * * * isslice * * * * * * * * * DtoTypeInfoOf(type = 'const(ubyte)[]', base='1') * * * * * * * * * * Type::getTypeInfo(): const(ubyte)[] * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(const(ubyte)[])) * * * * * * * * * * * * type = 'const(ubyte)[]' * * * * * * * * * * * * typeinfo mangle: _D12TypeInfo_Axh6__initZ * * * * * * * * * * * * TypeInfoArrayDeclaration::llvmDefine() typeid(const(ubyte)[]) * * * * * * * * * * * * * DtoTypeInfoOf(type = 'const(ubyte)', base='1') * * * * * * * * * * * * * * Type::getTypeInfo(): const(ubyte) * * * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(const(ubyte))) * * * * * * * * * * * * * * * type = 'const(ubyte)' * * * * * * * * * * * * * * * typeinfo mangle: _D11TypeInfo_xh6__initZ * * * * * * * * * * * * * * * TypeInfoConstDeclaration::llvmDefine() typeid(const(ubyte)) * * * * * * * * * * * * * * * * DtoTypeInfoOf(type = 'ubyte', base='1') * * * * * * * * * * * * * * * * * Type::getTypeInfo(): ubyte * * * * * * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(ubyte)) * * * * * * * * * * * * * * * * * * type = 'ubyte' * * * * * * * * * * * * * * * * * * typeinfo mangle: _D10TypeInfo_h6__initZ * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(const(ubyte)[])) * * * * * * * EqualExp::toElem: p.cursorPosition == q.cursorPosition @ bool * * * * * * * * DotVarExp::toElem: p.cursorPosition @ const(ulong) * * * * * * * * * VarExp::toElem: p @ const(AutocompleteRequest) * * * * * * * * * * DtoSymbolAddress ('p' of type 'const(AutocompleteRequest)') * * * * * * * * * * * function param * * * * * * * * * * * type: const(AutocompleteRequest) * * * * * * * * * Indexing aggregate field common.messages.AutocompleteRequest.cursorPosition: * * * * * * * * * * Value: %60 = getelementptr %common.messages.AutocompleteRequest, %common.messages.AutocompleteRequest* %p_arg, i32 0, i32 5 * * * * * * * * DotVarExp::toElem: q.cursorPosition @ const(ulong) * * * * * * * * * VarExp::toElem: q @ const(AutocompleteRequest) * * * * * * * * * * DtoSymbolAddress ('q' of type 'const(AutocompleteRequest)') * * * * * * * * * * * function param * * * * * * * * * * * type: const(AutocompleteRequest) * * * * * * * * * Indexing aggregate field common.messages.AutocompleteRequest.cursorPosition: * * * * * * * * * * Value: %61 = getelementptr %common.messages.AutocompleteRequest, %common.messages.AutocompleteRequest* %q_arg, i32 0, i32 5 * * * * * * * * integral or pointer or interface * * * * * * * * lv: %62 = load i64, i64* %60 * * * * * * * * rv: %63 = load i64, i64* %61 * * * * * * EqualExp::toElem: p.searchName == q.searchName @ bool * * * * * * * DotVarExp::toElem: p.searchName @ const(string) * * * * * * * * VarExp::toElem: p @ const(AutocompleteRequest) * * * * * * * * * DtoSymbolAddress ('p' of type 'const(AutocompleteRequest)') * * * * * * * * * * function param * * * * * * * * * * type: const(AutocompleteRequest) * * * * * * * * Indexing aggregate field common.messages.AutocompleteRequest.searchName: * * * * * * * * * Value: %65 = getelementptr %common.messages.AutocompleteRequest, %common.messages.AutocompleteRequest* %p_arg, i32 0, i32 6 * * * * * * * DotVarExp::toElem: q.searchName @ const(string) * * * * * * * * VarExp::toElem: q @ const(AutocompleteRequest) * * * * * * * * * DtoSymbolAddress ('q' of type 'const(AutocompleteRequest)') * * * * * * * * * * function param * * * * * * * * * * type: const(AutocompleteRequest) * * * * * * * * Indexing aggregate field common.messages.AutocompleteRequest.searchName: * * * * * * * * * Value: %66 = getelementptr %common.messages.AutocompleteRequest, %common.messages.AutocompleteRequest* %q_arg, i32 0, i32 6 * * * * * * * static or dynamic array * * * * * * * comparing arrays * * * * * * * casting to dynamic arrays * * * * * * * DtoCastArray * * * * * * * * from array or sarray * * * * * * * * to array * * * * * * * * DtoArrayLen * * * * * * * * DtoArrayPtr * * * * * * * * isslice * * * * * * * DtoCastArray * * * * * * * * from array or sarray * * * * * * * * to array * * * * * * * * DtoArrayLen * * * * * * * * DtoArrayPtr * * * * * * * * isslice * * * * * * * DtoTypeInfoOf(type = 'string', base='1') * * * * * * * * Type::getTypeInfo(): string * * * * * * * * TypeInfoDeclaration::codegen(typeid(string)) * * * * * return value is '0x120f7a48' * * DtoDefineFunction(common.messages.AutocompleteRequest.__xtoHash): * * * Doing function body for: __xtoHash * * * DtoCreateNestedContext for __xtoHash * * * * DtoCreateNestedContextType for common.messages.AutocompleteRequest.__xtoHash * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): * * * * * ExpStatement::toIR(): * * * * * * DeclarationExp::toElem: ulong h = 0LU; | T=void * * * * * * * DtoDeclarationExp: h * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * llvm value for decl: %h = alloca i64, align 8 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: h = 0LU | (ulong)(ulong = ulong) * * * * * * * * * * VarExp::toElem: h @ ulong * * * * * * * * * * * DtoSymbolAddress ('h' of type 'ulong') * * * * * * * * * * * * a normal variable * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * value = i64 0 * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %h = alloca i64, align 8 * * * * * * * * * * * rhs: i64 0 * * * * * UnrolledLoopStatement::toIR(): * * * * * * ScopeStatement::toIR(): * * * * * * * CompoundStatement::toIR(): * * * * * * * * ExpStatement::toIR(): * * * * * * * * * DeclarationExp::toElem: enum ulong i = 0LU; | T=void * * * * * * * * * * DtoDeclarationExp: i * * * * * * * * * * * VarDeclaration * * * * * * * * * * * Manifest constant, nothing to do. * * * * * * * * ExpStatement::toIR(): * * * * * * * * * DeclarationExp::toElem: alias T = const(string); | T=void * * * * * * * * * * DtoDeclarationExp: T * * * * * * * * * * * Ignoring Symbol: alias * * * * * * * * ExpStatement::toIR(): * * * * * * * * * AddAssignExp::toElem: h += typeid(const(string)).getHash(cast(const(void*))&p.fileName) @ ulong * * * * * * * * * * Caching l-value of h += typeid(const(string)).getHash(cast(const(void*))&p.fileName) => h * * * * * * * * * * * VarExp::toElem: h @ ulong * * * * * * * * * * * * DtoSymbolAddress ('h' of type 'ulong') * * * * * * * * * * * * * a normal variable * * * * * * * * * * AddExp::toElem: h + typeid(const(string)).getHash(cast(const(void*))&p.fileName) @ ulong * * * * * * * * * * * VarExp::toElem: h @ ulong * * * * * * * * * * * CallExp::toElem: typeid(const(string)).getHash(cast(const(void*))&p.fileName) @ ulong * * * * * * * * * * * * DotVarExp::toElem: typeid(const(string)).getHash @ const nothrow @trusted ulong(const(void*) p) * * * * * * * * * * * * * SymOffExp::toElem: typeid(const(string)) @ object.TypeInfo * * * * * * * * * * * * * * DtoSymbolAddress ('typeid(const(string))' of type 'object.TypeInfo_Const') * * * * * * * * * * * * * * * TypeInfoDeclaration * * * * * * * * * * * * * * Casting from 'TypeInfo_Const*' to 'object.TypeInfo' * * * * * * * * * * * * * * * src: %object.TypeInfo_Const* bitcast (%"typeid(const(string))"* @_D13TypeInfo_xAya6__initZ to %object.TypeInfo_Const*) * * * * * * * * * * * * * * * to type: %object.TypeInfo* * * * * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * * * * DtoFunctionType(const nothrow @trusted ulong(const(void*) p)) * * * * * * * * * * * * * DtoResolveFunction(object.TypeInfo.getHash): /usr/include/dlang/ldc/object.di(116) * * * * * * * * * * * * * * DtoDeclareFunction(object.TypeInfo.getHash): /usr/include/dlang/ldc/object.di(116) * * * * * * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * * * * * * DtoFunctionType(const nothrow @trusted ulong(const(void*) p)) * * * * * * * * * * * * * * * func = declare i64 @_D6object8TypeInfo7getHashMxFNbNexPvZm(%object.TypeInfo*, i8*) * * * * * * * * * * * * * vthis: %object.TypeInfo* bitcast (%"typeid(const(string))"* @_D13TypeInfo_xAya6__initZ to %object.TypeInfo*) * * * * * * * * * * * * * funcval: %3 = load i64 (%object.TypeInfo*, i8*)*, i64 (%object.TypeInfo*, i8*)** %"typeid(const(string)).getHash@vtbl", align 8 * * * * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * * * * DtoFunctionType(const nothrow @trusted ulong(const(void*) p)) * * * * * * * * * * * * * funcval casted: %"typeid(const(string)).getHash" = load i64 (%object.TypeInfo*, i8*)*, i64 (%object.TypeInfo*, i8*)** %"typeid(const(string)).getHash@vtbl", align 8 * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * Building type: const nothrow @trusted ulong(const(void*) p) * * * * * * * * * * * * * * DtoFunctionType(const nothrow @trusted ulong(const(void*) p)) * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * Final function type: i64 (i8*) * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * %object.TypeInfo* bitcast (%"typeid(const(string))"* @_D13TypeInfo_xAya6__initZ to %object.TypeInfo*) * * * * * * * * * * * * * Function type: const nothrow @trusted ulong(const(void*) p) * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * CastExp::toElem: cast(const(void*))&p.fileName @ const(void*) * * * * * * * * * * * * * * * AddrExp::toElem: &p.fileName @ const(string)* * * * * * * * * * * * * * * * * DotVarExp::toElem: p.fileName @ const(string) * * * * * * * * * * * * * * * * * VarExp::toElem: p @ const(AutocompleteRequest) * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('p' of type 'const(AutocompleteRequest)') * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * type: const(AutocompleteRequest) * * * * * * * * * * * * * * * * * Indexing aggregate field common.messages.AutocompleteRequest.fileName: * * * * * * * * * * * * * * * * * * Value: %3 = getelementptr %common.messages.AutocompleteRequest, %common.messages.AutocompleteRequest* %p_arg, i32 0, i32 0 * * * * * * * * * * * * * * * * is nothing special * * * * * * * * * * * * * * * * lval: %3 = getelementptr %common.messages.AutocompleteRequest, %common.messages.AutocompleteRequest* %p_arg, i32 0, i32 0 * * * * * * * * * * * * * * * * Building type: const(string)* * * * * * * * * * * * * * * * Casting from 'const(string)*' to 'const(void*)' * * * * * * * * * * * * * * * * src: %3 = getelementptr %common.messages.AutocompleteRequest, %common.messages.AutocompleteRequest* %p_arg, i32 0, i32 0 * * * * * * * * * * * * * * * * to type: i8* * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %h = alloca i64, align 8 * * * * * * * * * * * rhs: %7 = add i64 %6, %5 * * * * * * ScopeStatement::toIR(): * * * * * * * CompoundStatement::toIR(): * * * * * * * * ExpStatement::toIR(): * * * * * * * * * DeclarationExp::toElem: enum ulong i = 1LU; | T=void * * * * * * * * * * DtoDeclarationExp: i * * * * * * * * * * * VarDeclaration * * * * * * * * * * * Manifest constant, nothing to do. * * * * * * * * ExpStatement::toIR(): * * * * * * * * * DeclarationExp::toElem: alias T = const(RequestKind); | T=void * * * * * * * * * * DtoDeclarationExp: T * * * * * * * * * * * Ignoring Symbol: alias * * * * * * * * ExpStatement::toIR(): * * * * * * * * * AddAssignExp::toElem: h += typeid(const(RequestKind)).getHash(cast(const(void*))&p.kind) @ ulong * * * * * * * * * * Caching l-value of h += typeid(const(RequestKind)).getHash(cast(const(void*))&p.kind) => h * * * * * * * * * * * VarExp::toElem: h @ ulong * * * * * * * * * * * * DtoSymbolAddress ('h' of type 'ulong') * * * * * * * * * * * * * a normal variable * * * * * * * * * * AddExp::toElem: h + typeid(const(RequestKind)).getHash(cast(const(void*))&p.kind) @ ulong * * * * * * * * * * * VarExp::toElem: h @ ulong * * * * * * * * * * * CallExp::toElem: typeid(const(RequestKind)).getHash(cast(const(void*))&p.kind) @ ulong * * * * * * * * * * * * DotVarExp::toElem: typeid(const(RequestKind)).getHash @ const nothrow @trusted ulong(const(void*) p) * * * * * * * * * * * * * SymOffExp::toElem: typeid(const(RequestKind)) @ object.TypeInfo * * * * * * * * * * * * * * DtoSymbolAddress ('typeid(const(RequestKind))' of type 'object.TypeInfo_Const') * * * * * * * * * * * * * * * TypeInfoDeclaration * * * * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(const(RequestKind))) * * * * * * * * * * * * * * * * type = 'const(RequestKind)' * * * * * * * * * * * * * * * * typeinfo mangle: _D40TypeInfo_xE6common8messages11RequestKind6__initZ * * * * * * * * * * * * * * * * Building type: RequestKind * * * * * * * * * * * * * * * * TypeInfoConstDeclaration::llvmDefine() typeid(const(RequestKind)) * * * * * * * * * * * * * * * * * DtoTypeInfoOf(type = 'RequestKind', base='1') * * * * * * * * * * * * * * * * * * Type::getTypeInfo(): RequestKind * * * * * * * * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(RequestKind)) * * * * * * * * * * * * * * * * * * * * type = 'RequestKind' * * * * * * * * * * * * * * * * * * * * typeinfo mangle: _D39TypeInfo_E6common8messages11RequestKind6__initZ * * * * * * * * * * * * * * * * * * * * Building type: RequestKind * * * * * * * * * * * * * * * * * * * * TypeInfoEnumDeclaration::llvmDefine() typeid(RequestKind) * * * * * * * * * * * * * * * * * * * * * DtoResolveClass(object.TypeInfo_Enum): /usr/include/dlang/ldc/object.di(140) * * * * * * * * * * * * * * * * * * * * * * DtoResolveClass(object.TypeInfo_Typedef): /usr/include/dlang/ldc/object.di(133) * * * * * * * * * * * * * * * * * * * * * * * Building type: object.TypeInfo_Typedef * * * * * * * * * * * * * * * * * * * * * * * * Building class type object.TypeInfo_Typedef @ /usr/include/dlang/ldc/object.di(133) * * * * * * * * * * * * * * * * * * * * * * * * * Instance size: 56 * * * * * * * * * * * * * * * * * * * * * * * * * adding default initializer for struct field base * * * * * * * * * * * * * * * * * * * * * * * * * adding default initializer for struct field name * * * * * * * * * * * * * * * * * * * * * * * * * adding default initializer for struct field m_init * * * * * * * * * * * * * * * * * * * * * * * * * Building vtbl type for class object.TypeInfo_Typedef * * * * * * * * * * * * * * * * * * * * * * * * * * Adding type of object.TypeInfo.toString * * * * * * * * * * * * * * * * * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(const pure nothrow @safe string()) * * * * * * * * * * * * * * * * * * * * * * * * * * Adding type of object.TypeInfo.toHash * * * * * * * * * * * * * * * * * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(const nothrow @trusted ulong()) * * * * * * * * * * * * * * * * * * * * * * * * * * Adding type of object.TypeInfo.opCmp * * * * * * * * * * * * * * * * * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(int(Object o)) * * * * * * * * * * * * * * * * * * * * * * * * * * Adding type of object.TypeInfo.opEquals * * * * * * * * * * * * * * * * * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(bool(Object o)) * * * * * * * * * * * * * * * * * * * * * * * * * * Adding type of object.TypeInfo.getHash * * * * * * * * * * * * * * * * * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(const nothrow @trusted ulong(const(void*) p)) * * * * * * * * * * * * * * * * * * * * * * * * * * Adding type of object.TypeInfo.equals * * * * * * * * * * * * * * * * * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(const bool(const(void*) p1, const(void*) p2)) * * * * * * * * * * * * * * * * * * * * * * * * * * Adding type of object.TypeInfo.compare * * * * * * * * * * * * * * * * * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(const int(const(void*) p1, const(void*) p2)) * * * * * * * * * * * * * * * * * * * * * * * * * * Adding type of object.TypeInfo.tsize * * * * * * * * * * * * * * * * * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(const pure nothrow @nogc @property @safe ulong()) * * * * * * * * * * * * * * * * * * * * * * * * * * Adding type of object.TypeInfo.swap * * * * * * * * * * * * * * * * * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(const void(void* p1, void* p2)) * * * * * * * * * * * * * * * * * * * * * * * * * * Adding type of object.TypeInfo.next * * * * * * * * * * * * * * * * * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(inout pure nothrow @nogc @property inout(TypeInfo)()) * * * * * * * * * * * * * * * * * * * * * * * * * * Adding type of object.TypeInfo.init * * * * * * * * * * * * * * * * * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(const pure nothrow @nogc @safe const(void)[]()) * * * * * * * * * * * * * * * * * * * * * * * * * * Adding type of object.TypeInfo.flags * * * * * * * * * * * * * * * * * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(const pure nothrow @nogc @property @safe uint()) * * * * * * * * * * * * * * * * * * * * * * * * * * Adding type of object.TypeInfo.offTi * * * * * * * * * * * * * * * * * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(const const(OffsetTypeInfo)[]()) * * * * * * * * * * * * * * * * * * * * * * * * * * Adding type of object.TypeInfo.destroy * * * * * * * * * * * * * * * * * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(const void(void* p)) * * * * * * * * * * * * * * * * * * * * * * * * * * Adding type of object.TypeInfo.postblit * * * * * * * * * * * * * * * * * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(const void(void* p)) * * * * * * * * * * * * * * * * * * * * * * * * * * Adding type of object.TypeInfo.talign * * * * * * * * * * * * * * * * * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(const pure nothrow @nogc @property @safe ulong()) * * * * * * * * * * * * * * * * * * * * * * * * * * Adding type of object.TypeInfo.argTypes * * * * * * * * * * * * * * * * * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(nothrow @safe int(out TypeInfo arg1, out TypeInfo arg2)) * * * * * * * * * * * * * * * * * * * * * * * * * * Adding type of object.TypeInfo.rtInfo * * * * * * * * * * * * * * * * * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(const pure nothrow @nogc @property @safe immutable(void)*()) * * * * * * * * * * * * * * * * * * * * * * * * * class type: %object.TypeInfo_Typedef = type { %object.TypeInfo_Typedef.__vtbl*, i8*, %object.TypeInfo*, { i64, i8* }, { i64, i8* } } * * * * * * * * * * * * * * * * * * * * * * Building type: object.TypeInfo_Enum * * * * * * * * * * * * * * * * * * * * * * * Building class type object.TypeInfo_Enum @ /usr/include/dlang/ldc/object.di(140) * * * * * * * * * * * * * * * * * * * * * * * * Instance size: 56 * * * * * * * * * * * * * * * * * * * * * * * * adding default initializer for struct field base * * * * * * * * * * * * * * * * * * * * * * * * adding default initializer for struct field name * * * * * * * * * * * * * * * * * * * * * * * * adding default initializer for struct field m_init * * * * * * * * * * * * * * * * * * * * * * * * Building vtbl type for class object.TypeInfo_Enum * * * * * * * * * * * * * * * * * * * * * * * * * Adding type of object.TypeInfo.toString * * * * * * * * * * * * * * * * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(const pure nothrow @safe string()) * * * * * * * * * * * * * * * * * * * * * * * * * Adding type of object.TypeInfo.toHash * * * * * * * * * * * * * * * * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(const nothrow @trusted ulong()) * * * * * * * * * * * * * * * * * * * * * * * * * Adding type of object.TypeInfo.opCmp * * * * * * * * * * * * * * * * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(int(Object o)) * * * * * * * * * * * * * * * * * * * * * * * * * Adding type of object.TypeInfo.opEquals * * * * * * * * * * * * * * * * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(bool(Object o)) * * * * * * * * * * * * * * * * * * * * * * * * * Adding type of object.TypeInfo.getHash * * * * * * * * * * * * * * * * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(const nothrow @trusted ulong(const(void*) p)) * * * * * * * * * * * * * * * * * * * * * * * * * Adding type of object.TypeInfo.equals * * * * * * * * * * * * * * * * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(const bool(const(void*) p1, const(void*) p2)) * * * * * * * * * * * * * * * * * * * * * * * * * Adding type of object.TypeInfo.compare * * * * * * * * * * * * * * * * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(const int(const(void*) p1, const(void*) p2)) * * * * * * * * * * * * * * * * * * * * * * * * * Adding type of object.TypeInfo.tsize * * * * * * * * * * * * * * * * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(const pure nothrow @nogc @property @safe ulong()) * * * * * * * * * * * * * * * * * * * * * * * * * Adding type of object.TypeInfo.swap * * * * * * * * * * * * * * * * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(const void(void* p1, void* p2)) * * * * * * * * * * * * * * * * * * * * * * * * * Adding type of object.TypeInfo.next * * * * * * * * * * * * * * * * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(inout pure nothrow @nogc @property inout(TypeInfo)()) * * * * * * * * * * * * * * * * * * * * * * * * * Adding type of object.TypeInfo.init * * * * * * * * * * * * * * * * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(const pure nothrow @nogc @safe const(void)[]()) * * * * * * * * * * * * * * * * * * * * * * * * * Adding type of object.TypeInfo.flags * * * * * * * * * * * * * * * * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(const pure nothrow @nogc @property @safe uint()) * * * * * * * * * * * * * * * * * * * * * * * * * Adding type of object.TypeInfo.offTi * * * * * * * * * * * * * * * * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(const const(OffsetTypeInfo)[]()) * * * * * * * * * * * * * * * * * * * * * * * * * Adding type of object.TypeInfo.destroy * * * * * * * * * * * * * * * * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(const void(void* p)) * * * * * * * * * * * * * * * * * * * * * * * * * Adding type of object.TypeInfo.postblit * * * * * * * * * * * * * * * * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(const void(void* p)) * * * * * * * * * * * * * * * * * * * * * * * * * Adding type of object.TypeInfo.talign * * * * * * * * * * * * * * * * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(const pure nothrow @nogc @property @safe ulong()) * * * * * * * * * * * * * * * * * * * * * * * * * Adding type of object.TypeInfo.argTypes * * * * * * * * * * * * * * * * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(nothrow @safe int(out TypeInfo arg1, out TypeInfo arg2)) * * * * * * * * * * * * * * * * * * * * * * * * * Adding type of object.TypeInfo.rtInfo * * * * * * * * * * * * * * * * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(const pure nothrow @nogc @property @safe immutable(void)*()) * * * * * * * * * * * * * * * * * * * * * * * * class type: %object.TypeInfo_Enum = type { %object.TypeInfo_Enum.__vtbl*, i8*, %object.TypeInfo*, { i64, i8* }, { i64, i8* } } * * * * * * * * * * * * * * * * * * * * * DtoTypeInfoOf(type = 'ushort', base='1') * * * * * * * * * * * * * * * * * * * * * * Type::getTypeInfo(): ushort * * * * * * * * * * * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(ushort)) * * * * * * * * * * * * * * * * * * * * * * * type = 'ushort' * * * * * * * * * * * * * * * * * * * * * * * typeinfo mangle: _D10TypeInfo_t6__initZ * * * * * * * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(RequestKind)) * * * * * * * * * * * * * * Casting from 'TypeInfo_Const*' to 'object.TypeInfo' * * * * * * * * * * * * * * * src: %object.TypeInfo_Const* bitcast (%"typeid(const(RequestKind))"* @_D40TypeInfo_xE6common8messages11RequestKind6__initZ to %object.TypeInfo_Const*) * * * * * * * * * * * * * * * to type: %object.TypeInfo* * * * * * * * * * * * * * vthis: %object.TypeInfo* bitcast (%"typeid(const(RequestKind))"* @_D40TypeInfo_xE6common8messages11RequestKind6__initZ to %object.TypeInfo*) * * * * * * * * * * * * * funcval: %10 = load i64 (%object.TypeInfo*, i8*)*, i64 (%object.TypeInfo*, i8*)** %"typeid(const(RequestKind)).getHash@vtbl", align 8 * * * * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * * * * DtoFunctionType(const nothrow @trusted ulong(const(void*) p)) * * * * * * * * * * * * * funcval casted: %"typeid(const(RequestKind)).getHash" = load i64 (%object.TypeInfo*, i8*)*, i64 (%object.TypeInfo*, i8*)** %"typeid(const(RequestKind)).getHash@vtbl", align 8 * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * %object.TypeInfo* bitcast (%"typeid(const(RequestKind))"* @_D40TypeInfo_xE6common8messages11RequestKind6__initZ to %object.TypeInfo*) * * * * * * * * * * * * * Function type: const nothrow @trusted ulong(const(void*) p) * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * CastExp::toElem: cast(const(void*))&p.kind @ const(void*) * * * * * * * * * * * * * * * AddrExp::toElem: &p.kind @ const(RequestKind)* * * * * * * * * * * * * * * * * DotVarExp::toElem: p.kind @ const(RequestKind) * * * * * * * * * * * * * * * * * VarExp::toElem: p @ const(AutocompleteRequest) * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('p' of type 'const(AutocompleteRequest)') * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * type: const(AutocompleteRequest) * * * * * * * * * * * * * * * * * Indexing aggregate field common.messages.AutocompleteRequest.kind: * * * * * * * * * * * * * * * * * * Building type: RequestKind * * * * * * * * * * * * * * * * * * Value: %10 = getelementptr %common.messages.AutocompleteRequest, %common.messages.AutocompleteRequest* %p_arg, i32 0, i32 1 * * * * * * * * * * * * * * * * is nothing special * * * * * * * * * * * * * * * * lval: %10 = getelementptr %common.messages.AutocompleteRequest, %common.messages.AutocompleteRequest* %p_arg, i32 0, i32 1 * * * * * * * * * * * * * * * * Building type: const(RequestKind)* * * * * * * * * * * * * * * * * * Building type: RequestKind * * * * * * * * * * * * * * * Casting from 'const(RequestKind)*' to 'const(void*)' * * * * * * * * * * * * * * * * src: %10 = getelementptr %common.messages.AutocompleteRequest, %common.messages.AutocompleteRequest* %p_arg, i32 0, i32 1 * * * * * * * * * * * * * * * * to type: i8* * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %h = alloca i64, align 8 * * * * * * * * * * * rhs: %14 = add i64 %13, %12 * * * * * * ScopeStatement::toIR(): * * * * * * * CompoundStatement::toIR(): * * * * * * * * ExpStatement::toIR(): * * * * * * * * * DeclarationExp::toElem: enum ulong i = 2LU; | T=void * * * * * * * * * * DtoDeclarationExp: i * * * * * * * * * * * VarDeclaration * * * * * * * * * * * Manifest constant, nothing to do. * * * * * * * * ExpStatement::toIR(): * * * * * * * * * DeclarationExp::toElem: alias T = const(string[]); | T=void * * * * * * * * * * DtoDeclarationExp: T * * * * * * * * * * * Ignoring Symbol: alias * * * * * * * * ExpStatement::toIR(): * * * * * * * * * AddAssignExp::toElem: h += typeid(const(string[])).getHash(cast(const(void*))&p.importPaths) @ ulong * * * * * * * * * * Caching l-value of h += typeid(const(string[])).getHash(cast(const(void*))&p.importPaths) => h * * * * * * * * * * * VarExp::toElem: h @ ulong * * * * * * * * * * * * DtoSymbolAddress ('h' of type 'ulong') * * * * * * * * * * * * * a normal variable * * * * * * * * * * AddExp::toElem: h + typeid(const(string[])).getHash(cast(const(void*))&p.importPaths) @ ulong * * * * * * * * * * * VarExp::toElem: h @ ulong * * * * * * * * * * * CallExp::toElem: typeid(const(string[])).getHash(cast(const(void*))&p.importPaths) @ ulong * * * * * * * * * * * * DotVarExp::toElem: typeid(const(string[])).getHash @ const nothrow @trusted ulong(const(void*) p) * * * * * * * * * * * * * SymOffExp::toElem: typeid(const(string[])) @ object.TypeInfo * * * * * * * * * * * * * * DtoSymbolAddress ('typeid(const(string[]))' of type 'object.TypeInfo_Const') * * * * * * * * * * * * * * * TypeInfoDeclaration * * * * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(const(string[]))) * * * * * * * * * * * * * * * * type = 'const(string[])' * * * * * * * * * * * * * * * * typeinfo mangle: _D14TypeInfo_xAAya6__initZ * * * * * * * * * * * * * * * * TypeInfoConstDeclaration::llvmDefine() typeid(const(string[])) * * * * * * * * * * * * * * * * * DtoTypeInfoOf(type = 'const(string)[]', base='1') * * * * * * * * * * * * * * * * * * Type::getTypeInfo(): const(string)[] * * * * * * * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(const(string)[])) * * * * * * * * * * * * * * Casting from 'TypeInfo_Const*' to 'object.TypeInfo' * * * * * * * * * * * * * * * src: %object.TypeInfo_Const* bitcast (%"typeid(const(string[]))"* @_D14TypeInfo_xAAya6__initZ to %object.TypeInfo_Const*) * * * * * * * * * * * * * * * to type: %object.TypeInfo* * * * * * * * * * * * * * vthis: %object.TypeInfo* bitcast (%"typeid(const(string[]))"* @_D14TypeInfo_xAAya6__initZ to %object.TypeInfo*) * * * * * * * * * * * * * funcval: %17 = load i64 (%object.TypeInfo*, i8*)*, i64 (%object.TypeInfo*, i8*)** %"typeid(const(string[])).getHash@vtbl", align 8 * * * * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * * * * DtoFunctionType(const nothrow @trusted ulong(const(void*) p)) * * * * * * * * * * * * * funcval casted: %"typeid(const(string[])).getHash" = load i64 (%object.TypeInfo*, i8*)*, i64 (%object.TypeInfo*, i8*)** %"typeid(const(string[])).getHash@vtbl", align 8 * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * %object.TypeInfo* bitcast (%"typeid(const(string[]))"* @_D14TypeInfo_xAAya6__initZ to %object.TypeInfo*) * * * * * * * * * * * * * Function type: const nothrow @trusted ulong(const(void*) p) * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * CastExp::toElem: cast(const(void*))&p.importPaths @ const(void*) * * * * * * * * * * * * * * * AddrExp::toElem: &p.importPaths @ const(string[])* * * * * * * * * * * * * * * * * DotVarExp::toElem: p.importPaths @ const(string[]) * * * * * * * * * * * * * * * * * VarExp::toElem: p @ const(AutocompleteRequest) * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('p' of type 'const(AutocompleteRequest)') * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * type: const(AutocompleteRequest) * * * * * * * * * * * * * * * * * Indexing aggregate field common.messages.AutocompleteRequest.importPaths: * * * * * * * * * * * * * * * * * * Value: %17 = getelementptr %common.messages.AutocompleteRequest, %common.messages.AutocompleteRequest* %p_arg, i32 0, i32 3 * * * * * * * * * * * * * * * * is nothing special * * * * * * * * * * * * * * * * lval: %17 = getelementptr %common.messages.AutocompleteRequest, %common.messages.AutocompleteRequest* %p_arg, i32 0, i32 3 * * * * * * * * * * * * * * * * Building type: const(string[])* * * * * * * * * * * * * * * * Casting from 'const(string[])*' to 'const(void*)' * * * * * * * * * * * * * * * * src: %17 = getelementptr %common.messages.AutocompleteRequest, %common.messages.AutocompleteRequest* %p_arg, i32 0, i32 3 * * * * * * * * * * * * * * * * to type: i8* * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %h = alloca i64, align 8 * * * * * * * * * * * rhs: %21 = add i64 %20, %19 * * * * * * ScopeStatement::toIR(): * * * * * * * CompoundStatement::toIR(): * * * * * * * * ExpStatement::toIR(): * * * * * * * * * DeclarationExp::toElem: enum ulong i = 3LU; | T=void * * * * * * * * * * DtoDeclarationExp: i * * * * * * * * * * * VarDeclaration * * * * * * * * * * * Manifest constant, nothing to do. * * * * * * * * ExpStatement::toIR(): * * * * * * * * * DeclarationExp::toElem: alias T = const(ubyte[]); | T=void * * * * * * * * * * DtoDeclarationExp: T * * * * * * * * * * * Ignoring Symbol: alias * * * * * * * * ExpStatement::toIR(): * * * * * * * * * AddAssignExp::toElem: h += typeid(const(ubyte[])).getHash(cast(const(void*))&p.sourceCode) @ ulong * * * * * * * * * * Caching l-value of h += typeid(const(ubyte[])).getHash(cast(const(void*))&p.sourceCode) => h * * * * * * * * * * * VarExp::toElem: h @ ulong * * * * * * * * * * * * DtoSymbolAddress ('h' of type 'ulong') * * * * * * * * * * * * * a normal variable * * * * * * * * * * AddExp::toElem: h + typeid(const(ubyte[])).getHash(cast(const(void*))&p.sourceCode) @ ulong * * * * * * * * * * * VarExp::toElem: h @ ulong * * * * * * * * * * * CallExp::toElem: typeid(const(ubyte[])).getHash(cast(const(void*))&p.sourceCode) @ ulong * * * * * * * * * * * * DotVarExp::toElem: typeid(const(ubyte[])).getHash @ const nothrow @trusted ulong(const(void*) p) * * * * * * * * * * * * * SymOffExp::toElem: typeid(const(ubyte[])) @ object.TypeInfo * * * * * * * * * * * * * * DtoSymbolAddress ('typeid(const(ubyte[]))' of type 'object.TypeInfo_Const') * * * * * * * * * * * * * * * TypeInfoDeclaration * * * * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(const(ubyte[]))) * * * * * * * * * * * * * * * * type = 'const(ubyte[])' * * * * * * * * * * * * * * * * typeinfo mangle: _D12TypeInfo_xAh6__initZ * * * * * * * * * * * * * * * * TypeInfoConstDeclaration::llvmDefine() typeid(const(ubyte[])) * * * * * * * * * * * * * * * * * DtoTypeInfoOf(type = 'const(ubyte)[]', base='1') * * * * * * * * * * * * * * * * * * Type::getTypeInfo(): const(ubyte)[] * * * * * * * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(const(ubyte)[])) * * * * * * * * * * * * * * Casting from 'TypeInfo_Const*' to 'object.TypeInfo' * * * * * * * * * * * * * * * src: %object.TypeInfo_Const* bitcast (%"typeid(const(ubyte[]))"* @_D12TypeInfo_xAh6__initZ to %object.TypeInfo_Const*) * * * * * * * * * * * * * * * to type: %object.TypeInfo* * * * * * * * * * * * * * vthis: %object.TypeInfo* bitcast (%"typeid(const(ubyte[]))"* @_D12TypeInfo_xAh6__initZ to %object.TypeInfo*) * * * * * * * * * * * * * funcval: %24 = load i64 (%object.TypeInfo*, i8*)*, i64 (%object.TypeInfo*, i8*)** %"typeid(const(ubyte[])).getHash@vtbl", align 8 * * * * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * * * * DtoFunctionType(const nothrow @trusted ulong(const(void*) p)) * * * * * * * * * * * * * funcval casted: %"typeid(const(ubyte[])).getHash" = load i64 (%object.TypeInfo*, i8*)*, i64 (%object.TypeInfo*, i8*)** %"typeid(const(ubyte[])).getHash@vtbl", align 8 * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * %object.TypeInfo* bitcast (%"typeid(const(ubyte[]))"* @_D12TypeInfo_xAh6__initZ to %object.TypeInfo*) * * * * * * * * * * * * * Function type: const nothrow @trusted ulong(const(void*) p) * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * CastExp::toElem: cast(const(void*))&p.sourceCode @ const(void*) * * * * * * * * * * * * * * * AddrExp::toElem: &p.sourceCode @ const(ubyte[])* * * * * * * * * * * * * * * * * DotVarExp::toElem: p.sourceCode @ const(ubyte[]) * * * * * * * * * * * * * * * * * VarExp::toElem: p @ const(AutocompleteRequest) * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('p' of type 'const(AutocompleteRequest)') * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * type: const(AutocompleteRequest) * * * * * * * * * * * * * * * * * Indexing aggregate field common.messages.AutocompleteRequest.sourceCode: * * * * * * * * * * * * * * * * * * Value: %24 = getelementptr %common.messages.AutocompleteRequest, %common.messages.AutocompleteRequest* %p_arg, i32 0, i32 4 * * * * * * * * * * * * * * * * is nothing special * * * * * * * * * * * * * * * * lval: %24 = getelementptr %common.messages.AutocompleteRequest, %common.messages.AutocompleteRequest* %p_arg, i32 0, i32 4 * * * * * * * * * * * * * * * * Building type: const(ubyte[])* * * * * * * * * * * * * * * * Casting from 'const(ubyte[])*' to 'const(void*)' * * * * * * * * * * * * * * * * src: %24 = getelementptr %common.messages.AutocompleteRequest, %common.messages.AutocompleteRequest* %p_arg, i32 0, i32 4 * * * * * * * * * * * * * * * * to type: i8* * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %h = alloca i64, align 8 * * * * * * * * * * * rhs: %28 = add i64 %27, %26 * * * * * * ScopeStatement::toIR(): * * * * * * * CompoundStatement::toIR(): * * * * * * * * ExpStatement::toIR(): * * * * * * * * * DeclarationExp::toElem: enum ulong i = 4LU; | T=void * * * * * * * * * * DtoDeclarationExp: i * * * * * * * * * * * VarDeclaration * * * * * * * * * * * Manifest constant, nothing to do. * * * * * * * * ExpStatement::toIR(): * * * * * * * * * DeclarationExp::toElem: alias T = const(ulong); | T=void * * * * * * * * * * DtoDeclarationExp: T * * * * * * * * * * * Ignoring Symbol: alias * * * * * * * * ExpStatement::toIR(): * * * * * * * * * AddAssignExp::toElem: h += typeid(const(ulong)).getHash(cast(const(void*))&p.cursorPosition) @ ulong * * * * * * * * * * Caching l-value of h += typeid(const(ulong)).getHash(cast(const(void*))&p.cursorPosition) => h * * * * * * * * * * * VarExp::toElem: h @ ulong * * * * * * * * * * * * DtoSymbolAddress ('h' of type 'ulong') * * * * * * * * * * * * * a normal variable * * * * * * * * * * AddExp::toElem: h + typeid(const(ulong)).getHash(cast(const(void*))&p.cursorPosition) @ ulong * * * * * * * * * * * VarExp::toElem: h @ ulong * * * * * * * * * * * CallExp::toElem: typeid(const(ulong)).getHash(cast(const(void*))&p.cursorPosition) @ ulong * * * * * * * * * * * * DotVarExp::toElem: typeid(const(ulong)).getHash @ const nothrow @trusted ulong(const(void*) p) * * * * * * * * * * * * * SymOffExp::toElem: typeid(const(ulong)) @ object.TypeInfo * * * * * * * * * * * * * * DtoSymbolAddress ('typeid(const(ulong))' of type 'object.TypeInfo_Const') * * * * * * * * * * * * * * * TypeInfoDeclaration * * * * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(const(ulong))) * * * * * * * * * * * * * * * * type = 'const(ulong)' * * * * * * * * * * * * * * * * typeinfo mangle: _D11TypeInfo_xm6__initZ * * * * * * * * * * * * * * * * TypeInfoConstDeclaration::llvmDefine() typeid(const(ulong)) * * * * * * * * * * * * * * * * * DtoTypeInfoOf(type = 'ulong', base='1') * * * * * * * * * * * * * * * * * * Type::getTypeInfo(): ulong * * * * * * * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(ulong)) * * * * * * * * * * * * * * * * * * * type = 'ulong' * * * * * * * * * * * * * * * * * * * typeinfo mangle: _D10TypeInfo_m6__initZ * * * * * * * * * * * * * * Casting from 'TypeInfo_Const*' to 'object.TypeInfo' * * * * * * * * * * * * * * * src: %object.TypeInfo_Const* bitcast (%"typeid(const(ulong))"* @_D11TypeInfo_xm6__initZ to %object.TypeInfo_Const*) * * * * * * * * * * * * * * * to type: %object.TypeInfo* * * * * * * * * * * * * * vthis: %object.TypeInfo* bitcast (%"typeid(const(ulong))"* @_D11TypeInfo_xm6__initZ to %object.TypeInfo*) * * * * * * * * * * * * * funcval: %31 = load i64 (%object.TypeInfo*, i8*)*, i64 (%object.TypeInfo*, i8*)** %"typeid(const(ulong)).getHash@vtbl", align 8 * * * * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * * * * DtoFunctionType(const nothrow @trusted ulong(const(void*) p)) * * * * * * * * * * * * * funcval casted: %"typeid(const(ulong)).getHash" = load i64 (%object.TypeInfo*, i8*)*, i64 (%object.TypeInfo*, i8*)** %"typeid(const(ulong)).getHash@vtbl", align 8 * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * %object.TypeInfo* bitcast (%"typeid(const(ulong))"* @_D11TypeInfo_xm6__initZ to %object.TypeInfo*) * * * * * * * * * * * * * Function type: const nothrow @trusted ulong(const(void*) p) * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * CastExp::toElem: cast(const(void*))&p.cursorPosition @ const(void*) * * * * * * * * * * * * * * * AddrExp::toElem: &p.cursorPosition @ const(ulong)* * * * * * * * * * * * * * * * * DotVarExp::toElem: p.cursorPosition @ const(ulong) * * * * * * * * * * * * * * * * * VarExp::toElem: p @ const(AutocompleteRequest) * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('p' of type 'const(AutocompleteRequest)') * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * type: const(AutocompleteRequest) * * * * * * * * * * * * * * * * * Indexing aggregate field common.messages.AutocompleteRequest.cursorPosition: * * * * * * * * * * * * * * * * * * Value: %31 = getelementptr %common.messages.AutocompleteRequest, %common.messages.AutocompleteRequest* %p_arg, i32 0, i32 5 * * * * * * * * * * * * * * * * is nothing special * * * * * * * * * * * * * * * * lval: %31 = getelementptr %common.messages.AutocompleteRequest, %common.messages.AutocompleteRequest* %p_arg, i32 0, i32 5 * * * * * * * * * * * * * * * * Building type: const(ulong)* * * * * * * * * * * * * * * * Casting from 'const(ulong)*' to 'const(void*)' * * * * * * * * * * * * * * * * src: %31 = getelementptr %common.messages.AutocompleteRequest, %common.messages.AutocompleteRequest* %p_arg, i32 0, i32 5 * * * * * * * * * * * * * * * * to type: i8* * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %h = alloca i64, align 8 * * * * * * * * * * * rhs: %35 = add i64 %34, %33 * * * * * * ScopeStatement::toIR(): * * * * * * * CompoundStatement::toIR(): * * * * * * * * ExpStatement::toIR(): * * * * * * * * * DeclarationExp::toElem: enum ulong i = 5LU; | T=void * * * * * * * * * * DtoDeclarationExp: i * * * * * * * * * * * VarDeclaration * * * * * * * * * * * Manifest constant, nothing to do. * * * * * * * * ExpStatement::toIR(): * * * * * * * * * DeclarationExp::toElem: alias T = const(string); | T=void * * * * * * * * * * DtoDeclarationExp: T * * * * * * * * * * * Ignoring Symbol: alias * * * * * * * * ExpStatement::toIR(): * * * * * * * * * AddAssignExp::toElem: h += typeid(const(string)).getHash(cast(const(void*))&p.searchName) @ ulong * * * * * * * * * * Caching l-value of h += typeid(const(string)).getHash(cast(const(void*))&p.searchName) => h * * * * * * * * * * * VarExp::toElem: h @ ulong * * * * * * * * * * * * DtoSymbolAddress ('h' of type 'ulong') * * * * * * * * * * * * * a normal variable * * * * * * * * * * AddExp::toElem: h + typeid(const(string)).getHash(cast(const(void*))&p.searchName) @ ulong * * * * * * * * * * * VarExp::toElem: h @ ulong * * * * * * * * * * * CallExp::toElem: typeid(const(string)).getHash(cast(const(void*))&p.searchName) @ ulong * * * * * * * * * * * * DotVarExp::toElem: typeid(const(string)).getHash @ const nothrow @trusted ulong(const(void*) p) * * * * * * * * * * * * * SymOffExp::toElem: typeid(const(string)) @ object.TypeInfo * * * * * * * * * * * * * * DtoSymbolAddress ('typeid(const(string))' of type 'object.TypeInfo_Const') * * * * * * * * * * * * * * * TypeInfoDeclaration * * * * * * * * * * * * * * Casting from 'TypeInfo_Const*' to 'object.TypeInfo' * * * * * * * * * * * * * * * src: %object.TypeInfo_Const* bitcast (%"typeid(const(string))"* @_D13TypeInfo_xAya6__initZ to %object.TypeInfo_Const*) * * * * * * * * * * * * * * * to type: %object.TypeInfo* * * * * * * * * * * * * * vthis: %object.TypeInfo* bitcast (%"typeid(const(string))"* @_D13TypeInfo_xAya6__initZ to %object.TypeInfo*) * * * * * * * * * * * * * funcval: %38 = load i64 (%object.TypeInfo*, i8*)*, i64 (%object.TypeInfo*, i8*)** %"typeid(const(string)).getHash@vtbl6", align 8 * * * * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * * * * DtoFunctionType(const nothrow @trusted ulong(const(void*) p)) * * * * * * * * * * * * * funcval casted: %"typeid(const(string)).getHash7" = load i64 (%object.TypeInfo*, i8*)*, i64 (%object.TypeInfo*, i8*)** %"typeid(const(string)).getHash@vtbl6", align 8 * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * %object.TypeInfo* bitcast (%"typeid(const(string))"* @_D13TypeInfo_xAya6__initZ to %object.TypeInfo*) * * * * * * * * * * * * * Function type: const nothrow @trusted ulong(const(void*) p) * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * CastExp::toElem: cast(const(void*))&p.searchName @ const(void*) * * * * * * * * * * * * * * * AddrExp::toElem: &p.searchName @ const(string)* * * * * * * * * * * * * * * * * DotVarExp::toElem: p.searchName @ const(string) * * * * * * * * * * * * * * * * * VarExp::toElem: p @ const(AutocompleteRequest) * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('p' of type 'const(AutocompleteRequest)') * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * type: const(AutocompleteRequest) * * * * * * * * * * * * * * * * * Indexing aggregate field common.messages.AutocompleteRequest.searchName: * * * * * * * * * * * * * * * * * * Value: %38 = getelementptr %common.messages.AutocompleteRequest, %common.messages.AutocompleteRequest* %p_arg, i32 0, i32 6 * * * * * * * * * * * * * * * * is nothing special * * * * * * * * * * * * * * * * lval: %38 = getelementptr %common.messages.AutocompleteRequest, %common.messages.AutocompleteRequest* %p_arg, i32 0, i32 6 * * * * * * * * * * * * * * * Casting from 'const(string)*' to 'const(void*)' * * * * * * * * * * * * * * * * src: %38 = getelementptr %common.messages.AutocompleteRequest, %common.messages.AutocompleteRequest* %p_arg, i32 0, i32 6 * * * * * * * * * * * * * * * * to type: i8* * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %h = alloca i64, align 8 * * * * * * * * * * * rhs: %42 = add i64 %41, %40 * * * * * ReturnStatement::toIR(): * * * * * * VarExp::toElem: h @ ulong * * * * * * * DtoSymbolAddress ('h' of type 'ulong') * * * * * * * * a normal variable * * * * * * return value is '0x1210c538' * StructDeclaration::codegen: 'common.messages.AutocompleteResponse' * * Resolving struct type: AutocompleteResponse (src/common/messages.d(120)) * * * Building type: AutocompleteResponse * * * * Building struct type common.messages.AutocompleteResponse @ src/common/messages.d(120) * * * * * adding default initializer for struct field completionType * * * * * adding default initializer for struct field symbolFilePath * * * * * adding default initializer for struct field symbolLocation * * * * * adding default initializer for struct field docComments * * * * * adding default initializer for struct field completions * * * * * adding default initializer for struct field completionKinds * * * * * adding default initializer for struct field locations * * * * * adding default initializer for struct field importPaths * * * * * Building type: ulong[] * * * * * final struct type: %common.messages.AutocompleteResponse = type { { i64, i8* }, { i64, i8* }, i64, { i64, { i64, i8* }* }, { i64, { i64, i8* }* }, { i64, i8* }, { i64, i64* }, { i64, { i64, i8* }* } } * * VarDeclaration::codegen(): 'common.messages.AutocompleteResponse.completionType' * * * DtoResolveVariable(common.messages.AutocompleteResponse.completionType) * * VarDeclaration::codegen(): 'common.messages.AutocompleteResponse.symbolFilePath' * * * DtoResolveVariable(common.messages.AutocompleteResponse.symbolFilePath) * * VarDeclaration::codegen(): 'common.messages.AutocompleteResponse.symbolLocation' * * * DtoResolveVariable(common.messages.AutocompleteResponse.symbolLocation) * * VarDeclaration::codegen(): 'common.messages.AutocompleteResponse.docComments' * * * DtoResolveVariable(common.messages.AutocompleteResponse.docComments) * * VarDeclaration::codegen(): 'common.messages.AutocompleteResponse.completions' * * * DtoResolveVariable(common.messages.AutocompleteResponse.completions) * * VarDeclaration::codegen(): 'common.messages.AutocompleteResponse.completionKinds' * * * DtoResolveVariable(common.messages.AutocompleteResponse.completionKinds) * * VarDeclaration::codegen(): 'common.messages.AutocompleteResponse.locations' * * * DtoResolveVariable(common.messages.AutocompleteResponse.locations) * * VarDeclaration::codegen(): 'common.messages.AutocompleteResponse.importPaths' * * * DtoResolveVariable(common.messages.AutocompleteResponse.importPaths) * * Building default initializer for common.messages.AutocompleteResponse * * * Creating initializer constant for AutocompleteResponse * * * * Implicit initializer: completionType @+0 * * * * * DtoConstExpInit(targetType = string, exp = null) * * * * * * NullExp::toConstElem(type=string): null * * * * Implicit initializer: symbolFilePath @+16 * * * * * DtoConstExpInit(targetType = string, exp = null) * * * * * * NullExp::toConstElem(type=string): null * * * * Implicit initializer: symbolLocation @+32 * * * * * DtoConstExpInit(targetType = ulong, exp = 0LU) * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * value = i64 0 * * * * Implicit initializer: docComments @+40 * * * * * DtoConstExpInit(targetType = string[], exp = null) * * * * * * NullExp::toConstElem(type=string[]): null * * * * Implicit initializer: completions @+56 * * * * * DtoConstExpInit(targetType = string[], exp = null) * * * * * * NullExp::toConstElem(type=string[]): null * * * * Implicit initializer: completionKinds @+72 * * * * * DtoConstExpInit(targetType = char[], exp = null) * * * * * * NullExp::toConstElem(type=char[]): null * * * * Implicit initializer: locations @+88 * * * * * DtoConstExpInit(targetType = ulong[], exp = null) * * * * * * NullExp::toConstElem(type=ulong[]): null * * * * Implicit initializer: importPaths @+104 * * * * * DtoConstExpInit(targetType = string[], exp = null) * * * * * * NullExp::toConstElem(type=string[]): null * * * * adding field completionType * * * * adding field symbolFilePath * * * * adding field symbolLocation * * * * adding field docComments * * * * adding field completions * * * * adding field completionKinds * * * * adding field locations * * * * adding field importPaths * * * * final initializer: %common.messages.AutocompleteResponse_init zeroinitializer * * DtoTypeInfoOf(type = 'AutocompleteResponse', base='1') * * * Type::getTypeInfo(): AutocompleteResponse * * * TypeInfoDeclaration::codegen(typeid(AutocompleteResponse)) * * * * type = 'AutocompleteResponse' * * * * typeinfo mangle: _D48TypeInfo_S6common8messages20AutocompleteResponse6__initZ * * * * TypeInfoStructDeclaration::llvmDefine() typeid(AutocompleteResponse) * * * * * DtoFunctionType(nothrow @trusted ulong(ref const(AutocompleteResponse) p)) * * * * * * Building type: const(AutocompleteResponse)* * * * * * * x86-64 ABI: Transforming return type * * * * * * x86-64 ABI: Transforming argument types * * * * * * Final function type: i64 (%common.messages.AutocompleteResponse*) * * * * * DtoResolveFunction(common.messages.AutocompleteResponse.__xtoHash): * * * * * * DtoDeclareFunction(common.messages.AutocompleteResponse.__xtoHash): * * * * * * * DtoFunctionType(nothrow @trusted ulong(ref const(AutocompleteResponse) p)) * * * * * * * func = declare i64 @_D6common8messages20AutocompleteResponse9__xtoHashFNbNeKxS6common8messages20AutocompleteResponseZm(%common.messages.AutocompleteResponse*) * * * * * DtoFunctionType(bool(ref const(AutocompleteResponse) p, ref const(AutocompleteResponse) q)) * * * * * * x86-64 ABI: Transforming return type * * * * * * x86-64 ABI: Transforming argument types * * * * * * Final function type: i1 (%common.messages.AutocompleteResponse*, %common.messages.AutocompleteResponse*) * * * * * DtoResolveFunction(common.messages.AutocompleteResponse.__xopEquals): * * * * * * DtoDeclareFunction(common.messages.AutocompleteResponse.__xopEquals): * * * * * * * DtoFunctionType(bool(ref const(AutocompleteResponse) p, ref const(AutocompleteResponse) q)) * * * * * * * func = declare i1 @_D6common8messages20AutocompleteResponse11__xopEqualsFKxS6common8messages20AutocompleteResponseKxS6common8messages20AutocompleteResponseZb(%common.messages.AutocompleteResponse*, %common.messages.AutocompleteResponse*) * * * * * IntegerExp::toConstElem: cast(void*)305419896LU @ void* * * * * * * pointer * * DtoDefineFunction(common.messages.AutocompleteResponse.__xopEquals): * * * Doing function body for: __xopEquals * * * DtoCreateNestedContext for __xopEquals * * * * DtoCreateNestedContextType for common.messages.AutocompleteResponse.__xopEquals * * * CompoundStatement::toIR(): * * * * ReturnStatement::toIR(): * * * * * AndAndExp::toElem: p.completionType == q.completionType && p.symbolFilePath == q.symbolFilePath && p.symbolLocation == q.symbolLocation && p.docComments == q.docComments && p.completions == q.completions && p.completionKinds == q.completionKinds && p.locations == q.locations && p.importPaths == q.importPaths @ bool * * * * * * AndAndExp::toElem: p.completionType == q.completionType && p.symbolFilePath == q.symbolFilePath && p.symbolLocation == q.symbolLocation && p.docComments == q.docComments && p.completions == q.completions && p.completionKinds == q.completionKinds && p.locations == q.locations @ bool * * * * * * * AndAndExp::toElem: p.completionType == q.completionType && p.symbolFilePath == q.symbolFilePath && p.symbolLocation == q.symbolLocation && p.docComments == q.docComments && p.completions == q.completions && p.completionKinds == q.completionKinds @ bool * * * * * * * * AndAndExp::toElem: p.completionType == q.completionType && p.symbolFilePath == q.symbolFilePath && p.symbolLocation == q.symbolLocation && p.docComments == q.docComments && p.completions == q.completions @ bool * * * * * * * * * AndAndExp::toElem: p.completionType == q.completionType && p.symbolFilePath == q.symbolFilePath && p.symbolLocation == q.symbolLocation && p.docComments == q.docComments @ bool * * * * * * * * * * AndAndExp::toElem: p.completionType == q.completionType && p.symbolFilePath == q.symbolFilePath && p.symbolLocation == q.symbolLocation @ bool * * * * * * * * * * * AndAndExp::toElem: p.completionType == q.completionType && p.symbolFilePath == q.symbolFilePath @ bool * * * * * * * * * * * * EqualExp::toElem: p.completionType == q.completionType @ bool * * * * * * * * * * * * * DotVarExp::toElem: p.completionType @ const(string) * * * * * * * * * * * * * * VarExp::toElem: p @ const(AutocompleteResponse) * * * * * * * * * * * * * * * DtoSymbolAddress ('p' of type 'const(AutocompleteResponse)') * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * type: const(AutocompleteResponse) * * * * * * * * * * * * * * Indexing aggregate field common.messages.AutocompleteResponse.completionType: * * * * * * * * * * * * * * * Value: %1 = getelementptr %common.messages.AutocompleteResponse, %common.messages.AutocompleteResponse* %p_arg, i32 0, i32 0 * * * * * * * * * * * * * DotVarExp::toElem: q.completionType @ const(string) * * * * * * * * * * * * * * VarExp::toElem: q @ const(AutocompleteResponse) * * * * * * * * * * * * * * * DtoSymbolAddress ('q' of type 'const(AutocompleteResponse)') * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * type: const(AutocompleteResponse) * * * * * * * * * * * * * * Indexing aggregate field common.messages.AutocompleteResponse.completionType: * * * * * * * * * * * * * * * Value: %2 = getelementptr %common.messages.AutocompleteResponse, %common.messages.AutocompleteResponse* %q_arg, i32 0, i32 0 * * * * * * * * * * * * * static or dynamic array * * * * * * * * * * * * * comparing arrays * * * * * * * * * * * * * casting to dynamic arrays * * * * * * * * * * * * * DtoCastArray * * * * * * * * * * * * * * from array or sarray * * * * * * * * * * * * * * to array * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * isslice * * * * * * * * * * * * * DtoCastArray * * * * * * * * * * * * * * from array or sarray * * * * * * * * * * * * * * to array * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * isslice * * * * * * * * * * * * * DtoTypeInfoOf(type = 'string', base='1') * * * * * * * * * * * * * * Type::getTypeInfo(): string * * * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(string)) * * * * * * * * * * * * EqualExp::toElem: p.symbolFilePath == q.symbolFilePath @ bool * * * * * * * * * * * * * DotVarExp::toElem: p.symbolFilePath @ const(string) * * * * * * * * * * * * * * VarExp::toElem: p @ const(AutocompleteResponse) * * * * * * * * * * * * * * * DtoSymbolAddress ('p' of type 'const(AutocompleteResponse)') * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * type: const(AutocompleteResponse) * * * * * * * * * * * * * * Indexing aggregate field common.messages.AutocompleteResponse.symbolFilePath: * * * * * * * * * * * * * * * Value: %15 = getelementptr %common.messages.AutocompleteResponse, %common.messages.AutocompleteResponse* %p_arg, i32 0, i32 1 * * * * * * * * * * * * * DotVarExp::toElem: q.symbolFilePath @ const(string) * * * * * * * * * * * * * * VarExp::toElem: q @ const(AutocompleteResponse) * * * * * * * * * * * * * * * DtoSymbolAddress ('q' of type 'const(AutocompleteResponse)') * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * type: const(AutocompleteResponse) * * * * * * * * * * * * * * Indexing aggregate field common.messages.AutocompleteResponse.symbolFilePath: * * * * * * * * * * * * * * * Value: %16 = getelementptr %common.messages.AutocompleteResponse, %common.messages.AutocompleteResponse* %q_arg, i32 0, i32 1 * * * * * * * * * * * * * static or dynamic array * * * * * * * * * * * * * comparing arrays * * * * * * * * * * * * * casting to dynamic arrays * * * * * * * * * * * * * DtoCastArray * * * * * * * * * * * * * * from array or sarray * * * * * * * * * * * * * * to array * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * isslice * * * * * * * * * * * * * DtoCastArray * * * * * * * * * * * * * * from array or sarray * * * * * * * * * * * * * * to array * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * isslice * * * * * * * * * * * * * DtoTypeInfoOf(type = 'string', base='1') * * * * * * * * * * * * * * Type::getTypeInfo(): string * * * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(string)) * * * * * * * * * * * EqualExp::toElem: p.symbolLocation == q.symbolLocation @ bool * * * * * * * * * * * * DotVarExp::toElem: p.symbolLocation @ const(ulong) * * * * * * * * * * * * * VarExp::toElem: p @ const(AutocompleteResponse) * * * * * * * * * * * * * * DtoSymbolAddress ('p' of type 'const(AutocompleteResponse)') * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * type: const(AutocompleteResponse) * * * * * * * * * * * * * Indexing aggregate field common.messages.AutocompleteResponse.symbolLocation: * * * * * * * * * * * * * * Value: %29 = getelementptr %common.messages.AutocompleteResponse, %common.messages.AutocompleteResponse* %p_arg, i32 0, i32 2 * * * * * * * * * * * * DotVarExp::toElem: q.symbolLocation @ const(ulong) * * * * * * * * * * * * * VarExp::toElem: q @ const(AutocompleteResponse) * * * * * * * * * * * * * * DtoSymbolAddress ('q' of type 'const(AutocompleteResponse)') * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * type: const(AutocompleteResponse) * * * * * * * * * * * * * Indexing aggregate field common.messages.AutocompleteResponse.symbolLocation: * * * * * * * * * * * * * * Value: %30 = getelementptr %common.messages.AutocompleteResponse, %common.messages.AutocompleteResponse* %q_arg, i32 0, i32 2 * * * * * * * * * * * * integral or pointer or interface * * * * * * * * * * * * lv: %31 = load i64, i64* %29 * * * * * * * * * * * * rv: %32 = load i64, i64* %30 * * * * * * * * * * EqualExp::toElem: p.docComments == q.docComments @ bool * * * * * * * * * * * DotVarExp::toElem: p.docComments @ const(string[]) * * * * * * * * * * * * VarExp::toElem: p @ const(AutocompleteResponse) * * * * * * * * * * * * * DtoSymbolAddress ('p' of type 'const(AutocompleteResponse)') * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * type: const(AutocompleteResponse) * * * * * * * * * * * * Indexing aggregate field common.messages.AutocompleteResponse.docComments: * * * * * * * * * * * * * Value: %34 = getelementptr %common.messages.AutocompleteResponse, %common.messages.AutocompleteResponse* %p_arg, i32 0, i32 3 * * * * * * * * * * * DotVarExp::toElem: q.docComments @ const(string[]) * * * * * * * * * * * * VarExp::toElem: q @ const(AutocompleteResponse) * * * * * * * * * * * * * DtoSymbolAddress ('q' of type 'const(AutocompleteResponse)') * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * type: const(AutocompleteResponse) * * * * * * * * * * * * Indexing aggregate field common.messages.AutocompleteResponse.docComments: * * * * * * * * * * * * * Value: %35 = getelementptr %common.messages.AutocompleteResponse, %common.messages.AutocompleteResponse* %q_arg, i32 0, i32 3 * * * * * * * * * * * static or dynamic array * * * * * * * * * * * comparing arrays * * * * * * * * * * * casting to dynamic arrays * * * * * * * * * * * DtoCastArray * * * * * * * * * * * * from array or sarray * * * * * * * * * * * * to array * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * isslice * * * * * * * * * * * DtoCastArray * * * * * * * * * * * * from array or sarray * * * * * * * * * * * * to array * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * isslice * * * * * * * * * * * DtoTypeInfoOf(type = 'const(string)[]', base='1') * * * * * * * * * * * * Type::getTypeInfo(): const(string)[] * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(const(string)[])) * * * * * * * * * EqualExp::toElem: p.completions == q.completions @ bool * * * * * * * * * * DotVarExp::toElem: p.completions @ const(string[]) * * * * * * * * * * * VarExp::toElem: p @ const(AutocompleteResponse) * * * * * * * * * * * * DtoSymbolAddress ('p' of type 'const(AutocompleteResponse)') * * * * * * * * * * * * * function param * * * * * * * * * * * * * type: const(AutocompleteResponse) * * * * * * * * * * * Indexing aggregate field common.messages.AutocompleteResponse.completions: * * * * * * * * * * * * Value: %58 = getelementptr %common.messages.AutocompleteResponse, %common.messages.AutocompleteResponse* %p_arg, i32 0, i32 4 * * * * * * * * * * DotVarExp::toElem: q.completions @ const(string[]) * * * * * * * * * * * VarExp::toElem: q @ const(AutocompleteResponse) * * * * * * * * * * * * DtoSymbolAddress ('q' of type 'const(AutocompleteResponse)') * * * * * * * * * * * * * function param * * * * * * * * * * * * * type: const(AutocompleteResponse) * * * * * * * * * * * Indexing aggregate field common.messages.AutocompleteResponse.completions: * * * * * * * * * * * * Value: %59 = getelementptr %common.messages.AutocompleteResponse, %common.messages.AutocompleteResponse* %q_arg, i32 0, i32 4 * * * * * * * * * * static or dynamic array * * * * * * * * * * comparing arrays * * * * * * * * * * casting to dynamic arrays * * * * * * * * * * DtoCastArray * * * * * * * * * * * from array or sarray * * * * * * * * * * * to array * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * isslice * * * * * * * * * * DtoCastArray * * * * * * * * * * * from array or sarray * * * * * * * * * * * to array * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * isslice * * * * * * * * * * DtoTypeInfoOf(type = 'const(string)[]', base='1') * * * * * * * * * * * Type::getTypeInfo(): const(string)[] * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(const(string)[])) * * * * * * * * EqualExp::toElem: p.completionKinds == q.completionKinds @ bool * * * * * * * * * DotVarExp::toElem: p.completionKinds @ const(char[]) * * * * * * * * * * VarExp::toElem: p @ const(AutocompleteResponse) * * * * * * * * * * * DtoSymbolAddress ('p' of type 'const(AutocompleteResponse)') * * * * * * * * * * * * function param * * * * * * * * * * * * type: const(AutocompleteResponse) * * * * * * * * * * Indexing aggregate field common.messages.AutocompleteResponse.completionKinds: * * * * * * * * * * * Value: %82 = getelementptr %common.messages.AutocompleteResponse, %common.messages.AutocompleteResponse* %p_arg, i32 0, i32 5 * * * * * * * * * DotVarExp::toElem: q.completionKinds @ const(char[]) * * * * * * * * * * VarExp::toElem: q @ const(AutocompleteResponse) * * * * * * * * * * * DtoSymbolAddress ('q' of type 'const(AutocompleteResponse)') * * * * * * * * * * * * function param * * * * * * * * * * * * type: const(AutocompleteResponse) * * * * * * * * * * Indexing aggregate field common.messages.AutocompleteResponse.completionKinds: * * * * * * * * * * * Value: %83 = getelementptr %common.messages.AutocompleteResponse, %common.messages.AutocompleteResponse* %q_arg, i32 0, i32 5 * * * * * * * * * static or dynamic array * * * * * * * * * comparing arrays * * * * * * * * * casting to dynamic arrays * * * * * * * * * DtoCastArray * * * * * * * * * * Building type: const(char)[] * * * * * * * * * * from array or sarray * * * * * * * * * * to array * * * * * * * * * * DtoArrayLen * * * * * * * * * * DtoArrayPtr * * * * * * * * * * isslice * * * * * * * * * DtoCastArray * * * * * * * * * * from array or sarray * * * * * * * * * * to array * * * * * * * * * * DtoArrayLen * * * * * * * * * * DtoArrayPtr * * * * * * * * * * isslice * * * * * * * * * DtoTypeInfoOf(type = 'const(char)[]', base='1') * * * * * * * * * * Type::getTypeInfo(): const(char)[] * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(const(char)[])) * * * * * * * * * * * type = 'const(char)[]' * * * * * * * * * * * typeinfo mangle: _D12TypeInfo_Axa6__initZ * * * * * * * EqualExp::toElem: p.locations == q.locations @ bool * * * * * * * * DotVarExp::toElem: p.locations @ const(ulong[]) * * * * * * * * * VarExp::toElem: p @ const(AutocompleteResponse) * * * * * * * * * * DtoSymbolAddress ('p' of type 'const(AutocompleteResponse)') * * * * * * * * * * * function param * * * * * * * * * * * type: const(AutocompleteResponse) * * * * * * * * * Indexing aggregate field common.messages.AutocompleteResponse.locations: * * * * * * * * * * Value: %96 = getelementptr %common.messages.AutocompleteResponse, %common.messages.AutocompleteResponse* %p_arg, i32 0, i32 6 * * * * * * * * DotVarExp::toElem: q.locations @ const(ulong[]) * * * * * * * * * VarExp::toElem: q @ const(AutocompleteResponse) * * * * * * * * * * DtoSymbolAddress ('q' of type 'const(AutocompleteResponse)') * * * * * * * * * * * function param * * * * * * * * * * * type: const(AutocompleteResponse) * * * * * * * * * Indexing aggregate field common.messages.AutocompleteResponse.locations: * * * * * * * * * * Value: %97 = getelementptr %common.messages.AutocompleteResponse, %common.messages.AutocompleteResponse* %q_arg, i32 0, i32 6 * * * * * * * * static or dynamic array * * * * * * * * comparing arrays * * * * * * * * casting to dynamic arrays * * * * * * * * DtoCastArray * * * * * * * * * Building type: const(ulong)[] * * * * * * * * * from array or sarray * * * * * * * * * to array * * * * * * * * * DtoArrayLen * * * * * * * * * DtoArrayPtr * * * * * * * * * isslice * * * * * * * * DtoCastArray * * * * * * * * * from array or sarray * * * * * * * * * to array * * * * * * * * * DtoArrayLen * * * * * * * * * DtoArrayPtr * * * * * * * * * isslice * * * * * * * * DtoTypeInfoOf(type = 'const(ulong)[]', base='1') * * * * * * * * * Type::getTypeInfo(): const(ulong)[] * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(const(ulong)[])) * * * * * * * * * * * type = 'const(ulong)[]' * * * * * * * * * * * typeinfo mangle: _D12TypeInfo_Axm6__initZ * * * * * * * * * * * TypeInfoArrayDeclaration::llvmDefine() typeid(const(ulong)[]) * * * * * * * * * * * * DtoTypeInfoOf(type = 'const(ulong)', base='1') * * * * * * * * * * * * * Type::getTypeInfo(): const(ulong) * * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(const(ulong))) * * * * * * * * * TypeInfoDeclaration::codegen(typeid(const(ulong)[])) * * * * * * EqualExp::toElem: p.importPaths == q.importPaths @ bool * * * * * * * DotVarExp::toElem: p.importPaths @ const(string[]) * * * * * * * * VarExp::toElem: p @ const(AutocompleteResponse) * * * * * * * * * DtoSymbolAddress ('p' of type 'const(AutocompleteResponse)') * * * * * * * * * * function param * * * * * * * * * * type: const(AutocompleteResponse) * * * * * * * * Indexing aggregate field common.messages.AutocompleteResponse.importPaths: * * * * * * * * * Value: %120 = getelementptr %common.messages.AutocompleteResponse, %common.messages.AutocompleteResponse* %p_arg, i32 0, i32 7 * * * * * * * DotVarExp::toElem: q.importPaths @ const(string[]) * * * * * * * * VarExp::toElem: q @ const(AutocompleteResponse) * * * * * * * * * DtoSymbolAddress ('q' of type 'const(AutocompleteResponse)') * * * * * * * * * * function param * * * * * * * * * * type: const(AutocompleteResponse) * * * * * * * * Indexing aggregate field common.messages.AutocompleteResponse.importPaths: * * * * * * * * * Value: %121 = getelementptr %common.messages.AutocompleteResponse, %common.messages.AutocompleteResponse* %q_arg, i32 0, i32 7 * * * * * * * static or dynamic array * * * * * * * comparing arrays * * * * * * * casting to dynamic arrays * * * * * * * DtoCastArray * * * * * * * * from array or sarray * * * * * * * * to array * * * * * * * * DtoArrayLen * * * * * * * * DtoArrayPtr * * * * * * * * isslice * * * * * * * DtoCastArray * * * * * * * * from array or sarray * * * * * * * * to array * * * * * * * * DtoArrayLen * * * * * * * * DtoArrayPtr * * * * * * * * isslice * * * * * * * DtoTypeInfoOf(type = 'const(string)[]', base='1') * * * * * * * * Type::getTypeInfo(): const(string)[] * * * * * * * * TypeInfoDeclaration::codegen(typeid(const(string)[])) * * * * * return value is '0x1211eba8' * * DtoDefineFunction(common.messages.AutocompleteResponse.__xtoHash): * * * Doing function body for: __xtoHash * * * DtoCreateNestedContext for __xtoHash * * * * DtoCreateNestedContextType for common.messages.AutocompleteResponse.__xtoHash * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): * * * * * ExpStatement::toIR(): * * * * * * DeclarationExp::toElem: ulong h = 0LU; | T=void * * * * * * * DtoDeclarationExp: h * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * llvm value for decl: %h = alloca i64, align 8 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: h = 0LU | (ulong)(ulong = ulong) * * * * * * * * * * VarExp::toElem: h @ ulong * * * * * * * * * * * DtoSymbolAddress ('h' of type 'ulong') * * * * * * * * * * * * a normal variable * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * value = i64 0 * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %h = alloca i64, align 8 * * * * * * * * * * * rhs: i64 0 * * * * * UnrolledLoopStatement::toIR(): * * * * * * ScopeStatement::toIR(): * * * * * * * CompoundStatement::toIR(): * * * * * * * * ExpStatement::toIR(): * * * * * * * * * DeclarationExp::toElem: enum ulong i = 0LU; | T=void * * * * * * * * * * DtoDeclarationExp: i * * * * * * * * * * * VarDeclaration * * * * * * * * * * * Manifest constant, nothing to do. * * * * * * * * ExpStatement::toIR(): * * * * * * * * * DeclarationExp::toElem: alias T = const(string); | T=void * * * * * * * * * * DtoDeclarationExp: T * * * * * * * * * * * Ignoring Symbol: alias * * * * * * * * ExpStatement::toIR(): * * * * * * * * * AddAssignExp::toElem: h += typeid(const(string)).getHash(cast(const(void*))&p.completionType) @ ulong * * * * * * * * * * Caching l-value of h += typeid(const(string)).getHash(cast(const(void*))&p.completionType) => h * * * * * * * * * * * VarExp::toElem: h @ ulong * * * * * * * * * * * * DtoSymbolAddress ('h' of type 'ulong') * * * * * * * * * * * * * a normal variable * * * * * * * * * * AddExp::toElem: h + typeid(const(string)).getHash(cast(const(void*))&p.completionType) @ ulong * * * * * * * * * * * VarExp::toElem: h @ ulong * * * * * * * * * * * CallExp::toElem: typeid(const(string)).getHash(cast(const(void*))&p.completionType) @ ulong * * * * * * * * * * * * DotVarExp::toElem: typeid(const(string)).getHash @ const nothrow @trusted ulong(const(void*) p) * * * * * * * * * * * * * SymOffExp::toElem: typeid(const(string)) @ object.TypeInfo * * * * * * * * * * * * * * DtoSymbolAddress ('typeid(const(string))' of type 'object.TypeInfo_Const') * * * * * * * * * * * * * * * TypeInfoDeclaration * * * * * * * * * * * * * * Casting from 'TypeInfo_Const*' to 'object.TypeInfo' * * * * * * * * * * * * * * * src: %object.TypeInfo_Const* bitcast (%"typeid(const(string))"* @_D13TypeInfo_xAya6__initZ to %object.TypeInfo_Const*) * * * * * * * * * * * * * * * to type: %object.TypeInfo* * * * * * * * * * * * * * vthis: %object.TypeInfo* bitcast (%"typeid(const(string))"* @_D13TypeInfo_xAya6__initZ to %object.TypeInfo*) * * * * * * * * * * * * * funcval: %3 = load i64 (%object.TypeInfo*, i8*)*, i64 (%object.TypeInfo*, i8*)** %"typeid(const(string)).getHash@vtbl", align 8 * * * * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * * * * DtoFunctionType(const nothrow @trusted ulong(const(void*) p)) * * * * * * * * * * * * * funcval casted: %"typeid(const(string)).getHash" = load i64 (%object.TypeInfo*, i8*)*, i64 (%object.TypeInfo*, i8*)** %"typeid(const(string)).getHash@vtbl", align 8 * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * %object.TypeInfo* bitcast (%"typeid(const(string))"* @_D13TypeInfo_xAya6__initZ to %object.TypeInfo*) * * * * * * * * * * * * * Function type: const nothrow @trusted ulong(const(void*) p) * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * CastExp::toElem: cast(const(void*))&p.completionType @ const(void*) * * * * * * * * * * * * * * * AddrExp::toElem: &p.completionType @ const(string)* * * * * * * * * * * * * * * * * DotVarExp::toElem: p.completionType @ const(string) * * * * * * * * * * * * * * * * * VarExp::toElem: p @ const(AutocompleteResponse) * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('p' of type 'const(AutocompleteResponse)') * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * type: const(AutocompleteResponse) * * * * * * * * * * * * * * * * * Indexing aggregate field common.messages.AutocompleteResponse.completionType: * * * * * * * * * * * * * * * * * * Value: %3 = getelementptr %common.messages.AutocompleteResponse, %common.messages.AutocompleteResponse* %p_arg, i32 0, i32 0 * * * * * * * * * * * * * * * * is nothing special * * * * * * * * * * * * * * * * lval: %3 = getelementptr %common.messages.AutocompleteResponse, %common.messages.AutocompleteResponse* %p_arg, i32 0, i32 0 * * * * * * * * * * * * * * * Casting from 'const(string)*' to 'const(void*)' * * * * * * * * * * * * * * * * src: %3 = getelementptr %common.messages.AutocompleteResponse, %common.messages.AutocompleteResponse* %p_arg, i32 0, i32 0 * * * * * * * * * * * * * * * * to type: i8* * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %h = alloca i64, align 8 * * * * * * * * * * * rhs: %7 = add i64 %6, %5 * * * * * * ScopeStatement::toIR(): * * * * * * * CompoundStatement::toIR(): * * * * * * * * ExpStatement::toIR(): * * * * * * * * * DeclarationExp::toElem: enum ulong i = 1LU; | T=void * * * * * * * * * * DtoDeclarationExp: i * * * * * * * * * * * VarDeclaration * * * * * * * * * * * Manifest constant, nothing to do. * * * * * * * * ExpStatement::toIR(): * * * * * * * * * DeclarationExp::toElem: alias T = const(string); | T=void * * * * * * * * * * DtoDeclarationExp: T * * * * * * * * * * * Ignoring Symbol: alias * * * * * * * * ExpStatement::toIR(): * * * * * * * * * AddAssignExp::toElem: h += typeid(const(string)).getHash(cast(const(void*))&p.symbolFilePath) @ ulong * * * * * * * * * * Caching l-value of h += typeid(const(string)).getHash(cast(const(void*))&p.symbolFilePath) => h * * * * * * * * * * * VarExp::toElem: h @ ulong * * * * * * * * * * * * DtoSymbolAddress ('h' of type 'ulong') * * * * * * * * * * * * * a normal variable * * * * * * * * * * AddExp::toElem: h + typeid(const(string)).getHash(cast(const(void*))&p.symbolFilePath) @ ulong * * * * * * * * * * * VarExp::toElem: h @ ulong * * * * * * * * * * * CallExp::toElem: typeid(const(string)).getHash(cast(const(void*))&p.symbolFilePath) @ ulong * * * * * * * * * * * * DotVarExp::toElem: typeid(const(string)).getHash @ const nothrow @trusted ulong(const(void*) p) * * * * * * * * * * * * * SymOffExp::toElem: typeid(const(string)) @ object.TypeInfo * * * * * * * * * * * * * * DtoSymbolAddress ('typeid(const(string))' of type 'object.TypeInfo_Const') * * * * * * * * * * * * * * * TypeInfoDeclaration * * * * * * * * * * * * * * Casting from 'TypeInfo_Const*' to 'object.TypeInfo' * * * * * * * * * * * * * * * src: %object.TypeInfo_Const* bitcast (%"typeid(const(string))"* @_D13TypeInfo_xAya6__initZ to %object.TypeInfo_Const*) * * * * * * * * * * * * * * * to type: %object.TypeInfo* * * * * * * * * * * * * * vthis: %object.TypeInfo* bitcast (%"typeid(const(string))"* @_D13TypeInfo_xAya6__initZ to %object.TypeInfo*) * * * * * * * * * * * * * funcval: %10 = load i64 (%object.TypeInfo*, i8*)*, i64 (%object.TypeInfo*, i8*)** %"typeid(const(string)).getHash@vtbl8", align 8 * * * * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * * * * DtoFunctionType(const nothrow @trusted ulong(const(void*) p)) * * * * * * * * * * * * * funcval casted: %"typeid(const(string)).getHash9" = load i64 (%object.TypeInfo*, i8*)*, i64 (%object.TypeInfo*, i8*)** %"typeid(const(string)).getHash@vtbl8", align 8 * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * %object.TypeInfo* bitcast (%"typeid(const(string))"* @_D13TypeInfo_xAya6__initZ to %object.TypeInfo*) * * * * * * * * * * * * * Function type: const nothrow @trusted ulong(const(void*) p) * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * CastExp::toElem: cast(const(void*))&p.symbolFilePath @ const(void*) * * * * * * * * * * * * * * * AddrExp::toElem: &p.symbolFilePath @ const(string)* * * * * * * * * * * * * * * * * DotVarExp::toElem: p.symbolFilePath @ const(string) * * * * * * * * * * * * * * * * * VarExp::toElem: p @ const(AutocompleteResponse) * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('p' of type 'const(AutocompleteResponse)') * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * type: const(AutocompleteResponse) * * * * * * * * * * * * * * * * * Indexing aggregate field common.messages.AutocompleteResponse.symbolFilePath: * * * * * * * * * * * * * * * * * * Value: %10 = getelementptr %common.messages.AutocompleteResponse, %common.messages.AutocompleteResponse* %p_arg, i32 0, i32 1 * * * * * * * * * * * * * * * * is nothing special * * * * * * * * * * * * * * * * lval: %10 = getelementptr %common.messages.AutocompleteResponse, %common.messages.AutocompleteResponse* %p_arg, i32 0, i32 1 * * * * * * * * * * * * * * * Casting from 'const(string)*' to 'const(void*)' * * * * * * * * * * * * * * * * src: %10 = getelementptr %common.messages.AutocompleteResponse, %common.messages.AutocompleteResponse* %p_arg, i32 0, i32 1 * * * * * * * * * * * * * * * * to type: i8* * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %h = alloca i64, align 8 * * * * * * * * * * * rhs: %14 = add i64 %13, %12 * * * * * * ScopeStatement::toIR(): * * * * * * * CompoundStatement::toIR(): * * * * * * * * ExpStatement::toIR(): * * * * * * * * * DeclarationExp::toElem: enum ulong i = 2LU; | T=void * * * * * * * * * * DtoDeclarationExp: i * * * * * * * * * * * VarDeclaration * * * * * * * * * * * Manifest constant, nothing to do. * * * * * * * * ExpStatement::toIR(): * * * * * * * * * DeclarationExp::toElem: alias T = const(ulong); | T=void * * * * * * * * * * DtoDeclarationExp: T * * * * * * * * * * * Ignoring Symbol: alias * * * * * * * * ExpStatement::toIR(): * * * * * * * * * AddAssignExp::toElem: h += typeid(const(ulong)).getHash(cast(const(void*))&p.symbolLocation) @ ulong * * * * * * * * * * Caching l-value of h += typeid(const(ulong)).getHash(cast(const(void*))&p.symbolLocation) => h * * * * * * * * * * * VarExp::toElem: h @ ulong * * * * * * * * * * * * DtoSymbolAddress ('h' of type 'ulong') * * * * * * * * * * * * * a normal variable * * * * * * * * * * AddExp::toElem: h + typeid(const(ulong)).getHash(cast(const(void*))&p.symbolLocation) @ ulong * * * * * * * * * * * VarExp::toElem: h @ ulong * * * * * * * * * * * CallExp::toElem: typeid(const(ulong)).getHash(cast(const(void*))&p.symbolLocation) @ ulong * * * * * * * * * * * * DotVarExp::toElem: typeid(const(ulong)).getHash @ const nothrow @trusted ulong(const(void*) p) * * * * * * * * * * * * * SymOffExp::toElem: typeid(const(ulong)) @ object.TypeInfo * * * * * * * * * * * * * * DtoSymbolAddress ('typeid(const(ulong))' of type 'object.TypeInfo_Const') * * * * * * * * * * * * * * * TypeInfoDeclaration * * * * * * * * * * * * * * Casting from 'TypeInfo_Const*' to 'object.TypeInfo' * * * * * * * * * * * * * * * src: %object.TypeInfo_Const* bitcast (%"typeid(const(ulong))"* @_D11TypeInfo_xm6__initZ to %object.TypeInfo_Const*) * * * * * * * * * * * * * * * to type: %object.TypeInfo* * * * * * * * * * * * * * vthis: %object.TypeInfo* bitcast (%"typeid(const(ulong))"* @_D11TypeInfo_xm6__initZ to %object.TypeInfo*) * * * * * * * * * * * * * funcval: %17 = load i64 (%object.TypeInfo*, i8*)*, i64 (%object.TypeInfo*, i8*)** %"typeid(const(ulong)).getHash@vtbl", align 8 * * * * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * * * * DtoFunctionType(const nothrow @trusted ulong(const(void*) p)) * * * * * * * * * * * * * funcval casted: %"typeid(const(ulong)).getHash" = load i64 (%object.TypeInfo*, i8*)*, i64 (%object.TypeInfo*, i8*)** %"typeid(const(ulong)).getHash@vtbl", align 8 * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * %object.TypeInfo* bitcast (%"typeid(const(ulong))"* @_D11TypeInfo_xm6__initZ to %object.TypeInfo*) * * * * * * * * * * * * * Function type: const nothrow @trusted ulong(const(void*) p) * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * CastExp::toElem: cast(const(void*))&p.symbolLocation @ const(void*) * * * * * * * * * * * * * * * AddrExp::toElem: &p.symbolLocation @ const(ulong)* * * * * * * * * * * * * * * * * DotVarExp::toElem: p.symbolLocation @ const(ulong) * * * * * * * * * * * * * * * * * VarExp::toElem: p @ const(AutocompleteResponse) * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('p' of type 'const(AutocompleteResponse)') * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * type: const(AutocompleteResponse) * * * * * * * * * * * * * * * * * Indexing aggregate field common.messages.AutocompleteResponse.symbolLocation: * * * * * * * * * * * * * * * * * * Value: %17 = getelementptr %common.messages.AutocompleteResponse, %common.messages.AutocompleteResponse* %p_arg, i32 0, i32 2 * * * * * * * * * * * * * * * * is nothing special * * * * * * * * * * * * * * * * lval: %17 = getelementptr %common.messages.AutocompleteResponse, %common.messages.AutocompleteResponse* %p_arg, i32 0, i32 2 * * * * * * * * * * * * * * * Casting from 'const(ulong)*' to 'const(void*)' * * * * * * * * * * * * * * * * src: %17 = getelementptr %common.messages.AutocompleteResponse, %common.messages.AutocompleteResponse* %p_arg, i32 0, i32 2 * * * * * * * * * * * * * * * * to type: i8* * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %h = alloca i64, align 8 * * * * * * * * * * * rhs: %21 = add i64 %20, %19 * * * * * * ScopeStatement::toIR(): * * * * * * * CompoundStatement::toIR(): * * * * * * * * ExpStatement::toIR(): * * * * * * * * * DeclarationExp::toElem: enum ulong i = 3LU; | T=void * * * * * * * * * * DtoDeclarationExp: i * * * * * * * * * * * VarDeclaration * * * * * * * * * * * Manifest constant, nothing to do. * * * * * * * * ExpStatement::toIR(): * * * * * * * * * DeclarationExp::toElem: alias T = const(string[]); | T=void * * * * * * * * * * DtoDeclarationExp: T * * * * * * * * * * * Ignoring Symbol: alias * * * * * * * * ExpStatement::toIR(): * * * * * * * * * AddAssignExp::toElem: h += typeid(const(string[])).getHash(cast(const(void*))&p.docComments) @ ulong * * * * * * * * * * Caching l-value of h += typeid(const(string[])).getHash(cast(const(void*))&p.docComments) => h * * * * * * * * * * * VarExp::toElem: h @ ulong * * * * * * * * * * * * DtoSymbolAddress ('h' of type 'ulong') * * * * * * * * * * * * * a normal variable * * * * * * * * * * AddExp::toElem: h + typeid(const(string[])).getHash(cast(const(void*))&p.docComments) @ ulong * * * * * * * * * * * VarExp::toElem: h @ ulong * * * * * * * * * * * CallExp::toElem: typeid(const(string[])).getHash(cast(const(void*))&p.docComments) @ ulong * * * * * * * * * * * * DotVarExp::toElem: typeid(const(string[])).getHash @ const nothrow @trusted ulong(const(void*) p) * * * * * * * * * * * * * SymOffExp::toElem: typeid(const(string[])) @ object.TypeInfo * * * * * * * * * * * * * * DtoSymbolAddress ('typeid(const(string[]))' of type 'object.TypeInfo_Const') * * * * * * * * * * * * * * * TypeInfoDeclaration * * * * * * * * * * * * * * Casting from 'TypeInfo_Const*' to 'object.TypeInfo' * * * * * * * * * * * * * * * src: %object.TypeInfo_Const* bitcast (%"typeid(const(string[]))"* @_D14TypeInfo_xAAya6__initZ to %object.TypeInfo_Const*) * * * * * * * * * * * * * * * to type: %object.TypeInfo* * * * * * * * * * * * * * vthis: %object.TypeInfo* bitcast (%"typeid(const(string[]))"* @_D14TypeInfo_xAAya6__initZ to %object.TypeInfo*) * * * * * * * * * * * * * funcval: %24 = load i64 (%object.TypeInfo*, i8*)*, i64 (%object.TypeInfo*, i8*)** %"typeid(const(string[])).getHash@vtbl", align 8 * * * * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * * * * DtoFunctionType(const nothrow @trusted ulong(const(void*) p)) * * * * * * * * * * * * * funcval casted: %"typeid(const(string[])).getHash" = load i64 (%object.TypeInfo*, i8*)*, i64 (%object.TypeInfo*, i8*)** %"typeid(const(string[])).getHash@vtbl", align 8 * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * %object.TypeInfo* bitcast (%"typeid(const(string[]))"* @_D14TypeInfo_xAAya6__initZ to %object.TypeInfo*) * * * * * * * * * * * * * Function type: const nothrow @trusted ulong(const(void*) p) * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * CastExp::toElem: cast(const(void*))&p.docComments @ const(void*) * * * * * * * * * * * * * * * AddrExp::toElem: &p.docComments @ const(string[])* * * * * * * * * * * * * * * * * DotVarExp::toElem: p.docComments @ const(string[]) * * * * * * * * * * * * * * * * * VarExp::toElem: p @ const(AutocompleteResponse) * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('p' of type 'const(AutocompleteResponse)') * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * type: const(AutocompleteResponse) * * * * * * * * * * * * * * * * * Indexing aggregate field common.messages.AutocompleteResponse.docComments: * * * * * * * * * * * * * * * * * * Value: %24 = getelementptr %common.messages.AutocompleteResponse, %common.messages.AutocompleteResponse* %p_arg, i32 0, i32 3 * * * * * * * * * * * * * * * * is nothing special * * * * * * * * * * * * * * * * lval: %24 = getelementptr %common.messages.AutocompleteResponse, %common.messages.AutocompleteResponse* %p_arg, i32 0, i32 3 * * * * * * * * * * * * * * * Casting from 'const(string[])*' to 'const(void*)' * * * * * * * * * * * * * * * * src: %24 = getelementptr %common.messages.AutocompleteResponse, %common.messages.AutocompleteResponse* %p_arg, i32 0, i32 3 * * * * * * * * * * * * * * * * to type: i8* * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %h = alloca i64, align 8 * * * * * * * * * * * rhs: %28 = add i64 %27, %26 * * * * * * ScopeStatement::toIR(): * * * * * * * CompoundStatement::toIR(): * * * * * * * * ExpStatement::toIR(): * * * * * * * * * DeclarationExp::toElem: enum ulong i = 4LU; | T=void * * * * * * * * * * DtoDeclarationExp: i * * * * * * * * * * * VarDeclaration * * * * * * * * * * * Manifest constant, nothing to do. * * * * * * * * ExpStatement::toIR(): * * * * * * * * * DeclarationExp::toElem: alias T = const(string[]); | T=void * * * * * * * * * * DtoDeclarationExp: T * * * * * * * * * * * Ignoring Symbol: alias * * * * * * * * ExpStatement::toIR(): * * * * * * * * * AddAssignExp::toElem: h += typeid(const(string[])).getHash(cast(const(void*))&p.completions) @ ulong * * * * * * * * * * Caching l-value of h += typeid(const(string[])).getHash(cast(const(void*))&p.completions) => h * * * * * * * * * * * VarExp::toElem: h @ ulong * * * * * * * * * * * * DtoSymbolAddress ('h' of type 'ulong') * * * * * * * * * * * * * a normal variable * * * * * * * * * * AddExp::toElem: h + typeid(const(string[])).getHash(cast(const(void*))&p.completions) @ ulong * * * * * * * * * * * VarExp::toElem: h @ ulong * * * * * * * * * * * CallExp::toElem: typeid(const(string[])).getHash(cast(const(void*))&p.completions) @ ulong * * * * * * * * * * * * DotVarExp::toElem: typeid(const(string[])).getHash @ const nothrow @trusted ulong(const(void*) p) * * * * * * * * * * * * * SymOffExp::toElem: typeid(const(string[])) @ object.TypeInfo * * * * * * * * * * * * * * DtoSymbolAddress ('typeid(const(string[]))' of type 'object.TypeInfo_Const') * * * * * * * * * * * * * * * TypeInfoDeclaration * * * * * * * * * * * * * * Casting from 'TypeInfo_Const*' to 'object.TypeInfo' * * * * * * * * * * * * * * * src: %object.TypeInfo_Const* bitcast (%"typeid(const(string[]))"* @_D14TypeInfo_xAAya6__initZ to %object.TypeInfo_Const*) * * * * * * * * * * * * * * * to type: %object.TypeInfo* * * * * * * * * * * * * * vthis: %object.TypeInfo* bitcast (%"typeid(const(string[]))"* @_D14TypeInfo_xAAya6__initZ to %object.TypeInfo*) * * * * * * * * * * * * * funcval: %31 = load i64 (%object.TypeInfo*, i8*)*, i64 (%object.TypeInfo*, i8*)** %"typeid(const(string[])).getHash@vtbl10", align 8 * * * * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * * * * DtoFunctionType(const nothrow @trusted ulong(const(void*) p)) * * * * * * * * * * * * * funcval casted: %"typeid(const(string[])).getHash11" = load i64 (%object.TypeInfo*, i8*)*, i64 (%object.TypeInfo*, i8*)** %"typeid(const(string[])).getHash@vtbl10", align 8 * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * %object.TypeInfo* bitcast (%"typeid(const(string[]))"* @_D14TypeInfo_xAAya6__initZ to %object.TypeInfo*) * * * * * * * * * * * * * Function type: const nothrow @trusted ulong(const(void*) p) * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * CastExp::toElem: cast(const(void*))&p.completions @ const(void*) * * * * * * * * * * * * * * * AddrExp::toElem: &p.completions @ const(string[])* * * * * * * * * * * * * * * * * DotVarExp::toElem: p.completions @ const(string[]) * * * * * * * * * * * * * * * * * VarExp::toElem: p @ const(AutocompleteResponse) * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('p' of type 'const(AutocompleteResponse)') * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * type: const(AutocompleteResponse) * * * * * * * * * * * * * * * * * Indexing aggregate field common.messages.AutocompleteResponse.completions: * * * * * * * * * * * * * * * * * * Value: %31 = getelementptr %common.messages.AutocompleteResponse, %common.messages.AutocompleteResponse* %p_arg, i32 0, i32 4 * * * * * * * * * * * * * * * * is nothing special * * * * * * * * * * * * * * * * lval: %31 = getelementptr %common.messages.AutocompleteResponse, %common.messages.AutocompleteResponse* %p_arg, i32 0, i32 4 * * * * * * * * * * * * * * * Casting from 'const(string[])*' to 'const(void*)' * * * * * * * * * * * * * * * * src: %31 = getelementptr %common.messages.AutocompleteResponse, %common.messages.AutocompleteResponse* %p_arg, i32 0, i32 4 * * * * * * * * * * * * * * * * to type: i8* * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %h = alloca i64, align 8 * * * * * * * * * * * rhs: %35 = add i64 %34, %33 * * * * * * ScopeStatement::toIR(): * * * * * * * CompoundStatement::toIR(): * * * * * * * * ExpStatement::toIR(): * * * * * * * * * DeclarationExp::toElem: enum ulong i = 5LU; | T=void * * * * * * * * * * DtoDeclarationExp: i * * * * * * * * * * * VarDeclaration * * * * * * * * * * * Manifest constant, nothing to do. * * * * * * * * ExpStatement::toIR(): * * * * * * * * * DeclarationExp::toElem: alias T = const(char[]); | T=void * * * * * * * * * * DtoDeclarationExp: T * * * * * * * * * * * Ignoring Symbol: alias * * * * * * * * ExpStatement::toIR(): * * * * * * * * * AddAssignExp::toElem: h += typeid(const(char[])).getHash(cast(const(void*))&p.completionKinds) @ ulong * * * * * * * * * * Caching l-value of h += typeid(const(char[])).getHash(cast(const(void*))&p.completionKinds) => h * * * * * * * * * * * VarExp::toElem: h @ ulong * * * * * * * * * * * * DtoSymbolAddress ('h' of type 'ulong') * * * * * * * * * * * * * a normal variable * * * * * * * * * * AddExp::toElem: h + typeid(const(char[])).getHash(cast(const(void*))&p.completionKinds) @ ulong * * * * * * * * * * * VarExp::toElem: h @ ulong * * * * * * * * * * * CallExp::toElem: typeid(const(char[])).getHash(cast(const(void*))&p.completionKinds) @ ulong * * * * * * * * * * * * DotVarExp::toElem: typeid(const(char[])).getHash @ const nothrow @trusted ulong(const(void*) p) * * * * * * * * * * * * * SymOffExp::toElem: typeid(const(char[])) @ object.TypeInfo * * * * * * * * * * * * * * DtoSymbolAddress ('typeid(const(char[]))' of type 'object.TypeInfo_Const') * * * * * * * * * * * * * * * TypeInfoDeclaration * * * * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(const(char[]))) * * * * * * * * * * * * * * * * type = 'const(char[])' * * * * * * * * * * * * * * * * typeinfo mangle: _D12TypeInfo_xAa6__initZ * * * * * * * * * * * * * * * * TypeInfoConstDeclaration::llvmDefine() typeid(const(char[])) * * * * * * * * * * * * * * * * * DtoTypeInfoOf(type = 'const(char)[]', base='1') * * * * * * * * * * * * * * * * * * Type::getTypeInfo(): const(char)[] * * * * * * * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(const(char)[])) * * * * * * * * * * * * * * Casting from 'TypeInfo_Const*' to 'object.TypeInfo' * * * * * * * * * * * * * * * src: %object.TypeInfo_Const* bitcast (%"typeid(const(char[]))"* @_D12TypeInfo_xAa6__initZ to %object.TypeInfo_Const*) * * * * * * * * * * * * * * * to type: %object.TypeInfo* * * * * * * * * * * * * * vthis: %object.TypeInfo* bitcast (%"typeid(const(char[]))"* @_D12TypeInfo_xAa6__initZ to %object.TypeInfo*) * * * * * * * * * * * * * funcval: %38 = load i64 (%object.TypeInfo*, i8*)*, i64 (%object.TypeInfo*, i8*)** %"typeid(const(char[])).getHash@vtbl", align 8 * * * * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * * * * DtoFunctionType(const nothrow @trusted ulong(const(void*) p)) * * * * * * * * * * * * * funcval casted: %"typeid(const(char[])).getHash" = load i64 (%object.TypeInfo*, i8*)*, i64 (%object.TypeInfo*, i8*)** %"typeid(const(char[])).getHash@vtbl", align 8 * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * %object.TypeInfo* bitcast (%"typeid(const(char[]))"* @_D12TypeInfo_xAa6__initZ to %object.TypeInfo*) * * * * * * * * * * * * * Function type: const nothrow @trusted ulong(const(void*) p) * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * CastExp::toElem: cast(const(void*))&p.completionKinds @ const(void*) * * * * * * * * * * * * * * * AddrExp::toElem: &p.completionKinds @ const(char[])* * * * * * * * * * * * * * * * * DotVarExp::toElem: p.completionKinds @ const(char[]) * * * * * * * * * * * * * * * * * VarExp::toElem: p @ const(AutocompleteResponse) * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('p' of type 'const(AutocompleteResponse)') * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * type: const(AutocompleteResponse) * * * * * * * * * * * * * * * * * Indexing aggregate field common.messages.AutocompleteResponse.completionKinds: * * * * * * * * * * * * * * * * * * Value: %38 = getelementptr %common.messages.AutocompleteResponse, %common.messages.AutocompleteResponse* %p_arg, i32 0, i32 5 * * * * * * * * * * * * * * * * is nothing special * * * * * * * * * * * * * * * * lval: %38 = getelementptr %common.messages.AutocompleteResponse, %common.messages.AutocompleteResponse* %p_arg, i32 0, i32 5 * * * * * * * * * * * * * * * * Building type: const(char[])* * * * * * * * * * * * * * * * Casting from 'const(char[])*' to 'const(void*)' * * * * * * * * * * * * * * * * src: %38 = getelementptr %common.messages.AutocompleteResponse, %common.messages.AutocompleteResponse* %p_arg, i32 0, i32 5 * * * * * * * * * * * * * * * * to type: i8* * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %h = alloca i64, align 8 * * * * * * * * * * * rhs: %42 = add i64 %41, %40 * * * * * * ScopeStatement::toIR(): * * * * * * * CompoundStatement::toIR(): * * * * * * * * ExpStatement::toIR(): * * * * * * * * * DeclarationExp::toElem: enum ulong i = 6LU; | T=void * * * * * * * * * * DtoDeclarationExp: i * * * * * * * * * * * VarDeclaration * * * * * * * * * * * Manifest constant, nothing to do. * * * * * * * * ExpStatement::toIR(): * * * * * * * * * DeclarationExp::toElem: alias T = const(ulong[]); | T=void * * * * * * * * * * DtoDeclarationExp: T * * * * * * * * * * * Ignoring Symbol: alias * * * * * * * * ExpStatement::toIR(): * * * * * * * * * AddAssignExp::toElem: h += typeid(const(ulong[])).getHash(cast(const(void*))&p.locations) @ ulong * * * * * * * * * * Caching l-value of h += typeid(const(ulong[])).getHash(cast(const(void*))&p.locations) => h * * * * * * * * * * * VarExp::toElem: h @ ulong * * * * * * * * * * * * DtoSymbolAddress ('h' of type 'ulong') * * * * * * * * * * * * * a normal variable * * * * * * * * * * AddExp::toElem: h + typeid(const(ulong[])).getHash(cast(const(void*))&p.locations) @ ulong * * * * * * * * * * * VarExp::toElem: h @ ulong * * * * * * * * * * * CallExp::toElem: typeid(const(ulong[])).getHash(cast(const(void*))&p.locations) @ ulong * * * * * * * * * * * * DotVarExp::toElem: typeid(const(ulong[])).getHash @ const nothrow @trusted ulong(const(void*) p) * * * * * * * * * * * * * SymOffExp::toElem: typeid(const(ulong[])) @ object.TypeInfo * * * * * * * * * * * * * * DtoSymbolAddress ('typeid(const(ulong[]))' of type 'object.TypeInfo_Const') * * * * * * * * * * * * * * * TypeInfoDeclaration * * * * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(const(ulong[]))) * * * * * * * * * * * * * * * * type = 'const(ulong[])' * * * * * * * * * * * * * * * * typeinfo mangle: _D12TypeInfo_xAm6__initZ * * * * * * * * * * * * * * * * TypeInfoConstDeclaration::llvmDefine() typeid(const(ulong[])) * * * * * * * * * * * * * * * * * DtoTypeInfoOf(type = 'const(ulong)[]', base='1') * * * * * * * * * * * * * * * * * * Type::getTypeInfo(): const(ulong)[] * * * * * * * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(const(ulong)[])) * * * * * * * * * * * * * * Casting from 'TypeInfo_Const*' to 'object.TypeInfo' * * * * * * * * * * * * * * * src: %object.TypeInfo_Const* bitcast (%"typeid(const(ulong[]))"* @_D12TypeInfo_xAm6__initZ to %object.TypeInfo_Const*) * * * * * * * * * * * * * * * to type: %object.TypeInfo* * * * * * * * * * * * * * vthis: %object.TypeInfo* bitcast (%"typeid(const(ulong[]))"* @_D12TypeInfo_xAm6__initZ to %object.TypeInfo*) * * * * * * * * * * * * * funcval: %45 = load i64 (%object.TypeInfo*, i8*)*, i64 (%object.TypeInfo*, i8*)** %"typeid(const(ulong[])).getHash@vtbl", align 8 * * * * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * * * * DtoFunctionType(const nothrow @trusted ulong(const(void*) p)) * * * * * * * * * * * * * funcval casted: %"typeid(const(ulong[])).getHash" = load i64 (%object.TypeInfo*, i8*)*, i64 (%object.TypeInfo*, i8*)** %"typeid(const(ulong[])).getHash@vtbl", align 8 * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * %object.TypeInfo* bitcast (%"typeid(const(ulong[]))"* @_D12TypeInfo_xAm6__initZ to %object.TypeInfo*) * * * * * * * * * * * * * Function type: const nothrow @trusted ulong(const(void*) p) * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * CastExp::toElem: cast(const(void*))&p.locations @ const(void*) * * * * * * * * * * * * * * * AddrExp::toElem: &p.locations @ const(ulong[])* * * * * * * * * * * * * * * * * DotVarExp::toElem: p.locations @ const(ulong[]) * * * * * * * * * * * * * * * * * VarExp::toElem: p @ const(AutocompleteResponse) * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('p' of type 'const(AutocompleteResponse)') * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * type: const(AutocompleteResponse) * * * * * * * * * * * * * * * * * Indexing aggregate field common.messages.AutocompleteResponse.locations: * * * * * * * * * * * * * * * * * * Value: %45 = getelementptr %common.messages.AutocompleteResponse, %common.messages.AutocompleteResponse* %p_arg, i32 0, i32 6 * * * * * * * * * * * * * * * * is nothing special * * * * * * * * * * * * * * * * lval: %45 = getelementptr %common.messages.AutocompleteResponse, %common.messages.AutocompleteResponse* %p_arg, i32 0, i32 6 * * * * * * * * * * * * * * * * Building type: const(ulong[])* * * * * * * * * * * * * * * * Casting from 'const(ulong[])*' to 'const(void*)' * * * * * * * * * * * * * * * * src: %45 = getelementptr %common.messages.AutocompleteResponse, %common.messages.AutocompleteResponse* %p_arg, i32 0, i32 6 * * * * * * * * * * * * * * * * to type: i8* * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %h = alloca i64, align 8 * * * * * * * * * * * rhs: %49 = add i64 %48, %47 * * * * * * ScopeStatement::toIR(): * * * * * * * CompoundStatement::toIR(): * * * * * * * * ExpStatement::toIR(): * * * * * * * * * DeclarationExp::toElem: enum ulong i = 7LU; | T=void * * * * * * * * * * DtoDeclarationExp: i * * * * * * * * * * * VarDeclaration * * * * * * * * * * * Manifest constant, nothing to do. * * * * * * * * ExpStatement::toIR(): * * * * * * * * * DeclarationExp::toElem: alias T = const(string[]); | T=void * * * * * * * * * * DtoDeclarationExp: T * * * * * * * * * * * Ignoring Symbol: alias * * * * * * * * ExpStatement::toIR(): * * * * * * * * * AddAssignExp::toElem: h += typeid(const(string[])).getHash(cast(const(void*))&p.importPaths) @ ulong * * * * * * * * * * Caching l-value of h += typeid(const(string[])).getHash(cast(const(void*))&p.importPaths) => h * * * * * * * * * * * VarExp::toElem: h @ ulong * * * * * * * * * * * * DtoSymbolAddress ('h' of type 'ulong') * * * * * * * * * * * * * a normal variable * * * * * * * * * * AddExp::toElem: h + typeid(const(string[])).getHash(cast(const(void*))&p.importPaths) @ ulong * * * * * * * * * * * VarExp::toElem: h @ ulong * * * * * * * * * * * CallExp::toElem: typeid(const(string[])).getHash(cast(const(void*))&p.importPaths) @ ulong * * * * * * * * * * * * DotVarExp::toElem: typeid(const(string[])).getHash @ const nothrow @trusted ulong(const(void*) p) * * * * * * * * * * * * * SymOffExp::toElem: typeid(const(string[])) @ object.TypeInfo * * * * * * * * * * * * * * DtoSymbolAddress ('typeid(const(string[]))' of type 'object.TypeInfo_Const') * * * * * * * * * * * * * * * TypeInfoDeclaration * * * * * * * * * * * * * * Casting from 'TypeInfo_Const*' to 'object.TypeInfo' * * * * * * * * * * * * * * * src: %object.TypeInfo_Const* bitcast (%"typeid(const(string[]))"* @_D14TypeInfo_xAAya6__initZ to %object.TypeInfo_Const*) * * * * * * * * * * * * * * * to type: %object.TypeInfo* * * * * * * * * * * * * * vthis: %object.TypeInfo* bitcast (%"typeid(const(string[]))"* @_D14TypeInfo_xAAya6__initZ to %object.TypeInfo*) * * * * * * * * * * * * * funcval: %52 = load i64 (%object.TypeInfo*, i8*)*, i64 (%object.TypeInfo*, i8*)** %"typeid(const(string[])).getHash@vtbl12", align 8 * * * * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * * * * DtoFunctionType(const nothrow @trusted ulong(const(void*) p)) * * * * * * * * * * * * * funcval casted: %"typeid(const(string[])).getHash13" = load i64 (%object.TypeInfo*, i8*)*, i64 (%object.TypeInfo*, i8*)** %"typeid(const(string[])).getHash@vtbl12", align 8 * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * %object.TypeInfo* bitcast (%"typeid(const(string[]))"* @_D14TypeInfo_xAAya6__initZ to %object.TypeInfo*) * * * * * * * * * * * * * Function type: const nothrow @trusted ulong(const(void*) p) * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * CastExp::toElem: cast(const(void*))&p.importPaths @ const(void*) * * * * * * * * * * * * * * * AddrExp::toElem: &p.importPaths @ const(string[])* * * * * * * * * * * * * * * * * DotVarExp::toElem: p.importPaths @ const(string[]) * * * * * * * * * * * * * * * * * VarExp::toElem: p @ const(AutocompleteResponse) * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('p' of type 'const(AutocompleteResponse)') * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * type: const(AutocompleteResponse) * * * * * * * * * * * * * * * * * Indexing aggregate field common.messages.AutocompleteResponse.importPaths: * * * * * * * * * * * * * * * * * * Value: %52 = getelementptr %common.messages.AutocompleteResponse, %common.messages.AutocompleteResponse* %p_arg, i32 0, i32 7 * * * * * * * * * * * * * * * * is nothing special * * * * * * * * * * * * * * * * lval: %52 = getelementptr %common.messages.AutocompleteResponse, %common.messages.AutocompleteResponse* %p_arg, i32 0, i32 7 * * * * * * * * * * * * * * * Casting from 'const(string[])*' to 'const(void*)' * * * * * * * * * * * * * * * * src: %52 = getelementptr %common.messages.AutocompleteResponse, %common.messages.AutocompleteResponse* %p_arg, i32 0, i32 7 * * * * * * * * * * * * * * * * to type: i8* * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %h = alloca i64, align 8 * * * * * * * * * * * rhs: %56 = add i64 %55, %54 * * * * * ReturnStatement::toIR(): * * * * * * VarExp::toElem: h @ ulong * * * * * * * DtoSymbolAddress ('h' of type 'ulong') * * * * * * * * a normal variable * * * * * * return value is '0x121311b8' * DtoDefineFunction(common.messages.sendRequest): src/common/messages.d(167) * * DtoFunctionType(bool(Socket socket, AutocompleteRequest request)) * * * Building type: std.socket.Socket * * * * Building class type std.socket.Socket @ /usr/include/dlang/ldc/std/socket.d(2543) * * * * * Instance size: 24 * * * * * adding default initializer for struct field sock * * * * * adding default initializer for struct field _family * * * * * Building type: socket_t * * * * * Building type: socket_t * * * * * Building type: AddressFamily * * * * * Building type: AddressFamily * * * * * Building vtbl type for class std.socket.Socket * * * * * * Adding type of object.Object.toString * * * * * * isMember = this is: object.Object * * * * * * DtoFunctionType(string()) * * * * * * Adding type of object.Object.toHash * * * * * * isMember = this is: object.Object * * * * * * DtoFunctionType(nothrow @trusted ulong()) * * * * * * Adding type of object.Object.opCmp * * * * * * isMember = this is: object.Object * * * * * * DtoFunctionType(int(Object o)) * * * * * * Adding type of object.Object.opEquals * * * * * * isMember = this is: object.Object * * * * * * DtoFunctionType(bool(Object o)) * * * * * * Adding type of std.socket.Socket.handle * * * * * * isMember = this is: std.socket.Socket * * * * * * DtoFunctionType(const pure nothrow @nogc @property @safe socket_t()) * * * * * * * Building type: socket_t * * * * * * * x86-64 ABI: Transforming return type * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * Final function type: i32 (%std.socket.Socket*) * * * * * * Adding type of std.socket.Socket.blocking * * * * * * isMember = this is: std.socket.Socket * * * * * * DtoFunctionType(const nothrow @nogc @property @trusted bool()) * * * * * * * x86-64 ABI: Transforming return type * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * Final function type: i1 (%std.socket.Socket*) * * * * * * Adding type of std.socket.Socket.blocking * * * * * * isMember = this is: std.socket.Socket * * * * * * DtoFunctionType(@property @trusted void(bool byes)) * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * Final function type: void (%std.socket.Socket*, i1) * * * * * * Adding type of std.socket.Socket.addressFamily * * * * * * isMember = this is: std.socket.Socket * * * * * * DtoFunctionType(@property @safe AddressFamily()) * * * * * * * Building type: AddressFamily * * * * * * * x86-64 ABI: Transforming return type * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * Final function type: i32 (%std.socket.Socket*) * * * * * * Adding type of std.socket.Socket.isAlive * * * * * * isMember = this is: std.socket.Socket * * * * * * DtoFunctionType(const @property @trusted bool()) * * * * * * * x86-64 ABI: Transforming return type * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * Final function type: i1 (%std.socket.Socket*) * * * * * * Adding type of std.socket.Socket.bind * * * * * * isMember = this is: std.socket.Socket * * * * * * DtoFunctionType(@trusted void(Address addr)) * * * * * * * Building type: std.socket.Address * * * * * * * * Building class type std.socket.Address @ /usr/include/dlang/ldc/std/socket.d(1311) * * * * * * * * * Instance size: 16 * * * * * * * * * Building vtbl type for class std.socket.Address * * * * * * * * * * Adding type of std.socket.Address.toString * * * * * * * * * * isMember = this is: std.socket.Address * * * * * * * * * * DtoFunctionType(const @safe string()) * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * Final function type: { i64, i8* } (%std.socket.Address*) * * * * * * * * * * Adding type of object.Object.toHash * * * * * * * * * * isMember = this is: object.Object * * * * * * * * * * DtoFunctionType(nothrow @trusted ulong()) * * * * * * * * * * Adding type of object.Object.opCmp * * * * * * * * * * isMember = this is: object.Object * * * * * * * * * * DtoFunctionType(int(Object o)) * * * * * * * * * * Adding type of object.Object.opEquals * * * * * * * * * * isMember = this is: object.Object * * * * * * * * * * DtoFunctionType(bool(Object o)) * * * * * * * * * * Adding type of std.socket.Address.name * * * * * * * * * * isMember = this is: std.socket.Address * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @property @safe sockaddr*()) * * * * * * * * * * * Building type: sockaddr* * * * * * * * * * * * * Building type: sockaddr * * * * * * * * * * * * * Building struct type core.sys.posix.sys.socket.sockaddr @ /usr/include/dlang/ldc/core/sys/posix/sys/socket.d(140) * * * * * * * * * * * * * * adding default initializer for struct field sa_family * * * * * * * * * * * * * * adding default initializer for struct field sa_data * * * * * * * * * * * * * * Building type: byte[14] * * * * * * * * * * * * * * final struct type: %core.sys.posix.sys.socket.sockaddr = type { i16, [14 x i8] } * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * Final function type: %core.sys.posix.sys.socket.sockaddr* (%std.socket.Address*) * * * * * * * * * * Adding type of std.socket.Address.name * * * * * * * * * * isMember = this is: std.socket.Address * * * * * * * * * * DtoFunctionType(const pure nothrow @nogc @property @safe const(sockaddr)*()) * * * * * * * * * * * Building type: const(sockaddr)* * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * Final function type: %core.sys.posix.sys.socket.sockaddr* (%std.socket.Address*) * * * * * * * * * * Adding type of std.socket.Address.nameLen * * * * * * * * * * isMember = this is: std.socket.Address * * * * * * * * * * DtoFunctionType(const pure nothrow @nogc @property @safe uint()) * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * Final function type: i32 (%std.socket.Address*) * * * * * * * * * * Adding type of std.socket.Address.addressFamily * * * * * * * * * * isMember = this is: std.socket.Address * * * * * * * * * * DtoFunctionType(const pure nothrow @nogc @property @safe AddressFamily()) * * * * * * * * * * * Building type: AddressFamily * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * Final function type: i32 (%std.socket.Address*) * * * * * * * * * * Adding type of std.socket.Address.toAddrString * * * * * * * * * * isMember = this is: std.socket.Address * * * * * * * * * * DtoFunctionType(const @safe string()) * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * Final function type: { i64, i8* } (%std.socket.Address*) * * * * * * * * * * Adding type of std.socket.Address.toHostNameString * * * * * * * * * * isMember = this is: std.socket.Address * * * * * * * * * * DtoFunctionType(const @safe string()) * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * Final function type: { i64, i8* } (%std.socket.Address*) * * * * * * * * * * Adding type of std.socket.Address.toPortString * * * * * * * * * * isMember = this is: std.socket.Address * * * * * * * * * * DtoFunctionType(const @safe string()) * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * Final function type: { i64, i8* } (%std.socket.Address*) * * * * * * * * * * Adding type of std.socket.Address.toServiceNameString * * * * * * * * * * isMember = this is: std.socket.Address * * * * * * * * * * DtoFunctionType(const @safe string()) * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * Final function type: { i64, i8* } (%std.socket.Address*) * * * * * * * * * class type: %std.socket.Address = type { %std.socket.Address.__vtbl*, i8* } * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * Final function type: void (%std.socket.Socket*, %std.socket.Address*) * * * * * * Adding type of std.socket.Socket.connect * * * * * * isMember = this is: std.socket.Socket * * * * * * DtoFunctionType(@trusted void(Address to)) * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * Final function type: void (%std.socket.Socket*, %std.socket.Address*) * * * * * * Adding type of std.socket.Socket.listen * * * * * * isMember = this is: std.socket.Socket * * * * * * DtoFunctionType(@trusted void(int backlog)) * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * Final function type: void (%std.socket.Socket*, i32) * * * * * * Adding type of std.socket.Socket.accepting * * * * * * isMember = this is: std.socket.Socket * * * * * * DtoFunctionType(pure nothrow @safe Socket()) * * * * * * * x86-64 ABI: Transforming return type * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * Final function type: %std.socket.Socket* (%std.socket.Socket*) * * * * * * Adding type of std.socket.Socket.accept * * * * * * isMember = this is: std.socket.Socket * * * * * * DtoFunctionType(@trusted Socket()) * * * * * * * x86-64 ABI: Transforming return type * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * Final function type: %std.socket.Socket* (%std.socket.Socket*) * * * * * * Adding type of std.socket.Socket.shutdown * * * * * * isMember = this is: std.socket.Socket * * * * * * DtoFunctionType(nothrow @nogc @trusted void(SocketShutdown how)) * * * * * * * Building type: SocketShutdown * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * Final function type: void (%std.socket.Socket*, i32) * * * * * * Adding type of std.socket.Socket.close * * * * * * isMember = this is: std.socket.Socket * * * * * * DtoFunctionType(nothrow @nogc @trusted void()) * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * Final function type: void (%std.socket.Socket*) * * * * * * Adding type of std.socket.Socket.remoteAddress * * * * * * isMember = this is: std.socket.Socket * * * * * * DtoFunctionType(@property @trusted Address()) * * * * * * * x86-64 ABI: Transforming return type * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * Final function type: %std.socket.Address* (%std.socket.Socket*) * * * * * * Adding type of std.socket.Socket.localAddress * * * * * * isMember = this is: std.socket.Socket * * * * * * DtoFunctionType(@property @trusted Address()) * * * * * * * x86-64 ABI: Transforming return type * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * Final function type: %std.socket.Address* (%std.socket.Socket*) * * * * * * Adding type of std.socket.Socket.send * * * * * * isMember = this is: std.socket.Socket * * * * * * DtoFunctionType(@trusted long(const(void)[] buf, SocketFlags flags)) * * * * * * * Building type: SocketFlags * * * * * * * x86-64 ABI: Transforming return type * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * Final function type: i64 (%std.socket.Socket*, i32, { i64, i8* }) * * * * * * Adding type of std.socket.Socket.send * * * * * * isMember = this is: std.socket.Socket * * * * * * DtoFunctionType(@safe long(const(void)[] buf)) * * * * * * * x86-64 ABI: Transforming return type * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * Final function type: i64 (%std.socket.Socket*, { i64, i8* }) * * * * * * Adding type of std.socket.Socket.sendTo * * * * * * isMember = this is: std.socket.Socket * * * * * * DtoFunctionType(@trusted long(const(void)[] buf, SocketFlags flags, Address to)) * * * * * * * Building type: SocketFlags * * * * * * * x86-64 ABI: Transforming return type * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * Final function type: i64 (%std.socket.Socket*, %std.socket.Address*, i32, { i64, i8* }) * * * * * * Adding type of std.socket.Socket.sendTo * * * * * * isMember = this is: std.socket.Socket * * * * * * DtoFunctionType(@safe long(const(void)[] buf, Address to)) * * * * * * * x86-64 ABI: Transforming return type * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * Final function type: i64 (%std.socket.Socket*, %std.socket.Address*, { i64, i8* }) * * * * * * Adding type of std.socket.Socket.sendTo * * * * * * isMember = this is: std.socket.Socket * * * * * * DtoFunctionType(@trusted long(const(void)[] buf, SocketFlags flags)) * * * * * * * Building type: SocketFlags * * * * * * * x86-64 ABI: Transforming return type * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * Final function type: i64 (%std.socket.Socket*, i32, { i64, i8* }) * * * * * * Adding type of std.socket.Socket.sendTo * * * * * * isMember = this is: std.socket.Socket * * * * * * DtoFunctionType(@safe long(const(void)[] buf)) * * * * * * * x86-64 ABI: Transforming return type * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * Final function type: i64 (%std.socket.Socket*, { i64, i8* }) * * * * * * Adding type of std.socket.Socket.receive * * * * * * isMember = this is: std.socket.Socket * * * * * * DtoFunctionType(@trusted long(void[] buf, SocketFlags flags)) * * * * * * * Building type: SocketFlags * * * * * * * x86-64 ABI: Transforming return type * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * Final function type: i64 (%std.socket.Socket*, i32, { i64, i8* }) * * * * * * Adding type of std.socket.Socket.receive * * * * * * isMember = this is: std.socket.Socket * * * * * * DtoFunctionType(@safe long(void[] buf)) * * * * * * * x86-64 ABI: Transforming return type * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * Final function type: i64 (%std.socket.Socket*, { i64, i8* }) * * * * * * Adding type of std.socket.Socket.receiveFrom * * * * * * isMember = this is: std.socket.Socket * * * * * * DtoFunctionType(@trusted long(void[] buf, SocketFlags flags, ref Address from)) * * * * * * * Building type: SocketFlags * * * * * * * Building type: Address* * * * * * * * x86-64 ABI: Transforming return type * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * Final function type: i64 (%std.socket.Socket*, %std.socket.Address**, i32, { i64, i8* }) * * * * * * Adding type of std.socket.Socket.receiveFrom * * * * * * isMember = this is: std.socket.Socket * * * * * * DtoFunctionType(@safe long(void[] buf, ref Address from)) * * * * * * * x86-64 ABI: Transforming return type * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * Final function type: i64 (%std.socket.Socket*, %std.socket.Address**, { i64, i8* }) * * * * * * Adding type of std.socket.Socket.receiveFrom * * * * * * isMember = this is: std.socket.Socket * * * * * * DtoFunctionType(@trusted long(void[] buf, SocketFlags flags)) * * * * * * * Building type: SocketFlags * * * * * * * x86-64 ABI: Transforming return type * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * Final function type: i64 (%std.socket.Socket*, i32, { i64, i8* }) * * * * * * Adding type of std.socket.Socket.receiveFrom * * * * * * isMember = this is: std.socket.Socket * * * * * * DtoFunctionType(@safe long(void[] buf)) * * * * * * * x86-64 ABI: Transforming return type * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * Final function type: i64 (%std.socket.Socket*, { i64, i8* }) * * * * * * Adding type of std.socket.Socket.getOption * * * * * * isMember = this is: std.socket.Socket * * * * * * DtoFunctionType(@trusted int(SocketOptionLevel level, SocketOption option, void[] result)) * * * * * * * Building type: SocketOptionLevel * * * * * * * Building type: SocketOption * * * * * * * x86-64 ABI: Transforming return type * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * Final function type: i32 (%std.socket.Socket*, { i64, i8* }, i32, i32) * * * * * * Adding type of std.socket.Socket.getOption * * * * * * isMember = this is: std.socket.Socket * * * * * * DtoFunctionType(@trusted int(SocketOptionLevel level, SocketOption option, out int result)) * * * * * * * Building type: SocketOptionLevel * * * * * * * Building type: SocketOption * * * * * * * Building type: int* * * * * * * * x86-64 ABI: Transforming return type * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * Final function type: i32 (%std.socket.Socket*, i32*, i32, i32) * * * * * * Adding type of std.socket.Socket.getOption * * * * * * isMember = this is: std.socket.Socket * * * * * * DtoFunctionType(@trusted int(SocketOptionLevel level, SocketOption option, out Linger result)) * * * * * * * Building type: SocketOptionLevel * * * * * * * Building type: SocketOption * * * * * * * Building type: Linger* * * * * * * * * Building type: Linger * * * * * * * * * Building struct type std.socket.Linger @ /usr/include/dlang/ldc/std/socket.d(2486) * * * * * * * * * * adding default initializer for struct field clinger * * * * * * * * * * Building type: linger * * * * * * * * * * * Building struct type core.sys.posix.sys.socket.linger @ /usr/include/dlang/ldc/core/sys/posix/sys/socket.d(226) * * * * * * * * * * * * adding default initializer for struct field l_onoff * * * * * * * * * * * * adding default initializer for struct field l_linger * * * * * * * * * * * * final struct type: %core.sys.posix.sys.socket.linger = type { i32, i32 } * * * * * * * * * * final struct type: %std.socket.Linger = type { %core.sys.posix.sys.socket.linger } * * * * * * * x86-64 ABI: Transforming return type * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * Final function type: i32 (%std.socket.Socket*, %std.socket.Linger*, i32, i32) * * * * * * Adding type of std.socket.Socket.getOption * * * * * * isMember = this is: std.socket.Socket * * * * * * DtoFunctionType(@trusted void(SocketOptionLevel level, SocketOption option, out Duration result)) * * * * * * * Building type: SocketOptionLevel * * * * * * * Building type: SocketOption * * * * * * * Building type: Duration* * * * * * * * * Building type: Duration * * * * * * * * * Building struct type core.time.Duration @ /usr/include/dlang/ldc/core/time.d(165) * * * * * * * * * * adding default initializer for struct field _hnsecs * * * * * * * * * * final struct type: %core.time.Duration = type { i64 } * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * Final function type: void (%std.socket.Socket*, %core.time.Duration*, i32, i32) * * * * * * Adding type of std.socket.Socket.setOption * * * * * * isMember = this is: std.socket.Socket * * * * * * DtoFunctionType(@trusted void(SocketOptionLevel level, SocketOption option, void[] value)) * * * * * * * Building type: SocketOptionLevel * * * * * * * Building type: SocketOption * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * Final function type: void (%std.socket.Socket*, { i64, i8* }, i32, i32) * * * * * * Adding type of std.socket.Socket.setOption * * * * * * isMember = this is: std.socket.Socket * * * * * * DtoFunctionType(@trusted void(SocketOptionLevel level, SocketOption option, int value)) * * * * * * * Building type: SocketOptionLevel * * * * * * * Building type: SocketOption * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * Final function type: void (%std.socket.Socket*, i32, i32, i32) * * * * * * Adding type of std.socket.Socket.setOption * * * * * * isMember = this is: std.socket.Socket * * * * * * DtoFunctionType(@trusted void(SocketOptionLevel level, SocketOption option, Linger value)) * * * * * * * Building type: SocketOptionLevel * * * * * * * Building type: SocketOption * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * Rewriting argument type Linger * * * * * * * * * %std.socket.Linger = type { %core.sys.posix.sys.socket.linger } => i64 * * * * * * * Final function type: void (%std.socket.Socket*, i64, i32, i32) * * * * * * Adding type of std.socket.Socket.setOption * * * * * * isMember = this is: std.socket.Socket * * * * * * DtoFunctionType(@trusted void(SocketOptionLevel level, SocketOption option, Duration value)) * * * * * * * Building type: SocketOptionLevel * * * * * * * Building type: SocketOption * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * Final function type: void (%std.socket.Socket*, %core.time.Duration, i32, i32) * * * * * * Adding type of std.socket.Socket.getErrorText * * * * * * isMember = this is: std.socket.Socket * * * * * * DtoFunctionType(@safe string()) * * * * * * * x86-64 ABI: Transforming return type * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * Final function type: { i64, i8* } (%std.socket.Socket*) * * * * * * Adding type of std.socket.Socket.setKeepAlive * * * * * * isMember = this is: std.socket.Socket * * * * * * DtoFunctionType(@trusted void(int time, int interval)) * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * Final function type: void (%std.socket.Socket*, i32, i32) * * * * * * Adding type of std.socket.Socket.createAddress * * * * * * isMember = this is: std.socket.Socket * * * * * * DtoFunctionType(pure nothrow @safe Address()) * * * * * * * x86-64 ABI: Transforming return type * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * Final function type: %std.socket.Address* (%std.socket.Socket*) * * * * * class type: %std.socket.Socket = type { %std.socket.Socket.__vtbl*, i8*, i32, i32 } * * * Building type: AutocompleteRequest* * * * x86-64 ABI: Transforming return type * * * x86-64 ABI: Transforming argument types * * * Final function type: i1 (%common.messages.AutocompleteRequest*, %std.socket.Socket*) * * DtoResolveFunction(common.messages.sendRequest): src/common/messages.d(167) * * * DtoDeclareFunction(common.messages.sendRequest): src/common/messages.d(167) * * * * DtoFunctionType(bool(Socket socket, AutocompleteRequest request)) * * * * func = declare i1 @_D6common8messages11sendRequestFC3std6socket6SocketS6common8messages19AutocompleteRequestZb(%common.messages.AutocompleteRequest*, %std.socket.Socket*) * * Doing function body for: sendRequest * * DtoCreateNestedContext for sendRequest * * * DtoCreateNestedContextType for common.messages.sendRequest * * CompoundStatement::toIR(): * * * CompoundStatement::toIR(): src/common/messages.d(168) * * * * ExpStatement::toIR(): src/common/messages.d(169) * * * * * DeclarationExp::toElem: ubyte[] message = pack(request); | T=void * * * * * * DtoDeclarationExp: message * * * * * * * VarDeclaration * * * * * * * DtoVarDeclaration(vdtype = ubyte[]) * * * * * * * * llvm value for decl: %message = alloca { i64, i8* }, align 8 * * * * * * * * expression initializer * * * * * * * * AssignExp::toElem: message = pack(request) | (ubyte[])(ubyte[] = ubyte[]) * * * * * * * * * VarExp::toElem: message @ ubyte[] * * * * * * * * * * DtoSymbolAddress ('message' of type 'ubyte[]') * * * * * * * * * * * a normal variable * * * * * * * * * CallExp::toElem: pack(request) @ ubyte[] * * * * * * * * * * VarExp::toElem: pack @ @trusted ubyte[](const(AutocompleteRequest) _param_0) * * * * * * * * * * * DtoSymbolAddress ('pack' of type '@trusted ubyte[](const(AutocompleteRequest) _param_0)') * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * DtoFunctionType(@trusted ubyte[](const(AutocompleteRequest) _param_0)) * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * Final function type: { i64, i8* } (%common.messages.AutocompleteRequest*) * * * * * * * * * * * * DtoResolveFunction(msgpack.pack!(false, AutocompleteRequest).pack): msgpack-d/src/msgpack.d(109) * * * * * * * * * * * * * DtoDeclareFunction(msgpack.pack!(false, AutocompleteRequest).pack): msgpack-d/src/msgpack.d(109) * * * * * * * * * * * * * * DtoFunctionType(@trusted ubyte[](const(AutocompleteRequest) _param_0)) * * * * * * * * * * * * * * func = declare { i64, i8* } @_D7msgpack52__T4packVbi0TS6common8messages19AutocompleteRequestZ4packFNexS6common8messages19AutocompleteRequestZAh(%common.messages.AutocompleteRequest*) * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * Building type: @trusted ubyte[](const(AutocompleteRequest) _param_0) * * * * * * * * * * * * DtoFunctionType(@trusted ubyte[](const(AutocompleteRequest) _param_0)) * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * Final function type: { i64, i8* } (%common.messages.AutocompleteRequest*) * * * * * * * * * * * doing normal arguments * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * Function type: @trusted ubyte[](const(AutocompleteRequest) _param_0) * * * * * * * * * * * DtoArgument * * * * * * * * * * * * VarExp::toElem: request @ const(AutocompleteRequest) * * * * * * * * * * * * * DtoSymbolAddress ('request' of type 'AutocompleteRequest') * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * type: AutocompleteRequest * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * DtoAssign() * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * SetArray * * * * ExpStatement::toIR(): src/common/messages.d(170) * * * * * DeclarationExp::toElem: ubyte[] messageBuffer = new ubyte[](message.length + 8LU); | T=void * * * * * * DtoDeclarationExp: messageBuffer * * * * * * * VarDeclaration * * * * * * * DtoVarDeclaration(vdtype = ubyte[]) * * * * * * * * llvm value for decl: %messageBuffer = alloca { i64, i8* }, align 8 * * * * * * * * expression initializer * * * * * * * * AssignExp::toElem: messageBuffer = new ubyte[](message.length + 8LU) | (ubyte[])(ubyte[] = ubyte[]) * * * * * * * * * VarExp::toElem: messageBuffer @ ubyte[] * * * * * * * * * * DtoSymbolAddress ('messageBuffer' of type 'ubyte[]') * * * * * * * * * * * a normal variable * * * * * * * * * NewExp::toElem: new ubyte[](message.length + 8LU) @ ubyte[] * * * * * * * * * * new dynamic array: ubyte[] * * * * * * * * * * AddExp::toElem: message.length + 8LU @ ulong * * * * * * * * * * * ArrayLengthExp::toElem: message.length @ ulong * * * * * * * * * * * * VarExp::toElem: message @ ubyte[] * * * * * * * * * * * * * DtoSymbolAddress ('message' of type 'ubyte[]') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * IntegerExp::toElem: 8LU @ ulong * * * * * * * * * * * * IntegerExp::toConstElem: 8LU @ ulong * * * * * * * * * * * * * value = i64 8 * * * * * * * * * * DtoNewDynArray : ubyte[] * * * * * * * * * * * DtoTypeInfoOf(type = 'ubyte[]', base='1') * * * * * * * * * * * * Type::getTypeInfo(): ubyte[] * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(ubyte[])) * * * * * * * * * * * * * type = 'ubyte[]' * * * * * * * * * * * * * typeinfo mangle: _D11TypeInfo_Ah6__initZ * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * DtoAssign() * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * SetArray * * * * ExpStatement::toIR(): src/common/messages.d(171) * * * * * DeclarationExp::toElem: ulong messageLength = message.length; | T=void * * * * * * DtoDeclarationExp: messageLength * * * * * * * VarDeclaration * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * llvm value for decl: %messageLength = alloca i64, align 8 * * * * * * * * expression initializer * * * * * * * * AssignExp::toElem: messageLength = message.length | (ulong)(ulong = ulong) * * * * * * * * * VarExp::toElem: messageLength @ ulong * * * * * * * * * * DtoSymbolAddress ('messageLength' of type 'ulong') * * * * * * * * * * * a normal variable * * * * * * * * * ArrayLengthExp::toElem: message.length @ ulong * * * * * * * * * * VarExp::toElem: message @ ubyte[] * * * * * * * * * * * DtoSymbolAddress ('message' of type 'ubyte[]') * * * * * * * * * * * * a normal variable * * * * * * * * * * DtoArrayLen * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * DtoAssign() * * * * * * * * * * lhs: %messageLength = alloca i64, align 8 * * * * * * * * * * rhs: %.len4 = load i64, i64* %8 * * * * ExpStatement::toIR(): src/common/messages.d(172) * * * * * AssignExp::toElem: messageBuffer[0..8] = & messageLength[0..8] | (ubyte[])(ubyte[] = const(ubyte[])) * * * * * * performing static array literal assignment * * * * * * SliceExp::toElem: messageBuffer[0..8] @ ubyte[] * * * * * * * VarExp::toElem: messageBuffer @ ubyte[] * * * * * * * * DtoSymbolAddress ('messageBuffer' of type 'ubyte[]') * * * * * * * * * a normal variable * * * * * * * DtoArrayPtr * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * value = i64 0 * * * * * * * IntegerExp::toElem: 8LU @ ulong * * * * * * * * IntegerExp::toConstElem: 8LU @ ulong * * * * * * * * * value = i64 8 * * * * * * SliceExp::toElem: & messageLength[0..8] @ const(ubyte[]) * * * * * * * SymOffExp::toElem: & messageLength @ ubyte* * * * * * * * * DtoSymbolAddress ('messageLength' of type 'ulong') * * * * * * * * * a normal variable * * * * * * * * Casting from 'ulong*' to 'ubyte*' * * * * * * * * * Building type: ubyte* * * * * * * * * * src: %messageLength = alloca i64, align 8 * * * * * * * * * to type: i8* * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * value = i64 0 * * * * * * * IntegerExp::toElem: 8LU @ ulong * * * * * * * * IntegerExp::toConstElem: 8LU @ ulong * * * * * * * * * value = i64 8 * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * DtoAssign() * * * * * * * DtoArrayAssign * * * * * * * * DtoArrayPtr * * * * * * * * DtoArrayLen * * * * * * * * DtoArrayPtr * * * * * * * * DtoArrayLen * * * * ExpStatement::toIR(): src/common/messages.d(173) * * * * * AssignExp::toElem: messageBuffer[8..__dollar] = message[] | (ubyte[])(ubyte[] = const(ubyte[])) * * * * * * performing static array literal assignment * * * * * * SliceExp::toElem: messageBuffer[8..__dollar] @ ubyte[] * * * * * * * VarExp::toElem: messageBuffer @ ubyte[] * * * * * * * * DtoSymbolAddress ('messageBuffer' of type 'ubyte[]') * * * * * * * * * a normal variable * * * * * * * DtoArrayPtr * * * * * * * IntegerExp::toElem: 8LU @ ulong * * * * * * * * IntegerExp::toConstElem: 8LU @ ulong * * * * * * * * * value = i64 8 * * * * * * * VarExp::toElem: __dollar @ ulong * * * * * * * * DtoSymbolAddress ('__dollar' of type 'ulong') * * * * * * * * * Id::dollar * * * * * * * * * DtoArrayLen * * * * * * SliceExp::toElem: message[] @ const(ubyte[]) * * * * * * * VarExp::toElem: message @ ubyte[] * * * * * * * * DtoSymbolAddress ('message' of type 'ubyte[]') * * * * * * * * * a normal variable * * * * * * * DtoArrayPtr * * * * * * * DtoArrayLen * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * DtoAssign() * * * * * * * DtoArrayAssign * * * * * * * * DtoArrayPtr * * * * * * * * DtoArrayLen * * * * * * * * DtoArrayPtr * * * * * * * * DtoArrayLen * * * * ReturnStatement::toIR(): src/common/messages.d(174) * * * * * EqualExp::toElem: cast(ulong)socket.send(cast(const(void)[])messageBuffer) == messageBuffer.length @ bool * * * * * * CastExp::toElem: cast(ulong)socket.send(cast(const(void)[])messageBuffer) @ ulong * * * * * * * CallExp::toElem: socket.send(cast(const(void)[])messageBuffer) @ long * * * * * * * * DotVarExp::toElem: socket.send @ @safe long(const(void)[] buf) * * * * * * * * * VarExp::toElem: socket @ std.socket.Socket * * * * * * * * * * DtoSymbolAddress ('socket' of type 'std.socket.Socket') * * * * * * * * * * * function param * * * * * * * * * * * type: std.socket.Socket * * * * * * * * * isMember = this is: std.socket.Socket * * * * * * * * * DtoFunctionType(@safe long(const(void)[] buf)) * * * * * * * * * DtoResolveFunction(std.socket.Socket.send): /usr/include/dlang/ldc/std/socket.d(2928) * * * * * * * * * * DtoDeclareFunction(std.socket.Socket.send): /usr/include/dlang/ldc/std/socket.d(2928) * * * * * * * * * * * isMember = this is: std.socket.Socket * * * * * * * * * * * DtoFunctionType(@safe long(const(void)[] buf)) * * * * * * * * * * * func = declare i64 @_D3std6socket6Socket4sendMFNfAxvZl(%std.socket.Socket*, { i64, i8* }) * * * * * * * * * vthis: %18 = load %std.socket.Socket*, %std.socket.Socket** %socket * * * * * * * * * funcval: %21 = load i64 (%std.socket.Socket*, { i64, i8* })*, i64 (%std.socket.Socket*, { i64, i8* })** %"socket.send@vtbl", align 8 * * * * * * * * * isMember = this is: std.socket.Socket * * * * * * * * * DtoFunctionType(@safe long(const(void)[] buf)) * * * * * * * * * funcval casted: %socket.send = load i64 (%std.socket.Socket*, { i64, i8* })*, i64 (%std.socket.Socket*, { i64, i8* })** %"socket.send@vtbl", align 8 * * * * * * * * DtoCallFunction() * * * * * * * * * Building type: @safe long(const(void)[] buf) * * * * * * * * * * DtoFunctionType(@safe long(const(void)[] buf)) * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * Final function type: i64 ({ i64, i8* }) * * * * * * * * * doing normal arguments * * * * * * * * * Arguments so far: (1) * * * * * * * * * * %21 = load %std.socket.Socket*, %std.socket.Socket** %socket * * * * * * * * * Function type: @safe long(const(void)[] buf) * * * * * * * * * DtoArgument * * * * * * * * * * CastExp::toElem: cast(const(void)[])messageBuffer @ const(void)[] * * * * * * * * * * * VarExp::toElem: messageBuffer @ ubyte[] * * * * * * * * * * * * DtoSymbolAddress ('messageBuffer' of type 'ubyte[]') * * * * * * * * * * * * * a normal variable * * * * * * * * * * * Casting from 'ubyte[]' to 'const(void)[]' * * * * * * * * * * * * DtoCastArray * * * * * * * * * * * * * from array or sarray * * * * * * * * * * * * * to array * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * isslice * * * * * * * Casting from 'long' to 'ulong' * * * * * * ArrayLengthExp::toElem: messageBuffer.length @ ulong * * * * * * * VarExp::toElem: messageBuffer @ ubyte[] * * * * * * * * DtoSymbolAddress ('messageBuffer' of type 'ubyte[]') * * * * * * * * * a normal variable * * * * * * * DtoArrayLen * * * * * * integral or pointer or interface * * * * * * lv: %26 = call i64 %socket.send(%std.socket.Socket* %21, { i64, i8* } %25) * * * * * * rv: %.len14 = load i64, i64* %27 * * * * * return value is '0x121588a0' * DtoDefineFunction(common.messages.getResponse): src/common/messages.d(180) * * DtoFunctionType(AutocompleteResponse(Socket socket)) * * * Building type: AutocompleteResponse* * * * x86-64 ABI: Transforming argument types * * * Final function type: void (%common.messages.AutocompleteResponse*, %std.socket.Socket*) * * DtoResolveFunction(common.messages.getResponse): src/common/messages.d(180) * * * DtoDeclareFunction(common.messages.getResponse): src/common/messages.d(180) * * * * DtoFunctionType(AutocompleteResponse(Socket socket)) * * * * func = declare void @_D6common8messages11getResponseFC3std6socket6SocketZS6common8messages20AutocompleteResponse(%common.messages.AutocompleteResponse*, %std.socket.Socket*) * * Doing function body for: getResponse * * DtoCreateNestedContext for getResponse * * * DtoCreateNestedContextType for common.messages.getResponse * * CompoundStatement::toIR(): * * * CompoundStatement::toIR(): src/common/messages.d(181) * * * * ExpStatement::toIR(): src/common/messages.d(182) * * * * * DeclarationExp::toElem: ubyte[16384] buffer = cast(ubyte)0u; | T=void * * * * * * DtoDeclarationExp: buffer * * * * * * * VarDeclaration * * * * * * * DtoVarDeclaration(vdtype = ubyte[16384]) * * * * * * * * Building type: ubyte[16384] * * * * * * * * llvm value for decl: %buffer = alloca [16384 x i8], align 1 * * * * * * * * expression initializer * * * * * * * * AssignExp::toElem: buffer[] = cast(ubyte)0u | (ubyte[])(ubyte[] = ubyte) * * * * * * * * * performing static array literal assignment * * * * * * * * * SliceExp::toElem: buffer[] @ ubyte[] * * * * * * * * * * VarExp::toElem: buffer @ ubyte[16384] * * * * * * * * * * * DtoSymbolAddress ('buffer' of type 'ubyte[16384]') * * * * * * * * * * * * a normal variable * * * * * * * * * * DtoArrayPtr * * * * * * * * * IntegerExp::toElem: cast(ubyte)0u @ ubyte * * * * * * * * * * IntegerExp::toConstElem: cast(ubyte)0u @ ubyte * * * * * * * * * * * value = i8 0 * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * DtoAssign() * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * DtoArrayInit * * * * ExpStatement::toIR(): src/common/messages.d(183) * * * * * DeclarationExp::toElem: long bytesReceived = socket.receive(cast(void[])buffer); | T=void * * * * * * DtoDeclarationExp: bytesReceived * * * * * * * VarDeclaration * * * * * * * DtoVarDeclaration(vdtype = long) * * * * * * * * llvm value for decl: %bytesReceived = alloca i64, align 8 * * * * * * * * expression initializer * * * * * * * * AssignExp::toElem: bytesReceived = socket.receive(cast(void[])buffer) | (long)(long = long) * * * * * * * * * VarExp::toElem: bytesReceived @ long * * * * * * * * * * DtoSymbolAddress ('bytesReceived' of type 'long') * * * * * * * * * * * a normal variable * * * * * * * * * CallExp::toElem: socket.receive(cast(void[])buffer) @ long * * * * * * * * * * DotVarExp::toElem: socket.receive @ @safe long(void[] buf) * * * * * * * * * * * VarExp::toElem: socket @ std.socket.Socket * * * * * * * * * * * * DtoSymbolAddress ('socket' of type 'std.socket.Socket') * * * * * * * * * * * * * function param * * * * * * * * * * * * * type: std.socket.Socket * * * * * * * * * * * isMember = this is: std.socket.Socket * * * * * * * * * * * DtoFunctionType(@safe long(void[] buf)) * * * * * * * * * * * DtoResolveFunction(std.socket.Socket.receive): /usr/include/dlang/ldc/std/socket.d(3007) * * * * * * * * * * * * DtoDeclareFunction(std.socket.Socket.receive): /usr/include/dlang/ldc/std/socket.d(3007) * * * * * * * * * * * * * isMember = this is: std.socket.Socket * * * * * * * * * * * * * DtoFunctionType(@safe long(void[] buf)) * * * * * * * * * * * * * func = declare i64 @_D3std6socket6Socket7receiveMFNfAvZl(%std.socket.Socket*, { i64, i8* }) * * * * * * * * * * * vthis: %1 = load %std.socket.Socket*, %std.socket.Socket** %socket * * * * * * * * * * * funcval: %4 = load i64 (%std.socket.Socket*, { i64, i8* })*, i64 (%std.socket.Socket*, { i64, i8* })** %"socket.receive@vtbl", align 8 * * * * * * * * * * * isMember = this is: std.socket.Socket * * * * * * * * * * * DtoFunctionType(@safe long(void[] buf)) * * * * * * * * * * * funcval casted: %socket.receive = load i64 (%std.socket.Socket*, { i64, i8* })*, i64 (%std.socket.Socket*, { i64, i8* })** %"socket.receive@vtbl", align 8 * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * Building type: @safe long(void[] buf) * * * * * * * * * * * * DtoFunctionType(@safe long(void[] buf)) * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * Final function type: i64 ({ i64, i8* }) * * * * * * * * * * * doing normal arguments * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * %4 = load %std.socket.Socket*, %std.socket.Socket** %socket * * * * * * * * * * * Function type: @safe long(void[] buf) * * * * * * * * * * * DtoArgument * * * * * * * * * * * * CastExp::toElem: cast(void[])buffer @ void[] * * * * * * * * * * * * * VarExp::toElem: buffer @ ubyte[16384] * * * * * * * * * * * * * * DtoSymbolAddress ('buffer' of type 'ubyte[16384]') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * Casting from 'ubyte[16384]' to 'void[]' * * * * * * * * * * * * * * DtoCastArray * * * * * * * * * * * * * * * from array or sarray * * * * * * * * * * * * * * * to array * * * * * * * * * * * * * * * uvalTy = [16384 x i8]* * * * * * * * * * * * * * * * isslice * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * DtoAssign() * * * * * * * * * * lhs: %bytesReceived = alloca i64, align 8 * * * * * * * * * * rhs: %7 = call i64 %socket.receive(%std.socket.Socket* %4, { i64, i8* } %6) * * * * IfStatement::toIR(): src/common/messages.d(184) * * * * * EqualExp::toElem: bytesReceived == -1L @ bool * * * * * * VarExp::toElem: bytesReceived @ long * * * * * * * DtoSymbolAddress ('bytesReceived' of type 'long') * * * * * * * * a normal variable * * * * * * IntegerExp::toElem: -1L @ long * * * * * * * IntegerExp::toConstElem: -1L @ long * * * * * * * * value = i64 -1 * * * * * * integral or pointer or interface * * * * * * lv: %8 = load i64, i64* %bytesReceived * * * * * * rv: i64 -1 * * * * * ThrowStatement::toIR(): src/common/messages.d(185) * * * * * * NewExp::toElem: new Exception("Incorrect number of bytes received", "src/common/messages.d", 185LU, null) @ object.Exception * * * * * * * new class * * * * * * * DtoResolveClass(object.Exception): /usr/include/dlang/ldc/object.di(379) * * * * * * * * DtoResolveClass(object.Throwable): /usr/include/dlang/ldc/object.di(357) * * * * * * * * * Building type: object.Throwable * * * * * * * * * * Building class type object.Throwable @ /usr/include/dlang/ldc/object.di(357) * * * * * * * * * * * Instance size: 72 * * * * * * * * * * * adding default initializer for struct field msg * * * * * * * * * * * adding default initializer for struct field file * * * * * * * * * * * adding default initializer for struct field line * * * * * * * * * * * adding default initializer for struct field info * * * * * * * * * * * adding default initializer for struct field next * * * * * * * * * * * Building type: object.Throwable.TraceInfo * * * * * * * * * * * * Building class type object.Throwable.TraceInfo @ /usr/include/dlang/ldc/object.di(359) * * * * * * * * * * * * * Instance size: 16 * * * * * * * * * * * * * Building vtbl type for class object.Throwable.TraceInfo * * * * * * * * * * * * * * Adding type of object.Throwable.TraceInfo.opApply * * * * * * * * * * * * * * isMember = this is: object.Throwable.TraceInfo * * * * * * * * * * * * * * DtoFunctionType(const int(scope int delegate(ref const(char[])))) * * * * * * * * * * * * * * * Building type: int delegate(ref const(char[])) * * * * * * * * * * * * * * * * DtoFunctionType(int(ref const(char[]))) * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * Final function type: i32 (i8*, { i64, i8* }*) * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * Final function type: i32 (%object.Throwable.TraceInfo*, { i8*, i32 (i8*, { i64, i8* }*)* }) * * * * * * * * * * * * * * Adding type of object.Throwable.TraceInfo.opApply * * * * * * * * * * * * * * isMember = this is: object.Throwable.TraceInfo * * * * * * * * * * * * * * DtoFunctionType(const int(scope int delegate(ref ulong, ref const(char[])))) * * * * * * * * * * * * * * * Building type: int delegate(ref ulong, ref const(char[])) * * * * * * * * * * * * * * * * DtoFunctionType(int(ref ulong, ref const(char[]))) * * * * * * * * * * * * * * * * * Building type: ulong* * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * Final function type: i32 (i8*, { i64, i8* }*, i64*) * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * Final function type: i32 (%object.Throwable.TraceInfo*, { i8*, i32 (i8*, { i64, i8* }*, i64*)* }) * * * * * * * * * * * * * * Adding type of object.Throwable.TraceInfo.toString * * * * * * * * * * * * * * isMember = this is: object.Throwable.TraceInfo * * * * * * * * * * * * * * DtoFunctionType(const string()) * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * Final function type: { i64, i8* } (%object.Throwable.TraceInfo*) * * * * * * * * * * * * * class type: %object.Throwable.TraceInfo = type { %object.Throwable.TraceInfo.__vtbl* } * * * * * * * * * * * Building vtbl type for class object.Throwable * * * * * * * * * * * * Adding type of object.Throwable.toString * * * * * * * * * * * * isMember = this is: object.Throwable * * * * * * * * * * * * DtoFunctionType(string()) * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * Final function type: { i64, i8* } (%object.Throwable*) * * * * * * * * * * * * Adding type of object.Object.toHash * * * * * * * * * * * * isMember = this is: object.Object * * * * * * * * * * * * DtoFunctionType(nothrow @trusted ulong()) * * * * * * * * * * * * Adding type of object.Object.opCmp * * * * * * * * * * * * isMember = this is: object.Object * * * * * * * * * * * * DtoFunctionType(int(Object o)) * * * * * * * * * * * * Adding type of object.Object.opEquals * * * * * * * * * * * * isMember = this is: object.Object * * * * * * * * * * * * DtoFunctionType(bool(Object o)) * * * * * * * * * * * * Adding type of object.Throwable.toString * * * * * * * * * * * * isMember = this is: object.Throwable * * * * * * * * * * * * DtoFunctionType(const void(scope void delegate(const(char[])) sink)) * * * * * * * * * * * * * Building type: void delegate(const(char[])) * * * * * * * * * * * * * * DtoFunctionType(void(const(char[]))) * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * Final function type: void (i8*, { i64, i8* }) * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * Final function type: void (%object.Throwable*, { i8*, void (i8*, { i64, i8* })* }) * * * * * * * * * * * class type: %object.Throwable = type { %object.Throwable.__vtbl*, i8*, { i64, i8* }, { i64, i8* }, i64, %object.Throwable.TraceInfo*, %object.Throwable* } * * * * * * * * Building type: object.Exception * * * * * * * * * Building class type object.Exception @ /usr/include/dlang/ldc/object.di(379) * * * * * * * * * * Instance size: 72 * * * * * * * * * * adding default initializer for struct field msg * * * * * * * * * * adding default initializer for struct field file * * * * * * * * * * adding default initializer for struct field line * * * * * * * * * * adding default initializer for struct field info * * * * * * * * * * adding default initializer for struct field next * * * * * * * * * * Building vtbl type for class object.Exception * * * * * * * * * * * Adding type of object.Throwable.toString * * * * * * * * * * * isMember = this is: object.Throwable * * * * * * * * * * * DtoFunctionType(string()) * * * * * * * * * * * Adding type of object.Object.toHash * * * * * * * * * * * isMember = this is: object.Object * * * * * * * * * * * DtoFunctionType(nothrow @trusted ulong()) * * * * * * * * * * * Adding type of object.Object.opCmp * * * * * * * * * * * isMember = this is: object.Object * * * * * * * * * * * DtoFunctionType(int(Object o)) * * * * * * * * * * * Adding type of object.Object.opEquals * * * * * * * * * * * isMember = this is: object.Object * * * * * * * * * * * DtoFunctionType(bool(Object o)) * * * * * * * * * * * Adding type of object.Throwable.toString * * * * * * * * * * * isMember = this is: object.Throwable * * * * * * * * * * * DtoFunctionType(const void(scope void delegate(const(char[])) sink)) * * * * * * * * * * class type: %object.Exception = type { %object.Exception.__vtbl*, i8*, { i64, i8* }, { i64, i8* }, i64, %object.Throwable.TraceInfo*, %object.Throwable* } * * * * * * * Calling constructor * * * * * * * isMember = this is: object.Exception * * * * * * * DtoFunctionType(pure nothrow @safe Exception(string msg, string file = __FILE__, ulong line = cast(ulong)__LINE__, Throwable next = null)) * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * Passing implicitly ByVal: string ({ i64, i8* }) * * * * * * * * Final function type: %object.Exception* (%object.Exception*, %object.Throwable*, i64, { i64, i8* }, { i64, i8* }*) * * * * * * * DtoResolveFunction(object.Exception.this): /usr/include/dlang/ldc/object.di(381) * * * * * * * * DtoDeclareFunction(object.Exception.this): /usr/include/dlang/ldc/object.di(381) * * * * * * * * * isMember = this is: object.Exception * * * * * * * * * DtoFunctionType(pure nothrow @safe Exception(string msg, string file = __FILE__, ulong line = cast(ulong)__LINE__, Throwable next = null)) * * * * * * * * * func = declare %object.Exception* @_D6object9Exception6__ctorMFNaNbNfAyaAyamC6object9ThrowableZC9Exception(%object.Exception*, %object.Throwable*, i64, { i64, i8* }, { i64, i8* }*) * * * * * * * DtoCallFunction() * * * * * * * * Building type: pure nothrow @safe Exception(string msg, string file = __FILE__, ulong line = cast(ulong)__LINE__, Throwable next = null) * * * * * * * * * DtoFunctionType(pure nothrow @safe Exception(string msg, string file = __FILE__, ulong line = cast(ulong)__LINE__, Throwable next = null)) * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: %object.Exception* (%object.Throwable*, i64, { i64, i8* }, { i64, i8* }) * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (1) * * * * * * * * * %.newclass_gc = bitcast %object.Object* %.newclass_gc_alloc to %object.Exception* * * * * * * * * Function type: pure nothrow @safe Exception(string msg, string file = __FILE__, ulong line = cast(ulong)__LINE__, Throwable next = null) * * * * * * * * DtoArgument * * * * * * * * * StringExp::toElem: "Incorrect number of bytes received" @ string * * * * * * * * * * type: [35 x i8] * * * * * * * * * * init: [35 x i8] c"Incorrect number of bytes received\00" * * * * * * * * DtoArgument * * * * * * * * * StringExp::toElem: "src/common/messages.d" @ string * * * * * * * * * * type: [22 x i8] * * * * * * * * * * init: [22 x i8] c"src/common/messages.d\00" * * * * * * * * DtoArgument * * * * * * * * * IntegerExp::toElem: 185LU @ ulong * * * * * * * * * * IntegerExp::toConstElem: 185LU @ ulong * * * * * * * * * * * value = i64 185 * * * * * * * * DtoArgument * * * * * * * * * NullExp::toElem(type=object.Throwable): null * * * * * * * * * * NullExp::toConstElem(type=object.Throwable): null * * * * * * * * Rewrite: putParam * * * * IfStatement::toIR(): src/common/messages.d(186) * * * * * EqualExp::toElem: bytesReceived == 0L @ bool * * * * * * VarExp::toElem: bytesReceived @ long * * * * * * * DtoSymbolAddress ('bytesReceived' of type 'long') * * * * * * * * a normal variable * * * * * * IntegerExp::toElem: 0L @ long * * * * * * * IntegerExp::toConstElem: 0L @ long * * * * * * * * value = i64 0 * * * * * * integral or pointer or interface * * * * * * lv: %16 = load i64, i64* %bytesReceived * * * * * * rv: i64 0 * * * * * ThrowStatement::toIR(): src/common/messages.d(187) * * * * * * NewExp::toElem: new Exception("Server closed the connection, 0 bytes received", "src/common/messages.d", 187LU, null) @ object.Exception * * * * * * * new class * * * * * * * Calling constructor * * * * * * * DtoCallFunction() * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (1) * * * * * * * * * %.newclass_gc4 = bitcast %object.Object* %.newclass_gc_alloc3 to %object.Exception* * * * * * * * * Function type: pure nothrow @safe Exception(string msg, string file = __FILE__, ulong line = cast(ulong)__LINE__, Throwable next = null) * * * * * * * * DtoArgument * * * * * * * * * StringExp::toElem: "Server closed the connection, 0 bytes received" @ string * * * * * * * * * * type: [47 x i8] * * * * * * * * * * init: [47 x i8] c"Server closed the connection, 0 bytes received\00" * * * * * * * * DtoArgument * * * * * * * * * StringExp::toElem: "src/common/messages.d" @ string * * * * * * * * DtoArgument * * * * * * * * * IntegerExp::toElem: 187LU @ ulong * * * * * * * * * * IntegerExp::toConstElem: 187LU @ ulong * * * * * * * * * * * value = i64 187 * * * * * * * * DtoArgument * * * * * * * * * NullExp::toElem(type=object.Throwable): null * * * * * * * * * * NullExp::toConstElem(type=object.Throwable): null * * * * * * * * Rewrite: putParam * * * * ExpStatement::toIR(): src/common/messages.d(188) * * * * * DeclarationExp::toElem: AutocompleteResponse response = 0; | T=void * * * * * * DtoDeclarationExp: response * * * * * * * VarDeclaration * * * * * * * DtoVarDeclaration(vdtype = AutocompleteResponse) * * * * * * * * llvm value for decl: %common.messages.AutocompleteResponse* %.sret_arg * * * * * * * * expression initializer * * * * * * * * AssignExp::toElem: response = 0 | (AutocompleteResponse)(AutocompleteResponse = int) * * * * * * * * * VarExp::toElem: response @ AutocompleteResponse * * * * * * * * * * DtoSymbolAddress ('response' of type 'AutocompleteResponse') * * * * * * * * * * * a normal variable * * * * * * * * * IntegerExp::toElem: 0 @ int * * * * * * * * * * IntegerExp::toConstElem: 0 @ int * * * * * * * * * * * value = i32 0 * * * * * * * * * performing aggregate zero initialization * * * * ExpStatement::toIR(): src/common/messages.d(189) * * * * * CallExp::toElem: unpack(buffer[0..cast(ulong)bytesReceived], response) @ void * * * * * * VarExp::toElem: unpack @ @trusted void(const(ubyte[]) buffer, ref AutocompleteResponse _param_1) * * * * * * * DtoSymbolAddress ('unpack' of type '@trusted void(const(ubyte[]) buffer, ref AutocompleteResponse _param_1)') * * * * * * * * FuncDeclaration * * * * * * * * DtoFunctionType(@trusted void(const(ubyte[]) buffer, ref AutocompleteResponse _param_1)) * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * Final function type: void (%common.messages.AutocompleteResponse*, { i64, i8* }) * * * * * * * * DtoResolveFunction(msgpack.unpack!(false, AutocompleteResponse).unpack): msgpack-d/src/msgpack.d(170) * * * * * * * * * DtoDeclareFunction(msgpack.unpack!(false, AutocompleteResponse).unpack): msgpack-d/src/msgpack.d(170) * * * * * * * * * * DtoFunctionType(@trusted void(const(ubyte[]) buffer, ref AutocompleteResponse _param_1)) * * * * * * * * * * func = declare void @_D7msgpack55__T6unpackVbi0TS6common8messages20AutocompleteResponseZ6unpackFNexAhKS6common8messages20AutocompleteResponseZv(%common.messages.AutocompleteResponse*, { i64, i8* }) * * * * * * DtoCallFunction() * * * * * * * Building type: @trusted void(const(ubyte[]) buffer, ref AutocompleteResponse _param_1) * * * * * * * * DtoFunctionType(@trusted void(const(ubyte[]) buffer, ref AutocompleteResponse _param_1)) * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * Final function type: void (%common.messages.AutocompleteResponse*, { i64, i8* }) * * * * * * * doing normal arguments * * * * * * * Arguments so far: (0) * * * * * * * Function type: @trusted void(const(ubyte[]) buffer, ref AutocompleteResponse _param_1) * * * * * * * DtoArgument * * * * * * * * SliceExp::toElem: buffer[0..cast(ulong)bytesReceived] @ const(ubyte[]) * * * * * * * * * VarExp::toElem: buffer @ ubyte[16384] * * * * * * * * * * DtoSymbolAddress ('buffer' of type 'ubyte[16384]') * * * * * * * * * * * a normal variable * * * * * * * * * DtoArrayPtr * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * value = i64 0 * * * * * * * * * CastExp::toElem: cast(ulong)bytesReceived @ ulong * * * * * * * * * * VarExp::toElem: bytesReceived @ long * * * * * * * * * * * DtoSymbolAddress ('bytesReceived' of type 'long') * * * * * * * * * * * * a normal variable * * * * * * * * * * Casting from 'long' to 'ulong' * * * * * * * DtoArgument * * * * * * * * VarExp::toElem: response @ AutocompleteResponse * * * * * * * * * DtoSymbolAddress ('response' of type 'AutocompleteResponse') * * * * * * * * * * a normal variable * * * * ReturnStatement::toIR(): src/common/messages.d(190) * * * * * VarExp::toElem: response @ AutocompleteResponse * * * * * * DtoSymbolAddress ('response' of type 'AutocompleteResponse') * * * * * * * a normal variable * DtoDefineFunction(common.messages.serverIsRunning): src/common/messages.d(200) * * DtoFunctionType(bool(bool useTCP, string socketFile, ushort port)) * * * x86-64 ABI: Transforming return type * * * x86-64 ABI: Transforming argument types * * * Final function type: i1 (i16, { i64, i8* }, i1) * * DtoResolveFunction(common.messages.serverIsRunning): src/common/messages.d(200) * * * DtoDeclareFunction(common.messages.serverIsRunning): src/common/messages.d(200) * * * * DtoFunctionType(bool(bool useTCP, string socketFile, ushort port)) * * * * func = declare i1 @_D6common8messages15serverIsRunningFbAyatZb(i16, { i64, i8* }, i1) * * Doing function body for: serverIsRunning * * DtoCreateNestedContext for serverIsRunning * * * DtoCreateNestedContextType for common.messages.serverIsRunning * * CompoundStatement::toIR(): * * * CompoundStatement::toIR(): src/common/messages.d(201) * * * * TryCatchStatement::toIR(): * * * * * ReturnStatement::toIR(): src/common/messages.d(203) * * * * * * IntegerExp::toElem: false @ bool * * * * * * * IntegerExp::toConstElem: false @ bool * * * * * * * * value = i1 false * * * * * * return value is '0x120e69a0' * * * * * ScopeStatement::toIR(): * * * * * * CompoundStatement::toIR(): * * * * * * * ExpStatement::toIR(): src/common/messages.d(204) * * * * * * * * DeclarationExp::toElem: AutocompleteRequest request = 0; | T=void * * * * * * * * * DtoDeclarationExp: request * * * * * * * * * * VarDeclaration * * * * * * * * * * DtoVarDeclaration(vdtype = AutocompleteRequest) * * * * * * * * * * * llvm value for decl: %request = alloca %common.messages.AutocompleteRequest, align 8 * * * * * * * * * * * expression initializer * * * * * * * * * * * AssignExp::toElem: request = 0 | (AutocompleteRequest)(AutocompleteRequest = int) * * * * * * * * * * * * VarExp::toElem: request @ AutocompleteRequest * * * * * * * * * * * * * DtoSymbolAddress ('request' of type 'AutocompleteRequest') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * IntegerExp::toElem: 0 @ int * * * * * * * * * * * * * IntegerExp::toConstElem: 0 @ int * * * * * * * * * * * * * * value = i32 0 * * * * * * * * * * * * performing aggregate zero initialization * * * * * * * ExpStatement::toIR(): src/common/messages.d(205) * * * * * * * * AssignExp::toElem: request.kind = cast(RequestKind)cast(ushort)64u | (RequestKind)(RequestKind = RequestKind) * * * * * * * * * DotVarExp::toElem: request.kind @ RequestKind * * * * * * * * * * VarExp::toElem: request @ AutocompleteRequest * * * * * * * * * * * DtoSymbolAddress ('request' of type 'AutocompleteRequest') * * * * * * * * * * * * a normal variable * * * * * * * * * * Indexing aggregate field common.messages.AutocompleteRequest.kind: * * * * * * * * * * * Building type: RequestKind * * * * * * * * * * * Value: %3 = getelementptr %common.messages.AutocompleteRequest, %common.messages.AutocompleteRequest* %request, i32 0, i32 1 * * * * * * * * * IntegerExp::toElem: cast(RequestKind)cast(ushort)64u @ RequestKind * * * * * * * * * * IntegerExp::toConstElem: cast(RequestKind)cast(ushort)64u @ RequestKind * * * * * * * * * * * Building type: RequestKind * * * * * * * * * * * value = i16 64 * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * DtoAssign() * * * * * * * * * * lhs: %3 = getelementptr %common.messages.AutocompleteRequest, %common.messages.AutocompleteRequest* %request, i32 0, i32 1 * * * * * * * * * * rhs: i16 64 * * * * * * * ExpStatement::toIR(): src/common/messages.d(206) * * * * * * * * DeclarationExp::toElem: Socket socket = null; | T=void * * * * * * * * * DtoDeclarationExp: socket * * * * * * * * * * VarDeclaration * * * * * * * * * * DtoVarDeclaration(vdtype = std.socket.Socket) * * * * * * * * * * * llvm value for decl: %socket = alloca %std.socket.Socket*, align 8 * * * * * * * * * * * expression initializer * * * * * * * * * * * AssignExp::toElem: socket = null | (std.socket.Socket)(std.socket.Socket = std.socket.Socket) * * * * * * * * * * * * VarExp::toElem: socket @ std.socket.Socket * * * * * * * * * * * * * DtoSymbolAddress ('socket' of type 'std.socket.Socket') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * NullExp::toElem(type=std.socket.Socket): null * * * * * * * * * * * * * NullExp::toConstElem(type=std.socket.Socket): null * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * l : %socket = alloca %std.socket.Socket*, align 8 * * * * * * * * * * * * * r : %std.socket.Socket* null * * * * * * * TryFinallyStatement::toIR(): * * * * * * * * ScopeStatement::toIR(): src/common/messages.d(208) * * * * * * * * * CompoundStatement::toIR(): src/common/messages.d(208) * * * * * * * * * * ExpStatement::toIR(): src/common/messages.d(209) * * * * * * * * * * * CallExp::toElem: socket.shutdown(cast(SocketShutdown)2) @ void * * * * * * * * * * * * DotVarExp::toElem: socket.shutdown @ nothrow @nogc @trusted void(SocketShutdown how) * * * * * * * * * * * * * VarExp::toElem: socket @ std.socket.Socket * * * * * * * * * * * * * * DtoSymbolAddress ('socket' of type 'std.socket.Socket') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * isMember = this is: std.socket.Socket * * * * * * * * * * * * * DtoFunctionType(nothrow @nogc @trusted void(SocketShutdown how)) * * * * * * * * * * * * * DtoResolveFunction(std.socket.Socket.shutdown): /usr/include/dlang/ldc/std/socket.d(2830) * * * * * * * * * * * * * * DtoDeclareFunction(std.socket.Socket.shutdown): /usr/include/dlang/ldc/std/socket.d(2830) * * * * * * * * * * * * * * * isMember = this is: std.socket.Socket * * * * * * * * * * * * * * * DtoFunctionType(nothrow @nogc @trusted void(SocketShutdown how)) * * * * * * * * * * * * * * * func = declare void @_D3std6socket6Socket8shutdownMFNbNiNeE3std6socket14SocketShutdownZv(%std.socket.Socket*, i32) * * * * * * * * * * * * * vthis: %6 = load %std.socket.Socket*, %std.socket.Socket** %socket * * * * * * * * * * * * * funcval: %9 = load void (%std.socket.Socket*, i32)*, void (%std.socket.Socket*, i32)** %"socket.shutdown@vtbl", align 8 * * * * * * * * * * * * * isMember = this is: std.socket.Socket * * * * * * * * * * * * * DtoFunctionType(nothrow @nogc @trusted void(SocketShutdown how)) * * * * * * * * * * * * * funcval casted: %socket.shutdown = load void (%std.socket.Socket*, i32)*, void (%std.socket.Socket*, i32)** %"socket.shutdown@vtbl", align 8 * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * Building type: nothrow @nogc @trusted void(SocketShutdown how) * * * * * * * * * * * * * * DtoFunctionType(nothrow @nogc @trusted void(SocketShutdown how)) * * * * * * * * * * * * * * * Building type: SocketShutdown * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * Final function type: void (i32) * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * %9 = load %std.socket.Socket*, %std.socket.Socket** %socket * * * * * * * * * * * * * Function type: nothrow @nogc @trusted void(SocketShutdown how) * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * IntegerExp::toElem: cast(SocketShutdown)2 @ SocketShutdown * * * * * * * * * * * * * * * IntegerExp::toConstElem: cast(SocketShutdown)2 @ SocketShutdown * * * * * * * * * * * * * * * * Building type: SocketShutdown * * * * * * * * * * * * * * * * value = i32 2 * * * * * * * * * * ExpStatement::toIR(): src/common/messages.d(210) * * * * * * * * * * * CallExp::toElem: socket.close() @ void * * * * * * * * * * * * DotVarExp::toElem: socket.close @ nothrow @nogc @trusted void() * * * * * * * * * * * * * VarExp::toElem: socket @ std.socket.Socket * * * * * * * * * * * * * * DtoSymbolAddress ('socket' of type 'std.socket.Socket') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * isMember = this is: std.socket.Socket * * * * * * * * * * * * * DtoFunctionType(nothrow @nogc @trusted void()) * * * * * * * * * * * * * DtoResolveFunction(std.socket.Socket.close): /usr/include/dlang/ldc/std/socket.d(2857) * * * * * * * * * * * * * * DtoDeclareFunction(std.socket.Socket.close): /usr/include/dlang/ldc/std/socket.d(2857) * * * * * * * * * * * * * * * isMember = this is: std.socket.Socket * * * * * * * * * * * * * * * DtoFunctionType(nothrow @nogc @trusted void()) * * * * * * * * * * * * * * * func = declare void @_D3std6socket6Socket5closeMFNbNiNeZv(%std.socket.Socket*) * * * * * * * * * * * * * vthis: %10 = load %std.socket.Socket*, %std.socket.Socket** %socket * * * * * * * * * * * * * funcval: %13 = load void (%std.socket.Socket*)*, void (%std.socket.Socket*)** %"socket.close@vtbl", align 8 * * * * * * * * * * * * * isMember = this is: std.socket.Socket * * * * * * * * * * * * * DtoFunctionType(nothrow @nogc @trusted void()) * * * * * * * * * * * * * funcval casted: %socket.close = load void (%std.socket.Socket*)*, void (%std.socket.Socket*)** %"socket.close@vtbl", align 8 * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * Building type: nothrow @nogc @trusted void() * * * * * * * * * * * * * * DtoFunctionType(nothrow @nogc @trusted void()) * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * Final function type: void () * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * %13 = load %std.socket.Socket*, %std.socket.Socket** %socket * * * * * * * * * * * * * Function type: nothrow @nogc @trusted void() * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * IfStatement::toIR(): src/common/messages.d(212) * * * * * * * * * * VarExp::toElem: useTCP @ bool * * * * * * * * * * * DtoSymbolAddress ('useTCP' of type 'bool') * * * * * * * * * * * * function param * * * * * * * * * * * * type: bool * * * * * * * * * * ScopeStatement::toIR(): src/common/messages.d(213) * * * * * * * * * * * CompoundStatement::toIR(): src/common/messages.d(213) * * * * * * * * * * * * ExpStatement::toIR(): src/common/messages.d(214) * * * * * * * * * * * * * AssignExp::toElem: socket = new TcpSocket(cast(AddressFamily)2) | (std.socket.Socket)(std.socket.Socket = std.socket.Socket) * * * * * * * * * * * * * * VarExp::toElem: socket @ std.socket.Socket * * * * * * * * * * * * * * * DtoSymbolAddress ('socket' of type 'std.socket.Socket') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * NewExp::toElem: new TcpSocket(cast(AddressFamily)2) @ std.socket.Socket * * * * * * * * * * * * * * * new class * * * * * * * * * * * * * * * DtoResolveClass(std.socket.TcpSocket): /usr/include/dlang/ldc/std/socket.d(3427) * * * * * * * * * * * * * * * * DtoResolveClass(std.socket.Socket): /usr/include/dlang/ldc/std/socket.d(2543) * * * * * * * * * * * * * * * * Building type: std.socket.TcpSocket * * * * * * * * * * * * * * * * * Building class type std.socket.TcpSocket @ /usr/include/dlang/ldc/std/socket.d(3427) * * * * * * * * * * * * * * * * * * Instance size: 24 * * * * * * * * * * * * * * * * * * adding default initializer for struct field sock * * * * * * * * * * * * * * * * * * adding default initializer for struct field _family * * * * * * * * * * * * * * * * * * Building type: socket_t * * * * * * * * * * * * * * * * * * Building type: socket_t * * * * * * * * * * * * * * * * * * Building type: AddressFamily * * * * * * * * * * * * * * * * * * Building type: AddressFamily * * * * * * * * * * * * * * * * * * Building vtbl type for class std.socket.TcpSocket * * * * * * * * * * * * * * * * * * * Adding type of object.Object.toString * * * * * * * * * * * * * * * * * * * isMember = this is: object.Object * * * * * * * * * * * * * * * * * * * DtoFunctionType(string()) * * * * * * * * * * * * * * * * * * * Adding type of object.Object.toHash * * * * * * * * * * * * * * * * * * * isMember = this is: object.Object * * * * * * * * * * * * * * * * * * * DtoFunctionType(nothrow @trusted ulong()) * * * * * * * * * * * * * * * * * * * Adding type of object.Object.opCmp * * * * * * * * * * * * * * * * * * * isMember = this is: object.Object * * * * * * * * * * * * * * * * * * * DtoFunctionType(int(Object o)) * * * * * * * * * * * * * * * * * * * Adding type of object.Object.opEquals * * * * * * * * * * * * * * * * * * * isMember = this is: object.Object * * * * * * * * * * * * * * * * * * * DtoFunctionType(bool(Object o)) * * * * * * * * * * * * * * * * * * * Adding type of std.socket.Socket.handle * * * * * * * * * * * * * * * * * * * isMember = this is: std.socket.Socket * * * * * * * * * * * * * * * * * * * DtoFunctionType(const pure nothrow @nogc @property @safe socket_t()) * * * * * * * * * * * * * * * * * * * Adding type of std.socket.Socket.blocking * * * * * * * * * * * * * * * * * * * isMember = this is: std.socket.Socket * * * * * * * * * * * * * * * * * * * DtoFunctionType(const nothrow @nogc @property @trusted bool()) * * * * * * * * * * * * * * * * * * * Adding type of std.socket.Socket.blocking * * * * * * * * * * * * * * * * * * * isMember = this is: std.socket.Socket * * * * * * * * * * * * * * * * * * * DtoFunctionType(@property @trusted void(bool byes)) * * * * * * * * * * * * * * * * * * * Adding type of std.socket.Socket.addressFamily * * * * * * * * * * * * * * * * * * * isMember = this is: std.socket.Socket * * * * * * * * * * * * * * * * * * * DtoFunctionType(@property @safe AddressFamily()) * * * * * * * * * * * * * * * * * * * Adding type of std.socket.Socket.isAlive * * * * * * * * * * * * * * * * * * * isMember = this is: std.socket.Socket * * * * * * * * * * * * * * * * * * * DtoFunctionType(const @property @trusted bool()) * * * * * * * * * * * * * * * * * * * Adding type of std.socket.Socket.bind * * * * * * * * * * * * * * * * * * * isMember = this is: std.socket.Socket * * * * * * * * * * * * * * * * * * * DtoFunctionType(@trusted void(Address addr)) * * * * * * * * * * * * * * * * * * * Adding type of std.socket.Socket.connect * * * * * * * * * * * * * * * * * * * isMember = this is: std.socket.Socket * * * * * * * * * * * * * * * * * * * DtoFunctionType(@trusted void(Address to)) * * * * * * * * * * * * * * * * * * * Adding type of std.socket.Socket.listen * * * * * * * * * * * * * * * * * * * isMember = this is: std.socket.Socket * * * * * * * * * * * * * * * * * * * DtoFunctionType(@trusted void(int backlog)) * * * * * * * * * * * * * * * * * * * Adding type of std.socket.Socket.accepting * * * * * * * * * * * * * * * * * * * isMember = this is: std.socket.Socket * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @safe Socket()) * * * * * * * * * * * * * * * * * * * Adding type of std.socket.Socket.accept * * * * * * * * * * * * * * * * * * * isMember = this is: std.socket.Socket * * * * * * * * * * * * * * * * * * * DtoFunctionType(@trusted Socket()) * * * * * * * * * * * * * * * * * * * Adding type of std.socket.Socket.shutdown * * * * * * * * * * * * * * * * * * * isMember = this is: std.socket.Socket * * * * * * * * * * * * * * * * * * * DtoFunctionType(nothrow @nogc @trusted void(SocketShutdown how)) * * * * * * * * * * * * * * * * * * * Adding type of std.socket.Socket.close * * * * * * * * * * * * * * * * * * * isMember = this is: std.socket.Socket * * * * * * * * * * * * * * * * * * * DtoFunctionType(nothrow @nogc @trusted void()) * * * * * * * * * * * * * * * * * * * Adding type of std.socket.Socket.remoteAddress * * * * * * * * * * * * * * * * * * * isMember = this is: std.socket.Socket * * * * * * * * * * * * * * * * * * * DtoFunctionType(@property @trusted Address()) * * * * * * * * * * * * * * * * * * * Adding type of std.socket.Socket.localAddress * * * * * * * * * * * * * * * * * * * isMember = this is: std.socket.Socket * * * * * * * * * * * * * * * * * * * DtoFunctionType(@property @trusted Address()) * * * * * * * * * * * * * * * * * * * Adding type of std.socket.Socket.send * * * * * * * * * * * * * * * * * * * isMember = this is: std.socket.Socket * * * * * * * * * * * * * * * * * * * DtoFunctionType(@trusted long(const(void)[] buf, SocketFlags flags)) * * * * * * * * * * * * * * * * * * * Adding type of std.socket.Socket.send * * * * * * * * * * * * * * * * * * * isMember = this is: std.socket.Socket * * * * * * * * * * * * * * * * * * * DtoFunctionType(@safe long(const(void)[] buf)) * * * * * * * * * * * * * * * * * * * Adding type of std.socket.Socket.sendTo * * * * * * * * * * * * * * * * * * * isMember = this is: std.socket.Socket * * * * * * * * * * * * * * * * * * * DtoFunctionType(@trusted long(const(void)[] buf, SocketFlags flags, Address to)) * * * * * * * * * * * * * * * * * * * Adding type of std.socket.Socket.sendTo * * * * * * * * * * * * * * * * * * * isMember = this is: std.socket.Socket * * * * * * * * * * * * * * * * * * * DtoFunctionType(@safe long(const(void)[] buf, Address to)) * * * * * * * * * * * * * * * * * * * Adding type of std.socket.Socket.sendTo * * * * * * * * * * * * * * * * * * * isMember = this is: std.socket.Socket * * * * * * * * * * * * * * * * * * * DtoFunctionType(@trusted long(const(void)[] buf, SocketFlags flags)) * * * * * * * * * * * * * * * * * * * Adding type of std.socket.Socket.sendTo * * * * * * * * * * * * * * * * * * * isMember = this is: std.socket.Socket * * * * * * * * * * * * * * * * * * * DtoFunctionType(@safe long(const(void)[] buf)) * * * * * * * * * * * * * * * * * * * Adding type of std.socket.Socket.receive * * * * * * * * * * * * * * * * * * * isMember = this is: std.socket.Socket * * * * * * * * * * * * * * * * * * * DtoFunctionType(@trusted long(void[] buf, SocketFlags flags)) * * * * * * * * * * * * * * * * * * * Adding type of std.socket.Socket.receive * * * * * * * * * * * * * * * * * * * isMember = this is: std.socket.Socket * * * * * * * * * * * * * * * * * * * DtoFunctionType(@safe long(void[] buf)) * * * * * * * * * * * * * * * * * * * Adding type of std.socket.Socket.receiveFrom * * * * * * * * * * * * * * * * * * * isMember = this is: std.socket.Socket * * * * * * * * * * * * * * * * * * * DtoFunctionType(@trusted long(void[] buf, SocketFlags flags, ref Address from)) * * * * * * * * * * * * * * * * * * * Adding type of std.socket.Socket.receiveFrom * * * * * * * * * * * * * * * * * * * isMember = this is: std.socket.Socket * * * * * * * * * * * * * * * * * * * DtoFunctionType(@safe long(void[] buf, ref Address from)) * * * * * * * * * * * * * * * * * * * Adding type of std.socket.Socket.receiveFrom * * * * * * * * * * * * * * * * * * * isMember = this is: std.socket.Socket * * * * * * * * * * * * * * * * * * * DtoFunctionType(@trusted long(void[] buf, SocketFlags flags)) * * * * * * * * * * * * * * * * * * * Adding type of std.socket.Socket.receiveFrom * * * * * * * * * * * * * * * * * * * isMember = this is: std.socket.Socket * * * * * * * * * * * * * * * * * * * DtoFunctionType(@safe long(void[] buf)) * * * * * * * * * * * * * * * * * * * Adding type of std.socket.Socket.getOption * * * * * * * * * * * * * * * * * * * isMember = this is: std.socket.Socket * * * * * * * * * * * * * * * * * * * DtoFunctionType(@trusted int(SocketOptionLevel level, SocketOption option, void[] result)) * * * * * * * * * * * * * * * * * * * Adding type of std.socket.Socket.getOption * * * * * * * * * * * * * * * * * * * isMember = this is: std.socket.Socket * * * * * * * * * * * * * * * * * * * DtoFunctionType(@trusted int(SocketOptionLevel level, SocketOption option, out int result)) * * * * * * * * * * * * * * * * * * * Adding type of std.socket.Socket.getOption * * * * * * * * * * * * * * * * * * * isMember = this is: std.socket.Socket * * * * * * * * * * * * * * * * * * * DtoFunctionType(@trusted int(SocketOptionLevel level, SocketOption option, out Linger result)) * * * * * * * * * * * * * * * * * * * Adding type of std.socket.Socket.getOption * * * * * * * * * * * * * * * * * * * isMember = this is: std.socket.Socket * * * * * * * * * * * * * * * * * * * DtoFunctionType(@trusted void(SocketOptionLevel level, SocketOption option, out Duration result)) * * * * * * * * * * * * * * * * * * * Adding type of std.socket.Socket.setOption * * * * * * * * * * * * * * * * * * * isMember = this is: std.socket.Socket * * * * * * * * * * * * * * * * * * * DtoFunctionType(@trusted void(SocketOptionLevel level, SocketOption option, void[] value)) * * * * * * * * * * * * * * * * * * * Adding type of std.socket.Socket.setOption * * * * * * * * * * * * * * * * * * * isMember = this is: std.socket.Socket * * * * * * * * * * * * * * * * * * * DtoFunctionType(@trusted void(SocketOptionLevel level, SocketOption option, int value)) * * * * * * * * * * * * * * * * * * * Adding type of std.socket.Socket.setOption * * * * * * * * * * * * * * * * * * * isMember = this is: std.socket.Socket * * * * * * * * * * * * * * * * * * * DtoFunctionType(@trusted void(SocketOptionLevel level, SocketOption option, Linger value)) * * * * * * * * * * * * * * * * * * * Adding type of std.socket.Socket.setOption * * * * * * * * * * * * * * * * * * * isMember = this is: std.socket.Socket * * * * * * * * * * * * * * * * * * * DtoFunctionType(@trusted void(SocketOptionLevel level, SocketOption option, Duration value)) * * * * * * * * * * * * * * * * * * * Adding type of std.socket.Socket.getErrorText * * * * * * * * * * * * * * * * * * * isMember = this is: std.socket.Socket * * * * * * * * * * * * * * * * * * * DtoFunctionType(@safe string()) * * * * * * * * * * * * * * * * * * * Adding type of std.socket.Socket.setKeepAlive * * * * * * * * * * * * * * * * * * * isMember = this is: std.socket.Socket * * * * * * * * * * * * * * * * * * * DtoFunctionType(@trusted void(int time, int interval)) * * * * * * * * * * * * * * * * * * * Adding type of std.socket.Socket.createAddress * * * * * * * * * * * * * * * * * * * isMember = this is: std.socket.Socket * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @safe Address()) * * * * * * * * * * * * * * * * * * class type: %std.socket.TcpSocket = type { %std.socket.TcpSocket.__vtbl*, i8*, i32, i32 } * * * * * * * * * * * * * * * Calling constructor * * * * * * * * * * * * * * * isMember = this is: std.socket.TcpSocket * * * * * * * * * * * * * * * DtoFunctionType(@safe TcpSocket(AddressFamily family)) * * * * * * * * * * * * * * * * Building type: AddressFamily * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * Final function type: %std.socket.TcpSocket* (%std.socket.TcpSocket*, i32) * * * * * * * * * * * * * * * DtoResolveFunction(std.socket.TcpSocket.this): /usr/include/dlang/ldc/std/socket.d(3430) * * * * * * * * * * * * * * * * DtoDeclareFunction(std.socket.TcpSocket.this): /usr/include/dlang/ldc/std/socket.d(3430) * * * * * * * * * * * * * * * * * isMember = this is: std.socket.TcpSocket * * * * * * * * * * * * * * * * * DtoFunctionType(@safe TcpSocket(AddressFamily family)) * * * * * * * * * * * * * * * * * func = declare %std.socket.TcpSocket* @_D3std6socket9TcpSocket6__ctorMFNfE3std6socket13AddressFamilyZC3std6socket9TcpSocket(%std.socket.TcpSocket*, i32) * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * Building type: @safe TcpSocket(AddressFamily family) * * * * * * * * * * * * * * * * * DtoFunctionType(@safe TcpSocket(AddressFamily family)) * * * * * * * * * * * * * * * * * * Building type: AddressFamily * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * Final function type: %std.socket.TcpSocket* (i32) * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * %.newclass_gc = bitcast %object.Object* %.newclass_gc_alloc to %std.socket.TcpSocket* * * * * * * * * * * * * * * * * Function type: @safe TcpSocket(AddressFamily family) * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * IntegerExp::toElem: cast(AddressFamily)2 @ AddressFamily * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: cast(AddressFamily)2 @ AddressFamily * * * * * * * * * * * * * * * * * * * Building type: AddressFamily * * * * * * * * * * * * * * * * * * * value = i32 2 * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * l : %socket = alloca %std.socket.Socket*, align 8 * * * * * * * * * * * * * * * r : %27 = invoke %std.socket.TcpSocket* @_D3std6socket9TcpSocket6__ctorMFNfE3std6socket13AddressFamilyZC3std6socket9TcpSocket(%std.socket.TcpSocket* returned %.newclass_gc, i32 2) to label %postinvoke4 unwind label %landingPad2 * * * * * * * * * * * * ExpStatement::toIR(): src/common/messages.d(215) * * * * * * * * * * * * * CallExp::toElem: socket.connect(new InternetAddress("localhost", port)) @ void * * * * * * * * * * * * * * DotVarExp::toElem: socket.connect @ @trusted void(Address to) * * * * * * * * * * * * * * * VarExp::toElem: socket @ std.socket.Socket * * * * * * * * * * * * * * * * DtoSymbolAddress ('socket' of type 'std.socket.Socket') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * isMember = this is: std.socket.Socket * * * * * * * * * * * * * * * DtoFunctionType(@trusted void(Address to)) * * * * * * * * * * * * * * * DtoResolveFunction(std.socket.Socket.connect): /usr/include/dlang/ldc/std/socket.d(2745) * * * * * * * * * * * * * * * * DtoDeclareFunction(std.socket.Socket.connect): /usr/include/dlang/ldc/std/socket.d(2745) * * * * * * * * * * * * * * * * * isMember = this is: std.socket.Socket * * * * * * * * * * * * * * * * * DtoFunctionType(@trusted void(Address to)) * * * * * * * * * * * * * * * * * func = declare void @_D3std6socket6Socket7connectMFNeC3std6socket7AddressZv(%std.socket.Socket*, %std.socket.Address*) * * * * * * * * * * * * * * * vthis: %29 = load %std.socket.Socket*, %std.socket.Socket** %socket * * * * * * * * * * * * * * * funcval: %32 = load void (%std.socket.Socket*, %std.socket.Address*)*, void (%std.socket.Socket*, %std.socket.Address*)** %"socket.connect@vtbl", align 8 * * * * * * * * * * * * * * * isMember = this is: std.socket.Socket * * * * * * * * * * * * * * * DtoFunctionType(@trusted void(Address to)) * * * * * * * * * * * * * * * funcval casted: %socket.connect = load void (%std.socket.Socket*, %std.socket.Address*)*, void (%std.socket.Socket*, %std.socket.Address*)** %"socket.connect@vtbl", align 8 * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * Building type: @trusted void(Address to) * * * * * * * * * * * * * * * * DtoFunctionType(@trusted void(Address to)) * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * Final function type: void (%std.socket.Address*) * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * %32 = load %std.socket.Socket*, %std.socket.Socket** %socket * * * * * * * * * * * * * * * Function type: @trusted void(Address to) * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * NewExp::toElem: new InternetAddress("localhost", port) @ std.socket.Address * * * * * * * * * * * * * * * * * new class * * * * * * * * * * * * * * * * * DtoResolveClass(std.socket.InternetAddress): /usr/include/dlang/ldc/std/socket.d(1534) * * * * * * * * * * * * * * * * * * DtoResolveClass(std.socket.Address): /usr/include/dlang/ldc/std/socket.d(1311) * * * * * * * * * * * * * * * * * * Building type: std.socket.InternetAddress * * * * * * * * * * * * * * * * * * * Building class type std.socket.InternetAddress @ /usr/include/dlang/ldc/std/socket.d(1534) * * * * * * * * * * * * * * * * * * * * Instance size: 32 * * * * * * * * * * * * * * * * * * * * adding default initializer for struct field sin * * * * * * * * * * * * * * * * * * * * Building type: sockaddr_in * * * * * * * * * * * * * * * * * * * * * Building struct type core.sys.posix.netinet.in_.sockaddr_in @ /usr/include/dlang/ldc/core/sys/posix/netinet/in_.d(79) * * * * * * * * * * * * * * * * * * * * * * adding default initializer for struct field sin_family * * * * * * * * * * * * * * * * * * * * * * adding default initializer for struct field sin_port * * * * * * * * * * * * * * * * * * * * * * adding default initializer for struct field sin_addr * * * * * * * * * * * * * * * * * * * * * * adding default initializer for struct field __pad * * * * * * * * * * * * * * * * * * * * * * Building type: in_addr * * * * * * * * * * * * * * * * * * * * * * * Building struct type core.sys.posix.arpa.inet.in_addr @ /usr/include/dlang/ldc/core/sys/posix/arpa/inet.d(57) * * * * * * * * * * * * * * * * * * * * * * * * adding default initializer for struct field s_addr * * * * * * * * * * * * * * * * * * * * * * * * final struct type: %core.sys.posix.arpa.inet.in_addr = type { i32 } * * * * * * * * * * * * * * * * * * * * * * Building type: ubyte[8] * * * * * * * * * * * * * * * * * * * * * * final struct type: %core.sys.posix.netinet.in_.sockaddr_in = type { i16, i16, %core.sys.posix.arpa.inet.in_addr, [8 x i8] } * * * * * * * * * * * * * * * * * * * * Building vtbl type for class std.socket.InternetAddress * * * * * * * * * * * * * * * * * * * * * Adding type of std.socket.Address.toString * * * * * * * * * * * * * * * * * * * * * isMember = this is: std.socket.Address * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(const @safe string()) * * * * * * * * * * * * * * * * * * * * * Adding type of object.Object.toHash * * * * * * * * * * * * * * * * * * * * * isMember = this is: object.Object * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(nothrow @trusted ulong()) * * * * * * * * * * * * * * * * * * * * * Adding type of object.Object.opCmp * * * * * * * * * * * * * * * * * * * * * isMember = this is: object.Object * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(int(Object o)) * * * * * * * * * * * * * * * * * * * * * Adding type of std.socket.InternetAddress.opEquals * * * * * * * * * * * * * * * * * * * * * isMember = this is: std.socket.InternetAddress * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(const @safe bool(Object o)) * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * * * Final function type: i1 (%std.socket.InternetAddress*, %object.Object*) * * * * * * * * * * * * * * * * * * * * * Adding type of std.socket.InternetAddress.name * * * * * * * * * * * * * * * * * * * * * isMember = this is: std.socket.InternetAddress * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @property @safe sockaddr*()) * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * * * Final function type: %core.sys.posix.sys.socket.sockaddr* (%std.socket.InternetAddress*) * * * * * * * * * * * * * * * * * * * * * Adding type of std.socket.InternetAddress.name * * * * * * * * * * * * * * * * * * * * * isMember = this is: std.socket.InternetAddress * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(const pure nothrow @nogc @property @safe const(sockaddr)*()) * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * * * Final function type: %core.sys.posix.sys.socket.sockaddr* (%std.socket.InternetAddress*) * * * * * * * * * * * * * * * * * * * * * Adding type of std.socket.InternetAddress.nameLen * * * * * * * * * * * * * * * * * * * * * isMember = this is: std.socket.InternetAddress * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(const pure nothrow @nogc @property @safe uint()) * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * * * Final function type: i32 (%std.socket.InternetAddress*) * * * * * * * * * * * * * * * * * * * * * Adding type of std.socket.Address.addressFamily * * * * * * * * * * * * * * * * * * * * * isMember = this is: std.socket.Address * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(const pure nothrow @nogc @property @safe AddressFamily()) * * * * * * * * * * * * * * * * * * * * * Adding type of std.socket.InternetAddress.toAddrString * * * * * * * * * * * * * * * * * * * * * isMember = this is: std.socket.InternetAddress * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(const @trusted string()) * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * * * Final function type: { i64, i8* } (%std.socket.InternetAddress*) * * * * * * * * * * * * * * * * * * * * * Adding type of std.socket.InternetAddress.toHostNameString * * * * * * * * * * * * * * * * * * * * * isMember = this is: std.socket.InternetAddress * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(const @safe string()) * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * * * Final function type: { i64, i8* } (%std.socket.InternetAddress*) * * * * * * * * * * * * * * * * * * * * * Adding type of std.socket.InternetAddress.toPortString * * * * * * * * * * * * * * * * * * * * * isMember = this is: std.socket.InternetAddress * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(const @safe string()) * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * * * Final function type: { i64, i8* } (%std.socket.InternetAddress*) * * * * * * * * * * * * * * * * * * * * * Adding type of std.socket.Address.toServiceNameString * * * * * * * * * * * * * * * * * * * * * isMember = this is: std.socket.Address * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(const @safe string()) * * * * * * * * * * * * * * * * * * * * * Adding type of std.socket.InternetAddress.port * * * * * * * * * * * * * * * * * * * * * isMember = this is: std.socket.InternetAddress * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(const pure nothrow @nogc @property @safe ushort()) * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * * * Final function type: i16 (%std.socket.InternetAddress*) * * * * * * * * * * * * * * * * * * * * * Adding type of std.socket.InternetAddress.addr * * * * * * * * * * * * * * * * * * * * * isMember = this is: std.socket.InternetAddress * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(const pure nothrow @nogc @property @safe uint()) * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * * * Final function type: i32 (%std.socket.InternetAddress*) * * * * * * * * * * * * * * * * * * * * class type: %std.socket.InternetAddress = type { %std.socket.InternetAddress.__vtbl*, i8*, %core.sys.posix.netinet.in_.sockaddr_in } * * * * * * * * * * * * * * * * * Calling constructor * * * * * * * * * * * * * * * * * isMember = this is: std.socket.InternetAddress * * * * * * * * * * * * * * * * * DtoFunctionType(@safe InternetAddress(const(char[]) addr, ushort port)) * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * Final function type: %std.socket.InternetAddress* (%std.socket.InternetAddress*, i16, { i64, i8* }) * * * * * * * * * * * * * * * * * DtoResolveFunction(std.socket.InternetAddress.this): /usr/include/dlang/ldc/std/socket.d(1587) * * * * * * * * * * * * * * * * * * DtoDeclareFunction(std.socket.InternetAddress.this): /usr/include/dlang/ldc/std/socket.d(1587) * * * * * * * * * * * * * * * * * * * isMember = this is: std.socket.InternetAddress * * * * * * * * * * * * * * * * * * * DtoFunctionType(@safe InternetAddress(const(char[]) addr, ushort port)) * * * * * * * * * * * * * * * * * * * func = declare %std.socket.InternetAddress* @_D3std6socket15InternetAddress6__ctorMFNfxAatZC3std6socket15InternetAddress(%std.socket.InternetAddress*, i16, { i64, i8* }) * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * Building type: @safe InternetAddress(const(char[]) addr, ushort port) * * * * * * * * * * * * * * * * * * * DtoFunctionType(@safe InternetAddress(const(char[]) addr, ushort port)) * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * Final function type: %std.socket.InternetAddress* (i16, { i64, i8* }) * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * * %.newclass_gc7 = bitcast %object.Object* %.newclass_gc_alloc6 to %std.socket.InternetAddress* * * * * * * * * * * * * * * * * * * Function type: @safe InternetAddress(const(char[]) addr, ushort port) * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * StringExp::toElem: "localhost" @ const(char[]) * * * * * * * * * * * * * * * * * * * * type: [10 x i8] * * * * * * * * * * * * * * * * * * * * init: [10 x i8] c"localhost\00" * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * VarExp::toElem: port @ ushort * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('port' of type 'ushort') * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * type: ushort * * * * * * * * * * * * * * * arg: %38 = invoke %std.socket.InternetAddress* @_D3std6socket15InternetAddress6__ctorMFNfxAatZC3std6socket15InternetAddress(%std.socket.InternetAddress* returned %.newclass_gc7, i16 zeroext %37, { i64, i8* } { i64 9, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.6, i32 0, i32 0) }) to label %postinvoke10 unwind label %landingPad2 * * * * * * * * * * * * * * * expects: %std.socket.Address* * * * * * * * * * * ScopeStatement::toIR(): src/common/messages.d(218) * * * * * * * * * * * CompoundStatement::toIR(): src/common/messages.d(218) * * * * * * * * * * * * ExpStatement::toIR(): src/common/messages.d(219) * * * * * * * * * * * * * AssignExp::toElem: socket = new Socket(cast(AddressFamily)1, cast(SocketType)1) | (std.socket.Socket)(std.socket.Socket = std.socket.Socket) * * * * * * * * * * * * * * VarExp::toElem: socket @ std.socket.Socket * * * * * * * * * * * * * * * DtoSymbolAddress ('socket' of type 'std.socket.Socket') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * NewExp::toElem: new Socket(cast(AddressFamily)1, cast(SocketType)1) @ std.socket.Socket * * * * * * * * * * * * * * * new class * * * * * * * * * * * * * * * Calling constructor * * * * * * * * * * * * * * * isMember = this is: std.socket.Socket * * * * * * * * * * * * * * * DtoFunctionType(@safe Socket(AddressFamily af, SocketType type)) * * * * * * * * * * * * * * * * Building type: AddressFamily * * * * * * * * * * * * * * * * Building type: SocketType * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * Final function type: %std.socket.Socket* (%std.socket.Socket*, i32, i32) * * * * * * * * * * * * * * * DtoResolveFunction(std.socket.Socket.this): /usr/include/dlang/ldc/std/socket.d(2624) * * * * * * * * * * * * * * * * DtoDeclareFunction(std.socket.Socket.this): /usr/include/dlang/ldc/std/socket.d(2624) * * * * * * * * * * * * * * * * * isMember = this is: std.socket.Socket * * * * * * * * * * * * * * * * * DtoFunctionType(@safe Socket(AddressFamily af, SocketType type)) * * * * * * * * * * * * * * * * * func = declare %std.socket.Socket* @_D3std6socket6Socket6__ctorMFNfE3std6socket13AddressFamilyE3std6socket10SocketTypeZC3std6socket6Socket(%std.socket.Socket*, i32, i32) * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * Building type: @safe Socket(AddressFamily af, SocketType type) * * * * * * * * * * * * * * * * * DtoFunctionType(@safe Socket(AddressFamily af, SocketType type)) * * * * * * * * * * * * * * * * * * Building type: AddressFamily * * * * * * * * * * * * * * * * * * Building type: SocketType * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * Final function type: %std.socket.Socket* (i32, i32) * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * %.newclass_gc14 = bitcast %object.Object* %.newclass_gc_alloc13 to %std.socket.Socket* * * * * * * * * * * * * * * * * Function type: @safe Socket(AddressFamily af, SocketType type) * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * IntegerExp::toElem: cast(AddressFamily)1 @ AddressFamily * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: cast(AddressFamily)1 @ AddressFamily * * * * * * * * * * * * * * * * * * * Building type: AddressFamily * * * * * * * * * * * * * * * * * * * value = i32 1 * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * IntegerExp::toElem: cast(SocketType)1 @ SocketType * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: cast(SocketType)1 @ SocketType * * * * * * * * * * * * * * * * * * * Building type: SocketType * * * * * * * * * * * * * * * * * * * value = i32 1 * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * l : %socket = alloca %std.socket.Socket*, align 8 * * * * * * * * * * * * * * * r : %44 = invoke %std.socket.Socket* @_D3std6socket6Socket6__ctorMFNfE3std6socket13AddressFamilyE3std6socket10SocketTypeZC3std6socket6Socket(%std.socket.Socket* returned %.newclass_gc14, i32 1, i32 1) to label %postinvoke17 unwind label %landingPad2 * * * * * * * * * * * * ExpStatement::toIR(): src/common/messages.d(220) * * * * * * * * * * * * * CallExp::toElem: socket.connect(new UnixAddress(socketFile)) @ void * * * * * * * * * * * * * * DotVarExp::toElem: socket.connect @ @trusted void(Address to) * * * * * * * * * * * * * * * VarExp::toElem: socket @ std.socket.Socket * * * * * * * * * * * * * * * * DtoSymbolAddress ('socket' of type 'std.socket.Socket') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * vthis: %45 = load %std.socket.Socket*, %std.socket.Socket** %socket * * * * * * * * * * * * * * * funcval: %48 = load void (%std.socket.Socket*, %std.socket.Address*)*, void (%std.socket.Socket*, %std.socket.Address*)** %"socket.connect@vtbl18", align 8 * * * * * * * * * * * * * * * isMember = this is: std.socket.Socket * * * * * * * * * * * * * * * DtoFunctionType(@trusted void(Address to)) * * * * * * * * * * * * * * * funcval casted: %socket.connect19 = load void (%std.socket.Socket*, %std.socket.Address*)*, void (%std.socket.Socket*, %std.socket.Address*)** %"socket.connect@vtbl18", align 8 * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * %48 = load %std.socket.Socket*, %std.socket.Socket** %socket * * * * * * * * * * * * * * * Function type: @trusted void(Address to) * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * NewExp::toElem: new UnixAddress(socketFile) @ std.socket.Address * * * * * * * * * * * * * * * * * new class * * * * * * * * * * * * * * * * * DtoResolveClass(std.socket.UnixAddress): /usr/include/dlang/ldc/std/socket.d(1921) * * * * * * * * * * * * * * * * * * Building type: std.socket.UnixAddress * * * * * * * * * * * * * * * * * * * Building class type std.socket.UnixAddress @ /usr/include/dlang/ldc/std/socket.d(1921) * * * * * * * * * * * * * * * * * * * * Instance size: 28 * * * * * * * * * * * * * * * * * * * * adding default initializer for struct field sun * * * * * * * * * * * * * * * * * * * * adding default initializer for struct field len * * * * * * * * * * * * * * * * * * * * Building type: sockaddr_un* * * * * * * * * * * * * * * * * * * * * * Building type: sockaddr_un * * * * * * * * * * * * * * * * * * * * * * Building struct type core.sys.posix.sys.un.sockaddr_un @ /usr/include/dlang/ldc/core/sys/posix/sys/un.d(37) * * * * * * * * * * * * * * * * * * * * * * * adding default initializer for struct field sun_family * * * * * * * * * * * * * * * * * * * * * * * adding default initializer for struct field sun_path * * * * * * * * * * * * * * * * * * * * * * * Building type: byte[108] * * * * * * * * * * * * * * * * * * * * * * * final struct type: %core.sys.posix.sys.un.sockaddr_un = type { i16, [108 x i8] } * * * * * * * * * * * * * * * * * * * * Building vtbl type for class std.socket.UnixAddress * * * * * * * * * * * * * * * * * * * * * Adding type of std.socket.UnixAddress.toString * * * * * * * * * * * * * * * * * * * * * isMember = this is: std.socket.UnixAddress * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(const pure @safe string()) * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * * * Final function type: { i64, i8* } (%std.socket.UnixAddress*) * * * * * * * * * * * * * * * * * * * * * Adding type of object.Object.toHash * * * * * * * * * * * * * * * * * * * * * isMember = this is: object.Object * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(nothrow @trusted ulong()) * * * * * * * * * * * * * * * * * * * * * Adding type of object.Object.opCmp * * * * * * * * * * * * * * * * * * * * * isMember = this is: object.Object * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(int(Object o)) * * * * * * * * * * * * * * * * * * * * * Adding type of object.Object.opEquals * * * * * * * * * * * * * * * * * * * * * isMember = this is: object.Object * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(bool(Object o)) * * * * * * * * * * * * * * * * * * * * * Adding type of std.socket.UnixAddress.name * * * * * * * * * * * * * * * * * * * * * isMember = this is: std.socket.UnixAddress * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @property @safe sockaddr*()) * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * * * Final function type: %core.sys.posix.sys.socket.sockaddr* (%std.socket.UnixAddress*) * * * * * * * * * * * * * * * * * * * * * Adding type of std.socket.UnixAddress.name * * * * * * * * * * * * * * * * * * * * * isMember = this is: std.socket.UnixAddress * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(const pure nothrow @nogc @property @safe const(sockaddr)*()) * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * * * Final function type: %core.sys.posix.sys.socket.sockaddr* (%std.socket.UnixAddress*) * * * * * * * * * * * * * * * * * * * * * Adding type of std.socket.UnixAddress.nameLen * * * * * * * * * * * * * * * * * * * * * isMember = this is: std.socket.UnixAddress * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(const pure nothrow @nogc @property @safe uint()) * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * * * Final function type: i32 (%std.socket.UnixAddress*) * * * * * * * * * * * * * * * * * * * * * Adding type of std.socket.Address.addressFamily * * * * * * * * * * * * * * * * * * * * * isMember = this is: std.socket.Address * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(const pure nothrow @nogc @property @safe AddressFamily()) * * * * * * * * * * * * * * * * * * * * * Adding type of std.socket.Address.toAddrString * * * * * * * * * * * * * * * * * * * * * isMember = this is: std.socket.Address * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(const @safe string()) * * * * * * * * * * * * * * * * * * * * * Adding type of std.socket.Address.toHostNameString * * * * * * * * * * * * * * * * * * * * * isMember = this is: std.socket.Address * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(const @safe string()) * * * * * * * * * * * * * * * * * * * * * Adding type of std.socket.Address.toPortString * * * * * * * * * * * * * * * * * * * * * isMember = this is: std.socket.Address * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(const @safe string()) * * * * * * * * * * * * * * * * * * * * * Adding type of std.socket.Address.toServiceNameString * * * * * * * * * * * * * * * * * * * * * isMember = this is: std.socket.Address * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(const @safe string()) * * * * * * * * * * * * * * * * * * * * * Adding type of std.socket.UnixAddress.path * * * * * * * * * * * * * * * * * * * * * isMember = this is: std.socket.UnixAddress * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(const pure @property @safe string()) * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * * * Final function type: { i64, i8* } (%std.socket.UnixAddress*) * * * * * * * * * * * * * * * * * * * * class type: %std.socket.UnixAddress = type { %std.socket.UnixAddress.__vtbl*, i8*, %core.sys.posix.sys.un.sockaddr_un*, i32 } * * * * * * * * * * * * * * * * * Calling constructor * * * * * * * * * * * * * * * * * isMember = this is: std.socket.UnixAddress * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @trusted UnixAddress(const(char[]) path)) * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * Final function type: %std.socket.UnixAddress* (%std.socket.UnixAddress*, { i64, i8* }) * * * * * * * * * * * * * * * * * DtoResolveFunction(std.socket.UnixAddress.this): /usr/include/dlang/ldc/std/socket.d(1951) * * * * * * * * * * * * * * * * * * DtoDeclareFunction(std.socket.UnixAddress.this): /usr/include/dlang/ldc/std/socket.d(1951) * * * * * * * * * * * * * * * * * * * isMember = this is: std.socket.UnixAddress * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @trusted UnixAddress(const(char[]) path)) * * * * * * * * * * * * * * * * * * * func = declare %std.socket.UnixAddress* @_D3std6socket11UnixAddress6__ctorMFNaNbNexAaZC3std6socket11UnixAddress(%std.socket.UnixAddress*, { i64, i8* }) * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * Building type: pure nothrow @trusted UnixAddress(const(char[]) path) * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @trusted UnixAddress(const(char[]) path)) * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * Final function type: %std.socket.UnixAddress* ({ i64, i8* }) * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * * %.newclass_gc22 = bitcast %object.Object* %.newclass_gc_alloc21 to %std.socket.UnixAddress* * * * * * * * * * * * * * * * * * * Function type: pure nothrow @trusted UnixAddress(const(char[]) path) * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * VarExp::toElem: socketFile @ const(char[]) * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('socketFile' of type 'string') * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * type: string * * * * * * * * * * * * * * * arg: %54 = invoke %std.socket.UnixAddress* @_D3std6socket11UnixAddress6__ctorMFNaNbNexAaZC3std6socket11UnixAddress(%std.socket.UnixAddress* returned %.newclass_gc22, { i64, i8* } %53) to label %postinvoke25 unwind label %landingPad2 * * * * * * * * * * * * * * * expects: %std.socket.Address* * * * * * * * * * ExpStatement::toIR(): src/common/messages.d(222) * * * * * * * * * * CallExp::toElem: socket.setOption(cast(SocketOptionLevel)1, cast(SocketOption)20, dur(5L)) @ void * * * * * * * * * * * DotVarExp::toElem: socket.setOption @ @trusted void(SocketOptionLevel level, SocketOption option, Duration value) * * * * * * * * * * * * VarExp::toElem: socket @ std.socket.Socket * * * * * * * * * * * * * DtoSymbolAddress ('socket' of type 'std.socket.Socket') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * isMember = this is: std.socket.Socket * * * * * * * * * * * * DtoFunctionType(@trusted void(SocketOptionLevel level, SocketOption option, Duration value)) * * * * * * * * * * * * DtoResolveFunction(std.socket.Socket.setOption): /usr/include/dlang/ldc/std/socket.d(3189) * * * * * * * * * * * * * DtoDeclareFunction(std.socket.Socket.setOption): /usr/include/dlang/ldc/std/socket.d(3189) * * * * * * * * * * * * * * isMember = this is: std.socket.Socket * * * * * * * * * * * * * * DtoFunctionType(@trusted void(SocketOptionLevel level, SocketOption option, Duration value)) * * * * * * * * * * * * * * func = declare void @_D3std6socket6Socket9setOptionMFNeE3std6socket17SocketOptionLevelE3std6socket12SocketOptionS4core4time8DurationZv(%std.socket.Socket*, %core.time.Duration, i32, i32) * * * * * * * * * * * * vthis: %23 = load %std.socket.Socket*, %std.socket.Socket** %socket * * * * * * * * * * * * funcval: %26 = load void (%std.socket.Socket*, %core.time.Duration, i32, i32)*, void (%std.socket.Socket*, %core.time.Duration, i32, i32)** %"socket.setOption@vtbl", align 8 * * * * * * * * * * * * isMember = this is: std.socket.Socket * * * * * * * * * * * * DtoFunctionType(@trusted void(SocketOptionLevel level, SocketOption option, Duration value)) * * * * * * * * * * * * funcval casted: %socket.setOption = load void (%std.socket.Socket*, %core.time.Duration, i32, i32)*, void (%std.socket.Socket*, %core.time.Duration, i32, i32)** %"socket.setOption@vtbl", align 8 * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * Building type: @trusted void(SocketOptionLevel level, SocketOption option, Duration value) * * * * * * * * * * * * * DtoFunctionType(@trusted void(SocketOptionLevel level, SocketOption option, Duration value)) * * * * * * * * * * * * * * Building type: SocketOptionLevel * * * * * * * * * * * * * * Building type: SocketOption * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * Final function type: void (%core.time.Duration, i32, i32) * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * %26 = load %std.socket.Socket*, %std.socket.Socket** %socket * * * * * * * * * * * * Function type: @trusted void(SocketOptionLevel level, SocketOption option, Duration value) * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * IntegerExp::toElem: cast(SocketOptionLevel)1 @ SocketOptionLevel * * * * * * * * * * * * * * IntegerExp::toConstElem: cast(SocketOptionLevel)1 @ SocketOptionLevel * * * * * * * * * * * * * * * Building type: SocketOptionLevel * * * * * * * * * * * * * * * value = i32 1 * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * IntegerExp::toElem: cast(SocketOption)20 @ SocketOption * * * * * * * * * * * * * * IntegerExp::toConstElem: cast(SocketOption)20 @ SocketOption * * * * * * * * * * * * * * * Building type: SocketOption * * * * * * * * * * * * * * * value = i32 20 * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * CallExp::toElem: dur(5L) @ Duration * * * * * * * * * * * * * * VarExp::toElem: dur @ pure nothrow @nogc @safe Duration(long length) * * * * * * * * * * * * * * * DtoSymbolAddress ('dur' of type 'pure nothrow @nogc @safe Duration(long length)') * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe Duration(long length)) * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * Final function type: %core.time.Duration (i64) * * * * * * * * * * * * * * * * DtoResolveFunction(core.time.dur!"seconds".dur): /usr/include/dlang/ldc/core/time.d(1712) * * * * * * * * * * * * * * * * * DtoDeclareFunction(core.time.dur!"seconds".dur): /usr/include/dlang/ldc/core/time.d(1712) * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe Duration(long length)) * * * * * * * * * * * * * * * * * * func = declare %core.time.Duration @_D4core4time29__T3durVAyaa7_7365636f6e6473Z3durFNaNbNiNflZS4core4time8Duration(i64) * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * Building type: pure nothrow @nogc @safe Duration(long length) * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe Duration(long length)) * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * Final function type: %core.time.Duration (i64) * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @safe Duration(long length) * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * IntegerExp::toElem: 5L @ long * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 5L @ long * * * * * * * * * * * * * * * * * * value = i64 5 * * * * * * * * * * * * * * * Storing return value to stack slot * * * * * * * * * * * * Loading struct type for function argument * * * * * * * * * ExpStatement::toIR(): src/common/messages.d(223) * * * * * * * * * * CallExp::toElem: socket.blocking(true) @ void * * * * * * * * * * * DotVarExp::toElem: socket.blocking @ @property @trusted void(bool byes) * * * * * * * * * * * * VarExp::toElem: socket @ std.socket.Socket * * * * * * * * * * * * * DtoSymbolAddress ('socket' of type 'std.socket.Socket') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * isMember = this is: std.socket.Socket * * * * * * * * * * * * DtoFunctionType(@property @trusted void(bool byes)) * * * * * * * * * * * * DtoResolveFunction(std.socket.Socket.blocking): /usr/include/dlang/ldc/std/socket.d(2691) * * * * * * * * * * * * * DtoDeclareFunction(std.socket.Socket.blocking): /usr/include/dlang/ldc/std/socket.d(2691) * * * * * * * * * * * * * * isMember = this is: std.socket.Socket * * * * * * * * * * * * * * DtoFunctionType(@property @trusted void(bool byes)) * * * * * * * * * * * * * * func = declare void @_D3std6socket6Socket8blockingMFNdNebZv(%std.socket.Socket*, i1) * * * * * * * * * * * * vthis: %63 = load %std.socket.Socket*, %std.socket.Socket** %socket * * * * * * * * * * * * funcval: %66 = load void (%std.socket.Socket*, i1)*, void (%std.socket.Socket*, i1)** %"socket.blocking@vtbl", align 8 * * * * * * * * * * * * isMember = this is: std.socket.Socket * * * * * * * * * * * * DtoFunctionType(@property @trusted void(bool byes)) * * * * * * * * * * * * funcval casted: %socket.blocking = load void (%std.socket.Socket*, i1)*, void (%std.socket.Socket*, i1)** %"socket.blocking@vtbl", align 8 * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * Building type: @property @trusted void(bool byes) * * * * * * * * * * * * * DtoFunctionType(@property @trusted void(bool byes)) * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * Final function type: void (i1) * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * %66 = load %std.socket.Socket*, %std.socket.Socket** %socket * * * * * * * * * * * * Function type: @property @trusted void(bool byes) * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * IntegerExp::toElem: true @ bool * * * * * * * * * * * * * * IntegerExp::toConstElem: true @ bool * * * * * * * * * * * * * * * value = i1 true * * * * * * * * * IfStatement::toIR(): src/common/messages.d(224) * * * * * * * * * * CallExp::toElem: sendRequest(socket, request) @ bool * * * * * * * * * * * VarExp::toElem: sendRequest @ bool(Socket socket, AutocompleteRequest request) * * * * * * * * * * * * DtoSymbolAddress ('sendRequest' of type 'bool(Socket socket, AutocompleteRequest request)') * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * Building type: bool(Socket socket, AutocompleteRequest request) * * * * * * * * * * * * * DtoFunctionType(bool(Socket socket, AutocompleteRequest request)) * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * Final function type: i1 (%common.messages.AutocompleteRequest*, %std.socket.Socket*) * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * Function type: bool(Socket socket, AutocompleteRequest request) * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * VarExp::toElem: socket @ std.socket.Socket * * * * * * * * * * * * * * DtoSymbolAddress ('socket' of type 'std.socket.Socket') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * VarExp::toElem: request @ AutocompleteRequest * * * * * * * * * * * * * * DtoSymbolAddress ('request' of type 'AutocompleteRequest') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * ReturnStatement::toIR(): src/common/messages.d(225) * * * * * * * * * * * EqualExp::toElem: getResponse(socket).completionType == "ack" @ bool * * * * * * * * * * * * DotVarExp::toElem: getResponse(socket).completionType @ string * * * * * * * * * * * * * CallExp::toElem: getResponse(socket) @ AutocompleteResponse * * * * * * * * * * * * * * VarExp::toElem: getResponse @ AutocompleteResponse(Socket socket) * * * * * * * * * * * * * * * DtoSymbolAddress ('getResponse' of type 'AutocompleteResponse(Socket socket)') * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * Building type: AutocompleteResponse(Socket socket) * * * * * * * * * * * * * * * * DtoFunctionType(AutocompleteResponse(Socket socket)) * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * Final function type: void (%common.messages.AutocompleteResponse*, %std.socket.Socket*) * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * %.rettmp = alloca %common.messages.AutocompleteResponse, align 8 * * * * * * * * * * * * * * * Function type: AutocompleteResponse(Socket socket) * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * VarExp::toElem: socket @ std.socket.Socket * * * * * * * * * * * * * * * * * DtoSymbolAddress ('socket' of type 'std.socket.Socket') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * Indexing aggregate field common.messages.AutocompleteResponse.completionType: * * * * * * * * * * * * * * Value: %69 = getelementptr %common.messages.AutocompleteResponse, %common.messages.AutocompleteResponse* %.rettmp, i32 0, i32 0 * * * * * * * * * * * * StringExp::toElem: "ack" @ string * * * * * * * * * * * * * type: [4 x i8] * * * * * * * * * * * * * init: [4 x i8] c"ack\00" * * * * * * * * * * * * static or dynamic array * * * * * * * * * * * * comparing arrays * * * * * * * * * * * * casting to dynamic arrays * * * * * * * * * * * * DtoCastArray * * * * * * * * * * * * * from array or sarray * * * * * * * * * * * * * to array * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * isslice * * * * * * * * * * * * DtoCastArray * * * * * * * * * * * * * from array or sarray * * * * * * * * * * * * * to array * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * isslice * * * * * * * * * * * * DtoTypeInfoOf(type = 'string', base='1') * * * * * * * * * * * * * Type::getTypeInfo(): string * * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(string)) * * * * * * * * * * * return value is '0x1219b550' * * * * * * * * * * ReturnStatement::toIR(): src/common/messages.d(227) * * * * * * * * * * * IntegerExp::toElem: false @ bool * * * * * * * * * * * * IntegerExp::toConstElem: false @ bool * * * * * * * * * * * * * value = i1 false * * * * * * * * * * * return value is '0x120e69a0' * TemplateInstance::codegen: 'core.stdc.stdint._typify!byte' * TemplateInstance::codegen: 'core.stdc.stdint._typify!short' * TemplateInstance::codegen: 'core.stdc.stdint._typify!int' * TemplateInstance::codegen: 'core.stdc.stdint._typify!long' * TemplateInstance::codegen: 'core.stdc.stdint._typify!ubyte' * TemplateInstance::codegen: 'core.stdc.stdint._typify!ushort' * TemplateInstance::codegen: 'core.stdc.stdint._typify!uint' * TemplateInstance::codegen: 'core.stdc.stdint._typify!ulong' * TemplateInstance::codegen: 'std.traits.Demangle!uint' * TemplateInstance::codegen: 'std.typetuple.TypeTuple!()' * TemplateInstance::codegen: 'std.typetuple.TypeTuple!(byte, ubyte, short, ushort, int, uint, long, ulong)' * TemplateInstance::codegen: 'std.typetuple.TypeTuple!(byte, short, int, long)' * TemplateInstance::codegen: 'std.typetuple.TypeTuple!(ubyte, ushort, uint, ulong)' * TemplateInstance::codegen: 'std.typetuple.TypeTuple!(float, double, real)' * TemplateInstance::codegen: 'std.typetuple.TypeTuple!(ifloat, idouble, ireal)' * TemplateInstance::codegen: 'std.typetuple.TypeTuple!(cfloat, cdouble, creal)' * TemplateInstance::codegen: 'std.typetuple.TypeTuple!(byte, ubyte, short, ushort, int, uint, long, ulong, float, double, real)' * TemplateInstance::codegen: 'std.typetuple.TypeTuple!(char, wchar, dchar)' * TemplateInstance::codegen: 'std.internal.unicode_tables.TrieEntry!(bool, 8, 4, 9)' * TemplateInstance::codegen: 'std.internal.unicode_tables.TrieEntry!(ushort, 8, 7, 6)' * TemplateInstance::codegen: 'std.internal.unicode_tables.TrieEntry!(bool, 8, 5, 8)' * TemplateInstance::codegen: 'std.internal.unicode_tables.TrieEntry!(bool, 8, 6, 7)' * TemplateInstance::codegen: 'std.internal.unicode_tables.TrieEntry!(bool, 7, 4, 4, 6)' * TemplateInstance::codegen: 'std.uni.sharMethod!(uniformLowerBound)' * TemplateInstance::codegen: 'std.uni.sharMethod!(switchUniformLowerBound)' * TemplateInstance::codegen: 'std.uni.CowArray!(ReallocPolicy)' * TemplateInstance::codegen: 'std.uni.ReallocPolicy.destroy!uint' * TemplateInstance::codegen: 'std.uni.CowArray!(ReallocPolicy).CowArray.opEquals!()' * TemplateInstance::codegen: 'std.uni.InversionList!(GcPolicy)' * TemplateInstance::codegen: 'std.functional.safeOp!"<"' * TemplateInstance::codegen: 'std.functional.safeOp!">"' * TemplateInstance::codegen: 'std.functional.safeOp!"=="' * TemplateInstance::codegen: 'std.typecons.Flag!"unsafe"' * TemplateInstance::codegen: 'std.typecons.Flag!"pipeOnPop"' * TemplateInstance::codegen: 'std.exception.enforceEx!(FormatException)' * TemplateInstance::codegen: 'std.traits.Unqual!char' * * Ignoring Dsymbol::codegen for std.traits.Unqual!char.Unqual * TemplateInstance::codegen: 'std.format.FormatSpec!char' * TemplateInstance::codegen: 'std.bitmanip.bitfields!(uint, "fraction", 23, ubyte, "exponent", 8, bool, "sign", 1)' * TemplateInstance::codegen: 'std.bitmanip.createStoreName!(uint, "fraction", 23, ubyte, "exponent", 8, bool, "sign", 1)' * TemplateInstance::codegen: 'std.bitmanip.createStoreName!(ubyte, "exponent", 8, bool, "sign", 1)' * TemplateInstance::codegen: 'std.bitmanip.createStoreName!(bool, "sign", 1)' * TemplateInstance::codegen: 'std.bitmanip.createStoreName!()' * TemplateInstance::codegen: 'std.bitmanip.createFields!("_fraction_exponent_sign", 0LU, uint, "fraction", 23, ubyte, "exponent", 8, bool, "sign", 1)' * TemplateInstance::codegen: 'std.bitmanip.createAccessors!("_fraction_exponent_sign", uint, "fraction", 23LU, 0LU)' * TemplateInstance::codegen: 'std.bitmanip.createFields!("_fraction_exponent_sign", 23LU, ubyte, "exponent", 8, bool, "sign", 1)' * TemplateInstance::codegen: 'std.bitmanip.createAccessors!("_fraction_exponent_sign", ubyte, "exponent", 8LU, 23LU)' * TemplateInstance::codegen: 'std.bitmanip.createFields!("_fraction_exponent_sign", 31LU, bool, "sign", 1)' * TemplateInstance::codegen: 'std.bitmanip.createAccessors!("_fraction_exponent_sign", bool, "sign", 1LU, 31LU)' * TemplateInstance::codegen: 'std.bitmanip.createFields!("_fraction_exponent_sign", 32LU)' * TemplateInstance::codegen: 'std.bitmanip.bitfields!(ulong, "fraction", 52, ushort, "exponent", 11, bool, "sign", 1)' * TemplateInstance::codegen: 'std.bitmanip.createStoreName!(ulong, "fraction", 52, ushort, "exponent", 11, bool, "sign", 1)' * TemplateInstance::codegen: 'std.bitmanip.createStoreName!(ushort, "exponent", 11, bool, "sign", 1)' * TemplateInstance::codegen: 'std.bitmanip.createFields!("_fraction_exponent_sign", 0LU, ulong, "fraction", 52, ushort, "exponent", 11, bool, "sign", 1)' * TemplateInstance::codegen: 'std.bitmanip.createAccessors!("_fraction_exponent_sign", ulong, "fraction", 52LU, 0LU)' * TemplateInstance::codegen: 'std.bitmanip.createFields!("_fraction_exponent_sign", 52LU, ushort, "exponent", 11, bool, "sign", 1)' * TemplateInstance::codegen: 'std.bitmanip.createAccessors!("_fraction_exponent_sign", ushort, "exponent", 11LU, 52LU)' * TemplateInstance::codegen: 'std.bitmanip.createFields!("_fraction_exponent_sign", 63LU, bool, "sign", 1)' * TemplateInstance::codegen: 'std.bitmanip.createAccessors!("_fraction_exponent_sign", bool, "sign", 1LU, 63LU)' * TemplateInstance::codegen: 'std.bitmanip.createFields!("_fraction_exponent_sign", 64LU)' * TemplateInstance::codegen: 'std.bitmanip.bitfields!(bool, "flDash", 1, bool, "flZero", 1, bool, "flSpace", 1, bool, "flPlus", 1, bool, "flHash", 1, ubyte, "", 3)' * TemplateInstance::codegen: 'std.bitmanip.createStoreName!(bool, "flDash", 1, bool, "flZero", 1, bool, "flSpace", 1, bool, "flPlus", 1, bool, "flHash", 1, ubyte, "", 3)' * TemplateInstance::codegen: 'std.bitmanip.createStoreName!(bool, "flZero", 1, bool, "flSpace", 1, bool, "flPlus", 1, bool, "flHash", 1, ubyte, "", 3)' * TemplateInstance::codegen: 'std.bitmanip.createStoreName!(bool, "flSpace", 1, bool, "flPlus", 1, bool, "flHash", 1, ubyte, "", 3)' * TemplateInstance::codegen: 'std.bitmanip.createStoreName!(bool, "flPlus", 1, bool, "flHash", 1, ubyte, "", 3)' * TemplateInstance::codegen: 'std.bitmanip.createStoreName!(bool, "flHash", 1, ubyte, "", 3)' * TemplateInstance::codegen: 'std.bitmanip.createStoreName!(ubyte, "", 3)' * TemplateInstance::codegen: 'std.bitmanip.createFields!("_flDash_flZero_flSpace_flPlus_flHash_", 0LU, bool, "flDash", 1, bool, "flZero", 1, bool, "flSpace", 1, bool, "flPlus", 1, bool, "flHash", 1, ubyte, "", 3)' * TemplateInstance::codegen: 'std.bitmanip.createAccessors!("_flDash_flZero_flSpace_flPlus_flHash_", bool, "flDash", 1LU, 0LU)' * TemplateInstance::codegen: 'std.bitmanip.createFields!("_flDash_flZero_flSpace_flPlus_flHash_", 1LU, bool, "flZero", 1, bool, "flSpace", 1, bool, "flPlus", 1, bool, "flHash", 1, ubyte, "", 3)' * TemplateInstance::codegen: 'std.bitmanip.createAccessors!("_flDash_flZero_flSpace_flPlus_flHash_", bool, "flZero", 1LU, 1LU)' * TemplateInstance::codegen: 'std.bitmanip.createFields!("_flDash_flZero_flSpace_flPlus_flHash_", 2LU, bool, "flSpace", 1, bool, "flPlus", 1, bool, "flHash", 1, ubyte, "", 3)' * TemplateInstance::codegen: 'std.bitmanip.createAccessors!("_flDash_flZero_flSpace_flPlus_flHash_", bool, "flSpace", 1LU, 2LU)' * TemplateInstance::codegen: 'std.bitmanip.createFields!("_flDash_flZero_flSpace_flPlus_flHash_", 3LU, bool, "flPlus", 1, bool, "flHash", 1, ubyte, "", 3)' * TemplateInstance::codegen: 'std.bitmanip.createAccessors!("_flDash_flZero_flSpace_flPlus_flHash_", bool, "flPlus", 1LU, 3LU)' * TemplateInstance::codegen: 'std.bitmanip.createFields!("_flDash_flZero_flSpace_flPlus_flHash_", 4LU, bool, "flHash", 1, ubyte, "", 3)' * TemplateInstance::codegen: 'std.bitmanip.createAccessors!("_flDash_flZero_flSpace_flPlus_flHash_", bool, "flHash", 1LU, 4LU)' * TemplateInstance::codegen: 'std.bitmanip.createFields!("_flDash_flZero_flSpace_flPlus_flHash_", 5LU, ubyte, "", 3)' * TemplateInstance::codegen: 'std.bitmanip.createAccessors!("_flDash_flZero_flSpace_flPlus_flHash_", ubyte, "", 3LU, 5LU)' * TemplateInstance::codegen: 'std.bitmanip.createFields!("_flDash_flZero_flSpace_flPlus_flHash_", 8LU)' * TemplateInstance::codegen: 'std.uni.CowArray!(GcPolicy)' * TemplateInstance::codegen: 'std.traits.isDynamicArray!(uint[])' * TemplateInstance::codegen: 'std.traits.DynamicArrayTypeOf!(uint[])' * TemplateInstance::codegen: 'std.traits.isAggregateType!(uint[])' * TemplateInstance::codegen: 'std.traits.OriginalType!(uint[])' * TemplateInstance::codegen: 'std.traits.ModifyTypePreservingSTC!(Impl, uint[])' * TemplateInstance::codegen: 'std.traits.OriginalType!(uint[]).Modifier!(uint[])' * TemplateInstance::codegen: 'std.traits.Unqual!(uint[])' * TemplateInstance::codegen: 'std.uni.GcPolicy.destroy!(uint[])' * TemplateInstance::codegen: 'std.uni.CowArray!(GcPolicy).CowArray.opEquals!()' * TemplateInstance::codegen: 'std.uni.CodepointInterval.opEquals!(CodepointInterval)' * TemplateInstance::codegen: 'std.uni.assumeSize!(low_8, 8LU)' * TemplateInstance::codegen: 'std.uni.assumeSize!(midlow_8, 8LU)' * TemplateInstance::codegen: 'std.typetuple.TypeTuple!(toUpperIndex, 1051, toUpperTab)' * TemplateInstance::codegen: 'std.typetuple.TypeTuple!(toLowerIndex, 1043, toLowerTab)' * TemplateInstance::codegen: 'std.typecons.Flag!"caseSensitive"' * TemplateInstance::codegen: 'std.typecons.Flag!"keepTerminator"' * TemplateInstance::codegen: 'core.time.dur!"weeks"' * TemplateInstance::codegen: 'core.time.dur!"days"' * TemplateInstance::codegen: 'core.time.dur!"hours"' * TemplateInstance::codegen: 'core.time.dur!"minutes"' * TemplateInstance::codegen: 'core.time.dur!"seconds"' * TemplateInstance::codegen: 'core.time.dur!"msecs"' * TemplateInstance::codegen: 'core.time.dur!"usecs"' * TemplateInstance::codegen: 'core.time.dur!"hnsecs"' * TemplateInstance::codegen: 'core.time.dur!"nsecs"' * TemplateInstance::codegen: 'std.traits.isDynamicArray!(ubyte[])' * * VarDeclaration::codegen(): 'std.traits.isDynamicArray!(ubyte[]).isDynamicArray' * * * DtoResolveVariable(std.traits.isDynamicArray!(ubyte[]).isDynamicArray) * TemplateInstance::codegen: 'std.traits.DynamicArrayTypeOf!(ubyte[])' * TemplateInstance::codegen: 'std.traits.isAggregateType!(ubyte[])' * * VarDeclaration::codegen(): 'std.traits.isAggregateType!(ubyte[]).isAggregateType' * * * DtoResolveVariable(std.traits.isAggregateType!(ubyte[]).isAggregateType) * TemplateInstance::codegen: 'std.traits.OriginalType!(ubyte[])' * TemplateInstance::codegen: 'std.traits.ModifyTypePreservingSTC!(Impl, ubyte[])' * TemplateInstance::codegen: 'std.traits.OriginalType!(ubyte[]).Modifier!(ubyte[])' * TemplateInstance::codegen: 'std.traits.Unqual!(ubyte[])' * TemplateInstance::codegen: 'std.array.Appender!(ubyte[])' * * StructDeclaration::codegen: 'std.array.Appender!(ubyte[]).Appender' * * * Resolving struct type: Appender (/usr/include/dlang/ldc/std/array.d(2591)) * * * * Building type: Appender!(ubyte[]) * * * * * Building struct type std.array.Appender!(ubyte[]).Appender @ /usr/include/dlang/ldc/std/array.d(2591) * * * * * * adding default initializer for struct field _data * * * * * * Building type: Data* * * * * * * * Building type: Data * * * * * * * * Building struct type std.array.Appender!(ubyte[]).Appender.Data @ /usr/include/dlang/ldc/std/array.d(2597) * * * * * * * * * adding explicit initializer for struct field canExtend * * * * * * * * * adding default initializer for struct field capacity * * * * * * * * * adding default initializer for struct field arr * * * * * * * * * final struct type: %"std.array.Appender!(ubyte[]).Appender.Data" = type { i64, { i64, i8* }, i8, [7 x i8] } * * * * * * final struct type: %"std.array.Appender!(ubyte[]).Appender" = type { %"std.array.Appender!(ubyte[]).Appender.Data"* } * * * Ignoring Dsymbol::codegen for std.array.Appender!(ubyte[]).Appender.core * * * Ignoring Dsymbol::codegen for std.array.Appender!(ubyte[]).Appender.T * * * StructDeclaration::codegen: 'std.array.Appender!(ubyte[]).Appender.Data' * * * * Resolving struct type: Data (/usr/include/dlang/ldc/std/array.d(2597)) * * * * VarDeclaration::codegen(): 'std.array.Appender!(ubyte[]).Appender.Data.capacity' * * * * * DtoResolveVariable(std.array.Appender!(ubyte[]).Appender.Data.capacity) * * * * VarDeclaration::codegen(): 'std.array.Appender!(ubyte[]).Appender.Data.arr' * * * * * DtoResolveVariable(std.array.Appender!(ubyte[]).Appender.Data.arr) * * * * VarDeclaration::codegen(): 'std.array.Appender!(ubyte[]).Appender.Data.canExtend' * * * * * DtoResolveVariable(std.array.Appender!(ubyte[]).Appender.Data.canExtend) * * * * Building default initializer for std.array.Appender!(ubyte[]).Appender.Data * * * * * Creating initializer constant for Data * * * * * * Implicit initializer: capacity @+0 * * * * * * * DtoConstExpInit(targetType = ulong, exp = 0LU) * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * value = i64 0 * * * * * * Implicit initializer: arr @+8 * * * * * * * DtoConstExpInit(targetType = ubyte[], exp = null) * * * * * * * * NullExp::toConstElem(type=ubyte[]): null * * * * * * Implicit initializer: canExtend @+24 * * * * * * * const expression initializer * * * * * * * DtoConstExpInit(targetType = bool, exp = false) * * * * * * * * IntegerExp::toConstElem: false @ bool * * * * * * * * * value = i1 false * * * * * * * * Fixing up unresolved implicit integer conversion. * * * * * * adding field capacity * * * * * * adding field arr * * * * * * adding field canExtend * * * * * * final initializer: %"std.array.Appender!(ubyte[]).Appender.Data_init" zeroinitializer * * * * DtoTypeInfoOf(type = 'Data', base='1') * * * * * Type::getTypeInfo(): Data * * * * * * TypeInfoDeclaration::codegen(typeid(Data)) * * * * * * * type = 'Data' * * * * * * * typeinfo mangle: _D52TypeInfo_S3std5array16__T8AppenderTAhZ8Appender4Data6__initZ * * * * * * * TypeInfoStructDeclaration::llvmDefine() typeid(Data) * * * * * * * * DtoFunctionType(nothrow @trusted ulong(ref const(Data) p)) * * * * * * * * * Building type: const(Data)* * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * Final function type: i64 (%"std.array.Appender!(ubyte[]).Appender.Data"*) * * * * * * * * DtoResolveFunction(std.array.Appender!(ubyte[]).Appender.Data.__xtoHash): * * * * * * * * * DtoDeclareFunction(std.array.Appender!(ubyte[]).Appender.Data.__xtoHash): * * * * * * * * * * DtoFunctionType(nothrow @trusted ulong(ref const(Data) p)) * * * * * * * * * * func = declare i64 @_D3std5array16__T8AppenderTAhZ8Appender4Data9__xtoHashFNbNeKxS3std5array16__T8AppenderTAhZ8Appender4DataZm(%"std.array.Appender!(ubyte[]).Appender.Data"*) * * * * * * * * DtoFunctionType(bool(ref const(Data) p, ref const(Data) q)) * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * Final function type: i1 (%"std.array.Appender!(ubyte[]).Appender.Data"*, %"std.array.Appender!(ubyte[]).Appender.Data"*) * * * * * * * * DtoResolveFunction(std.array.Appender!(ubyte[]).Appender.Data.__xopEquals): * * * * * * * * * DtoDeclareFunction(std.array.Appender!(ubyte[]).Appender.Data.__xopEquals): * * * * * * * * * * DtoFunctionType(bool(ref const(Data) p, ref const(Data) q)) * * * * * * * * * * func = declare i1 @_D3std5array16__T8AppenderTAhZ8Appender4Data11__xopEqualsFKxS3std5array16__T8AppenderTAhZ8Appender4DataKxS3std5array16__T8AppenderTAhZ8Appender4DataZb(%"std.array.Appender!(ubyte[]).Appender.Data"*, %"std.array.Appender!(ubyte[]).Appender.Data"*) * * * * * * * * IntegerExp::toConstElem: cast(void*)305419896LU @ void* * * * * * * * * * pointer * * * * * TypeInfoDeclaration::codegen(typeid(Data)) * * * * DtoDefineFunction(std.array.Appender!(ubyte[]).Appender.Data.__xopEquals): * * * * * Doing function body for: __xopEquals * * * * * DtoCreateNestedContext for __xopEquals * * * * * * DtoCreateNestedContextType for std.array.Appender!(ubyte[]).Appender.Data.__xopEquals * * * * * CompoundStatement::toIR(): * * * * * * ReturnStatement::toIR(): * * * * * * * AndAndExp::toElem: p.capacity == q.capacity && p.arr == q.arr && cast(int)p.canExtend == cast(int)q.canExtend @ bool * * * * * * * * AndAndExp::toElem: p.capacity == q.capacity && p.arr == q.arr @ bool * * * * * * * * * EqualExp::toElem: p.capacity == q.capacity @ bool * * * * * * * * * * DotVarExp::toElem: p.capacity @ const(ulong) * * * * * * * * * * * VarExp::toElem: p @ const(Data) * * * * * * * * * * * * DtoSymbolAddress ('p' of type 'const(Data)') * * * * * * * * * * * * * function param * * * * * * * * * * * * * type: const(Data) * * * * * * * * * * * Indexing aggregate field std.array.Appender!(ubyte[]).Appender.Data.capacity: * * * * * * * * * * * * Value: %1 = getelementptr %"std.array.Appender!(ubyte[]).Appender.Data", %"std.array.Appender!(ubyte[]).Appender.Data"* %p_arg, i32 0, i32 0 * * * * * * * * * * DotVarExp::toElem: q.capacity @ const(ulong) * * * * * * * * * * * VarExp::toElem: q @ const(Data) * * * * * * * * * * * * DtoSymbolAddress ('q' of type 'const(Data)') * * * * * * * * * * * * * function param * * * * * * * * * * * * * type: const(Data) * * * * * * * * * * * Indexing aggregate field std.array.Appender!(ubyte[]).Appender.Data.capacity: * * * * * * * * * * * * Value: %2 = getelementptr %"std.array.Appender!(ubyte[]).Appender.Data", %"std.array.Appender!(ubyte[]).Appender.Data"* %q_arg, i32 0, i32 0 * * * * * * * * * * integral or pointer or interface * * * * * * * * * * lv: %3 = load i64, i64* %1 * * * * * * * * * * rv: %4 = load i64, i64* %2 * * * * * * * * * EqualExp::toElem: p.arr == q.arr @ bool * * * * * * * * * * DotVarExp::toElem: p.arr @ const(ubyte[]) * * * * * * * * * * * VarExp::toElem: p @ const(Data) * * * * * * * * * * * * DtoSymbolAddress ('p' of type 'const(Data)') * * * * * * * * * * * * * function param * * * * * * * * * * * * * type: const(Data) * * * * * * * * * * * Indexing aggregate field std.array.Appender!(ubyte[]).Appender.Data.arr: * * * * * * * * * * * * Value: %6 = getelementptr %"std.array.Appender!(ubyte[]).Appender.Data", %"std.array.Appender!(ubyte[]).Appender.Data"* %p_arg, i32 0, i32 1 * * * * * * * * * * DotVarExp::toElem: q.arr @ const(ubyte[]) * * * * * * * * * * * VarExp::toElem: q @ const(Data) * * * * * * * * * * * * DtoSymbolAddress ('q' of type 'const(Data)') * * * * * * * * * * * * * function param * * * * * * * * * * * * * type: const(Data) * * * * * * * * * * * Indexing aggregate field std.array.Appender!(ubyte[]).Appender.Data.arr: * * * * * * * * * * * * Value: %7 = getelementptr %"std.array.Appender!(ubyte[]).Appender.Data", %"std.array.Appender!(ubyte[]).Appender.Data"* %q_arg, i32 0, i32 1 * * * * * * * * * * static or dynamic array * * * * * * * * * * comparing arrays * * * * * * * * * * casting to dynamic arrays * * * * * * * * * * DtoCastArray * * * * * * * * * * * from array or sarray * * * * * * * * * * * to array * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * isslice * * * * * * * * * * DtoCastArray * * * * * * * * * * * from array or sarray * * * * * * * * * * * to array * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * isslice * * * * * * * * * * DtoTypeInfoOf(type = 'const(ubyte)[]', base='1') * * * * * * * * * * * Type::getTypeInfo(): const(ubyte)[] * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(const(ubyte)[])) * * * * * * * * EqualExp::toElem: cast(int)p.canExtend == cast(int)q.canExtend @ bool * * * * * * * * * CastExp::toElem: cast(int)p.canExtend @ int * * * * * * * * * * DotVarExp::toElem: p.canExtend @ const(bool) * * * * * * * * * * * VarExp::toElem: p @ const(Data) * * * * * * * * * * * * DtoSymbolAddress ('p' of type 'const(Data)') * * * * * * * * * * * * * function param * * * * * * * * * * * * * type: const(Data) * * * * * * * * * * * Indexing aggregate field std.array.Appender!(ubyte[]).Appender.Data.canExtend: * * * * * * * * * * * * Value: %20 = getelementptr %"std.array.Appender!(ubyte[]).Appender.Data", %"std.array.Appender!(ubyte[]).Appender.Data"* %p_arg, i32 0, i32 2 * * * * * * * * * * Casting from 'const(bool)' to 'int' * * * * * * * * * * * cast to: i32 * * * * * * * * * CastExp::toElem: cast(int)q.canExtend @ int * * * * * * * * * * DotVarExp::toElem: q.canExtend @ const(bool) * * * * * * * * * * * VarExp::toElem: q @ const(Data) * * * * * * * * * * * * DtoSymbolAddress ('q' of type 'const(Data)') * * * * * * * * * * * * * function param * * * * * * * * * * * * * type: const(Data) * * * * * * * * * * * Indexing aggregate field std.array.Appender!(ubyte[]).Appender.Data.canExtend: * * * * * * * * * * * * Value: %24 = getelementptr %"std.array.Appender!(ubyte[]).Appender.Data", %"std.array.Appender!(ubyte[]).Appender.Data"* %q_arg, i32 0, i32 2 * * * * * * * * * * Casting from 'const(bool)' to 'int' * * * * * * * * * * * cast to: i32 * * * * * * * * * integral or pointer or interface * * * * * * * * * lv: %23 = zext i1 %22 to i32 * * * * * * * * * rv: %27 = zext i1 %26 to i32 * * * * * * * return value is '0x121b1538' * * * * DtoDefineFunction(std.array.Appender!(ubyte[]).Appender.Data.__xtoHash): * * * * * Doing function body for: __xtoHash * * * * * DtoCreateNestedContext for __xtoHash * * * * * * DtoCreateNestedContextType for std.array.Appender!(ubyte[]).Appender.Data.__xtoHash * * * * * CompoundStatement::toIR(): * * * * * * CompoundStatement::toIR(): * * * * * * * ExpStatement::toIR(): * * * * * * * * DeclarationExp::toElem: ulong h = 0LU; | T=void * * * * * * * * * DtoDeclarationExp: h * * * * * * * * * * VarDeclaration * * * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * * * llvm value for decl: %h = alloca i64, align 8 * * * * * * * * * * * expression initializer * * * * * * * * * * * AssignExp::toElem: h = 0LU | (ulong)(ulong = ulong) * * * * * * * * * * * * VarExp::toElem: h @ ulong * * * * * * * * * * * * * DtoSymbolAddress ('h' of type 'ulong') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * lhs: %h = alloca i64, align 8 * * * * * * * * * * * * * rhs: i64 0 * * * * * * * UnrolledLoopStatement::toIR(): * * * * * * * * ScopeStatement::toIR(): * * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * * ExpStatement::toIR(): * * * * * * * * * * * DeclarationExp::toElem: enum ulong i = 0LU; | T=void * * * * * * * * * * * * DtoDeclarationExp: i * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * Manifest constant, nothing to do. * * * * * * * * * * ExpStatement::toIR(): * * * * * * * * * * * DeclarationExp::toElem: alias T = const(ulong); | T=void * * * * * * * * * * * * DtoDeclarationExp: T * * * * * * * * * * * * * Ignoring Symbol: alias * * * * * * * * * * ExpStatement::toIR(): * * * * * * * * * * * AddAssignExp::toElem: h += typeid(const(ulong)).getHash(cast(const(void*))&p.capacity) @ ulong * * * * * * * * * * * * Caching l-value of h += typeid(const(ulong)).getHash(cast(const(void*))&p.capacity) => h * * * * * * * * * * * * * VarExp::toElem: h @ ulong * * * * * * * * * * * * * * DtoSymbolAddress ('h' of type 'ulong') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * AddExp::toElem: h + typeid(const(ulong)).getHash(cast(const(void*))&p.capacity) @ ulong * * * * * * * * * * * * * VarExp::toElem: h @ ulong * * * * * * * * * * * * * CallExp::toElem: typeid(const(ulong)).getHash(cast(const(void*))&p.capacity) @ ulong * * * * * * * * * * * * * * DotVarExp::toElem: typeid(const(ulong)).getHash @ const nothrow @trusted ulong(const(void*) p) * * * * * * * * * * * * * * * SymOffExp::toElem: typeid(const(ulong)) @ object.TypeInfo * * * * * * * * * * * * * * * * DtoSymbolAddress ('typeid(const(ulong))' of type 'object.TypeInfo_Const') * * * * * * * * * * * * * * * * * TypeInfoDeclaration * * * * * * * * * * * * * * * * Casting from 'TypeInfo_Const*' to 'object.TypeInfo' * * * * * * * * * * * * * * * * * src: %object.TypeInfo_Const* bitcast (%"typeid(const(ulong))"* @_D11TypeInfo_xm6__initZ to %object.TypeInfo_Const*) * * * * * * * * * * * * * * * * * to type: %object.TypeInfo* * * * * * * * * * * * * * * * vthis: %object.TypeInfo* bitcast (%"typeid(const(ulong))"* @_D11TypeInfo_xm6__initZ to %object.TypeInfo*) * * * * * * * * * * * * * * * funcval: %3 = load i64 (%object.TypeInfo*, i8*)*, i64 (%object.TypeInfo*, i8*)** %"typeid(const(ulong)).getHash@vtbl", align 8 * * * * * * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * * * * * * DtoFunctionType(const nothrow @trusted ulong(const(void*) p)) * * * * * * * * * * * * * * * funcval casted: %"typeid(const(ulong)).getHash" = load i64 (%object.TypeInfo*, i8*)*, i64 (%object.TypeInfo*, i8*)** %"typeid(const(ulong)).getHash@vtbl", align 8 * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * %object.TypeInfo* bitcast (%"typeid(const(ulong))"* @_D11TypeInfo_xm6__initZ to %object.TypeInfo*) * * * * * * * * * * * * * * * Function type: const nothrow @trusted ulong(const(void*) p) * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * CastExp::toElem: cast(const(void*))&p.capacity @ const(void*) * * * * * * * * * * * * * * * * * AddrExp::toElem: &p.capacity @ const(ulong)* * * * * * * * * * * * * * * * * * * DotVarExp::toElem: p.capacity @ const(ulong) * * * * * * * * * * * * * * * * * * * VarExp::toElem: p @ const(Data) * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('p' of type 'const(Data)') * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * type: const(Data) * * * * * * * * * * * * * * * * * * * Indexing aggregate field std.array.Appender!(ubyte[]).Appender.Data.capacity: * * * * * * * * * * * * * * * * * * * * Value: %3 = getelementptr %"std.array.Appender!(ubyte[]).Appender.Data", %"std.array.Appender!(ubyte[]).Appender.Data"* %p_arg, i32 0, i32 0 * * * * * * * * * * * * * * * * * * is nothing special * * * * * * * * * * * * * * * * * * lval: %3 = getelementptr %"std.array.Appender!(ubyte[]).Appender.Data", %"std.array.Appender!(ubyte[]).Appender.Data"* %p_arg, i32 0, i32 0 * * * * * * * * * * * * * * * * * Casting from 'const(ulong)*' to 'const(void*)' * * * * * * * * * * * * * * * * * * src: %3 = getelementptr %"std.array.Appender!(ubyte[]).Appender.Data", %"std.array.Appender!(ubyte[]).Appender.Data"* %p_arg, i32 0, i32 0 * * * * * * * * * * * * * * * * * * to type: i8* * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * lhs: %h = alloca i64, align 8 * * * * * * * * * * * * * rhs: %7 = add i64 %6, %5 * * * * * * * * ScopeStatement::toIR(): * * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * * ExpStatement::toIR(): * * * * * * * * * * * DeclarationExp::toElem: enum ulong i = 1LU; | T=void * * * * * * * * * * * * DtoDeclarationExp: i * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * Manifest constant, nothing to do. * * * * * * * * * * ExpStatement::toIR(): * * * * * * * * * * * DeclarationExp::toElem: alias T = const(ubyte[]); | T=void * * * * * * * * * * * * DtoDeclarationExp: T * * * * * * * * * * * * * Ignoring Symbol: alias * * * * * * * * * * ExpStatement::toIR(): * * * * * * * * * * * AddAssignExp::toElem: h += typeid(const(ubyte[])).getHash(cast(const(void*))&p.arr) @ ulong * * * * * * * * * * * * Caching l-value of h += typeid(const(ubyte[])).getHash(cast(const(void*))&p.arr) => h * * * * * * * * * * * * * VarExp::toElem: h @ ulong * * * * * * * * * * * * * * DtoSymbolAddress ('h' of type 'ulong') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * AddExp::toElem: h + typeid(const(ubyte[])).getHash(cast(const(void*))&p.arr) @ ulong * * * * * * * * * * * * * VarExp::toElem: h @ ulong * * * * * * * * * * * * * CallExp::toElem: typeid(const(ubyte[])).getHash(cast(const(void*))&p.arr) @ ulong * * * * * * * * * * * * * * DotVarExp::toElem: typeid(const(ubyte[])).getHash @ const nothrow @trusted ulong(const(void*) p) * * * * * * * * * * * * * * * SymOffExp::toElem: typeid(const(ubyte[])) @ object.TypeInfo * * * * * * * * * * * * * * * * DtoSymbolAddress ('typeid(const(ubyte[]))' of type 'object.TypeInfo_Const') * * * * * * * * * * * * * * * * * TypeInfoDeclaration * * * * * * * * * * * * * * * * Casting from 'TypeInfo_Const*' to 'object.TypeInfo' * * * * * * * * * * * * * * * * * src: %object.TypeInfo_Const* bitcast (%"typeid(const(ubyte[]))"* @_D12TypeInfo_xAh6__initZ to %object.TypeInfo_Const*) * * * * * * * * * * * * * * * * * to type: %object.TypeInfo* * * * * * * * * * * * * * * * vthis: %object.TypeInfo* bitcast (%"typeid(const(ubyte[]))"* @_D12TypeInfo_xAh6__initZ to %object.TypeInfo*) * * * * * * * * * * * * * * * funcval: %10 = load i64 (%object.TypeInfo*, i8*)*, i64 (%object.TypeInfo*, i8*)** %"typeid(const(ubyte[])).getHash@vtbl", align 8 * * * * * * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * * * * * * DtoFunctionType(const nothrow @trusted ulong(const(void*) p)) * * * * * * * * * * * * * * * funcval casted: %"typeid(const(ubyte[])).getHash" = load i64 (%object.TypeInfo*, i8*)*, i64 (%object.TypeInfo*, i8*)** %"typeid(const(ubyte[])).getHash@vtbl", align 8 * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * %object.TypeInfo* bitcast (%"typeid(const(ubyte[]))"* @_D12TypeInfo_xAh6__initZ to %object.TypeInfo*) * * * * * * * * * * * * * * * Function type: const nothrow @trusted ulong(const(void*) p) * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * CastExp::toElem: cast(const(void*))&p.arr @ const(void*) * * * * * * * * * * * * * * * * * AddrExp::toElem: &p.arr @ const(ubyte[])* * * * * * * * * * * * * * * * * * * DotVarExp::toElem: p.arr @ const(ubyte[]) * * * * * * * * * * * * * * * * * * * VarExp::toElem: p @ const(Data) * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('p' of type 'const(Data)') * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * type: const(Data) * * * * * * * * * * * * * * * * * * * Indexing aggregate field std.array.Appender!(ubyte[]).Appender.Data.arr: * * * * * * * * * * * * * * * * * * * * Value: %10 = getelementptr %"std.array.Appender!(ubyte[]).Appender.Data", %"std.array.Appender!(ubyte[]).Appender.Data"* %p_arg, i32 0, i32 1 * * * * * * * * * * * * * * * * * * is nothing special * * * * * * * * * * * * * * * * * * lval: %10 = getelementptr %"std.array.Appender!(ubyte[]).Appender.Data", %"std.array.Appender!(ubyte[]).Appender.Data"* %p_arg, i32 0, i32 1 * * * * * * * * * * * * * * * * * Casting from 'const(ubyte[])*' to 'const(void*)' * * * * * * * * * * * * * * * * * * src: %10 = getelementptr %"std.array.Appender!(ubyte[]).Appender.Data", %"std.array.Appender!(ubyte[]).Appender.Data"* %p_arg, i32 0, i32 1 * * * * * * * * * * * * * * * * * * to type: i8* * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * lhs: %h = alloca i64, align 8 * * * * * * * * * * * * * rhs: %14 = add i64 %13, %12 * * * * * * * * ScopeStatement::toIR(): * * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * * ExpStatement::toIR(): * * * * * * * * * * * DeclarationExp::toElem: enum ulong i = 2LU; | T=void * * * * * * * * * * * * DtoDeclarationExp: i * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * Manifest constant, nothing to do. * * * * * * * * * * ExpStatement::toIR(): * * * * * * * * * * * DeclarationExp::toElem: alias T = const(bool); | T=void * * * * * * * * * * * * DtoDeclarationExp: T * * * * * * * * * * * * * Ignoring Symbol: alias * * * * * * * * * * ExpStatement::toIR(): * * * * * * * * * * * AddAssignExp::toElem: h += typeid(const(bool)).getHash(cast(const(void*))&p.canExtend) @ ulong * * * * * * * * * * * * Caching l-value of h += typeid(const(bool)).getHash(cast(const(void*))&p.canExtend) => h * * * * * * * * * * * * * VarExp::toElem: h @ ulong * * * * * * * * * * * * * * DtoSymbolAddress ('h' of type 'ulong') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * AddExp::toElem: h + typeid(const(bool)).getHash(cast(const(void*))&p.canExtend) @ ulong * * * * * * * * * * * * * VarExp::toElem: h @ ulong * * * * * * * * * * * * * CallExp::toElem: typeid(const(bool)).getHash(cast(const(void*))&p.canExtend) @ ulong * * * * * * * * * * * * * * DotVarExp::toElem: typeid(const(bool)).getHash @ const nothrow @trusted ulong(const(void*) p) * * * * * * * * * * * * * * * SymOffExp::toElem: typeid(const(bool)) @ object.TypeInfo * * * * * * * * * * * * * * * * DtoSymbolAddress ('typeid(const(bool))' of type 'object.TypeInfo_Const') * * * * * * * * * * * * * * * * * TypeInfoDeclaration * * * * * * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(const(bool))) * * * * * * * * * * * * * * * * * * type = 'const(bool)' * * * * * * * * * * * * * * * * * * typeinfo mangle: _D11TypeInfo_xb6__initZ * * * * * * * * * * * * * * * * * * TypeInfoConstDeclaration::llvmDefine() typeid(const(bool)) * * * * * * * * * * * * * * * * * * * DtoTypeInfoOf(type = 'bool', base='1') * * * * * * * * * * * * * * * * * * * * Type::getTypeInfo(): bool * * * * * * * * * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(bool)) * * * * * * * * * * * * * * * * * * * * * type = 'bool' * * * * * * * * * * * * * * * * * * * * * typeinfo mangle: _D10TypeInfo_b6__initZ * * * * * * * * * * * * * * * * Casting from 'TypeInfo_Const*' to 'object.TypeInfo' * * * * * * * * * * * * * * * * * src: %object.TypeInfo_Const* bitcast (%"typeid(const(bool))"* @_D11TypeInfo_xb6__initZ to %object.TypeInfo_Const*) * * * * * * * * * * * * * * * * * to type: %object.TypeInfo* * * * * * * * * * * * * * * * vthis: %object.TypeInfo* bitcast (%"typeid(const(bool))"* @_D11TypeInfo_xb6__initZ to %object.TypeInfo*) * * * * * * * * * * * * * * * funcval: %17 = load i64 (%object.TypeInfo*, i8*)*, i64 (%object.TypeInfo*, i8*)** %"typeid(const(bool)).getHash@vtbl", align 8 * * * * * * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * * * * * * DtoFunctionType(const nothrow @trusted ulong(const(void*) p)) * * * * * * * * * * * * * * * funcval casted: %"typeid(const(bool)).getHash" = load i64 (%object.TypeInfo*, i8*)*, i64 (%object.TypeInfo*, i8*)** %"typeid(const(bool)).getHash@vtbl", align 8 * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * %object.TypeInfo* bitcast (%"typeid(const(bool))"* @_D11TypeInfo_xb6__initZ to %object.TypeInfo*) * * * * * * * * * * * * * * * Function type: const nothrow @trusted ulong(const(void*) p) * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * CastExp::toElem: cast(const(void*))&p.canExtend @ const(void*) * * * * * * * * * * * * * * * * * AddrExp::toElem: &p.canExtend @ const(bool)* * * * * * * * * * * * * * * * * * * DotVarExp::toElem: p.canExtend @ const(bool) * * * * * * * * * * * * * * * * * * * VarExp::toElem: p @ const(Data) * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('p' of type 'const(Data)') * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * type: const(Data) * * * * * * * * * * * * * * * * * * * Indexing aggregate field std.array.Appender!(ubyte[]).Appender.Data.canExtend: * * * * * * * * * * * * * * * * * * * * Value: %17 = getelementptr %"std.array.Appender!(ubyte[]).Appender.Data", %"std.array.Appender!(ubyte[]).Appender.Data"* %p_arg, i32 0, i32 2 * * * * * * * * * * * * * * * * * * is nothing special * * * * * * * * * * * * * * * * * * lval: %17 = getelementptr %"std.array.Appender!(ubyte[]).Appender.Data", %"std.array.Appender!(ubyte[]).Appender.Data"* %p_arg, i32 0, i32 2 * * * * * * * * * * * * * * * * * * Building type: const(bool)* * * * * * * * * * * * * * * * * * Casting from 'const(bool)*' to 'const(void*)' * * * * * * * * * * * * * * * * * * src: %17 = getelementptr %"std.array.Appender!(ubyte[]).Appender.Data", %"std.array.Appender!(ubyte[]).Appender.Data"* %p_arg, i32 0, i32 2 * * * * * * * * * * * * * * * * * * to type: i8* * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * lhs: %h = alloca i64, align 8 * * * * * * * * * * * * * rhs: %20 = add i64 %19, %18 * * * * * * * ReturnStatement::toIR(): * * * * * * * * VarExp::toElem: h @ ulong * * * * * * * * * DtoSymbolAddress ('h' of type 'ulong') * * * * * * * * * * a normal variable * * * * * * * * return value is '0x121b9248' * * * VarDeclaration::codegen(): 'std.array.Appender!(ubyte[]).Appender._data' * * * * DtoResolveVariable(std.array.Appender!(ubyte[]).Appender._data) * * * DtoDefineFunction(std.array.Appender!(ubyte[]).Appender.this): /usr/include/dlang/ldc/std/array.d(2612) * * * * isMember = this is: Appender!(ubyte[]) * * * * DtoFunctionType(pure nothrow ref @trusted Appender!(ubyte[])(ubyte[] arr)) * * * * * Building type: Appender!(ubyte[])* * * * * * x86-64 ABI: Transforming argument types * * * * * Final function type: %"std.array.Appender!(ubyte[]).Appender"* (%"std.array.Appender!(ubyte[]).Appender"*, { i64, i8* }) * * * * DtoResolveFunction(std.array.Appender!(ubyte[]).Appender.this): /usr/include/dlang/ldc/std/array.d(2612) * * * * * DtoDeclareFunction(std.array.Appender!(ubyte[]).Appender.this): /usr/include/dlang/ldc/std/array.d(2612) * * * * * * isMember = this is: Appender!(ubyte[]) * * * * * * DtoFunctionType(pure nothrow ref @trusted Appender!(ubyte[])(ubyte[] arr)) * * * * * * func = declare %"std.array.Appender!(ubyte[]).Appender"* @_D3std5array16__T8AppenderTAhZ8Appender6__ctorMFNaNbNcNeAhZS3std5array16__T8AppenderTAhZ8Appender(%"std.array.Appender!(ubyte[]).Appender"*, { i64, i8* }) * * * * Doing function body for: this * * * * DtoCreateNestedContext for this * * * * * DtoCreateNestedContextType for std.array.Appender!(ubyte[]).Appender.this * * * * CompoundStatement::toIR(): * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2612) * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2613) * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2615) * * * * * * * * AssignExp::toElem: this._data = new Data | (Data*)(Data* = Data*) * * * * * * * * * DotVarExp::toElem: this._data @ Data* * * * * * * * * * * ThisExp::toElem: this @ Appender!(ubyte[]) * * * * * * * * * * * normal this exp * * * * * * * * * * Indexing aggregate field std.array.Appender!(ubyte[]).Appender._data: * * * * * * * * * * * Value: %1 = getelementptr %"std.array.Appender!(ubyte[]).Appender", %"std.array.Appender!(ubyte[]).Appender"* %.this_arg, i32 0, i32 0 * * * * * * * * * NewExp::toElem: new Data @ Data* * * * * * * * * * * new struct on heap: Data * * * * * * * * * * DtoTypeInfoOf(type = 'Data', base='1') * * * * * * * * * * * Type::getTypeInfo(): Data * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(Data)) * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * DtoAssign() * * * * * * * * * * lhs: %1 = getelementptr %"std.array.Appender!(ubyte[]).Appender", %"std.array.Appender!(ubyte[]).Appender"* %.this_arg, i32 0, i32 0 * * * * * * * * * * rhs: %.gc_struct1 = bitcast i8* %.gc_struct to %"std.array.Appender!(ubyte[]).Appender.Data"* * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2616) * * * * * * * * AssignExp::toElem: (*this._data).arr = arr | (ubyte[])(ubyte[] = ubyte[]) * * * * * * * * * DotVarExp::toElem: (*this._data).arr @ ubyte[] * * * * * * * * * * PtrExp::toElem: *this._data @ Data * * * * * * * * * * * DotVarExp::toElem: this._data @ Data* * * * * * * * * * * * * ThisExp::toElem: this @ Appender!(ubyte[]) * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * Indexing aggregate field std.array.Appender!(ubyte[]).Appender._data: * * * * * * * * * * * * * Value: %2 = getelementptr %"std.array.Appender!(ubyte[]).Appender", %"std.array.Appender!(ubyte[]).Appender"* %.this_arg, i32 0, i32 0 * * * * * * * * * * Indexing aggregate field std.array.Appender!(ubyte[]).Appender.Data.arr: * * * * * * * * * * * Value: %4 = getelementptr %"std.array.Appender!(ubyte[]).Appender.Data", %"std.array.Appender!(ubyte[]).Appender.Data"* %3, i32 0, i32 1 * * * * * * * * * VarExp::toElem: arr @ ubyte[] * * * * * * * * * * DtoSymbolAddress ('arr' of type 'ubyte[]') * * * * * * * * * * * function param * * * * * * * * * * * type: ubyte[] * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * DtoAssign() * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * SetArray * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2618) * * * * * * * * VarExp::toElem: __ctfe @ bool * * * * * * * * * DtoSymbolAddress ('__ctfe' of type 'bool') * * * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2619) * * * * * * * * * AddrExp::toElem: &this @ Appender!(ubyte[])* * * * * * * * * * * ThisExp::toElem: this @ Appender!(ubyte[]) * * * * * * * * * * * this exp without var declaration * * * * * * * * * * is nothing special * * * * * * * * * * lval: %"std.array.Appender!(ubyte[]).Appender"* %.this_arg * * * * * * * * * return value is '0x121bd320' * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2627) * * * * * * * * DeclarationExp::toElem: ulong cap = capacity(arr); | T=void * * * * * * * * * DtoDeclarationExp: cap * * * * * * * * * * VarDeclaration * * * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * * * llvm value for decl: %cap = alloca i64, align 8 * * * * * * * * * * * expression initializer * * * * * * * * * * * AssignExp::toElem: cap = capacity(arr) | (ulong)(ulong = ulong) * * * * * * * * * * * * VarExp::toElem: cap @ ulong * * * * * * * * * * * * * DtoSymbolAddress ('cap' of type 'ulong') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * CallExp::toElem: capacity(arr) @ ulong * * * * * * * * * * * * * VarExp::toElem: capacity @ pure nothrow @property @system ulong(ubyte[] arr) * * * * * * * * * * * * * * DtoSymbolAddress ('capacity' of type 'pure nothrow @property @system ulong(ubyte[] arr)') * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @property @system ulong(ubyte[] arr)) * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * Final function type: i64 ({ i64, i8* }) * * * * * * * * * * * * * * * DtoResolveFunction(object.capacity!ubyte.capacity): /usr/include/dlang/ldc/object.di(667) * * * * * * * * * * * * * * * * DtoDeclareFunction(object.capacity!ubyte.capacity): /usr/include/dlang/ldc/object.di(667) * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @property @system ulong(ubyte[] arr)) * * * * * * * * * * * * * * * * * func = declare i64 @_D6object15__T8capacityThZ8capacityFNaNbNdAhZm({ i64, i8* }) * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * Building type: pure nothrow @property @system ulong(ubyte[] arr) * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @property @system ulong(ubyte[] arr)) * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * Final function type: i64 ({ i64, i8* }) * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * Function type: pure nothrow @property @system ulong(ubyte[] arr) * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * VarExp::toElem: arr @ ubyte[] * * * * * * * * * * * * * * * * DtoSymbolAddress ('arr' of type 'ubyte[]') * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * type: ubyte[] * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * lhs: %cap = alloca i64, align 8 * * * * * * * * * * * * * rhs: %10 = call i64 @_D6object15__T8capacityThZ8capacityFNaNbNdAhZm({ i64, i8* } %9) * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2629) * * * * * * * * CmpExp::toElem: cap > arr.length @ bool * * * * * * * * * VarExp::toElem: cap @ ulong * * * * * * * * * * DtoSymbolAddress ('cap' of type 'ulong') * * * * * * * * * * * a normal variable * * * * * * * * * ArrayLengthExp::toElem: arr.length @ ulong * * * * * * * * * * VarExp::toElem: arr @ ubyte[] * * * * * * * * * * * DtoSymbolAddress ('arr' of type 'ubyte[]') * * * * * * * * * * * * function param * * * * * * * * * * * * type: ubyte[] * * * * * * * * * * DtoArrayLen * * * * * * * * * type 1: %12 = load i64, i64* %cap * * * * * * * * * type 2: %.len2 = load i64, i64* %11 * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2630) * * * * * * * * * AssignExp::toElem: arr.length = cap | (ulong)(ulong = ulong) * * * * * * * * * * performing array.length assignment * * * * * * * * * * VarExp::toElem: arr @ ubyte[] * * * * * * * * * * * DtoSymbolAddress ('arr' of type 'ubyte[]') * * * * * * * * * * * * function param * * * * * * * * * * * * type: ubyte[] * * * * * * * * * * VarExp::toElem: cap @ ulong * * * * * * * * * * * DtoSymbolAddress ('cap' of type 'ulong') * * * * * * * * * * * * a normal variable * * * * * * * * * * DtoResizeDynArray : ubyte[] * * * * * * * * * * * DtoTypeInfoOf(type = 'ubyte[]', base='1') * * * * * * * * * * * * Type::getTypeInfo(): ubyte[] * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(ubyte[])) * * * * * * * * * * DtoAssign() * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * SetArray * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2632) * * * * * * * * AssignExp::toElem: (*this._data).capacity = arr.length | (ulong)(ulong = ulong) * * * * * * * * * DotVarExp::toElem: (*this._data).capacity @ ulong * * * * * * * * * * PtrExp::toElem: *this._data @ Data * * * * * * * * * * * DotVarExp::toElem: this._data @ Data* * * * * * * * * * * * * ThisExp::toElem: this @ Appender!(ubyte[]) * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * Indexing aggregate field std.array.Appender!(ubyte[]).Appender._data: * * * * * * * * * * * * * Value: %17 = getelementptr %"std.array.Appender!(ubyte[]).Appender", %"std.array.Appender!(ubyte[]).Appender"* %.this_arg, i32 0, i32 0 * * * * * * * * * * Indexing aggregate field std.array.Appender!(ubyte[]).Appender.Data.capacity: * * * * * * * * * * * Value: %19 = getelementptr %"std.array.Appender!(ubyte[]).Appender.Data", %"std.array.Appender!(ubyte[]).Appender.Data"* %18, i32 0, i32 0 * * * * * * * * * ArrayLengthExp::toElem: arr.length @ ulong * * * * * * * * * * VarExp::toElem: arr @ ubyte[] * * * * * * * * * * * DtoSymbolAddress ('arr' of type 'ubyte[]') * * * * * * * * * * * * function param * * * * * * * * * * * * type: ubyte[] * * * * * * * * * * DtoArrayLen * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * DtoAssign() * * * * * * * * * * lhs: %19 = getelementptr %"std.array.Appender!(ubyte[]).Appender.Data", %"std.array.Appender!(ubyte[]).Appender.Data"* %18, i32 0, i32 0 * * * * * * * * * * rhs: %.len7 = load i64, i64* %20 * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2612) * * * * * * * AddrExp::toElem: &this @ Appender!(ubyte[])* * * * * * * * * ThisExp::toElem: this @ Appender!(ubyte[]) * * * * * * * * * this exp without var declaration * * * * * * * * is nothing special * * * * * * * * lval: %"std.array.Appender!(ubyte[]).Appender"* %.this_arg * * * * * * * return value is '0x121bd320' * * * DtoDefineFunction(std.array.Appender!(ubyte[]).Appender.reserve): /usr/include/dlang/ldc/std/array.d(2656) * * * * isMember = this is: Appender!(ubyte[]) * * * * DtoFunctionType(pure nothrow @safe void(ulong newCapacity)) * * * * * x86-64 ABI: Transforming argument types * * * * * Final function type: void (%"std.array.Appender!(ubyte[]).Appender"*, i64) * * * * DtoResolveFunction(std.array.Appender!(ubyte[]).Appender.reserve): /usr/include/dlang/ldc/std/array.d(2656) * * * * * DtoDeclareFunction(std.array.Appender!(ubyte[]).Appender.reserve): /usr/include/dlang/ldc/std/array.d(2656) * * * * * * isMember = this is: Appender!(ubyte[]) * * * * * * DtoFunctionType(pure nothrow @safe void(ulong newCapacity)) * * * * * * func = declare void @_D3std5array16__T8AppenderTAhZ8Appender7reserveMFNaNbNfmZv(%"std.array.Appender!(ubyte[]).Appender"*, i64) * * * * Doing function body for: reserve * * * * DtoCreateNestedContext for reserve * * * * * DtoCreateNestedContextType for std.array.Appender!(ubyte[]).Appender.reserve * * * * CompoundStatement::toIR(): * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2658) * * * * * * DotVarExp::toElem: this._data @ Data* * * * * * * * ThisExp::toElem: this @ Appender!(ubyte[]) * * * * * * * * normal this exp * * * * * * * Indexing aggregate field std.array.Appender!(ubyte[]).Appender._data: * * * * * * * * Value: %1 = getelementptr %"std.array.Appender!(ubyte[]).Appender", %"std.array.Appender!(ubyte[]).Appender"* %.this_arg, i32 0, i32 0 * * * * * * if conditional: %2 = load %"std.array.Appender!(ubyte[]).Appender.Data"*, %"std.array.Appender!(ubyte[]).Appender.Data"** %1 * * * * * * Casting from 'Data*' to 'bool' * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2659) * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2660) * * * * * * * * CmpExp::toElem: newCapacity > (*this._data).capacity @ bool * * * * * * * * * VarExp::toElem: newCapacity @ ulong * * * * * * * * * * DtoSymbolAddress ('newCapacity' of type 'ulong') * * * * * * * * * * * function param * * * * * * * * * * * type: ulong * * * * * * * * * DotVarExp::toElem: (*this._data).capacity @ ulong * * * * * * * * * * PtrExp::toElem: *this._data @ Data * * * * * * * * * * * DotVarExp::toElem: this._data @ Data* * * * * * * * * * * * * ThisExp::toElem: this @ Appender!(ubyte[]) * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * Indexing aggregate field std.array.Appender!(ubyte[]).Appender._data: * * * * * * * * * * * * * Value: %5 = getelementptr %"std.array.Appender!(ubyte[]).Appender", %"std.array.Appender!(ubyte[]).Appender"* %.this_arg, i32 0, i32 0 * * * * * * * * * * Indexing aggregate field std.array.Appender!(ubyte[]).Appender.Data.capacity: * * * * * * * * * * * Value: %7 = getelementptr %"std.array.Appender!(ubyte[]).Appender.Data", %"std.array.Appender!(ubyte[]).Appender.Data"* %6, i32 0, i32 0 * * * * * * * * * type 1: %8 = load i64, i64* %newCapacity * * * * * * * * * type 2: %9 = load i64, i64* %7 * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2661) * * * * * * * * * CallExp::toElem: this.ensureAddable(newCapacity - (*this._data).arr.length) @ void * * * * * * * * * * DotVarExp::toElem: this.ensureAddable @ pure nothrow @trusted void(ulong nelems) * * * * * * * * * * * ThisExp::toElem: this @ Appender!(ubyte[]) * * * * * * * * * * * * normal this exp * * * * * * * * * * * isMember = this is: Appender!(ubyte[]) * * * * * * * * * * * DtoFunctionType(pure nothrow @trusted void(ulong nelems)) * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * Final function type: void (%"std.array.Appender!(ubyte[]).Appender"*, i64) * * * * * * * * * * * DtoResolveFunction(std.array.Appender!(ubyte[]).Appender.ensureAddable): /usr/include/dlang/ldc/std/array.d(2691) * * * * * * * * * * * * DtoDeclareFunction(std.array.Appender!(ubyte[]).Appender.ensureAddable): /usr/include/dlang/ldc/std/array.d(2691) * * * * * * * * * * * * * isMember = this is: Appender!(ubyte[]) * * * * * * * * * * * * * DtoFunctionType(pure nothrow @trusted void(ulong nelems)) * * * * * * * * * * * * * func = declare void @_D3std5array16__T8AppenderTAhZ8Appender13ensureAddableMFNaNbNemZv(%"std.array.Appender!(ubyte[]).Appender"*, i64) * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * Building type: pure nothrow @trusted void(ulong nelems) * * * * * * * * * * * * DtoFunctionType(pure nothrow @trusted void(ulong nelems)) * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * Final function type: void (i64) * * * * * * * * * * * doing normal arguments * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * %"std.array.Appender!(ubyte[]).Appender"* %.this_arg * * * * * * * * * * * Function type: pure nothrow @trusted void(ulong nelems) * * * * * * * * * * * DtoArgument * * * * * * * * * * * * MinExp::toElem: newCapacity - (*this._data).arr.length @ ulong * * * * * * * * * * * * * VarExp::toElem: newCapacity @ ulong * * * * * * * * * * * * * * DtoSymbolAddress ('newCapacity' of type 'ulong') * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * type: ulong * * * * * * * * * * * * * ArrayLengthExp::toElem: (*this._data).arr.length @ ulong * * * * * * * * * * * * * * DotVarExp::toElem: (*this._data).arr @ ubyte[] * * * * * * * * * * * * * * * PtrExp::toElem: *this._data @ Data * * * * * * * * * * * * * * * * DotVarExp::toElem: this._data @ Data* * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Appender!(ubyte[]) * * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * * Indexing aggregate field std.array.Appender!(ubyte[]).Appender._data: * * * * * * * * * * * * * * * * * * Value: %11 = getelementptr %"std.array.Appender!(ubyte[]).Appender", %"std.array.Appender!(ubyte[]).Appender"* %.this_arg, i32 0, i32 0 * * * * * * * * * * * * * * * Indexing aggregate field std.array.Appender!(ubyte[]).Appender.Data.arr: * * * * * * * * * * * * * * * * Value: %13 = getelementptr %"std.array.Appender!(ubyte[]).Appender.Data", %"std.array.Appender!(ubyte[]).Appender.Data"* %12, i32 0, i32 1 * * * * * * * * * * * * * * DtoArrayLen * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2664) * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2665) * * * * * * * * CallExp::toElem: this.ensureAddable(newCapacity) @ void * * * * * * * * * DotVarExp::toElem: this.ensureAddable @ pure nothrow @trusted void(ulong nelems) * * * * * * * * * * ThisExp::toElem: this @ Appender!(ubyte[]) * * * * * * * * * * * normal this exp * * * * * * * * * DtoCallFunction() * * * * * * * * * * doing normal arguments * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * %"std.array.Appender!(ubyte[]).Appender"* %.this_arg * * * * * * * * * * Function type: pure nothrow @trusted void(ulong nelems) * * * * * * * * * * DtoArgument * * * * * * * * * * * VarExp::toElem: newCapacity @ ulong * * * * * * * * * * * * DtoSymbolAddress ('newCapacity' of type 'ulong') * * * * * * * * * * * * * function param * * * * * * * * * * * * * type: ulong * * * DtoDefineFunction(std.array.Appender!(ubyte[]).Appender.capacity): /usr/include/dlang/ldc/std/array.d(2674) * * * * isMember = this is: Appender!(ubyte[]) * * * * DtoFunctionType(const pure nothrow @nogc @property @safe ulong()) * * * * * x86-64 ABI: Transforming return type * * * * * x86-64 ABI: Transforming argument types * * * * * Final function type: i64 (%"std.array.Appender!(ubyte[]).Appender"*) * * * * DtoResolveFunction(std.array.Appender!(ubyte[]).Appender.capacity): /usr/include/dlang/ldc/std/array.d(2674) * * * * * DtoDeclareFunction(std.array.Appender!(ubyte[]).Appender.capacity): /usr/include/dlang/ldc/std/array.d(2674) * * * * * * isMember = this is: Appender!(ubyte[]) * * * * * * DtoFunctionType(const pure nothrow @nogc @property @safe ulong()) * * * * * * func = declare i64 @_D3std5array16__T8AppenderTAhZ8Appender8capacityMxFNaNbNdNiNfZm(%"std.array.Appender!(ubyte[]).Appender"*) * * * * Doing function body for: capacity * * * * DtoCreateNestedContext for capacity * * * * * DtoCreateNestedContextType for std.array.Appender!(ubyte[]).Appender.capacity * * * * CompoundStatement::toIR(): * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2676) * * * * * * CondExp::toElem: this._data ? (*this._data).capacity : 0LU @ ulong * * * * * * * DotVarExp::toElem: this._data @ const(Data*) * * * * * * * * ThisExp::toElem: this @ const(Appender!(ubyte[])) * * * * * * * * * normal this exp * * * * * * * * Indexing aggregate field std.array.Appender!(ubyte[]).Appender._data: * * * * * * * * * Value: %1 = getelementptr %"std.array.Appender!(ubyte[]).Appender", %"std.array.Appender!(ubyte[]).Appender"* %.this_arg, i32 0, i32 0 * * * * * * * Casting from 'const(Data*)' to 'bool' * * * * * * * DotVarExp::toElem: (*this._data).capacity @ ulong * * * * * * * * PtrExp::toElem: *this._data @ const(Data) * * * * * * * * * DotVarExp::toElem: this._data @ const(Data*) * * * * * * * * * * ThisExp::toElem: this @ const(Appender!(ubyte[])) * * * * * * * * * * * normal this exp * * * * * * * * * * Indexing aggregate field std.array.Appender!(ubyte[]).Appender._data: * * * * * * * * * * * Value: %4 = getelementptr %"std.array.Appender!(ubyte[]).Appender", %"std.array.Appender!(ubyte[]).Appender"* %.this_arg, i32 0, i32 0 * * * * * * * * Indexing aggregate field std.array.Appender!(ubyte[]).Appender.Data.capacity: * * * * * * * * * Value: %6 = getelementptr %"std.array.Appender!(ubyte[]).Appender.Data", %"std.array.Appender!(ubyte[]).Appender.Data"* %5, i32 0, i32 0 * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * value = i64 0 * * * * * * return value is '0x121c89c8' * * * DtoDefineFunction(std.array.Appender!(ubyte[]).Appender.data): /usr/include/dlang/ldc/std/array.d(2682) * * * * isMember = this is: Appender!(ubyte[]) * * * * DtoFunctionType(inout pure nothrow @nogc @property @trusted inout(ubyte)[]()) * * * * * Building type: inout(ubyte)[] * * * * * x86-64 ABI: Transforming return type * * * * * x86-64 ABI: Transforming argument types * * * * * Final function type: { i64, i8* } (%"std.array.Appender!(ubyte[]).Appender"*) * * * * DtoResolveFunction(std.array.Appender!(ubyte[]).Appender.data): /usr/include/dlang/ldc/std/array.d(2682) * * * * * DtoDeclareFunction(std.array.Appender!(ubyte[]).Appender.data): /usr/include/dlang/ldc/std/array.d(2682) * * * * * * isMember = this is: Appender!(ubyte[]) * * * * * * DtoFunctionType(inout pure nothrow @nogc @property @trusted inout(ubyte)[]()) * * * * * * func = declare { i64, i8* } @_D3std5array16__T8AppenderTAhZ8Appender4dataMNgFNaNbNdNiNeZANgh(%"std.array.Appender!(ubyte[]).Appender"*) * * * * Doing function body for: data * * * * DtoCreateNestedContext for data * * * * * DtoCreateNestedContextType for std.array.Appender!(ubyte[]).Appender.data * * * * CompoundStatement::toIR(): * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2687) * * * * * * CondExp::toElem: this._data ? (*this._data).arr : null @ inout(ubyte)[] * * * * * * * Building type: inout(ubyte)[]* * * * * * * * DotVarExp::toElem: this._data @ inout(Data*) * * * * * * * * ThisExp::toElem: this @ inout(Appender!(ubyte[])) * * * * * * * * * normal this exp * * * * * * * * Indexing aggregate field std.array.Appender!(ubyte[]).Appender._data: * * * * * * * * * Value: %1 = getelementptr %"std.array.Appender!(ubyte[]).Appender", %"std.array.Appender!(ubyte[]).Appender"* %.this_arg, i32 0, i32 0 * * * * * * * Casting from 'inout(Data*)' to 'bool' * * * * * * * DotVarExp::toElem: (*this._data).arr @ inout(ubyte)[] * * * * * * * * PtrExp::toElem: *this._data @ inout(Data) * * * * * * * * * DotVarExp::toElem: this._data @ inout(Data*) * * * * * * * * * * ThisExp::toElem: this @ inout(Appender!(ubyte[])) * * * * * * * * * * * normal this exp * * * * * * * * * * Indexing aggregate field std.array.Appender!(ubyte[]).Appender._data: * * * * * * * * * * * Value: %4 = getelementptr %"std.array.Appender!(ubyte[]).Appender", %"std.array.Appender!(ubyte[]).Appender"* %.this_arg, i32 0, i32 0 * * * * * * * * Indexing aggregate field std.array.Appender!(ubyte[]).Appender.Data.arr: * * * * * * * * * Value: %6 = getelementptr %"std.array.Appender!(ubyte[]).Appender.Data", %"std.array.Appender!(ubyte[]).Appender.Data"* %5, i32 0, i32 1 * * * * * * * NullExp::toElem(type=inout(ubyte)[]): null * * * * * * * * NullExp::toConstElem(type=inout(ubyte)[]): null * * * * * * return value is '0x121cb0c8' * * * DtoDefineFunction(std.array.Appender!(ubyte[]).Appender.ensureAddable): /usr/include/dlang/ldc/std/array.d(2691) * * * * Doing function body for: ensureAddable * * * * DtoCreateNestedContext for ensureAddable * * * * * DtoCreateNestedContextType for std.array.Appender!(ubyte[]).Appender.ensureAddable * * * * CompoundStatement::toIR(): * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2692) * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2693) * * * * * * * NotExp::toElem: !this._data @ bool * * * * * * * * DotVarExp::toElem: this._data @ Data* * * * * * * * * * ThisExp::toElem: this @ Appender!(ubyte[]) * * * * * * * * * * normal this exp * * * * * * * * * Indexing aggregate field std.array.Appender!(ubyte[]).Appender._data: * * * * * * * * * * Value: %1 = getelementptr %"std.array.Appender!(ubyte[]).Appender", %"std.array.Appender!(ubyte[]).Appender"* %.this_arg, i32 0, i32 0 * * * * * * * * Casting from 'Data*' to 'bool' * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2694) * * * * * * * * AssignExp::toElem: this._data = new Data | (Data*)(Data* = Data*) * * * * * * * * * DotVarExp::toElem: this._data @ Data* * * * * * * * * * * ThisExp::toElem: this @ Appender!(ubyte[]) * * * * * * * * * * * normal this exp * * * * * * * * * * Indexing aggregate field std.array.Appender!(ubyte[]).Appender._data: * * * * * * * * * * * Value: %5 = getelementptr %"std.array.Appender!(ubyte[]).Appender", %"std.array.Appender!(ubyte[]).Appender"* %.this_arg, i32 0, i32 0 * * * * * * * * * NewExp::toElem: new Data @ Data* * * * * * * * * * * new struct on heap: Data * * * * * * * * * * DtoTypeInfoOf(type = 'Data', base='1') * * * * * * * * * * * Type::getTypeInfo(): Data * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(Data)) * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * DtoAssign() * * * * * * * * * * lhs: %5 = getelementptr %"std.array.Appender!(ubyte[]).Appender", %"std.array.Appender!(ubyte[]).Appender"* %.this_arg, i32 0, i32 0 * * * * * * * * * * rhs: %.gc_struct1 = bitcast i8* %.gc_struct to %"std.array.Appender!(ubyte[]).Appender.Data"* * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2695) * * * * * * * DeclarationExp::toElem: immutable immutable(ulong) len = (*this._data).arr.length; | T=void * * * * * * * * DtoDeclarationExp: len * * * * * * * * * VarDeclaration * * * * * * * * * DtoVarDeclaration(vdtype = immutable(ulong)) * * * * * * * * * * llvm value for decl: %len = alloca i64, align 8 * * * * * * * * * * expression initializer * * * * * * * * * * AssignExp::toElem: len = (*this._data).arr.length | (immutable(ulong))(immutable(ulong) = immutable(ulong)) * * * * * * * * * * * VarExp::toElem: len @ immutable(ulong) * * * * * * * * * * * * DtoSymbolAddress ('len' of type 'immutable(ulong)') * * * * * * * * * * * * * a normal variable * * * * * * * * * * * ArrayLengthExp::toElem: (*this._data).arr.length @ immutable(ulong) * * * * * * * * * * * * DotVarExp::toElem: (*this._data).arr @ ubyte[] * * * * * * * * * * * * * PtrExp::toElem: *this._data @ Data * * * * * * * * * * * * * * DotVarExp::toElem: this._data @ Data* * * * * * * * * * * * * * * * ThisExp::toElem: this @ Appender!(ubyte[]) * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * Indexing aggregate field std.array.Appender!(ubyte[]).Appender._data: * * * * * * * * * * * * * * * * Value: %6 = getelementptr %"std.array.Appender!(ubyte[]).Appender", %"std.array.Appender!(ubyte[]).Appender"* %.this_arg, i32 0, i32 0 * * * * * * * * * * * * * Indexing aggregate field std.array.Appender!(ubyte[]).Appender.Data.arr: * * * * * * * * * * * * * * Value: %8 = getelementptr %"std.array.Appender!(ubyte[]).Appender.Data", %"std.array.Appender!(ubyte[]).Appender.Data"* %7, i32 0, i32 1 * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * lhs: %len = alloca i64, align 8 * * * * * * * * * * * * rhs: %.len = load i64, i64* %9 * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2696) * * * * * * * DeclarationExp::toElem: immutable immutable(ulong) reqlen = len + nelems; | T=void * * * * * * * * DtoDeclarationExp: reqlen * * * * * * * * * VarDeclaration * * * * * * * * * DtoVarDeclaration(vdtype = immutable(ulong)) * * * * * * * * * * llvm value for decl: %reqlen = alloca i64, align 8 * * * * * * * * * * expression initializer * * * * * * * * * * AssignExp::toElem: reqlen = len + nelems | (immutable(ulong))(immutable(ulong) = immutable(ulong)) * * * * * * * * * * * VarExp::toElem: reqlen @ immutable(ulong) * * * * * * * * * * * * DtoSymbolAddress ('reqlen' of type 'immutable(ulong)') * * * * * * * * * * * * * a normal variable * * * * * * * * * * * AddExp::toElem: len + nelems @ immutable(ulong) * * * * * * * * * * * * VarExp::toElem: len @ ulong * * * * * * * * * * * * * DtoSymbolAddress ('len' of type 'immutable(ulong)') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * VarExp::toElem: nelems @ ulong * * * * * * * * * * * * * DtoSymbolAddress ('nelems' of type 'ulong') * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * type: ulong * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * lhs: %reqlen = alloca i64, align 8 * * * * * * * * * * * * rhs: %12 = add i64 %10, %11 * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2698) * * * * * * * CmpExp::toElem: (*this._data).capacity >= reqlen @ bool * * * * * * * * DotVarExp::toElem: (*this._data).capacity @ ulong * * * * * * * * * PtrExp::toElem: *this._data @ Data * * * * * * * * * * DotVarExp::toElem: this._data @ Data* * * * * * * * * * * * ThisExp::toElem: this @ Appender!(ubyte[]) * * * * * * * * * * * * normal this exp * * * * * * * * * * * Indexing aggregate field std.array.Appender!(ubyte[]).Appender._data: * * * * * * * * * * * * Value: %13 = getelementptr %"std.array.Appender!(ubyte[]).Appender", %"std.array.Appender!(ubyte[]).Appender"* %.this_arg, i32 0, i32 0 * * * * * * * * * Indexing aggregate field std.array.Appender!(ubyte[]).Appender.Data.capacity: * * * * * * * * * * Value: %15 = getelementptr %"std.array.Appender!(ubyte[]).Appender.Data", %"std.array.Appender!(ubyte[]).Appender.Data"* %14, i32 0, i32 0 * * * * * * * * VarExp::toElem: reqlen @ ulong * * * * * * * * * DtoSymbolAddress ('reqlen' of type 'immutable(ulong)') * * * * * * * * * * a normal variable * * * * * * * * type 1: %16 = load i64, i64* %15 * * * * * * * * type 2: %17 = load i64, i64* %reqlen * * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2699) * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2702) * * * * * * * VarExp::toElem: __ctfe @ bool * * * * * * * * DtoSymbolAddress ('__ctfe' of type 'bool') * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2703) * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2703) * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2706) * * * * * * * * * * AssignExp::toElem: (*this._data).arr.length = reqlen | (ulong)(ulong = ulong) * * * * * * * * * * * performing array.length assignment * * * * * * * * * * * DotVarExp::toElem: (*this._data).arr @ ubyte[] * * * * * * * * * * * * PtrExp::toElem: *this._data @ Data * * * * * * * * * * * * * DotVarExp::toElem: this._data @ Data* * * * * * * * * * * * * * * ThisExp::toElem: this @ Appender!(ubyte[]) * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * Indexing aggregate field std.array.Appender!(ubyte[]).Appender._data: * * * * * * * * * * * * * * * Value: %19 = getelementptr %"std.array.Appender!(ubyte[]).Appender", %"std.array.Appender!(ubyte[]).Appender"* %.this_arg, i32 0, i32 0 * * * * * * * * * * * * Indexing aggregate field std.array.Appender!(ubyte[]).Appender.Data.arr: * * * * * * * * * * * * * Value: %21 = getelementptr %"std.array.Appender!(ubyte[]).Appender.Data", %"std.array.Appender!(ubyte[]).Appender.Data"* %20, i32 0, i32 1 * * * * * * * * * * * VarExp::toElem: reqlen @ ulong * * * * * * * * * * * * DtoSymbolAddress ('reqlen' of type 'immutable(ulong)') * * * * * * * * * * * * * a normal variable * * * * * * * * * * * DtoResizeDynArray : ubyte[] * * * * * * * * * * * * DtoTypeInfoOf(type = 'ubyte[]', base='1') * * * * * * * * * * * * * Type::getTypeInfo(): ubyte[] * * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(ubyte[])) * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * SetArray * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2715) * * * * * * * * * * AssignExp::toElem: (*this._data).arr = (*this._data).arr[0..len] | (ubyte[])(ubyte[] = ubyte[]) * * * * * * * * * * * DotVarExp::toElem: (*this._data).arr @ ubyte[] * * * * * * * * * * * * PtrExp::toElem: *this._data @ Data * * * * * * * * * * * * * DotVarExp::toElem: this._data @ Data* * * * * * * * * * * * * * * ThisExp::toElem: this @ Appender!(ubyte[]) * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * Indexing aggregate field std.array.Appender!(ubyte[]).Appender._data: * * * * * * * * * * * * * * * Value: %25 = getelementptr %"std.array.Appender!(ubyte[]).Appender", %"std.array.Appender!(ubyte[]).Appender"* %.this_arg, i32 0, i32 0 * * * * * * * * * * * * Indexing aggregate field std.array.Appender!(ubyte[]).Appender.Data.arr: * * * * * * * * * * * * * Value: %27 = getelementptr %"std.array.Appender!(ubyte[]).Appender.Data", %"std.array.Appender!(ubyte[]).Appender.Data"* %26, i32 0, i32 1 * * * * * * * * * * * SliceExp::toElem: (*this._data).arr[0..len] @ ubyte[] * * * * * * * * * * * * DotVarExp::toElem: (*this._data).arr @ ubyte[] * * * * * * * * * * * * * PtrExp::toElem: *this._data @ Data * * * * * * * * * * * * * * DotVarExp::toElem: this._data @ Data* * * * * * * * * * * * * * * * ThisExp::toElem: this @ Appender!(ubyte[]) * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * Indexing aggregate field std.array.Appender!(ubyte[]).Appender._data: * * * * * * * * * * * * * * * * Value: %28 = getelementptr %"std.array.Appender!(ubyte[]).Appender", %"std.array.Appender!(ubyte[]).Appender"* %.this_arg, i32 0, i32 0 * * * * * * * * * * * * * Indexing aggregate field std.array.Appender!(ubyte[]).Appender.Data.arr: * * * * * * * * * * * * * * Value: %30 = getelementptr %"std.array.Appender!(ubyte[]).Appender.Data", %"std.array.Appender!(ubyte[]).Appender.Data"* %29, i32 0, i32 1 * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * VarExp::toElem: len @ ulong * * * * * * * * * * * * * DtoSymbolAddress ('len' of type 'immutable(ulong)') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * SetArray * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2716) * * * * * * * * * * AssignExp::toElem: (*this._data).capacity = reqlen | (ulong)(ulong = ulong) * * * * * * * * * * * DotVarExp::toElem: (*this._data).capacity @ ulong * * * * * * * * * * * * PtrExp::toElem: *this._data @ Data * * * * * * * * * * * * * DotVarExp::toElem: this._data @ Data* * * * * * * * * * * * * * * ThisExp::toElem: this @ Appender!(ubyte[]) * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * Indexing aggregate field std.array.Appender!(ubyte[]).Appender._data: * * * * * * * * * * * * * * * Value: %36 = getelementptr %"std.array.Appender!(ubyte[]).Appender", %"std.array.Appender!(ubyte[]).Appender"* %.this_arg, i32 0, i32 0 * * * * * * * * * * * * Indexing aggregate field std.array.Appender!(ubyte[]).Appender.Data.capacity: * * * * * * * * * * * * * Value: %38 = getelementptr %"std.array.Appender!(ubyte[]).Appender.Data", %"std.array.Appender!(ubyte[]).Appender.Data"* %37, i32 0, i32 0 * * * * * * * * * * * VarExp::toElem: reqlen @ ulong * * * * * * * * * * * * DtoSymbolAddress ('reqlen' of type 'immutable(ulong)') * * * * * * * * * * * * * a normal variable * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * lhs: %38 = getelementptr %"std.array.Appender!(ubyte[]).Appender.Data", %"std.array.Appender!(ubyte[]).Appender.Data"* %37, i32 0, i32 0 * * * * * * * * * * * * rhs: %39 = load i64, i64* %reqlen * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2719) * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2719) * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2723) * * * * * * * * * * DeclarationExp::toElem: ulong newlen = appenderNewCapacity((*this._data).capacity, reqlen); | T=void * * * * * * * * * * * DtoDeclarationExp: newlen * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * * * * * llvm value for decl: %newlen = alloca i64, align 8 * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * AssignExp::toElem: newlen = appenderNewCapacity((*this._data).capacity, reqlen) | (ulong)(ulong = ulong) * * * * * * * * * * * * * * VarExp::toElem: newlen @ ulong * * * * * * * * * * * * * * * DtoSymbolAddress ('newlen' of type 'ulong') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * CallExp::toElem: appenderNewCapacity((*this._data).capacity, reqlen) @ ulong * * * * * * * * * * * * * * * VarExp::toElem: appenderNewCapacity @ pure nothrow @nogc @safe ulong(ulong curLen, ulong reqLen) * * * * * * * * * * * * * * * * DtoSymbolAddress ('appenderNewCapacity' of type 'pure nothrow @nogc @safe ulong(ulong curLen, ulong reqLen)') * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe ulong(ulong curLen, ulong reqLen)) * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * Final function type: i64 (i64, i64) * * * * * * * * * * * * * * * * * DtoResolveFunction(std.array.appenderNewCapacity!1LU.appenderNewCapacity): /usr/include/dlang/ldc/std/array.d(2969) * * * * * * * * * * * * * * * * * * DtoDeclareFunction(std.array.appenderNewCapacity!1LU.appenderNewCapacity): /usr/include/dlang/ldc/std/array.d(2969) * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe ulong(ulong curLen, ulong reqLen)) * * * * * * * * * * * * * * * * * * * func = declare i64 @_D3std5array29__T19appenderNewCapacityVmi1Z19appenderNewCapacityFNaNbNiNfmmZm(i64, i64) * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * Building type: pure nothrow @nogc @safe ulong(ulong curLen, ulong reqLen) * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe ulong(ulong curLen, ulong reqLen)) * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * Final function type: i64 (i64, i64) * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @safe ulong(ulong curLen, ulong reqLen) * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * DotVarExp::toElem: (*this._data).capacity @ ulong * * * * * * * * * * * * * * * * * * PtrExp::toElem: *this._data @ Data * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: this._data @ Data* * * * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Appender!(ubyte[]) * * * * * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * * * * * Indexing aggregate field std.array.Appender!(ubyte[]).Appender._data: * * * * * * * * * * * * * * * * * * * * * Value: %40 = getelementptr %"std.array.Appender!(ubyte[]).Appender", %"std.array.Appender!(ubyte[]).Appender"* %.this_arg, i32 0, i32 0 * * * * * * * * * * * * * * * * * * Indexing aggregate field std.array.Appender!(ubyte[]).Appender.Data.capacity: * * * * * * * * * * * * * * * * * * * Value: %42 = getelementptr %"std.array.Appender!(ubyte[]).Appender.Data", %"std.array.Appender!(ubyte[]).Appender.Data"* %41, i32 0, i32 0 * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * VarExp::toElem: reqlen @ ulong * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('reqlen' of type 'immutable(ulong)') * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * lhs: %newlen = alloca i64, align 8 * * * * * * * * * * * * * * * rhs: %45 = call i64 @_D3std5array29__T19appenderNewCapacityVmi1Z19appenderNewCapacityFNaNbNiNfmmZm(i64 %44, i64 %43) * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2725) * * * * * * * * * * DotVarExp::toElem: (*this._data).canExtend @ bool * * * * * * * * * * * PtrExp::toElem: *this._data @ Data * * * * * * * * * * * * DotVarExp::toElem: this._data @ Data* * * * * * * * * * * * * * ThisExp::toElem: this @ Appender!(ubyte[]) * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * Indexing aggregate field std.array.Appender!(ubyte[]).Appender._data: * * * * * * * * * * * * * * Value: %46 = getelementptr %"std.array.Appender!(ubyte[]).Appender", %"std.array.Appender!(ubyte[]).Appender"* %.this_arg, i32 0, i32 0 * * * * * * * * * * * Indexing aggregate field std.array.Appender!(ubyte[]).Appender.Data.canExtend: * * * * * * * * * * * * Value: %48 = getelementptr %"std.array.Appender!(ubyte[]).Appender.Data", %"std.array.Appender!(ubyte[]).Appender.Data"* %47, i32 0, i32 2 * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2726) * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2726) * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2727) * * * * * * * * * * * * * DeclarationExp::toElem: ulong u = extend(cast(void*)cast(ubyte*)(*this._data).arr, nelems * 1LU, (newlen - len) * 1LU, null); | T=void * * * * * * * * * * * * * * DtoDeclarationExp: u * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * * * * * * * * llvm value for decl: %u = alloca i64, align 8 * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * AssignExp::toElem: u = extend(cast(void*)cast(ubyte*)(*this._data).arr, nelems * 1LU, (newlen - len) * 1LU, null) | (ulong)(ulong = ulong) * * * * * * * * * * * * * * * * * VarExp::toElem: u @ ulong * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('u' of type 'ulong') * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * CallExp::toElem: extend(cast(void*)cast(ubyte*)(*this._data).arr, nelems * 1LU, (newlen - len) * 1LU, null) @ ulong * * * * * * * * * * * * * * * * * * VarExp::toElem: extend @ pure nothrow ulong(void* p, ulong mx, ulong sz, const(TypeInfo) ti = null) * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('extend' of type 'pure nothrow ulong(void* p, ulong mx, ulong sz, const(TypeInfo) ti = null)') * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow ulong(void* p, ulong mx, ulong sz, const(TypeInfo) ti = null)) * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * * Final function type: i64 (%object.TypeInfo*, i64, i64, i8*) * * * * * * * * * * * * * * * * * * * * DtoResolveFunction(core.memory.GC.extend): /usr/include/dlang/ldc/core/memory.d(477) * * * * * * * * * * * * * * * * * * * * * DtoDeclareFunction(core.memory.GC.extend): /usr/include/dlang/ldc/core/memory.d(477) * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow ulong(void* p, ulong mx, ulong sz, const(TypeInfo) ti = null)) * * * * * * * * * * * * * * * * * * * * * * func = declare i64 @_D4core6memory2GC6extendFNaNbPvmmxC8TypeInfoZm(%object.TypeInfo*, i64, i64, i8*) * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * Building type: pure nothrow ulong(void* p, ulong mx, ulong sz, const(TypeInfo) ti = null) * * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow ulong(void* p, ulong mx, ulong sz, const(TypeInfo) ti = null)) * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * * Final function type: i64 (%object.TypeInfo*, i64, i64, i8*) * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * Function type: pure nothrow ulong(void* p, ulong mx, ulong sz, const(TypeInfo) ti = null) * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * CastExp::toElem: cast(void*)cast(ubyte*)(*this._data).arr @ void* * * * * * * * * * * * * * * * * * * * * * CastExp::toElem: cast(ubyte*)(*this._data).arr @ ubyte* * * * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: (*this._data).arr @ ubyte[] * * * * * * * * * * * * * * * * * * * * * * * PtrExp::toElem: *this._data @ Data * * * * * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: this._data @ Data* * * * * * * * * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Appender!(ubyte[]) * * * * * * * * * * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * * * * * * * * * * Indexing aggregate field std.array.Appender!(ubyte[]).Appender._data: * * * * * * * * * * * * * * * * * * * * * * * * * * Value: %51 = getelementptr %"std.array.Appender!(ubyte[]).Appender", %"std.array.Appender!(ubyte[]).Appender"* %.this_arg, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * * * * * Indexing aggregate field std.array.Appender!(ubyte[]).Appender.Data.arr: * * * * * * * * * * * * * * * * * * * * * * * * Value: %53 = getelementptr %"std.array.Appender!(ubyte[]).Appender.Data", %"std.array.Appender!(ubyte[]).Appender.Data"* %52, i32 0, i32 1 * * * * * * * * * * * * * * * * * * * * * * Casting from 'ubyte[]' to 'ubyte*' * * * * * * * * * * * * * * * * * * * * * * * DtoCastArray * * * * * * * * * * * * * * * * * * * * * * * * from array or sarray * * * * * * * * * * * * * * * * * * * * * * * * to pointer * * * * * * * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * * * * Casting from 'ubyte*' to 'void*' * * * * * * * * * * * * * * * * * * * * * * src: %.ptr10 = load i8*, i8** %54 * * * * * * * * * * * * * * * * * * * * * * to type: i8* * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * MulExp::toElem: nelems * 1LU @ ulong * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: nelems @ ulong * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('nelems' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * * type: ulong * * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * MulExp::toElem: (newlen - len) * 1LU @ ulong * * * * * * * * * * * * * * * * * * * * * MinExp::toElem: newlen - len @ ulong * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: newlen @ ulong * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('newlen' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: len @ ulong * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('len' of type 'immutable(ulong)') * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * NullExp::toElem(type=const(TypeInfo)): null * * * * * * * * * * * * * * * * * * * * * NullExp::toConstElem(type=const(TypeInfo)): null * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * lhs: %u = alloca i64, align 8 * * * * * * * * * * * * * * * * * * rhs: %61 = call i64 @_D4core6memory2GC6extendFNaNbPvmmxC8TypeInfoZm(%object.TypeInfo* null, i64 %60, i64 %56, i8* %.ptr10) * * * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2728) * * * * * * * * * * * * * VarExp::toElem: u @ ulong * * * * * * * * * * * * * * DtoSymbolAddress ('u' of type 'ulong') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * if conditional: %62 = load i64, i64* %u * * * * * * * * * * * * * Casting from 'ulong' to 'bool' * * * * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2729) * * * * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2729) * * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2731) * * * * * * * * * * * * * * * * AssignExp::toElem: (*this._data).capacity = u / 1LU | (ulong)(ulong = ulong) * * * * * * * * * * * * * * * * * DotVarExp::toElem: (*this._data).capacity @ ulong * * * * * * * * * * * * * * * * * * PtrExp::toElem: *this._data @ Data * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: this._data @ Data* * * * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Appender!(ubyte[]) * * * * * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * * * * * Indexing aggregate field std.array.Appender!(ubyte[]).Appender._data: * * * * * * * * * * * * * * * * * * * * * Value: %65 = getelementptr %"std.array.Appender!(ubyte[]).Appender", %"std.array.Appender!(ubyte[]).Appender"* %.this_arg, i32 0, i32 0 * * * * * * * * * * * * * * * * * * Indexing aggregate field std.array.Appender!(ubyte[]).Appender.Data.capacity: * * * * * * * * * * * * * * * * * * * Value: %67 = getelementptr %"std.array.Appender!(ubyte[]).Appender.Data", %"std.array.Appender!(ubyte[]).Appender.Data"* %66, i32 0, i32 0 * * * * * * * * * * * * * * * * * DivExp::toElem: u / 1LU @ ulong * * * * * * * * * * * * * * * * * * VarExp::toElem: u @ ulong * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('u' of type 'ulong') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * lhs: %67 = getelementptr %"std.array.Appender!(ubyte[]).Appender.Data", %"std.array.Appender!(ubyte[]).Appender.Data"* %66, i32 0, i32 0 * * * * * * * * * * * * * * * * * * rhs: %69 = udiv i64 %68, 1 * * * * * * * * * * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2732) * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2737) * * * * * * * * * * DeclarationExp::toElem: BlkInfo_ bi = qalloc(newlen * 1LU, 2u, null); | T=void * * * * * * * * * * * DtoDeclarationExp: bi * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * DtoVarDeclaration(vdtype = BlkInfo_) * * * * * * * * * * * * * Building type: BlkInfo_ * * * * * * * * * * * * * * Building struct type core.memory.BlkInfo_ @ /usr/include/dlang/ldc/core/memory.d(109) * * * * * * * * * * * * * * * adding default initializer for struct field base * * * * * * * * * * * * * * * adding default initializer for struct field size * * * * * * * * * * * * * * * adding default initializer for struct field attr * * * * * * * * * * * * * * * final struct type: %core.memory.BlkInfo_ = type { i8*, i64, i32, [4 x i8] } * * * * * * * * * * * * * VarExp::toElem: qalloc @ pure nothrow BlkInfo_(ulong sz, uint ba = 0u, const(TypeInfo) ti = null) * * * * * * * * * * * * * * DtoSymbolAddress ('qalloc' of type 'pure nothrow BlkInfo_(ulong sz, uint ba = 0u, const(TypeInfo) ti = null)') * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow BlkInfo_(ulong sz, uint ba = 0u, const(TypeInfo) ti = null)) * * * * * * * * * * * * * * * * Building type: BlkInfo_* * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * Final function type: void (%core.memory.BlkInfo_*, %object.TypeInfo*, i32, i64) * * * * * * * * * * * * * * * DtoResolveFunction(core.memory.GC.qalloc): /usr/include/dlang/ldc/core/memory.d(366) * * * * * * * * * * * * * * * * DtoDeclareFunction(core.memory.GC.qalloc): /usr/include/dlang/ldc/core/memory.d(366) * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow BlkInfo_(ulong sz, uint ba = 0u, const(TypeInfo) ti = null)) * * * * * * * * * * * * * * * * * func = declare void @_D4core6memory2GC6qallocFNaNbmkxC8TypeInfoZS4core6memory8BlkInfo_(%core.memory.BlkInfo_*, %object.TypeInfo*, i32, i64) * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * Building type: pure nothrow BlkInfo_(ulong sz, uint ba = 0u, const(TypeInfo) ti = null) * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow BlkInfo_(ulong sz, uint ba = 0u, const(TypeInfo) ti = null)) * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * Final function type: void (%core.memory.BlkInfo_*, %object.TypeInfo*, i32, i64) * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * %bi = alloca %core.memory.BlkInfo_, align 8 * * * * * * * * * * * * * * Function type: pure nothrow BlkInfo_(ulong sz, uint ba = 0u, const(TypeInfo) ti = null) * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * MulExp::toElem: newlen * 1LU @ ulong * * * * * * * * * * * * * * * * VarExp::toElem: newlen @ ulong * * * * * * * * * * * * * * * * * DtoSymbolAddress ('newlen' of type 'ulong') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * IntegerExp::toElem: 2u @ uint * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 2u @ uint * * * * * * * * * * * * * * * * * value = i32 2 * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * NullExp::toElem(type=const(TypeInfo)): null * * * * * * * * * * * * * * * * NullExp::toConstElem(type=const(TypeInfo)): null * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2738) * * * * * * * * * * AssignExp::toElem: (*this._data).capacity = bi.size / 1LU | (ulong)(ulong = ulong) * * * * * * * * * * * DotVarExp::toElem: (*this._data).capacity @ ulong * * * * * * * * * * * * PtrExp::toElem: *this._data @ Data * * * * * * * * * * * * * DotVarExp::toElem: this._data @ Data* * * * * * * * * * * * * * * ThisExp::toElem: this @ Appender!(ubyte[]) * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * Indexing aggregate field std.array.Appender!(ubyte[]).Appender._data: * * * * * * * * * * * * * * * Value: %67 = getelementptr %"std.array.Appender!(ubyte[]).Appender", %"std.array.Appender!(ubyte[]).Appender"* %.this_arg, i32 0, i32 0 * * * * * * * * * * * * Indexing aggregate field std.array.Appender!(ubyte[]).Appender.Data.capacity: * * * * * * * * * * * * * Value: %69 = getelementptr %"std.array.Appender!(ubyte[]).Appender.Data", %"std.array.Appender!(ubyte[]).Appender.Data"* %68, i32 0, i32 0 * * * * * * * * * * * DivExp::toElem: bi.size / 1LU @ ulong * * * * * * * * * * * * DotVarExp::toElem: bi.size @ ulong * * * * * * * * * * * * * VarExp::toElem: bi @ BlkInfo_ * * * * * * * * * * * * * * DtoSymbolAddress ('bi' of type 'BlkInfo_') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * Indexing aggregate field core.memory.BlkInfo_.size: * * * * * * * * * * * * * * Resolving struct type: BlkInfo_ (/usr/include/dlang/ldc/core/memory.d(109)) * * * * * * * * * * * * * * Value: %70 = getelementptr %core.memory.BlkInfo_, %core.memory.BlkInfo_* %bi, i32 0, i32 1 * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * lhs: %69 = getelementptr %"std.array.Appender!(ubyte[]).Appender.Data", %"std.array.Appender!(ubyte[]).Appender.Data"* %68, i32 0, i32 0 * * * * * * * * * * * * rhs: %72 = udiv i64 %71, 1 * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2740) * * * * * * * * * * VarExp::toElem: len @ immutable(ulong) * * * * * * * * * * * DtoSymbolAddress ('len' of type 'immutable(ulong)') * * * * * * * * * * * * a normal variable * * * * * * * * * * if conditional: %73 = load i64, i64* %len * * * * * * * * * * Casting from 'immutable(ulong)' to 'bool' * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2741) * * * * * * * * * * * CallExp::toElem: memcpy(bi.base, cast(const(void*))cast(ubyte*)(*this._data).arr, len * 1LU) @ void* * * * * * * * * * * * * VarExp::toElem: memcpy @ pure nothrow @nogc @system extern (C) void*(void* s1, const(void*) s2, ulong n) * * * * * * * * * * * * * DtoSymbolAddress ('memcpy' of type 'pure nothrow @nogc @system extern (C) void*(void* s1, const(void*) s2, ulong n)') * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @system extern (C) void*(void* s1, const(void*) s2, ulong n)) * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * Final function type: i8* (i8*, i8*, i64) * * * * * * * * * * * * * * DtoResolveFunction(core.stdc.string.memcpy): /usr/include/dlang/ldc/core/stdc/string.d(29) * * * * * * * * * * * * * * * DtoDeclareFunction(core.stdc.string.memcpy): /usr/include/dlang/ldc/core/stdc/string.d(29) * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @system extern (C) void*(void* s1, const(void*) s2, ulong n)) * * * * * * * * * * * * * * * * func = declare i8* @memcpy(i8*, i8*, i64) * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * Building type: pure nothrow @nogc @system extern (C) void*(void* s1, const(void*) s2, ulong n) * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @system extern (C) void*(void* s1, const(void*) s2, ulong n)) * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * Final function type: i8* (i8*, i8*, i64) * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * Function type: pure nothrow @nogc @system extern (C) void*(void* s1, const(void*) s2, ulong n) * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * DotVarExp::toElem: bi.base @ void* * * * * * * * * * * * * * * * VarExp::toElem: bi @ BlkInfo_ * * * * * * * * * * * * * * * * DtoSymbolAddress ('bi' of type 'BlkInfo_') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * Indexing aggregate field core.memory.BlkInfo_.base: * * * * * * * * * * * * * * * * Value: %81 = getelementptr %core.memory.BlkInfo_, %core.memory.BlkInfo_* %bi, i32 0, i32 0 * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * CastExp::toElem: cast(const(void*))cast(ubyte*)(*this._data).arr @ const(void*) * * * * * * * * * * * * * * * CastExp::toElem: cast(ubyte*)(*this._data).arr @ ubyte* * * * * * * * * * * * * * * * * DotVarExp::toElem: (*this._data).arr @ ubyte[] * * * * * * * * * * * * * * * * * PtrExp::toElem: *this._data @ Data * * * * * * * * * * * * * * * * * * DotVarExp::toElem: this._data @ Data* * * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Appender!(ubyte[]) * * * * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * * * * Indexing aggregate field std.array.Appender!(ubyte[]).Appender._data: * * * * * * * * * * * * * * * * * * * * Value: %82 = getelementptr %"std.array.Appender!(ubyte[]).Appender", %"std.array.Appender!(ubyte[]).Appender"* %.this_arg, i32 0, i32 0 * * * * * * * * * * * * * * * * * Indexing aggregate field std.array.Appender!(ubyte[]).Appender.Data.arr: * * * * * * * * * * * * * * * * * * Value: %84 = getelementptr %"std.array.Appender!(ubyte[]).Appender.Data", %"std.array.Appender!(ubyte[]).Appender.Data"* %83, i32 0, i32 1 * * * * * * * * * * * * * * * * Casting from 'ubyte[]' to 'ubyte*' * * * * * * * * * * * * * * * * * DtoCastArray * * * * * * * * * * * * * * * * * * from array or sarray * * * * * * * * * * * * * * * * * * to pointer * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * Casting from 'ubyte*' to 'const(void*)' * * * * * * * * * * * * * * * * src: %.ptr16 = load i8*, i8** %85 * * * * * * * * * * * * * * * * to type: i8* * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * MulExp::toElem: len * 1LU @ ulong * * * * * * * * * * * * * * * VarExp::toElem: len @ ulong * * * * * * * * * * * * * * * * DtoSymbolAddress ('len' of type 'immutable(ulong)') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2742) * * * * * * * * * * AssignExp::toElem: (*this._data).arr = (cast(ubyte*)bi.base)[0..len] | (ubyte[])(ubyte[] = ubyte[]) * * * * * * * * * * * DotVarExp::toElem: (*this._data).arr @ ubyte[] * * * * * * * * * * * * PtrExp::toElem: *this._data @ Data * * * * * * * * * * * * * DotVarExp::toElem: this._data @ Data* * * * * * * * * * * * * * * ThisExp::toElem: this @ Appender!(ubyte[]) * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * Indexing aggregate field std.array.Appender!(ubyte[]).Appender._data: * * * * * * * * * * * * * * * Value: %90 = getelementptr %"std.array.Appender!(ubyte[]).Appender", %"std.array.Appender!(ubyte[]).Appender"* %.this_arg, i32 0, i32 0 * * * * * * * * * * * * Indexing aggregate field std.array.Appender!(ubyte[]).Appender.Data.arr: * * * * * * * * * * * * * Value: %92 = getelementptr %"std.array.Appender!(ubyte[]).Appender.Data", %"std.array.Appender!(ubyte[]).Appender.Data"* %91, i32 0, i32 1 * * * * * * * * * * * SliceExp::toElem: (cast(ubyte*)bi.base)[0..len] @ ubyte[] * * * * * * * * * * * * CastExp::toElem: cast(ubyte*)bi.base @ ubyte* * * * * * * * * * * * * * DotVarExp::toElem: bi.base @ void* * * * * * * * * * * * * * * VarExp::toElem: bi @ BlkInfo_ * * * * * * * * * * * * * * * DtoSymbolAddress ('bi' of type 'BlkInfo_') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * Indexing aggregate field core.memory.BlkInfo_.base: * * * * * * * * * * * * * * * Value: %93 = getelementptr %core.memory.BlkInfo_, %core.memory.BlkInfo_* %bi, i32 0, i32 0 * * * * * * * * * * * * * Casting from 'void*' to 'ubyte*' * * * * * * * * * * * * * * src: %94 = load i8*, i8** %93 * * * * * * * * * * * * * * to type: i8* * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * VarExp::toElem: len @ ulong * * * * * * * * * * * * * DtoSymbolAddress ('len' of type 'immutable(ulong)') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * SetArray * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2743) * * * * * * * * * * AssignExp::toElem: (*this._data).canExtend = true | (bool)(bool = bool) * * * * * * * * * * * DotVarExp::toElem: (*this._data).canExtend @ bool * * * * * * * * * * * * PtrExp::toElem: *this._data @ Data * * * * * * * * * * * * * DotVarExp::toElem: this._data @ Data* * * * * * * * * * * * * * * ThisExp::toElem: this @ Appender!(ubyte[]) * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * Indexing aggregate field std.array.Appender!(ubyte[]).Appender._data: * * * * * * * * * * * * * * * Value: %99 = getelementptr %"std.array.Appender!(ubyte[]).Appender", %"std.array.Appender!(ubyte[]).Appender"* %.this_arg, i32 0, i32 0 * * * * * * * * * * * * Indexing aggregate field std.array.Appender!(ubyte[]).Appender.Data.canExtend: * * * * * * * * * * * * * Value: %101 = getelementptr %"std.array.Appender!(ubyte[]).Appender.Data", %"std.array.Appender!(ubyte[]).Appender.Data"* %100, i32 0, i32 2 * * * * * * * * * * * IntegerExp::toElem: true @ bool * * * * * * * * * * * * IntegerExp::toConstElem: true @ bool * * * * * * * * * * * * * value = i1 true * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * DtoAssign() * * * Ignoring Dsymbol::codegen for std.array.Appender!(ubyte[]).Appender.canPutItem(U) * * * Ignoring Dsymbol::codegen for std.array.Appender!(ubyte[]).Appender.canPutConstRange(Range) * * * Ignoring Dsymbol::codegen for std.array.Appender!(ubyte[]).Appender.canPutRange(Range) * * * Ignoring Dsymbol::codegen for std.array.Appender!(ubyte[]).Appender.put(U)(U item) if (canPutItem!U) * * * Ignoring Dsymbol::codegen for std.array.Appender!(ubyte[]).Appender.put(Range)(Range items) if (canPutConstRange!Range) * * * Ignoring Dsymbol::codegen for std.array.Appender!(ubyte[]).Appender.put(Range)(Range items) if (canPutRange!Range) * * * Ignoring Dsymbol::codegen for std.array.Appender!(ubyte[]).Appender.opOpAssign(string op : "~", U)(U item) if (canPutItem!U) * * * Ignoring Dsymbol::codegen for std.array.Appender!(ubyte[]).Appender.opOpAssign(string op : "~", Range)(Range items) if (canPutConstRange!Range) * * * Ignoring Dsymbol::codegen for std.array.Appender!(ubyte[]).Appender.opOpAssign(string op : "~", Range)(Range items) if (canPutRange!Range) * * * DtoDefineFunction(std.array.Appender!(ubyte[]).Appender.clear): /usr/include/dlang/ldc/std/array.d(2901) * * * * isMember = this is: Appender!(ubyte[]) * * * * DtoFunctionType(pure nothrow @nogc @trusted void()) * * * * * x86-64 ABI: Transforming argument types * * * * * Final function type: void (%"std.array.Appender!(ubyte[]).Appender"*) * * * * DtoResolveFunction(std.array.Appender!(ubyte[]).Appender.clear): /usr/include/dlang/ldc/std/array.d(2901) * * * * * DtoDeclareFunction(std.array.Appender!(ubyte[]).Appender.clear): /usr/include/dlang/ldc/std/array.d(2901) * * * * * * isMember = this is: Appender!(ubyte[]) * * * * * * DtoFunctionType(pure nothrow @nogc @trusted void()) * * * * * * func = declare void @_D3std5array16__T8AppenderTAhZ8Appender5clearMFNaNbNiNeZv(%"std.array.Appender!(ubyte[]).Appender"*) * * * * Doing function body for: clear * * * * DtoCreateNestedContext for clear * * * * * DtoCreateNestedContextType for std.array.Appender!(ubyte[]).Appender.clear * * * * CompoundStatement::toIR(): * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2903) * * * * * * DotVarExp::toElem: this._data @ Data* * * * * * * * ThisExp::toElem: this @ Appender!(ubyte[]) * * * * * * * * normal this exp * * * * * * * Indexing aggregate field std.array.Appender!(ubyte[]).Appender._data: * * * * * * * * Value: %1 = getelementptr %"std.array.Appender!(ubyte[]).Appender", %"std.array.Appender!(ubyte[]).Appender"* %.this_arg, i32 0, i32 0 * * * * * * if conditional: %2 = load %"std.array.Appender!(ubyte[]).Appender.Data"*, %"std.array.Appender!(ubyte[]).Appender.Data"** %1 * * * * * * Casting from 'Data*' to 'bool' * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2904) * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2905) * * * * * * * * AssignExp::toElem: (*this._data).arr = (cast(ubyte*)(*this._data).arr)[0..0] | (ubyte[])(ubyte[] = ubyte[]) * * * * * * * * * DotVarExp::toElem: (*this._data).arr @ ubyte[] * * * * * * * * * * PtrExp::toElem: *this._data @ Data * * * * * * * * * * * DotVarExp::toElem: this._data @ Data* * * * * * * * * * * * * ThisExp::toElem: this @ Appender!(ubyte[]) * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * Indexing aggregate field std.array.Appender!(ubyte[]).Appender._data: * * * * * * * * * * * * * Value: %5 = getelementptr %"std.array.Appender!(ubyte[]).Appender", %"std.array.Appender!(ubyte[]).Appender"* %.this_arg, i32 0, i32 0 * * * * * * * * * * Indexing aggregate field std.array.Appender!(ubyte[]).Appender.Data.arr: * * * * * * * * * * * Value: %7 = getelementptr %"std.array.Appender!(ubyte[]).Appender.Data", %"std.array.Appender!(ubyte[]).Appender.Data"* %6, i32 0, i32 1 * * * * * * * * * SliceExp::toElem: (cast(ubyte*)(*this._data).arr)[0..0] @ ubyte[] * * * * * * * * * * CastExp::toElem: cast(ubyte*)(*this._data).arr @ ubyte* * * * * * * * * * * * DotVarExp::toElem: (*this._data).arr @ ubyte[] * * * * * * * * * * * * PtrExp::toElem: *this._data @ Data * * * * * * * * * * * * * DotVarExp::toElem: this._data @ Data* * * * * * * * * * * * * * * ThisExp::toElem: this @ Appender!(ubyte[]) * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * Indexing aggregate field std.array.Appender!(ubyte[]).Appender._data: * * * * * * * * * * * * * * * Value: %8 = getelementptr %"std.array.Appender!(ubyte[]).Appender", %"std.array.Appender!(ubyte[]).Appender"* %.this_arg, i32 0, i32 0 * * * * * * * * * * * * Indexing aggregate field std.array.Appender!(ubyte[]).Appender.Data.arr: * * * * * * * * * * * * * Value: %10 = getelementptr %"std.array.Appender!(ubyte[]).Appender.Data", %"std.array.Appender!(ubyte[]).Appender.Data"* %9, i32 0, i32 1 * * * * * * * * * * * Casting from 'ubyte[]' to 'ubyte*' * * * * * * * * * * * * DtoCastArray * * * * * * * * * * * * * from array or sarray * * * * * * * * * * * * * to pointer * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * value = i64 0 * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * value = i64 0 * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * DtoAssign() * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * SetArray * * * DtoDefineFunction(std.array.Appender!(ubyte[]).Appender.shrinkTo): /usr/include/dlang/ldc/std/array.d(2914) * * * * isMember = this is: Appender!(ubyte[]) * * * * DtoFunctionType(pure @trusted void(ulong newlength)) * * * * * x86-64 ABI: Transforming argument types * * * * * Final function type: void (%"std.array.Appender!(ubyte[]).Appender"*, i64) * * * * DtoResolveFunction(std.array.Appender!(ubyte[]).Appender.shrinkTo): /usr/include/dlang/ldc/std/array.d(2914) * * * * * DtoDeclareFunction(std.array.Appender!(ubyte[]).Appender.shrinkTo): /usr/include/dlang/ldc/std/array.d(2914) * * * * * * isMember = this is: Appender!(ubyte[]) * * * * * * DtoFunctionType(pure @trusted void(ulong newlength)) * * * * * * func = declare void @_D3std5array16__T8AppenderTAhZ8Appender8shrinkToMFNaNemZv(%"std.array.Appender!(ubyte[]).Appender"*, i64) * * * * Doing function body for: shrinkTo * * * * DtoCreateNestedContext for shrinkTo * * * * * DtoCreateNestedContextType for std.array.Appender!(ubyte[]).Appender.shrinkTo * * * * CompoundStatement::toIR(): * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2915) * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2917) * * * * * * * DotVarExp::toElem: this._data @ Data* * * * * * * * * ThisExp::toElem: this @ Appender!(ubyte[]) * * * * * * * * * normal this exp * * * * * * * * Indexing aggregate field std.array.Appender!(ubyte[]).Appender._data: * * * * * * * * * Value: %1 = getelementptr %"std.array.Appender!(ubyte[]).Appender", %"std.array.Appender!(ubyte[]).Appender"* %.this_arg, i32 0, i32 0 * * * * * * * if conditional: %2 = load %"std.array.Appender!(ubyte[]).Appender.Data"*, %"std.array.Appender!(ubyte[]).Appender.Data"** %1 * * * * * * * Casting from 'Data*' to 'bool' * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2918) * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2918) * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2919) * * * * * * * * * * CallExp::toElem: enforce(newlength <= (*this._data).arr.length, delegate const(char)[]() => null, "/usr/include/dlang/ldc/std/array.d", 2919LU) @ bool * * * * * * * * * * * VarExp::toElem: enforce @ pure @safe bool(bool value, lazy const(char)[] msg = null, string file = __FILE__, ulong line = cast(ulong)__LINE__) * * * * * * * * * * * * DtoSymbolAddress ('enforce' of type 'pure @safe bool(bool value, lazy const(char)[] msg = null, string file = __FILE__, ulong line = cast(ulong)__LINE__)') * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * DtoFunctionType(pure @safe bool(bool value, lazy const(char)[] msg = null, string file = __FILE__, ulong line = cast(ulong)__LINE__)) * * * * * * * * * * * * * * lazy param * * * * * * * * * * * * * * Building type: const(char)[] delegate() * * * * * * * * * * * * * * * DtoFunctionType(const(char)[]()) * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * Final function type: { i64, i8* } (i8*) * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * Final function type: i1 (i64, { i64, i8* }, { i8*, { i64, i8* } (i8*)* }, i1) * * * * * * * * * * * * * DtoResolveFunction(std.exception.enforce!(Exception, bool).enforce): /usr/include/dlang/ldc/std/exception.d(348) * * * * * * * * * * * * * * DtoDeclareFunction(std.exception.enforce!(Exception, bool).enforce): /usr/include/dlang/ldc/std/exception.d(348) * * * * * * * * * * * * * * * DtoFunctionType(pure @safe bool(bool value, lazy const(char)[] msg = null, string file = __FILE__, ulong line = cast(ulong)__LINE__)) * * * * * * * * * * * * * * * func = declare i1 @_D3std9exception27__T7enforceHTC9ExceptionTbZ7enforceFNaNfbLAxaAyamZb(i64, { i64, i8* }, { i8*, { i64, i8* } (i8*)* }, i1) * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * Building type: pure @safe bool(bool value, lazy const(char)[] msg = null, string file = __FILE__, ulong line = cast(ulong)__LINE__) * * * * * * * * * * * * * DtoFunctionType(pure @safe bool(bool value, lazy const(char)[] msg = null, string file = __FILE__, ulong line = cast(ulong)__LINE__)) * * * * * * * * * * * * * * lazy param * * * * * * * * * * * * * * Building type: const(char)[] delegate() * * * * * * * * * * * * * * * DtoFunctionType(const(char)[]()) * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * Final function type: { i64, i8* } (i8*) * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * Final function type: i1 (i64, { i64, i8* }, { i8*, { i64, i8* } (i8*)* }, i1) * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * Function type: pure @safe bool(bool value, lazy const(char)[] msg = null, string file = __FILE__, ulong line = cast(ulong)__LINE__) * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * CmpExp::toElem: newlength <= (*this._data).arr.length @ bool * * * * * * * * * * * * * * VarExp::toElem: newlength @ ulong * * * * * * * * * * * * * * * DtoSymbolAddress ('newlength' of type 'ulong') * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * type: ulong * * * * * * * * * * * * * * ArrayLengthExp::toElem: (*this._data).arr.length @ ulong * * * * * * * * * * * * * * * DotVarExp::toElem: (*this._data).arr @ ubyte[] * * * * * * * * * * * * * * * * PtrExp::toElem: *this._data @ Data * * * * * * * * * * * * * * * * * DotVarExp::toElem: this._data @ Data* * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Appender!(ubyte[]) * * * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * * * Indexing aggregate field std.array.Appender!(ubyte[]).Appender._data: * * * * * * * * * * * * * * * * * * * Value: %5 = getelementptr %"std.array.Appender!(ubyte[]).Appender", %"std.array.Appender!(ubyte[]).Appender"* %.this_arg, i32 0, i32 0 * * * * * * * * * * * * * * * * Indexing aggregate field std.array.Appender!(ubyte[]).Appender.Data.arr: * * * * * * * * * * * * * * * * * Value: %7 = getelementptr %"std.array.Appender!(ubyte[]).Appender.Data", %"std.array.Appender!(ubyte[]).Appender.Data"* %6, i32 0, i32 1 * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * type 1: %9 = load i64, i64* %newlength * * * * * * * * * * * * * * type 2: %.len = load i64, i64* %8 * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * FuncExp::toElem: __dgliteral2 @ const(char)[] delegate() pure nothrow @nogc @safe * * * * * * * * * * * * * * nested * * * * * * * * * * * * * * kind = delegate * * * * * * * * * * * * * * DtoDefineFunction(std.array.Appender!(ubyte[]).Appender.shrinkTo.__dgliteral2): /usr/include/dlang/ldc/std/exception.d(348) * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe const(char)[]()) * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * Final function type: { i64, i8* } (i8*) * * * * * * * * * * * * * * * DtoResolveFunction(std.array.Appender!(ubyte[]).Appender.shrinkTo.__dgliteral2): /usr/include/dlang/ldc/std/exception.d(348) * * * * * * * * * * * * * * * * DtoDeclareFunction(std.array.Appender!(ubyte[]).Appender.shrinkTo.__dgliteral2): /usr/include/dlang/ldc/std/exception.d(348) * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe const(char)[]()) * * * * * * * * * * * * * * * * * func = declare { i64, i8* } @_D3std5array16__T8AppenderTAhZ8Appender8shrinkToMFNaNemZ12__dgliteral2MFNaNbNiNfZAxa(i8*) * * * * * * * * * * * * * * * Doing function body for: __dgliteral2 * * * * * * * * * * * * * * * DtoCreateNestedContext for __dgliteral2 * * * * * * * * * * * * * * * * DtoCreateNestedContextType for std.array.Appender!(ubyte[]).Appender.shrinkTo.__dgliteral2 * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for std.array.Appender!(ubyte[]).Appender.shrinkTo * * * * * * * * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * * * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/exception.d(348) * * * * * * * * * * * * * * * * * NullExp::toElem(type=const(char)[]): null * * * * * * * * * * * * * * * * * * NullExp::toConstElem(type=const(char)[]): null * * * * * * * * * * * * * * * * * return value is '0x120dd7b0' * * * * * * * * * * * * * * Building type: const(char)[] delegate() pure nothrow @nogc @safe * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe const(char)[]()) * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * Final function type: { i64, i8* } (i8*) * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * StringExp::toElem: "/usr/include/dlang/ldc/std/array.d" @ string * * * * * * * * * * * * * * type: [35 x i8] * * * * * * * * * * * * * * init: [35 x i8] c"/usr/include/dlang/ldc/std/array.d\00" * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * IntegerExp::toElem: 2919LU @ ulong * * * * * * * * * * * * * * IntegerExp::toConstElem: 2919LU @ ulong * * * * * * * * * * * * * * * value = i64 2919 * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2920) * * * * * * * * * * AssignExp::toElem: (*this._data).arr = (cast(ubyte*)(*this._data).arr)[0..newlength] | (ubyte[])(ubyte[] = ubyte[]) * * * * * * * * * * * DotVarExp::toElem: (*this._data).arr @ ubyte[] * * * * * * * * * * * * PtrExp::toElem: *this._data @ Data * * * * * * * * * * * * * DotVarExp::toElem: this._data @ Data* * * * * * * * * * * * * * * ThisExp::toElem: this @ Appender!(ubyte[]) * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * Indexing aggregate field std.array.Appender!(ubyte[]).Appender._data: * * * * * * * * * * * * * * * Value: %12 = getelementptr %"std.array.Appender!(ubyte[]).Appender", %"std.array.Appender!(ubyte[]).Appender"* %.this_arg, i32 0, i32 0 * * * * * * * * * * * * Indexing aggregate field std.array.Appender!(ubyte[]).Appender.Data.arr: * * * * * * * * * * * * * Value: %14 = getelementptr %"std.array.Appender!(ubyte[]).Appender.Data", %"std.array.Appender!(ubyte[]).Appender.Data"* %13, i32 0, i32 1 * * * * * * * * * * * SliceExp::toElem: (cast(ubyte*)(*this._data).arr)[0..newlength] @ ubyte[] * * * * * * * * * * * * CastExp::toElem: cast(ubyte*)(*this._data).arr @ ubyte* * * * * * * * * * * * * * DotVarExp::toElem: (*this._data).arr @ ubyte[] * * * * * * * * * * * * * * PtrExp::toElem: *this._data @ Data * * * * * * * * * * * * * * * DotVarExp::toElem: this._data @ Data* * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Appender!(ubyte[]) * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * Indexing aggregate field std.array.Appender!(ubyte[]).Appender._data: * * * * * * * * * * * * * * * * * Value: %15 = getelementptr %"std.array.Appender!(ubyte[]).Appender", %"std.array.Appender!(ubyte[]).Appender"* %.this_arg, i32 0, i32 0 * * * * * * * * * * * * * * Indexing aggregate field std.array.Appender!(ubyte[]).Appender.Data.arr: * * * * * * * * * * * * * * * Value: %17 = getelementptr %"std.array.Appender!(ubyte[]).Appender.Data", %"std.array.Appender!(ubyte[]).Appender.Data"* %16, i32 0, i32 1 * * * * * * * * * * * * * Casting from 'ubyte[]' to 'ubyte*' * * * * * * * * * * * * * * DtoCastArray * * * * * * * * * * * * * * * from array or sarray * * * * * * * * * * * * * * * to pointer * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * VarExp::toElem: newlength @ ulong * * * * * * * * * * * * * DtoSymbolAddress ('newlength' of type 'ulong') * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * type: ulong * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * SetArray * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2923) * * * * * * * * CallExp::toElem: enforce(newlength == 0LU, delegate const(char)[]() => null, "/usr/include/dlang/ldc/std/array.d", 2923LU) @ bool * * * * * * * * * VarExp::toElem: enforce @ pure @safe bool(bool value, lazy const(char)[] msg = null, string file = __FILE__, ulong line = cast(ulong)__LINE__) * * * * * * * * * * DtoSymbolAddress ('enforce' of type 'pure @safe bool(bool value, lazy const(char)[] msg = null, string file = __FILE__, ulong line = cast(ulong)__LINE__)') * * * * * * * * * * * FuncDeclaration * * * * * * * * * DtoCallFunction() * * * * * * * * * * doing normal arguments * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * Function type: pure @safe bool(bool value, lazy const(char)[] msg = null, string file = __FILE__, ulong line = cast(ulong)__LINE__) * * * * * * * * * * DtoArgument * * * * * * * * * * * EqualExp::toElem: newlength == 0LU @ bool * * * * * * * * * * * * VarExp::toElem: newlength @ ulong * * * * * * * * * * * * * DtoSymbolAddress ('newlength' of type 'ulong') * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * type: ulong * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * integral or pointer or interface * * * * * * * * * * * * lv: %23 = load i64, i64* %newlength * * * * * * * * * * * * rv: i64 0 * * * * * * * * * * DtoArgument * * * * * * * * * * * FuncExp::toElem: __dgliteral3 @ const(char)[] delegate() pure nothrow @nogc @safe * * * * * * * * * * * * nested * * * * * * * * * * * * kind = delegate * * * * * * * * * * * * DtoDefineFunction(std.array.Appender!(ubyte[]).Appender.shrinkTo.__dgliteral3): /usr/include/dlang/ldc/std/exception.d(348) * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe const(char)[]()) * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * Final function type: { i64, i8* } (i8*) * * * * * * * * * * * * * DtoResolveFunction(std.array.Appender!(ubyte[]).Appender.shrinkTo.__dgliteral3): /usr/include/dlang/ldc/std/exception.d(348) * * * * * * * * * * * * * * DtoDeclareFunction(std.array.Appender!(ubyte[]).Appender.shrinkTo.__dgliteral3): /usr/include/dlang/ldc/std/exception.d(348) * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe const(char)[]()) * * * * * * * * * * * * * * * func = declare { i64, i8* } @_D3std5array16__T8AppenderTAhZ8Appender8shrinkToMFNaNemZ12__dgliteral3MFNaNbNiNfZAxa(i8*) * * * * * * * * * * * * * Doing function body for: __dgliteral3 * * * * * * * * * * * * * DtoCreateNestedContext for __dgliteral3 * * * * * * * * * * * * * * DtoCreateNestedContextType for std.array.Appender!(ubyte[]).Appender.shrinkTo.__dgliteral3 * * * * * * * * * * * * * * * DtoCreateNestedContextType for std.array.Appender!(ubyte[]).Appender.shrinkTo * * * * * * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/exception.d(348) * * * * * * * * * * * * * * * NullExp::toElem(type=const(char)[]): null * * * * * * * * * * * * * * * * NullExp::toConstElem(type=const(char)[]): null * * * * * * * * * * * * * * * return value is '0x120dd7b0' * * * * * * * * * * * * Building type: const(char)[] delegate() pure nothrow @nogc @safe * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe const(char)[]()) * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * Final function type: { i64, i8* } (i8*) * * * * * * * * * * DtoArgument * * * * * * * * * * * StringExp::toElem: "/usr/include/dlang/ldc/std/array.d" @ string * * * * * * * * * * DtoArgument * * * * * * * * * * * IntegerExp::toElem: 2923LU @ ulong * * * * * * * * * * * * IntegerExp::toConstElem: 2923LU @ ulong * * * * * * * * * * * * * value = i64 2923 * * * Ignoring Dsymbol::codegen for std.array.Appender!(ubyte[]).Appender.toString()(scope void delegate(const(char)[]) sink) * * * Building default initializer for std.array.Appender!(ubyte[]).Appender * * * * Creating initializer constant for Appender * * * * * Implicit initializer: _data @+0 * * * * * * DtoConstExpInit(targetType = Data*, exp = null) * * * * * * * NullExp::toConstElem(type=Data*): null * * * * * adding field _data * * * * * final initializer: %"std.array.Appender!(ubyte[]).Appender_init" zeroinitializer * * * DtoTypeInfoOf(type = 'Appender!(ubyte[])', base='1') * * * * Type::getTypeInfo(): Appender!(ubyte[]) * * * * * TypeInfoDeclaration::codegen(typeid(Appender!(ubyte[]))) * * * * * * type = 'Appender!(ubyte[])' * * * * * * typeinfo mangle: _D47TypeInfo_S3std5array16__T8AppenderTAhZ8Appender6__initZ * * * * * * TypeInfoStructDeclaration::llvmDefine() typeid(Appender!(ubyte[])) * * * * * * * DtoTypeInfoOf(type = 'void*', base='1') * * * * * * * * Type::getTypeInfo(): void* * * * * * * * * * TypeInfoDeclaration::codegen(typeid(void*)) * * * * * * * * * * type = 'void*' * * * * * * * * * * typeinfo mangle: _D11TypeInfo_Pv6__initZ * * * * * * * * * * TypeInfoPointerDeclaration::llvmDefine() typeid(void*) * * * * * * * * * * * DtoResolveClass(object.TypeInfo_Pointer): /usr/include/dlang/ldc/object.di(145) * * * * * * * * * * * * Building type: object.TypeInfo_Pointer * * * * * * * * * * * * * Building class type object.TypeInfo_Pointer @ /usr/include/dlang/ldc/object.di(145) * * * * * * * * * * * * * * Instance size: 24 * * * * * * * * * * * * * * adding default initializer for struct field m_next * * * * * * * * * * * * * * Building vtbl type for class object.TypeInfo_Pointer * * * * * * * * * * * * * * * Adding type of object.TypeInfo.toString * * * * * * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * * * * * * DtoFunctionType(const pure nothrow @safe string()) * * * * * * * * * * * * * * * Adding type of object.TypeInfo.toHash * * * * * * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * * * * * * DtoFunctionType(const nothrow @trusted ulong()) * * * * * * * * * * * * * * * Adding type of object.TypeInfo.opCmp * * * * * * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * * * * * * DtoFunctionType(int(Object o)) * * * * * * * * * * * * * * * Adding type of object.TypeInfo.opEquals * * * * * * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * * * * * * DtoFunctionType(bool(Object o)) * * * * * * * * * * * * * * * Adding type of object.TypeInfo.getHash * * * * * * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * * * * * * DtoFunctionType(const nothrow @trusted ulong(const(void*) p)) * * * * * * * * * * * * * * * Adding type of object.TypeInfo.equals * * * * * * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * * * * * * DtoFunctionType(const bool(const(void*) p1, const(void*) p2)) * * * * * * * * * * * * * * * Adding type of object.TypeInfo.compare * * * * * * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * * * * * * DtoFunctionType(const int(const(void*) p1, const(void*) p2)) * * * * * * * * * * * * * * * Adding type of object.TypeInfo.tsize * * * * * * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * * * * * * DtoFunctionType(const pure nothrow @nogc @property @safe ulong()) * * * * * * * * * * * * * * * Adding type of object.TypeInfo.swap * * * * * * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * * * * * * DtoFunctionType(const void(void* p1, void* p2)) * * * * * * * * * * * * * * * Adding type of object.TypeInfo.next * * * * * * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * * * * * * DtoFunctionType(inout pure nothrow @nogc @property inout(TypeInfo)()) * * * * * * * * * * * * * * * Adding type of object.TypeInfo.init * * * * * * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * * * * * * DtoFunctionType(const pure nothrow @nogc @safe const(void)[]()) * * * * * * * * * * * * * * * Adding type of object.TypeInfo.flags * * * * * * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * * * * * * DtoFunctionType(const pure nothrow @nogc @property @safe uint()) * * * * * * * * * * * * * * * Adding type of object.TypeInfo.offTi * * * * * * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * * * * * * DtoFunctionType(const const(OffsetTypeInfo)[]()) * * * * * * * * * * * * * * * Adding type of object.TypeInfo.destroy * * * * * * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * * * * * * DtoFunctionType(const void(void* p)) * * * * * * * * * * * * * * * Adding type of object.TypeInfo.postblit * * * * * * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * * * * * * DtoFunctionType(const void(void* p)) * * * * * * * * * * * * * * * Adding type of object.TypeInfo.talign * * * * * * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * * * * * * DtoFunctionType(const pure nothrow @nogc @property @safe ulong()) * * * * * * * * * * * * * * * Adding type of object.TypeInfo.argTypes * * * * * * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * * * * * * DtoFunctionType(nothrow @safe int(out TypeInfo arg1, out TypeInfo arg2)) * * * * * * * * * * * * * * * Adding type of object.TypeInfo.rtInfo * * * * * * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * * * * * * DtoFunctionType(const pure nothrow @nogc @property @safe immutable(void)*()) * * * * * * * * * * * * * * class type: %object.TypeInfo_Pointer = type { %object.TypeInfo_Pointer.__vtbl*, i8*, %object.TypeInfo* } * * * * * * * * * * * DtoTypeInfoOf(type = 'void', base='1') * * * * * * * * * * * * Type::getTypeInfo(): void * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(void)) * * * * * * * * * * * * * type = 'void' * * * * * * * * * * * * * typeinfo mangle: _D10TypeInfo_v6__initZ * * * * * * * * TypeInfoDeclaration::codegen(typeid(void*)) * * * * * * * IntegerExp::toConstElem: cast(void*)305419896LU @ void* * * * * * * * * pointer * * * * TypeInfoDeclaration::codegen(typeid(Appender!(ubyte[]))) * TemplateInstance::codegen: 'std.range.primitives.ElementEncodingType!(ubyte[])' * * Ignoring Dsymbol::codegen for std.range.primitives.ElementEncodingType!(ubyte[]).ElementEncodingType * TemplateInstance::codegen: 'std.range.primitives.ElementType!(ubyte[])' * * Ignoring Dsymbol::codegen for std.range.primitives.ElementType!(ubyte[]).ElementType * TemplateInstance::codegen: 'std.traits.isNarrowString!(ubyte[])' * * VarDeclaration::codegen(): 'std.traits.isNarrowString!(ubyte[]).isNarrowString' * * * DtoResolveVariable(std.traits.isNarrowString!(ubyte[]).isNarrowString) * TemplateInstance::codegen: 'std.traits.isStaticArray!(ubyte[])' * * VarDeclaration::codegen(): 'std.traits.isStaticArray!(ubyte[]).isStaticArray' * * * DtoResolveVariable(std.traits.isStaticArray!(ubyte[]).isStaticArray) * TemplateInstance::codegen: 'std.range.primitives.front!ubyte' * * DtoDefineFunction(std.range.primitives.front!ubyte.front): /usr/include/dlang/ldc/std/range/primitives.d(2157) * * * DtoFunctionType(pure nothrow @nogc @property ref @safe ubyte(ubyte[] a)) * * * * x86-64 ABI: Transforming argument types * * * * Final function type: i8* ({ i64, i8* }) * * * DtoResolveFunction(std.range.primitives.front!ubyte.front): /usr/include/dlang/ldc/std/range/primitives.d(2157) * * * * DtoDeclareFunction(std.range.primitives.front!ubyte.front): /usr/include/dlang/ldc/std/range/primitives.d(2157) * * * * * DtoFunctionType(pure nothrow @nogc @property ref @safe ubyte(ubyte[] a)) * * * * * func = declare i8* @_D3std5range10primitives12__T5frontThZ5frontFNaNbNcNdNiNfAhZh({ i64, i8* }) * * * Doing function body for: front * * * DtoCreateNestedContext for front * * * * DtoCreateNestedContextType for std.range.primitives.front!ubyte.front * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/range/primitives.d(2159) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/range/primitives.d(2160) * * * * * * AssertExp::toElem: assert(a.length, "Attempting to fetch the front of an empty array of ubyte") * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/range/primitives.d(2161) * * * * * * AddrExp::toElem: &a[0] @ ubyte* * * * * * * * IndexExp::toElem: a[0] @ ubyte * * * * * * * * VarExp::toElem: a @ ubyte[] * * * * * * * * * DtoSymbolAddress ('a' of type 'ubyte[]') * * * * * * * * * * function param * * * * * * * * * * type: ubyte[] * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * value = i64 0 * * * * * * * * DtoArrayLen * * * * * * * * DtoArrayPtr * * * * * * * is nothing special * * * * * * * lval: %3 = getelementptr i8, i8* %.ptr, i64 0 * * * * * * return value is '0x121fccc0' * TemplateInstance::codegen: 'std.traits.Unqual!ubyte' * * Ignoring Dsymbol::codegen for std.traits.Unqual!ubyte.Unqual * TemplateInstance::codegen: 'std.traits.isMutable!ubyte' * * VarDeclaration::codegen(): 'std.traits.isMutable!ubyte.isMutable' * * * DtoResolveVariable(std.traits.isMutable!ubyte.isMutable) * TemplateInstance::codegen: 'std.range.primitives.isOutputRange!(Appender!(ubyte[]), ubyte)' * TemplateInstance::codegen: 'std.range.primitives.put!(Appender!(ubyte[]), ubyte)' * TemplateInstance::codegen: 'std.range.primitives.doPut!(Appender!(ubyte[]), ubyte)' * TemplateInstance::codegen: 'std.traits.hasMember!(Appender!(ubyte[]), "put")' * TemplateInstance::codegen: 'std.typetuple.staticIndexOf!("put", "core", "T", "Data", "_data", "__ctor", "reserve", "capacity", "data", "ensureAddable", "canPutItem", "canPutConstRange", "canPutRange", "put", "opOpAssign", "clear", "shrinkTo", "toString")' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("put", "core", "T", "Data", "_data", "__ctor", "reserve", "capacity", "data", "ensureAddable", "canPutItem", "canPutConstRange", "canPutRange", "put", "opOpAssign", "clear", "shrinkTo", "toString")' * TemplateInstance::codegen: 'std.typetuple.Alias!("put")' * TemplateInstance::codegen: 'std.typetuple.Alias!"core"' * TemplateInstance::codegen: 'std.typetuple.isSame!("put", "core")' * TemplateInstance::codegen: 'std.typetuple.expectBool!false' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("put", "T", "Data", "_data", "__ctor", "reserve", "capacity", "data", "ensureAddable", "canPutItem", "canPutConstRange", "canPutRange", "put", "opOpAssign", "clear", "shrinkTo", "toString")' * TemplateInstance::codegen: 'std.typetuple.Alias!"T"' * TemplateInstance::codegen: 'std.typetuple.isSame!("put", "T")' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("put", "Data", "_data", "__ctor", "reserve", "capacity", "data", "ensureAddable", "canPutItem", "canPutConstRange", "canPutRange", "put", "opOpAssign", "clear", "shrinkTo", "toString")' * TemplateInstance::codegen: 'std.typetuple.Alias!"Data"' * TemplateInstance::codegen: 'std.typetuple.isSame!("put", "Data")' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("put", "_data", "__ctor", "reserve", "capacity", "data", "ensureAddable", "canPutItem", "canPutConstRange", "canPutRange", "put", "opOpAssign", "clear", "shrinkTo", "toString")' * TemplateInstance::codegen: 'std.typetuple.Alias!"_data"' * TemplateInstance::codegen: 'std.typetuple.isSame!("put", "_data")' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("put", "__ctor", "reserve", "capacity", "data", "ensureAddable", "canPutItem", "canPutConstRange", "canPutRange", "put", "opOpAssign", "clear", "shrinkTo", "toString")' * TemplateInstance::codegen: 'std.typetuple.Alias!"__ctor"' * TemplateInstance::codegen: 'std.typetuple.isSame!("put", "__ctor")' * * VarDeclaration::codegen(): 'std.typetuple.isSame!("put", "__ctor").isSame' * * * DtoResolveVariable(std.typetuple.isSame!("put", "__ctor").isSame) * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("put", "reserve", "capacity", "data", "ensureAddable", "canPutItem", "canPutConstRange", "canPutRange", "put", "opOpAssign", "clear", "shrinkTo", "toString")' * TemplateInstance::codegen: 'std.typetuple.Alias!"reserve"' * TemplateInstance::codegen: 'std.typetuple.isSame!("put", "reserve")' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("put", "capacity", "data", "ensureAddable", "canPutItem", "canPutConstRange", "canPutRange", "put", "opOpAssign", "clear", "shrinkTo", "toString")' * TemplateInstance::codegen: 'std.typetuple.Alias!"capacity"' * TemplateInstance::codegen: 'std.typetuple.isSame!("put", "capacity")' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("put", "data", "ensureAddable", "canPutItem", "canPutConstRange", "canPutRange", "put", "opOpAssign", "clear", "shrinkTo", "toString")' * TemplateInstance::codegen: 'std.typetuple.Alias!"data"' * TemplateInstance::codegen: 'std.typetuple.isSame!("put", "data")' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("put", "ensureAddable", "canPutItem", "canPutConstRange", "canPutRange", "put", "opOpAssign", "clear", "shrinkTo", "toString")' * TemplateInstance::codegen: 'std.typetuple.Alias!"ensureAddable"' * TemplateInstance::codegen: 'std.typetuple.isSame!("put", "ensureAddable")' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("put", "canPutItem", "canPutConstRange", "canPutRange", "put", "opOpAssign", "clear", "shrinkTo", "toString")' * TemplateInstance::codegen: 'std.typetuple.Alias!"canPutItem"' * TemplateInstance::codegen: 'std.typetuple.isSame!("put", "canPutItem")' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("put", "canPutConstRange", "canPutRange", "put", "opOpAssign", "clear", "shrinkTo", "toString")' * TemplateInstance::codegen: 'std.typetuple.Alias!"canPutConstRange"' * TemplateInstance::codegen: 'std.typetuple.isSame!("put", "canPutConstRange")' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("put", "canPutRange", "put", "opOpAssign", "clear", "shrinkTo", "toString")' * TemplateInstance::codegen: 'std.typetuple.Alias!"canPutRange"' * TemplateInstance::codegen: 'std.typetuple.isSame!("put", "canPutRange")' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("put", "put", "opOpAssign", "clear", "shrinkTo", "toString")' * TemplateInstance::codegen: 'std.typetuple.isSame!("put", "put")' * * VarDeclaration::codegen(): 'std.typetuple.isSame!("put", "put").isSame' * * * DtoResolveVariable(std.typetuple.isSame!("put", "put").isSame) * TemplateInstance::codegen: 'std.typetuple.expectBool!true' * TemplateInstance::codegen: 'std.traits.Identity!(put)' * TemplateInstance::codegen: 'std.array.Appender!(ubyte[]).Appender.canPutItem!ubyte' * TemplateInstance::codegen: 'std.traits.isImplicitlyConvertible!(ubyte, ubyte)' * TemplateInstance::codegen: 'std.traits.isSomeChar!ubyte' * * VarDeclaration::codegen(): 'std.traits.isSomeChar!ubyte.isSomeChar' * * * DtoResolveVariable(std.traits.isSomeChar!ubyte.isSomeChar) * TemplateInstance::codegen: 'std.traits.isAggregateType!ubyte' * * VarDeclaration::codegen(): 'std.traits.isAggregateType!ubyte.isAggregateType' * * * DtoResolveVariable(std.traits.isAggregateType!ubyte.isAggregateType) * TemplateInstance::codegen: 'std.traits.OriginalType!ubyte' * TemplateInstance::codegen: 'std.traits.ModifyTypePreservingSTC!(Impl, ubyte)' * TemplateInstance::codegen: 'std.traits.OriginalType!ubyte.Modifier!ubyte' * TemplateInstance::codegen: 'std.typetuple.staticIndexOf!(ubyte, char, wchar, dchar)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(ubyte, char, wchar, dchar)' * TemplateInstance::codegen: 'std.typetuple.Alias!ubyte' * * Ignoring Dsymbol::codegen for std.typetuple.Alias!ubyte.Alias * TemplateInstance::codegen: 'std.typetuple.Alias!char' * * Ignoring Dsymbol::codegen for std.typetuple.Alias!char.Alias * TemplateInstance::codegen: 'std.typetuple.isSame!(ubyte, char)' * TemplateInstance::codegen: 'std.typetuple.expectType!ubyte' * TemplateInstance::codegen: 'std.typetuple.expectType!char' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(ubyte, wchar, dchar)' * TemplateInstance::codegen: 'std.typetuple.Alias!wchar' * TemplateInstance::codegen: 'std.typetuple.isSame!(ubyte, wchar)' * TemplateInstance::codegen: 'std.typetuple.expectType!wchar' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(ubyte, dchar)' * TemplateInstance::codegen: 'std.typetuple.Alias!dchar' * TemplateInstance::codegen: 'std.typetuple.isSame!(ubyte, dchar)' * TemplateInstance::codegen: 'std.typetuple.expectType!dchar' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!ubyte' * TemplateInstance::codegen: 'std.array.Appender!(ubyte[]).Appender.canPutConstRange!ubyte' * TemplateInstance::codegen: 'std.range.primitives.isInputRange!ubyte' * TemplateInstance::codegen: 'std.array.Appender!(ubyte[]).Appender.canPutRange!ubyte' * TemplateInstance::codegen: 'std.array.Appender!(ubyte[]).Appender.put!ubyte' * * DtoDefineFunction(std.array.Appender!(ubyte[]).Appender.put!ubyte.put): /usr/include/dlang/ldc/std/array.d(2770) * * * isMember = this is: Appender!(ubyte[]) * * * DtoFunctionType(pure nothrow @safe void(ubyte item)) * * * * x86-64 ABI: Transforming argument types * * * * Final function type: void (%"std.array.Appender!(ubyte[]).Appender"*, i8) * * * DtoResolveFunction(std.array.Appender!(ubyte[]).Appender.put!ubyte.put): /usr/include/dlang/ldc/std/array.d(2770) * * * * DtoDeclareFunction(std.array.Appender!(ubyte[]).Appender.put!ubyte.put): /usr/include/dlang/ldc/std/array.d(2770) * * * * * isMember = this is: Appender!(ubyte[]) * * * * * DtoFunctionType(pure nothrow @safe void(ubyte item)) * * * * * func = declare void @_D3std5array16__T8AppenderTAhZ8Appender10__T3putThZ3putMFNaNbNfhZv(%"std.array.Appender!(ubyte[]).Appender"*, i8) * * * Doing function body for: put * * * DtoCreateNestedContext for put * * * * DtoCreateNestedContextType for std.array.Appender!(ubyte[]).Appender.put!ubyte.put * * * * * has nested frame * * * * * Function put has depth 0 * * * * * Nested var 'this' of type %"std.array.Appender!(ubyte[]).Appender"* * * * * * Nested var 'len' of type i64 * * * * * frameType = %nest.put = type { %"std.array.Appender!(ubyte[]).Appender"*, i64 } * * * * nested param: this * * * * nested var: len * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2771) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2787) * * * * * * CallExp::toElem: this.ensureAddable(1LU) @ void * * * * * * * DotVarExp::toElem: this.ensureAddable @ pure nothrow @trusted void(ulong nelems) * * * * * * * * ThisExp::toElem: this @ Appender!(ubyte[]) * * * * * * * * * normal this exp * * * * * * * DtoCallFunction() * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (1) * * * * * * * * * %"std.array.Appender!(ubyte[]).Appender"* %.this_arg * * * * * * * * Function type: pure nothrow @trusted void(ulong nelems) * * * * * * * * DtoArgument * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * value = i64 1 * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2788) * * * * * * DeclarationExp::toElem: immutable immutable(ulong) len = (*this._data).arr.length; | T=void * * * * * * * DtoDeclarationExp: len * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = immutable(ulong)) * * * * * * * * * has nestedref set (referenced by nested function/delegate) * * * * * * * * * llvm value for decl: %len = getelementptr %nest.put, %nest.put* %.frame, i32 0, i32 1 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: len = (*this._data).arr.length | (immutable(ulong))(immutable(ulong) = immutable(ulong)) * * * * * * * * * * VarExp::toElem: len @ immutable(ulong) * * * * * * * * * * * DtoSymbolAddress ('len' of type 'immutable(ulong)') * * * * * * * * * * * * nested variable * * * * * * * * * * * * DtoNestedVariable for len @ /usr/include/dlang/ldc/std/array.d(2788) * * * * * * * * * * ArrayLengthExp::toElem: (*this._data).arr.length @ immutable(ulong) * * * * * * * * * * * DotVarExp::toElem: (*this._data).arr @ ubyte[] * * * * * * * * * * * * PtrExp::toElem: *this._data @ Data * * * * * * * * * * * * * DotVarExp::toElem: this._data @ Data* * * * * * * * * * * * * * * ThisExp::toElem: this @ Appender!(ubyte[]) * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * Indexing aggregate field std.array.Appender!(ubyte[]).Appender._data: * * * * * * * * * * * * * * * Value: %1 = getelementptr %"std.array.Appender!(ubyte[]).Appender", %"std.array.Appender!(ubyte[]).Appender"* %.this_arg, i32 0, i32 0 * * * * * * * * * * * * Indexing aggregate field std.array.Appender!(ubyte[]).Appender.Data.arr: * * * * * * * * * * * * * Value: %3 = getelementptr %"std.array.Appender!(ubyte[]).Appender.Data", %"std.array.Appender!(ubyte[]).Appender.Data"* %2, i32 0, i32 1 * * * * * * * * * * * DtoArrayLen * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %len = getelementptr %nest.put, %nest.put* %.frame, i32 0, i32 1 * * * * * * * * * * * rhs: %.len = load i64, i64* %4 * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2790) * * * * * * DeclarationExp::toElem: ubyte[] bigData = delegate () => (cast(ubyte*)(*this._data).arr)[0..len + 1LU](); | T=void * * * * * * * DtoDeclarationExp: bigData * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = ubyte[]) * * * * * * * * * llvm value for decl: %bigData = alloca { i64, i8* }, align 8 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: bigData = delegate () => (cast(ubyte*)(*this._data).arr)[0..len + 1LU]() | (ubyte[])(ubyte[] = ubyte[]) * * * * * * * * * * VarExp::toElem: bigData @ ubyte[] * * * * * * * * * * * DtoSymbolAddress ('bigData' of type 'ubyte[]') * * * * * * * * * * * * a normal variable * * * * * * * * * * CallExp::toElem: delegate () => (cast(ubyte*)(*this._data).arr)[0..len + 1LU]() @ ubyte[] * * * * * * * * * * * FuncExp::toElem: __lambda2 @ ubyte[] delegate() pure nothrow @nogc @trusted * * * * * * * * * * * * nested * * * * * * * * * * * * kind = delegate * * * * * * * * * * * * DtoDefineFunction(std.array.Appender!(ubyte[]).Appender.put!ubyte.put.__lambda2): /usr/include/dlang/ldc/std/array.d(2790) * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted ubyte[]()) * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * Final function type: { i64, i8* } (i8*) * * * * * * * * * * * * * DtoResolveFunction(std.array.Appender!(ubyte[]).Appender.put!ubyte.put.__lambda2): /usr/include/dlang/ldc/std/array.d(2790) * * * * * * * * * * * * * * DtoDeclareFunction(std.array.Appender!(ubyte[]).Appender.put!ubyte.put.__lambda2): /usr/include/dlang/ldc/std/array.d(2790) * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted ubyte[]()) * * * * * * * * * * * * * * * func = declare { i64, i8* } @_D3std5array16__T8AppenderTAhZ8Appender10__T3putThZ3putMFhZ9__lambda2MFNaNbNiNeZAh(i8*) * * * * * * * * * * * * * Doing function body for: __lambda2 * * * * * * * * * * * * * DtoCreateNestedContext for __lambda2 * * * * * * * * * * * * * * DtoCreateNestedContextType for std.array.Appender!(ubyte[]).Appender.put!ubyte.put.__lambda2 * * * * * * * * * * * * * * * DtoCreateNestedContextType for std.array.Appender!(ubyte[]).Appender.put!ubyte.put * * * * * * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2790) * * * * * * * * * * * * * * * SliceExp::toElem: (cast(ubyte*)(*this._data).arr)[0..len + 1LU] @ ubyte[] * * * * * * * * * * * * * * * * CastExp::toElem: cast(ubyte*)(*this._data).arr @ ubyte* * * * * * * * * * * * * * * * * * DotVarExp::toElem: (*this._data).arr @ ubyte[] * * * * * * * * * * * * * * * * * * PtrExp::toElem: *this._data @ Data * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: this._data @ Data* * * * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Appender!(ubyte[]) * * * * * * * * * * * * * * * * * * * * * nested this exp * * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for this @ /usr/include/dlang/ldc/std/array.d(2790) * * * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for std.array.Appender!(ubyte[]).Appender.put!ubyte.put * * * * * * * * * * * * * * * * * * * * * * Context: %2 = bitcast i8* %1 to %nest.put* * * * * * * * * * * * * * * * * * * * * * * of type: %nest.put = type { %"std.array.Appender!(ubyte[]).Appender"*, i64 } * * * * * * * * * * * * * * * * * * * * * * Variable: this * * * * * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * * * * * Function: __lambda2 * * * * * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * * * * * Addr: %this = getelementptr %nest.put, %nest.put* %2, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * * * * of type: %"std.array.Appender!(ubyte[]).Appender"** * * * * * * * * * * * * * * * * * * * * * * Was byref, now: %3 = load %"std.array.Appender!(ubyte[]).Appender"*, %"std.array.Appender!(ubyte[]).Appender"** %this, align 8 * * * * * * * * * * * * * * * * * * * * * * of type: %"std.array.Appender!(ubyte[]).Appender"* * * * * * * * * * * * * * * * * * * * * Indexing aggregate field std.array.Appender!(ubyte[]).Appender._data: * * * * * * * * * * * * * * * * * * * * * Value: %4 = getelementptr %"std.array.Appender!(ubyte[]).Appender", %"std.array.Appender!(ubyte[]).Appender"* %3, i32 0, i32 0 * * * * * * * * * * * * * * * * * * Indexing aggregate field std.array.Appender!(ubyte[]).Appender.Data.arr: * * * * * * * * * * * * * * * * * * * Value: %6 = getelementptr %"std.array.Appender!(ubyte[]).Appender.Data", %"std.array.Appender!(ubyte[]).Appender.Data"* %5, i32 0, i32 1 * * * * * * * * * * * * * * * * * Casting from 'ubyte[]' to 'ubyte*' * * * * * * * * * * * * * * * * * * DtoCastArray * * * * * * * * * * * * * * * * * * * from array or sarray * * * * * * * * * * * * * * * * * * * to pointer * * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * * * * AddExp::toElem: len + 1LU @ ulong * * * * * * * * * * * * * * * * * VarExp::toElem: len @ ulong * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('len' of type 'immutable(ulong)') * * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * * DtoNestedVariable for len @ /usr/include/dlang/ldc/std/array.d(2790) * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for std.array.Appender!(ubyte[]).Appender.put!ubyte.put * * * * * * * * * * * * * * * * * * * * Context: %9 = bitcast i8* %8 to %nest.put* * * * * * * * * * * * * * * * * * * * * of type: %nest.put = type { %"std.array.Appender!(ubyte[]).Appender"*, i64 } * * * * * * * * * * * * * * * * * * * * Variable: len * * * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * * * Function: __lambda2 * * * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * * * Addr: %len = getelementptr %nest.put, %nest.put* %9, i32 0, i32 1 * * * * * * * * * * * * * * * * * * * * of type: i64* * * * * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * * * return value is '0x1220ccb0' * * * * * * * * * * * * Building type: ubyte[] delegate() pure nothrow @nogc @trusted * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted ubyte[]()) * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * Final function type: { i64, i8* } (i8*) * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * %.ptr = extractvalue { i8*, { i64, i8* } (i8*)* } %.func, 0 * * * * * * * * * * * * Function type: pure nothrow @nogc @trusted ubyte[]() * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * SetArray * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2791) * * * * * * CallExp::toElem: emplaceRef(bigData[len], item) @ ubyte * * * * * * * VarExp::toElem: emplaceRef @ pure nothrow @nogc ref @safe ubyte(ref ubyte chunk, auto ref ubyte _param_1) * * * * * * * * DtoSymbolAddress ('emplaceRef' of type 'pure nothrow @nogc ref @safe ubyte(ref ubyte chunk, auto ref ubyte _param_1)') * * * * * * * * * FuncDeclaration * * * * * * * * * DtoFunctionType(pure nothrow @nogc ref @safe ubyte(ref ubyte chunk, auto ref ubyte _param_1)) * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: i8* (i8*, i8*) * * * * * * * * * DtoResolveFunction(std.conv.emplaceRef!(ubyte, ubyte).emplaceRef): /usr/include/dlang/ldc/std/conv.d(3929) * * * * * * * * * * DtoDeclareFunction(std.conv.emplaceRef!(ubyte, ubyte).emplaceRef): /usr/include/dlang/ldc/std/conv.d(3929) * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc ref @safe ubyte(ref ubyte chunk, auto ref ubyte _param_1)) * * * * * * * * * * * func = declare i8* @_D3std4conv20__T10emplaceRefThThZ10emplaceRefFNaNbNcNiNfKhKhZh(i8*, i8*) * * * * * * * DtoCallFunction() * * * * * * * * Building type: pure nothrow @nogc ref @safe ubyte(ref ubyte chunk, auto ref ubyte _param_1) * * * * * * * * * DtoFunctionType(pure nothrow @nogc ref @safe ubyte(ref ubyte chunk, auto ref ubyte _param_1)) * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: i8* (i8*, i8*) * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (0) * * * * * * * * Function type: pure nothrow @nogc ref @safe ubyte(ref ubyte chunk, auto ref ubyte _param_1) * * * * * * * * DtoArgument * * * * * * * * * IndexExp::toElem: bigData[len] @ ubyte * * * * * * * * * * VarExp::toElem: bigData @ ubyte[] * * * * * * * * * * * DtoSymbolAddress ('bigData' of type 'ubyte[]') * * * * * * * * * * * * a normal variable * * * * * * * * * * VarExp::toElem: len @ ulong * * * * * * * * * * * DtoSymbolAddress ('len' of type 'immutable(ulong)') * * * * * * * * * * * * nested variable * * * * * * * * * * * * DtoNestedVariable for len @ /usr/include/dlang/ldc/std/array.d(2791) * * * * * * * * * * DtoArrayLen * * * * * * * * * * DtoArrayPtr * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: item @ ubyte * * * * * * * * * * DtoSymbolAddress ('item' of type 'ubyte') * * * * * * * * * * * function param * * * * * * * * * * * type: ubyte * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2793) * * * * * * AssignExp::toElem: (*this._data).arr = bigData | (ubyte[])(ubyte[] = ubyte[]) * * * * * * * DotVarExp::toElem: (*this._data).arr @ ubyte[] * * * * * * * * PtrExp::toElem: *this._data @ Data * * * * * * * * * DotVarExp::toElem: this._data @ Data* * * * * * * * * * * ThisExp::toElem: this @ Appender!(ubyte[]) * * * * * * * * * * * normal this exp * * * * * * * * * * Indexing aggregate field std.array.Appender!(ubyte[]).Appender._data: * * * * * * * * * * * Value: %16 = getelementptr %"std.array.Appender!(ubyte[]).Appender", %"std.array.Appender!(ubyte[]).Appender"* %.this_arg, i32 0, i32 0 * * * * * * * * Indexing aggregate field std.array.Appender!(ubyte[]).Appender.Data.arr: * * * * * * * * * Value: %18 = getelementptr %"std.array.Appender!(ubyte[]).Appender.Data", %"std.array.Appender!(ubyte[]).Appender.Data"* %17, i32 0, i32 1 * * * * * * * VarExp::toElem: bigData @ ubyte[] * * * * * * * * DtoSymbolAddress ('bigData' of type 'ubyte[]') * * * * * * * * * a normal variable * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * DtoAssign() * * * * * * * * DtoArrayAssign * * * * * * * * * DtoArrayPtr * * * * * * * * * DtoArrayLen * * * * * * * * * SetArray * TemplateInstance::codegen: 'std.array.appenderNewCapacity!1LU' * * DtoDefineFunction(std.array.appenderNewCapacity!1LU.appenderNewCapacity): /usr/include/dlang/ldc/std/array.d(2969) * * * Doing function body for: appenderNewCapacity * * * DtoCreateNestedContext for appenderNewCapacity * * * * DtoCreateNestedContextType for std.array.appenderNewCapacity!1LU.appenderNewCapacity * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2970) * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2973) * * * * * * EqualExp::toElem: curLen == 0LU @ bool * * * * * * * VarExp::toElem: curLen @ ulong * * * * * * * * DtoSymbolAddress ('curLen' of type 'ulong') * * * * * * * * * function param * * * * * * * * * type: ulong * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * value = i64 0 * * * * * * * integral or pointer or interface * * * * * * * lv: %1 = load i64, i64* %curLen * * * * * * * rv: i64 0 * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2974) * * * * * * * CallExp::toElem: max(reqLen, 8) @ ulong * * * * * * * * VarExp::toElem: max @ pure nothrow @nogc @safe ulong(ulong _param_0, int _param_1) * * * * * * * * * DtoSymbolAddress ('max' of type 'pure nothrow @nogc @safe ulong(ulong _param_0, int _param_1)') * * * * * * * * * * FuncDeclaration * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe ulong(ulong _param_0, int _param_1)) * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * Final function type: i64 (i32, i64) * * * * * * * * * * DtoResolveFunction(std.algorithm.comparison.max!(ulong, int).max): /usr/include/dlang/ldc/std/algorithm/comparison.d(1190) * * * * * * * * * * * DtoDeclareFunction(std.algorithm.comparison.max!(ulong, int).max): /usr/include/dlang/ldc/std/algorithm/comparison.d(1190) * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe ulong(ulong _param_0, int _param_1)) * * * * * * * * * * * * func = declare i64 @_D3std9algorithm10comparison12__T3maxTmTiZ3maxFNaNbNiNfmiZm(i32, i64) * * * * * * * * DtoCallFunction() * * * * * * * * * Building type: pure nothrow @nogc @safe ulong(ulong _param_0, int _param_1) * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe ulong(ulong _param_0, int _param_1)) * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * Final function type: i64 (i32, i64) * * * * * * * * * doing normal arguments * * * * * * * * * Arguments so far: (0) * * * * * * * * * Function type: pure nothrow @nogc @safe ulong(ulong _param_0, int _param_1) * * * * * * * * * DtoArgument * * * * * * * * * * VarExp::toElem: reqLen @ ulong * * * * * * * * * * * DtoSymbolAddress ('reqLen' of type 'ulong') * * * * * * * * * * * * function param * * * * * * * * * * * * type: ulong * * * * * * * * * DtoArgument * * * * * * * * * * IntegerExp::toElem: 8 @ int * * * * * * * * * * * IntegerExp::toConstElem: 8 @ int * * * * * * * * * * * * value = i32 8 * * * * * * * return value is '0x12213eb8' * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2975) * * * * * * DeclarationExp::toElem: ulong mult = 100LU + 1000LU / cast(ulong)(bsr(curLen * 1LU) + 1); | T=void * * * * * * * DtoDeclarationExp: mult * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * llvm value for decl: %mult = alloca i64, align 8 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: mult = 100LU + 1000LU / cast(ulong)(bsr(curLen * 1LU) + 1) | (ulong)(ulong = ulong) * * * * * * * * * * VarExp::toElem: mult @ ulong * * * * * * * * * * * DtoSymbolAddress ('mult' of type 'ulong') * * * * * * * * * * * * a normal variable * * * * * * * * * * AddExp::toElem: 100LU + 1000LU / cast(ulong)(bsr(curLen * 1LU) + 1) @ ulong * * * * * * * * * * * IntegerExp::toElem: 100LU @ ulong * * * * * * * * * * * * IntegerExp::toConstElem: 100LU @ ulong * * * * * * * * * * * * * value = i64 100 * * * * * * * * * * * DivExp::toElem: 1000LU / cast(ulong)(bsr(curLen * 1LU) + 1) @ ulong * * * * * * * * * * * * IntegerExp::toElem: 1000LU @ ulong * * * * * * * * * * * * * IntegerExp::toConstElem: 1000LU @ ulong * * * * * * * * * * * * * * value = i64 1000 * * * * * * * * * * * * CastExp::toElem: cast(ulong)(bsr(curLen * 1LU) + 1) @ ulong * * * * * * * * * * * * * AddExp::toElem: bsr(curLen * 1LU) + 1 @ int * * * * * * * * * * * * * * CallExp::toElem: bsr(curLen * 1LU) @ int * * * * * * * * * * * * * * * VarExp::toElem: bsr @ pure nothrow @nogc @safe int(ulong v) * * * * * * * * * * * * * * * * DtoSymbolAddress ('bsr' of type 'pure nothrow @nogc @safe int(ulong v)') * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe int(ulong v)) * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * Final function type: i32 (i64) * * * * * * * * * * * * * * * * * DtoResolveFunction(core.bitop.bsr): /usr/include/dlang/ldc/core/bitop.d(90) * * * * * * * * * * * * * * * * * * DtoDeclareFunction(core.bitop.bsr): /usr/include/dlang/ldc/core/bitop.d(90) * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe int(ulong v)) * * * * * * * * * * * * * * * * * * * func = declare i32 @_D4core5bitop3bsrFNaNbNiNfmZi(i64) * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * Building type: pure nothrow @nogc @safe int(ulong v) * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe int(ulong v)) * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * Final function type: i32 (i64) * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @safe int(ulong v) * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * MulExp::toElem: curLen * 1LU @ ulong * * * * * * * * * * * * * * * * * * VarExp::toElem: curLen @ ulong * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('curLen' of type 'ulong') * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * type: ulong * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * * IntegerExp::toElem: 1 @ int * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1 @ int * * * * * * * * * * * * * * * * value = i32 1 * * * * * * * * * * * * * Casting from 'int' to 'ulong' * * * * * * * * * * * * * * cast to: i64 * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %mult = alloca i64, align 8 * * * * * * * * * * * rhs: %11 = add i64 100, %10 * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2977) * * * * * * CmpExp::toElem: mult > 200LU @ bool * * * * * * * VarExp::toElem: mult @ ulong * * * * * * * * DtoSymbolAddress ('mult' of type 'ulong') * * * * * * * * * a normal variable * * * * * * * IntegerExp::toElem: 200LU @ ulong * * * * * * * * IntegerExp::toConstElem: 200LU @ ulong * * * * * * * * * value = i64 200 * * * * * * * type 1: %12 = load i64, i64* %mult * * * * * * * type 2: i64 200 * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2978) * * * * * * * AssignExp::toElem: mult = 200LU | (ulong)(ulong = ulong) * * * * * * * * VarExp::toElem: mult @ ulong * * * * * * * * * DtoSymbolAddress ('mult' of type 'ulong') * * * * * * * * * * a normal variable * * * * * * * * IntegerExp::toElem: 200LU @ ulong * * * * * * * * * IntegerExp::toConstElem: 200LU @ ulong * * * * * * * * * * value = i64 200 * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * DtoAssign() * * * * * * * * * lhs: %mult = alloca i64, align 8 * * * * * * * * * rhs: i64 200 * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2979) * * * * * * DeclarationExp::toElem: ulong sugLen = (curLen * mult + 99LU) / 100LU; | T=void * * * * * * * DtoDeclarationExp: sugLen * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * llvm value for decl: %sugLen = alloca i64, align 8 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: sugLen = (curLen * mult + 99LU) / 100LU | (ulong)(ulong = ulong) * * * * * * * * * * VarExp::toElem: sugLen @ ulong * * * * * * * * * * * DtoSymbolAddress ('sugLen' of type 'ulong') * * * * * * * * * * * * a normal variable * * * * * * * * * * DivExp::toElem: (curLen * mult + 99LU) / 100LU @ ulong * * * * * * * * * * * AddExp::toElem: curLen * mult + 99LU @ ulong * * * * * * * * * * * * MulExp::toElem: curLen * mult @ ulong * * * * * * * * * * * * * VarExp::toElem: curLen @ ulong * * * * * * * * * * * * * * DtoSymbolAddress ('curLen' of type 'ulong') * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * type: ulong * * * * * * * * * * * * * VarExp::toElem: mult @ ulong * * * * * * * * * * * * * * DtoSymbolAddress ('mult' of type 'ulong') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * IntegerExp::toElem: 99LU @ ulong * * * * * * * * * * * * * IntegerExp::toConstElem: 99LU @ ulong * * * * * * * * * * * * * * value = i64 99 * * * * * * * * * * * IntegerExp::toElem: 100LU @ ulong * * * * * * * * * * * * IntegerExp::toConstElem: 100LU @ ulong * * * * * * * * * * * * * value = i64 100 * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %sugLen = alloca i64, align 8 * * * * * * * * * * * rhs: %18 = udiv i64 %17, 100 * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2980) * * * * * * CallExp::toElem: max(reqLen, sugLen) @ ulong * * * * * * * VarExp::toElem: max @ pure nothrow @nogc @safe ulong(ulong _param_0, ulong _param_1) * * * * * * * * DtoSymbolAddress ('max' of type 'pure nothrow @nogc @safe ulong(ulong _param_0, ulong _param_1)') * * * * * * * * * FuncDeclaration * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe ulong(ulong _param_0, ulong _param_1)) * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: i64 (i64, i64) * * * * * * * * * DtoResolveFunction(std.algorithm.comparison.max!(ulong, ulong).max): /usr/include/dlang/ldc/std/algorithm/comparison.d(1190) * * * * * * * * * * DtoDeclareFunction(std.algorithm.comparison.max!(ulong, ulong).max): /usr/include/dlang/ldc/std/algorithm/comparison.d(1190) * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe ulong(ulong _param_0, ulong _param_1)) * * * * * * * * * * * func = declare i64 @_D3std9algorithm10comparison12__T3maxTmTmZ3maxFNaNbNiNfmmZm(i64, i64) * * * * * * * DtoCallFunction() * * * * * * * * Building type: pure nothrow @nogc @safe ulong(ulong _param_0, ulong _param_1) * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe ulong(ulong _param_0, ulong _param_1)) * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: i64 (i64, i64) * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (0) * * * * * * * * Function type: pure nothrow @nogc @safe ulong(ulong _param_0, ulong _param_1) * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: reqLen @ ulong * * * * * * * * * * DtoSymbolAddress ('reqLen' of type 'ulong') * * * * * * * * * * * function param * * * * * * * * * * * type: ulong * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: sugLen @ ulong * * * * * * * * * * DtoSymbolAddress ('sugLen' of type 'ulong') * * * * * * * * * * * a normal variable * * * * * * return value is '0x1221b258' * TemplateInstance::codegen: 'std.algorithm.comparison.max!(ulong, int)' * * DtoDefineFunction(std.algorithm.comparison.max!(ulong, int).max): /usr/include/dlang/ldc/std/algorithm/comparison.d(1190) * * * Doing function body for: max * * * DtoCreateNestedContext for max * * * * DtoCreateNestedContextType for std.algorithm.comparison.max!(ulong, int).max * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/comparison.d(1192) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/comparison.d(1195) * * * * * * DeclarationExp::toElem: alias a = ulong _param_0; ; | T=void * * * * * * * DtoDeclarationExp: a * * * * * * * * Ignoring Symbol: alias * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/comparison.d(1198) * * * * * * DeclarationExp::toElem: alias T0 = ulong; | T=void * * * * * * * DtoDeclarationExp: T0 * * * * * * * * Ignoring Symbol: alias * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/comparison.d(1202) * * * * * * DeclarationExp::toElem: alias b = int _param_1; ; | T=void * * * * * * * DtoDeclarationExp: b * * * * * * * * Ignoring Symbol: alias * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/comparison.d(1205) * * * * * * DeclarationExp::toElem: alias T1 = int; | T=void * * * * * * * DtoDeclarationExp: T1 * * * * * * * * Ignoring Symbol: alias * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/comparison.d(1213) * * * * * * DeclarationExp::toElem: immutable immutable(bool) chooseB = safeOp(_param_0, _param_1); | T=void * * * * * * * DtoDeclarationExp: chooseB * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = immutable(bool)) * * * * * * * * * llvm value for decl: %chooseB = alloca i8, align 1 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: chooseB = safeOp(_param_0, _param_1) | (immutable(bool))(immutable(bool) = immutable(bool)) * * * * * * * * * * VarExp::toElem: chooseB @ immutable(bool) * * * * * * * * * * * DtoSymbolAddress ('chooseB' of type 'immutable(bool)') * * * * * * * * * * * * a normal variable * * * * * * * * * * CallExp::toElem: safeOp(_param_0, _param_1) @ immutable(bool) * * * * * * * * * * * VarExp::toElem: safeOp @ pure nothrow @nogc @safe bool(auto ref ulong a, auto ref int b) * * * * * * * * * * * * DtoSymbolAddress ('safeOp' of type 'pure nothrow @nogc @safe bool(auto ref ulong a, auto ref int b)') * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe bool(auto ref ulong a, auto ref int b)) * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * Final function type: i1 (i32*, i64*) * * * * * * * * * * * * * DtoResolveFunction(std.functional.safeOp!"<".safeOp!(ulong, int).safeOp): /usr/include/dlang/ldc/std/functional.d(397) * * * * * * * * * * * * * * DtoDeclareFunction(std.functional.safeOp!"<".safeOp!(ulong, int).safeOp): /usr/include/dlang/ldc/std/functional.d(397) * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe bool(auto ref ulong a, auto ref int b)) * * * * * * * * * * * * * * * func = declare i1 @_D3std10functional20__T6safeOpVAyaa1_3cZ15__T6safeOpTmTiZ6safeOpFNaNbNiNfKmKiZb(i32*, i64*) * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * Building type: pure nothrow @nogc @safe bool(auto ref ulong a, auto ref int b) * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe bool(auto ref ulong a, auto ref int b)) * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * Final function type: i1 (i32*, i64*) * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * Function type: pure nothrow @nogc @safe bool(auto ref ulong a, auto ref int b) * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * VarExp::toElem: _param_0 @ ulong * * * * * * * * * * * * * * DtoSymbolAddress ('_param_0' of type 'ulong') * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * type: ulong * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * VarExp::toElem: _param_1 @ int * * * * * * * * * * * * * * DtoSymbolAddress ('_param_1' of type 'int') * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * type: int * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/comparison.d(1214) * * * * * * CondExp::toElem: chooseB ? cast(ulong)_param_1 : _param_0 @ ulong * * * * * * * VarExp::toElem: chooseB @ immutable(bool) * * * * * * * * DtoSymbolAddress ('chooseB' of type 'immutable(bool)') * * * * * * * * * a normal variable * * * * * * * Casting from 'immutable(bool)' to 'bool' * * * * * * * CastExp::toElem: cast(ulong)_param_1 @ ulong * * * * * * * * VarExp::toElem: _param_1 @ int * * * * * * * * * DtoSymbolAddress ('_param_1' of type 'int') * * * * * * * * * * function param * * * * * * * * * * type: int * * * * * * * * Casting from 'int' to 'ulong' * * * * * * * * * cast to: i64 * * * * * * * VarExp::toElem: _param_0 @ ulong * * * * * * * * DtoSymbolAddress ('_param_0' of type 'ulong') * * * * * * * * * function param * * * * * * * * * type: ulong * * * * * * return value is '0x1221f028' * TemplateInstance::codegen: 'std.algorithm.comparison.MaxType!(ulong, int)' * * Ignoring Dsymbol::codegen for std.algorithm.comparison.MaxType!(ulong, int).MaxType * TemplateInstance::codegen: 'std.functional.safeOp!"<".safeOp!(ulong, int)' * * DtoDefineFunction(std.functional.safeOp!"<".safeOp!(ulong, int).safeOp): /usr/include/dlang/ldc/std/functional.d(397) * * * Doing function body for: safeOp * * * DtoCreateNestedContext for safeOp * * * * DtoCreateNestedContextType for std.functional.safeOp!"<".safeOp!(ulong, int).safeOp * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/functional.d(398) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/functional.d(407) * * * * * * DeclarationExp::toElem: immutable immutable(bool) result = b >= 0 && unsafeOp(a, b); | T=void * * * * * * * DtoDeclarationExp: result * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = immutable(bool)) * * * * * * * * * llvm value for decl: %result = alloca i8, align 1 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: result = b >= 0 && unsafeOp(a, b) | (immutable(bool))(immutable(bool) = immutable(bool)) * * * * * * * * * * VarExp::toElem: result @ immutable(bool) * * * * * * * * * * * DtoSymbolAddress ('result' of type 'immutable(bool)') * * * * * * * * * * * * a normal variable * * * * * * * * * * AndAndExp::toElem: b >= 0 && unsafeOp(a, b) @ immutable(bool) * * * * * * * * * * * CmpExp::toElem: b >= 0 @ bool * * * * * * * * * * * * VarExp::toElem: b @ int * * * * * * * * * * * * * DtoSymbolAddress ('b' of type 'int') * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * type: int * * * * * * * * * * * * IntegerExp::toElem: 0 @ int * * * * * * * * * * * * * IntegerExp::toConstElem: 0 @ int * * * * * * * * * * * * * * value = i32 0 * * * * * * * * * * * * type 1: %1 = load i32, i32* %b_arg * * * * * * * * * * * * type 2: i32 0 * * * * * * * * * * * CallExp::toElem: unsafeOp(a, b) @ bool * * * * * * * * * * * * VarExp::toElem: unsafeOp @ pure nothrow @nogc @safe bool(ulong a, int b) * * * * * * * * * * * * * DtoSymbolAddress ('unsafeOp' of type 'pure nothrow @nogc @safe bool(ulong a, int b)') * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe bool(ulong a, int b)) * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * Final function type: i1 (i32, i64) * * * * * * * * * * * * * * DtoResolveFunction(std.functional.safeOp!"<".unsafeOp!(ulong, int).unsafeOp): /usr/include/dlang/ldc/std/functional.d(390) * * * * * * * * * * * * * * * DtoDeclareFunction(std.functional.safeOp!"<".unsafeOp!(ulong, int).unsafeOp): /usr/include/dlang/ldc/std/functional.d(390) * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe bool(ulong a, int b)) * * * * * * * * * * * * * * * * func = declare i1 @_D3std10functional20__T6safeOpVAyaa1_3cZ17__T8unsafeOpTmTiZ8unsafeOpFNaNbNiNfmiZb(i32, i64) * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * Building type: pure nothrow @nogc @safe bool(ulong a, int b) * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe bool(ulong a, int b)) * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * Final function type: i1 (i32, i64) * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * Function type: pure nothrow @nogc @safe bool(ulong a, int b) * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * VarExp::toElem: a @ ulong * * * * * * * * * * * * * * * DtoSymbolAddress ('a' of type 'ulong') * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * type: ulong * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * VarExp::toElem: b @ int * * * * * * * * * * * * * * * DtoSymbolAddress ('b' of type 'int') * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * type: int * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/functional.d(424) * * * * * * VarExp::toElem: result @ bool * * * * * * * DtoSymbolAddress ('result' of type 'immutable(bool)') * * * * * * * * a normal variable * * * * * * return value is '0x12222c58' * TemplateInstance::codegen: 'std.traits.isIntegral!ulong' * * VarDeclaration::codegen(): 'std.traits.isIntegral!ulong.isIntegral' * * * DtoResolveVariable(std.traits.isIntegral!ulong.isIntegral) * TemplateInstance::codegen: 'std.traits.IntegralTypeOf!ulong' * * Ignoring Dsymbol::codegen for std.traits.IntegralTypeOf!ulong.X * * Ignoring Dsymbol::codegen for std.traits.IntegralTypeOf!ulong.IntegralTypeOf * TemplateInstance::codegen: 'std.traits.isAggregateType!ulong' * * VarDeclaration::codegen(): 'std.traits.isAggregateType!ulong.isAggregateType' * * * DtoResolveVariable(std.traits.isAggregateType!ulong.isAggregateType) * TemplateInstance::codegen: 'std.traits.OriginalType!ulong' * * Ignoring Dsymbol::codegen for std.traits.OriginalType!ulong.Impl(T) * * Ignoring Dsymbol::codegen for std.traits.OriginalType!ulong.OriginalType * TemplateInstance::codegen: 'std.traits.ModifyTypePreservingSTC!(Impl, ulong)' * * Ignoring Dsymbol::codegen for std.traits.ModifyTypePreservingSTC!(Impl, ulong).ModifyTypePreservingSTC * TemplateInstance::codegen: 'std.traits.OriginalType!ulong.Modifier!ulong' * * Ignoring Dsymbol::codegen for std.traits.OriginalType!ulong.Modifier!ulong.Impl * TemplateInstance::codegen: 'std.traits.Unqual!ulong' * * Ignoring Dsymbol::codegen for std.traits.Unqual!ulong.Unqual * TemplateInstance::codegen: 'std.typetuple.staticIndexOf!(ulong, byte, ubyte, short, ushort, int, uint, long, ulong)' * * VarDeclaration::codegen(): 'std.typetuple.staticIndexOf!(ulong, byte, ubyte, short, ushort, int, uint, long, ulong).staticIndexOf' * * * DtoResolveVariable(std.typetuple.staticIndexOf!(ulong, byte, ubyte, short, ushort, int, uint, long, ulong).staticIndexOf) * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(ulong, byte, ubyte, short, ushort, int, uint, long, ulong)' * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!(ulong, byte, ubyte, short, ushort, int, uint, long, ulong).e * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!(ulong, byte, ubyte, short, ushort, int, uint, long, ulong).tuple * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!(ulong, byte, ubyte, short, ushort, int, uint, long, ulong).head * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!(ulong, byte, ubyte, short, ushort, int, uint, long, ulong).tail * * VarDeclaration::codegen(): 'std.typetuple.genericIndexOf!(ulong, byte, ubyte, short, ushort, int, uint, long, ulong).next' * * * DtoResolveVariable(std.typetuple.genericIndexOf!(ulong, byte, ubyte, short, ushort, int, uint, long, ulong).next) * * VarDeclaration::codegen(): 'std.typetuple.genericIndexOf!(ulong, byte, ubyte, short, ushort, int, uint, long, ulong).index' * * * DtoResolveVariable(std.typetuple.genericIndexOf!(ulong, byte, ubyte, short, ushort, int, uint, long, ulong).index) * TemplateInstance::codegen: 'std.typetuple.Alias!ulong' * * Ignoring Dsymbol::codegen for std.typetuple.Alias!ulong.Alias * TemplateInstance::codegen: 'std.typetuple.Alias!byte' * * Ignoring Dsymbol::codegen for std.typetuple.Alias!byte.Alias * TemplateInstance::codegen: 'std.typetuple.isSame!(ulong, byte)' * * VarDeclaration::codegen(): 'std.typetuple.isSame!(ulong, byte).isSame' * * * DtoResolveVariable(std.typetuple.isSame!(ulong, byte).isSame) * TemplateInstance::codegen: 'std.typetuple.expectType!ulong' * TemplateInstance::codegen: 'std.typetuple.expectType!byte' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(ulong, ubyte, short, ushort, int, uint, long, ulong)' * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!(ulong, ubyte, short, ushort, int, uint, long, ulong).e * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!(ulong, ubyte, short, ushort, int, uint, long, ulong).tuple * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!(ulong, ubyte, short, ushort, int, uint, long, ulong).head * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!(ulong, ubyte, short, ushort, int, uint, long, ulong).tail * * VarDeclaration::codegen(): 'std.typetuple.genericIndexOf!(ulong, ubyte, short, ushort, int, uint, long, ulong).next' * * * DtoResolveVariable(std.typetuple.genericIndexOf!(ulong, ubyte, short, ushort, int, uint, long, ulong).next) * * VarDeclaration::codegen(): 'std.typetuple.genericIndexOf!(ulong, ubyte, short, ushort, int, uint, long, ulong).index' * * * DtoResolveVariable(std.typetuple.genericIndexOf!(ulong, ubyte, short, ushort, int, uint, long, ulong).index) * TemplateInstance::codegen: 'std.typetuple.isSame!(ulong, ubyte)' * * VarDeclaration::codegen(): 'std.typetuple.isSame!(ulong, ubyte).isSame' * * * DtoResolveVariable(std.typetuple.isSame!(ulong, ubyte).isSame) * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(ulong, short, ushort, int, uint, long, ulong)' * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!(ulong, short, ushort, int, uint, long, ulong).e * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!(ulong, short, ushort, int, uint, long, ulong).tuple * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!(ulong, short, ushort, int, uint, long, ulong).head * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!(ulong, short, ushort, int, uint, long, ulong).tail * * VarDeclaration::codegen(): 'std.typetuple.genericIndexOf!(ulong, short, ushort, int, uint, long, ulong).next' * * * DtoResolveVariable(std.typetuple.genericIndexOf!(ulong, short, ushort, int, uint, long, ulong).next) * * VarDeclaration::codegen(): 'std.typetuple.genericIndexOf!(ulong, short, ushort, int, uint, long, ulong).index' * * * DtoResolveVariable(std.typetuple.genericIndexOf!(ulong, short, ushort, int, uint, long, ulong).index) * TemplateInstance::codegen: 'std.typetuple.Alias!short' * * Ignoring Dsymbol::codegen for std.typetuple.Alias!short.Alias * TemplateInstance::codegen: 'std.typetuple.isSame!(ulong, short)' * * VarDeclaration::codegen(): 'std.typetuple.isSame!(ulong, short).isSame' * * * DtoResolveVariable(std.typetuple.isSame!(ulong, short).isSame) * TemplateInstance::codegen: 'std.typetuple.expectType!short' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(ulong, ushort, int, uint, long, ulong)' * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!(ulong, ushort, int, uint, long, ulong).e * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!(ulong, ushort, int, uint, long, ulong).tuple * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!(ulong, ushort, int, uint, long, ulong).head * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!(ulong, ushort, int, uint, long, ulong).tail * * VarDeclaration::codegen(): 'std.typetuple.genericIndexOf!(ulong, ushort, int, uint, long, ulong).next' * * * DtoResolveVariable(std.typetuple.genericIndexOf!(ulong, ushort, int, uint, long, ulong).next) * * VarDeclaration::codegen(): 'std.typetuple.genericIndexOf!(ulong, ushort, int, uint, long, ulong).index' * * * DtoResolveVariable(std.typetuple.genericIndexOf!(ulong, ushort, int, uint, long, ulong).index) * TemplateInstance::codegen: 'std.typetuple.Alias!ushort' * * Ignoring Dsymbol::codegen for std.typetuple.Alias!ushort.Alias * TemplateInstance::codegen: 'std.typetuple.isSame!(ulong, ushort)' * * VarDeclaration::codegen(): 'std.typetuple.isSame!(ulong, ushort).isSame' * * * DtoResolveVariable(std.typetuple.isSame!(ulong, ushort).isSame) * TemplateInstance::codegen: 'std.typetuple.expectType!ushort' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(ulong, int, uint, long, ulong)' * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!(ulong, int, uint, long, ulong).e * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!(ulong, int, uint, long, ulong).tuple * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!(ulong, int, uint, long, ulong).head * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!(ulong, int, uint, long, ulong).tail * * VarDeclaration::codegen(): 'std.typetuple.genericIndexOf!(ulong, int, uint, long, ulong).next' * * * DtoResolveVariable(std.typetuple.genericIndexOf!(ulong, int, uint, long, ulong).next) * * VarDeclaration::codegen(): 'std.typetuple.genericIndexOf!(ulong, int, uint, long, ulong).index' * * * DtoResolveVariable(std.typetuple.genericIndexOf!(ulong, int, uint, long, ulong).index) * TemplateInstance::codegen: 'std.typetuple.Alias!int' * * Ignoring Dsymbol::codegen for std.typetuple.Alias!int.Alias * TemplateInstance::codegen: 'std.typetuple.isSame!(ulong, int)' * * VarDeclaration::codegen(): 'std.typetuple.isSame!(ulong, int).isSame' * * * DtoResolveVariable(std.typetuple.isSame!(ulong, int).isSame) * TemplateInstance::codegen: 'std.typetuple.expectType!int' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(ulong, uint, long, ulong)' * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!(ulong, uint, long, ulong).e * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!(ulong, uint, long, ulong).tuple * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!(ulong, uint, long, ulong).head * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!(ulong, uint, long, ulong).tail * * VarDeclaration::codegen(): 'std.typetuple.genericIndexOf!(ulong, uint, long, ulong).next' * * * DtoResolveVariable(std.typetuple.genericIndexOf!(ulong, uint, long, ulong).next) * * VarDeclaration::codegen(): 'std.typetuple.genericIndexOf!(ulong, uint, long, ulong).index' * * * DtoResolveVariable(std.typetuple.genericIndexOf!(ulong, uint, long, ulong).index) * TemplateInstance::codegen: 'std.typetuple.Alias!uint' * * Ignoring Dsymbol::codegen for std.typetuple.Alias!uint.Alias * TemplateInstance::codegen: 'std.typetuple.isSame!(ulong, uint)' * * VarDeclaration::codegen(): 'std.typetuple.isSame!(ulong, uint).isSame' * * * DtoResolveVariable(std.typetuple.isSame!(ulong, uint).isSame) * TemplateInstance::codegen: 'std.typetuple.expectType!uint' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(ulong, long, ulong)' * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!(ulong, long, ulong).e * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!(ulong, long, ulong).tuple * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!(ulong, long, ulong).head * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!(ulong, long, ulong).tail * * VarDeclaration::codegen(): 'std.typetuple.genericIndexOf!(ulong, long, ulong).next' * * * DtoResolveVariable(std.typetuple.genericIndexOf!(ulong, long, ulong).next) * * VarDeclaration::codegen(): 'std.typetuple.genericIndexOf!(ulong, long, ulong).index' * * * DtoResolveVariable(std.typetuple.genericIndexOf!(ulong, long, ulong).index) * TemplateInstance::codegen: 'std.typetuple.Alias!long' * * Ignoring Dsymbol::codegen for std.typetuple.Alias!long.Alias * TemplateInstance::codegen: 'std.typetuple.isSame!(ulong, long)' * * VarDeclaration::codegen(): 'std.typetuple.isSame!(ulong, long).isSame' * * * DtoResolveVariable(std.typetuple.isSame!(ulong, long).isSame) * TemplateInstance::codegen: 'std.typetuple.expectType!long' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(ulong, ulong)' * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!(ulong, ulong).e * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!(ulong, ulong).tuple * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!(ulong, ulong).head * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!(ulong, ulong).tail * * VarDeclaration::codegen(): 'std.typetuple.genericIndexOf!(ulong, ulong).index' * * * DtoResolveVariable(std.typetuple.genericIndexOf!(ulong, ulong).index) * TemplateInstance::codegen: 'std.typetuple.isSame!(ulong, ulong)' * * VarDeclaration::codegen(): 'std.typetuple.isSame!(ulong, ulong).isSame' * * * DtoResolveVariable(std.typetuple.isSame!(ulong, ulong).isSame) * TemplateInstance::codegen: 'std.traits.isIntegral!int' * * VarDeclaration::codegen(): 'std.traits.isIntegral!int.isIntegral' * * * DtoResolveVariable(std.traits.isIntegral!int.isIntegral) * TemplateInstance::codegen: 'std.traits.IntegralTypeOf!int' * TemplateInstance::codegen: 'std.traits.isAggregateType!int' * * VarDeclaration::codegen(): 'std.traits.isAggregateType!int.isAggregateType' * * * DtoResolveVariable(std.traits.isAggregateType!int.isAggregateType) * TemplateInstance::codegen: 'std.traits.OriginalType!int' * TemplateInstance::codegen: 'std.traits.ModifyTypePreservingSTC!(Impl, int)' * TemplateInstance::codegen: 'std.traits.OriginalType!int.Modifier!int' * TemplateInstance::codegen: 'std.traits.Unqual!int' * TemplateInstance::codegen: 'std.typetuple.staticIndexOf!(int, byte, ubyte, short, ushort, int, uint, long, ulong)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(int, byte, ubyte, short, ushort, int, uint, long, ulong)' * TemplateInstance::codegen: 'std.typetuple.isSame!(int, byte)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(int, ubyte, short, ushort, int, uint, long, ulong)' * TemplateInstance::codegen: 'std.typetuple.isSame!(int, ubyte)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(int, short, ushort, int, uint, long, ulong)' * TemplateInstance::codegen: 'std.typetuple.isSame!(int, short)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(int, ushort, int, uint, long, ulong)' * TemplateInstance::codegen: 'std.typetuple.isSame!(int, ushort)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(int, int, uint, long, ulong)' * TemplateInstance::codegen: 'std.typetuple.isSame!(int, int)' * TemplateInstance::codegen: 'std.traits.isNumeric!ulong' * TemplateInstance::codegen: 'std.traits.NumericTypeOf!ulong' * TemplateInstance::codegen: 'std.traits.mostNegative!ulong' * * VarDeclaration::codegen(): 'std.traits.mostNegative!ulong.mostNegative' * * * DtoResolveVariable(std.traits.mostNegative!ulong.mostNegative) * TemplateInstance::codegen: 'std.traits.isNumeric!int' * TemplateInstance::codegen: 'std.traits.NumericTypeOf!int' * TemplateInstance::codegen: 'std.traits.mostNegative!int' * * VarDeclaration::codegen(): 'std.traits.mostNegative!int.mostNegative' * * * DtoResolveVariable(std.traits.mostNegative!int.mostNegative) * TemplateInstance::codegen: 'std.functional.safeOp!"<".unsafeOp!(ulong, int)' * * DtoDefineFunction(std.functional.safeOp!"<".unsafeOp!(ulong, int).unsafeOp): /usr/include/dlang/ldc/std/functional.d(390) * * * Doing function body for: unsafeOp * * * DtoCreateNestedContext for unsafeOp * * * * DtoCreateNestedContextType for std.functional.safeOp!"<".unsafeOp!(ulong, int).unsafeOp * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/functional.d(392) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/functional.d(393) * * * * * * DeclarationExp::toElem: alias T = ulong; | T=void * * * * * * * DtoDeclarationExp: T * * * * * * * * Ignoring Symbol: alias * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/functional.d(394) * * * * * * CmpExp::toElem: a < cast(ulong)b @ bool * * * * * * * VarExp::toElem: a @ ulong * * * * * * * * DtoSymbolAddress ('a' of type 'ulong') * * * * * * * * * function param * * * * * * * * * type: ulong * * * * * * * CastExp::toElem: cast(ulong)b @ ulong * * * * * * * * VarExp::toElem: b @ int * * * * * * * * * DtoSymbolAddress ('b' of type 'int') * * * * * * * * * * function param * * * * * * * * * * type: int * * * * * * * * Casting from 'int' to 'ulong' * * * * * * * * * cast to: i64 * * * * * * * type 1: %3 = load i64, i64* %a * * * * * * * type 2: %2 = sext i32 %1 to i64 * * * * * * return value is '0x1222de80' * TemplateInstance::codegen: 'std.traits.CommonType!(ulong, int)' * * Ignoring Dsymbol::codegen for std.traits.CommonType!(ulong, int).CommonType * TemplateInstance::codegen: 'std.traits.CommonType!ulong' * * Ignoring Dsymbol::codegen for std.traits.CommonType!ulong.CommonType * TemplateInstance::codegen: 'std.algorithm.comparison.max!(ulong, ulong)' * * DtoDefineFunction(std.algorithm.comparison.max!(ulong, ulong).max): /usr/include/dlang/ldc/std/algorithm/comparison.d(1190) * * * Doing function body for: max * * * DtoCreateNestedContext for max * * * * DtoCreateNestedContextType for std.algorithm.comparison.max!(ulong, ulong).max * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/comparison.d(1192) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/comparison.d(1195) * * * * * * DeclarationExp::toElem: alias a = ulong _param_0; ; | T=void * * * * * * * DtoDeclarationExp: a * * * * * * * * Ignoring Symbol: alias * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/comparison.d(1198) * * * * * * DeclarationExp::toElem: alias T0 = ulong; | T=void * * * * * * * DtoDeclarationExp: T0 * * * * * * * * Ignoring Symbol: alias * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/comparison.d(1202) * * * * * * DeclarationExp::toElem: alias b = ulong _param_1; ; | T=void * * * * * * * DtoDeclarationExp: b * * * * * * * * Ignoring Symbol: alias * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/comparison.d(1205) * * * * * * DeclarationExp::toElem: alias T1 = ulong; | T=void * * * * * * * DtoDeclarationExp: T1 * * * * * * * * Ignoring Symbol: alias * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/comparison.d(1213) * * * * * * DeclarationExp::toElem: immutable immutable(bool) chooseB = safeOp(_param_0, _param_1); | T=void * * * * * * * DtoDeclarationExp: chooseB * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = immutable(bool)) * * * * * * * * * llvm value for decl: %chooseB = alloca i8, align 1 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: chooseB = safeOp(_param_0, _param_1) | (immutable(bool))(immutable(bool) = immutable(bool)) * * * * * * * * * * VarExp::toElem: chooseB @ immutable(bool) * * * * * * * * * * * DtoSymbolAddress ('chooseB' of type 'immutable(bool)') * * * * * * * * * * * * a normal variable * * * * * * * * * * CallExp::toElem: safeOp(_param_0, _param_1) @ immutable(bool) * * * * * * * * * * * VarExp::toElem: safeOp @ pure nothrow @nogc @safe bool(auto ref ulong a, auto ref ulong b) * * * * * * * * * * * * DtoSymbolAddress ('safeOp' of type 'pure nothrow @nogc @safe bool(auto ref ulong a, auto ref ulong b)') * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe bool(auto ref ulong a, auto ref ulong b)) * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * Final function type: i1 (i64*, i64*) * * * * * * * * * * * * * DtoResolveFunction(std.functional.safeOp!"<".safeOp!(ulong, ulong).safeOp): /usr/include/dlang/ldc/std/functional.d(397) * * * * * * * * * * * * * * DtoDeclareFunction(std.functional.safeOp!"<".safeOp!(ulong, ulong).safeOp): /usr/include/dlang/ldc/std/functional.d(397) * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe bool(auto ref ulong a, auto ref ulong b)) * * * * * * * * * * * * * * * func = declare i1 @_D3std10functional20__T6safeOpVAyaa1_3cZ15__T6safeOpTmTmZ6safeOpFNaNbNiNfKmKmZb(i64*, i64*) * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * Building type: pure nothrow @nogc @safe bool(auto ref ulong a, auto ref ulong b) * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe bool(auto ref ulong a, auto ref ulong b)) * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * Final function type: i1 (i64*, i64*) * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * Function type: pure nothrow @nogc @safe bool(auto ref ulong a, auto ref ulong b) * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * VarExp::toElem: _param_0 @ ulong * * * * * * * * * * * * * * DtoSymbolAddress ('_param_0' of type 'ulong') * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * type: ulong * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * VarExp::toElem: _param_1 @ ulong * * * * * * * * * * * * * * DtoSymbolAddress ('_param_1' of type 'ulong') * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * type: ulong * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/comparison.d(1214) * * * * * * CondExp::toElem: chooseB ? _param_1 : _param_0 @ ulong * * * * * * * VarExp::toElem: chooseB @ immutable(bool) * * * * * * * * DtoSymbolAddress ('chooseB' of type 'immutable(bool)') * * * * * * * * * a normal variable * * * * * * * Casting from 'immutable(bool)' to 'bool' * * * * * * * VarExp::toElem: _param_1 @ ulong * * * * * * * * DtoSymbolAddress ('_param_1' of type 'ulong') * * * * * * * * * function param * * * * * * * * * type: ulong * * * * * * * VarExp::toElem: _param_0 @ ulong * * * * * * * * DtoSymbolAddress ('_param_0' of type 'ulong') * * * * * * * * * function param * * * * * * * * * type: ulong * * * * * * return value is '0x12231b88' * TemplateInstance::codegen: 'std.algorithm.comparison.MaxType!(ulong, ulong)' * * Ignoring Dsymbol::codegen for std.algorithm.comparison.MaxType!(ulong, ulong).MaxType * TemplateInstance::codegen: 'std.functional.safeOp!"<".safeOp!(ulong, ulong)' * * DtoDefineFunction(std.functional.safeOp!"<".safeOp!(ulong, ulong).safeOp): /usr/include/dlang/ldc/std/functional.d(397) * * * Doing function body for: safeOp * * * DtoCreateNestedContext for safeOp * * * * DtoCreateNestedContextType for std.functional.safeOp!"<".safeOp!(ulong, ulong).safeOp * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/functional.d(398) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/functional.d(422) * * * * * * DeclarationExp::toElem: immutable immutable(bool) result = a < b; | T=void * * * * * * * DtoDeclarationExp: result * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = immutable(bool)) * * * * * * * * * llvm value for decl: %result = alloca i8, align 1 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: result = a < b | (immutable(bool))(immutable(bool) = immutable(bool)) * * * * * * * * * * VarExp::toElem: result @ immutable(bool) * * * * * * * * * * * DtoSymbolAddress ('result' of type 'immutable(bool)') * * * * * * * * * * * * a normal variable * * * * * * * * * * CmpExp::toElem: a < b @ immutable(bool) * * * * * * * * * * * VarExp::toElem: a @ ulong * * * * * * * * * * * * DtoSymbolAddress ('a' of type 'ulong') * * * * * * * * * * * * * function param * * * * * * * * * * * * * type: ulong * * * * * * * * * * * VarExp::toElem: b @ ulong * * * * * * * * * * * * DtoSymbolAddress ('b' of type 'ulong') * * * * * * * * * * * * * function param * * * * * * * * * * * * * type: ulong * * * * * * * * * * * type 1: %1 = load i64, i64* %a_arg * * * * * * * * * * * type 2: %2 = load i64, i64* %b_arg * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/functional.d(424) * * * * * * VarExp::toElem: result @ bool * * * * * * * DtoSymbolAddress ('result' of type 'immutable(bool)') * * * * * * * * a normal variable * * * * * * return value is '0x12233178' * TemplateInstance::codegen: 'std.array.blockAttribute!ubyte' * * Ignoring Dsymbol::codegen for std.array.blockAttribute!ubyte.core * * VarDeclaration::codegen(): 'std.array.blockAttribute!ubyte.blockAttribute' * * * DtoResolveVariable(std.array.blockAttribute!ubyte.blockAttribute) * TemplateInstance::codegen: 'std.traits.hasIndirections!ubyte' * * VarDeclaration::codegen(): 'std.traits.hasIndirections!ubyte.hasIndirections' * * * DtoResolveVariable(std.traits.hasIndirections!ubyte.hasIndirections) * TemplateInstance::codegen: 'std.traits.isStaticArray!ubyte' * * VarDeclaration::codegen(): 'std.traits.isStaticArray!ubyte.isStaticArray' * * * DtoResolveVariable(std.traits.isStaticArray!ubyte.isStaticArray) * TemplateInstance::codegen: 'std.traits.isFunctionPointer!ubyte' * * VarDeclaration::codegen(): 'std.traits.isFunctionPointer!ubyte.isFunctionPointer' * * * DtoResolveVariable(std.traits.isFunctionPointer!ubyte.isFunctionPointer) * TemplateInstance::codegen: 'std.traits.isPointer!ubyte' * * VarDeclaration::codegen(): 'std.traits.isPointer!ubyte.isPointer' * * * DtoResolveVariable(std.traits.isPointer!ubyte.isPointer) * TemplateInstance::codegen: 'std.traits.isDelegate!ubyte' * * VarDeclaration::codegen(): 'std.traits.isDelegate!ubyte.isDelegate' * * * DtoResolveVariable(std.traits.isDelegate!ubyte.isDelegate) * TemplateInstance::codegen: 'std.traits.isDynamicArray!ubyte' * * VarDeclaration::codegen(): 'std.traits.isDynamicArray!ubyte.isDynamicArray' * * * DtoResolveVariable(std.traits.isDynamicArray!ubyte.isDynamicArray) * TemplateInstance::codegen: 'std.traits.isAssociativeArray!ubyte' * * VarDeclaration::codegen(): 'std.traits.isAssociativeArray!ubyte.isAssociativeArray' * * * DtoResolveVariable(std.traits.isAssociativeArray!ubyte.isAssociativeArray) * TemplateInstance::codegen: 'std.conv.emplaceRef!(ubyte, ubyte)' * * DtoDefineFunction(std.conv.emplaceRef!(ubyte, ubyte).emplaceRef): /usr/include/dlang/ldc/std/conv.d(3929) * * * Doing function body for: emplaceRef * * * DtoCreateNestedContext for emplaceRef * * * * DtoCreateNestedContextType for std.conv.emplaceRef!(ubyte, ubyte).emplaceRef * * * CompoundStatement::toIR(): * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(3932) * * * * * AddrExp::toElem: &emplaceImpl(chunk, _param_1) @ ubyte* * * * * * * CallExp::toElem: emplaceImpl(chunk, _param_1) @ ubyte * * * * * * * VarExp::toElem: emplaceImpl @ pure nothrow @nogc ref @safe ubyte(ref ubyte chunk, auto ref ubyte arg) * * * * * * * * DtoSymbolAddress ('emplaceImpl' of type 'pure nothrow @nogc ref @safe ubyte(ref ubyte chunk, auto ref ubyte arg)') * * * * * * * * * FuncDeclaration * * * * * * * * * DtoFunctionType(pure nothrow @nogc ref @safe ubyte(ref ubyte chunk, auto ref ubyte arg)) * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: i8* (i8*, i8*) * * * * * * * * * DtoResolveFunction(std.conv.emplaceImpl!ubyte.emplaceImpl!ubyte.emplaceImpl): /usr/include/dlang/ldc/std/conv.d(3955) * * * * * * * * * * DtoDeclareFunction(std.conv.emplaceImpl!ubyte.emplaceImpl!ubyte.emplaceImpl): /usr/include/dlang/ldc/std/conv.d(3955) * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc ref @safe ubyte(ref ubyte chunk, auto ref ubyte arg)) * * * * * * * * * * * func = declare i8* @_D3std4conv19__T11emplaceImplThZ19__T11emplaceImplThZ11emplaceImplFNaNbNcNiNfKhKhZh(i8*, i8*) * * * * * * * DtoCallFunction() * * * * * * * * Building type: pure nothrow @nogc ref @safe ubyte(ref ubyte chunk, auto ref ubyte arg) * * * * * * * * * DtoFunctionType(pure nothrow @nogc ref @safe ubyte(ref ubyte chunk, auto ref ubyte arg)) * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: i8* (i8*, i8*) * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (0) * * * * * * * * Function type: pure nothrow @nogc ref @safe ubyte(ref ubyte chunk, auto ref ubyte arg) * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: chunk @ ubyte * * * * * * * * * * DtoSymbolAddress ('chunk' of type 'ubyte') * * * * * * * * * * * function param * * * * * * * * * * * type: ubyte * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_1 @ ubyte * * * * * * * * * * DtoSymbolAddress ('_param_1' of type 'ubyte') * * * * * * * * * * * function param * * * * * * * * * * * type: ubyte * * * * * * is nothing special * * * * * * lval: %1 = call i8* @_D3std4conv19__T11emplaceImplThZ19__T11emplaceImplThZ11emplaceImplFNaNbNcNiNfKhKhZh(i8* %_param_1_arg, i8* %chunk_arg) * * * * * return value is '0x122368f8' * TemplateInstance::codegen: 'std.conv.emplaceImpl!ubyte' * * Ignoring Dsymbol::codegen for std.conv.emplaceImpl!ubyte.UT * * Ignoring Dsymbol::codegen for std.conv.emplaceImpl!ubyte.emplaceImpl()(ref UT chunk) * * Ignoring Dsymbol::codegen for std.conv.emplaceImpl!ubyte.emplaceImpl(Arg)(ref UT chunk, auto ref Arg arg) * TemplateInstance::codegen: 'std.conv.emplaceImpl!ubyte.emplaceImpl!ubyte' * * DtoDefineFunction(std.conv.emplaceImpl!ubyte.emplaceImpl!ubyte.emplaceImpl): /usr/include/dlang/ldc/std/conv.d(3955) * * * Doing function body for: emplaceImpl * * * DtoCreateNestedContext for emplaceImpl * * * * DtoCreateNestedContextType for std.conv.emplaceImpl!ubyte.emplaceImpl!ubyte.emplaceImpl * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(3956) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(4035) * * * * * * AssignExp::toElem: chunk = arg | (ubyte)(ubyte = ubyte) * * * * * * * VarExp::toElem: chunk @ ubyte * * * * * * * * DtoSymbolAddress ('chunk' of type 'ubyte') * * * * * * * * * function param * * * * * * * * * type: ubyte * * * * * * * VarExp::toElem: arg @ ubyte * * * * * * * * DtoSymbolAddress ('arg' of type 'ubyte') * * * * * * * * * nested variable * * * * * * * * * DtoNestedVariable for arg @ /usr/include/dlang/ldc/std/conv.d(4035) * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * DtoAssign() * * * * * * * * lhs: i8* %chunk_arg * * * * * * * * rhs: %1 = load i8, i8* %arg_arg * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(4036) * * * * * * AddrExp::toElem: &chunk @ ubyte* * * * * * * * VarExp::toElem: chunk @ ubyte * * * * * * * * DtoSymbolAddress ('chunk' of type 'ubyte') * * * * * * * * * function param * * * * * * * * * type: ubyte * * * * * * * is nothing special * * * * * * * lval: i8* %chunk_arg * * * * * * return value is '0x12238f00' * TemplateInstance::codegen: 'std.range.primitives.isOutputRange!(Appender!(ubyte[]), ubyte[])' * TemplateInstance::codegen: 'std.range.primitives.put!(Appender!(ubyte[]), ubyte[])' * TemplateInstance::codegen: 'std.range.primitives.doPut!(Appender!(ubyte[]), ubyte[])' * TemplateInstance::codegen: 'std.array.Appender!(ubyte[]).Appender.canPutItem!(ubyte[])' * TemplateInstance::codegen: 'std.traits.isImplicitlyConvertible!(ubyte[], ubyte)' * TemplateInstance::codegen: 'std.traits.isSomeChar!(ubyte[])' * TemplateInstance::codegen: 'std.typetuple.staticIndexOf!(ubyte[], char, wchar, dchar)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(ubyte[], char, wchar, dchar)' * TemplateInstance::codegen: 'std.typetuple.Alias!(ubyte[])' * TemplateInstance::codegen: 'std.typetuple.isSame!(ubyte[], char)' * TemplateInstance::codegen: 'std.typetuple.expectType!(ubyte[])' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(ubyte[], wchar, dchar)' * TemplateInstance::codegen: 'std.typetuple.isSame!(ubyte[], wchar)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(ubyte[], dchar)' * TemplateInstance::codegen: 'std.typetuple.isSame!(ubyte[], dchar)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(ubyte[])' * TemplateInstance::codegen: 'std.array.Appender!(ubyte[]).Appender.canPutConstRange!(ubyte[])' * TemplateInstance::codegen: 'std.range.primitives.isInputRange!(ubyte[])' * TemplateInstance::codegen: 'std.range.primitives.empty!ubyte' * * DtoDefineFunction(std.range.primitives.empty!ubyte.empty): /usr/include/dlang/ldc/std/range/primitives.d(1950) * * * DtoFunctionType(pure nothrow @nogc @property @safe bool(const(ubyte[]) a)) * * * * x86-64 ABI: Transforming return type * * * * x86-64 ABI: Transforming argument types * * * * Final function type: i1 ({ i64, i8* }) * * * DtoResolveFunction(std.range.primitives.empty!ubyte.empty): /usr/include/dlang/ldc/std/range/primitives.d(1950) * * * * DtoDeclareFunction(std.range.primitives.empty!ubyte.empty): /usr/include/dlang/ldc/std/range/primitives.d(1950) * * * * * DtoFunctionType(pure nothrow @nogc @property @safe bool(const(ubyte[]) a)) * * * * * func = declare i1 @_D3std5range10primitives12__T5emptyThZ5emptyFNaNbNdNiNfxAhZb({ i64, i8* }) * * * Doing function body for: empty * * * DtoCreateNestedContext for empty * * * * DtoCreateNestedContextType for std.range.primitives.empty!ubyte.empty * * * CompoundStatement::toIR(): * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/range/primitives.d(1952) * * * * * NotExp::toElem: !a.length @ bool * * * * * * ArrayLengthExp::toElem: a.length @ ulong * * * * * * * VarExp::toElem: a @ const(ubyte[]) * * * * * * * * DtoSymbolAddress ('a' of type 'const(ubyte[])') * * * * * * * * * function param * * * * * * * * * type: const(ubyte[]) * * * * * * * DtoArrayLen * * * * * * Casting from 'ulong' to 'bool' * * * * * return value is '0x1223af20' * TemplateInstance::codegen: 'std.range.primitives.popFront!ubyte' * TemplateInstance::codegen: 'std.array.Appender!(ubyte[]).Appender.canPutRange!(ubyte[])' * TemplateInstance::codegen: 'std.array.Appender!(ubyte[]).Appender.put!(ubyte[])' * * DtoDefineFunction(std.array.Appender!(ubyte[]).Appender.put!(ubyte[]).put): /usr/include/dlang/ldc/std/array.d(2807) * * * isMember = this is: Appender!(ubyte[]) * * * DtoFunctionType(pure nothrow @safe void(ubyte[] items)) * * * * x86-64 ABI: Transforming argument types * * * * Final function type: void (%"std.array.Appender!(ubyte[]).Appender"*, { i64, i8* }) * * * DtoResolveFunction(std.array.Appender!(ubyte[]).Appender.put!(ubyte[]).put): /usr/include/dlang/ldc/std/array.d(2807) * * * * DtoDeclareFunction(std.array.Appender!(ubyte[]).Appender.put!(ubyte[]).put): /usr/include/dlang/ldc/std/array.d(2807) * * * * * isMember = this is: Appender!(ubyte[]) * * * * * DtoFunctionType(pure nothrow @safe void(ubyte[] items)) * * * * * func = declare void @_D3std5array16__T8AppenderTAhZ8Appender11__T3putTAhZ3putMFNaNbNfAhZv(%"std.array.Appender!(ubyte[]).Appender"*, { i64, i8* }) * * * Doing function body for: put * * * DtoCreateNestedContext for put * * * * DtoCreateNestedContextType for std.array.Appender!(ubyte[]).Appender.put!(ubyte[]).put * * * * * has nested frame * * * * * Function put has depth 0 * * * * * Nested var 'this' of type %"std.array.Appender!(ubyte[]).Appender"* * * * * * frameType = %nest.put.0 = type { %"std.array.Appender!(ubyte[]).Appender"* } * * * * nested param: this * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2808) * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2820) * * * * * * EqualExp::toElem: items.length == 1LU @ bool * * * * * * * ArrayLengthExp::toElem: items.length @ ulong * * * * * * * * VarExp::toElem: items @ ubyte[] * * * * * * * * * DtoSymbolAddress ('items' of type 'ubyte[]') * * * * * * * * * * function param * * * * * * * * * * type: ubyte[] * * * * * * * * DtoArrayLen * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * value = i64 1 * * * * * * * integral or pointer or interface * * * * * * * lv: %.len = load i64, i64* %1 * * * * * * * rv: i64 1 * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2821) * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2821) * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2822) * * * * * * * * * CallExp::toElem: this.put(front(items)) @ void * * * * * * * * * * DotVarExp::toElem: this.put @ pure nothrow @safe void(ubyte item) * * * * * * * * * * * ThisExp::toElem: this @ Appender!(ubyte[]) * * * * * * * * * * * * normal this exp * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * Building type: pure nothrow @safe void(ubyte item) * * * * * * * * * * * * DtoFunctionType(pure nothrow @safe void(ubyte item)) * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * Final function type: void (i8) * * * * * * * * * * * doing normal arguments * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * %"std.array.Appender!(ubyte[]).Appender"* %.this_arg * * * * * * * * * * * Function type: pure nothrow @safe void(ubyte item) * * * * * * * * * * * DtoArgument * * * * * * * * * * * * CallExp::toElem: front(items) @ ubyte * * * * * * * * * * * * * VarExp::toElem: front @ pure nothrow @nogc @property ref @safe ubyte(ubyte[] a) * * * * * * * * * * * * * * DtoSymbolAddress ('front' of type 'pure nothrow @nogc @property ref @safe ubyte(ubyte[] a)') * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * Building type: pure nothrow @nogc @property ref @safe ubyte(ubyte[] a) * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @property ref @safe ubyte(ubyte[] a)) * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * Final function type: i8* ({ i64, i8* }) * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * Function type: pure nothrow @nogc @property ref @safe ubyte(ubyte[] a) * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * VarExp::toElem: items @ ubyte[] * * * * * * * * * * * * * * * * DtoSymbolAddress ('items' of type 'ubyte[]') * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * type: ubyte[] * * * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2823) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2828) * * * * * * DeclarationExp::toElem: auto pure nothrow @trusted ubyte[] bigDataFun(ulong extra) { this.ensureAddable(extra); return (cast(ubyte*)(*this._data).arr)[0..(*this._data).arr.length + extra]; } | T=void * * * * * * * DtoDeclarationExp: bigDataFun * * * * * * * * FuncDeclaration * * * * * * * * DtoDefineFunction(std.array.Appender!(ubyte[]).Appender.put!(ubyte[]).put.bigDataFun): /usr/include/dlang/ldc/std/array.d(2828) * * * * * * * * * DtoFunctionType(pure nothrow @trusted ubyte[](ulong extra)) * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: { i64, i8* } (i8*, i64) * * * * * * * * * DtoResolveFunction(std.array.Appender!(ubyte[]).Appender.put!(ubyte[]).put.bigDataFun): /usr/include/dlang/ldc/std/array.d(2828) * * * * * * * * * * DtoDeclareFunction(std.array.Appender!(ubyte[]).Appender.put!(ubyte[]).put.bigDataFun): /usr/include/dlang/ldc/std/array.d(2828) * * * * * * * * * * * DtoFunctionType(pure nothrow @trusted ubyte[](ulong extra)) * * * * * * * * * * * func = declare { i64, i8* } @_D3std5array16__T8AppenderTAhZ8Appender11__T3putTAhZ3putMFAhZ10bigDataFunMFNaNbNemZAh(i8*, i64) * * * * * * * * * Doing function body for: bigDataFun * * * * * * * * * DtoCreateNestedContext for bigDataFun * * * * * * * * * * DtoCreateNestedContextType for std.array.Appender!(ubyte[]).Appender.put!(ubyte[]).put.bigDataFun * * * * * * * * * * * DtoCreateNestedContextType for std.array.Appender!(ubyte[]).Appender.put!(ubyte[]).put * * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2829) * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2830) * * * * * * * * * * * * CallExp::toElem: this.ensureAddable(extra) @ void * * * * * * * * * * * * * DotVarExp::toElem: this.ensureAddable @ pure nothrow @trusted void(ulong nelems) * * * * * * * * * * * * * * ThisExp::toElem: this @ Appender!(ubyte[]) * * * * * * * * * * * * * * * nested this exp * * * * * * * * * * * * * * * DtoNestedVariable for this @ /usr/include/dlang/ldc/std/array.d(2830) * * * * * * * * * * * * * * * * DtoCreateNestedContextType for std.array.Appender!(ubyte[]).Appender.put!(ubyte[]).put * * * * * * * * * * * * * * * * Context: %2 = bitcast i8* %1 to %nest.put.0* * * * * * * * * * * * * * * * * of type: %nest.put.0 = type { %"std.array.Appender!(ubyte[]).Appender"* } * * * * * * * * * * * * * * * * Variable: this * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * Function: bigDataFun * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * Addr: %this = getelementptr %nest.put.0, %nest.put.0* %2, i32 0, i32 0 * * * * * * * * * * * * * * * * of type: %"std.array.Appender!(ubyte[]).Appender"** * * * * * * * * * * * * * * * * Was byref, now: %3 = load %"std.array.Appender!(ubyte[]).Appender"*, %"std.array.Appender!(ubyte[]).Appender"** %this, align 8 * * * * * * * * * * * * * * * * of type: %"std.array.Appender!(ubyte[]).Appender"* * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * %3 = load %"std.array.Appender!(ubyte[]).Appender"*, %"std.array.Appender!(ubyte[]).Appender"** %this, align 8 * * * * * * * * * * * * * * Function type: pure nothrow @trusted void(ulong nelems) * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * VarExp::toElem: extra @ ulong * * * * * * * * * * * * * * * * DtoSymbolAddress ('extra' of type 'ulong') * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * type: ulong * * * * * * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2831) * * * * * * * * * * * * SliceExp::toElem: (cast(ubyte*)(*this._data).arr)[0..(*this._data).arr.length + extra] @ ubyte[] * * * * * * * * * * * * * CastExp::toElem: cast(ubyte*)(*this._data).arr @ ubyte* * * * * * * * * * * * * * * DotVarExp::toElem: (*this._data).arr @ ubyte[] * * * * * * * * * * * * * * * PtrExp::toElem: *this._data @ Data * * * * * * * * * * * * * * * * DotVarExp::toElem: this._data @ Data* * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Appender!(ubyte[]) * * * * * * * * * * * * * * * * * * nested this exp * * * * * * * * * * * * * * * * * * DtoNestedVariable for this @ /usr/include/dlang/ldc/std/array.d(2831) * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for std.array.Appender!(ubyte[]).Appender.put!(ubyte[]).put * * * * * * * * * * * * * * * * * * * Context: %6 = bitcast i8* %5 to %nest.put.0* * * * * * * * * * * * * * * * * * * * of type: %nest.put.0 = type { %"std.array.Appender!(ubyte[]).Appender"* } * * * * * * * * * * * * * * * * * * * Variable: this * * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * * Function: bigDataFun * * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * * Addr: %this1 = getelementptr %nest.put.0, %nest.put.0* %6, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * of type: %"std.array.Appender!(ubyte[]).Appender"** * * * * * * * * * * * * * * * * * * * Was byref, now: %7 = load %"std.array.Appender!(ubyte[]).Appender"*, %"std.array.Appender!(ubyte[]).Appender"** %this1, align 8 * * * * * * * * * * * * * * * * * * * of type: %"std.array.Appender!(ubyte[]).Appender"* * * * * * * * * * * * * * * * * * Indexing aggregate field std.array.Appender!(ubyte[]).Appender._data: * * * * * * * * * * * * * * * * * * Value: %8 = getelementptr %"std.array.Appender!(ubyte[]).Appender", %"std.array.Appender!(ubyte[]).Appender"* %7, i32 0, i32 0 * * * * * * * * * * * * * * * Indexing aggregate field std.array.Appender!(ubyte[]).Appender.Data.arr: * * * * * * * * * * * * * * * * Value: %10 = getelementptr %"std.array.Appender!(ubyte[]).Appender.Data", %"std.array.Appender!(ubyte[]).Appender.Data"* %9, i32 0, i32 1 * * * * * * * * * * * * * * Casting from 'ubyte[]' to 'ubyte*' * * * * * * * * * * * * * * * DtoCastArray * * * * * * * * * * * * * * * * from array or sarray * * * * * * * * * * * * * * * * to pointer * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * AddExp::toElem: (*this._data).arr.length + extra @ ulong * * * * * * * * * * * * * * ArrayLengthExp::toElem: (*this._data).arr.length @ ulong * * * * * * * * * * * * * * * DotVarExp::toElem: (*this._data).arr @ ubyte[] * * * * * * * * * * * * * * * * PtrExp::toElem: *this._data @ Data * * * * * * * * * * * * * * * * * DotVarExp::toElem: this._data @ Data* * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Appender!(ubyte[]) * * * * * * * * * * * * * * * * * * * nested this exp * * * * * * * * * * * * * * * * * * * DtoNestedVariable for this @ /usr/include/dlang/ldc/std/array.d(2831) * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for std.array.Appender!(ubyte[]).Appender.put!(ubyte[]).put * * * * * * * * * * * * * * * * * * * * Context: %13 = bitcast i8* %12 to %nest.put.0* * * * * * * * * * * * * * * * * * * * * of type: %nest.put.0 = type { %"std.array.Appender!(ubyte[]).Appender"* } * * * * * * * * * * * * * * * * * * * * Variable: this * * * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * * * Function: bigDataFun * * * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * * * Addr: %this2 = getelementptr %nest.put.0, %nest.put.0* %13, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * * of type: %"std.array.Appender!(ubyte[]).Appender"** * * * * * * * * * * * * * * * * * * * * Was byref, now: %14 = load %"std.array.Appender!(ubyte[]).Appender"*, %"std.array.Appender!(ubyte[]).Appender"** %this2, align 8 * * * * * * * * * * * * * * * * * * * * of type: %"std.array.Appender!(ubyte[]).Appender"* * * * * * * * * * * * * * * * * * * Indexing aggregate field std.array.Appender!(ubyte[]).Appender._data: * * * * * * * * * * * * * * * * * * * Value: %15 = getelementptr %"std.array.Appender!(ubyte[]).Appender", %"std.array.Appender!(ubyte[]).Appender"* %14, i32 0, i32 0 * * * * * * * * * * * * * * * * Indexing aggregate field std.array.Appender!(ubyte[]).Appender.Data.arr: * * * * * * * * * * * * * * * * * Value: %17 = getelementptr %"std.array.Appender!(ubyte[]).Appender.Data", %"std.array.Appender!(ubyte[]).Appender.Data"* %16, i32 0, i32 1 * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * VarExp::toElem: extra @ ulong * * * * * * * * * * * * * * * DtoSymbolAddress ('extra' of type 'ulong') * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * type: ulong * * * * * * * * * * * * return value is '0x122441b0' * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2833) * * * * * * DeclarationExp::toElem: ubyte[] bigData = bigDataFun(items.length); | T=void * * * * * * * DtoDeclarationExp: bigData * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = ubyte[]) * * * * * * * * * llvm value for decl: %bigData = alloca { i64, i8* }, align 8 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: bigData = bigDataFun(items.length) | (ubyte[])(ubyte[] = ubyte[]) * * * * * * * * * * VarExp::toElem: bigData @ ubyte[] * * * * * * * * * * * DtoSymbolAddress ('bigData' of type 'ubyte[]') * * * * * * * * * * * * a normal variable * * * * * * * * * * CallExp::toElem: bigDataFun(items.length) @ ubyte[] * * * * * * * * * * * VarExp::toElem: bigDataFun @ pure nothrow @trusted ubyte[](ulong extra) * * * * * * * * * * * * DtoSymbolAddress ('bigDataFun' of type 'pure nothrow @trusted ubyte[](ulong extra)') * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * Building type: pure nothrow @trusted ubyte[](ulong extra) * * * * * * * * * * * * * DtoFunctionType(pure nothrow @trusted ubyte[](ulong extra)) * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * Final function type: { i64, i8* } (i64) * * * * * * * * * * * * DtoNestedContext for std.array.Appender!(ubyte[]).Appender.put!(ubyte[]).put.bigDataFun * * * * * * * * * * * * * DtoCreateNestedContextType for std.array.Appender!(ubyte[]).Appender.put!(ubyte[]).put.bigDataFun * * * * * * * * * * * * * Parent frame is from put * * * * * * * * * * * * * Current function is put * * * * * * * * * * * * * Context is from put * * * * * * * * * * * * * Needed depth: 0 * * * * * * * * * * * * * Context depth: 0 * * * * * * * * * * * * * Calling sibling function or directly nested function * * * * * * * * * * * * * result = %.frame = alloca %nest.put.0, align 8 * * * * * * * * * * * * * of type %nest.put.0* * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * %6 = bitcast %nest.put.0* %.frame to i8* * * * * * * * * * * * * Function type: pure nothrow @trusted ubyte[](ulong extra) * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * ArrayLengthExp::toElem: items.length @ ulong * * * * * * * * * * * * * * VarExp::toElem: items @ ubyte[] * * * * * * * * * * * * * * * DtoSymbolAddress ('items' of type 'ubyte[]') * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * type: ubyte[] * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * SetArray * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2835) * * * * * * DeclarationExp::toElem: immutable immutable(ulong) len = (*this._data).arr.length; | T=void * * * * * * * DtoDeclarationExp: len * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = immutable(ulong)) * * * * * * * * * llvm value for decl: %len = alloca i64, align 8 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: len = (*this._data).arr.length | (immutable(ulong))(immutable(ulong) = immutable(ulong)) * * * * * * * * * * VarExp::toElem: len @ immutable(ulong) * * * * * * * * * * * DtoSymbolAddress ('len' of type 'immutable(ulong)') * * * * * * * * * * * * a normal variable * * * * * * * * * * ArrayLengthExp::toElem: (*this._data).arr.length @ immutable(ulong) * * * * * * * * * * * DotVarExp::toElem: (*this._data).arr @ ubyte[] * * * * * * * * * * * * PtrExp::toElem: *this._data @ Data * * * * * * * * * * * * * DotVarExp::toElem: this._data @ Data* * * * * * * * * * * * * * * ThisExp::toElem: this @ Appender!(ubyte[]) * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * Indexing aggregate field std.array.Appender!(ubyte[]).Appender._data: * * * * * * * * * * * * * * * Value: %11 = getelementptr %"std.array.Appender!(ubyte[]).Appender", %"std.array.Appender!(ubyte[]).Appender"* %.this_arg, i32 0, i32 0 * * * * * * * * * * * * Indexing aggregate field std.array.Appender!(ubyte[]).Appender.Data.arr: * * * * * * * * * * * * * Value: %13 = getelementptr %"std.array.Appender!(ubyte[]).Appender.Data", %"std.array.Appender!(ubyte[]).Appender.Data"* %12, i32 0, i32 1 * * * * * * * * * * * DtoArrayLen * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %len = alloca i64, align 8 * * * * * * * * * * * rhs: %.len3 = load i64, i64* %14 * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2836) * * * * * * DeclarationExp::toElem: immutable immutable(ulong) newlen = bigData.length; | T=void * * * * * * * DtoDeclarationExp: newlen * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = immutable(ulong)) * * * * * * * * * llvm value for decl: %newlen = alloca i64, align 8 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: newlen = bigData.length | (immutable(ulong))(immutable(ulong) = immutable(ulong)) * * * * * * * * * * VarExp::toElem: newlen @ immutable(ulong) * * * * * * * * * * * DtoSymbolAddress ('newlen' of type 'immutable(ulong)') * * * * * * * * * * * * a normal variable * * * * * * * * * * ArrayLengthExp::toElem: bigData.length @ immutable(ulong) * * * * * * * * * * * VarExp::toElem: bigData @ ubyte[] * * * * * * * * * * * * DtoSymbolAddress ('bigData' of type 'ubyte[]') * * * * * * * * * * * * * a normal variable * * * * * * * * * * * DtoArrayLen * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %newlen = alloca i64, align 8 * * * * * * * * * * * rhs: %.len4 = load i64, i64* %15 * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2838) * * * * * * DeclarationExp::toElem: alias UT = ubyte; | T=void * * * * * * * DtoDeclarationExp: UT * * * * * * * * Ignoring Symbol: alias * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2843) * * * * * * AssignExp::toElem: bigData[len..newlen] = items[] | (ubyte[])(ubyte[] = const(ubyte[])) * * * * * * * performing static array literal assignment * * * * * * * SliceExp::toElem: bigData[len..newlen] @ ubyte[] * * * * * * * * VarExp::toElem: bigData @ ubyte[] * * * * * * * * * DtoSymbolAddress ('bigData' of type 'ubyte[]') * * * * * * * * * * a normal variable * * * * * * * * DtoArrayPtr * * * * * * * * VarExp::toElem: len @ ulong * * * * * * * * * DtoSymbolAddress ('len' of type 'immutable(ulong)') * * * * * * * * * * a normal variable * * * * * * * * VarExp::toElem: newlen @ ulong * * * * * * * * * DtoSymbolAddress ('newlen' of type 'immutable(ulong)') * * * * * * * * * * a normal variable * * * * * * * * DtoArrayLen * * * * * * * SliceExp::toElem: items[] @ const(ubyte[]) * * * * * * * * VarExp::toElem: items @ ubyte[] * * * * * * * * * DtoSymbolAddress ('items' of type 'ubyte[]') * * * * * * * * * * function param * * * * * * * * * * type: ubyte[] * * * * * * * * DtoArrayPtr * * * * * * * * DtoArrayLen * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * DtoAssign() * * * * * * * * DtoArrayAssign * * * * * * * * * DtoArrayPtr * * * * * * * * * DtoArrayLen * * * * * * * * * DtoArrayPtr * * * * * * * * * DtoArrayLen * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2856) * * * * * * AssignExp::toElem: (*this._data).arr = bigData | (ubyte[])(ubyte[] = ubyte[]) * * * * * * * DotVarExp::toElem: (*this._data).arr @ ubyte[] * * * * * * * * PtrExp::toElem: *this._data @ Data * * * * * * * * * DotVarExp::toElem: this._data @ Data* * * * * * * * * * * ThisExp::toElem: this @ Appender!(ubyte[]) * * * * * * * * * * * normal this exp * * * * * * * * * * Indexing aggregate field std.array.Appender!(ubyte[]).Appender._data: * * * * * * * * * * * Value: %26 = getelementptr %"std.array.Appender!(ubyte[]).Appender", %"std.array.Appender!(ubyte[]).Appender"* %.this_arg, i32 0, i32 0 * * * * * * * * Indexing aggregate field std.array.Appender!(ubyte[]).Appender.Data.arr: * * * * * * * * * Value: %28 = getelementptr %"std.array.Appender!(ubyte[]).Appender.Data", %"std.array.Appender!(ubyte[]).Appender.Data"* %27, i32 0, i32 1 * * * * * * * VarExp::toElem: bigData @ ubyte[] * * * * * * * * DtoSymbolAddress ('bigData' of type 'ubyte[]') * * * * * * * * * a normal variable * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * DtoAssign() * * * * * * * * DtoArrayAssign * * * * * * * * * DtoArrayPtr * * * * * * * * * DtoArrayLen * * * * * * * * * SetArray * TemplateInstance::codegen: 'std.traits.hasElaborateAssign!ubyte' * TemplateInstance::codegen: 'std.traits.isAssignable!(ubyte, ubyte)' * * VarDeclaration::codegen(): 'std.traits.isAssignable!(ubyte, ubyte).isAssignable' * * * DtoResolveVariable(std.traits.isAssignable!(ubyte, ubyte).isAssignable) * TemplateInstance::codegen: 'std.traits.isRvalueAssignable!(ubyte, ubyte)' * * VarDeclaration::codegen(): 'std.traits.isRvalueAssignable!(ubyte, ubyte).isRvalueAssignable' * * * DtoResolveVariable(std.traits.isRvalueAssignable!(ubyte, ubyte).isRvalueAssignable) * TemplateInstance::codegen: 'std.traits.lvalueOf!ubyte' * TemplateInstance::codegen: 'std.traits.rvalueOf!ubyte' * TemplateInstance::codegen: 'std.traits.isLvalueAssignable!(ubyte, ubyte)' * * VarDeclaration::codegen(): 'std.traits.isLvalueAssignable!(ubyte, ubyte).isLvalueAssignable' * * * DtoResolveVariable(std.traits.isLvalueAssignable!(ubyte, ubyte).isLvalueAssignable) * TemplateInstance::codegen: 'std.typecons.Rebindable!(immutable(TimeZone))' * TemplateInstance::codegen: 'std.traits.isDynamicArray!(immutable(TimeZone))' * TemplateInstance::codegen: 'std.traits.isAggregateType!(immutable(TimeZone))' * TemplateInstance::codegen: 'std.traits.OriginalType!(immutable(TimeZone))' * TemplateInstance::codegen: 'std.traits.ModifyTypePreservingSTC!(Impl, immutable(TimeZone))' * TemplateInstance::codegen: 'std.traits.OriginalType!(immutable(TimeZone)).Modifier!(TimeZone)' * TemplateInstance::codegen: 'std.traits.Unqual!(immutable(TimeZone))' * TemplateInstance::codegen: 'std.typecons.Flag!"preserveAttributes"' * TemplateInstance::codegen: 'std.traits.isDynamicArray!(DirHandle[])' * TemplateInstance::codegen: 'std.traits.DynamicArrayTypeOf!(DirHandle[])' * TemplateInstance::codegen: 'std.traits.isAggregateType!(DirHandle[])' * TemplateInstance::codegen: 'std.traits.OriginalType!(DirHandle[])' * TemplateInstance::codegen: 'std.traits.ModifyTypePreservingSTC!(Impl, DirHandle[])' * TemplateInstance::codegen: 'std.traits.OriginalType!(DirHandle[]).Modifier!(DirHandle[])' * TemplateInstance::codegen: 'std.traits.Unqual!(DirHandle[])' * TemplateInstance::codegen: 'std.array.Appender!(DirHandle[])' * TemplateInstance::codegen: 'std.range.primitives.ElementEncodingType!(DirHandle[])' * TemplateInstance::codegen: 'std.range.primitives.ElementType!(DirHandle[])' * TemplateInstance::codegen: 'std.traits.isNarrowString!(DirHandle[])' * TemplateInstance::codegen: 'std.traits.isStaticArray!(DirHandle[])' * TemplateInstance::codegen: 'std.range.primitives.front!(DirHandle)' * TemplateInstance::codegen: 'std.traits.Unqual!(DirHandle)' * TemplateInstance::codegen: 'std.traits.isMutable!(DirHandle)' * TemplateInstance::codegen: 'std.traits.isDynamicArray!(DirEntry[])' * TemplateInstance::codegen: 'std.traits.DynamicArrayTypeOf!(DirEntry[])' * TemplateInstance::codegen: 'std.traits.isAggregateType!(DirEntry[])' * TemplateInstance::codegen: 'std.traits.OriginalType!(DirEntry[])' * TemplateInstance::codegen: 'std.traits.ModifyTypePreservingSTC!(Impl, DirEntry[])' * TemplateInstance::codegen: 'std.traits.OriginalType!(DirEntry[]).Modifier!(DirEntry[])' * TemplateInstance::codegen: 'std.traits.Unqual!(DirEntry[])' * TemplateInstance::codegen: 'std.array.Appender!(DirEntry[])' * TemplateInstance::codegen: 'std.range.primitives.ElementEncodingType!(DirEntry[])' * TemplateInstance::codegen: 'std.range.primitives.ElementType!(DirEntry[])' * TemplateInstance::codegen: 'std.traits.isNarrowString!(DirEntry[])' * TemplateInstance::codegen: 'std.traits.isStaticArray!(DirEntry[])' * TemplateInstance::codegen: 'std.range.primitives.front!(DirEntry)' * TemplateInstance::codegen: 'std.traits.Unqual!(DirEntry)' * TemplateInstance::codegen: 'std.traits.isMutable!(DirEntry)' * TemplateInstance::codegen: 'std.typecons.RefCounted!(DirIteratorImpl, cast(RefCountedAutoInitialize)0)' * TemplateInstance::codegen: 'core.internal.traits.externDFunc!("rt.tlsgc.init", void* function(), void*())' * TemplateInstance::codegen: 'core.demangle.mangleFunc!(void* function(), void*())' * TemplateInstance::codegen: 'core.demangle.isExternD!(void*())' * TemplateInstance::codegen: 'core.demangle.mangle!(void*())' * TemplateInstance::codegen: 'object.RTInfo!(DotSplitter)' * TypeInfoDeclaration::codegen(typeid(const(char[]))) * TemplateInstance::codegen: 'core.internal.traits.externDFunc!("rt.tlsgc.destroy", void function(void*), void(void*))' * TemplateInstance::codegen: 'core.demangle.mangleFunc!(void function(void*), void(void*))' * TemplateInstance::codegen: 'core.demangle.isExternD!(void(void*))' * TemplateInstance::codegen: 'core.demangle.mangle!(void(void*))' * TemplateInstance::codegen: 'object.RTInfo!(DotSplitter)' * TemplateInstance::codegen: 'core.internal.traits.externDFunc!("rt.tlsgc.scan", void function(void*, scope void delegate(void*, void*) nothrow) nothrow, nothrow void(void*, scope void delegate(void*, void*) nothrow))' * TemplateInstance::codegen: 'core.demangle.mangleFunc!(void function(void*, scope void delegate(void*, void*) nothrow) nothrow, nothrow void(void*, scope void delegate(void*, void*) nothrow))' * TemplateInstance::codegen: 'core.demangle.isExternD!(nothrow void(void*, scope void delegate(void*, void*) nothrow))' * TemplateInstance::codegen: 'core.demangle.mangle!(nothrow void(void*, scope void delegate(void*, void*) nothrow))' * TemplateInstance::codegen: 'object.RTInfo!(DotSplitter)' * TemplateInstance::codegen: 'core.internal.traits.externDFunc!("rt.tlsgc.processGCMarks", void function(void*, scope int delegate(void*) nothrow) nothrow, nothrow void(void*, scope int delegate(void*) nothrow))' * TemplateInstance::codegen: 'core.demangle.mangleFunc!(void function(void*, scope int delegate(void*) nothrow) nothrow, nothrow void(void*, scope int delegate(void*) nothrow))' * TemplateInstance::codegen: 'core.demangle.isExternD!(nothrow void(void*, scope int delegate(void*) nothrow))' * TemplateInstance::codegen: 'core.demangle.mangle!(nothrow void(void*, scope int delegate(void*) nothrow))' * TemplateInstance::codegen: 'object.RTInfo!(DotSplitter)' * TemplateInstance::codegen: 'std.bitmanip.bitfields!(bool, "caseSensitive", 1, bool, "bundling", 1, bool, "passThrough", 1, bool, "stopOnFirstNonOption", 1, bool, "keepEndOfOptions", 1, bool, "required", 1, ubyte, "", 2)' * TemplateInstance::codegen: 'std.bitmanip.createStoreName!(bool, "caseSensitive", 1, bool, "bundling", 1, bool, "passThrough", 1, bool, "stopOnFirstNonOption", 1, bool, "keepEndOfOptions", 1, bool, "required", 1, ubyte, "", 2)' * TemplateInstance::codegen: 'std.bitmanip.createStoreName!(bool, "bundling", 1, bool, "passThrough", 1, bool, "stopOnFirstNonOption", 1, bool, "keepEndOfOptions", 1, bool, "required", 1, ubyte, "", 2)' * TemplateInstance::codegen: 'std.bitmanip.createStoreName!(bool, "passThrough", 1, bool, "stopOnFirstNonOption", 1, bool, "keepEndOfOptions", 1, bool, "required", 1, ubyte, "", 2)' * TemplateInstance::codegen: 'std.bitmanip.createStoreName!(bool, "stopOnFirstNonOption", 1, bool, "keepEndOfOptions", 1, bool, "required", 1, ubyte, "", 2)' * TemplateInstance::codegen: 'std.bitmanip.createStoreName!(bool, "keepEndOfOptions", 1, bool, "required", 1, ubyte, "", 2)' * TemplateInstance::codegen: 'std.bitmanip.createStoreName!(bool, "required", 1, ubyte, "", 2)' * TemplateInstance::codegen: 'std.bitmanip.createStoreName!(ubyte, "", 2)' * TemplateInstance::codegen: 'std.bitmanip.createFields!("_caseSensitive_bundling_passThrough_stopOnFirstNonOption_keepEndOfOptions_required_", 0LU, bool, "caseSensitive", 1, bool, "bundling", 1, bool, "passThrough", 1, bool, "stopOnFirstNonOption", 1, bool, "keepEndOfOptions", 1, bool, "required", 1, ubyte, "", 2)' * TemplateInstance::codegen: 'std.bitmanip.createAccessors!("_caseSensitive_bundling_passThrough_stopOnFirstNonOption_keepEndOfOptions_required_", bool, "caseSensitive", 1LU, 0LU)' * TemplateInstance::codegen: 'std.bitmanip.createFields!("_caseSensitive_bundling_passThrough_stopOnFirstNonOption_keepEndOfOptions_required_", 1LU, bool, "bundling", 1, bool, "passThrough", 1, bool, "stopOnFirstNonOption", 1, bool, "keepEndOfOptions", 1, bool, "required", 1, ubyte, "", 2)' * TemplateInstance::codegen: 'std.bitmanip.createAccessors!("_caseSensitive_bundling_passThrough_stopOnFirstNonOption_keepEndOfOptions_required_", bool, "bundling", 1LU, 1LU)' * TemplateInstance::codegen: 'std.bitmanip.createFields!("_caseSensitive_bundling_passThrough_stopOnFirstNonOption_keepEndOfOptions_required_", 2LU, bool, "passThrough", 1, bool, "stopOnFirstNonOption", 1, bool, "keepEndOfOptions", 1, bool, "required", 1, ubyte, "", 2)' * TemplateInstance::codegen: 'std.bitmanip.createAccessors!("_caseSensitive_bundling_passThrough_stopOnFirstNonOption_keepEndOfOptions_required_", bool, "passThrough", 1LU, 2LU)' * TemplateInstance::codegen: 'std.bitmanip.createFields!("_caseSensitive_bundling_passThrough_stopOnFirstNonOption_keepEndOfOptions_required_", 3LU, bool, "stopOnFirstNonOption", 1, bool, "keepEndOfOptions", 1, bool, "required", 1, ubyte, "", 2)' * TemplateInstance::codegen: 'std.bitmanip.createAccessors!("_caseSensitive_bundling_passThrough_stopOnFirstNonOption_keepEndOfOptions_required_", bool, "stopOnFirstNonOption", 1LU, 3LU)' * TemplateInstance::codegen: 'std.bitmanip.createFields!("_caseSensitive_bundling_passThrough_stopOnFirstNonOption_keepEndOfOptions_required_", 4LU, bool, "keepEndOfOptions", 1, bool, "required", 1, ubyte, "", 2)' * TemplateInstance::codegen: 'std.bitmanip.createAccessors!("_caseSensitive_bundling_passThrough_stopOnFirstNonOption_keepEndOfOptions_required_", bool, "keepEndOfOptions", 1LU, 4LU)' * TemplateInstance::codegen: 'std.bitmanip.createFields!("_caseSensitive_bundling_passThrough_stopOnFirstNonOption_keepEndOfOptions_required_", 5LU, bool, "required", 1, ubyte, "", 2)' * TemplateInstance::codegen: 'std.bitmanip.createAccessors!("_caseSensitive_bundling_passThrough_stopOnFirstNonOption_keepEndOfOptions_required_", bool, "required", 1LU, 5LU)' * TemplateInstance::codegen: 'std.bitmanip.createFields!("_caseSensitive_bundling_passThrough_stopOnFirstNonOption_keepEndOfOptions_required_", 6LU, ubyte, "", 2)' * TemplateInstance::codegen: 'std.bitmanip.createAccessors!("_caseSensitive_bundling_passThrough_stopOnFirstNonOption_keepEndOfOptions_required_", ubyte, "", 2LU, 6LU)' * TemplateInstance::codegen: 'std.bitmanip.createFields!("_caseSensitive_bundling_passThrough_stopOnFirstNonOption_keepEndOfOptions_required_", 8LU)' * TemplateInstance::codegen: 'std.traits.isDynamicArray!string' * * VarDeclaration::codegen(): 'std.traits.isDynamicArray!string.isDynamicArray' * * * DtoResolveVariable(std.traits.isDynamicArray!string.isDynamicArray) * TemplateInstance::codegen: 'std.traits.DynamicArrayTypeOf!string' * TemplateInstance::codegen: 'std.traits.isAggregateType!string' * * VarDeclaration::codegen(): 'std.traits.isAggregateType!string.isAggregateType' * * * DtoResolveVariable(std.traits.isAggregateType!string.isAggregateType) * TemplateInstance::codegen: 'std.traits.OriginalType!string' * TemplateInstance::codegen: 'std.traits.ModifyTypePreservingSTC!(Impl, string)' * TemplateInstance::codegen: 'std.traits.OriginalType!string.Modifier!string' * TemplateInstance::codegen: 'std.traits.Unqual!string' * * Ignoring Dsymbol::codegen for std.traits.Unqual!string.Unqual * TemplateInstance::codegen: 'std.array.Appender!string' * TemplateInstance::codegen: 'std.range.primitives.ElementEncodingType!string' * TemplateInstance::codegen: 'std.traits.StringTypeOf!string' * TemplateInstance::codegen: 'std.traits.Unqual!(immutable(char))' * TemplateInstance::codegen: 'std.traits.isMutable!(immutable(char))' * TemplateInstance::codegen: 'std.uni.SliceOverIndexed!(int[])' * TemplateInstance::codegen: 'std.uni.SliceOverIndexed!(int[]).SliceOverIndexed.opEquals!(SliceOverIndexed!(int[]))' * TemplateInstance::codegen: 'std.range.primitives.isRandomAccessRange!(SliceOverIndexed!(int[]))' * TemplateInstance::codegen: 'std.range.primitives.isBidirectionalRange!(SliceOverIndexed!(int[]))' * TemplateInstance::codegen: 'std.range.primitives.isForwardRange!(SliceOverIndexed!(int[]))' * TemplateInstance::codegen: 'std.range.primitives.isInputRange!(SliceOverIndexed!(int[]))' * TemplateInstance::codegen: 'std.traits.isNarrowString!(SliceOverIndexed!(int[]))' * TemplateInstance::codegen: 'std.traits.isAggregateType!(SliceOverIndexed!(int[]))' * TemplateInstance::codegen: 'std.traits.isStaticArray!(SliceOverIndexed!(int[]))' * TemplateInstance::codegen: 'std.traits.OriginalType!(SliceOverIndexed!(int[]))' * TemplateInstance::codegen: 'std.traits.ModifyTypePreservingSTC!(Impl, SliceOverIndexed!(int[]))' * TemplateInstance::codegen: 'std.traits.OriginalType!(SliceOverIndexed!(int[])).Modifier!(SliceOverIndexed!(int[]))' * TemplateInstance::codegen: 'std.range.primitives.hasLength!(SliceOverIndexed!(int[]))' * TemplateInstance::codegen: 'std.range.primitives.isInfinite!(SliceOverIndexed!(int[]))' * TemplateInstance::codegen: 'std.uni.bitSizeOf!(assumeSize!(low_8, 8LU))' * TemplateInstance::codegen: 'std.uni.sliceBits!(4LU, 7LU)' * TemplateInstance::codegen: 'std.uni.bitSizeOf!(sliceBits!(4LU, 7LU))' * TemplateInstance::codegen: 'std.traits.isIntegral!uint' * TemplateInstance::codegen: 'std.traits.IntegralTypeOf!uint' * TemplateInstance::codegen: 'std.traits.isAggregateType!uint' * TemplateInstance::codegen: 'std.traits.OriginalType!uint' * TemplateInstance::codegen: 'std.traits.ModifyTypePreservingSTC!(Impl, uint)' * TemplateInstance::codegen: 'std.traits.OriginalType!uint.Modifier!uint' * TemplateInstance::codegen: 'std.traits.Unqual!uint' * TemplateInstance::codegen: 'std.typetuple.staticIndexOf!(uint, byte, ubyte, short, ushort, int, uint, long, ulong)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(uint, byte, ubyte, short, ushort, int, uint, long, ulong)' * TemplateInstance::codegen: 'std.typetuple.isSame!(uint, byte)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(uint, ubyte, short, ushort, int, uint, long, ulong)' * TemplateInstance::codegen: 'std.typetuple.isSame!(uint, ubyte)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(uint, short, ushort, int, uint, long, ulong)' * TemplateInstance::codegen: 'std.typetuple.isSame!(uint, short)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(uint, ushort, int, uint, long, ulong)' * TemplateInstance::codegen: 'std.typetuple.isSame!(uint, ushort)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(uint, int, uint, long, ulong)' * TemplateInstance::codegen: 'std.typetuple.isSame!(uint, int)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(uint, uint, long, ulong)' * TemplateInstance::codegen: 'std.typetuple.isSame!(uint, uint)' * TemplateInstance::codegen: 'std.uni.BitPacked!(uint, 2LU)' * TemplateInstance::codegen: 'std.uni.bitSizeOf!(BitPacked!(uint, 2LU))' * TemplateInstance::codegen: 'std.range.primitives.isInputRange!(DecompressedIntervals)' * TemplateInstance::codegen: 'std.range.primitives.isForwardRange!(DecompressedIntervals)' * TemplateInstance::codegen: 'object.RTInfo!(AutocompleteRequest)' * * VarDeclaration::codegen(): 'object.RTInfo!(AutocompleteRequest).RTInfo' * * * DtoResolveVariable(object.RTInfo!(AutocompleteRequest).RTInfo) * TypeInfoDeclaration::codegen(typeid(const(string))) * TypeInfoDeclaration::codegen(typeid(const(RequestKind))) * TypeInfoDeclaration::codegen(typeid(const(string[]))) * TypeInfoDeclaration::codegen(typeid(const(ubyte[]))) * TypeInfoDeclaration::codegen(typeid(const(ulong))) * TemplateInstance::codegen: 'object.RTInfo!(AutocompleteResponse)' * * VarDeclaration::codegen(): 'object.RTInfo!(AutocompleteResponse).RTInfo' * * * DtoResolveVariable(object.RTInfo!(AutocompleteResponse).RTInfo) * TypeInfoDeclaration::codegen(typeid(const(ulong[]))) * TemplateInstance::codegen: 'std.traits.Unqual!(AutocompleteRequest)' * TemplateInstance::codegen: 'std.traits.isUnsigned!(AutocompleteRequest)' * TemplateInstance::codegen: 'std.traits.isAggregateType!(AutocompleteRequest)' * TemplateInstance::codegen: 'std.traits.OriginalType!(AutocompleteRequest)' * TemplateInstance::codegen: 'std.traits.ModifyTypePreservingSTC!(Impl, AutocompleteRequest)' * TemplateInstance::codegen: 'std.traits.OriginalType!(AutocompleteRequest).Modifier!(AutocompleteRequest)' * TemplateInstance::codegen: 'std.typetuple.staticIndexOf!(AutocompleteRequest, byte, ubyte, short, ushort, int, uint, long, ulong)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(AutocompleteRequest, byte, ubyte, short, ushort, int, uint, long, ulong)' * TemplateInstance::codegen: 'std.typetuple.Alias!(AutocompleteRequest)' * TemplateInstance::codegen: 'std.typetuple.isSame!(AutocompleteRequest, byte)' * TemplateInstance::codegen: 'std.typetuple.expectType!(AutocompleteRequest)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(AutocompleteRequest, ubyte, short, ushort, int, uint, long, ulong)' * TemplateInstance::codegen: 'std.typetuple.isSame!(AutocompleteRequest, ubyte)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(AutocompleteRequest, short, ushort, int, uint, long, ulong)' * TemplateInstance::codegen: 'std.typetuple.isSame!(AutocompleteRequest, short)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(AutocompleteRequest, ushort, int, uint, long, ulong)' * TemplateInstance::codegen: 'std.typetuple.isSame!(AutocompleteRequest, ushort)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(AutocompleteRequest, int, uint, long, ulong)' * TemplateInstance::codegen: 'std.typetuple.isSame!(AutocompleteRequest, int)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(AutocompleteRequest, uint, long, ulong)' * TemplateInstance::codegen: 'std.typetuple.isSame!(AutocompleteRequest, uint)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(AutocompleteRequest, long, ulong)' * TemplateInstance::codegen: 'std.typetuple.isSame!(AutocompleteRequest, long)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(AutocompleteRequest, ulong)' * TemplateInstance::codegen: 'std.typetuple.isSame!(AutocompleteRequest, ulong)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(AutocompleteRequest)' * TemplateInstance::codegen: 'std.traits.isSigned!(AutocompleteRequest)' * TemplateInstance::codegen: 'std.typetuple.staticIndexOf!(AutocompleteRequest, float, double, real)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(AutocompleteRequest, float, double, real)' * TemplateInstance::codegen: 'std.typetuple.Alias!float' * TemplateInstance::codegen: 'std.typetuple.isSame!(AutocompleteRequest, float)' * TemplateInstance::codegen: 'std.typetuple.expectType!float' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(AutocompleteRequest, double, real)' * TemplateInstance::codegen: 'std.typetuple.Alias!double' * TemplateInstance::codegen: 'std.typetuple.isSame!(AutocompleteRequest, double)' * TemplateInstance::codegen: 'std.typetuple.expectType!double' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(AutocompleteRequest, real)' * TemplateInstance::codegen: 'std.typetuple.Alias!real' * TemplateInstance::codegen: 'std.typetuple.isSame!(AutocompleteRequest, real)' * TemplateInstance::codegen: 'std.typetuple.expectType!real' * TemplateInstance::codegen: 'std.traits.isFloatingPoint!(AutocompleteRequest)' * TemplateInstance::codegen: 'std.traits.isPointer!(AutocompleteRequest)' * TemplateInstance::codegen: 'std.traits.isArray!(AutocompleteRequest)' * TemplateInstance::codegen: 'std.traits.isStaticArray!(AutocompleteRequest)' * TemplateInstance::codegen: 'std.traits.isDynamicArray!(AutocompleteRequest)' * TemplateInstance::codegen: 'std.traits.isAssociativeArray!(AutocompleteRequest)' * TemplateInstance::codegen: 'std.traits.Unqual!(const(AutocompleteRequest))' * * Ignoring Dsymbol::codegen for std.traits.Unqual!(const(AutocompleteRequest)).Unqual * TemplateInstance::codegen: 'std.traits.hasMember!(const(AutocompleteRequest), "toMsgpack")' * * VarDeclaration::codegen(): 'std.traits.hasMember!(const(AutocompleteRequest), "toMsgpack").hasMember' * * * DtoResolveVariable(std.traits.hasMember!(const(AutocompleteRequest), "toMsgpack").hasMember) * TemplateInstance::codegen: 'std.typetuple.staticIndexOf!("toMsgpack", "fileName", "kind", "importPaths", "sourceCode", "cursorPosition", "searchName")' * * VarDeclaration::codegen(): 'std.typetuple.staticIndexOf!("toMsgpack", "fileName", "kind", "importPaths", "sourceCode", "cursorPosition", "searchName").staticIndexOf' * * * DtoResolveVariable(std.typetuple.staticIndexOf!("toMsgpack", "fileName", "kind", "importPaths", "sourceCode", "cursorPosition", "searchName").staticIndexOf) * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("toMsgpack", "fileName", "kind", "importPaths", "sourceCode", "cursorPosition", "searchName")' * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!("toMsgpack", "fileName", "kind", "importPaths", "sourceCode", "cursorPosition", "searchName").e * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!("toMsgpack", "fileName", "kind", "importPaths", "sourceCode", "cursorPosition", "searchName").tuple * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!("toMsgpack", "fileName", "kind", "importPaths", "sourceCode", "cursorPosition", "searchName").head * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!("toMsgpack", "fileName", "kind", "importPaths", "sourceCode", "cursorPosition", "searchName").tail * * VarDeclaration::codegen(): 'std.typetuple.genericIndexOf!("toMsgpack", "fileName", "kind", "importPaths", "sourceCode", "cursorPosition", "searchName").next' * * * DtoResolveVariable(std.typetuple.genericIndexOf!("toMsgpack", "fileName", "kind", "importPaths", "sourceCode", "cursorPosition", "searchName").next) * * VarDeclaration::codegen(): 'std.typetuple.genericIndexOf!("toMsgpack", "fileName", "kind", "importPaths", "sourceCode", "cursorPosition", "searchName").index' * * * DtoResolveVariable(std.typetuple.genericIndexOf!("toMsgpack", "fileName", "kind", "importPaths", "sourceCode", "cursorPosition", "searchName").index) * TemplateInstance::codegen: 'std.typetuple.Alias!("toMsgpack")' * * Ignoring Dsymbol::codegen for std.typetuple.Alias!("toMsgpack").Alias * TemplateInstance::codegen: 'std.typetuple.Alias!"fileName"' * * Ignoring Dsymbol::codegen for std.typetuple.Alias!"fileName".Alias * TemplateInstance::codegen: 'std.typetuple.isSame!("toMsgpack", "fileName")' * * VarDeclaration::codegen(): 'std.typetuple.isSame!("toMsgpack", "fileName").isSame' * * * DtoResolveVariable(std.typetuple.isSame!("toMsgpack", "fileName").isSame) * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("toMsgpack", "kind", "importPaths", "sourceCode", "cursorPosition", "searchName")' * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!("toMsgpack", "kind", "importPaths", "sourceCode", "cursorPosition", "searchName").e * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!("toMsgpack", "kind", "importPaths", "sourceCode", "cursorPosition", "searchName").tuple * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!("toMsgpack", "kind", "importPaths", "sourceCode", "cursorPosition", "searchName").head * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!("toMsgpack", "kind", "importPaths", "sourceCode", "cursorPosition", "searchName").tail * * VarDeclaration::codegen(): 'std.typetuple.genericIndexOf!("toMsgpack", "kind", "importPaths", "sourceCode", "cursorPosition", "searchName").next' * * * DtoResolveVariable(std.typetuple.genericIndexOf!("toMsgpack", "kind", "importPaths", "sourceCode", "cursorPosition", "searchName").next) * * VarDeclaration::codegen(): 'std.typetuple.genericIndexOf!("toMsgpack", "kind", "importPaths", "sourceCode", "cursorPosition", "searchName").index' * * * DtoResolveVariable(std.typetuple.genericIndexOf!("toMsgpack", "kind", "importPaths", "sourceCode", "cursorPosition", "searchName").index) * TemplateInstance::codegen: 'std.typetuple.Alias!"kind"' * * Ignoring Dsymbol::codegen for std.typetuple.Alias!"kind".Alias * TemplateInstance::codegen: 'std.typetuple.isSame!("toMsgpack", "kind")' * * VarDeclaration::codegen(): 'std.typetuple.isSame!("toMsgpack", "kind").isSame' * * * DtoResolveVariable(std.typetuple.isSame!("toMsgpack", "kind").isSame) * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("toMsgpack", "importPaths", "sourceCode", "cursorPosition", "searchName")' * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!("toMsgpack", "importPaths", "sourceCode", "cursorPosition", "searchName").e * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!("toMsgpack", "importPaths", "sourceCode", "cursorPosition", "searchName").tuple * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!("toMsgpack", "importPaths", "sourceCode", "cursorPosition", "searchName").head * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!("toMsgpack", "importPaths", "sourceCode", "cursorPosition", "searchName").tail * * VarDeclaration::codegen(): 'std.typetuple.genericIndexOf!("toMsgpack", "importPaths", "sourceCode", "cursorPosition", "searchName").next' * * * DtoResolveVariable(std.typetuple.genericIndexOf!("toMsgpack", "importPaths", "sourceCode", "cursorPosition", "searchName").next) * * VarDeclaration::codegen(): 'std.typetuple.genericIndexOf!("toMsgpack", "importPaths", "sourceCode", "cursorPosition", "searchName").index' * * * DtoResolveVariable(std.typetuple.genericIndexOf!("toMsgpack", "importPaths", "sourceCode", "cursorPosition", "searchName").index) * TemplateInstance::codegen: 'std.typetuple.Alias!"importPaths"' * * Ignoring Dsymbol::codegen for std.typetuple.Alias!"importPaths".Alias * TemplateInstance::codegen: 'std.typetuple.isSame!("toMsgpack", "importPaths")' * * VarDeclaration::codegen(): 'std.typetuple.isSame!("toMsgpack", "importPaths").isSame' * * * DtoResolveVariable(std.typetuple.isSame!("toMsgpack", "importPaths").isSame) * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("toMsgpack", "sourceCode", "cursorPosition", "searchName")' * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!("toMsgpack", "sourceCode", "cursorPosition", "searchName").e * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!("toMsgpack", "sourceCode", "cursorPosition", "searchName").tuple * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!("toMsgpack", "sourceCode", "cursorPosition", "searchName").head * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!("toMsgpack", "sourceCode", "cursorPosition", "searchName").tail * * VarDeclaration::codegen(): 'std.typetuple.genericIndexOf!("toMsgpack", "sourceCode", "cursorPosition", "searchName").next' * * * DtoResolveVariable(std.typetuple.genericIndexOf!("toMsgpack", "sourceCode", "cursorPosition", "searchName").next) * * VarDeclaration::codegen(): 'std.typetuple.genericIndexOf!("toMsgpack", "sourceCode", "cursorPosition", "searchName").index' * * * DtoResolveVariable(std.typetuple.genericIndexOf!("toMsgpack", "sourceCode", "cursorPosition", "searchName").index) * TemplateInstance::codegen: 'std.typetuple.Alias!"sourceCode"' * * Ignoring Dsymbol::codegen for std.typetuple.Alias!"sourceCode".Alias * TemplateInstance::codegen: 'std.typetuple.isSame!("toMsgpack", "sourceCode")' * * VarDeclaration::codegen(): 'std.typetuple.isSame!("toMsgpack", "sourceCode").isSame' * * * DtoResolveVariable(std.typetuple.isSame!("toMsgpack", "sourceCode").isSame) * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("toMsgpack", "cursorPosition", "searchName")' * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!("toMsgpack", "cursorPosition", "searchName").e * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!("toMsgpack", "cursorPosition", "searchName").tuple * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!("toMsgpack", "cursorPosition", "searchName").head * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!("toMsgpack", "cursorPosition", "searchName").tail * * VarDeclaration::codegen(): 'std.typetuple.genericIndexOf!("toMsgpack", "cursorPosition", "searchName").next' * * * DtoResolveVariable(std.typetuple.genericIndexOf!("toMsgpack", "cursorPosition", "searchName").next) * * VarDeclaration::codegen(): 'std.typetuple.genericIndexOf!("toMsgpack", "cursorPosition", "searchName").index' * * * DtoResolveVariable(std.typetuple.genericIndexOf!("toMsgpack", "cursorPosition", "searchName").index) * TemplateInstance::codegen: 'std.typetuple.Alias!"cursorPosition"' * * Ignoring Dsymbol::codegen for std.typetuple.Alias!"cursorPosition".Alias * TemplateInstance::codegen: 'std.typetuple.isSame!("toMsgpack", "cursorPosition")' * * VarDeclaration::codegen(): 'std.typetuple.isSame!("toMsgpack", "cursorPosition").isSame' * * * DtoResolveVariable(std.typetuple.isSame!("toMsgpack", "cursorPosition").isSame) * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("toMsgpack", "searchName")' * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!("toMsgpack", "searchName").e * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!("toMsgpack", "searchName").tuple * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!("toMsgpack", "searchName").head * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!("toMsgpack", "searchName").tail * * VarDeclaration::codegen(): 'std.typetuple.genericIndexOf!("toMsgpack", "searchName").next' * * * DtoResolveVariable(std.typetuple.genericIndexOf!("toMsgpack", "searchName").next) * * VarDeclaration::codegen(): 'std.typetuple.genericIndexOf!("toMsgpack", "searchName").index' * * * DtoResolveVariable(std.typetuple.genericIndexOf!("toMsgpack", "searchName").index) * TemplateInstance::codegen: 'std.typetuple.Alias!"searchName"' * * Ignoring Dsymbol::codegen for std.typetuple.Alias!"searchName".Alias * TemplateInstance::codegen: 'std.typetuple.isSame!("toMsgpack", "searchName")' * * VarDeclaration::codegen(): 'std.typetuple.isSame!("toMsgpack", "searchName").isSame' * * * DtoResolveVariable(std.typetuple.isSame!("toMsgpack", "searchName").isSame) * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("toMsgpack")' * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!("toMsgpack").e * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!("toMsgpack").tuple * * VarDeclaration::codegen(): 'std.typetuple.genericIndexOf!("toMsgpack").index' * * * DtoResolveVariable(std.typetuple.genericIndexOf!("toMsgpack").index) * TemplateInstance::codegen: 'std.typecons.isTuple!(const(AutocompleteRequest))' * * VarDeclaration::codegen(): 'std.typecons.isTuple!(const(AutocompleteRequest)).isTuple' * * * DtoResolveVariable(std.typecons.isTuple!(const(AutocompleteRequest)).isTuple) * TemplateInstance::codegen: 'common.messages.AutocompleteRequest.Filter!(isPackedField, fileName, kind, importPaths, sourceCode, cursorPosition, searchName)' * * Ignoring Dsymbol::codegen for common.messages.AutocompleteRequest.Filter!(isPackedField, fileName, kind, importPaths, sourceCode, cursorPosition, searchName).Filter * TemplateInstance::codegen: 'common.messages.AutocompleteRequest.Filter!(isPackedField, fileName, kind, importPaths)' * * Ignoring Dsymbol::codegen for common.messages.AutocompleteRequest.Filter!(isPackedField, fileName, kind, importPaths).Filter * TemplateInstance::codegen: 'common.messages.AutocompleteRequest.Filter!(isPackedField, fileName)' * * Ignoring Dsymbol::codegen for common.messages.AutocompleteRequest.Filter!(isPackedField, fileName).Filter * TemplateInstance::codegen: 'common.messages.AutocompleteRequest.pred!(fileName)' * * VarDeclaration::codegen(): 'common.messages.AutocompleteRequest.pred!(fileName).isPackedField' * * * DtoResolveVariable(common.messages.AutocompleteRequest.pred!(fileName).isPackedField) * TemplateInstance::codegen: 'std.typetuple.staticIndexOf!(nonPacked)' * * VarDeclaration::codegen(): 'std.typetuple.staticIndexOf!(nonPacked).staticIndexOf' * * * DtoResolveVariable(std.typetuple.staticIndexOf!(nonPacked).staticIndexOf) * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(nonPacked)' * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!(nonPacked).e * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!(nonPacked).tuple * * VarDeclaration::codegen(): 'std.typetuple.genericIndexOf!(nonPacked).index' * * * DtoResolveVariable(std.typetuple.genericIndexOf!(nonPacked).index) * TemplateInstance::codegen: 'std.typetuple.Alias!(nonPacked)' * * Ignoring Dsymbol::codegen for std.typetuple.Alias!(nonPacked).Alias * TemplateInstance::codegen: 'std.traits.isSomeFunction!string' * * VarDeclaration::codegen(): 'std.traits.isSomeFunction!string.isSomeFunction' * * * DtoResolveVariable(std.traits.isSomeFunction!string.isSomeFunction) * TemplateInstance::codegen: 'common.messages.AutocompleteRequest.TypeTuple!(fileName)' * * Ignoring Dsymbol::codegen for common.messages.AutocompleteRequest.TypeTuple!(fileName).TypeTuple * TemplateInstance::codegen: 'common.messages.AutocompleteRequest.Filter!(isPackedField, kind, importPaths)' * * Ignoring Dsymbol::codegen for common.messages.AutocompleteRequest.Filter!(isPackedField, kind, importPaths).Filter * TemplateInstance::codegen: 'common.messages.AutocompleteRequest.Filter!(isPackedField, kind)' * * Ignoring Dsymbol::codegen for common.messages.AutocompleteRequest.Filter!(isPackedField, kind).Filter * TemplateInstance::codegen: 'common.messages.AutocompleteRequest.pred!(kind)' * * VarDeclaration::codegen(): 'common.messages.AutocompleteRequest.pred!(kind).isPackedField' * * * DtoResolveVariable(common.messages.AutocompleteRequest.pred!(kind).isPackedField) * TemplateInstance::codegen: 'std.traits.isSomeFunction!(RequestKind)' * * VarDeclaration::codegen(): 'std.traits.isSomeFunction!(RequestKind).isSomeFunction' * * * DtoResolveVariable(std.traits.isSomeFunction!(RequestKind).isSomeFunction) * TemplateInstance::codegen: 'common.messages.AutocompleteRequest.TypeTuple!(kind)' * * Ignoring Dsymbol::codegen for common.messages.AutocompleteRequest.TypeTuple!(kind).TypeTuple * TemplateInstance::codegen: 'common.messages.AutocompleteRequest.Filter!(isPackedField, importPaths)' * * Ignoring Dsymbol::codegen for common.messages.AutocompleteRequest.Filter!(isPackedField, importPaths).Filter * TemplateInstance::codegen: 'common.messages.AutocompleteRequest.pred!(importPaths)' * * VarDeclaration::codegen(): 'common.messages.AutocompleteRequest.pred!(importPaths).isPackedField' * * * DtoResolveVariable(common.messages.AutocompleteRequest.pred!(importPaths).isPackedField) * TemplateInstance::codegen: 'std.traits.isSomeFunction!(string[])' * * VarDeclaration::codegen(): 'std.traits.isSomeFunction!(string[]).isSomeFunction' * * * DtoResolveVariable(std.traits.isSomeFunction!(string[]).isSomeFunction) * TemplateInstance::codegen: 'common.messages.AutocompleteRequest.TypeTuple!(importPaths)' * * Ignoring Dsymbol::codegen for common.messages.AutocompleteRequest.TypeTuple!(importPaths).TypeTuple * TemplateInstance::codegen: 'common.messages.AutocompleteRequest.TypeTuple!(kind, importPaths)' * * Ignoring Dsymbol::codegen for common.messages.AutocompleteRequest.TypeTuple!(kind, importPaths).TypeTuple * TemplateInstance::codegen: 'common.messages.AutocompleteRequest.TypeTuple!(fileName, kind, importPaths)' * * Ignoring Dsymbol::codegen for common.messages.AutocompleteRequest.TypeTuple!(fileName, kind, importPaths).TypeTuple * TemplateInstance::codegen: 'common.messages.AutocompleteRequest.Filter!(isPackedField, sourceCode, cursorPosition, searchName)' * * Ignoring Dsymbol::codegen for common.messages.AutocompleteRequest.Filter!(isPackedField, sourceCode, cursorPosition, searchName).Filter * TemplateInstance::codegen: 'common.messages.AutocompleteRequest.Filter!(isPackedField, sourceCode)' * * Ignoring Dsymbol::codegen for common.messages.AutocompleteRequest.Filter!(isPackedField, sourceCode).Filter * TemplateInstance::codegen: 'common.messages.AutocompleteRequest.pred!(sourceCode)' * * VarDeclaration::codegen(): 'common.messages.AutocompleteRequest.pred!(sourceCode).isPackedField' * * * DtoResolveVariable(common.messages.AutocompleteRequest.pred!(sourceCode).isPackedField) * TemplateInstance::codegen: 'std.traits.isSomeFunction!(ubyte[])' * * VarDeclaration::codegen(): 'std.traits.isSomeFunction!(ubyte[]).isSomeFunction' * * * DtoResolveVariable(std.traits.isSomeFunction!(ubyte[]).isSomeFunction) * TemplateInstance::codegen: 'common.messages.AutocompleteRequest.TypeTuple!(sourceCode)' * * Ignoring Dsymbol::codegen for common.messages.AutocompleteRequest.TypeTuple!(sourceCode).TypeTuple * TemplateInstance::codegen: 'common.messages.AutocompleteRequest.Filter!(isPackedField, cursorPosition, searchName)' * * Ignoring Dsymbol::codegen for common.messages.AutocompleteRequest.Filter!(isPackedField, cursorPosition, searchName).Filter * TemplateInstance::codegen: 'common.messages.AutocompleteRequest.Filter!(isPackedField, cursorPosition)' * * Ignoring Dsymbol::codegen for common.messages.AutocompleteRequest.Filter!(isPackedField, cursorPosition).Filter * TemplateInstance::codegen: 'common.messages.AutocompleteRequest.pred!(cursorPosition)' * * VarDeclaration::codegen(): 'common.messages.AutocompleteRequest.pred!(cursorPosition).isPackedField' * * * DtoResolveVariable(common.messages.AutocompleteRequest.pred!(cursorPosition).isPackedField) * TemplateInstance::codegen: 'std.traits.isSomeFunction!ulong' * * VarDeclaration::codegen(): 'std.traits.isSomeFunction!ulong.isSomeFunction' * * * DtoResolveVariable(std.traits.isSomeFunction!ulong.isSomeFunction) * TemplateInstance::codegen: 'common.messages.AutocompleteRequest.TypeTuple!(cursorPosition)' * * Ignoring Dsymbol::codegen for common.messages.AutocompleteRequest.TypeTuple!(cursorPosition).TypeTuple * TemplateInstance::codegen: 'common.messages.AutocompleteRequest.Filter!(isPackedField, searchName)' * * Ignoring Dsymbol::codegen for common.messages.AutocompleteRequest.Filter!(isPackedField, searchName).Filter * TemplateInstance::codegen: 'common.messages.AutocompleteRequest.pred!(searchName)' * * VarDeclaration::codegen(): 'common.messages.AutocompleteRequest.pred!(searchName).isPackedField' * * * DtoResolveVariable(common.messages.AutocompleteRequest.pred!(searchName).isPackedField) * TemplateInstance::codegen: 'common.messages.AutocompleteRequest.TypeTuple!(searchName)' * * Ignoring Dsymbol::codegen for common.messages.AutocompleteRequest.TypeTuple!(searchName).TypeTuple * TemplateInstance::codegen: 'common.messages.AutocompleteRequest.TypeTuple!(cursorPosition, searchName)' * * Ignoring Dsymbol::codegen for common.messages.AutocompleteRequest.TypeTuple!(cursorPosition, searchName).TypeTuple * TemplateInstance::codegen: 'common.messages.AutocompleteRequest.TypeTuple!(sourceCode, cursorPosition, searchName)' * * Ignoring Dsymbol::codegen for common.messages.AutocompleteRequest.TypeTuple!(sourceCode, cursorPosition, searchName).TypeTuple * TemplateInstance::codegen: 'common.messages.AutocompleteRequest.TypeTuple!(fileName, kind, importPaths, sourceCode, cursorPosition, searchName)' * * Ignoring Dsymbol::codegen for common.messages.AutocompleteRequest.TypeTuple!(fileName, kind, importPaths, sourceCode, cursorPosition, searchName).TypeTuple * TemplateInstance::codegen: 'std.traits.isUnsigned!string' * TemplateInstance::codegen: 'std.typetuple.staticIndexOf!(string, byte, ubyte, short, ushort, int, uint, long, ulong)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(string, byte, ubyte, short, ushort, int, uint, long, ulong)' * TemplateInstance::codegen: 'std.typetuple.Alias!string' * * Ignoring Dsymbol::codegen for std.typetuple.Alias!string.Alias * TemplateInstance::codegen: 'std.typetuple.isSame!(string, byte)' * * VarDeclaration::codegen(): 'std.typetuple.isSame!(string, byte).isSame' * * * DtoResolveVariable(std.typetuple.isSame!(string, byte).isSame) * TemplateInstance::codegen: 'std.typetuple.expectType!string' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(string, ubyte, short, ushort, int, uint, long, ulong)' * TemplateInstance::codegen: 'std.typetuple.isSame!(string, ubyte)' * * VarDeclaration::codegen(): 'std.typetuple.isSame!(string, ubyte).isSame' * * * DtoResolveVariable(std.typetuple.isSame!(string, ubyte).isSame) * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(string, short, ushort, int, uint, long, ulong)' * TemplateInstance::codegen: 'std.typetuple.isSame!(string, short)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(string, ushort, int, uint, long, ulong)' * TemplateInstance::codegen: 'std.typetuple.isSame!(string, ushort)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(string, int, uint, long, ulong)' * TemplateInstance::codegen: 'std.typetuple.isSame!(string, int)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(string, uint, long, ulong)' * TemplateInstance::codegen: 'std.typetuple.isSame!(string, uint)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(string, long, ulong)' * TemplateInstance::codegen: 'std.typetuple.isSame!(string, long)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(string, ulong)' * TemplateInstance::codegen: 'std.typetuple.isSame!(string, ulong)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!string' * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!string.e * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!string.tuple * * VarDeclaration::codegen(): 'std.typetuple.genericIndexOf!string.index' * * * DtoResolveVariable(std.typetuple.genericIndexOf!string.index) * TemplateInstance::codegen: 'std.traits.isSigned!string' * TemplateInstance::codegen: 'std.typetuple.staticIndexOf!(string, float, double, real)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(string, float, double, real)' * TemplateInstance::codegen: 'std.typetuple.isSame!(string, float)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(string, double, real)' * TemplateInstance::codegen: 'std.typetuple.isSame!(string, double)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(string, real)' * TemplateInstance::codegen: 'std.typetuple.isSame!(string, real)' * TemplateInstance::codegen: 'std.traits.isFloatingPoint!string' * TemplateInstance::codegen: 'std.traits.isPointer!string' * TemplateInstance::codegen: 'std.traits.isArray!string' * TemplateInstance::codegen: 'std.traits.isStaticArray!string' * * VarDeclaration::codegen(): 'std.traits.isStaticArray!string.isStaticArray' * * * DtoResolveVariable(std.traits.isStaticArray!string.isStaticArray) * TemplateInstance::codegen: 'std.traits.isAssociativeArray!string' * TemplateInstance::codegen: 'std.traits.Unqual!(const(string))' * * Ignoring Dsymbol::codegen for std.traits.Unqual!(const(string)).Unqual * TemplateInstance::codegen: 'std.range.primitives.empty!char' * TemplateInstance::codegen: 'std.array.Appender!(ubyte[]).Appender.canPutItem!(Format)' * TemplateInstance::codegen: 'std.traits.isImplicitlyConvertible!(Format, ubyte)' * TemplateInstance::codegen: 'std.traits.isSomeChar!(Format)' * TemplateInstance::codegen: 'std.traits.isAggregateType!(Format)' * TemplateInstance::codegen: 'std.traits.OriginalType!(Format)' * TemplateInstance::codegen: 'std.traits.ModifyTypePreservingSTC!(Impl, Format)' * TemplateInstance::codegen: 'std.traits.OriginalType!(Format).Modifier!(Format)' * TemplateInstance::codegen: 'std.array.Appender!(ubyte[]).Appender.canPutConstRange!(Format)' * TemplateInstance::codegen: 'std.traits.Unqual!(Format)' * TemplateInstance::codegen: 'std.range.primitives.isInputRange!(Format)' * TemplateInstance::codegen: 'std.array.Appender!(ubyte[]).Appender.canPutRange!(Format)' * TemplateInstance::codegen: 'std.array.Appender!(ubyte[]).Appender.put!(Format)' * * DtoDefineFunction(std.array.Appender!(ubyte[]).Appender.put!(Format).put): /usr/include/dlang/ldc/std/array.d(2770) * * * isMember = this is: Appender!(ubyte[]) * * * DtoFunctionType(pure nothrow @safe void(Format item)) * * * * Building type: Format * * * * x86-64 ABI: Transforming argument types * * * * Final function type: void (%"std.array.Appender!(ubyte[]).Appender"*, i8) * * * DtoResolveFunction(std.array.Appender!(ubyte[]).Appender.put!(Format).put): /usr/include/dlang/ldc/std/array.d(2770) * * * * DtoDeclareFunction(std.array.Appender!(ubyte[]).Appender.put!(Format).put): /usr/include/dlang/ldc/std/array.d(2770) * * * * * isMember = this is: Appender!(ubyte[]) * * * * * DtoFunctionType(pure nothrow @safe void(Format item)) * * * * * func = declare void @_D3std5array16__T8AppenderTAhZ8Appender25__T3putTE7msgpack6FormatZ3putMFNaNbNfE7msgpack6FormatZv(%"std.array.Appender!(ubyte[]).Appender"*, i8) * * * Doing function body for: put * * * Building type: Format * * * DtoCreateNestedContext for put * * * * DtoCreateNestedContextType for std.array.Appender!(ubyte[]).Appender.put!(Format).put * * * * * has nested frame * * * * * Function put has depth 0 * * * * * Nested var 'this' of type %"std.array.Appender!(ubyte[]).Appender"* * * * * * Nested var 'len' of type i64 * * * * * frameType = %nest.put.1 = type { %"std.array.Appender!(ubyte[]).Appender"*, i64 } * * * * nested param: this * * * * nested var: len * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2771) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2787) * * * * * * CallExp::toElem: this.ensureAddable(1LU) @ void * * * * * * * DotVarExp::toElem: this.ensureAddable @ pure nothrow @trusted void(ulong nelems) * * * * * * * * ThisExp::toElem: this @ Appender!(ubyte[]) * * * * * * * * * normal this exp * * * * * * * DtoCallFunction() * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (1) * * * * * * * * * %"std.array.Appender!(ubyte[]).Appender"* %.this_arg * * * * * * * * Function type: pure nothrow @trusted void(ulong nelems) * * * * * * * * DtoArgument * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * value = i64 1 * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2788) * * * * * * DeclarationExp::toElem: immutable immutable(ulong) len = (*this._data).arr.length; | T=void * * * * * * * DtoDeclarationExp: len * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = immutable(ulong)) * * * * * * * * * has nestedref set (referenced by nested function/delegate) * * * * * * * * * llvm value for decl: %len = getelementptr %nest.put.1, %nest.put.1* %.frame, i32 0, i32 1 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: len = (*this._data).arr.length | (immutable(ulong))(immutable(ulong) = immutable(ulong)) * * * * * * * * * * VarExp::toElem: len @ immutable(ulong) * * * * * * * * * * * DtoSymbolAddress ('len' of type 'immutable(ulong)') * * * * * * * * * * * * nested variable * * * * * * * * * * * * DtoNestedVariable for len @ /usr/include/dlang/ldc/std/array.d(2788) * * * * * * * * * * ArrayLengthExp::toElem: (*this._data).arr.length @ immutable(ulong) * * * * * * * * * * * DotVarExp::toElem: (*this._data).arr @ ubyte[] * * * * * * * * * * * * PtrExp::toElem: *this._data @ Data * * * * * * * * * * * * * DotVarExp::toElem: this._data @ Data* * * * * * * * * * * * * * * ThisExp::toElem: this @ Appender!(ubyte[]) * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * Indexing aggregate field std.array.Appender!(ubyte[]).Appender._data: * * * * * * * * * * * * * * * Value: %1 = getelementptr %"std.array.Appender!(ubyte[]).Appender", %"std.array.Appender!(ubyte[]).Appender"* %.this_arg, i32 0, i32 0 * * * * * * * * * * * * Indexing aggregate field std.array.Appender!(ubyte[]).Appender.Data.arr: * * * * * * * * * * * * * Value: %3 = getelementptr %"std.array.Appender!(ubyte[]).Appender.Data", %"std.array.Appender!(ubyte[]).Appender.Data"* %2, i32 0, i32 1 * * * * * * * * * * * DtoArrayLen * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %len = getelementptr %nest.put.1, %nest.put.1* %.frame, i32 0, i32 1 * * * * * * * * * * * rhs: %.len = load i64, i64* %4 * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2790) * * * * * * DeclarationExp::toElem: ubyte[] bigData = delegate () => (cast(ubyte*)(*this._data).arr)[0..len + 1LU](); | T=void * * * * * * * DtoDeclarationExp: bigData * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = ubyte[]) * * * * * * * * * llvm value for decl: %bigData = alloca { i64, i8* }, align 8 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: bigData = delegate () => (cast(ubyte*)(*this._data).arr)[0..len + 1LU]() | (ubyte[])(ubyte[] = ubyte[]) * * * * * * * * * * VarExp::toElem: bigData @ ubyte[] * * * * * * * * * * * DtoSymbolAddress ('bigData' of type 'ubyte[]') * * * * * * * * * * * * a normal variable * * * * * * * * * * CallExp::toElem: delegate () => (cast(ubyte*)(*this._data).arr)[0..len + 1LU]() @ ubyte[] * * * * * * * * * * * FuncExp::toElem: __lambda2 @ ubyte[] delegate() pure nothrow @nogc @trusted * * * * * * * * * * * * nested * * * * * * * * * * * * kind = delegate * * * * * * * * * * * * DtoDefineFunction(std.array.Appender!(ubyte[]).Appender.put!(Format).put.__lambda2): /usr/include/dlang/ldc/std/array.d(2790) * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted ubyte[]()) * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * Final function type: { i64, i8* } (i8*) * * * * * * * * * * * * * DtoResolveFunction(std.array.Appender!(ubyte[]).Appender.put!(Format).put.__lambda2): /usr/include/dlang/ldc/std/array.d(2790) * * * * * * * * * * * * * * DtoDeclareFunction(std.array.Appender!(ubyte[]).Appender.put!(Format).put.__lambda2): /usr/include/dlang/ldc/std/array.d(2790) * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted ubyte[]()) * * * * * * * * * * * * * * * func = declare { i64, i8* } @_D3std5array16__T8AppenderTAhZ8Appender25__T3putTE7msgpack6FormatZ3putMFE7msgpack6FormatZ9__lambda2MFNaNbNiNeZAh(i8*) * * * * * * * * * * * * * Doing function body for: __lambda2 * * * * * * * * * * * * * DtoCreateNestedContext for __lambda2 * * * * * * * * * * * * * * DtoCreateNestedContextType for std.array.Appender!(ubyte[]).Appender.put!(Format).put.__lambda2 * * * * * * * * * * * * * * * DtoCreateNestedContextType for std.array.Appender!(ubyte[]).Appender.put!(Format).put * * * * * * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2790) * * * * * * * * * * * * * * * SliceExp::toElem: (cast(ubyte*)(*this._data).arr)[0..len + 1LU] @ ubyte[] * * * * * * * * * * * * * * * * CastExp::toElem: cast(ubyte*)(*this._data).arr @ ubyte* * * * * * * * * * * * * * * * * * DotVarExp::toElem: (*this._data).arr @ ubyte[] * * * * * * * * * * * * * * * * * * PtrExp::toElem: *this._data @ Data * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: this._data @ Data* * * * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Appender!(ubyte[]) * * * * * * * * * * * * * * * * * * * * * nested this exp * * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for this @ /usr/include/dlang/ldc/std/array.d(2790) * * * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for std.array.Appender!(ubyte[]).Appender.put!(Format).put * * * * * * * * * * * * * * * * * * * * * * Context: %2 = bitcast i8* %1 to %nest.put.1* * * * * * * * * * * * * * * * * * * * * * * of type: %nest.put.1 = type { %"std.array.Appender!(ubyte[]).Appender"*, i64 } * * * * * * * * * * * * * * * * * * * * * * Variable: this * * * * * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * * * * * Function: __lambda2 * * * * * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * * * * * Addr: %this = getelementptr %nest.put.1, %nest.put.1* %2, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * * * * of type: %"std.array.Appender!(ubyte[]).Appender"** * * * * * * * * * * * * * * * * * * * * * * Was byref, now: %3 = load %"std.array.Appender!(ubyte[]).Appender"*, %"std.array.Appender!(ubyte[]).Appender"** %this, align 8 * * * * * * * * * * * * * * * * * * * * * * of type: %"std.array.Appender!(ubyte[]).Appender"* * * * * * * * * * * * * * * * * * * * * Indexing aggregate field std.array.Appender!(ubyte[]).Appender._data: * * * * * * * * * * * * * * * * * * * * * Value: %4 = getelementptr %"std.array.Appender!(ubyte[]).Appender", %"std.array.Appender!(ubyte[]).Appender"* %3, i32 0, i32 0 * * * * * * * * * * * * * * * * * * Indexing aggregate field std.array.Appender!(ubyte[]).Appender.Data.arr: * * * * * * * * * * * * * * * * * * * Value: %6 = getelementptr %"std.array.Appender!(ubyte[]).Appender.Data", %"std.array.Appender!(ubyte[]).Appender.Data"* %5, i32 0, i32 1 * * * * * * * * * * * * * * * * * Casting from 'ubyte[]' to 'ubyte*' * * * * * * * * * * * * * * * * * * DtoCastArray * * * * * * * * * * * * * * * * * * * from array or sarray * * * * * * * * * * * * * * * * * * * to pointer * * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * * * * AddExp::toElem: len + 1LU @ ulong * * * * * * * * * * * * * * * * * VarExp::toElem: len @ ulong * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('len' of type 'immutable(ulong)') * * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * * DtoNestedVariable for len @ /usr/include/dlang/ldc/std/array.d(2790) * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for std.array.Appender!(ubyte[]).Appender.put!(Format).put * * * * * * * * * * * * * * * * * * * * Context: %9 = bitcast i8* %8 to %nest.put.1* * * * * * * * * * * * * * * * * * * * * of type: %nest.put.1 = type { %"std.array.Appender!(ubyte[]).Appender"*, i64 } * * * * * * * * * * * * * * * * * * * * Variable: len * * * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * * * Function: __lambda2 * * * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * * * Addr: %len = getelementptr %nest.put.1, %nest.put.1* %9, i32 0, i32 1 * * * * * * * * * * * * * * * * * * * * of type: i64* * * * * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * * * return value is '0x1227ad60' * * * * * * * * * * * * Building type: ubyte[] delegate() pure nothrow @nogc @trusted * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted ubyte[]()) * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * Final function type: { i64, i8* } (i8*) * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * %.ptr = extractvalue { i8*, { i64, i8* } (i8*)* } %.func, 0 * * * * * * * * * * * * Function type: pure nothrow @nogc @trusted ubyte[]() * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * SetArray * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2791) * * * * * * CallExp::toElem: emplaceRef(bigData[len], item) @ ubyte * * * * * * * VarExp::toElem: emplaceRef @ pure nothrow @nogc ref @safe ubyte(ref ubyte chunk, auto ref ubyte _param_1) * * * * * * * * DtoSymbolAddress ('emplaceRef' of type 'pure nothrow @nogc ref @safe ubyte(ref ubyte chunk, auto ref ubyte _param_1)') * * * * * * * * * FuncDeclaration * * * * * * * DtoCallFunction() * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (0) * * * * * * * * Function type: pure nothrow @nogc ref @safe ubyte(ref ubyte chunk, auto ref ubyte _param_1) * * * * * * * * DtoArgument * * * * * * * * * IndexExp::toElem: bigData[len] @ ubyte * * * * * * * * * * VarExp::toElem: bigData @ ubyte[] * * * * * * * * * * * DtoSymbolAddress ('bigData' of type 'ubyte[]') * * * * * * * * * * * * a normal variable * * * * * * * * * * VarExp::toElem: len @ ulong * * * * * * * * * * * DtoSymbolAddress ('len' of type 'immutable(ulong)') * * * * * * * * * * * * nested variable * * * * * * * * * * * * DtoNestedVariable for len @ /usr/include/dlang/ldc/std/array.d(2791) * * * * * * * * * * DtoArrayLen * * * * * * * * * * DtoArrayPtr * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: item @ ubyte * * * * * * * * * * DtoSymbolAddress ('item' of type 'Format') * * * * * * * * * * * function param * * * * * * * * * * * type: Format * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2793) * * * * * * AssignExp::toElem: (*this._data).arr = bigData | (ubyte[])(ubyte[] = ubyte[]) * * * * * * * DotVarExp::toElem: (*this._data).arr @ ubyte[] * * * * * * * * PtrExp::toElem: *this._data @ Data * * * * * * * * * DotVarExp::toElem: this._data @ Data* * * * * * * * * * * ThisExp::toElem: this @ Appender!(ubyte[]) * * * * * * * * * * * normal this exp * * * * * * * * * * Indexing aggregate field std.array.Appender!(ubyte[]).Appender._data: * * * * * * * * * * * Value: %16 = getelementptr %"std.array.Appender!(ubyte[]).Appender", %"std.array.Appender!(ubyte[]).Appender"* %.this_arg, i32 0, i32 0 * * * * * * * * Indexing aggregate field std.array.Appender!(ubyte[]).Appender.Data.arr: * * * * * * * * * Value: %18 = getelementptr %"std.array.Appender!(ubyte[]).Appender.Data", %"std.array.Appender!(ubyte[]).Appender.Data"* %17, i32 0, i32 1 * * * * * * * VarExp::toElem: bigData @ ubyte[] * * * * * * * * DtoSymbolAddress ('bigData' of type 'ubyte[]') * * * * * * * * * a normal variable * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * DtoAssign() * * * * * * * * DtoArrayAssign * * * * * * * * * DtoArrayPtr * * * * * * * * * DtoArrayLen * * * * * * * * * SetArray * TemplateInstance::codegen: 'std.typetuple.staticIndexOf!(char, byte, ubyte)' * * VarDeclaration::codegen(): 'std.typetuple.staticIndexOf!(char, byte, ubyte).staticIndexOf' * * * DtoResolveVariable(std.typetuple.staticIndexOf!(char, byte, ubyte).staticIndexOf) * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(char, byte, ubyte)' * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!(char, byte, ubyte).e * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!(char, byte, ubyte).tuple * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!(char, byte, ubyte).head * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!(char, byte, ubyte).tail * * VarDeclaration::codegen(): 'std.typetuple.genericIndexOf!(char, byte, ubyte).next' * * * DtoResolveVariable(std.typetuple.genericIndexOf!(char, byte, ubyte).next) * * VarDeclaration::codegen(): 'std.typetuple.genericIndexOf!(char, byte, ubyte).index' * * * DtoResolveVariable(std.typetuple.genericIndexOf!(char, byte, ubyte).index) * TemplateInstance::codegen: 'std.typetuple.isSame!(char, byte)' * * VarDeclaration::codegen(): 'std.typetuple.isSame!(char, byte).isSame' * * * DtoResolveVariable(std.typetuple.isSame!(char, byte).isSame) * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(char, ubyte)' * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!(char, ubyte).e * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!(char, ubyte).tuple * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!(char, ubyte).head * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!(char, ubyte).tail * * VarDeclaration::codegen(): 'std.typetuple.genericIndexOf!(char, ubyte).next' * * * DtoResolveVariable(std.typetuple.genericIndexOf!(char, ubyte).next) * * VarDeclaration::codegen(): 'std.typetuple.genericIndexOf!(char, ubyte).index' * * * DtoResolveVariable(std.typetuple.genericIndexOf!(char, ubyte).index) * TemplateInstance::codegen: 'std.typetuple.isSame!(char, ubyte)' * * VarDeclaration::codegen(): 'std.typetuple.isSame!(char, ubyte).isSame' * * * DtoResolveVariable(std.typetuple.isSame!(char, ubyte).isSame) * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!char' * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!char.e * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!char.tuple * * VarDeclaration::codegen(): 'std.typetuple.genericIndexOf!char.index' * * * DtoResolveVariable(std.typetuple.genericIndexOf!char.index) * TemplateInstance::codegen: 'std.traits.isSomeChar!(immutable(char))' * * VarDeclaration::codegen(): 'std.traits.isSomeChar!(immutable(char)).isSomeChar' * * * DtoResolveVariable(std.traits.isSomeChar!(immutable(char)).isSomeChar) * TemplateInstance::codegen: 'std.traits.CharTypeOf!(immutable(char))' * TemplateInstance::codegen: 'std.traits.isAggregateType!(immutable(char))' * TemplateInstance::codegen: 'std.traits.OriginalType!(immutable(char))' * TemplateInstance::codegen: 'std.traits.ModifyTypePreservingSTC!(Impl, immutable(char))' * TemplateInstance::codegen: 'std.traits.OriginalType!(immutable(char)).Modifier!char' * TemplateInstance::codegen: 'std.typetuple.staticIndexOf!(char, char, wchar, dchar)' * * VarDeclaration::codegen(): 'std.typetuple.staticIndexOf!(char, char, wchar, dchar).staticIndexOf' * * * DtoResolveVariable(std.typetuple.staticIndexOf!(char, char, wchar, dchar).staticIndexOf) * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(char, char, wchar, dchar)' * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!(char, char, wchar, dchar).e * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!(char, char, wchar, dchar).tuple * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!(char, char, wchar, dchar).head * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!(char, char, wchar, dchar).tail * * VarDeclaration::codegen(): 'std.typetuple.genericIndexOf!(char, char, wchar, dchar).index' * * * DtoResolveVariable(std.typetuple.genericIndexOf!(char, char, wchar, dchar).index) * TemplateInstance::codegen: 'std.typetuple.isSame!(char, char)' * * VarDeclaration::codegen(): 'std.typetuple.isSame!(char, char).isSame' * * * DtoResolveVariable(std.typetuple.isSame!(char, char).isSame) * TemplateInstance::codegen: 'std.traits.Unqual!(RequestKind)' * TemplateInstance::codegen: 'std.traits.isUnsigned!(RequestKind)' * TemplateInstance::codegen: 'std.traits.UnsignedTypeOf!(RequestKind)' * TemplateInstance::codegen: 'std.traits.IntegralTypeOf!(RequestKind)' * TemplateInstance::codegen: 'std.traits.isAggregateType!(RequestKind)' * TemplateInstance::codegen: 'std.traits.OriginalType!(RequestKind)' * * Ignoring Dsymbol::codegen for std.traits.OriginalType!(RequestKind).Impl(T) * * Ignoring Dsymbol::codegen for std.traits.OriginalType!(RequestKind).OriginalType * TemplateInstance::codegen: 'std.traits.ModifyTypePreservingSTC!(Impl, RequestKind)' * * Ignoring Dsymbol::codegen for std.traits.ModifyTypePreservingSTC!(Impl, RequestKind).ModifyTypePreservingSTC * TemplateInstance::codegen: 'std.traits.OriginalType!(RequestKind).Modifier!(RequestKind)' * * Ignoring Dsymbol::codegen for std.traits.OriginalType!(RequestKind).Modifier!(RequestKind).Impl * TemplateInstance::codegen: 'std.traits.OriginalType!ushort' * * Ignoring Dsymbol::codegen for std.traits.OriginalType!ushort.Impl(T) * * Ignoring Dsymbol::codegen for std.traits.OriginalType!ushort.OriginalType * TemplateInstance::codegen: 'std.traits.ModifyTypePreservingSTC!(Impl, ushort)' * * Ignoring Dsymbol::codegen for std.traits.ModifyTypePreservingSTC!(Impl, ushort).ModifyTypePreservingSTC * TemplateInstance::codegen: 'std.traits.OriginalType!ushort.Modifier!ushort' * * Ignoring Dsymbol::codegen for std.traits.OriginalType!ushort.Modifier!ushort.Impl * TemplateInstance::codegen: 'std.traits.Unqual!ushort' * TemplateInstance::codegen: 'std.typetuple.staticIndexOf!(ushort, byte, ubyte, short, ushort, int, uint, long, ulong)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(ushort, byte, ubyte, short, ushort, int, uint, long, ulong)' * TemplateInstance::codegen: 'std.typetuple.isSame!(ushort, byte)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(ushort, ubyte, short, ushort, int, uint, long, ulong)' * TemplateInstance::codegen: 'std.typetuple.isSame!(ushort, ubyte)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(ushort, short, ushort, int, uint, long, ulong)' * TemplateInstance::codegen: 'std.typetuple.isSame!(ushort, short)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(ushort, ushort, int, uint, long, ulong)' * TemplateInstance::codegen: 'std.typetuple.isSame!(ushort, ushort)' * TemplateInstance::codegen: 'std.typetuple.staticIndexOf!(ushort, ubyte, ushort, uint, ulong)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(ushort, ubyte, ushort, uint, ulong)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(ushort, ushort, uint, ulong)' * TemplateInstance::codegen: 'std.traits.isSigned!(RequestKind)' * TemplateInstance::codegen: 'std.typetuple.staticIndexOf!(ushort, byte, short, int, long)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(ushort, byte, short, int, long)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(ushort, short, int, long)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(ushort, int, long)' * TemplateInstance::codegen: 'std.typetuple.isSame!(ushort, int)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(ushort, long)' * TemplateInstance::codegen: 'std.typetuple.isSame!(ushort, long)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!ushort' * TemplateInstance::codegen: 'std.typetuple.staticIndexOf!(ushort, float, double, real)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(ushort, float, double, real)' * TemplateInstance::codegen: 'std.typetuple.isSame!(ushort, float)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(ushort, double, real)' * TemplateInstance::codegen: 'std.typetuple.isSame!(ushort, double)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(ushort, real)' * TemplateInstance::codegen: 'std.typetuple.isSame!(ushort, real)' * TemplateInstance::codegen: 'std.traits.isFloatingPoint!(RequestKind)' * TemplateInstance::codegen: 'std.traits.isPointer!(RequestKind)' * TemplateInstance::codegen: 'std.traits.isArray!(RequestKind)' * TemplateInstance::codegen: 'std.traits.isStaticArray!(RequestKind)' * TemplateInstance::codegen: 'std.traits.isDynamicArray!(RequestKind)' * TemplateInstance::codegen: 'std.traits.isAssociativeArray!(RequestKind)' * TemplateInstance::codegen: 'std.traits.Unqual!(const(RequestKind))' * TemplateInstance::codegen: 'std.traits.isUnsigned!ushort' * TemplateInstance::codegen: 'std.traits.UnsignedTypeOf!ushort' * TemplateInstance::codegen: 'std.traits.IntegralTypeOf!ushort' * TemplateInstance::codegen: 'std.traits.isAggregateType!ushort' * TemplateInstance::codegen: 'std.traits.isSigned!ushort' * TemplateInstance::codegen: 'std.traits.isFloatingPoint!ushort' * TemplateInstance::codegen: 'std.traits.isPointer!ushort' * TemplateInstance::codegen: 'std.traits.isArray!ushort' * TemplateInstance::codegen: 'std.traits.isStaticArray!ushort' * TemplateInstance::codegen: 'std.traits.isDynamicArray!ushort' * TemplateInstance::codegen: 'std.traits.isAssociativeArray!ushort' * TemplateInstance::codegen: 'std.traits.Unqual!(const(string)[])' * TemplateInstance::codegen: 'std.traits.isUnsigned!(const(string)[])' * TemplateInstance::codegen: 'std.traits.isAggregateType!(const(string)[])' * TemplateInstance::codegen: 'std.traits.OriginalType!(const(string)[])' * TemplateInstance::codegen: 'std.traits.ModifyTypePreservingSTC!(Impl, const(string)[])' * TemplateInstance::codegen: 'std.traits.OriginalType!(const(string)[]).Modifier!(const(string)[])' * TemplateInstance::codegen: 'std.typetuple.staticIndexOf!(const(string)[], byte, ubyte, short, ushort, int, uint, long, ulong)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(const(string)[], byte, ubyte, short, ushort, int, uint, long, ulong)' * TemplateInstance::codegen: 'std.typetuple.Alias!(const(string)[])' * TemplateInstance::codegen: 'std.typetuple.isSame!(const(string)[], byte)' * TemplateInstance::codegen: 'std.typetuple.expectType!(const(string)[])' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(const(string)[], ubyte, short, ushort, int, uint, long, ulong)' * TemplateInstance::codegen: 'std.typetuple.isSame!(const(string)[], ubyte)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(const(string)[], short, ushort, int, uint, long, ulong)' * TemplateInstance::codegen: 'std.typetuple.isSame!(const(string)[], short)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(const(string)[], ushort, int, uint, long, ulong)' * TemplateInstance::codegen: 'std.typetuple.isSame!(const(string)[], ushort)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(const(string)[], int, uint, long, ulong)' * TemplateInstance::codegen: 'std.typetuple.isSame!(const(string)[], int)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(const(string)[], uint, long, ulong)' * TemplateInstance::codegen: 'std.typetuple.isSame!(const(string)[], uint)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(const(string)[], long, ulong)' * TemplateInstance::codegen: 'std.typetuple.isSame!(const(string)[], long)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(const(string)[], ulong)' * TemplateInstance::codegen: 'std.typetuple.isSame!(const(string)[], ulong)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(const(string)[])' * TemplateInstance::codegen: 'std.traits.isSigned!(const(string)[])' * TemplateInstance::codegen: 'std.typetuple.staticIndexOf!(const(string)[], float, double, real)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(const(string)[], float, double, real)' * TemplateInstance::codegen: 'std.typetuple.isSame!(const(string)[], float)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(const(string)[], double, real)' * TemplateInstance::codegen: 'std.typetuple.isSame!(const(string)[], double)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(const(string)[], real)' * TemplateInstance::codegen: 'std.typetuple.isSame!(const(string)[], real)' * TemplateInstance::codegen: 'std.traits.isFloatingPoint!(const(string)[])' * TemplateInstance::codegen: 'std.traits.isPointer!(const(string)[])' * TemplateInstance::codegen: 'std.traits.isArray!(const(string)[])' * TemplateInstance::codegen: 'std.traits.isStaticArray!(const(string)[])' * TemplateInstance::codegen: 'std.traits.isDynamicArray!(const(string)[])' * TemplateInstance::codegen: 'std.traits.DynamicArrayTypeOf!(const(string)[])' * TemplateInstance::codegen: 'std.traits.isAssociativeArray!(const(string)[])' * TemplateInstance::codegen: 'std.traits.Unqual!(const(string[]))' * TemplateInstance::codegen: 'std.range.primitives.empty!string' * * DtoDefineFunction(std.range.primitives.empty!string.empty): /usr/include/dlang/ldc/std/range/primitives.d(1950) * * * DtoFunctionType(pure nothrow @nogc @property @safe bool(const(string[]) a)) * * * * x86-64 ABI: Transforming return type * * * * x86-64 ABI: Transforming argument types * * * * Final function type: i1 ({ i64, { i64, i8* }* }) * * * DtoResolveFunction(std.range.primitives.empty!string.empty): /usr/include/dlang/ldc/std/range/primitives.d(1950) * * * * DtoDeclareFunction(std.range.primitives.empty!string.empty): /usr/include/dlang/ldc/std/range/primitives.d(1950) * * * * * DtoFunctionType(pure nothrow @nogc @property @safe bool(const(string[]) a)) * * * * * func = declare i1 @_D3std5range10primitives14__T5emptyTAyaZ5emptyFNaNbNdNiNfxAAyaZb({ i64, { i64, i8* }* }) * * * Doing function body for: empty * * * DtoCreateNestedContext for empty * * * * DtoCreateNestedContextType for std.range.primitives.empty!string.empty * * * CompoundStatement::toIR(): * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/range/primitives.d(1952) * * * * * NotExp::toElem: !a.length @ bool * * * * * * ArrayLengthExp::toElem: a.length @ ulong * * * * * * * VarExp::toElem: a @ const(string[]) * * * * * * * * DtoSymbolAddress ('a' of type 'const(string[])') * * * * * * * * * function param * * * * * * * * * type: const(string[]) * * * * * * * DtoArrayLen * * * * * * Casting from 'ulong' to 'bool' * * * * * return value is '0x12288220' * TemplateInstance::codegen: 'std.typetuple.staticIndexOf!(string, byte, ubyte)' * * VarDeclaration::codegen(): 'std.typetuple.staticIndexOf!(string, byte, ubyte).staticIndexOf' * * * DtoResolveVariable(std.typetuple.staticIndexOf!(string, byte, ubyte).staticIndexOf) * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(string, byte, ubyte)' * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!(string, byte, ubyte).e * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!(string, byte, ubyte).tuple * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!(string, byte, ubyte).head * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!(string, byte, ubyte).tail * * VarDeclaration::codegen(): 'std.typetuple.genericIndexOf!(string, byte, ubyte).next' * * * DtoResolveVariable(std.typetuple.genericIndexOf!(string, byte, ubyte).next) * * VarDeclaration::codegen(): 'std.typetuple.genericIndexOf!(string, byte, ubyte).index' * * * DtoResolveVariable(std.typetuple.genericIndexOf!(string, byte, ubyte).index) * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(string, ubyte)' * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!(string, ubyte).e * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!(string, ubyte).tuple * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!(string, ubyte).head * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!(string, ubyte).tail * * VarDeclaration::codegen(): 'std.typetuple.genericIndexOf!(string, ubyte).next' * * * DtoResolveVariable(std.typetuple.genericIndexOf!(string, ubyte).next) * * VarDeclaration::codegen(): 'std.typetuple.genericIndexOf!(string, ubyte).index' * * * DtoResolveVariable(std.typetuple.genericIndexOf!(string, ubyte).index) * TemplateInstance::codegen: 'std.traits.isSomeChar!(const(string))' * * VarDeclaration::codegen(): 'std.traits.isSomeChar!(const(string)).isSomeChar' * * * DtoResolveVariable(std.traits.isSomeChar!(const(string)).isSomeChar) * TemplateInstance::codegen: 'std.traits.isAggregateType!(const(string))' * * VarDeclaration::codegen(): 'std.traits.isAggregateType!(const(string)).isAggregateType' * * * DtoResolveVariable(std.traits.isAggregateType!(const(string)).isAggregateType) * TemplateInstance::codegen: 'std.traits.OriginalType!(const(string))' * TemplateInstance::codegen: 'std.traits.ModifyTypePreservingSTC!(Impl, const(string))' * TemplateInstance::codegen: 'std.traits.OriginalType!(const(string)).Modifier!string' * TemplateInstance::codegen: 'std.typetuple.staticIndexOf!(string, char, wchar, dchar)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(string, char, wchar, dchar)' * TemplateInstance::codegen: 'std.typetuple.isSame!(string, char)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(string, wchar, dchar)' * TemplateInstance::codegen: 'std.typetuple.isSame!(string, wchar)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(string, dchar)' * TemplateInstance::codegen: 'std.typetuple.isSame!(string, dchar)' * TemplateInstance::codegen: 'std.traits.Unqual!(const(ubyte)[])' * TemplateInstance::codegen: 'std.traits.isUnsigned!(const(ubyte)[])' * TemplateInstance::codegen: 'std.traits.isAggregateType!(const(ubyte)[])' * TemplateInstance::codegen: 'std.traits.OriginalType!(const(ubyte)[])' * TemplateInstance::codegen: 'std.traits.ModifyTypePreservingSTC!(Impl, const(ubyte)[])' * TemplateInstance::codegen: 'std.traits.OriginalType!(const(ubyte)[]).Modifier!(const(ubyte)[])' * TemplateInstance::codegen: 'std.typetuple.staticIndexOf!(const(ubyte)[], byte, ubyte, short, ushort, int, uint, long, ulong)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(const(ubyte)[], byte, ubyte, short, ushort, int, uint, long, ulong)' * TemplateInstance::codegen: 'std.typetuple.Alias!(const(ubyte)[])' * TemplateInstance::codegen: 'std.typetuple.isSame!(const(ubyte)[], byte)' * TemplateInstance::codegen: 'std.typetuple.expectType!(const(ubyte)[])' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(const(ubyte)[], ubyte, short, ushort, int, uint, long, ulong)' * TemplateInstance::codegen: 'std.typetuple.isSame!(const(ubyte)[], ubyte)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(const(ubyte)[], short, ushort, int, uint, long, ulong)' * TemplateInstance::codegen: 'std.typetuple.isSame!(const(ubyte)[], short)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(const(ubyte)[], ushort, int, uint, long, ulong)' * TemplateInstance::codegen: 'std.typetuple.isSame!(const(ubyte)[], ushort)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(const(ubyte)[], int, uint, long, ulong)' * TemplateInstance::codegen: 'std.typetuple.isSame!(const(ubyte)[], int)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(const(ubyte)[], uint, long, ulong)' * TemplateInstance::codegen: 'std.typetuple.isSame!(const(ubyte)[], uint)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(const(ubyte)[], long, ulong)' * TemplateInstance::codegen: 'std.typetuple.isSame!(const(ubyte)[], long)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(const(ubyte)[], ulong)' * TemplateInstance::codegen: 'std.typetuple.isSame!(const(ubyte)[], ulong)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(const(ubyte)[])' * TemplateInstance::codegen: 'std.traits.isSigned!(const(ubyte)[])' * TemplateInstance::codegen: 'std.typetuple.staticIndexOf!(const(ubyte)[], float, double, real)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(const(ubyte)[], float, double, real)' * TemplateInstance::codegen: 'std.typetuple.isSame!(const(ubyte)[], float)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(const(ubyte)[], double, real)' * TemplateInstance::codegen: 'std.typetuple.isSame!(const(ubyte)[], double)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(const(ubyte)[], real)' * TemplateInstance::codegen: 'std.typetuple.isSame!(const(ubyte)[], real)' * TemplateInstance::codegen: 'std.traits.isFloatingPoint!(const(ubyte)[])' * TemplateInstance::codegen: 'std.traits.isPointer!(const(ubyte)[])' * TemplateInstance::codegen: 'std.traits.isArray!(const(ubyte)[])' * TemplateInstance::codegen: 'std.traits.isStaticArray!(const(ubyte)[])' * TemplateInstance::codegen: 'std.traits.isDynamicArray!(const(ubyte)[])' * TemplateInstance::codegen: 'std.traits.DynamicArrayTypeOf!(const(ubyte)[])' * TemplateInstance::codegen: 'std.traits.isAssociativeArray!(const(ubyte)[])' * TemplateInstance::codegen: 'std.traits.Unqual!(const(ubyte[]))' * TemplateInstance::codegen: 'std.traits.Unqual!(const(ubyte))' * * Ignoring Dsymbol::codegen for std.traits.Unqual!(const(ubyte)).Unqual * TemplateInstance::codegen: 'std.typetuple.staticIndexOf!(ubyte, byte, ubyte)' * * VarDeclaration::codegen(): 'std.typetuple.staticIndexOf!(ubyte, byte, ubyte).staticIndexOf' * * * DtoResolveVariable(std.typetuple.staticIndexOf!(ubyte, byte, ubyte).staticIndexOf) * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(ubyte, byte, ubyte)' * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!(ubyte, byte, ubyte).e * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!(ubyte, byte, ubyte).tuple * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!(ubyte, byte, ubyte).head * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!(ubyte, byte, ubyte).tail * * VarDeclaration::codegen(): 'std.typetuple.genericIndexOf!(ubyte, byte, ubyte).next' * * * DtoResolveVariable(std.typetuple.genericIndexOf!(ubyte, byte, ubyte).next) * * VarDeclaration::codegen(): 'std.typetuple.genericIndexOf!(ubyte, byte, ubyte).index' * * * DtoResolveVariable(std.typetuple.genericIndexOf!(ubyte, byte, ubyte).index) * TemplateInstance::codegen: 'std.typetuple.isSame!(ubyte, byte)' * * VarDeclaration::codegen(): 'std.typetuple.isSame!(ubyte, byte).isSame' * * * DtoResolveVariable(std.typetuple.isSame!(ubyte, byte).isSame) * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(ubyte, ubyte)' * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!(ubyte, ubyte).e * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!(ubyte, ubyte).tuple * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!(ubyte, ubyte).head * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!(ubyte, ubyte).tail * * VarDeclaration::codegen(): 'std.typetuple.genericIndexOf!(ubyte, ubyte).index' * * * DtoResolveVariable(std.typetuple.genericIndexOf!(ubyte, ubyte).index) * TemplateInstance::codegen: 'std.typetuple.isSame!(ubyte, ubyte)' * * VarDeclaration::codegen(): 'std.typetuple.isSame!(ubyte, ubyte).isSame' * * * DtoResolveVariable(std.typetuple.isSame!(ubyte, ubyte).isSame) * TemplateInstance::codegen: 'std.traits.isUnsigned!ulong' * TemplateInstance::codegen: 'std.traits.UnsignedTypeOf!ulong' * TemplateInstance::codegen: 'std.typetuple.staticIndexOf!(ulong, ubyte, ushort, uint, ulong)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(ulong, ubyte, ushort, uint, ulong)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(ulong, ushort, uint, ulong)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(ulong, uint, ulong)' * TemplateInstance::codegen: 'std.traits.isSigned!ulong' * * VarDeclaration::codegen(): 'std.traits.isSigned!ulong.isSigned' * * * DtoResolveVariable(std.traits.isSigned!ulong.isSigned) * TemplateInstance::codegen: 'std.typetuple.staticIndexOf!(ulong, byte, short, int, long)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(ulong, byte, short, int, long)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(ulong, short, int, long)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(ulong, int, long)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(ulong, long)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!ulong' * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!ulong.e * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!ulong.tuple * * VarDeclaration::codegen(): 'std.typetuple.genericIndexOf!ulong.index' * * * DtoResolveVariable(std.typetuple.genericIndexOf!ulong.index) * TemplateInstance::codegen: 'std.typetuple.staticIndexOf!(ulong, float, double, real)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(ulong, float, double, real)' * TemplateInstance::codegen: 'std.typetuple.isSame!(ulong, float)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(ulong, double, real)' * TemplateInstance::codegen: 'std.typetuple.isSame!(ulong, double)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(ulong, real)' * TemplateInstance::codegen: 'std.typetuple.isSame!(ulong, real)' * TemplateInstance::codegen: 'std.traits.isFloatingPoint!ulong' * TemplateInstance::codegen: 'std.traits.isPointer!ulong' * TemplateInstance::codegen: 'std.traits.isArray!ulong' * TemplateInstance::codegen: 'std.traits.isStaticArray!ulong' * TemplateInstance::codegen: 'std.traits.isDynamicArray!ulong' * TemplateInstance::codegen: 'std.traits.isAssociativeArray!ulong' * TemplateInstance::codegen: 'std.traits.Unqual!(const(ulong))' * TemplateInstance::codegen: 'std.traits.Unqual!(AutocompleteResponse)' * TemplateInstance::codegen: 'std.traits.isUnsigned!(AutocompleteResponse)' * TemplateInstance::codegen: 'std.traits.isAggregateType!(AutocompleteResponse)' * TemplateInstance::codegen: 'std.traits.OriginalType!(AutocompleteResponse)' * TemplateInstance::codegen: 'std.traits.ModifyTypePreservingSTC!(Impl, AutocompleteResponse)' * TemplateInstance::codegen: 'std.traits.OriginalType!(AutocompleteResponse).Modifier!(AutocompleteResponse)' * TemplateInstance::codegen: 'std.typetuple.staticIndexOf!(AutocompleteResponse, byte, ubyte, short, ushort, int, uint, long, ulong)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(AutocompleteResponse, byte, ubyte, short, ushort, int, uint, long, ulong)' * TemplateInstance::codegen: 'std.typetuple.Alias!(AutocompleteResponse)' * TemplateInstance::codegen: 'std.typetuple.isSame!(AutocompleteResponse, byte)' * TemplateInstance::codegen: 'std.typetuple.expectType!(AutocompleteResponse)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(AutocompleteResponse, ubyte, short, ushort, int, uint, long, ulong)' * TemplateInstance::codegen: 'std.typetuple.isSame!(AutocompleteResponse, ubyte)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(AutocompleteResponse, short, ushort, int, uint, long, ulong)' * TemplateInstance::codegen: 'std.typetuple.isSame!(AutocompleteResponse, short)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(AutocompleteResponse, ushort, int, uint, long, ulong)' * TemplateInstance::codegen: 'std.typetuple.isSame!(AutocompleteResponse, ushort)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(AutocompleteResponse, int, uint, long, ulong)' * TemplateInstance::codegen: 'std.typetuple.isSame!(AutocompleteResponse, int)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(AutocompleteResponse, uint, long, ulong)' * TemplateInstance::codegen: 'std.typetuple.isSame!(AutocompleteResponse, uint)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(AutocompleteResponse, long, ulong)' * TemplateInstance::codegen: 'std.typetuple.isSame!(AutocompleteResponse, long)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(AutocompleteResponse, ulong)' * TemplateInstance::codegen: 'std.typetuple.isSame!(AutocompleteResponse, ulong)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(AutocompleteResponse)' * TemplateInstance::codegen: 'std.traits.isSigned!(AutocompleteResponse)' * TemplateInstance::codegen: 'std.typetuple.staticIndexOf!(AutocompleteResponse, float, double, real)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(AutocompleteResponse, float, double, real)' * TemplateInstance::codegen: 'std.typetuple.isSame!(AutocompleteResponse, float)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(AutocompleteResponse, double, real)' * TemplateInstance::codegen: 'std.typetuple.isSame!(AutocompleteResponse, double)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(AutocompleteResponse, real)' * TemplateInstance::codegen: 'std.typetuple.isSame!(AutocompleteResponse, real)' * TemplateInstance::codegen: 'std.traits.isFloatingPoint!(AutocompleteResponse)' * TemplateInstance::codegen: 'std.traits.isPointer!(AutocompleteResponse)' * TemplateInstance::codegen: 'std.traits.isArray!(AutocompleteResponse)' * TemplateInstance::codegen: 'std.traits.isStaticArray!(AutocompleteResponse)' * TemplateInstance::codegen: 'std.traits.isDynamicArray!(AutocompleteResponse)' * TemplateInstance::codegen: 'std.traits.isAssociativeArray!(AutocompleteResponse)' * TemplateInstance::codegen: 'std.traits.hasMember!(AutocompleteResponse, "fromMsgpack")' * * VarDeclaration::codegen(): 'std.traits.hasMember!(AutocompleteResponse, "fromMsgpack").hasMember' * * * DtoResolveVariable(std.traits.hasMember!(AutocompleteResponse, "fromMsgpack").hasMember) * TemplateInstance::codegen: 'std.typetuple.staticIndexOf!("fromMsgpack", "completionType", "symbolFilePath", "symbolLocation", "docComments", "completions", "completionKinds", "locations", "importPaths")' * * VarDeclaration::codegen(): 'std.typetuple.staticIndexOf!("fromMsgpack", "completionType", "symbolFilePath", "symbolLocation", "docComments", "completions", "completionKinds", "locations", "importPaths").staticIndexOf' * * * DtoResolveVariable(std.typetuple.staticIndexOf!("fromMsgpack", "completionType", "symbolFilePath", "symbolLocation", "docComments", "completions", "completionKinds", "locations", "importPaths").staticIndexOf) * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("fromMsgpack", "completionType", "symbolFilePath", "symbolLocation", "docComments", "completions", "completionKinds", "locations", "importPaths")' * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!("fromMsgpack", "completionType", "symbolFilePath", "symbolLocation", "docComments", "completions", "completionKinds", "locations", "importPaths").e * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!("fromMsgpack", "completionType", "symbolFilePath", "symbolLocation", "docComments", "completions", "completionKinds", "locations", "importPaths").tuple * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!("fromMsgpack", "completionType", "symbolFilePath", "symbolLocation", "docComments", "completions", "completionKinds", "locations", "importPaths").head * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!("fromMsgpack", "completionType", "symbolFilePath", "symbolLocation", "docComments", "completions", "completionKinds", "locations", "importPaths").tail * * VarDeclaration::codegen(): 'std.typetuple.genericIndexOf!("fromMsgpack", "completionType", "symbolFilePath", "symbolLocation", "docComments", "completions", "completionKinds", "locations", "importPaths").next' * * * DtoResolveVariable(std.typetuple.genericIndexOf!("fromMsgpack", "completionType", "symbolFilePath", "symbolLocation", "docComments", "completions", "completionKinds", "locations", "importPaths").next) * * VarDeclaration::codegen(): 'std.typetuple.genericIndexOf!("fromMsgpack", "completionType", "symbolFilePath", "symbolLocation", "docComments", "completions", "completionKinds", "locations", "importPaths").index' * * * DtoResolveVariable(std.typetuple.genericIndexOf!("fromMsgpack", "completionType", "symbolFilePath", "symbolLocation", "docComments", "completions", "completionKinds", "locations", "importPaths").index) * TemplateInstance::codegen: 'std.typetuple.Alias!("fromMsgpack")' * * Ignoring Dsymbol::codegen for std.typetuple.Alias!("fromMsgpack").Alias * TemplateInstance::codegen: 'std.typetuple.Alias!"completionType"' * * Ignoring Dsymbol::codegen for std.typetuple.Alias!"completionType".Alias * TemplateInstance::codegen: 'std.typetuple.isSame!("fromMsgpack", "completionType")' * * VarDeclaration::codegen(): 'std.typetuple.isSame!("fromMsgpack", "completionType").isSame' * * * DtoResolveVariable(std.typetuple.isSame!("fromMsgpack", "completionType").isSame) * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("fromMsgpack", "symbolFilePath", "symbolLocation", "docComments", "completions", "completionKinds", "locations", "importPaths")' * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!("fromMsgpack", "symbolFilePath", "symbolLocation", "docComments", "completions", "completionKinds", "locations", "importPaths").e * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!("fromMsgpack", "symbolFilePath", "symbolLocation", "docComments", "completions", "completionKinds", "locations", "importPaths").tuple * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!("fromMsgpack", "symbolFilePath", "symbolLocation", "docComments", "completions", "completionKinds", "locations", "importPaths").head * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!("fromMsgpack", "symbolFilePath", "symbolLocation", "docComments", "completions", "completionKinds", "locations", "importPaths").tail * * VarDeclaration::codegen(): 'std.typetuple.genericIndexOf!("fromMsgpack", "symbolFilePath", "symbolLocation", "docComments", "completions", "completionKinds", "locations", "importPaths").next' * * * DtoResolveVariable(std.typetuple.genericIndexOf!("fromMsgpack", "symbolFilePath", "symbolLocation", "docComments", "completions", "completionKinds", "locations", "importPaths").next) * * VarDeclaration::codegen(): 'std.typetuple.genericIndexOf!("fromMsgpack", "symbolFilePath", "symbolLocation", "docComments", "completions", "completionKinds", "locations", "importPaths").index' * * * DtoResolveVariable(std.typetuple.genericIndexOf!("fromMsgpack", "symbolFilePath", "symbolLocation", "docComments", "completions", "completionKinds", "locations", "importPaths").index) * TemplateInstance::codegen: 'std.typetuple.Alias!"symbolFilePath"' * * Ignoring Dsymbol::codegen for std.typetuple.Alias!"symbolFilePath".Alias * TemplateInstance::codegen: 'std.typetuple.isSame!("fromMsgpack", "symbolFilePath")' * * VarDeclaration::codegen(): 'std.typetuple.isSame!("fromMsgpack", "symbolFilePath").isSame' * * * DtoResolveVariable(std.typetuple.isSame!("fromMsgpack", "symbolFilePath").isSame) * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("fromMsgpack", "symbolLocation", "docComments", "completions", "completionKinds", "locations", "importPaths")' * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!("fromMsgpack", "symbolLocation", "docComments", "completions", "completionKinds", "locations", "importPaths").e * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!("fromMsgpack", "symbolLocation", "docComments", "completions", "completionKinds", "locations", "importPaths").tuple * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!("fromMsgpack", "symbolLocation", "docComments", "completions", "completionKinds", "locations", "importPaths").head * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!("fromMsgpack", "symbolLocation", "docComments", "completions", "completionKinds", "locations", "importPaths").tail * * VarDeclaration::codegen(): 'std.typetuple.genericIndexOf!("fromMsgpack", "symbolLocation", "docComments", "completions", "completionKinds", "locations", "importPaths").next' * * * DtoResolveVariable(std.typetuple.genericIndexOf!("fromMsgpack", "symbolLocation", "docComments", "completions", "completionKinds", "locations", "importPaths").next) * * VarDeclaration::codegen(): 'std.typetuple.genericIndexOf!("fromMsgpack", "symbolLocation", "docComments", "completions", "completionKinds", "locations", "importPaths").index' * * * DtoResolveVariable(std.typetuple.genericIndexOf!("fromMsgpack", "symbolLocation", "docComments", "completions", "completionKinds", "locations", "importPaths").index) * TemplateInstance::codegen: 'std.typetuple.Alias!"symbolLocation"' * * Ignoring Dsymbol::codegen for std.typetuple.Alias!"symbolLocation".Alias * TemplateInstance::codegen: 'std.typetuple.isSame!("fromMsgpack", "symbolLocation")' * * VarDeclaration::codegen(): 'std.typetuple.isSame!("fromMsgpack", "symbolLocation").isSame' * * * DtoResolveVariable(std.typetuple.isSame!("fromMsgpack", "symbolLocation").isSame) * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("fromMsgpack", "docComments", "completions", "completionKinds", "locations", "importPaths")' * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!("fromMsgpack", "docComments", "completions", "completionKinds", "locations", "importPaths").e * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!("fromMsgpack", "docComments", "completions", "completionKinds", "locations", "importPaths").tuple * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!("fromMsgpack", "docComments", "completions", "completionKinds", "locations", "importPaths").head * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!("fromMsgpack", "docComments", "completions", "completionKinds", "locations", "importPaths").tail * * VarDeclaration::codegen(): 'std.typetuple.genericIndexOf!("fromMsgpack", "docComments", "completions", "completionKinds", "locations", "importPaths").next' * * * DtoResolveVariable(std.typetuple.genericIndexOf!("fromMsgpack", "docComments", "completions", "completionKinds", "locations", "importPaths").next) * * VarDeclaration::codegen(): 'std.typetuple.genericIndexOf!("fromMsgpack", "docComments", "completions", "completionKinds", "locations", "importPaths").index' * * * DtoResolveVariable(std.typetuple.genericIndexOf!("fromMsgpack", "docComments", "completions", "completionKinds", "locations", "importPaths").index) * TemplateInstance::codegen: 'std.typetuple.Alias!"docComments"' * * Ignoring Dsymbol::codegen for std.typetuple.Alias!"docComments".Alias * TemplateInstance::codegen: 'std.typetuple.isSame!("fromMsgpack", "docComments")' * * VarDeclaration::codegen(): 'std.typetuple.isSame!("fromMsgpack", "docComments").isSame' * * * DtoResolveVariable(std.typetuple.isSame!("fromMsgpack", "docComments").isSame) * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("fromMsgpack", "completions", "completionKinds", "locations", "importPaths")' * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!("fromMsgpack", "completions", "completionKinds", "locations", "importPaths").e * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!("fromMsgpack", "completions", "completionKinds", "locations", "importPaths").tuple * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!("fromMsgpack", "completions", "completionKinds", "locations", "importPaths").head * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!("fromMsgpack", "completions", "completionKinds", "locations", "importPaths").tail * * VarDeclaration::codegen(): 'std.typetuple.genericIndexOf!("fromMsgpack", "completions", "completionKinds", "locations", "importPaths").next' * * * DtoResolveVariable(std.typetuple.genericIndexOf!("fromMsgpack", "completions", "completionKinds", "locations", "importPaths").next) * * VarDeclaration::codegen(): 'std.typetuple.genericIndexOf!("fromMsgpack", "completions", "completionKinds", "locations", "importPaths").index' * * * DtoResolveVariable(std.typetuple.genericIndexOf!("fromMsgpack", "completions", "completionKinds", "locations", "importPaths").index) * TemplateInstance::codegen: 'std.typetuple.Alias!"completions"' * * Ignoring Dsymbol::codegen for std.typetuple.Alias!"completions".Alias * TemplateInstance::codegen: 'std.typetuple.isSame!("fromMsgpack", "completions")' * * VarDeclaration::codegen(): 'std.typetuple.isSame!("fromMsgpack", "completions").isSame' * * * DtoResolveVariable(std.typetuple.isSame!("fromMsgpack", "completions").isSame) * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("fromMsgpack", "completionKinds", "locations", "importPaths")' * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!("fromMsgpack", "completionKinds", "locations", "importPaths").e * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!("fromMsgpack", "completionKinds", "locations", "importPaths").tuple * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!("fromMsgpack", "completionKinds", "locations", "importPaths").head * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!("fromMsgpack", "completionKinds", "locations", "importPaths").tail * * VarDeclaration::codegen(): 'std.typetuple.genericIndexOf!("fromMsgpack", "completionKinds", "locations", "importPaths").next' * * * DtoResolveVariable(std.typetuple.genericIndexOf!("fromMsgpack", "completionKinds", "locations", "importPaths").next) * * VarDeclaration::codegen(): 'std.typetuple.genericIndexOf!("fromMsgpack", "completionKinds", "locations", "importPaths").index' * * * DtoResolveVariable(std.typetuple.genericIndexOf!("fromMsgpack", "completionKinds", "locations", "importPaths").index) * TemplateInstance::codegen: 'std.typetuple.Alias!"completionKinds"' * * Ignoring Dsymbol::codegen for std.typetuple.Alias!"completionKinds".Alias * TemplateInstance::codegen: 'std.typetuple.isSame!("fromMsgpack", "completionKinds")' * * VarDeclaration::codegen(): 'std.typetuple.isSame!("fromMsgpack", "completionKinds").isSame' * * * DtoResolveVariable(std.typetuple.isSame!("fromMsgpack", "completionKinds").isSame) * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("fromMsgpack", "locations", "importPaths")' * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!("fromMsgpack", "locations", "importPaths").e * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!("fromMsgpack", "locations", "importPaths").tuple * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!("fromMsgpack", "locations", "importPaths").head * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!("fromMsgpack", "locations", "importPaths").tail * * VarDeclaration::codegen(): 'std.typetuple.genericIndexOf!("fromMsgpack", "locations", "importPaths").next' * * * DtoResolveVariable(std.typetuple.genericIndexOf!("fromMsgpack", "locations", "importPaths").next) * * VarDeclaration::codegen(): 'std.typetuple.genericIndexOf!("fromMsgpack", "locations", "importPaths").index' * * * DtoResolveVariable(std.typetuple.genericIndexOf!("fromMsgpack", "locations", "importPaths").index) * TemplateInstance::codegen: 'std.typetuple.Alias!"locations"' * * Ignoring Dsymbol::codegen for std.typetuple.Alias!"locations".Alias * TemplateInstance::codegen: 'std.typetuple.isSame!("fromMsgpack", "locations")' * * VarDeclaration::codegen(): 'std.typetuple.isSame!("fromMsgpack", "locations").isSame' * * * DtoResolveVariable(std.typetuple.isSame!("fromMsgpack", "locations").isSame) * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("fromMsgpack", "importPaths")' * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!("fromMsgpack", "importPaths").e * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!("fromMsgpack", "importPaths").tuple * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!("fromMsgpack", "importPaths").head * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!("fromMsgpack", "importPaths").tail * * VarDeclaration::codegen(): 'std.typetuple.genericIndexOf!("fromMsgpack", "importPaths").next' * * * DtoResolveVariable(std.typetuple.genericIndexOf!("fromMsgpack", "importPaths").next) * * VarDeclaration::codegen(): 'std.typetuple.genericIndexOf!("fromMsgpack", "importPaths").index' * * * DtoResolveVariable(std.typetuple.genericIndexOf!("fromMsgpack", "importPaths").index) * TemplateInstance::codegen: 'std.typetuple.isSame!("fromMsgpack", "importPaths")' * * VarDeclaration::codegen(): 'std.typetuple.isSame!("fromMsgpack", "importPaths").isSame' * * * DtoResolveVariable(std.typetuple.isSame!("fromMsgpack", "importPaths").isSame) * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("fromMsgpack")' * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!("fromMsgpack").e * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!("fromMsgpack").tuple * * VarDeclaration::codegen(): 'std.typetuple.genericIndexOf!("fromMsgpack").index' * * * DtoResolveVariable(std.typetuple.genericIndexOf!("fromMsgpack").index) * TemplateInstance::codegen: 'std.typecons.isTuple!(AutocompleteResponse)' * * VarDeclaration::codegen(): 'std.typecons.isTuple!(AutocompleteResponse).isTuple' * * * DtoResolveVariable(std.typecons.isTuple!(AutocompleteResponse).isTuple) * TemplateInstance::codegen: 'common.messages.AutocompleteResponse.Filter!(isPackedField, completionType, symbolFilePath, symbolLocation, docComments, completions, completionKinds, locations, importPaths)' * * Ignoring Dsymbol::codegen for common.messages.AutocompleteResponse.Filter!(isPackedField, completionType, symbolFilePath, symbolLocation, docComments, completions, completionKinds, locations, importPaths).Filter * TemplateInstance::codegen: 'common.messages.AutocompleteResponse.Filter!(isPackedField, completionType, symbolFilePath, symbolLocation, docComments)' * * Ignoring Dsymbol::codegen for common.messages.AutocompleteResponse.Filter!(isPackedField, completionType, symbolFilePath, symbolLocation, docComments).Filter * TemplateInstance::codegen: 'common.messages.AutocompleteResponse.Filter!(isPackedField, completionType, symbolFilePath)' * * Ignoring Dsymbol::codegen for common.messages.AutocompleteResponse.Filter!(isPackedField, completionType, symbolFilePath).Filter * TemplateInstance::codegen: 'common.messages.AutocompleteResponse.Filter!(isPackedField, completionType)' * * Ignoring Dsymbol::codegen for common.messages.AutocompleteResponse.Filter!(isPackedField, completionType).Filter * TemplateInstance::codegen: 'common.messages.AutocompleteResponse.pred!(completionType)' * * VarDeclaration::codegen(): 'common.messages.AutocompleteResponse.pred!(completionType).isPackedField' * * * DtoResolveVariable(common.messages.AutocompleteResponse.pred!(completionType).isPackedField) * TemplateInstance::codegen: 'common.messages.AutocompleteResponse.TypeTuple!(completionType)' * * Ignoring Dsymbol::codegen for common.messages.AutocompleteResponse.TypeTuple!(completionType).TypeTuple * TemplateInstance::codegen: 'common.messages.AutocompleteResponse.Filter!(isPackedField, symbolFilePath)' * * Ignoring Dsymbol::codegen for common.messages.AutocompleteResponse.Filter!(isPackedField, symbolFilePath).Filter * TemplateInstance::codegen: 'common.messages.AutocompleteResponse.pred!(symbolFilePath)' * * VarDeclaration::codegen(): 'common.messages.AutocompleteResponse.pred!(symbolFilePath).isPackedField' * * * DtoResolveVariable(common.messages.AutocompleteResponse.pred!(symbolFilePath).isPackedField) * TemplateInstance::codegen: 'common.messages.AutocompleteResponse.TypeTuple!(symbolFilePath)' * * Ignoring Dsymbol::codegen for common.messages.AutocompleteResponse.TypeTuple!(symbolFilePath).TypeTuple * TemplateInstance::codegen: 'common.messages.AutocompleteResponse.TypeTuple!(completionType, symbolFilePath)' * * Ignoring Dsymbol::codegen for common.messages.AutocompleteResponse.TypeTuple!(completionType, symbolFilePath).TypeTuple * TemplateInstance::codegen: 'common.messages.AutocompleteResponse.Filter!(isPackedField, symbolLocation, docComments)' * * Ignoring Dsymbol::codegen for common.messages.AutocompleteResponse.Filter!(isPackedField, symbolLocation, docComments).Filter * TemplateInstance::codegen: 'common.messages.AutocompleteResponse.Filter!(isPackedField, symbolLocation)' * * Ignoring Dsymbol::codegen for common.messages.AutocompleteResponse.Filter!(isPackedField, symbolLocation).Filter * TemplateInstance::codegen: 'common.messages.AutocompleteResponse.pred!(symbolLocation)' * * VarDeclaration::codegen(): 'common.messages.AutocompleteResponse.pred!(symbolLocation).isPackedField' * * * DtoResolveVariable(common.messages.AutocompleteResponse.pred!(symbolLocation).isPackedField) * TemplateInstance::codegen: 'common.messages.AutocompleteResponse.TypeTuple!(symbolLocation)' * * Ignoring Dsymbol::codegen for common.messages.AutocompleteResponse.TypeTuple!(symbolLocation).TypeTuple * TemplateInstance::codegen: 'common.messages.AutocompleteResponse.Filter!(isPackedField, docComments)' * * Ignoring Dsymbol::codegen for common.messages.AutocompleteResponse.Filter!(isPackedField, docComments).Filter * TemplateInstance::codegen: 'common.messages.AutocompleteResponse.pred!(docComments)' * * VarDeclaration::codegen(): 'common.messages.AutocompleteResponse.pred!(docComments).isPackedField' * * * DtoResolveVariable(common.messages.AutocompleteResponse.pred!(docComments).isPackedField) * TemplateInstance::codegen: 'common.messages.AutocompleteResponse.TypeTuple!(docComments)' * * Ignoring Dsymbol::codegen for common.messages.AutocompleteResponse.TypeTuple!(docComments).TypeTuple * TemplateInstance::codegen: 'common.messages.AutocompleteResponse.TypeTuple!(symbolLocation, docComments)' * * Ignoring Dsymbol::codegen for common.messages.AutocompleteResponse.TypeTuple!(symbolLocation, docComments).TypeTuple * TemplateInstance::codegen: 'common.messages.AutocompleteResponse.TypeTuple!(completionType, symbolFilePath, symbolLocation, docComments)' * * Ignoring Dsymbol::codegen for common.messages.AutocompleteResponse.TypeTuple!(completionType, symbolFilePath, symbolLocation, docComments).TypeTuple * TemplateInstance::codegen: 'common.messages.AutocompleteResponse.Filter!(isPackedField, completions, completionKinds, locations, importPaths)' * * Ignoring Dsymbol::codegen for common.messages.AutocompleteResponse.Filter!(isPackedField, completions, completionKinds, locations, importPaths).Filter * TemplateInstance::codegen: 'common.messages.AutocompleteResponse.Filter!(isPackedField, completions, completionKinds)' * * Ignoring Dsymbol::codegen for common.messages.AutocompleteResponse.Filter!(isPackedField, completions, completionKinds).Filter * TemplateInstance::codegen: 'common.messages.AutocompleteResponse.Filter!(isPackedField, completions)' * * Ignoring Dsymbol::codegen for common.messages.AutocompleteResponse.Filter!(isPackedField, completions).Filter * TemplateInstance::codegen: 'common.messages.AutocompleteResponse.pred!(completions)' * * VarDeclaration::codegen(): 'common.messages.AutocompleteResponse.pred!(completions).isPackedField' * * * DtoResolveVariable(common.messages.AutocompleteResponse.pred!(completions).isPackedField) * TemplateInstance::codegen: 'common.messages.AutocompleteResponse.TypeTuple!(completions)' * * Ignoring Dsymbol::codegen for common.messages.AutocompleteResponse.TypeTuple!(completions).TypeTuple * TemplateInstance::codegen: 'common.messages.AutocompleteResponse.Filter!(isPackedField, completionKinds)' * * Ignoring Dsymbol::codegen for common.messages.AutocompleteResponse.Filter!(isPackedField, completionKinds).Filter * TemplateInstance::codegen: 'common.messages.AutocompleteResponse.pred!(completionKinds)' * * VarDeclaration::codegen(): 'common.messages.AutocompleteResponse.pred!(completionKinds).isPackedField' * * * DtoResolveVariable(common.messages.AutocompleteResponse.pred!(completionKinds).isPackedField) * TemplateInstance::codegen: 'std.traits.isSomeFunction!(char[])' * * VarDeclaration::codegen(): 'std.traits.isSomeFunction!(char[]).isSomeFunction' * * * DtoResolveVariable(std.traits.isSomeFunction!(char[]).isSomeFunction) * TemplateInstance::codegen: 'common.messages.AutocompleteResponse.TypeTuple!(completionKinds)' * * Ignoring Dsymbol::codegen for common.messages.AutocompleteResponse.TypeTuple!(completionKinds).TypeTuple * TemplateInstance::codegen: 'common.messages.AutocompleteResponse.TypeTuple!(completions, completionKinds)' * * Ignoring Dsymbol::codegen for common.messages.AutocompleteResponse.TypeTuple!(completions, completionKinds).TypeTuple * TemplateInstance::codegen: 'common.messages.AutocompleteResponse.Filter!(isPackedField, locations, importPaths)' * * Ignoring Dsymbol::codegen for common.messages.AutocompleteResponse.Filter!(isPackedField, locations, importPaths).Filter * TemplateInstance::codegen: 'common.messages.AutocompleteResponse.Filter!(isPackedField, locations)' * * Ignoring Dsymbol::codegen for common.messages.AutocompleteResponse.Filter!(isPackedField, locations).Filter * TemplateInstance::codegen: 'common.messages.AutocompleteResponse.pred!(locations)' * * VarDeclaration::codegen(): 'common.messages.AutocompleteResponse.pred!(locations).isPackedField' * * * DtoResolveVariable(common.messages.AutocompleteResponse.pred!(locations).isPackedField) * TemplateInstance::codegen: 'std.traits.isSomeFunction!(ulong[])' * * VarDeclaration::codegen(): 'std.traits.isSomeFunction!(ulong[]).isSomeFunction' * * * DtoResolveVariable(std.traits.isSomeFunction!(ulong[]).isSomeFunction) * TemplateInstance::codegen: 'common.messages.AutocompleteResponse.TypeTuple!(locations)' * * Ignoring Dsymbol::codegen for common.messages.AutocompleteResponse.TypeTuple!(locations).TypeTuple * TemplateInstance::codegen: 'common.messages.AutocompleteResponse.Filter!(isPackedField, importPaths)' * * Ignoring Dsymbol::codegen for common.messages.AutocompleteResponse.Filter!(isPackedField, importPaths).Filter * TemplateInstance::codegen: 'common.messages.AutocompleteResponse.pred!(importPaths)' * * VarDeclaration::codegen(): 'common.messages.AutocompleteResponse.pred!(importPaths).isPackedField' * * * DtoResolveVariable(common.messages.AutocompleteResponse.pred!(importPaths).isPackedField) * TemplateInstance::codegen: 'common.messages.AutocompleteResponse.TypeTuple!(importPaths)' * * Ignoring Dsymbol::codegen for common.messages.AutocompleteResponse.TypeTuple!(importPaths).TypeTuple * TemplateInstance::codegen: 'common.messages.AutocompleteResponse.TypeTuple!(locations, importPaths)' * * Ignoring Dsymbol::codegen for common.messages.AutocompleteResponse.TypeTuple!(locations, importPaths).TypeTuple * TemplateInstance::codegen: 'common.messages.AutocompleteResponse.TypeTuple!(completions, completionKinds, locations, importPaths)' * * Ignoring Dsymbol::codegen for common.messages.AutocompleteResponse.TypeTuple!(completions, completionKinds, locations, importPaths).TypeTuple * TemplateInstance::codegen: 'common.messages.AutocompleteResponse.TypeTuple!(completionType, symbolFilePath, symbolLocation, docComments, completions, completionKinds, locations, importPaths)' * * Ignoring Dsymbol::codegen for common.messages.AutocompleteResponse.TypeTuple!(completionType, symbolFilePath, symbolLocation, docComments, completions, completionKinds, locations, importPaths).TypeTuple * TemplateInstance::codegen: 'std.traits.Unqual!(string[])' * * Ignoring Dsymbol::codegen for std.traits.Unqual!(string[]).Unqual * TemplateInstance::codegen: 'std.traits.isUnsigned!(string[])' * TemplateInstance::codegen: 'std.traits.isAggregateType!(string[])' * * VarDeclaration::codegen(): 'std.traits.isAggregateType!(string[]).isAggregateType' * * * DtoResolveVariable(std.traits.isAggregateType!(string[]).isAggregateType) * TemplateInstance::codegen: 'std.traits.OriginalType!(string[])' * TemplateInstance::codegen: 'std.traits.ModifyTypePreservingSTC!(Impl, string[])' * TemplateInstance::codegen: 'std.traits.OriginalType!(string[]).Modifier!(string[])' * TemplateInstance::codegen: 'std.typetuple.staticIndexOf!(string[], byte, ubyte, short, ushort, int, uint, long, ulong)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(string[], byte, ubyte, short, ushort, int, uint, long, ulong)' * TemplateInstance::codegen: 'std.typetuple.Alias!(string[])' * TemplateInstance::codegen: 'std.typetuple.isSame!(string[], byte)' * TemplateInstance::codegen: 'std.typetuple.expectType!(string[])' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(string[], ubyte, short, ushort, int, uint, long, ulong)' * TemplateInstance::codegen: 'std.typetuple.isSame!(string[], ubyte)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(string[], short, ushort, int, uint, long, ulong)' * TemplateInstance::codegen: 'std.typetuple.isSame!(string[], short)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(string[], ushort, int, uint, long, ulong)' * TemplateInstance::codegen: 'std.typetuple.isSame!(string[], ushort)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(string[], int, uint, long, ulong)' * TemplateInstance::codegen: 'std.typetuple.isSame!(string[], int)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(string[], uint, long, ulong)' * TemplateInstance::codegen: 'std.typetuple.isSame!(string[], uint)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(string[], long, ulong)' * TemplateInstance::codegen: 'std.typetuple.isSame!(string[], long)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(string[], ulong)' * TemplateInstance::codegen: 'std.typetuple.isSame!(string[], ulong)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(string[])' * TemplateInstance::codegen: 'std.traits.isSigned!(string[])' * TemplateInstance::codegen: 'std.typetuple.staticIndexOf!(string[], float, double, real)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(string[], float, double, real)' * TemplateInstance::codegen: 'std.typetuple.isSame!(string[], float)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(string[], double, real)' * TemplateInstance::codegen: 'std.typetuple.isSame!(string[], double)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(string[], real)' * TemplateInstance::codegen: 'std.typetuple.isSame!(string[], real)' * TemplateInstance::codegen: 'std.traits.isFloatingPoint!(string[])' * TemplateInstance::codegen: 'std.traits.isPointer!(string[])' * * VarDeclaration::codegen(): 'std.traits.isPointer!(string[]).isPointer' * * * DtoResolveVariable(std.traits.isPointer!(string[]).isPointer) * TemplateInstance::codegen: 'std.traits.isArray!(string[])' * * VarDeclaration::codegen(): 'std.traits.isArray!(string[]).isArray' * * * DtoResolveVariable(std.traits.isArray!(string[]).isArray) * TemplateInstance::codegen: 'std.traits.isStaticArray!(string[])' * * VarDeclaration::codegen(): 'std.traits.isStaticArray!(string[]).isStaticArray' * * * DtoResolveVariable(std.traits.isStaticArray!(string[]).isStaticArray) * TemplateInstance::codegen: 'std.traits.isDynamicArray!(string[])' * * VarDeclaration::codegen(): 'std.traits.isDynamicArray!(string[]).isDynamicArray' * * * DtoResolveVariable(std.traits.isDynamicArray!(string[]).isDynamicArray) * TemplateInstance::codegen: 'std.traits.DynamicArrayTypeOf!(string[])' * TemplateInstance::codegen: 'std.traits.isAssociativeArray!(string[])' * TemplateInstance::codegen: 'std.traits.isSomeChar!string' * * VarDeclaration::codegen(): 'std.traits.isSomeChar!string.isSomeChar' * * * DtoResolveVariable(std.traits.isSomeChar!string.isSomeChar) * TemplateInstance::codegen: 'std.traits.Unqual!(char[])' * TemplateInstance::codegen: 'std.traits.isUnsigned!(char[])' * TemplateInstance::codegen: 'std.traits.isAggregateType!(char[])' * * VarDeclaration::codegen(): 'std.traits.isAggregateType!(char[]).isAggregateType' * * * DtoResolveVariable(std.traits.isAggregateType!(char[]).isAggregateType) * TemplateInstance::codegen: 'std.traits.OriginalType!(char[])' * TemplateInstance::codegen: 'std.traits.ModifyTypePreservingSTC!(Impl, char[])' * TemplateInstance::codegen: 'std.traits.OriginalType!(char[]).Modifier!(char[])' * TemplateInstance::codegen: 'std.typetuple.staticIndexOf!(char[], byte, ubyte, short, ushort, int, uint, long, ulong)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(char[], byte, ubyte, short, ushort, int, uint, long, ulong)' * TemplateInstance::codegen: 'std.typetuple.Alias!(char[])' * TemplateInstance::codegen: 'std.typetuple.isSame!(char[], byte)' * TemplateInstance::codegen: 'std.typetuple.expectType!(char[])' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(char[], ubyte, short, ushort, int, uint, long, ulong)' * TemplateInstance::codegen: 'std.typetuple.isSame!(char[], ubyte)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(char[], short, ushort, int, uint, long, ulong)' * TemplateInstance::codegen: 'std.typetuple.isSame!(char[], short)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(char[], ushort, int, uint, long, ulong)' * TemplateInstance::codegen: 'std.typetuple.isSame!(char[], ushort)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(char[], int, uint, long, ulong)' * TemplateInstance::codegen: 'std.typetuple.isSame!(char[], int)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(char[], uint, long, ulong)' * TemplateInstance::codegen: 'std.typetuple.isSame!(char[], uint)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(char[], long, ulong)' * TemplateInstance::codegen: 'std.typetuple.isSame!(char[], long)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(char[], ulong)' * TemplateInstance::codegen: 'std.typetuple.isSame!(char[], ulong)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(char[])' * TemplateInstance::codegen: 'std.traits.isSigned!(char[])' * TemplateInstance::codegen: 'std.typetuple.staticIndexOf!(char[], float, double, real)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(char[], float, double, real)' * TemplateInstance::codegen: 'std.typetuple.isSame!(char[], float)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(char[], double, real)' * TemplateInstance::codegen: 'std.typetuple.isSame!(char[], double)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(char[], real)' * TemplateInstance::codegen: 'std.typetuple.isSame!(char[], real)' * TemplateInstance::codegen: 'std.traits.isFloatingPoint!(char[])' * TemplateInstance::codegen: 'std.traits.isPointer!(char[])' * TemplateInstance::codegen: 'std.traits.isArray!(char[])' * TemplateInstance::codegen: 'std.traits.isStaticArray!(char[])' * * VarDeclaration::codegen(): 'std.traits.isStaticArray!(char[]).isStaticArray' * * * DtoResolveVariable(std.traits.isStaticArray!(char[]).isStaticArray) * TemplateInstance::codegen: 'std.traits.isDynamicArray!(char[])' * * VarDeclaration::codegen(): 'std.traits.isDynamicArray!(char[]).isDynamicArray' * * * DtoResolveVariable(std.traits.isDynamicArray!(char[]).isDynamicArray) * TemplateInstance::codegen: 'std.traits.DynamicArrayTypeOf!(char[])' * TemplateInstance::codegen: 'std.traits.isAssociativeArray!(char[])' * TemplateInstance::codegen: 'std.traits.isSomeChar!char' * * VarDeclaration::codegen(): 'std.traits.isSomeChar!char.isSomeChar' * * * DtoResolveVariable(std.traits.isSomeChar!char.isSomeChar) * TemplateInstance::codegen: 'std.traits.CharTypeOf!char' * TemplateInstance::codegen: 'std.traits.isAggregateType!char' * * VarDeclaration::codegen(): 'std.traits.isAggregateType!char.isAggregateType' * * * DtoResolveVariable(std.traits.isAggregateType!char.isAggregateType) * TemplateInstance::codegen: 'std.traits.OriginalType!char' * TemplateInstance::codegen: 'std.traits.ModifyTypePreservingSTC!(Impl, char)' * TemplateInstance::codegen: 'std.traits.OriginalType!char.Modifier!char' * TemplateInstance::codegen: 'std.traits.Unqual!(ulong[])' * TemplateInstance::codegen: 'std.traits.isUnsigned!(ulong[])' * TemplateInstance::codegen: 'std.traits.isAggregateType!(ulong[])' * * VarDeclaration::codegen(): 'std.traits.isAggregateType!(ulong[]).isAggregateType' * * * DtoResolveVariable(std.traits.isAggregateType!(ulong[]).isAggregateType) * TemplateInstance::codegen: 'std.traits.OriginalType!(ulong[])' * TemplateInstance::codegen: 'std.traits.ModifyTypePreservingSTC!(Impl, ulong[])' * TemplateInstance::codegen: 'std.traits.OriginalType!(ulong[]).Modifier!(ulong[])' * TemplateInstance::codegen: 'std.typetuple.staticIndexOf!(ulong[], byte, ubyte, short, ushort, int, uint, long, ulong)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(ulong[], byte, ubyte, short, ushort, int, uint, long, ulong)' * TemplateInstance::codegen: 'std.typetuple.Alias!(ulong[])' * TemplateInstance::codegen: 'std.typetuple.isSame!(ulong[], byte)' * TemplateInstance::codegen: 'std.typetuple.expectType!(ulong[])' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(ulong[], ubyte, short, ushort, int, uint, long, ulong)' * TemplateInstance::codegen: 'std.typetuple.isSame!(ulong[], ubyte)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(ulong[], short, ushort, int, uint, long, ulong)' * TemplateInstance::codegen: 'std.typetuple.isSame!(ulong[], short)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(ulong[], ushort, int, uint, long, ulong)' * TemplateInstance::codegen: 'std.typetuple.isSame!(ulong[], ushort)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(ulong[], int, uint, long, ulong)' * TemplateInstance::codegen: 'std.typetuple.isSame!(ulong[], int)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(ulong[], uint, long, ulong)' * TemplateInstance::codegen: 'std.typetuple.isSame!(ulong[], uint)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(ulong[], long, ulong)' * TemplateInstance::codegen: 'std.typetuple.isSame!(ulong[], long)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(ulong[], ulong)' * TemplateInstance::codegen: 'std.typetuple.isSame!(ulong[], ulong)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(ulong[])' * TemplateInstance::codegen: 'std.traits.isSigned!(ulong[])' * TemplateInstance::codegen: 'std.typetuple.staticIndexOf!(ulong[], float, double, real)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(ulong[], float, double, real)' * TemplateInstance::codegen: 'std.typetuple.isSame!(ulong[], float)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(ulong[], double, real)' * TemplateInstance::codegen: 'std.typetuple.isSame!(ulong[], double)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(ulong[], real)' * TemplateInstance::codegen: 'std.typetuple.isSame!(ulong[], real)' * TemplateInstance::codegen: 'std.traits.isFloatingPoint!(ulong[])' * TemplateInstance::codegen: 'std.traits.isPointer!(ulong[])' * TemplateInstance::codegen: 'std.traits.isArray!(ulong[])' * TemplateInstance::codegen: 'std.traits.isStaticArray!(ulong[])' * * VarDeclaration::codegen(): 'std.traits.isStaticArray!(ulong[]).isStaticArray' * * * DtoResolveVariable(std.traits.isStaticArray!(ulong[]).isStaticArray) * TemplateInstance::codegen: 'std.traits.isDynamicArray!(ulong[])' * TemplateInstance::codegen: 'std.traits.DynamicArrayTypeOf!(ulong[])' * TemplateInstance::codegen: 'std.traits.isAssociativeArray!(ulong[])' * TemplateInstance::codegen: 'std.typetuple.staticIndexOf!(ulong, byte, ubyte)' * * VarDeclaration::codegen(): 'std.typetuple.staticIndexOf!(ulong, byte, ubyte).staticIndexOf' * * * DtoResolveVariable(std.typetuple.staticIndexOf!(ulong, byte, ubyte).staticIndexOf) * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(ulong, byte, ubyte)' * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!(ulong, byte, ubyte).e * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!(ulong, byte, ubyte).tuple * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!(ulong, byte, ubyte).head * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!(ulong, byte, ubyte).tail * * VarDeclaration::codegen(): 'std.typetuple.genericIndexOf!(ulong, byte, ubyte).next' * * * DtoResolveVariable(std.typetuple.genericIndexOf!(ulong, byte, ubyte).next) * * VarDeclaration::codegen(): 'std.typetuple.genericIndexOf!(ulong, byte, ubyte).index' * * * DtoResolveVariable(std.typetuple.genericIndexOf!(ulong, byte, ubyte).index) * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(ulong, ubyte)' * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!(ulong, ubyte).e * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!(ulong, ubyte).tuple * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!(ulong, ubyte).head * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!(ulong, ubyte).tail * * VarDeclaration::codegen(): 'std.typetuple.genericIndexOf!(ulong, ubyte).next' * * * DtoResolveVariable(std.typetuple.genericIndexOf!(ulong, ubyte).next) * * VarDeclaration::codegen(): 'std.typetuple.genericIndexOf!(ulong, ubyte).index' * * * DtoResolveVariable(std.typetuple.genericIndexOf!(ulong, ubyte).index) * TemplateInstance::codegen: 'std.traits.isSomeChar!ulong' * * VarDeclaration::codegen(): 'std.traits.isSomeChar!ulong.isSomeChar' * * * DtoResolveVariable(std.traits.isSomeChar!ulong.isSomeChar) * TemplateInstance::codegen: 'std.typetuple.staticIndexOf!(ulong, char, wchar, dchar)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(ulong, char, wchar, dchar)' * TemplateInstance::codegen: 'std.typetuple.isSame!(ulong, char)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(ulong, wchar, dchar)' * TemplateInstance::codegen: 'std.typetuple.isSame!(ulong, wchar)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(ulong, dchar)' * TemplateInstance::codegen: 'std.typetuple.isSame!(ulong, dchar)' * TemplateInstance::codegen: 'core.time.convert!("seconds", "hnsecs")' * TemplateInstance::codegen: 'core.time.hnsecsPer!"seconds"' * TemplateInstance::codegen: 'core.time.hnsecsPer!"msecs"' * TemplateInstance::codegen: 'core.time.hnsecsPer!"usecs"' * TemplateInstance::codegen: 'core.time.hnsecsPer!"hnsecs"' * TemplateInstance::codegen: 'object.RTInfo!(Demangle!uint)' * TypeInfoDeclaration::codegen(typeid(const(uint))) * * type = 'const(uint)' * * typeinfo mangle: _D11TypeInfo_xk6__initZ * * TypeInfoConstDeclaration::llvmDefine() typeid(const(uint)) * * * DtoTypeInfoOf(type = 'uint', base='1') * * * * Type::getTypeInfo(): uint * * * * TypeInfoDeclaration::codegen(typeid(uint)) * * * * * type = 'uint' * * * * * typeinfo mangle: _D10TypeInfo_k6__initZ * TemplateInstance::codegen: 'object.RTInfo!(TrieEntry!(bool, 8, 4, 9))' * TemplateInstance::codegen: 'object.RTInfo!(TrieEntry!(ushort, 8, 7, 6))' * TemplateInstance::codegen: 'object.RTInfo!(TrieEntry!(bool, 8, 5, 8))' * TemplateInstance::codegen: 'object.RTInfo!(TrieEntry!(bool, 8, 6, 7))' * TemplateInstance::codegen: 'object.RTInfo!(TrieEntry!(bool, 7, 4, 4, 6))' * TemplateInstance::codegen: 'std.range.primitives.isInputRange!int' * TemplateInstance::codegen: 'std.uni.ReallocPolicy.append!(uint, int)' * TemplateInstance::codegen: 'std.uni.ReallocPolicy.realloc!uint' * TemplateInstance::codegen: 'std.exception.enforce!(Exception, void*)' * TemplateInstance::codegen: 'std.exception.bailOut!(Exception)' * TemplateInstance::codegen: 'object.idup!(const(char))' * TemplateInstance::codegen: 'object._trustedDup!(const(char), immutable(char))' * TemplateInstance::codegen: 'object._dup!(const(char), immutable(char))' * TemplateInstance::codegen: 'object._rawDup!char' * TemplateInstance::codegen: 'object._doPostblit!(immutable(char))' * TemplateInstance::codegen: 'object._getPostblit!(immutable(char))' * TypeInfoDeclaration::codegen(typeid(immutable(char))) * * type = 'immutable(char)' * * typeinfo mangle: _D11TypeInfo_ya6__initZ * * TypeInfoInvariantDeclaration::llvmDefine() typeid(immutable(char)) * * * DtoResolveClass(object.TypeInfo_Invariant): /usr/include/dlang/ldc/object.di(280) * * * * Building type: object.TypeInfo_Invariant * * * * * Building class type object.TypeInfo_Invariant @ /usr/include/dlang/ldc/object.di(280) * * * * * * Instance size: 24 * * * * * * adding default initializer for struct field next * * * * * * Building vtbl type for class object.TypeInfo_Invariant * * * * * * * Adding type of object.TypeInfo.toString * * * * * * * isMember = this is: object.TypeInfo * * * * * * * DtoFunctionType(const pure nothrow @safe string()) * * * * * * * Adding type of object.TypeInfo.toHash * * * * * * * isMember = this is: object.TypeInfo * * * * * * * DtoFunctionType(const nothrow @trusted ulong()) * * * * * * * Adding type of object.TypeInfo.opCmp * * * * * * * isMember = this is: object.TypeInfo * * * * * * * DtoFunctionType(int(Object o)) * * * * * * * Adding type of object.TypeInfo.opEquals * * * * * * * isMember = this is: object.TypeInfo * * * * * * * DtoFunctionType(bool(Object o)) * * * * * * * Adding type of object.TypeInfo.getHash * * * * * * * isMember = this is: object.TypeInfo * * * * * * * DtoFunctionType(const nothrow @trusted ulong(const(void*) p)) * * * * * * * Adding type of object.TypeInfo.equals * * * * * * * isMember = this is: object.TypeInfo * * * * * * * DtoFunctionType(const bool(const(void*) p1, const(void*) p2)) * * * * * * * Adding type of object.TypeInfo.compare * * * * * * * isMember = this is: object.TypeInfo * * * * * * * DtoFunctionType(const int(const(void*) p1, const(void*) p2)) * * * * * * * Adding type of object.TypeInfo.tsize * * * * * * * isMember = this is: object.TypeInfo * * * * * * * DtoFunctionType(const pure nothrow @nogc @property @safe ulong()) * * * * * * * Adding type of object.TypeInfo.swap * * * * * * * isMember = this is: object.TypeInfo * * * * * * * DtoFunctionType(const void(void* p1, void* p2)) * * * * * * * Adding type of object.TypeInfo.next * * * * * * * isMember = this is: object.TypeInfo * * * * * * * DtoFunctionType(inout pure nothrow @nogc @property inout(TypeInfo)()) * * * * * * * Adding type of object.TypeInfo.init * * * * * * * isMember = this is: object.TypeInfo * * * * * * * DtoFunctionType(const pure nothrow @nogc @safe const(void)[]()) * * * * * * * Adding type of object.TypeInfo.flags * * * * * * * isMember = this is: object.TypeInfo * * * * * * * DtoFunctionType(const pure nothrow @nogc @property @safe uint()) * * * * * * * Adding type of object.TypeInfo.offTi * * * * * * * isMember = this is: object.TypeInfo * * * * * * * DtoFunctionType(const const(OffsetTypeInfo)[]()) * * * * * * * Adding type of object.TypeInfo.destroy * * * * * * * isMember = this is: object.TypeInfo * * * * * * * DtoFunctionType(const void(void* p)) * * * * * * * Adding type of object.TypeInfo.postblit * * * * * * * isMember = this is: object.TypeInfo * * * * * * * DtoFunctionType(const void(void* p)) * * * * * * * Adding type of object.TypeInfo.talign * * * * * * * isMember = this is: object.TypeInfo * * * * * * * DtoFunctionType(const pure nothrow @nogc @property @safe ulong()) * * * * * * * Adding type of object.TypeInfo.argTypes * * * * * * * isMember = this is: object.TypeInfo * * * * * * * DtoFunctionType(nothrow @safe int(out TypeInfo arg1, out TypeInfo arg2)) * * * * * * * Adding type of object.TypeInfo.rtInfo * * * * * * * isMember = this is: object.TypeInfo * * * * * * * DtoFunctionType(const pure nothrow @nogc @property @safe immutable(void)*()) * * * * * * class type: %object.TypeInfo_Invariant = type { %object.TypeInfo_Invariant.__vtbl*, i8*, %object.TypeInfo* } * * * DtoTypeInfoOf(type = 'char', base='1') * * * * Type::getTypeInfo(): char * * * * TypeInfoDeclaration::codegen(typeid(char)) * * * * * type = 'char' * * * * * typeinfo mangle: _D10TypeInfo_a6__initZ * TemplateInstance::codegen: 'object._PostBlitType!(immutable(char))' * TemplateInstance::codegen: 'std.uni.isBitPacked!uint' * TemplateInstance::codegen: 'std.uni.force!(uint, int)' * TemplateInstance::codegen: 'std.uni.ReallocPolicy.alloc!uint' * TemplateInstance::codegen: 'std.algorithm.comparison.min!(immutable(ulong), ulong)' * TemplateInstance::codegen: 'std.algorithm.comparison.MinType!(immutable(ulong), ulong)' * TemplateInstance::codegen: 'std.traits.isNumeric!(immutable(ulong))' * TemplateInstance::codegen: 'std.traits.NumericTypeOf!(immutable(ulong))' * TemplateInstance::codegen: 'std.traits.IntegralTypeOf!(immutable(ulong))' * TemplateInstance::codegen: 'std.traits.isAggregateType!(immutable(ulong))' * TemplateInstance::codegen: 'std.traits.OriginalType!(immutable(ulong))' * TemplateInstance::codegen: 'std.traits.ModifyTypePreservingSTC!(Impl, immutable(ulong))' * TemplateInstance::codegen: 'std.traits.OriginalType!(immutable(ulong)).Modifier!ulong' * TemplateInstance::codegen: 'std.traits.Unqual!(immutable(ulong))' * TemplateInstance::codegen: 'std.traits.mostNegative!(immutable(ulong))' * TemplateInstance::codegen: 'std.functional.safeOp!"<".safeOp!(immutable(ulong), ulong)' * TemplateInstance::codegen: 'std.traits.isIntegral!(immutable(ulong))' * TemplateInstance::codegen: 'std.range.primitives.isInputRange!(uint[])' * TemplateInstance::codegen: 'std.range.primitives.empty!uint' * TemplateInstance::codegen: 'std.traits.isNarrowString!(uint[])' * TemplateInstance::codegen: 'std.traits.isStaticArray!(uint[])' * TemplateInstance::codegen: 'std.range.primitives.popFront!uint' * TemplateInstance::codegen: 'std.range.primitives.front!uint' * TemplateInstance::codegen: 'std.range.primitives.ElementType!(uint[])' * TemplateInstance::codegen: 'std.range.primitives.isOutputRange!(uint[], uint)' * TemplateInstance::codegen: 'std.range.primitives.put!(uint[], uint)' * TemplateInstance::codegen: 'std.range.primitives.doPut!(uint[], uint)' * TemplateInstance::codegen: 'std.traits.hasMember!(uint[], "put")' * TemplateInstance::codegen: 'std.algorithm.mutation.copy!(uint[], uint[])' * TemplateInstance::codegen: 'std.range.primitives.isRandomAccessRange!(uint[])' * TemplateInstance::codegen: 'std.range.primitives.isBidirectionalRange!(uint[])' * TemplateInstance::codegen: 'std.range.primitives.isForwardRange!(uint[])' * TemplateInstance::codegen: 'std.range.primitives.save!uint' * TemplateInstance::codegen: 'std.range.primitives.popBack!uint' * TemplateInstance::codegen: 'std.range.primitives.back!uint' * TemplateInstance::codegen: 'std.range.primitives.hasLength!(uint[])' * TemplateInstance::codegen: 'std.range.primitives.isInfinite!(uint[])' * TemplateInstance::codegen: 'std.range.primitives.hasSlicing!(uint[])' * TemplateInstance::codegen: 'std.traits.isArray!(uint[])' * TemplateInstance::codegen: 'object.RTInfo!(CowArray!(ReallocPolicy))' * TemplateInstance::codegen: 'std.uni.CowArray!(ReallocPolicy).CowArray.opEquals!()' * TypeInfoDeclaration::codegen(typeid(const(uint[]))) * * type = 'const(uint[])' * * typeinfo mangle: _D12TypeInfo_xAk6__initZ * * Building type: const(uint)[] * * TypeInfoConstDeclaration::llvmDefine() typeid(const(uint[])) * * * DtoTypeInfoOf(type = 'const(uint)[]', base='1') * * * * Type::getTypeInfo(): const(uint)[] * * * * * TypeInfoDeclaration::codegen(typeid(const(uint)[])) * * * * * * type = 'const(uint)[]' * * * * * * typeinfo mangle: _D12TypeInfo_Axk6__initZ * * * * * * TypeInfoArrayDeclaration::llvmDefine() typeid(const(uint)[]) * * * * * * * DtoTypeInfoOf(type = 'const(uint)', base='1') * * * * * * * * Type::getTypeInfo(): const(uint) * * * * * * * * TypeInfoDeclaration::codegen(typeid(const(uint))) * * * * TypeInfoDeclaration::codegen(typeid(const(uint)[])) * TemplateInstance::codegen: 'std.uni.InversionList!(GcPolicy).InversionList.Intervals!(CowArray!(GcPolicy))' * TemplateInstance::codegen: 'std.uni.GcPolicy.alloc!uint' * TemplateInstance::codegen: 'std.range.primitives.ElementType!(const(uint)[])' * TemplateInstance::codegen: 'std.traits.isNarrowString!(const(uint)[])' * TemplateInstance::codegen: 'std.traits.isAggregateType!(const(uint)[])' * TemplateInstance::codegen: 'std.traits.isStaticArray!(const(uint)[])' * TemplateInstance::codegen: 'std.traits.OriginalType!(const(uint)[])' * TemplateInstance::codegen: 'std.traits.ModifyTypePreservingSTC!(Impl, const(uint)[])' * TemplateInstance::codegen: 'std.traits.OriginalType!(const(uint)[]).Modifier!(const(uint)[])' * TemplateInstance::codegen: 'std.range.primitives.front!(const(uint))' * TemplateInstance::codegen: 'std.uni.sharMethod!(switchUniformLowerBound).sharMethod!("a<=b", const(uint)[], uint)' * TemplateInstance::codegen: 'std.functional.binaryFun!("a<=b", "a", "b")' * TemplateInstance::codegen: 'std.uni.switchUniformLowerBound!(binaryFun, const(uint)[], uint)' * TemplateInstance::codegen: 'std.functional.binaryFun!("a<=b", "a", "b").binaryFun!(const(uint), uint)' * TemplateInstance::codegen: 'std.traits.isFloatingPoint!int' * TemplateInstance::codegen: 'std.typetuple.staticIndexOf!(int, float, double, real)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(int, float, double, real)' * TemplateInstance::codegen: 'std.typetuple.isSame!(int, float)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(int, double, real)' * TemplateInstance::codegen: 'std.typetuple.isSame!(int, double)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(int, real)' * TemplateInstance::codegen: 'std.typetuple.isSame!(int, real)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!int' * TemplateInstance::codegen: 'std.math.pow!(int, int)' * TemplateInstance::codegen: 'std.conv.to!string' * TemplateInstance::codegen: 'std.conv.isRawStaticArray!int' * TemplateInstance::codegen: 'std.traits.isStaticArray!int' * TemplateInstance::codegen: 'std.conv.to!string.to!(int)' * TemplateInstance::codegen: 'std.traits.isImplicitlyConvertible!(int, string)' * TemplateInstance::codegen: 'std.range.primitives.isInfinite!int' * TemplateInstance::codegen: 'std.conv.isExactSomeString!string' * TemplateInstance::codegen: 'std.traits.isSomeString!string' * TemplateInstance::codegen: 'std.traits.isNumeric!string' * TemplateInstance::codegen: 'std.traits.isBoolean!string' * TemplateInstance::codegen: 'std.traits.isSomeString!int' * TemplateInstance::codegen: 'std.traits.isDynamicArray!int' * TemplateInstance::codegen: 'std.traits.isAssociativeArray!int' * TemplateInstance::codegen: 'std.conv.isExactSomeString!int' * TemplateInstance::codegen: 'std.conv.toImpl!(string, int)' * TemplateInstance::codegen: 'std.conv.toImpl!(string, int)' * TemplateInstance::codegen: 'std.conv.toImpl!(string, int).toImpl.toStringRadixConvert!(13LU, 10u, true)' * TemplateInstance::codegen: 'std.traits.isSomeChar!int' * TemplateInstance::codegen: 'std.typetuple.staticIndexOf!(int, char, wchar, dchar)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(int, char, wchar, dchar)' * TemplateInstance::codegen: 'std.typetuple.isSame!(int, char)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(int, wchar, dchar)' * TemplateInstance::codegen: 'std.typetuple.isSame!(int, wchar)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(int, dchar)' * TemplateInstance::codegen: 'std.typetuple.isSame!(int, dchar)' * TemplateInstance::codegen: 'std.conv.unsigned!int' * TemplateInstance::codegen: 'std.traits.Unsigned!int' * TemplateInstance::codegen: 'std.traits.ModifyTypePreservingSTC!(Impl, int)' * TemplateInstance::codegen: 'std.traits.Unsigned!int.Modifier!int' * TemplateInstance::codegen: 'std.traits.isUnsigned!int' * TemplateInstance::codegen: 'std.typetuple.staticIndexOf!(int, ubyte, ushort, uint, ulong)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(int, ubyte, ushort, uint, ulong)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(int, ushort, uint, ulong)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(int, uint, ulong)' * TemplateInstance::codegen: 'std.typetuple.isSame!(int, uint)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(int, ulong)' * TemplateInstance::codegen: 'std.typetuple.isSame!(int, ulong)' * TemplateInstance::codegen: 'std.traits.isSigned!int' * TemplateInstance::codegen: 'std.traits.SignedTypeOf!int' * TemplateInstance::codegen: 'std.typetuple.staticIndexOf!(int, byte, short, int, long)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(int, byte, short, int, long)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(int, short, int, long)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(int, int, long)' * TemplateInstance::codegen: 'object.dup!char' * TemplateInstance::codegen: 'object._trustedDup!(const(char), char)' * TemplateInstance::codegen: 'object._dup!(const(char), char)' * TemplateInstance::codegen: 'object._doPostblit!char' * TemplateInstance::codegen: 'object._getPostblit!char' * TemplateInstance::codegen: 'object._PostBlitType!char' * TemplateInstance::codegen: 'std.conv.toImpl!(string, int).toImpl.toStringRadixConvert!(12LU, 10u, false)' * TemplateInstance::codegen: 'std.conv.toImpl!(string, int).toImpl.toStringRadixConvert!(8LU, 16u, false)' * TemplateInstance::codegen: 'std.conv.toImpl!(string, int).toImpl.toStringRadixConvert!(32LU, 2u, false)' * TemplateInstance::codegen: 'std.conv.toImpl!(string, int).toImpl.toStringRadixConvert!(12LU, 8u, false)' * TemplateInstance::codegen: 'std.conv.toImpl!(string, int).toImpl.toStringRadixConvert!(24LU, 0u, false)' * TemplateInstance::codegen: 'std.range.primitives.isForwardRange!string' * * VarDeclaration::codegen(): 'std.range.primitives.isForwardRange!string.isForwardRange' * * * DtoResolveVariable(std.range.primitives.isForwardRange!string.isForwardRange) * TemplateInstance::codegen: 'std.range.primitives.isInputRange!string' * * VarDeclaration::codegen(): 'std.range.primitives.isInputRange!string.isInputRange' * * * DtoResolveVariable(std.range.primitives.isInputRange!string.isInputRange) * TemplateInstance::codegen: 'std.traits.isNarrowString!string' * * VarDeclaration::codegen(): 'std.traits.isNarrowString!string.isNarrowString' * * * DtoResolveVariable(std.traits.isNarrowString!string.isNarrowString) * TemplateInstance::codegen: 'std.range.primitives.popFront!(immutable(char))' * TemplateInstance::codegen: 'std.range.primitives.front!(immutable(char))' * TemplateInstance::codegen: 'std.utf.decode!string' * * DtoDefineFunction(std.utf.decode!string.decode): /usr/include/dlang/ldc/std/utf.d(973) * * * DtoFunctionType(pure @trusted dchar(auto ref string str, ref ulong index)) * * * * Building type: string* * * * * x86-64 ABI: Transforming return type * * * * x86-64 ABI: Transforming argument types * * * * Final function type: i32 (i64*, { i64, i8* }*) * * * DtoResolveFunction(std.utf.decode!string.decode): /usr/include/dlang/ldc/std/utf.d(973) * * * * DtoDeclareFunction(std.utf.decode!string.decode): /usr/include/dlang/ldc/std/utf.d(973) * * * * * DtoFunctionType(pure @trusted dchar(auto ref string str, ref ulong index)) * * * * * func = declare i32 @_D3std3utf15__T6decodeTAyaZ6decodeFNaNeKAyaKmZw(i64*, { i64, i8* }*) * * * Doing function body for: decode * * * DtoCreateNestedContext for decode * * * * DtoCreateNestedContextType for std.utf.decode!string.decode * * * DtoVarDeclaration(vdtype = const(dchar)) * * * * llvm value for decl: %result = alloca i32, align 4 * * * CompoundStatement::toIR(): * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/utf.d(985) * * * * * CmpExp::toElem: cast(int)str[index] < 128 @ bool * * * * * * CastExp::toElem: cast(int)str[index] @ int * * * * * * * IndexExp::toElem: str[index] @ immutable(char) * * * * * * * * VarExp::toElem: str @ string * * * * * * * * * DtoSymbolAddress ('str' of type 'string') * * * * * * * * * * function param * * * * * * * * * * type: string * * * * * * * * VarExp::toElem: index @ ulong * * * * * * * * * DtoSymbolAddress ('index' of type 'ulong') * * * * * * * * * * function param * * * * * * * * * * type: ulong * * * * * * * * DtoArrayPtr * * * * * * * Casting from 'immutable(char)' to 'int' * * * * * * * * cast to: i32 * * * * * * IntegerExp::toElem: 128 @ int * * * * * * * IntegerExp::toConstElem: 128 @ int * * * * * * * * value = i32 128 * * * * * * type 1: %5 = zext i8 %4 to i32 * * * * * * type 2: i32 128 * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/utf.d(986) * * * * * * CastExp::toElem: cast(dchar)str[index++] @ dchar * * * * * * * IndexExp::toElem: str[index++] @ immutable(char) * * * * * * * * VarExp::toElem: str @ string * * * * * * * * * DtoSymbolAddress ('str' of type 'string') * * * * * * * * * * function param * * * * * * * * * * type: string * * * * * * * * PostExp::toElem: index++ @ ulong * * * * * * * * * VarExp::toElem: index @ ulong * * * * * * * * * * DtoSymbolAddress ('index' of type 'ulong') * * * * * * * * * * * function param * * * * * * * * * * * type: ulong * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * value = i64 1 * * * * * * * * DtoArrayPtr * * * * * * * Casting from 'immutable(char)' to 'dchar' * * * * * * * * cast to: i32 * * * * * * return value is '0x122c4ea8' * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/utf.d(988) * * * * * * CallExp::toElem: decodeImpl(str, index) @ dchar * * * * * * * VarExp::toElem: decodeImpl @ pure @system dchar(auto ref string str, ref ulong index) * * * * * * * * DtoSymbolAddress ('decodeImpl' of type 'pure @system dchar(auto ref string str, ref ulong index)') * * * * * * * * * FuncDeclaration * * * * * * * * * DtoFunctionType(pure @system dchar(auto ref string str, ref ulong index)) * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: i32 (i64*, { i64, i8* }*) * * * * * * * * * DtoResolveFunction(std.utf.decodeImpl!(true, string).decodeImpl): /usr/include/dlang/ldc/std/utf.d(1095) * * * * * * * * * * DtoDeclareFunction(std.utf.decodeImpl!(true, string).decodeImpl): /usr/include/dlang/ldc/std/utf.d(1095) * * * * * * * * * * * DtoFunctionType(pure @system dchar(auto ref string str, ref ulong index)) * * * * * * * * * * * func = declare i32 @_D3std3utf24__T10decodeImplVbi1TAyaZ10decodeImplFNaKAyaKmZw(i64*, { i64, i8* }*) * * * * * * * DtoCallFunction() * * * * * * * * Building type: pure @system dchar(auto ref string str, ref ulong index) * * * * * * * * * DtoFunctionType(pure @system dchar(auto ref string str, ref ulong index)) * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: i32 (i64*, { i64, i8* }*) * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (0) * * * * * * * * Function type: pure @system dchar(auto ref string str, ref ulong index) * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: str @ string * * * * * * * * * * DtoSymbolAddress ('str' of type 'string') * * * * * * * * * * * function param * * * * * * * * * * * type: string * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: index @ ulong * * * * * * * * * * DtoSymbolAddress ('index' of type 'ulong') * * * * * * * * * * * function param * * * * * * * * * * * type: ulong * * * * * * return value is '0x122c68f8' * TemplateInstance::codegen: 'std.utf.codeUnitLimit!string' * * VarDeclaration::codegen(): 'std.utf.codeUnitLimit!string.codeUnitLimit' * * * DtoResolveVariable(std.utf.codeUnitLimit!string.codeUnitLimit) * TemplateInstance::codegen: 'std.utf.decodeImpl!(true, string)' * * DtoDefineFunction(std.utf.decodeImpl!(true, string).decodeImpl): /usr/include/dlang/ldc/std/utf.d(1095) * * * Doing function body for: decodeImpl * * * DtoCreateNestedContext for decodeImpl * * * * DtoCreateNestedContextType for std.utf.decodeImpl!(true, string).decodeImpl * * * * * has nested frame * * * * * Function decodeImpl has depth 0 * * * * * Building type: immutable(char)* * * * * * Nested var 'pstr' of type i8* * * * * * Nested var 'length' of type i64 * * * * * frameType = %nest.decodeImpl = type { i8*, i64 } * * * * nested var: pstr * * * * nested var: length * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/utf.d(1097) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/utf.d(1110) * * * * * * DeclarationExp::toElem: alias bitMask = TList; | T=void * * * * * * * DtoDeclarationExp: bitMask * * * * * * * * Ignoring Symbol: alias * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/utf.d(1113) * * * * * * DeclarationExp::toElem: immutable(char)* pstr = cast(immutable(char)*)str + cast(long)index * 1L; | T=void * * * * * * * DtoDeclarationExp: pstr * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = immutable(char)*) * * * * * * * * * has nestedref set (referenced by nested function/delegate) * * * * * * * * * llvm value for decl: %pstr = getelementptr %nest.decodeImpl, %nest.decodeImpl* %.frame, i32 0, i32 0 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: pstr = cast(immutable(char)*)str + cast(long)index * 1L | (immutable(char)*)(immutable(char)* = immutable(char)*) * * * * * * * * * * VarExp::toElem: pstr @ immutable(char)* * * * * * * * * * * * DtoSymbolAddress ('pstr' of type 'immutable(char)*') * * * * * * * * * * * * nested variable * * * * * * * * * * * * DtoNestedVariable for pstr @ /usr/include/dlang/ldc/std/utf.d(1113) * * * * * * * * * * AddExp::toElem: cast(immutable(char)*)str + cast(long)index * 1L @ immutable(char)* * * * * * * * * * * * CastExp::toElem: cast(immutable(char)*)str @ immutable(char)* * * * * * * * * * * * * VarExp::toElem: str @ string * * * * * * * * * * * * * DtoSymbolAddress ('str' of type 'string') * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * type: string * * * * * * * * * * * * Casting from 'string' to 'immutable(char)*' * * * * * * * * * * * * * DtoCastArray * * * * * * * * * * * * * * from array or sarray * * * * * * * * * * * * * * to pointer * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * Adding integer to pointer * * * * * * * * * * * CastExp::toElem: cast(long)index @ long * * * * * * * * * * * * VarExp::toElem: index @ ulong * * * * * * * * * * * * * DtoSymbolAddress ('index' of type 'ulong') * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * type: ulong * * * * * * * * * * * * Casting from 'ulong' to 'long' * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %pstr = getelementptr %nest.decodeImpl, %nest.decodeImpl* %.frame, i32 0, i32 0 * * * * * * * * * * * rhs: %3 = getelementptr i8, i8* %.ptr, i64 %2 * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/utf.d(1124) * * * * * * DeclarationExp::toElem: immutable immutable(ulong) length = str.length - index; | T=void * * * * * * * DtoDeclarationExp: length * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = immutable(ulong)) * * * * * * * * * has nestedref set (referenced by nested function/delegate) * * * * * * * * * llvm value for decl: %length = getelementptr %nest.decodeImpl, %nest.decodeImpl* %.frame, i32 0, i32 1 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: length = str.length - index | (immutable(ulong))(immutable(ulong) = immutable(ulong)) * * * * * * * * * * VarExp::toElem: length @ immutable(ulong) * * * * * * * * * * * DtoSymbolAddress ('length' of type 'immutable(ulong)') * * * * * * * * * * * * nested variable * * * * * * * * * * * * DtoNestedVariable for length @ /usr/include/dlang/ldc/std/utf.d(1124) * * * * * * * * * * MinExp::toElem: str.length - index @ immutable(ulong) * * * * * * * * * * * ArrayLengthExp::toElem: str.length @ ulong * * * * * * * * * * * * VarExp::toElem: str @ string * * * * * * * * * * * * * DtoSymbolAddress ('str' of type 'string') * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * type: string * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * VarExp::toElem: index @ ulong * * * * * * * * * * * * DtoSymbolAddress ('index' of type 'ulong') * * * * * * * * * * * * * function param * * * * * * * * * * * * * type: ulong * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %length = getelementptr %nest.decodeImpl, %nest.decodeImpl* %.frame, i32 0, i32 1 * * * * * * * * * * * rhs: %6 = sub i64 %.len, %5 * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/utf.d(1125) * * * * * * DeclarationExp::toElem: ubyte fst = cast(ubyte)pstr[0]; | T=void * * * * * * * DtoDeclarationExp: fst * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = ubyte) * * * * * * * * * llvm value for decl: %fst = alloca i8, align 1 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: fst = cast(ubyte)pstr[0] | (ubyte)(ubyte = ubyte) * * * * * * * * * * VarExp::toElem: fst @ ubyte * * * * * * * * * * * DtoSymbolAddress ('fst' of type 'ubyte') * * * * * * * * * * * * a normal variable * * * * * * * * * * CastExp::toElem: cast(ubyte)pstr[0] @ ubyte * * * * * * * * * * * IndexExp::toElem: pstr[0] @ immutable(char) * * * * * * * * * * * * VarExp::toElem: pstr @ immutable(char)* * * * * * * * * * * * * * DtoSymbolAddress ('pstr' of type 'immutable(char)*') * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * DtoNestedVariable for pstr @ /usr/include/dlang/ldc/std/utf.d(1125) * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * Casting from 'immutable(char)' to 'ubyte' * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %fst = alloca i8, align 1 * * * * * * * * * * * rhs: %9 = load i8, i8* %8 * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/utf.d(1135) * * * * * * DeclarationExp::toElem: static template exception(S) | T=void * * * * * * * DtoDeclarationExp: __anonymous * * * * * * * * AttribDeclaration * * * * * * * * DtoDeclarationExp: exception(S)(S str, string msg) * * * * * * * * * Ignoring Symbol: template * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/utf.d(1149) * * * * * * DeclarationExp::toElem: pure @system UTFException invalidUTF() { return exception(pstr[0..length], "Invalid UTF-8 sequence"); } | T=void * * * * * * * DtoDeclarationExp: invalidUTF * * * * * * * * FuncDeclaration * * * * * * * * DtoDefineFunction(std.utf.decodeImpl!(true, string).decodeImpl.invalidUTF): /usr/include/dlang/ldc/std/utf.d(1149) * * * * * * * * * DtoFunctionType(pure @system UTFException()) * * * * * * * * * * Building type: std.utf.UTFException * * * * * * * * * * * Building class type std.utf.UTFException @ /usr/include/dlang/ldc/std/utf.d(35) * * * * * * * * * * * * Instance size: 96 * * * * * * * * * * * * adding default initializer for struct field msg * * * * * * * * * * * * adding default initializer for struct field file * * * * * * * * * * * * adding default initializer for struct field line * * * * * * * * * * * * adding default initializer for struct field info * * * * * * * * * * * * adding default initializer for struct field next * * * * * * * * * * * * adding default initializer for struct field sequence * * * * * * * * * * * * adding default initializer for struct field len * * * * * * * * * * * * Building type: uint[4] * * * * * * * * * * * * Building vtbl type for class std.utf.UTFException * * * * * * * * * * * * * Adding type of std.utf.UTFException.toString * * * * * * * * * * * * * isMember = this is: std.utf.UTFException * * * * * * * * * * * * * DtoFunctionType(string()) * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * Final function type: { i64, i8* } (%std.utf.UTFException*) * * * * * * * * * * * * * Adding type of object.Object.toHash * * * * * * * * * * * * * isMember = this is: object.Object * * * * * * * * * * * * * DtoFunctionType(nothrow @trusted ulong()) * * * * * * * * * * * * * Adding type of object.Object.opCmp * * * * * * * * * * * * * isMember = this is: object.Object * * * * * * * * * * * * * DtoFunctionType(int(Object o)) * * * * * * * * * * * * * Adding type of object.Object.opEquals * * * * * * * * * * * * * isMember = this is: object.Object * * * * * * * * * * * * * DtoFunctionType(bool(Object o)) * * * * * * * * * * * * * Adding type of object.Throwable.toString * * * * * * * * * * * * * isMember = this is: object.Throwable * * * * * * * * * * * * * DtoFunctionType(const void(scope void delegate(const(char[])) sink)) * * * * * * * * * * * * * Adding type of std.utf.UTFException.setSequence * * * * * * * * * * * * * isMember = this is: std.utf.UTFException * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe UTFException(uint[] data...)) * * * * * * * * * * * * * * Building type: uint[] * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * Final function type: %std.utf.UTFException* (%std.utf.UTFException*, { i64, i32* }, ...) * * * * * * * * * * * * class type: %std.utf.UTFException = type { %std.utf.UTFException.__vtbl*, i8*, { i64, i8* }, { i64, i8* }, i64, %object.Throwable.TraceInfo*, %object.Throwable*, [4 x i32], i64 } * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: %std.utf.UTFException* (i8*) * * * * * * * * * DtoResolveFunction(std.utf.decodeImpl!(true, string).decodeImpl.invalidUTF): /usr/include/dlang/ldc/std/utf.d(1149) * * * * * * * * * * DtoDeclareFunction(std.utf.decodeImpl!(true, string).decodeImpl.invalidUTF): /usr/include/dlang/ldc/std/utf.d(1149) * * * * * * * * * * * DtoFunctionType(pure @system UTFException()) * * * * * * * * * * * func = declare %std.utf.UTFException* @_D3std3utf24__T10decodeImplVbi1TAyaZ10decodeImplFKAyaKmZ10invalidUTFMFNaZC3std3utf12UTFException(i8*) * * * * * * * * * Doing function body for: invalidUTF * * * * * * * * * DtoCreateNestedContext for invalidUTF * * * * * * * * * * DtoCreateNestedContextType for std.utf.decodeImpl!(true, string).decodeImpl.invalidUTF * * * * * * * * * * * DtoCreateNestedContextType for std.utf.decodeImpl!(true, string).decodeImpl * * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/utf.d(1152) * * * * * * * * * * * CallExp::toElem: exception(pstr[0..length], "Invalid UTF-8 sequence") @ std.utf.UTFException * * * * * * * * * * * * VarExp::toElem: exception @ pure @safe UTFException(string str, string msg) * * * * * * * * * * * * * DtoSymbolAddress ('exception' of type 'pure @safe UTFException(string str, string msg)') * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * DtoFunctionType(pure @safe UTFException(string str, string msg)) * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * Final function type: %std.utf.UTFException* ({ i64, i8* }, { i64, i8* }) * * * * * * * * * * * * * * DtoResolveFunction(std.utf.decodeImpl!(true, string).decodeImpl.exception!string.exception): /usr/include/dlang/ldc/std/utf.d(1135) * * * * * * * * * * * * * * * DtoDeclareFunction(std.utf.decodeImpl!(true, string).decodeImpl.exception!string.exception): /usr/include/dlang/ldc/std/utf.d(1135) * * * * * * * * * * * * * * * * DtoFunctionType(pure @safe UTFException(string str, string msg)) * * * * * * * * * * * * * * * * func = declare %std.utf.UTFException* @_D3std3utf24__T10decodeImplVbi1TAyaZ10decodeImplFKAyaKmZ18__T9exceptionTAyaZ9exceptionFNaNfAyaAyaZC3std3utf12UTFException({ i64, i8* }, { i64, i8* }) * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * Building type: pure @safe UTFException(string str, string msg) * * * * * * * * * * * * * * DtoFunctionType(pure @safe UTFException(string str, string msg)) * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * Final function type: %std.utf.UTFException* ({ i64, i8* }, { i64, i8* }) * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * Function type: pure @safe UTFException(string str, string msg) * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * SliceExp::toElem: pstr[0..length] @ string * * * * * * * * * * * * * * * VarExp::toElem: pstr @ immutable(char)* * * * * * * * * * * * * * * * * DtoSymbolAddress ('pstr' of type 'immutable(char)*') * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * DtoNestedVariable for pstr @ /usr/include/dlang/ldc/std/utf.d(1152) * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for std.utf.decodeImpl!(true, string).decodeImpl * * * * * * * * * * * * * * * * * * Context: %2 = bitcast i8* %1 to %nest.decodeImpl* * * * * * * * * * * * * * * * * * * of type: %nest.decodeImpl = type { i8*, i64 } * * * * * * * * * * * * * * * * * * Variable: pstr * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * Function: invalidUTF * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * Addr: %pstr = getelementptr %nest.decodeImpl, %nest.decodeImpl* %2, i32 0, i32 0 * * * * * * * * * * * * * * * * * * of type: i8** * * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * * * VarExp::toElem: length @ ulong * * * * * * * * * * * * * * * * DtoSymbolAddress ('length' of type 'immutable(ulong)') * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * DtoNestedVariable for length @ /usr/include/dlang/ldc/std/utf.d(1152) * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for std.utf.decodeImpl!(true, string).decodeImpl * * * * * * * * * * * * * * * * * * Context: %5 = bitcast i8* %4 to %nest.decodeImpl* * * * * * * * * * * * * * * * * * * of type: %nest.decodeImpl = type { i8*, i64 } * * * * * * * * * * * * * * * * * * Variable: length * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * Function: invalidUTF * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * Addr: %length = getelementptr %nest.decodeImpl, %nest.decodeImpl* %5, i32 0, i32 1 * * * * * * * * * * * * * * * * * * of type: i64* * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * StringExp::toElem: "Invalid UTF-8 sequence" @ string * * * * * * * * * * * * * * * type: [23 x i8] * * * * * * * * * * * * * * * init: [23 x i8] c"Invalid UTF-8 sequence\00" * * * * * * * * * * * return value is '0x122d06c8' * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/utf.d(1166) * * * * * * DeclarationExp::toElem: pure @system UTFException outOfBounds() { return exception(pstr[0..length], "Attempted to decode past the end of a string"); } | T=void * * * * * * * DtoDeclarationExp: outOfBounds * * * * * * * * FuncDeclaration * * * * * * * * DtoDefineFunction(std.utf.decodeImpl!(true, string).decodeImpl.outOfBounds): /usr/include/dlang/ldc/std/utf.d(1166) * * * * * * * * * DtoFunctionType(pure @system UTFException()) * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: %std.utf.UTFException* (i8*) * * * * * * * * * DtoResolveFunction(std.utf.decodeImpl!(true, string).decodeImpl.outOfBounds): /usr/include/dlang/ldc/std/utf.d(1166) * * * * * * * * * * DtoDeclareFunction(std.utf.decodeImpl!(true, string).decodeImpl.outOfBounds): /usr/include/dlang/ldc/std/utf.d(1166) * * * * * * * * * * * DtoFunctionType(pure @system UTFException()) * * * * * * * * * * * func = declare %std.utf.UTFException* @_D3std3utf24__T10decodeImplVbi1TAyaZ10decodeImplFKAyaKmZ11outOfBoundsMFNaZC3std3utf12UTFException(i8*) * * * * * * * * * Doing function body for: outOfBounds * * * * * * * * * DtoCreateNestedContext for outOfBounds * * * * * * * * * * DtoCreateNestedContextType for std.utf.decodeImpl!(true, string).decodeImpl.outOfBounds * * * * * * * * * * * DtoCreateNestedContextType for std.utf.decodeImpl!(true, string).decodeImpl * * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/utf.d(1169) * * * * * * * * * * * CallExp::toElem: exception(pstr[0..length], "Attempted to decode past the end of a string") @ std.utf.UTFException * * * * * * * * * * * * VarExp::toElem: exception @ pure @safe UTFException(string str, string msg) * * * * * * * * * * * * * DtoSymbolAddress ('exception' of type 'pure @safe UTFException(string str, string msg)') * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * Function type: pure @safe UTFException(string str, string msg) * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * SliceExp::toElem: pstr[0..length] @ string * * * * * * * * * * * * * * * VarExp::toElem: pstr @ immutable(char)* * * * * * * * * * * * * * * * * DtoSymbolAddress ('pstr' of type 'immutable(char)*') * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * DtoNestedVariable for pstr @ /usr/include/dlang/ldc/std/utf.d(1169) * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for std.utf.decodeImpl!(true, string).decodeImpl * * * * * * * * * * * * * * * * * * Context: %2 = bitcast i8* %1 to %nest.decodeImpl* * * * * * * * * * * * * * * * * * * of type: %nest.decodeImpl = type { i8*, i64 } * * * * * * * * * * * * * * * * * * Variable: pstr * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * Function: outOfBounds * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * Addr: %pstr = getelementptr %nest.decodeImpl, %nest.decodeImpl* %2, i32 0, i32 0 * * * * * * * * * * * * * * * * * * of type: i8** * * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * * * VarExp::toElem: length @ ulong * * * * * * * * * * * * * * * * DtoSymbolAddress ('length' of type 'immutable(ulong)') * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * DtoNestedVariable for length @ /usr/include/dlang/ldc/std/utf.d(1169) * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for std.utf.decodeImpl!(true, string).decodeImpl * * * * * * * * * * * * * * * * * * Context: %5 = bitcast i8* %4 to %nest.decodeImpl* * * * * * * * * * * * * * * * * * * of type: %nest.decodeImpl = type { i8*, i64 } * * * * * * * * * * * * * * * * * * Variable: length * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * Function: outOfBounds * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * Addr: %length = getelementptr %nest.decodeImpl, %nest.decodeImpl* %5, i32 0, i32 1 * * * * * * * * * * * * * * * * * * of type: i64* * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * StringExp::toElem: "Attempted to decode past the end of a string" @ string * * * * * * * * * * * * * * * type: [45 x i8] * * * * * * * * * * * * * * * init: [45 x i8] c"Attempted to decode past the end of a string\00" * * * * * * * * * * * return value is '0x122d3518' * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/utf.d(1173) * * * * * * EqualExp::toElem: (cast(int)fst & 192) != 192 @ bool * * * * * * * AndExp::toElem: cast(int)fst & 192 @ int * * * * * * * * CastExp::toElem: cast(int)fst @ int * * * * * * * * * VarExp::toElem: fst @ ubyte * * * * * * * * * * DtoSymbolAddress ('fst' of type 'ubyte') * * * * * * * * * * * a normal variable * * * * * * * * * Casting from 'ubyte' to 'int' * * * * * * * * * * cast to: i32 * * * * * * * * IntegerExp::toElem: 192 @ int * * * * * * * * * IntegerExp::toConstElem: 192 @ int * * * * * * * * * * value = i32 192 * * * * * * * IntegerExp::toElem: 192 @ int * * * * * * * * IntegerExp::toConstElem: 192 @ int * * * * * * * * * value = i32 192 * * * * * * * integral or pointer or interface * * * * * * * lv: %12 = and i32 %11, 192 * * * * * * * rv: i32 192 * * * * * * ThrowStatement::toIR(): /usr/include/dlang/ldc/std/utf.d(1174) * * * * * * * CallExp::toElem: invalidUTF() @ std.utf.UTFException * * * * * * * * VarExp::toElem: invalidUTF @ pure @system UTFException() * * * * * * * * * DtoSymbolAddress ('invalidUTF' of type 'pure @system UTFException()') * * * * * * * * * * FuncDeclaration * * * * * * * * DtoCallFunction() * * * * * * * * * Building type: pure @system UTFException() * * * * * * * * * * DtoFunctionType(pure @system UTFException()) * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * Final function type: %std.utf.UTFException* () * * * * * * * * * DtoNestedContext for std.utf.decodeImpl!(true, string).decodeImpl.invalidUTF * * * * * * * * * * DtoCreateNestedContextType for std.utf.decodeImpl!(true, string).decodeImpl.invalidUTF * * * * * * * * * * Parent frame is from decodeImpl * * * * * * * * * * Current function is decodeImpl * * * * * * * * * * Context is from decodeImpl * * * * * * * * * * Needed depth: 0 * * * * * * * * * * Context depth: 0 * * * * * * * * * * Calling sibling function or directly nested function * * * * * * * * * * result = %.frame = alloca %nest.decodeImpl, align 8 * * * * * * * * * * of type %nest.decodeImpl* * * * * * * * * * doing normal arguments * * * * * * * * * Arguments so far: (1) * * * * * * * * * * %14 = bitcast %nest.decodeImpl* %.frame to i8* * * * * * * * * * Function type: pure @system UTFException() * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/utf.d(1175) * * * * * * DeclarationExp::toElem: ubyte tmp = void; | T=void * * * * * * * DtoDeclarationExp: tmp * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = ubyte) * * * * * * * * * llvm value for decl: %tmp = alloca i8, align 1 * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/utf.d(1176) * * * * * * DeclarationExp::toElem: dchar d = cast(dchar)fst; | T=void * * * * * * * DtoDeclarationExp: d * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = dchar) * * * * * * * * * llvm value for decl: %d = alloca i32, align 4 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: d = cast(dchar)fst | (dchar)(dchar = dchar) * * * * * * * * * * VarExp::toElem: d @ dchar * * * * * * * * * * * DtoSymbolAddress ('d' of type 'dchar') * * * * * * * * * * * * a normal variable * * * * * * * * * * CastExp::toElem: cast(dchar)fst @ dchar * * * * * * * * * * * VarExp::toElem: fst @ ubyte * * * * * * * * * * * * DtoSymbolAddress ('fst' of type 'ubyte') * * * * * * * * * * * * * a normal variable * * * * * * * * * * * Casting from 'ubyte' to 'dchar' * * * * * * * * * * * * cast to: i32 * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %d = alloca i32, align 4 * * * * * * * * * * * rhs: %18 = zext i8 %17 to i32 * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/utf.d(1177) * * * * * * ShlAssignExp::toElem: cast(int)fst <<= 1 @ ubyte * * * * * * * Caching l-value of cast(int)fst <<= 1 => fst * * * * * * * * VarExp::toElem: fst @ ubyte * * * * * * * * * DtoSymbolAddress ('fst' of type 'ubyte') * * * * * * * * * * a normal variable * * * * * * * ShlExp::toElem: fst << 1 @ ubyte * * * * * * * * VarExp::toElem: fst @ ubyte * * * * * * * * IntegerExp::toElem: 1 @ int * * * * * * * * * IntegerExp::toConstElem: 1 @ int * * * * * * * * * * value = i32 1 * * * * * * * * Casting from 'int' to 'ubyte' * * * * * * * DtoAssign() * * * * * * * * lhs: %fst = alloca i8, align 1 * * * * * * * * rhs: %21 = shl i8 %20, %19 * * * * * UnrolledLoopStatement::toIR(): /usr/include/dlang/ldc/std/utf.d(1179) * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/utf.d(1179) * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/utf.d(1179) * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/utf.d(1179) * * * * * * * * * DeclarationExp::toElem: enum int i = 1; | T=void * * * * * * * * * * DtoDeclarationExp: i * * * * * * * * * * * VarDeclaration * * * * * * * * * * * Manifest constant, nothing to do. * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/utf.d(1184) * * * * * * * * * EqualExp::toElem: 1LU == length @ bool * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * value = i64 1 * * * * * * * * * * VarExp::toElem: length @ ulong * * * * * * * * * * * DtoSymbolAddress ('length' of type 'immutable(ulong)') * * * * * * * * * * * * nested variable * * * * * * * * * * * * DtoNestedVariable for length @ /usr/include/dlang/ldc/std/utf.d(1184) * * * * * * * * * * integral or pointer or interface * * * * * * * * * * lv: i64 1 * * * * * * * * * * rv: %22 = load i64, i64* %length * * * * * * * * * ThrowStatement::toIR(): /usr/include/dlang/ldc/std/utf.d(1185) * * * * * * * * * * CallExp::toElem: outOfBounds() @ std.utf.UTFException * * * * * * * * * * * VarExp::toElem: outOfBounds @ pure @system UTFException() * * * * * * * * * * * * DtoSymbolAddress ('outOfBounds' of type 'pure @system UTFException()') * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * Building type: pure @system UTFException() * * * * * * * * * * * * * DtoFunctionType(pure @system UTFException()) * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * Final function type: %std.utf.UTFException* () * * * * * * * * * * * * DtoNestedContext for std.utf.decodeImpl!(true, string).decodeImpl.outOfBounds * * * * * * * * * * * * * DtoCreateNestedContextType for std.utf.decodeImpl!(true, string).decodeImpl.outOfBounds * * * * * * * * * * * * * Parent frame is from decodeImpl * * * * * * * * * * * * * Current function is decodeImpl * * * * * * * * * * * * * Context is from decodeImpl * * * * * * * * * * * * * Needed depth: 0 * * * * * * * * * * * * * Context depth: 0 * * * * * * * * * * * * * Calling sibling function or directly nested function * * * * * * * * * * * * * result = %.frame = alloca %nest.decodeImpl, align 8 * * * * * * * * * * * * * of type %nest.decodeImpl* * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * %24 = bitcast %nest.decodeImpl* %.frame to i8* * * * * * * * * * * * * Function type: pure @system UTFException() * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/utf.d(1194) * * * * * * * * * AssignExp::toElem: tmp = cast(ubyte)pstr[1] | (ubyte)(ubyte = ubyte) * * * * * * * * * * VarExp::toElem: tmp @ ubyte * * * * * * * * * * * DtoSymbolAddress ('tmp' of type 'ubyte') * * * * * * * * * * * * a normal variable * * * * * * * * * * CastExp::toElem: cast(ubyte)pstr[1] @ ubyte * * * * * * * * * * * IndexExp::toElem: pstr[1] @ immutable(char) * * * * * * * * * * * * VarExp::toElem: pstr @ immutable(char)* * * * * * * * * * * * * * DtoSymbolAddress ('pstr' of type 'immutable(char)*') * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * DtoNestedVariable for pstr @ /usr/include/dlang/ldc/std/utf.d(1194) * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * Casting from 'immutable(char)' to 'ubyte' * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %tmp = alloca i8, align 1 * * * * * * * * * * * rhs: %29 = load i8, i8* %28 * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/utf.d(1201) * * * * * * * * * EqualExp::toElem: (cast(int)tmp & 192) != 128 @ bool * * * * * * * * * * AndExp::toElem: cast(int)tmp & 192 @ int * * * * * * * * * * * CastExp::toElem: cast(int)tmp @ int * * * * * * * * * * * * VarExp::toElem: tmp @ ubyte * * * * * * * * * * * * * DtoSymbolAddress ('tmp' of type 'ubyte') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * Casting from 'ubyte' to 'int' * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * IntegerExp::toElem: 192 @ int * * * * * * * * * * * * IntegerExp::toConstElem: 192 @ int * * * * * * * * * * * * * value = i32 192 * * * * * * * * * * IntegerExp::toElem: 128 @ int * * * * * * * * * * * IntegerExp::toConstElem: 128 @ int * * * * * * * * * * * * value = i32 128 * * * * * * * * * * integral or pointer or interface * * * * * * * * * * lv: %32 = and i32 %31, 192 * * * * * * * * * * rv: i32 128 * * * * * * * * * ThrowStatement::toIR(): /usr/include/dlang/ldc/std/utf.d(1202) * * * * * * * * * * CallExp::toElem: invalidUTF() @ std.utf.UTFException * * * * * * * * * * * VarExp::toElem: invalidUTF @ pure @system UTFException() * * * * * * * * * * * * DtoSymbolAddress ('invalidUTF' of type 'pure @system UTFException()') * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * DtoNestedContext for std.utf.decodeImpl!(true, string).decodeImpl.invalidUTF * * * * * * * * * * * * * DtoCreateNestedContextType for std.utf.decodeImpl!(true, string).decodeImpl.invalidUTF * * * * * * * * * * * * * Parent frame is from decodeImpl * * * * * * * * * * * * * Current function is decodeImpl * * * * * * * * * * * * * Context is from decodeImpl * * * * * * * * * * * * * Needed depth: 0 * * * * * * * * * * * * * Context depth: 0 * * * * * * * * * * * * * Calling sibling function or directly nested function * * * * * * * * * * * * * result = %.frame = alloca %nest.decodeImpl, align 8 * * * * * * * * * * * * * of type %nest.decodeImpl* * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * %34 = bitcast %nest.decodeImpl* %.frame to i8* * * * * * * * * * * * * Function type: pure @system UTFException() * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/utf.d(1204) * * * * * * * * * AssignExp::toElem: d = cast(dchar)(cast(uint)d << 6 | cast(uint)(cast(int)tmp & 63)) | (dchar)(dchar = dchar) * * * * * * * * * * VarExp::toElem: d @ dchar * * * * * * * * * * * DtoSymbolAddress ('d' of type 'dchar') * * * * * * * * * * * * a normal variable * * * * * * * * * * CastExp::toElem: cast(dchar)(cast(uint)d << 6 | cast(uint)(cast(int)tmp & 63)) @ dchar * * * * * * * * * * * OrExp::toElem: cast(uint)d << 6 | cast(uint)(cast(int)tmp & 63) @ uint * * * * * * * * * * * * ShlExp::toElem: cast(uint)d << 6 @ uint * * * * * * * * * * * * * CastExp::toElem: cast(uint)d @ uint * * * * * * * * * * * * * * VarExp::toElem: d @ dchar * * * * * * * * * * * * * * * DtoSymbolAddress ('d' of type 'dchar') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * Casting from 'dchar' to 'uint' * * * * * * * * * * * * * IntegerExp::toElem: 6 @ int * * * * * * * * * * * * * * IntegerExp::toConstElem: 6 @ int * * * * * * * * * * * * * * * value = i32 6 * * * * * * * * * * * * * Casting from 'int' to 'uint' * * * * * * * * * * * * CastExp::toElem: cast(uint)(cast(int)tmp & 63) @ uint * * * * * * * * * * * * * AndExp::toElem: cast(int)tmp & 63 @ int * * * * * * * * * * * * * * CastExp::toElem: cast(int)tmp @ int * * * * * * * * * * * * * * * VarExp::toElem: tmp @ ubyte * * * * * * * * * * * * * * * * DtoSymbolAddress ('tmp' of type 'ubyte') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * Casting from 'ubyte' to 'int' * * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * * * IntegerExp::toElem: 63 @ int * * * * * * * * * * * * * * * IntegerExp::toConstElem: 63 @ int * * * * * * * * * * * * * * * * value = i32 63 * * * * * * * * * * * * * Casting from 'int' to 'uint' * * * * * * * * * * * Casting from 'uint' to 'dchar' * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %d = alloca i32, align 4 * * * * * * * * * * * rhs: %42 = or i32 %38, %41 * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/utf.d(1205) * * * * * * * * * ShlAssignExp::toElem: cast(int)fst <<= 1 @ ubyte * * * * * * * * * * Caching l-value of cast(int)fst <<= 1 => fst * * * * * * * * * * * VarExp::toElem: fst @ ubyte * * * * * * * * * * * * DtoSymbolAddress ('fst' of type 'ubyte') * * * * * * * * * * * * * a normal variable * * * * * * * * * * ShlExp::toElem: fst << 1 @ ubyte * * * * * * * * * * * VarExp::toElem: fst @ ubyte * * * * * * * * * * * IntegerExp::toElem: 1 @ int * * * * * * * * * * * * IntegerExp::toConstElem: 1 @ int * * * * * * * * * * * * * value = i32 1 * * * * * * * * * * * Casting from 'int' to 'ubyte' * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %fst = alloca i8, align 1 * * * * * * * * * * * rhs: %45 = shl i8 %44, %43 * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/utf.d(1207) * * * * * * * * * NotExp::toElem: !(cast(int)fst & 128) @ bool * * * * * * * * * * AndExp::toElem: cast(int)fst & 128 @ int * * * * * * * * * * * CastExp::toElem: cast(int)fst @ int * * * * * * * * * * * * VarExp::toElem: fst @ ubyte * * * * * * * * * * * * * DtoSymbolAddress ('fst' of type 'ubyte') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * Casting from 'ubyte' to 'int' * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * IntegerExp::toElem: 128 @ int * * * * * * * * * * * * IntegerExp::toConstElem: 128 @ int * * * * * * * * * * * * * value = i32 128 * * * * * * * * * * Casting from 'int' to 'bool' * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/utf.d(1208) * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/utf.d(1208) * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/utf.d(1209) * * * * * * * * * * * * AndAssignExp::toElem: cast(uint)d &= 2047u @ dchar * * * * * * * * * * * * * Caching l-value of cast(uint)d &= 2047u => d * * * * * * * * * * * * * * VarExp::toElem: d @ dchar * * * * * * * * * * * * * * * DtoSymbolAddress ('d' of type 'dchar') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * AndExp::toElem: cast(uint)d & 2047u @ uint * * * * * * * * * * * * * * CastExp::toElem: cast(uint)d @ uint * * * * * * * * * * * * * * * VarExp::toElem: d @ dchar * * * * * * * * * * * * * * * Casting from 'dchar' to 'uint' * * * * * * * * * * * * * * IntegerExp::toElem: 2047u @ uint * * * * * * * * * * * * * * * IntegerExp::toConstElem: 2047u @ uint * * * * * * * * * * * * * * * * value = i32 2047 * * * * * * * * * * * * * Casting from 'uint' to 'dchar' * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * lhs: %d = alloca i32, align 4 * * * * * * * * * * * * * * rhs: %52 = and i32 %51, 2047 * * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/utf.d(1212) * * * * * * * * * * * * EqualExp::toElem: (cast(uint)d & 4294967168u) == 0u @ bool * * * * * * * * * * * * * AndExp::toElem: cast(uint)d & 4294967168u @ uint * * * * * * * * * * * * * * CastExp::toElem: cast(uint)d @ uint * * * * * * * * * * * * * * * VarExp::toElem: d @ dchar * * * * * * * * * * * * * * * * DtoSymbolAddress ('d' of type 'dchar') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * Casting from 'dchar' to 'uint' * * * * * * * * * * * * * * IntegerExp::toElem: 4294967168u @ uint * * * * * * * * * * * * * * * IntegerExp::toConstElem: 4294967168u @ uint * * * * * * * * * * * * * * * * value = i32 -128 * * * * * * * * * * * * * IntegerExp::toElem: 0u @ uint * * * * * * * * * * * * * * IntegerExp::toConstElem: 0u @ uint * * * * * * * * * * * * * * * value = i32 0 * * * * * * * * * * * * * integral or pointer or interface * * * * * * * * * * * * * lv: %54 = and i32 %53, -128 * * * * * * * * * * * * * rv: i32 0 * * * * * * * * * * * * ThrowStatement::toIR(): /usr/include/dlang/ldc/std/utf.d(1213) * * * * * * * * * * * * * CallExp::toElem: invalidUTF() @ std.utf.UTFException * * * * * * * * * * * * * * VarExp::toElem: invalidUTF @ pure @system UTFException() * * * * * * * * * * * * * * * DtoSymbolAddress ('invalidUTF' of type 'pure @system UTFException()') * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * DtoNestedContext for std.utf.decodeImpl!(true, string).decodeImpl.invalidUTF * * * * * * * * * * * * * * * * DtoCreateNestedContextType for std.utf.decodeImpl!(true, string).decodeImpl.invalidUTF * * * * * * * * * * * * * * * * Parent frame is from decodeImpl * * * * * * * * * * * * * * * * Current function is decodeImpl * * * * * * * * * * * * * * * * Context is from decodeImpl * * * * * * * * * * * * * * * * Needed depth: 0 * * * * * * * * * * * * * * * * Context depth: 0 * * * * * * * * * * * * * * * * Calling sibling function or directly nested function * * * * * * * * * * * * * * * * result = %.frame = alloca %nest.decodeImpl, align 8 * * * * * * * * * * * * * * * * of type %nest.decodeImpl* * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * %56 = bitcast %nest.decodeImpl* %.frame to i8* * * * * * * * * * * * * * * * Function type: pure @system UTFException() * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/utf.d(1222) * * * * * * * * * * * * AddAssignExp::toElem: index += 2LU @ ulong * * * * * * * * * * * * * Caching l-value of index += 2LU => index * * * * * * * * * * * * * * VarExp::toElem: index @ ulong * * * * * * * * * * * * * * * DtoSymbolAddress ('index' of type 'ulong') * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * type: ulong * * * * * * * * * * * * * AddExp::toElem: index + 2LU @ ulong * * * * * * * * * * * * * * VarExp::toElem: index @ ulong * * * * * * * * * * * * * * IntegerExp::toElem: 2LU @ ulong * * * * * * * * * * * * * * * IntegerExp::toConstElem: 2LU @ ulong * * * * * * * * * * * * * * * * value = i64 2 * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * lhs: i64* %index_arg * * * * * * * * * * * * * * rhs: %60 = add i64 %59, 2 * * * * * * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/utf.d(1226) * * * * * * * * * * * * VarExp::toElem: d @ dchar * * * * * * * * * * * * * DtoSymbolAddress ('d' of type 'dchar') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * return value is '0x122e0b38' * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/utf.d(1179) * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/utf.d(1179) * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/utf.d(1179) * * * * * * * * * DeclarationExp::toElem: enum int i = 2; | T=void * * * * * * * * * * DtoDeclarationExp: i * * * * * * * * * * * VarDeclaration * * * * * * * * * * * Manifest constant, nothing to do. * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/utf.d(1184) * * * * * * * * * EqualExp::toElem: 2LU == length @ bool * * * * * * * * * * IntegerExp::toElem: 2LU @ ulong * * * * * * * * * * * IntegerExp::toConstElem: 2LU @ ulong * * * * * * * * * * * * value = i64 2 * * * * * * * * * * VarExp::toElem: length @ ulong * * * * * * * * * * * DtoSymbolAddress ('length' of type 'immutable(ulong)') * * * * * * * * * * * * nested variable * * * * * * * * * * * * DtoNestedVariable for length @ /usr/include/dlang/ldc/std/utf.d(1184) * * * * * * * * * * integral or pointer or interface * * * * * * * * * * lv: i64 2 * * * * * * * * * * rv: %24 = load i64, i64* %length * * * * * * * * * ThrowStatement::toIR(): /usr/include/dlang/ldc/std/utf.d(1185) * * * * * * * * * * CallExp::toElem: outOfBounds() @ std.utf.UTFException * * * * * * * * * * * VarExp::toElem: outOfBounds @ pure @system UTFException() * * * * * * * * * * * * DtoSymbolAddress ('outOfBounds' of type 'pure @system UTFException()') * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * DtoNestedContext for std.utf.decodeImpl!(true, string).decodeImpl.outOfBounds * * * * * * * * * * * * * DtoCreateNestedContextType for std.utf.decodeImpl!(true, string).decodeImpl.outOfBounds * * * * * * * * * * * * * Parent frame is from decodeImpl * * * * * * * * * * * * * Current function is decodeImpl * * * * * * * * * * * * * Context is from decodeImpl * * * * * * * * * * * * * Needed depth: 0 * * * * * * * * * * * * * Context depth: 0 * * * * * * * * * * * * * Calling sibling function or directly nested function * * * * * * * * * * * * * result = %.frame = alloca %nest.decodeImpl, align 8 * * * * * * * * * * * * * of type %nest.decodeImpl* * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * %65 = bitcast %nest.decodeImpl* %.frame to i8* * * * * * * * * * * * * Function type: pure @system UTFException() * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/utf.d(1194) * * * * * * * * * AssignExp::toElem: tmp = cast(ubyte)pstr[2] | (ubyte)(ubyte = ubyte) * * * * * * * * * * VarExp::toElem: tmp @ ubyte * * * * * * * * * * * DtoSymbolAddress ('tmp' of type 'ubyte') * * * * * * * * * * * * a normal variable * * * * * * * * * * CastExp::toElem: cast(ubyte)pstr[2] @ ubyte * * * * * * * * * * * IndexExp::toElem: pstr[2] @ immutable(char) * * * * * * * * * * * * VarExp::toElem: pstr @ immutable(char)* * * * * * * * * * * * * * DtoSymbolAddress ('pstr' of type 'immutable(char)*') * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * DtoNestedVariable for pstr @ /usr/include/dlang/ldc/std/utf.d(1194) * * * * * * * * * * * * IntegerExp::toElem: 2LU @ ulong * * * * * * * * * * * * * IntegerExp::toConstElem: 2LU @ ulong * * * * * * * * * * * * * * value = i64 2 * * * * * * * * * * * Casting from 'immutable(char)' to 'ubyte' * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %tmp = alloca i8, align 1 * * * * * * * * * * * rhs: %70 = load i8, i8* %69 * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/utf.d(1201) * * * * * * * * * EqualExp::toElem: (cast(int)tmp & 192) != 128 @ bool * * * * * * * * * * AndExp::toElem: cast(int)tmp & 192 @ int * * * * * * * * * * * CastExp::toElem: cast(int)tmp @ int * * * * * * * * * * * * VarExp::toElem: tmp @ ubyte * * * * * * * * * * * * * DtoSymbolAddress ('tmp' of type 'ubyte') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * Casting from 'ubyte' to 'int' * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * IntegerExp::toElem: 192 @ int * * * * * * * * * * * * IntegerExp::toConstElem: 192 @ int * * * * * * * * * * * * * value = i32 192 * * * * * * * * * * IntegerExp::toElem: 128 @ int * * * * * * * * * * * IntegerExp::toConstElem: 128 @ int * * * * * * * * * * * * value = i32 128 * * * * * * * * * * integral or pointer or interface * * * * * * * * * * lv: %73 = and i32 %72, 192 * * * * * * * * * * rv: i32 128 * * * * * * * * * ThrowStatement::toIR(): /usr/include/dlang/ldc/std/utf.d(1202) * * * * * * * * * * CallExp::toElem: invalidUTF() @ std.utf.UTFException * * * * * * * * * * * VarExp::toElem: invalidUTF @ pure @system UTFException() * * * * * * * * * * * * DtoSymbolAddress ('invalidUTF' of type 'pure @system UTFException()') * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * DtoNestedContext for std.utf.decodeImpl!(true, string).decodeImpl.invalidUTF * * * * * * * * * * * * * DtoCreateNestedContextType for std.utf.decodeImpl!(true, string).decodeImpl.invalidUTF * * * * * * * * * * * * * Parent frame is from decodeImpl * * * * * * * * * * * * * Current function is decodeImpl * * * * * * * * * * * * * Context is from decodeImpl * * * * * * * * * * * * * Needed depth: 0 * * * * * * * * * * * * * Context depth: 0 * * * * * * * * * * * * * Calling sibling function or directly nested function * * * * * * * * * * * * * result = %.frame = alloca %nest.decodeImpl, align 8 * * * * * * * * * * * * * of type %nest.decodeImpl* * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * %75 = bitcast %nest.decodeImpl* %.frame to i8* * * * * * * * * * * * * Function type: pure @system UTFException() * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/utf.d(1204) * * * * * * * * * AssignExp::toElem: d = cast(dchar)(cast(uint)d << 6 | cast(uint)(cast(int)tmp & 63)) | (dchar)(dchar = dchar) * * * * * * * * * * VarExp::toElem: d @ dchar * * * * * * * * * * * DtoSymbolAddress ('d' of type 'dchar') * * * * * * * * * * * * a normal variable * * * * * * * * * * CastExp::toElem: cast(dchar)(cast(uint)d << 6 | cast(uint)(cast(int)tmp & 63)) @ dchar * * * * * * * * * * * OrExp::toElem: cast(uint)d << 6 | cast(uint)(cast(int)tmp & 63) @ uint * * * * * * * * * * * * ShlExp::toElem: cast(uint)d << 6 @ uint * * * * * * * * * * * * * CastExp::toElem: cast(uint)d @ uint * * * * * * * * * * * * * * VarExp::toElem: d @ dchar * * * * * * * * * * * * * * * DtoSymbolAddress ('d' of type 'dchar') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * Casting from 'dchar' to 'uint' * * * * * * * * * * * * * IntegerExp::toElem: 6 @ int * * * * * * * * * * * * * * IntegerExp::toConstElem: 6 @ int * * * * * * * * * * * * * * * value = i32 6 * * * * * * * * * * * * * Casting from 'int' to 'uint' * * * * * * * * * * * * CastExp::toElem: cast(uint)(cast(int)tmp & 63) @ uint * * * * * * * * * * * * * AndExp::toElem: cast(int)tmp & 63 @ int * * * * * * * * * * * * * * CastExp::toElem: cast(int)tmp @ int * * * * * * * * * * * * * * * VarExp::toElem: tmp @ ubyte * * * * * * * * * * * * * * * * DtoSymbolAddress ('tmp' of type 'ubyte') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * Casting from 'ubyte' to 'int' * * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * * * IntegerExp::toElem: 63 @ int * * * * * * * * * * * * * * * IntegerExp::toConstElem: 63 @ int * * * * * * * * * * * * * * * * value = i32 63 * * * * * * * * * * * * * Casting from 'int' to 'uint' * * * * * * * * * * * Casting from 'uint' to 'dchar' * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %d = alloca i32, align 4 * * * * * * * * * * * rhs: %83 = or i32 %79, %82 * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/utf.d(1205) * * * * * * * * * ShlAssignExp::toElem: cast(int)fst <<= 1 @ ubyte * * * * * * * * * * Caching l-value of cast(int)fst <<= 1 => fst * * * * * * * * * * * VarExp::toElem: fst @ ubyte * * * * * * * * * * * * DtoSymbolAddress ('fst' of type 'ubyte') * * * * * * * * * * * * * a normal variable * * * * * * * * * * ShlExp::toElem: fst << 1 @ ubyte * * * * * * * * * * * VarExp::toElem: fst @ ubyte * * * * * * * * * * * IntegerExp::toElem: 1 @ int * * * * * * * * * * * * IntegerExp::toConstElem: 1 @ int * * * * * * * * * * * * * value = i32 1 * * * * * * * * * * * Casting from 'int' to 'ubyte' * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %fst = alloca i8, align 1 * * * * * * * * * * * rhs: %86 = shl i8 %85, %84 * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/utf.d(1207) * * * * * * * * * NotExp::toElem: !(cast(int)fst & 128) @ bool * * * * * * * * * * AndExp::toElem: cast(int)fst & 128 @ int * * * * * * * * * * * CastExp::toElem: cast(int)fst @ int * * * * * * * * * * * * VarExp::toElem: fst @ ubyte * * * * * * * * * * * * * DtoSymbolAddress ('fst' of type 'ubyte') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * Casting from 'ubyte' to 'int' * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * IntegerExp::toElem: 128 @ int * * * * * * * * * * * * IntegerExp::toConstElem: 128 @ int * * * * * * * * * * * * * value = i32 128 * * * * * * * * * * Casting from 'int' to 'bool' * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/utf.d(1208) * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/utf.d(1208) * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/utf.d(1209) * * * * * * * * * * * * AndAssignExp::toElem: cast(uint)d &= 65535u @ dchar * * * * * * * * * * * * * Caching l-value of cast(uint)d &= 65535u => d * * * * * * * * * * * * * * VarExp::toElem: d @ dchar * * * * * * * * * * * * * * * DtoSymbolAddress ('d' of type 'dchar') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * AndExp::toElem: cast(uint)d & 65535u @ uint * * * * * * * * * * * * * * CastExp::toElem: cast(uint)d @ uint * * * * * * * * * * * * * * * VarExp::toElem: d @ dchar * * * * * * * * * * * * * * * Casting from 'dchar' to 'uint' * * * * * * * * * * * * * * IntegerExp::toElem: 65535u @ uint * * * * * * * * * * * * * * * IntegerExp::toConstElem: 65535u @ uint * * * * * * * * * * * * * * * * value = i32 65535 * * * * * * * * * * * * * Casting from 'uint' to 'dchar' * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * lhs: %d = alloca i32, align 4 * * * * * * * * * * * * * * rhs: %93 = and i32 %92, 65535 * * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/utf.d(1212) * * * * * * * * * * * * EqualExp::toElem: (cast(uint)d & 4294965248u) == 0u @ bool * * * * * * * * * * * * * AndExp::toElem: cast(uint)d & 4294965248u @ uint * * * * * * * * * * * * * * CastExp::toElem: cast(uint)d @ uint * * * * * * * * * * * * * * * VarExp::toElem: d @ dchar * * * * * * * * * * * * * * * * DtoSymbolAddress ('d' of type 'dchar') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * Casting from 'dchar' to 'uint' * * * * * * * * * * * * * * IntegerExp::toElem: 4294965248u @ uint * * * * * * * * * * * * * * * IntegerExp::toConstElem: 4294965248u @ uint * * * * * * * * * * * * * * * * value = i32 -2048 * * * * * * * * * * * * * IntegerExp::toElem: 0u @ uint * * * * * * * * * * * * * * IntegerExp::toConstElem: 0u @ uint * * * * * * * * * * * * * * * value = i32 0 * * * * * * * * * * * * * integral or pointer or interface * * * * * * * * * * * * * lv: %95 = and i32 %94, -2048 * * * * * * * * * * * * * rv: i32 0 * * * * * * * * * * * * ThrowStatement::toIR(): /usr/include/dlang/ldc/std/utf.d(1213) * * * * * * * * * * * * * CallExp::toElem: invalidUTF() @ std.utf.UTFException * * * * * * * * * * * * * * VarExp::toElem: invalidUTF @ pure @system UTFException() * * * * * * * * * * * * * * * DtoSymbolAddress ('invalidUTF' of type 'pure @system UTFException()') * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * DtoNestedContext for std.utf.decodeImpl!(true, string).decodeImpl.invalidUTF * * * * * * * * * * * * * * * * DtoCreateNestedContextType for std.utf.decodeImpl!(true, string).decodeImpl.invalidUTF * * * * * * * * * * * * * * * * Parent frame is from decodeImpl * * * * * * * * * * * * * * * * Current function is decodeImpl * * * * * * * * * * * * * * * * Context is from decodeImpl * * * * * * * * * * * * * * * * Needed depth: 0 * * * * * * * * * * * * * * * * Context depth: 0 * * * * * * * * * * * * * * * * Calling sibling function or directly nested function * * * * * * * * * * * * * * * * result = %.frame = alloca %nest.decodeImpl, align 8 * * * * * * * * * * * * * * * * of type %nest.decodeImpl* * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * %97 = bitcast %nest.decodeImpl* %.frame to i8* * * * * * * * * * * * * * * * Function type: pure @system UTFException() * * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/utf.d(1218) * * * * * * * * * * * * NotExp::toElem: !isValidDchar(d) @ bool * * * * * * * * * * * * * CallExp::toElem: isValidDchar(d) @ bool * * * * * * * * * * * * * * VarExp::toElem: isValidDchar @ pure nothrow @nogc @safe bool(dchar c) * * * * * * * * * * * * * * * DtoSymbolAddress ('isValidDchar' of type 'pure nothrow @nogc @safe bool(dchar c)') * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe bool(dchar c)) * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * Final function type: i1 (i32) * * * * * * * * * * * * * * * * DtoResolveFunction(std.utf.isValidDchar): /usr/include/dlang/ldc/std/utf.d(95) * * * * * * * * * * * * * * * * * DtoDeclareFunction(std.utf.isValidDchar): /usr/include/dlang/ldc/std/utf.d(95) * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe bool(dchar c)) * * * * * * * * * * * * * * * * * * func = declare i1 @_D3std3utf12isValidDcharFNaNbNiNfwZb(i32) * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * Building type: pure nothrow @nogc @safe bool(dchar c) * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe bool(dchar c)) * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * Final function type: i1 (i32) * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @safe bool(dchar c) * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * VarExp::toElem: d @ dchar * * * * * * * * * * * * * * * * * DtoSymbolAddress ('d' of type 'dchar') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * ThrowStatement::toIR(): /usr/include/dlang/ldc/std/utf.d(1219) * * * * * * * * * * * * * CallExp::toElem: invalidUTF() @ std.utf.UTFException * * * * * * * * * * * * * * VarExp::toElem: invalidUTF @ pure @system UTFException() * * * * * * * * * * * * * * * DtoSymbolAddress ('invalidUTF' of type 'pure @system UTFException()') * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * DtoNestedContext for std.utf.decodeImpl!(true, string).decodeImpl.invalidUTF * * * * * * * * * * * * * * * * DtoCreateNestedContextType for std.utf.decodeImpl!(true, string).decodeImpl.invalidUTF * * * * * * * * * * * * * * * * Parent frame is from decodeImpl * * * * * * * * * * * * * * * * Current function is decodeImpl * * * * * * * * * * * * * * * * Context is from decodeImpl * * * * * * * * * * * * * * * * Needed depth: 0 * * * * * * * * * * * * * * * * Context depth: 0 * * * * * * * * * * * * * * * * Calling sibling function or directly nested function * * * * * * * * * * * * * * * * result = %.frame = alloca %nest.decodeImpl, align 8 * * * * * * * * * * * * * * * * of type %nest.decodeImpl* * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * %103 = bitcast %nest.decodeImpl* %.frame to i8* * * * * * * * * * * * * * * * Function type: pure @system UTFException() * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/utf.d(1222) * * * * * * * * * * * * AddAssignExp::toElem: index += 3LU @ ulong * * * * * * * * * * * * * Caching l-value of index += 3LU => index * * * * * * * * * * * * * * VarExp::toElem: index @ ulong * * * * * * * * * * * * * * * DtoSymbolAddress ('index' of type 'ulong') * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * type: ulong * * * * * * * * * * * * * AddExp::toElem: index + 3LU @ ulong * * * * * * * * * * * * * * VarExp::toElem: index @ ulong * * * * * * * * * * * * * * IntegerExp::toElem: 3LU @ ulong * * * * * * * * * * * * * * * IntegerExp::toConstElem: 3LU @ ulong * * * * * * * * * * * * * * * * value = i64 3 * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * lhs: i64* %index_arg * * * * * * * * * * * * * * rhs: %107 = add i64 %106, 3 * * * * * * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/utf.d(1226) * * * * * * * * * * * * VarExp::toElem: d @ dchar * * * * * * * * * * * * * DtoSymbolAddress ('d' of type 'dchar') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * return value is '0x122ecad8' * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/utf.d(1179) * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/utf.d(1179) * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/utf.d(1179) * * * * * * * * * DeclarationExp::toElem: enum int i = 3; | T=void * * * * * * * * * * DtoDeclarationExp: i * * * * * * * * * * * VarDeclaration * * * * * * * * * * * Manifest constant, nothing to do. * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/utf.d(1184) * * * * * * * * * EqualExp::toElem: 3LU == length @ bool * * * * * * * * * * IntegerExp::toElem: 3LU @ ulong * * * * * * * * * * * IntegerExp::toConstElem: 3LU @ ulong * * * * * * * * * * * * value = i64 3 * * * * * * * * * * VarExp::toElem: length @ ulong * * * * * * * * * * * DtoSymbolAddress ('length' of type 'immutable(ulong)') * * * * * * * * * * * * nested variable * * * * * * * * * * * * DtoNestedVariable for length @ /usr/include/dlang/ldc/std/utf.d(1184) * * * * * * * * * * integral or pointer or interface * * * * * * * * * * lv: i64 3 * * * * * * * * * * rv: %26 = load i64, i64* %length * * * * * * * * * ThrowStatement::toIR(): /usr/include/dlang/ldc/std/utf.d(1185) * * * * * * * * * * CallExp::toElem: outOfBounds() @ std.utf.UTFException * * * * * * * * * * * VarExp::toElem: outOfBounds @ pure @system UTFException() * * * * * * * * * * * * DtoSymbolAddress ('outOfBounds' of type 'pure @system UTFException()') * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * DtoNestedContext for std.utf.decodeImpl!(true, string).decodeImpl.outOfBounds * * * * * * * * * * * * * DtoCreateNestedContextType for std.utf.decodeImpl!(true, string).decodeImpl.outOfBounds * * * * * * * * * * * * * Parent frame is from decodeImpl * * * * * * * * * * * * * Current function is decodeImpl * * * * * * * * * * * * * Context is from decodeImpl * * * * * * * * * * * * * Needed depth: 0 * * * * * * * * * * * * * Context depth: 0 * * * * * * * * * * * * * Calling sibling function or directly nested function * * * * * * * * * * * * * result = %.frame = alloca %nest.decodeImpl, align 8 * * * * * * * * * * * * * of type %nest.decodeImpl* * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * %112 = bitcast %nest.decodeImpl* %.frame to i8* * * * * * * * * * * * * Function type: pure @system UTFException() * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/utf.d(1194) * * * * * * * * * AssignExp::toElem: tmp = cast(ubyte)pstr[3] | (ubyte)(ubyte = ubyte) * * * * * * * * * * VarExp::toElem: tmp @ ubyte * * * * * * * * * * * DtoSymbolAddress ('tmp' of type 'ubyte') * * * * * * * * * * * * a normal variable * * * * * * * * * * CastExp::toElem: cast(ubyte)pstr[3] @ ubyte * * * * * * * * * * * IndexExp::toElem: pstr[3] @ immutable(char) * * * * * * * * * * * * VarExp::toElem: pstr @ immutable(char)* * * * * * * * * * * * * * DtoSymbolAddress ('pstr' of type 'immutable(char)*') * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * DtoNestedVariable for pstr @ /usr/include/dlang/ldc/std/utf.d(1194) * * * * * * * * * * * * IntegerExp::toElem: 3LU @ ulong * * * * * * * * * * * * * IntegerExp::toConstElem: 3LU @ ulong * * * * * * * * * * * * * * value = i64 3 * * * * * * * * * * * Casting from 'immutable(char)' to 'ubyte' * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %tmp = alloca i8, align 1 * * * * * * * * * * * rhs: %117 = load i8, i8* %116 * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/utf.d(1201) * * * * * * * * * EqualExp::toElem: (cast(int)tmp & 192) != 128 @ bool * * * * * * * * * * AndExp::toElem: cast(int)tmp & 192 @ int * * * * * * * * * * * CastExp::toElem: cast(int)tmp @ int * * * * * * * * * * * * VarExp::toElem: tmp @ ubyte * * * * * * * * * * * * * DtoSymbolAddress ('tmp' of type 'ubyte') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * Casting from 'ubyte' to 'int' * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * IntegerExp::toElem: 192 @ int * * * * * * * * * * * * IntegerExp::toConstElem: 192 @ int * * * * * * * * * * * * * value = i32 192 * * * * * * * * * * IntegerExp::toElem: 128 @ int * * * * * * * * * * * IntegerExp::toConstElem: 128 @ int * * * * * * * * * * * * value = i32 128 * * * * * * * * * * integral or pointer or interface * * * * * * * * * * lv: %120 = and i32 %119, 192 * * * * * * * * * * rv: i32 128 * * * * * * * * * ThrowStatement::toIR(): /usr/include/dlang/ldc/std/utf.d(1202) * * * * * * * * * * CallExp::toElem: invalidUTF() @ std.utf.UTFException * * * * * * * * * * * VarExp::toElem: invalidUTF @ pure @system UTFException() * * * * * * * * * * * * DtoSymbolAddress ('invalidUTF' of type 'pure @system UTFException()') * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * DtoNestedContext for std.utf.decodeImpl!(true, string).decodeImpl.invalidUTF * * * * * * * * * * * * * DtoCreateNestedContextType for std.utf.decodeImpl!(true, string).decodeImpl.invalidUTF * * * * * * * * * * * * * Parent frame is from decodeImpl * * * * * * * * * * * * * Current function is decodeImpl * * * * * * * * * * * * * Context is from decodeImpl * * * * * * * * * * * * * Needed depth: 0 * * * * * * * * * * * * * Context depth: 0 * * * * * * * * * * * * * Calling sibling function or directly nested function * * * * * * * * * * * * * result = %.frame = alloca %nest.decodeImpl, align 8 * * * * * * * * * * * * * of type %nest.decodeImpl* * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * %122 = bitcast %nest.decodeImpl* %.frame to i8* * * * * * * * * * * * * Function type: pure @system UTFException() * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/utf.d(1204) * * * * * * * * * AssignExp::toElem: d = cast(dchar)(cast(uint)d << 6 | cast(uint)(cast(int)tmp & 63)) | (dchar)(dchar = dchar) * * * * * * * * * * VarExp::toElem: d @ dchar * * * * * * * * * * * DtoSymbolAddress ('d' of type 'dchar') * * * * * * * * * * * * a normal variable * * * * * * * * * * CastExp::toElem: cast(dchar)(cast(uint)d << 6 | cast(uint)(cast(int)tmp & 63)) @ dchar * * * * * * * * * * * OrExp::toElem: cast(uint)d << 6 | cast(uint)(cast(int)tmp & 63) @ uint * * * * * * * * * * * * ShlExp::toElem: cast(uint)d << 6 @ uint * * * * * * * * * * * * * CastExp::toElem: cast(uint)d @ uint * * * * * * * * * * * * * * VarExp::toElem: d @ dchar * * * * * * * * * * * * * * * DtoSymbolAddress ('d' of type 'dchar') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * Casting from 'dchar' to 'uint' * * * * * * * * * * * * * IntegerExp::toElem: 6 @ int * * * * * * * * * * * * * * IntegerExp::toConstElem: 6 @ int * * * * * * * * * * * * * * * value = i32 6 * * * * * * * * * * * * * Casting from 'int' to 'uint' * * * * * * * * * * * * CastExp::toElem: cast(uint)(cast(int)tmp & 63) @ uint * * * * * * * * * * * * * AndExp::toElem: cast(int)tmp & 63 @ int * * * * * * * * * * * * * * CastExp::toElem: cast(int)tmp @ int * * * * * * * * * * * * * * * VarExp::toElem: tmp @ ubyte * * * * * * * * * * * * * * * * DtoSymbolAddress ('tmp' of type 'ubyte') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * Casting from 'ubyte' to 'int' * * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * * * IntegerExp::toElem: 63 @ int * * * * * * * * * * * * * * * IntegerExp::toConstElem: 63 @ int * * * * * * * * * * * * * * * * value = i32 63 * * * * * * * * * * * * * Casting from 'int' to 'uint' * * * * * * * * * * * Casting from 'uint' to 'dchar' * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %d = alloca i32, align 4 * * * * * * * * * * * rhs: %130 = or i32 %126, %129 * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/utf.d(1205) * * * * * * * * * ShlAssignExp::toElem: cast(int)fst <<= 1 @ ubyte * * * * * * * * * * Caching l-value of cast(int)fst <<= 1 => fst * * * * * * * * * * * VarExp::toElem: fst @ ubyte * * * * * * * * * * * * DtoSymbolAddress ('fst' of type 'ubyte') * * * * * * * * * * * * * a normal variable * * * * * * * * * * ShlExp::toElem: fst << 1 @ ubyte * * * * * * * * * * * VarExp::toElem: fst @ ubyte * * * * * * * * * * * IntegerExp::toElem: 1 @ int * * * * * * * * * * * * IntegerExp::toConstElem: 1 @ int * * * * * * * * * * * * * value = i32 1 * * * * * * * * * * * Casting from 'int' to 'ubyte' * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %fst = alloca i8, align 1 * * * * * * * * * * * rhs: %133 = shl i8 %132, %131 * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/utf.d(1207) * * * * * * * * * NotExp::toElem: !(cast(int)fst & 128) @ bool * * * * * * * * * * AndExp::toElem: cast(int)fst & 128 @ int * * * * * * * * * * * CastExp::toElem: cast(int)fst @ int * * * * * * * * * * * * VarExp::toElem: fst @ ubyte * * * * * * * * * * * * * DtoSymbolAddress ('fst' of type 'ubyte') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * Casting from 'ubyte' to 'int' * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * IntegerExp::toElem: 128 @ int * * * * * * * * * * * * IntegerExp::toConstElem: 128 @ int * * * * * * * * * * * * * value = i32 128 * * * * * * * * * * Casting from 'int' to 'bool' * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/utf.d(1208) * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/utf.d(1208) * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/utf.d(1209) * * * * * * * * * * * * AndAssignExp::toElem: cast(uint)d &= 2097151u @ dchar * * * * * * * * * * * * * Caching l-value of cast(uint)d &= 2097151u => d * * * * * * * * * * * * * * VarExp::toElem: d @ dchar * * * * * * * * * * * * * * * DtoSymbolAddress ('d' of type 'dchar') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * AndExp::toElem: cast(uint)d & 2097151u @ uint * * * * * * * * * * * * * * CastExp::toElem: cast(uint)d @ uint * * * * * * * * * * * * * * * VarExp::toElem: d @ dchar * * * * * * * * * * * * * * * Casting from 'dchar' to 'uint' * * * * * * * * * * * * * * IntegerExp::toElem: 2097151u @ uint * * * * * * * * * * * * * * * IntegerExp::toConstElem: 2097151u @ uint * * * * * * * * * * * * * * * * value = i32 2097151 * * * * * * * * * * * * * Casting from 'uint' to 'dchar' * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * lhs: %d = alloca i32, align 4 * * * * * * * * * * * * * * rhs: %140 = and i32 %139, 2097151 * * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/utf.d(1212) * * * * * * * * * * * * EqualExp::toElem: (cast(uint)d & 4294901760u) == 0u @ bool * * * * * * * * * * * * * AndExp::toElem: cast(uint)d & 4294901760u @ uint * * * * * * * * * * * * * * CastExp::toElem: cast(uint)d @ uint * * * * * * * * * * * * * * * VarExp::toElem: d @ dchar * * * * * * * * * * * * * * * * DtoSymbolAddress ('d' of type 'dchar') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * Casting from 'dchar' to 'uint' * * * * * * * * * * * * * * IntegerExp::toElem: 4294901760u @ uint * * * * * * * * * * * * * * * IntegerExp::toConstElem: 4294901760u @ uint * * * * * * * * * * * * * * * * value = i32 -65536 * * * * * * * * * * * * * IntegerExp::toElem: 0u @ uint * * * * * * * * * * * * * * IntegerExp::toConstElem: 0u @ uint * * * * * * * * * * * * * * * value = i32 0 * * * * * * * * * * * * * integral or pointer or interface * * * * * * * * * * * * * lv: %142 = and i32 %141, -65536 * * * * * * * * * * * * * rv: i32 0 * * * * * * * * * * * * ThrowStatement::toIR(): /usr/include/dlang/ldc/std/utf.d(1213) * * * * * * * * * * * * * CallExp::toElem: invalidUTF() @ std.utf.UTFException * * * * * * * * * * * * * * VarExp::toElem: invalidUTF @ pure @system UTFException() * * * * * * * * * * * * * * * DtoSymbolAddress ('invalidUTF' of type 'pure @system UTFException()') * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * DtoNestedContext for std.utf.decodeImpl!(true, string).decodeImpl.invalidUTF * * * * * * * * * * * * * * * * DtoCreateNestedContextType for std.utf.decodeImpl!(true, string).decodeImpl.invalidUTF * * * * * * * * * * * * * * * * Parent frame is from decodeImpl * * * * * * * * * * * * * * * * Current function is decodeImpl * * * * * * * * * * * * * * * * Context is from decodeImpl * * * * * * * * * * * * * * * * Needed depth: 0 * * * * * * * * * * * * * * * * Context depth: 0 * * * * * * * * * * * * * * * * Calling sibling function or directly nested function * * * * * * * * * * * * * * * * result = %.frame = alloca %nest.decodeImpl, align 8 * * * * * * * * * * * * * * * * of type %nest.decodeImpl* * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * %144 = bitcast %nest.decodeImpl* %.frame to i8* * * * * * * * * * * * * * * * Function type: pure @system UTFException() * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/utf.d(1222) * * * * * * * * * * * * AddAssignExp::toElem: index += 4LU @ ulong * * * * * * * * * * * * * Caching l-value of index += 4LU => index * * * * * * * * * * * * * * VarExp::toElem: index @ ulong * * * * * * * * * * * * * * * DtoSymbolAddress ('index' of type 'ulong') * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * type: ulong * * * * * * * * * * * * * AddExp::toElem: index + 4LU @ ulong * * * * * * * * * * * * * * VarExp::toElem: index @ ulong * * * * * * * * * * * * * * IntegerExp::toElem: 4LU @ ulong * * * * * * * * * * * * * * * IntegerExp::toConstElem: 4LU @ ulong * * * * * * * * * * * * * * * * value = i64 4 * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * lhs: i64* %index_arg * * * * * * * * * * * * * * rhs: %148 = add i64 %147, 4 * * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/utf.d(1224) * * * * * * * * * * * * CmpExp::toElem: cast(uint)d > 1114111u @ bool * * * * * * * * * * * * * CastExp::toElem: cast(uint)d @ uint * * * * * * * * * * * * * * VarExp::toElem: d @ dchar * * * * * * * * * * * * * * * DtoSymbolAddress ('d' of type 'dchar') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * Casting from 'dchar' to 'uint' * * * * * * * * * * * * * IntegerExp::toElem: 1114111u @ uint * * * * * * * * * * * * * * IntegerExp::toConstElem: 1114111u @ uint * * * * * * * * * * * * * * * value = i32 1114111 * * * * * * * * * * * * * type 1: %149 = load i32, i32* %d * * * * * * * * * * * * * type 2: i32 1114111 * * * * * * * * * * * * ThrowStatement::toIR(): /usr/include/dlang/ldc/std/utf.d(1225) * * * * * * * * * * * * * CallExp::toElem: invalidUTF() @ std.utf.UTFException * * * * * * * * * * * * * * VarExp::toElem: invalidUTF @ pure @system UTFException() * * * * * * * * * * * * * * * DtoSymbolAddress ('invalidUTF' of type 'pure @system UTFException()') * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * DtoNestedContext for std.utf.decodeImpl!(true, string).decodeImpl.invalidUTF * * * * * * * * * * * * * * * * DtoCreateNestedContextType for std.utf.decodeImpl!(true, string).decodeImpl.invalidUTF * * * * * * * * * * * * * * * * Parent frame is from decodeImpl * * * * * * * * * * * * * * * * Current function is decodeImpl * * * * * * * * * * * * * * * * Context is from decodeImpl * * * * * * * * * * * * * * * * Needed depth: 0 * * * * * * * * * * * * * * * * Context depth: 0 * * * * * * * * * * * * * * * * Calling sibling function or directly nested function * * * * * * * * * * * * * * * * result = %.frame = alloca %nest.decodeImpl, align 8 * * * * * * * * * * * * * * * * of type %nest.decodeImpl* * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * %151 = bitcast %nest.decodeImpl* %.frame to i8* * * * * * * * * * * * * * * * Function type: pure @system UTFException() * * * * * * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/utf.d(1226) * * * * * * * * * * * * VarExp::toElem: d @ dchar * * * * * * * * * * * * * DtoSymbolAddress ('d' of type 'dchar') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * return value is '0x122f75c8' * * * * * ThrowStatement::toIR(): /usr/include/dlang/ldc/std/utf.d(1230) * * * * * * CallExp::toElem: invalidUTF() @ std.utf.UTFException * * * * * * * VarExp::toElem: invalidUTF @ pure @system UTFException() * * * * * * * * DtoSymbolAddress ('invalidUTF' of type 'pure @system UTFException()') * * * * * * * * * FuncDeclaration * * * * * * * DtoCallFunction() * * * * * * * * DtoNestedContext for std.utf.decodeImpl!(true, string).decodeImpl.invalidUTF * * * * * * * * * DtoCreateNestedContextType for std.utf.decodeImpl!(true, string).decodeImpl.invalidUTF * * * * * * * * * Parent frame is from decodeImpl * * * * * * * * * Current function is decodeImpl * * * * * * * * * Context is from decodeImpl * * * * * * * * * Needed depth: 0 * * * * * * * * * Context depth: 0 * * * * * * * * * Calling sibling function or directly nested function * * * * * * * * * result = %.frame = alloca %nest.decodeImpl, align 8 * * * * * * * * * of type %nest.decodeImpl* * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (1) * * * * * * * * * %28 = bitcast %nest.decodeImpl* %.frame to i8* * * * * * * * * Function type: pure @system UTFException() * TemplateInstance::codegen: 'std.typetuple.TypeTuple!(127, 2047, 65535, 2097151)' * * Ignoring Dsymbol::codegen for std.typetuple.TypeTuple!(127, 2047, 65535, 2097151).TypeTuple * TemplateInstance::codegen: 'std.utf.decodeImpl!(true, string).decodeImpl.exception!string' * * DtoDefineFunction(std.utf.decodeImpl!(true, string).decodeImpl.exception!string.exception): /usr/include/dlang/ldc/std/utf.d(1135) * * * Doing function body for: exception * * * DtoCreateNestedContext for exception * * * * DtoCreateNestedContextType for std.utf.decodeImpl!(true, string).decodeImpl.exception!string.exception * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/utf.d(1136) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/utf.d(1137) * * * * * * DeclarationExp::toElem: uint[4] sequence = void; | T=void * * * * * * * DtoDeclarationExp: sequence * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = uint[4]) * * * * * * * * * llvm value for decl: %sequence = alloca [4 x i32], align 4 * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/utf.d(1138) * * * * * * DeclarationExp::toElem: ulong i = 0LU; | T=void * * * * * * * DtoDeclarationExp: i * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * llvm value for decl: %i = alloca i64, align 8 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: i = 0LU | (ulong)(ulong = ulong) * * * * * * * * * * VarExp::toElem: i @ ulong * * * * * * * * * * * DtoSymbolAddress ('i' of type 'ulong') * * * * * * * * * * * * a normal variable * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * value = i64 0 * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %i = alloca i64, align 8 * * * * * * * * * * * rhs: i64 0 * * * * * DoStatement::toIR(): /usr/include/dlang/ldc/std/utf.d(1140) * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/utf.d(1141) * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/utf.d(1142) * * * * * * * * AssignExp::toElem: sequence[i] = cast(uint)str[i] | (uint)(uint = uint) * * * * * * * * * IndexExp::toElem: sequence[i] @ uint * * * * * * * * * * VarExp::toElem: sequence @ uint[4] * * * * * * * * * * * DtoSymbolAddress ('sequence' of type 'uint[4]') * * * * * * * * * * * * a normal variable * * * * * * * * * * VarExp::toElem: i @ ulong * * * * * * * * * * * DtoSymbolAddress ('i' of type 'ulong') * * * * * * * * * * * * a normal variable * * * * * * * * * * DtoArrayLen * * * * * * * * * CastExp::toElem: cast(uint)str[i] @ uint * * * * * * * * * * IndexExp::toElem: str[i] @ immutable(char) * * * * * * * * * * * VarExp::toElem: str @ string * * * * * * * * * * * * DtoSymbolAddress ('str' of type 'string') * * * * * * * * * * * * * function param * * * * * * * * * * * * * type: string * * * * * * * * * * * VarExp::toElem: i @ ulong * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'ulong') * * * * * * * * * * * * * a normal variable * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * Casting from 'immutable(char)' to 'uint' * * * * * * * * * * * cast to: i32 * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * DtoAssign() * * * * * * * * * * lhs: %3 = getelementptr [4 x i32], [4 x i32]* %sequence, i32 0, i64 %2 * * * * * * * * * * rhs: %10 = zext i8 %9 to i32 * * * * * * AndAndExp::toElem: (i += 1LU) < str.length && i < 4LU && (cast(int)str[i] & 192) == 128 @ bool * * * * * * * AndAndExp::toElem: (i += 1LU) < str.length && i < 4LU @ bool * * * * * * * * CmpExp::toElem: (i += 1LU) < str.length @ bool * * * * * * * * * AddAssignExp::toElem: i += 1LU @ ulong * * * * * * * * * * Caching l-value of i += 1LU => i * * * * * * * * * * * VarExp::toElem: i @ ulong * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'ulong') * * * * * * * * * * * * * a normal variable * * * * * * * * * * AddExp::toElem: i + 1LU @ ulong * * * * * * * * * * * VarExp::toElem: i @ ulong * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %i = alloca i64, align 8 * * * * * * * * * * * rhs: %3 = add i64 %2, 1 * * * * * * * * * ArrayLengthExp::toElem: str.length @ ulong * * * * * * * * * * VarExp::toElem: str @ string * * * * * * * * * * * DtoSymbolAddress ('str' of type 'string') * * * * * * * * * * * * function param * * * * * * * * * * * * type: string * * * * * * * * * * DtoArrayLen * * * * * * * * * type 1: %3 = add i64 %2, 1 * * * * * * * * * type 2: %.len4 = load i64, i64* %4 * * * * * * * * CmpExp::toElem: i < 4LU @ bool * * * * * * * * * VarExp::toElem: i @ ulong * * * * * * * * * * DtoSymbolAddress ('i' of type 'ulong') * * * * * * * * * * * a normal variable * * * * * * * * * IntegerExp::toElem: 4LU @ ulong * * * * * * * * * * IntegerExp::toConstElem: 4LU @ ulong * * * * * * * * * * * value = i64 4 * * * * * * * * * type 1: %15 = load i64, i64* %i * * * * * * * * * type 2: i64 4 * * * * * * * EqualExp::toElem: (cast(int)str[i] & 192) == 128 @ bool * * * * * * * * AndExp::toElem: cast(int)str[i] & 192 @ int * * * * * * * * * CastExp::toElem: cast(int)str[i] @ int * * * * * * * * * * IndexExp::toElem: str[i] @ immutable(char) * * * * * * * * * * * VarExp::toElem: str @ string * * * * * * * * * * * * DtoSymbolAddress ('str' of type 'string') * * * * * * * * * * * * * function param * * * * * * * * * * * * * type: string * * * * * * * * * * * VarExp::toElem: i @ ulong * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'ulong') * * * * * * * * * * * * * a normal variable * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * Casting from 'immutable(char)' to 'int' * * * * * * * * * * * cast to: i32 * * * * * * * * * IntegerExp::toElem: 192 @ int * * * * * * * * * * IntegerExp::toConstElem: 192 @ int * * * * * * * * * * * value = i32 192 * * * * * * * * IntegerExp::toElem: 128 @ int * * * * * * * * * IntegerExp::toConstElem: 128 @ int * * * * * * * * * * value = i32 128 * * * * * * * * integral or pointer or interface * * * * * * * * lv: %24 = and i32 %23, 192 * * * * * * * * rv: i32 128 * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/utf.d(1145) * * * * * * CallExp::toElem: (new UTFException(msg, i, "/usr/include/dlang/ldc/std/utf.d", 1145LU, null)).setSequence(sequence[0..i]) @ std.utf.UTFException * * * * * * * DotVarExp::toElem: (new UTFException(msg, i, "/usr/include/dlang/ldc/std/utf.d", 1145LU, null)).setSequence @ pure nothrow @nogc @safe UTFException(uint[] data...) * * * * * * * * NewExp::toElem: new UTFException(msg, i, "/usr/include/dlang/ldc/std/utf.d", 1145LU, null) @ std.utf.UTFException * * * * * * * * * new class * * * * * * * * * DtoResolveClass(std.utf.UTFException): /usr/include/dlang/ldc/std/utf.d(35) * * * * * * * * * Calling constructor * * * * * * * * * isMember = this is: std.utf.UTFException * * * * * * * * * DtoFunctionType(pure @safe UTFException(string msg, ulong index, string file = __FILE__, ulong line = cast(ulong)__LINE__, Throwable next = null)) * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: %std.utf.UTFException* (%std.utf.UTFException*, %object.Throwable*, i64, { i64, i8* }, i64, { i64, i8* }) * * * * * * * * * DtoResolveFunction(std.utf.UTFException.this): /usr/include/dlang/ldc/std/utf.d(60) * * * * * * * * * * DtoDeclareFunction(std.utf.UTFException.this): /usr/include/dlang/ldc/std/utf.d(60) * * * * * * * * * * * isMember = this is: std.utf.UTFException * * * * * * * * * * * DtoFunctionType(pure @safe UTFException(string msg, ulong index, string file = __FILE__, ulong line = cast(ulong)__LINE__, Throwable next = null)) * * * * * * * * * * * func = declare %std.utf.UTFException* @_D3std3utf12UTFException6__ctorMFNaNfAyamAyamC6object9ThrowableZC3std3utf12UTFException(%std.utf.UTFException*, %object.Throwable*, i64, { i64, i8* }, i64, { i64, i8* }) * * * * * * * * * DtoCallFunction() * * * * * * * * * * Building type: pure @safe UTFException(string msg, ulong index, string file = __FILE__, ulong line = cast(ulong)__LINE__, Throwable next = null) * * * * * * * * * * * DtoFunctionType(pure @safe UTFException(string msg, ulong index, string file = __FILE__, ulong line = cast(ulong)__LINE__, Throwable next = null)) * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * Passing implicitly ByVal: string ({ i64, i8* }) * * * * * * * * * * * * Final function type: %std.utf.UTFException* (%object.Throwable*, i64, { i64, i8* }, i64, { i64, i8* }*) * * * * * * * * * * doing normal arguments * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * %.newclass_gc = bitcast %object.Object* %.newclass_gc_alloc to %std.utf.UTFException* * * * * * * * * * * Function type: pure @safe UTFException(string msg, ulong index, string file = __FILE__, ulong line = cast(ulong)__LINE__, Throwable next = null) * * * * * * * * * * DtoArgument * * * * * * * * * * * VarExp::toElem: msg @ string * * * * * * * * * * * * DtoSymbolAddress ('msg' of type 'string') * * * * * * * * * * * * * function param * * * * * * * * * * * * * type: string * * * * * * * * * * DtoArgument * * * * * * * * * * * VarExp::toElem: i @ ulong * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'ulong') * * * * * * * * * * * * * a normal variable * * * * * * * * * * DtoArgument * * * * * * * * * * * StringExp::toElem: "/usr/include/dlang/ldc/std/utf.d" @ string * * * * * * * * * * * * type: [33 x i8] * * * * * * * * * * * * init: [33 x i8] c"/usr/include/dlang/ldc/std/utf.d\00" * * * * * * * * * * DtoArgument * * * * * * * * * * * IntegerExp::toElem: 1145LU @ ulong * * * * * * * * * * * * IntegerExp::toConstElem: 1145LU @ ulong * * * * * * * * * * * * * value = i64 1145 * * * * * * * * * * DtoArgument * * * * * * * * * * * NullExp::toElem(type=object.Throwable): null * * * * * * * * * * * * NullExp::toConstElem(type=object.Throwable): null * * * * * * * * isMember = this is: std.utf.UTFException * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe UTFException(uint[] data...)) * * * * * * * * DtoResolveFunction(std.utf.UTFException.setSequence): /usr/include/dlang/ldc/std/utf.d(43) * * * * * * * * * DtoDeclareFunction(std.utf.UTFException.setSequence): /usr/include/dlang/ldc/std/utf.d(43) * * * * * * * * * * isMember = this is: std.utf.UTFException * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe UTFException(uint[] data...)) * * * * * * * * * * func = declare %std.utf.UTFException* @_D3std3utf12UTFException11setSequenceMFNaNbNiNfAkXC3std3utf12UTFException(%std.utf.UTFException*, { i64, i32* }, ...) * * * * * * * * vthis: %12 = call %std.utf.UTFException* @_D3std3utf12UTFException6__ctorMFNaNfAyamAyamC6object9ThrowableZC3std3utf12UTFException(%std.utf.UTFException* returned %.newclass_gc, %object.Throwable* null, i64 1145, { i64, i8* } { i64 32, i8* getelementptr inbounds ([33 x i8], [33 x i8]* @.str.16, i32 0, i32 0) }, i64 %11, { i64, i8* } %10) * * * * * * * * funcval: %15 = load %std.utf.UTFException* (%std.utf.UTFException*, { i64, i32* }, ...)*, %std.utf.UTFException* (%std.utf.UTFException*, { i64, i32* }, ...)** %"(new UTFException(msg, i, \22/usr/include/dlang/ldc/std/utf.d\22, 1145LU, null)).setSequence@vtbl", align 8 * * * * * * * * isMember = this is: std.utf.UTFException * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe UTFException(uint[] data...)) * * * * * * * * funcval casted: %"(new UTFException(msg, i, \22/usr/include/dlang/ldc/std/utf.d\22, 1145LU, null)).setSequence" = load %std.utf.UTFException* (%std.utf.UTFException*, { i64, i32* }, ...)*, %std.utf.UTFException* (%std.utf.UTFException*, { i64, i32* }, ...)** %"(new UTFException(msg, i, \22/usr/include/dlang/ldc/std/utf.d\22, 1145LU, null)).setSequence@vtbl", align 8 * * * * * * * DtoCallFunction() * * * * * * * * Building type: pure nothrow @nogc @safe UTFException(uint[] data...) * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe UTFException(uint[] data...)) * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: %std.utf.UTFException* ({ i64, i32* }, ...) * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (1) * * * * * * * * * %12 = call %std.utf.UTFException* @_D3std3utf12UTFException6__ctorMFNaNfAyamAyamC6object9ThrowableZC3std3utf12UTFException(%std.utf.UTFException* returned %.newclass_gc, %object.Throwable* null, i64 1145, { i64, i8* } { i64 32, i8* getelementptr inbounds ([33 x i8], [33 x i8]* @.str.16, i32 0, i32 0) }, i64 %11, { i64, i8* } %10) * * * * * * * * Function type: pure nothrow @nogc @safe UTFException(uint[] data...) * * * * * * * * DtoArgument * * * * * * * * * SliceExp::toElem: sequence[0..i] @ uint[] * * * * * * * * * * VarExp::toElem: sequence @ uint[4] * * * * * * * * * * * DtoSymbolAddress ('sequence' of type 'uint[4]') * * * * * * * * * * * * a normal variable * * * * * * * * * * DtoArrayPtr * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * value = i64 0 * * * * * * * * * * VarExp::toElem: i @ ulong * * * * * * * * * * * DtoSymbolAddress ('i' of type 'ulong') * * * * * * * * * * * * a normal variable * * * * * * * * * * DtoArrayLen * * * * * * return value is '0x12305738' * TemplateInstance::codegen: 'std.typetuple.TypeTuple!(1, 2, 3)' * * Ignoring Dsymbol::codegen for std.typetuple.TypeTuple!(1, 2, 3).TypeTuple * TemplateInstance::codegen: 'std.range.primitives.save!(immutable(char))' * * DtoDefineFunction(std.range.primitives.save!(immutable(char)).save): /usr/include/dlang/ldc/std/range/primitives.d(1971) * * * DtoFunctionType(pure nothrow @nogc @property @safe string(string a)) * * * * x86-64 ABI: Transforming return type * * * * x86-64 ABI: Transforming argument types * * * * Final function type: { i64, i8* } ({ i64, i8* }) * * * DtoResolveFunction(std.range.primitives.save!(immutable(char)).save): /usr/include/dlang/ldc/std/range/primitives.d(1971) * * * * DtoDeclareFunction(std.range.primitives.save!(immutable(char)).save): /usr/include/dlang/ldc/std/range/primitives.d(1971) * * * * * DtoFunctionType(pure nothrow @nogc @property @safe string(string a)) * * * * * func = declare { i64, i8* } @_D3std5range10primitives12__T4saveTyaZ4saveFNaNbNdNiNfAyaZAya({ i64, i8* }) * * * Doing function body for: save * * * DtoCreateNestedContext for save * * * * DtoCreateNestedContextType for std.range.primitives.save!(immutable(char)).save * * * CompoundStatement::toIR(): * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/range/primitives.d(1973) * * * * * VarExp::toElem: a @ string * * * * * * DtoSymbolAddress ('a' of type 'string') * * * * * * * function param * * * * * * * type: string * * * * * return value is '0x12307428' * TemplateInstance::codegen: 'std.range.primitives.hasLength!string' * * VarDeclaration::codegen(): 'std.range.primitives.hasLength!string.hasLength' * * * DtoResolveVariable(std.range.primitives.hasLength!string.hasLength) * TemplateInstance::codegen: 'std.array.replace!(immutable(char), string, string)' * TemplateInstance::codegen: 'std.functional.binaryFun!("a == b", "a", "b")' * TemplateInstance::codegen: 'std.functional.binaryFun!("a == b", "a", "b").binaryFun!(dchar, string)' * TemplateInstance::codegen: 'std.functional.binaryFun!("a == b", "a", "b").binaryFun!(dchar, dchar)' * * DtoDefineFunction(std.functional.binaryFun!("a == b", "a", "b").binaryFun!(dchar, dchar).binaryFun): /usr/include/dlang/ldc/std/functional.d(163) * * * DtoFunctionType(pure nothrow @nogc @safe bool(auto dchar __a, auto dchar __b)) * * * * x86-64 ABI: Transforming return type * * * * x86-64 ABI: Transforming argument types * * * * Final function type: i1 (i32, i32) * * * DtoResolveFunction(std.functional.binaryFun!("a == b", "a", "b").binaryFun!(dchar, dchar).binaryFun): /usr/include/dlang/ldc/std/functional.d(163) * * * * DtoDeclareFunction(std.functional.binaryFun!("a == b", "a", "b").binaryFun!(dchar, dchar).binaryFun): /usr/include/dlang/ldc/std/functional.d(163) * * * * * DtoFunctionType(pure nothrow @nogc @safe bool(auto dchar __a, auto dchar __b)) * * * * * func = declare i1 @_D3std10functional51__T9binaryFunVAyaa6_61203d3d2062VAyaa1_61VAyaa1_62Z18__T9binaryFunTwTwZ9binaryFunFNaNbNiNfwwZb(i32, i32) * * * Doing function body for: binaryFun * * * DtoCreateNestedContext for binaryFun * * * * DtoCreateNestedContextType for std.functional.binaryFun!("a == b", "a", "b").binaryFun!(dchar, dchar).binaryFun * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/functional.d(165) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/functional.d-mixin-166(166) * * * * * * DeclarationExp::toElem: alias a = dchar __a; ; | T=void * * * * * * * DtoDeclarationExp: a * * * * * * * * Ignoring Symbol: alias * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/functional.d-mixin-167(167) * * * * * * DeclarationExp::toElem: alias b = dchar __b; ; | T=void * * * * * * * DtoDeclarationExp: b * * * * * * * * Ignoring Symbol: alias * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/functional.d(168) * * * * * * EqualExp::toElem: cast(uint)__a == cast(uint)__b @ bool * * * * * * * CastExp::toElem: cast(uint)__a @ uint * * * * * * * * VarExp::toElem: __a @ dchar * * * * * * * * * DtoSymbolAddress ('__a' of type 'dchar') * * * * * * * * * * function param * * * * * * * * * * type: dchar * * * * * * * * Casting from 'dchar' to 'uint' * * * * * * * CastExp::toElem: cast(uint)__b @ uint * * * * * * * * VarExp::toElem: __b @ dchar * * * * * * * * * DtoSymbolAddress ('__b' of type 'dchar') * * * * * * * * * * function param * * * * * * * * * * type: dchar * * * * * * * * Casting from 'dchar' to 'uint' * * * * * * * integral or pointer or interface * * * * * * * lv: %1 = load i32, i32* %__a * * * * * * * rv: %2 = load i32, i32* %__b * * * * * * return value is '0x1230a360' * TemplateInstance::codegen: 'std.range.primitives.isRandomAccessRange!string' * * VarDeclaration::codegen(): 'std.range.primitives.isRandomAccessRange!string.isRandomAccessRange' * * * DtoResolveVariable(std.range.primitives.isRandomAccessRange!string.isRandomAccessRange) * TemplateInstance::codegen: 'std.range.primitives.isBidirectionalRange!string' * * VarDeclaration::codegen(): 'std.range.primitives.isBidirectionalRange!string.isBidirectionalRange' * * * DtoResolveVariable(std.range.primitives.isBidirectionalRange!string.isBidirectionalRange) * TemplateInstance::codegen: 'std.range.primitives.popBack!(immutable(char))' * * DtoDefineFunction(std.range.primitives.popBack!(immutable(char)).popBack): /usr/include/dlang/ldc/std/range/primitives.d(2114) * * * DtoFunctionType(pure @safe void(ref string a)) * * * * x86-64 ABI: Transforming argument types * * * * Final function type: void ({ i64, i8* }*) * * * DtoResolveFunction(std.range.primitives.popBack!(immutable(char)).popBack): /usr/include/dlang/ldc/std/range/primitives.d(2114) * * * * DtoDeclareFunction(std.range.primitives.popBack!(immutable(char)).popBack): /usr/include/dlang/ldc/std/range/primitives.d(2114) * * * * * DtoFunctionType(pure @safe void(ref string a)) * * * * * func = declare void @_D3std5range10primitives15__T7popBackTyaZ7popBackFNaNfKAyaZv({ i64, i8* }*) * * * Doing function body for: popBack * * * DtoCreateNestedContext for popBack * * * * DtoCreateNestedContextType for std.range.primitives.popBack!(immutable(char)).popBack * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/range/primitives.d(2116) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/range/primitives.d(2117) * * * * * * AssertExp::toElem: assert(a.length, "Attempting to popBack() past the front of an array of immutable(char)") * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/range/primitives.d(2118) * * * * * * AssignExp::toElem: a = a[0..__dollar - cast(ulong)strideBack(a, __dollar)] | (string)(string = string) * * * * * * * VarExp::toElem: a @ string * * * * * * * * DtoSymbolAddress ('a' of type 'string') * * * * * * * * * function param * * * * * * * * * type: string * * * * * * * SliceExp::toElem: a[0..__dollar - cast(ulong)strideBack(a, __dollar)] @ string * * * * * * * * VarExp::toElem: a @ string * * * * * * * * * DtoSymbolAddress ('a' of type 'string') * * * * * * * * * * function param * * * * * * * * * * type: string * * * * * * * * DtoArrayPtr * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * value = i64 0 * * * * * * * * MinExp::toElem: __dollar - cast(ulong)strideBack(a, __dollar) @ ulong * * * * * * * * * VarExp::toElem: __dollar @ ulong * * * * * * * * * * DtoSymbolAddress ('__dollar' of type 'ulong') * * * * * * * * * * * Id::dollar * * * * * * * * * * * DtoArrayLen * * * * * * * * * CastExp::toElem: cast(ulong)strideBack(a, __dollar) @ ulong * * * * * * * * * * CallExp::toElem: strideBack(a, __dollar) @ uint * * * * * * * * * * * VarExp::toElem: strideBack @ pure @safe uint(auto ref string str, ulong index) * * * * * * * * * * * * DtoSymbolAddress ('strideBack' of type 'pure @safe uint(auto ref string str, ulong index)') * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * DtoFunctionType(pure @safe uint(auto ref string str, ulong index)) * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * Final function type: i32 (i64, { i64, i8* }*) * * * * * * * * * * * * * DtoResolveFunction(std.utf.strideBack!string.strideBack): /usr/include/dlang/ldc/std/utf.d(299) * * * * * * * * * * * * * * DtoDeclareFunction(std.utf.strideBack!string.strideBack): /usr/include/dlang/ldc/std/utf.d(299) * * * * * * * * * * * * * * * DtoFunctionType(pure @safe uint(auto ref string str, ulong index)) * * * * * * * * * * * * * * * func = declare i32 @_D3std3utf20__T10strideBackTAyaZ10strideBackFNaNfKAyamZk(i64, { i64, i8* }*) * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * Building type: pure @safe uint(auto ref string str, ulong index) * * * * * * * * * * * * * DtoFunctionType(pure @safe uint(auto ref string str, ulong index)) * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * Final function type: i32 (i64, { i64, i8* }*) * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * Function type: pure @safe uint(auto ref string str, ulong index) * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * VarExp::toElem: a @ string * * * * * * * * * * * * * * DtoSymbolAddress ('a' of type 'string') * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * type: string * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * VarExp::toElem: __dollar @ ulong * * * * * * * * * * * * * * DtoSymbolAddress ('__dollar' of type 'ulong') * * * * * * * * * * * * * * * Id::dollar * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * Casting from 'uint' to 'ulong' * * * * * * * * * * * cast to: i64 * * * * * * * * DtoArrayLen * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * DtoAssign() * * * * * * * * DtoArrayAssign * * * * * * * * * DtoArrayPtr * * * * * * * * * DtoArrayLen * * * * * * * * * SetArray * TemplateInstance::codegen: 'std.utf.strideBack!string' * * DtoDefineFunction(std.utf.strideBack!string.strideBack): /usr/include/dlang/ldc/std/utf.d(299) * * * Doing function body for: strideBack * * * DtoCreateNestedContext for strideBack * * * * DtoCreateNestedContextType for std.utf.strideBack!string.strideBack * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/utf.d(302) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/utf.d(304) * * * * * * AssertExp::toElem: assert(index <= str.length, "Past the end of the UTF-8 sequence") * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/utf.d(305) * * * * * * AssertExp::toElem: assert(index > 0LU, "Not the end of the UTF-8 sequence") * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/utf.d(307) * * * * * * EqualExp::toElem: (cast(int)str[index - 1LU] & 192) != 128 @ bool * * * * * * * AndExp::toElem: cast(int)str[index - 1LU] & 192 @ int * * * * * * * * CastExp::toElem: cast(int)str[index - 1LU] @ int * * * * * * * * * IndexExp::toElem: str[index - 1LU] @ immutable(char) * * * * * * * * * * VarExp::toElem: str @ string * * * * * * * * * * * DtoSymbolAddress ('str' of type 'string') * * * * * * * * * * * * function param * * * * * * * * * * * * type: string * * * * * * * * * * MinExp::toElem: index - 1LU @ ulong * * * * * * * * * * * VarExp::toElem: index @ ulong * * * * * * * * * * * * DtoSymbolAddress ('index' of type 'ulong') * * * * * * * * * * * * * function param * * * * * * * * * * * * * type: ulong * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * DtoArrayLen * * * * * * * * * * DtoArrayPtr * * * * * * * * * Casting from 'immutable(char)' to 'int' * * * * * * * * * * cast to: i32 * * * * * * * * IntegerExp::toElem: 192 @ int * * * * * * * * * IntegerExp::toConstElem: 192 @ int * * * * * * * * * * value = i32 192 * * * * * * * IntegerExp::toElem: 128 @ int * * * * * * * * IntegerExp::toConstElem: 128 @ int * * * * * * * * * value = i32 128 * * * * * * * integral or pointer or interface * * * * * * * lv: %8 = and i32 %7, 192 * * * * * * * rv: i32 128 * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/utf.d(308) * * * * * * * IntegerExp::toElem: 1u @ uint * * * * * * * * IntegerExp::toConstElem: 1u @ uint * * * * * * * * * value = i32 1 * * * * * * * return value is '0x120e3000' * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/utf.d(310) * * * * * * CmpExp::toElem: index >= 4LU @ bool * * * * * * * VarExp::toElem: index @ ulong * * * * * * * * DtoSymbolAddress ('index' of type 'ulong') * * * * * * * * * function param * * * * * * * * * type: ulong * * * * * * * IntegerExp::toElem: 4LU @ ulong * * * * * * * * IntegerExp::toConstElem: 4LU @ ulong * * * * * * * * * value = i64 4 * * * * * * * type 1: %10 = load i64, i64* %index * * * * * * * type 2: i64 4 * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/utf.d(311) * * * * * * * UnrolledLoopStatement::toIR(): /usr/include/dlang/ldc/std/utf.d(312) * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/utf.d(312) * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/utf.d(312) * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/utf.d(312) * * * * * * * * * * * DeclarationExp::toElem: enum int i = 2; | T=void * * * * * * * * * * * * DtoDeclarationExp: i * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * Manifest constant, nothing to do. * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/utf.d(314) * * * * * * * * * * * EqualExp::toElem: (cast(int)str[index - 2LU] & 192) != 128 @ bool * * * * * * * * * * * * AndExp::toElem: cast(int)str[index - 2LU] & 192 @ int * * * * * * * * * * * * * CastExp::toElem: cast(int)str[index - 2LU] @ int * * * * * * * * * * * * * * IndexExp::toElem: str[index - 2LU] @ immutable(char) * * * * * * * * * * * * * * * VarExp::toElem: str @ string * * * * * * * * * * * * * * * * DtoSymbolAddress ('str' of type 'string') * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * type: string * * * * * * * * * * * * * * * MinExp::toElem: index - 2LU @ ulong * * * * * * * * * * * * * * * * VarExp::toElem: index @ ulong * * * * * * * * * * * * * * * * * DtoSymbolAddress ('index' of type 'ulong') * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * type: ulong * * * * * * * * * * * * * * * * IntegerExp::toElem: 2LU @ ulong * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 2LU @ ulong * * * * * * * * * * * * * * * * * * value = i64 2 * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * Casting from 'immutable(char)' to 'int' * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * * IntegerExp::toElem: 192 @ int * * * * * * * * * * * * * * IntegerExp::toConstElem: 192 @ int * * * * * * * * * * * * * * * value = i32 192 * * * * * * * * * * * * IntegerExp::toElem: 128 @ int * * * * * * * * * * * * * IntegerExp::toConstElem: 128 @ int * * * * * * * * * * * * * * value = i32 128 * * * * * * * * * * * * integral or pointer or interface * * * * * * * * * * * * lv: %19 = and i32 %18, 192 * * * * * * * * * * * * rv: i32 128 * * * * * * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/utf.d(315) * * * * * * * * * * * * IntegerExp::toElem: 2u @ uint * * * * * * * * * * * * * IntegerExp::toConstElem: 2u @ uint * * * * * * * * * * * * * * value = i32 2 * * * * * * * * * * * * return value is '0x12115050' * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/utf.d(312) * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/utf.d(312) * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/utf.d(312) * * * * * * * * * * * DeclarationExp::toElem: enum int i = 3; | T=void * * * * * * * * * * * * DtoDeclarationExp: i * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * Manifest constant, nothing to do. * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/utf.d(314) * * * * * * * * * * * EqualExp::toElem: (cast(int)str[index - 3LU] & 192) != 128 @ bool * * * * * * * * * * * * AndExp::toElem: cast(int)str[index - 3LU] & 192 @ int * * * * * * * * * * * * * CastExp::toElem: cast(int)str[index - 3LU] @ int * * * * * * * * * * * * * * IndexExp::toElem: str[index - 3LU] @ immutable(char) * * * * * * * * * * * * * * * VarExp::toElem: str @ string * * * * * * * * * * * * * * * * DtoSymbolAddress ('str' of type 'string') * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * type: string * * * * * * * * * * * * * * * MinExp::toElem: index - 3LU @ ulong * * * * * * * * * * * * * * * * VarExp::toElem: index @ ulong * * * * * * * * * * * * * * * * * DtoSymbolAddress ('index' of type 'ulong') * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * type: ulong * * * * * * * * * * * * * * * * IntegerExp::toElem: 3LU @ ulong * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 3LU @ ulong * * * * * * * * * * * * * * * * * * value = i64 3 * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * Casting from 'immutable(char)' to 'int' * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * * IntegerExp::toElem: 192 @ int * * * * * * * * * * * * * * IntegerExp::toConstElem: 192 @ int * * * * * * * * * * * * * * * value = i32 192 * * * * * * * * * * * * IntegerExp::toElem: 128 @ int * * * * * * * * * * * * * IntegerExp::toConstElem: 128 @ int * * * * * * * * * * * * * * value = i32 128 * * * * * * * * * * * * integral or pointer or interface * * * * * * * * * * * * lv: %28 = and i32 %27, 192 * * * * * * * * * * * * rv: i32 128 * * * * * * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/utf.d(315) * * * * * * * * * * * * IntegerExp::toElem: 3u @ uint * * * * * * * * * * * * * IntegerExp::toConstElem: 3u @ uint * * * * * * * * * * * * * * value = i32 3 * * * * * * * * * * * * return value is '0x120e6e40' * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/utf.d(312) * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/utf.d(312) * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/utf.d(312) * * * * * * * * * * * DeclarationExp::toElem: enum int i = 4; | T=void * * * * * * * * * * * * DtoDeclarationExp: i * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * Manifest constant, nothing to do. * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/utf.d(314) * * * * * * * * * * * EqualExp::toElem: (cast(int)str[index - 4LU] & 192) != 128 @ bool * * * * * * * * * * * * AndExp::toElem: cast(int)str[index - 4LU] & 192 @ int * * * * * * * * * * * * * CastExp::toElem: cast(int)str[index - 4LU] @ int * * * * * * * * * * * * * * IndexExp::toElem: str[index - 4LU] @ immutable(char) * * * * * * * * * * * * * * * VarExp::toElem: str @ string * * * * * * * * * * * * * * * * DtoSymbolAddress ('str' of type 'string') * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * type: string * * * * * * * * * * * * * * * MinExp::toElem: index - 4LU @ ulong * * * * * * * * * * * * * * * * VarExp::toElem: index @ ulong * * * * * * * * * * * * * * * * * DtoSymbolAddress ('index' of type 'ulong') * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * type: ulong * * * * * * * * * * * * * * * * IntegerExp::toElem: 4LU @ ulong * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 4LU @ ulong * * * * * * * * * * * * * * * * * * value = i64 4 * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * Casting from 'immutable(char)' to 'int' * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * * IntegerExp::toElem: 192 @ int * * * * * * * * * * * * * * IntegerExp::toConstElem: 192 @ int * * * * * * * * * * * * * * * value = i32 192 * * * * * * * * * * * * IntegerExp::toElem: 128 @ int * * * * * * * * * * * * * IntegerExp::toConstElem: 128 @ int * * * * * * * * * * * * * * value = i32 128 * * * * * * * * * * * * integral or pointer or interface * * * * * * * * * * * * lv: %37 = and i32 %36, 192 * * * * * * * * * * * * rv: i32 128 * * * * * * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/utf.d(315) * * * * * * * * * * * * IntegerExp::toElem: 4u @ uint * * * * * * * * * * * * * IntegerExp::toConstElem: 4u @ uint * * * * * * * * * * * * * * value = i32 4 * * * * * * * * * * * * return value is '0x120f1890' * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/utf.d(319) * * * * * * * UnrolledLoopStatement::toIR(): /usr/include/dlang/ldc/std/utf.d(320) * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/utf.d(320) * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/utf.d(320) * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/utf.d(320) * * * * * * * * * * * DeclarationExp::toElem: enum int i = 2; | T=void * * * * * * * * * * * * DtoDeclarationExp: i * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * Manifest constant, nothing to do. * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/utf.d(322) * * * * * * * * * * * AndAndExp::toElem: index >= 2LU && (cast(int)str[index - 2LU] & 192) != 128 @ bool * * * * * * * * * * * * CmpExp::toElem: index >= 2LU @ bool * * * * * * * * * * * * * VarExp::toElem: index @ ulong * * * * * * * * * * * * * * DtoSymbolAddress ('index' of type 'ulong') * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * type: ulong * * * * * * * * * * * * * IntegerExp::toElem: 2LU @ ulong * * * * * * * * * * * * * * IntegerExp::toConstElem: 2LU @ ulong * * * * * * * * * * * * * * * value = i64 2 * * * * * * * * * * * * * type 1: %39 = load i64, i64* %index * * * * * * * * * * * * * type 2: i64 2 * * * * * * * * * * * * EqualExp::toElem: (cast(int)str[index - 2LU] & 192) != 128 @ bool * * * * * * * * * * * * * AndExp::toElem: cast(int)str[index - 2LU] & 192 @ int * * * * * * * * * * * * * * CastExp::toElem: cast(int)str[index - 2LU] @ int * * * * * * * * * * * * * * * IndexExp::toElem: str[index - 2LU] @ immutable(char) * * * * * * * * * * * * * * * * VarExp::toElem: str @ string * * * * * * * * * * * * * * * * * DtoSymbolAddress ('str' of type 'string') * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * type: string * * * * * * * * * * * * * * * * MinExp::toElem: index - 2LU @ ulong * * * * * * * * * * * * * * * * * VarExp::toElem: index @ ulong * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('index' of type 'ulong') * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * type: ulong * * * * * * * * * * * * * * * * * IntegerExp::toElem: 2LU @ ulong * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 2LU @ ulong * * * * * * * * * * * * * * * * * * * value = i64 2 * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * Casting from 'immutable(char)' to 'int' * * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * * * IntegerExp::toElem: 192 @ int * * * * * * * * * * * * * * * IntegerExp::toConstElem: 192 @ int * * * * * * * * * * * * * * * * value = i32 192 * * * * * * * * * * * * * IntegerExp::toElem: 128 @ int * * * * * * * * * * * * * * IntegerExp::toConstElem: 128 @ int * * * * * * * * * * * * * * * value = i32 128 * * * * * * * * * * * * * integral or pointer or interface * * * * * * * * * * * * * lv: %48 = and i32 %47, 192 * * * * * * * * * * * * * rv: i32 128 * * * * * * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/utf.d(323) * * * * * * * * * * * * IntegerExp::toElem: 2u @ uint * * * * * * * * * * * * * IntegerExp::toConstElem: 2u @ uint * * * * * * * * * * * * * * value = i32 2 * * * * * * * * * * * * return value is '0x12115050' * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/utf.d(320) * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/utf.d(320) * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/utf.d(320) * * * * * * * * * * * DeclarationExp::toElem: enum int i = 3; | T=void * * * * * * * * * * * * DtoDeclarationExp: i * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * Manifest constant, nothing to do. * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/utf.d(322) * * * * * * * * * * * AndAndExp::toElem: index >= 3LU && (cast(int)str[index - 3LU] & 192) != 128 @ bool * * * * * * * * * * * * CmpExp::toElem: index >= 3LU @ bool * * * * * * * * * * * * * VarExp::toElem: index @ ulong * * * * * * * * * * * * * * DtoSymbolAddress ('index' of type 'ulong') * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * type: ulong * * * * * * * * * * * * * IntegerExp::toElem: 3LU @ ulong * * * * * * * * * * * * * * IntegerExp::toConstElem: 3LU @ ulong * * * * * * * * * * * * * * * value = i64 3 * * * * * * * * * * * * * type 1: %41 = load i64, i64* %index * * * * * * * * * * * * * type 2: i64 3 * * * * * * * * * * * * EqualExp::toElem: (cast(int)str[index - 3LU] & 192) != 128 @ bool * * * * * * * * * * * * * AndExp::toElem: cast(int)str[index - 3LU] & 192 @ int * * * * * * * * * * * * * * CastExp::toElem: cast(int)str[index - 3LU] @ int * * * * * * * * * * * * * * * IndexExp::toElem: str[index - 3LU] @ immutable(char) * * * * * * * * * * * * * * * * VarExp::toElem: str @ string * * * * * * * * * * * * * * * * * DtoSymbolAddress ('str' of type 'string') * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * type: string * * * * * * * * * * * * * * * * MinExp::toElem: index - 3LU @ ulong * * * * * * * * * * * * * * * * * VarExp::toElem: index @ ulong * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('index' of type 'ulong') * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * type: ulong * * * * * * * * * * * * * * * * * IntegerExp::toElem: 3LU @ ulong * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 3LU @ ulong * * * * * * * * * * * * * * * * * * * value = i64 3 * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * Casting from 'immutable(char)' to 'int' * * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * * * IntegerExp::toElem: 192 @ int * * * * * * * * * * * * * * * IntegerExp::toConstElem: 192 @ int * * * * * * * * * * * * * * * * value = i32 192 * * * * * * * * * * * * * IntegerExp::toElem: 128 @ int * * * * * * * * * * * * * * IntegerExp::toConstElem: 128 @ int * * * * * * * * * * * * * * * value = i32 128 * * * * * * * * * * * * * integral or pointer or interface * * * * * * * * * * * * * lv: %59 = and i32 %58, 192 * * * * * * * * * * * * * rv: i32 128 * * * * * * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/utf.d(323) * * * * * * * * * * * * IntegerExp::toElem: 3u @ uint * * * * * * * * * * * * * IntegerExp::toConstElem: 3u @ uint * * * * * * * * * * * * * * value = i32 3 * * * * * * * * * * * * return value is '0x120e6e40' * * * * * ThrowStatement::toIR(): /usr/include/dlang/ldc/std/utf.d(326) * * * * * * NewExp::toElem: new UTFException("Not the end of the UTF sequence", index, "/usr/include/dlang/ldc/std/utf.d", 326LU, null) @ std.utf.UTFException * * * * * * * new class * * * * * * * Calling constructor * * * * * * * DtoCallFunction() * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (1) * * * * * * * * * %.newclass_gc = bitcast %object.Object* %.newclass_gc_alloc to %std.utf.UTFException* * * * * * * * * Function type: pure @safe UTFException(string msg, ulong index, string file = __FILE__, ulong line = cast(ulong)__LINE__, Throwable next = null) * * * * * * * * DtoArgument * * * * * * * * * StringExp::toElem: "Not the end of the UTF sequence" @ string * * * * * * * * * * type: [32 x i8] * * * * * * * * * * init: [32 x i8] c"Not the end of the UTF sequence\00" * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: index @ ulong * * * * * * * * * * DtoSymbolAddress ('index' of type 'ulong') * * * * * * * * * * * function param * * * * * * * * * * * type: ulong * * * * * * * * DtoArgument * * * * * * * * * StringExp::toElem: "/usr/include/dlang/ldc/std/utf.d" @ string * * * * * * * * DtoArgument * * * * * * * * * IntegerExp::toElem: 326LU @ ulong * * * * * * * * * * IntegerExp::toConstElem: 326LU @ ulong * * * * * * * * * * * value = i64 326 * * * * * * * * DtoArgument * * * * * * * * * NullExp::toElem(type=object.Throwable): null * * * * * * * * * * NullExp::toConstElem(type=object.Throwable): null * TemplateInstance::codegen: 'std.typetuple.TypeTuple!(2, 3, 4)' * * Ignoring Dsymbol::codegen for std.typetuple.TypeTuple!(2, 3, 4).TypeTuple * TemplateInstance::codegen: 'std.typetuple.TypeTuple!(2, 3)' * * Ignoring Dsymbol::codegen for std.typetuple.TypeTuple!(2, 3).TypeTuple * TemplateInstance::codegen: 'std.range.primitives.back!(immutable(char))' * * DtoDefineFunction(std.range.primitives.back!(immutable(char)).back): /usr/include/dlang/ldc/std/range/primitives.d(2226) * * * DtoFunctionType(pure @property @safe dchar(string a)) * * * * x86-64 ABI: Transforming return type * * * * x86-64 ABI: Transforming argument types * * * * Final function type: i32 ({ i64, i8* }) * * * DtoResolveFunction(std.range.primitives.back!(immutable(char)).back): /usr/include/dlang/ldc/std/range/primitives.d(2226) * * * * DtoDeclareFunction(std.range.primitives.back!(immutable(char)).back): /usr/include/dlang/ldc/std/range/primitives.d(2226) * * * * * DtoFunctionType(pure @property @safe dchar(string a)) * * * * * func = declare i32 @_D3std5range10primitives12__T4backTyaZ4backFNaNdNfAyaZw({ i64, i8* }) * * * Doing function body for: back * * * DtoCreateNestedContext for back * * * * DtoCreateNestedContextType for std.range.primitives.back!(immutable(char)).back * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/range/primitives.d(2227) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/range/primitives.d(2229) * * * * * * AssertExp::toElem: assert(a.length, "Attempting to fetch the back of an empty array of immutable(char)") * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/range/primitives.d(2230) * * * * * * DeclarationExp::toElem: ulong i = a.length - cast(ulong)strideBack(a, a.length); | T=void * * * * * * * DtoDeclarationExp: i * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * llvm value for decl: %i = alloca i64, align 8 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: i = a.length - cast(ulong)strideBack(a, a.length) | (ulong)(ulong = ulong) * * * * * * * * * * VarExp::toElem: i @ ulong * * * * * * * * * * * DtoSymbolAddress ('i' of type 'ulong') * * * * * * * * * * * * a normal variable * * * * * * * * * * MinExp::toElem: a.length - cast(ulong)strideBack(a, a.length) @ ulong * * * * * * * * * * * ArrayLengthExp::toElem: a.length @ ulong * * * * * * * * * * * * VarExp::toElem: a @ string * * * * * * * * * * * * * DtoSymbolAddress ('a' of type 'string') * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * type: string * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * CastExp::toElem: cast(ulong)strideBack(a, a.length) @ ulong * * * * * * * * * * * * CallExp::toElem: strideBack(a, a.length) @ uint * * * * * * * * * * * * * VarExp::toElem: strideBack @ pure @safe uint(auto ref string str, ulong index) * * * * * * * * * * * * * * DtoSymbolAddress ('strideBack' of type 'pure @safe uint(auto ref string str, ulong index)') * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * Function type: pure @safe uint(auto ref string str, ulong index) * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * VarExp::toElem: a @ string * * * * * * * * * * * * * * * * DtoSymbolAddress ('a' of type 'string') * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * type: string * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * ArrayLengthExp::toElem: a.length @ ulong * * * * * * * * * * * * * * * * VarExp::toElem: a @ string * * * * * * * * * * * * * * * * * DtoSymbolAddress ('a' of type 'string') * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * type: string * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * Casting from 'uint' to 'ulong' * * * * * * * * * * * * * cast to: i64 * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %i = alloca i64, align 8 * * * * * * * * * * * rhs: %5 = sub i64 %.len, %4 * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/range/primitives.d(2231) * * * * * * CallExp::toElem: decode(a, i) @ dchar * * * * * * * VarExp::toElem: decode @ pure @trusted dchar(auto ref string str, ref ulong index) * * * * * * * * DtoSymbolAddress ('decode' of type 'pure @trusted dchar(auto ref string str, ref ulong index)') * * * * * * * * * FuncDeclaration * * * * * * * DtoCallFunction() * * * * * * * * Building type: pure @trusted dchar(auto ref string str, ref ulong index) * * * * * * * * * DtoFunctionType(pure @trusted dchar(auto ref string str, ref ulong index)) * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: i32 (i64*, { i64, i8* }*) * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (0) * * * * * * * * Function type: pure @trusted dchar(auto ref string str, ref ulong index) * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: a @ string * * * * * * * * * * DtoSymbolAddress ('a' of type 'string') * * * * * * * * * * * function param * * * * * * * * * * * type: string * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: i @ ulong * * * * * * * * * * DtoSymbolAddress ('i' of type 'ulong') * * * * * * * * * * * a normal variable * * * * * * return value is '0x12326288' * TemplateInstance::codegen: 'std.range.primitives.isInfinite!string' * * VarDeclaration::codegen(): 'std.range.primitives.isInfinite!string.isInfinite' * * * DtoResolveVariable(std.range.primitives.isInfinite!string.isInfinite) * TemplateInstance::codegen: 'std.algorithm.searching.find!("a == b", string, string)' * * DtoDefineFunction(std.algorithm.searching.find!("a == b", string, string).find): /usr/include/dlang/ldc/std/algorithm/searching.d(1557) * * * DtoFunctionType(pure nothrow @nogc @safe string(string haystack, string needle)) * * * * x86-64 ABI: Transforming return type * * * * x86-64 ABI: Transforming argument types * * * * Final function type: { i64, i8* } ({ i64, i8* }, { i64, i8* }) * * * DtoResolveFunction(std.algorithm.searching.find!("a == b", string, string).find): /usr/include/dlang/ldc/std/algorithm/searching.d(1557) * * * * DtoDeclareFunction(std.algorithm.searching.find!("a == b", string, string).find): /usr/include/dlang/ldc/std/algorithm/searching.d(1557) * * * * * DtoFunctionType(pure nothrow @nogc @safe string(string haystack, string needle)) * * * * * func = declare { i64, i8* } @_D3std9algorithm9searching36__T4findVAyaa6_61203d3d2062TAyaTAyaZ4findFNaNbNiNfAyaAyaZAya({ i64, i8* }, { i64, i8* }) * * * Doing function body for: find * * * DtoCreateNestedContext for find * * * * DtoCreateNestedContextType for std.algorithm.searching.find!("a == b", string, string).find * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/searching.d(1561) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/searching.d(1567) * * * * * * DeclarationExp::toElem: alias Representation = ubyte[]; | T=void * * * * * * * DtoDeclarationExp: Representation * * * * * * * * Ignoring Symbol: alias * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/searching.d(1571) * * * * * * DeclarationExp::toElem: static template force(TO, T) | T=void * * * * * * * DtoDeclarationExp: __anonymous * * * * * * * * AttribDeclaration * * * * * * * * DtoDeclarationExp: force(TO, T)(T r) * * * * * * * * * Ignoring Symbol: template * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/searching.d(1572) * * * * * * CallExp::toElem: force(find(force(haystack), force(needle))) @ string * * * * * * * VarExp::toElem: force @ pure nothrow @nogc @trusted string(ubyte[] r) * * * * * * * * DtoSymbolAddress ('force' of type 'pure nothrow @nogc @trusted string(ubyte[] r)') * * * * * * * * * FuncDeclaration * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted string(ubyte[] r)) * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: { i64, i8* } ({ i64, i8* }) * * * * * * * * * DtoResolveFunction(std.algorithm.searching.find!("a == b", string, string).find.force!(string, ubyte[]).force): /usr/include/dlang/ldc/std/algorithm/searching.d(1571) * * * * * * * * * * DtoDeclareFunction(std.algorithm.searching.find!("a == b", string, string).find.force!(string, ubyte[]).force): /usr/include/dlang/ldc/std/algorithm/searching.d(1571) * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted string(ubyte[] r)) * * * * * * * * * * * func = declare { i64, i8* } @_D3std9algorithm9searching36__T4findVAyaa6_61203d3d2062TAyaTAyaZ4findFAyaAyaZ17__T5forceTAyaTAhZ5forceFNaNbNiNeAhZAya({ i64, i8* }) * * * * * * * DtoCallFunction() * * * * * * * * Building type: pure nothrow @nogc @trusted string(ubyte[] r) * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted string(ubyte[] r)) * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: { i64, i8* } ({ i64, i8* }) * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (0) * * * * * * * * Function type: pure nothrow @nogc @trusted string(ubyte[] r) * * * * * * * * DtoArgument * * * * * * * * * CallExp::toElem: find(force(haystack), force(needle)) @ ubyte[] * * * * * * * * * * VarExp::toElem: find @ pure nothrow @nogc @safe ubyte[](ubyte[] haystack, ubyte[] needle) * * * * * * * * * * * DtoSymbolAddress ('find' of type 'pure nothrow @nogc @safe ubyte[](ubyte[] haystack, ubyte[] needle)') * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe ubyte[](ubyte[] haystack, ubyte[] needle)) * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * Final function type: { i64, i8* } ({ i64, i8* }, { i64, i8* }) * * * * * * * * * * * * DtoResolveFunction(std.algorithm.searching.find!("a == b", ubyte[], ubyte[]).find): /usr/include/dlang/ldc/std/algorithm/searching.d(1618) * * * * * * * * * * * * * DtoDeclareFunction(std.algorithm.searching.find!("a == b", ubyte[], ubyte[]).find): /usr/include/dlang/ldc/std/algorithm/searching.d(1618) * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe ubyte[](ubyte[] haystack, ubyte[] needle)) * * * * * * * * * * * * * * func = declare { i64, i8* } @_D3std9algorithm9searching34__T4findVAyaa6_61203d3d2062TAhTAhZ4findFNaNbNiNfAhAhZAh({ i64, i8* }, { i64, i8* }) * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * Building type: pure nothrow @nogc @safe ubyte[](ubyte[] haystack, ubyte[] needle) * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe ubyte[](ubyte[] haystack, ubyte[] needle)) * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * Final function type: { i64, i8* } ({ i64, i8* }, { i64, i8* }) * * * * * * * * * * * doing normal arguments * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * Function type: pure nothrow @nogc @safe ubyte[](ubyte[] haystack, ubyte[] needle) * * * * * * * * * * * DtoArgument * * * * * * * * * * * * CallExp::toElem: force(haystack) @ ubyte[] * * * * * * * * * * * * * VarExp::toElem: force @ pure nothrow @nogc @trusted ubyte[](string r) * * * * * * * * * * * * * * DtoSymbolAddress ('force' of type 'pure nothrow @nogc @trusted ubyte[](string r)') * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted ubyte[](string r)) * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * Final function type: { i64, i8* } ({ i64, i8* }) * * * * * * * * * * * * * * * DtoResolveFunction(std.algorithm.searching.find!("a == b", string, string).find.force!(ubyte[], string).force): /usr/include/dlang/ldc/std/algorithm/searching.d(1571) * * * * * * * * * * * * * * * * DtoDeclareFunction(std.algorithm.searching.find!("a == b", string, string).find.force!(ubyte[], string).force): /usr/include/dlang/ldc/std/algorithm/searching.d(1571) * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted ubyte[](string r)) * * * * * * * * * * * * * * * * * func = declare { i64, i8* } @_D3std9algorithm9searching36__T4findVAyaa6_61203d3d2062TAyaTAyaZ4findFAyaAyaZ17__T5forceTAhTAyaZ5forceFNaNbNiNeAyaZAh({ i64, i8* }) * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * Building type: pure nothrow @nogc @trusted ubyte[](string r) * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted ubyte[](string r)) * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * Final function type: { i64, i8* } ({ i64, i8* }) * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * Function type: pure nothrow @nogc @trusted ubyte[](string r) * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * VarExp::toElem: haystack @ string * * * * * * * * * * * * * * * * DtoSymbolAddress ('haystack' of type 'string') * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * type: string * * * * * * * * * * * DtoArgument * * * * * * * * * * * * CallExp::toElem: force(needle) @ ubyte[] * * * * * * * * * * * * * VarExp::toElem: force @ pure nothrow @nogc @trusted ubyte[](string r) * * * * * * * * * * * * * * DtoSymbolAddress ('force' of type 'pure nothrow @nogc @trusted ubyte[](string r)') * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * Function type: pure nothrow @nogc @trusted ubyte[](string r) * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * VarExp::toElem: needle @ string * * * * * * * * * * * * * * * * DtoSymbolAddress ('needle' of type 'string') * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * type: string * * * * * * return value is '0x1232d960' * TemplateInstance::codegen: 'std.traits.Select!(false, ushort[], uint[])' * * Ignoring Dsymbol::codegen for std.traits.Select!(false, ushort[], uint[]).Select * TemplateInstance::codegen: 'std.traits.Select!(true, ubyte[], uint[])' * * Ignoring Dsymbol::codegen for std.traits.Select!(true, ubyte[], uint[]).Select * TemplateInstance::codegen: 'std.functional.binaryFun!("a == b", "a", "b").binaryFun!(ubyte, ubyte[])' * TemplateInstance::codegen: 'std.range.primitives.isForwardRange!(ubyte[])' * TemplateInstance::codegen: 'std.range.primitives.save!ubyte' * * DtoDefineFunction(std.range.primitives.save!ubyte.save): /usr/include/dlang/ldc/std/range/primitives.d(1971) * * * DtoFunctionType(pure nothrow @nogc @property @safe ubyte[](ubyte[] a)) * * * * x86-64 ABI: Transforming return type * * * * x86-64 ABI: Transforming argument types * * * * Final function type: { i64, i8* } ({ i64, i8* }) * * * DtoResolveFunction(std.range.primitives.save!ubyte.save): /usr/include/dlang/ldc/std/range/primitives.d(1971) * * * * DtoDeclareFunction(std.range.primitives.save!ubyte.save): /usr/include/dlang/ldc/std/range/primitives.d(1971) * * * * * DtoFunctionType(pure nothrow @nogc @property @safe ubyte[](ubyte[] a)) * * * * * func = declare { i64, i8* } @_D3std5range10primitives11__T4saveThZ4saveFNaNbNdNiNfAhZAh({ i64, i8* }) * * * Doing function body for: save * * * DtoCreateNestedContext for save * * * * DtoCreateNestedContextType for std.range.primitives.save!ubyte.save * * * CompoundStatement::toIR(): * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/range/primitives.d(1973) * * * * * VarExp::toElem: a @ ubyte[] * * * * * * DtoSymbolAddress ('a' of type 'ubyte[]') * * * * * * * function param * * * * * * * type: ubyte[] * * * * * return value is '0x1232f838' * TemplateInstance::codegen: 'std.functional.binaryFun!("a == b", "a", "b").binaryFun!(ubyte, ubyte)' * * DtoDefineFunction(std.functional.binaryFun!("a == b", "a", "b").binaryFun!(ubyte, ubyte).binaryFun): /usr/include/dlang/ldc/std/functional.d(163) * * * DtoFunctionType(pure nothrow @nogc @safe bool(auto ref ubyte __a, auto ref ubyte __b)) * * * * x86-64 ABI: Transforming return type * * * * x86-64 ABI: Transforming argument types * * * * Final function type: i1 (i8*, i8*) * * * DtoResolveFunction(std.functional.binaryFun!("a == b", "a", "b").binaryFun!(ubyte, ubyte).binaryFun): /usr/include/dlang/ldc/std/functional.d(163) * * * * DtoDeclareFunction(std.functional.binaryFun!("a == b", "a", "b").binaryFun!(ubyte, ubyte).binaryFun): /usr/include/dlang/ldc/std/functional.d(163) * * * * * DtoFunctionType(pure nothrow @nogc @safe bool(auto ref ubyte __a, auto ref ubyte __b)) * * * * * func = declare i1 @_D3std10functional51__T9binaryFunVAyaa6_61203d3d2062VAyaa1_61VAyaa1_62Z18__T9binaryFunThThZ9binaryFunFNaNbNiNfKhKhZb(i8*, i8*) * * * Doing function body for: binaryFun * * * DtoCreateNestedContext for binaryFun * * * * DtoCreateNestedContextType for std.functional.binaryFun!("a == b", "a", "b").binaryFun!(ubyte, ubyte).binaryFun * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/functional.d(165) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/functional.d-mixin-166(166) * * * * * * DeclarationExp::toElem: alias a = ref ubyte __a; ; | T=void * * * * * * * DtoDeclarationExp: a * * * * * * * * Ignoring Symbol: alias * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/functional.d-mixin-167(167) * * * * * * DeclarationExp::toElem: alias b = ref ubyte __b; ; | T=void * * * * * * * DtoDeclarationExp: b * * * * * * * * Ignoring Symbol: alias * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/functional.d(168) * * * * * * EqualExp::toElem: cast(int)__a == cast(int)__b @ bool * * * * * * * CastExp::toElem: cast(int)__a @ int * * * * * * * * VarExp::toElem: __a @ ubyte * * * * * * * * * DtoSymbolAddress ('__a' of type 'ubyte') * * * * * * * * * * function param * * * * * * * * * * type: ubyte * * * * * * * * Casting from 'ubyte' to 'int' * * * * * * * * * cast to: i32 * * * * * * * CastExp::toElem: cast(int)__b @ int * * * * * * * * VarExp::toElem: __b @ ubyte * * * * * * * * * DtoSymbolAddress ('__b' of type 'ubyte') * * * * * * * * * * function param * * * * * * * * * * type: ubyte * * * * * * * * Casting from 'ubyte' to 'int' * * * * * * * * * cast to: i32 * * * * * * * integral or pointer or interface * * * * * * * lv: %2 = zext i8 %1 to i32 * * * * * * * rv: %4 = zext i8 %3 to i32 * * * * * * return value is '0x12331d10' * TemplateInstance::codegen: 'std.range.primitives.isRandomAccessRange!(ubyte[])' * TemplateInstance::codegen: 'std.range.primitives.isBidirectionalRange!(ubyte[])' * TemplateInstance::codegen: 'std.range.primitives.popBack!ubyte' * * DtoDefineFunction(std.range.primitives.popBack!ubyte.popBack): /usr/include/dlang/ldc/std/range/primitives.d(2091) * * * DtoFunctionType(pure nothrow @nogc @safe void(ref ubyte[] a)) * * * * Building type: ubyte[]* * * * * x86-64 ABI: Transforming argument types * * * * Final function type: void ({ i64, i8* }*) * * * DtoResolveFunction(std.range.primitives.popBack!ubyte.popBack): /usr/include/dlang/ldc/std/range/primitives.d(2091) * * * * DtoDeclareFunction(std.range.primitives.popBack!ubyte.popBack): /usr/include/dlang/ldc/std/range/primitives.d(2091) * * * * * DtoFunctionType(pure nothrow @nogc @safe void(ref ubyte[] a)) * * * * * func = declare void @_D3std5range10primitives14__T7popBackThZ7popBackFNaNbNiNfKAhZv({ i64, i8* }*) * * * Doing function body for: popBack * * * DtoCreateNestedContext for popBack * * * * DtoCreateNestedContextType for std.range.primitives.popBack!ubyte.popBack * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/range/primitives.d(2093) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/range/primitives.d(2094) * * * * * * AssertExp::toElem: assert(a.length) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/range/primitives.d(2095) * * * * * * AssignExp::toElem: a = a[0..__dollar - 1LU] | (ubyte[])(ubyte[] = ubyte[]) * * * * * * * VarExp::toElem: a @ ubyte[] * * * * * * * * DtoSymbolAddress ('a' of type 'ubyte[]') * * * * * * * * * function param * * * * * * * * * type: ubyte[] * * * * * * * SliceExp::toElem: a[0..__dollar - 1LU] @ ubyte[] * * * * * * * * VarExp::toElem: a @ ubyte[] * * * * * * * * * DtoSymbolAddress ('a' of type 'ubyte[]') * * * * * * * * * * function param * * * * * * * * * * type: ubyte[] * * * * * * * * DtoArrayPtr * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * value = i64 0 * * * * * * * * MinExp::toElem: __dollar - 1LU @ ulong * * * * * * * * * VarExp::toElem: __dollar @ ulong * * * * * * * * * * DtoSymbolAddress ('__dollar' of type 'ulong') * * * * * * * * * * * Id::dollar * * * * * * * * * * * DtoArrayLen * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * value = i64 1 * * * * * * * * DtoArrayLen * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * DtoAssign() * * * * * * * * DtoArrayAssign * * * * * * * * * DtoArrayPtr * * * * * * * * * DtoArrayLen * * * * * * * * * SetArray * TemplateInstance::codegen: 'std.range.primitives.back!ubyte' * * DtoDefineFunction(std.range.primitives.back!ubyte.back): /usr/include/dlang/ldc/std/range/primitives.d(2201) * * * DtoFunctionType(pure nothrow @nogc @property ref @safe ubyte(ubyte[] a)) * * * * x86-64 ABI: Transforming argument types * * * * Final function type: i8* ({ i64, i8* }) * * * DtoResolveFunction(std.range.primitives.back!ubyte.back): /usr/include/dlang/ldc/std/range/primitives.d(2201) * * * * DtoDeclareFunction(std.range.primitives.back!ubyte.back): /usr/include/dlang/ldc/std/range/primitives.d(2201) * * * * * DtoFunctionType(pure nothrow @nogc @property ref @safe ubyte(ubyte[] a)) * * * * * func = declare i8* @_D3std5range10primitives11__T4backThZ4backFNaNbNcNdNiNfAhZh({ i64, i8* }) * * * Doing function body for: back * * * DtoCreateNestedContext for back * * * * DtoCreateNestedContextType for std.range.primitives.back!ubyte.back * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/range/primitives.d(2202) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/range/primitives.d(2203) * * * * * * AssertExp::toElem: assert(a.length, "Attempting to fetch the back of an empty array of ubyte") * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/range/primitives.d(2204) * * * * * * AddrExp::toElem: &a[__dollar - 1LU] @ ubyte* * * * * * * * IndexExp::toElem: a[__dollar - 1LU] @ ubyte * * * * * * * * VarExp::toElem: a @ ubyte[] * * * * * * * * * DtoSymbolAddress ('a' of type 'ubyte[]') * * * * * * * * * * function param * * * * * * * * * * type: ubyte[] * * * * * * * * MinExp::toElem: __dollar - 1LU @ ulong * * * * * * * * * VarExp::toElem: __dollar @ ulong * * * * * * * * * * DtoSymbolAddress ('__dollar' of type 'ulong') * * * * * * * * * * * Id::dollar * * * * * * * * * * * DtoArrayLen * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * value = i64 1 * * * * * * * * DtoArrayLen * * * * * * * * DtoArrayPtr * * * * * * * is nothing special * * * * * * * lval: %5 = getelementptr i8, i8* %.ptr, i64 %2 * * * * * * return value is '0x12337490' * TemplateInstance::codegen: 'std.range.primitives.hasLength!(ubyte[])' * * VarDeclaration::codegen(): 'std.range.primitives.hasLength!(ubyte[]).hasLength' * * * DtoResolveVariable(std.range.primitives.hasLength!(ubyte[]).hasLength) * TemplateInstance::codegen: 'std.range.primitives.isInfinite!(ubyte[])' * TemplateInstance::codegen: 'std.algorithm.searching.find!("a == b", string, string).find.force!(ubyte[], string)' * * DtoDefineFunction(std.algorithm.searching.find!("a == b", string, string).find.force!(ubyte[], string).force): /usr/include/dlang/ldc/std/algorithm/searching.d(1571) * * * Doing function body for: force * * * DtoCreateNestedContext for force * * * * DtoCreateNestedContextType for std.algorithm.searching.find!("a == b", string, string).find.force!(ubyte[], string).force * * * CompoundStatement::toIR(): * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/searching.d(1571) * * * * * CastExp::toElem: cast(ubyte[])r @ ubyte[] * * * * * * VarExp::toElem: r @ string * * * * * * * DtoSymbolAddress ('r' of type 'string') * * * * * * * * function param * * * * * * * * type: string * * * * * * Casting from 'string' to 'ubyte[]' * * * * * * * DtoCastArray * * * * * * * * from array or sarray * * * * * * * * to array * * * * * * * * DtoArrayLen * * * * * * * * DtoArrayPtr * * * * * * * * isslice * * * * * return value is '0x12338840' * TemplateInstance::codegen: 'std.algorithm.searching.find!("a == b", ubyte[], ubyte[])' * * DtoDefineFunction(std.algorithm.searching.find!("a == b", ubyte[], ubyte[]).find): /usr/include/dlang/ldc/std/algorithm/searching.d(1618) * * * Doing function body for: find * * * DtoCreateNestedContext for find * * * * DtoCreateNestedContextType for std.algorithm.searching.find!("a == b", ubyte[], ubyte[]).find * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/searching.d(1621) * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/searching.d(1622) * * * * * * CallExp::toElem: empty(needle) @ bool * * * * * * * VarExp::toElem: empty @ pure nothrow @nogc @property @safe bool(const(ubyte[]) a) * * * * * * * * DtoSymbolAddress ('empty' of type 'pure nothrow @nogc @property @safe bool(const(ubyte[]) a)') * * * * * * * * * FuncDeclaration * * * * * * * DtoCallFunction() * * * * * * * * Building type: pure nothrow @nogc @property @safe bool(const(ubyte[]) a) * * * * * * * * * DtoFunctionType(pure nothrow @nogc @property @safe bool(const(ubyte[]) a)) * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: i1 ({ i64, i8* }) * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (0) * * * * * * * * Function type: pure nothrow @nogc @property @safe bool(const(ubyte[]) a) * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: needle @ const(ubyte[]) * * * * * * * * * * DtoSymbolAddress ('needle' of type 'ubyte[]') * * * * * * * * * * * function param * * * * * * * * * * * type: ubyte[] * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/searching.d(1622) * * * * * * * VarExp::toElem: haystack @ ubyte[] * * * * * * * * DtoSymbolAddress ('haystack' of type 'ubyte[]') * * * * * * * * * function param * * * * * * * * * type: ubyte[] * * * * * * * return value is '0x1233a3e8' * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/searching.d(1623) * * * * * * DeclarationExp::toElem: const const(ulong) needleLength = walkLength(save(needle)); | T=void * * * * * * * DtoDeclarationExp: needleLength * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = const(ulong)) * * * * * * * * * llvm value for decl: %needleLength = alloca i64, align 8 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: needleLength = walkLength(save(needle)) | (const(ulong))(const(ulong) = const(ulong)) * * * * * * * * * * VarExp::toElem: needleLength @ const(ulong) * * * * * * * * * * * DtoSymbolAddress ('needleLength' of type 'const(ulong)') * * * * * * * * * * * * a normal variable * * * * * * * * * * CallExp::toElem: walkLength(save(needle)) @ const(ulong) * * * * * * * * * * * VarExp::toElem: walkLength @ pure nothrow @nogc @safe ulong(ubyte[] range) * * * * * * * * * * * * DtoSymbolAddress ('walkLength' of type 'pure nothrow @nogc @safe ulong(ubyte[] range)') * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe ulong(ubyte[] range)) * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * Final function type: i64 ({ i64, i8* }) * * * * * * * * * * * * * DtoResolveFunction(std.range.primitives.walkLength!(ubyte[]).walkLength): /usr/include/dlang/ldc/std/range/primitives.d(1550) * * * * * * * * * * * * * * DtoDeclareFunction(std.range.primitives.walkLength!(ubyte[]).walkLength): /usr/include/dlang/ldc/std/range/primitives.d(1550) * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe ulong(ubyte[] range)) * * * * * * * * * * * * * * * func = declare i64 @_D3std5range10primitives19__T10walkLengthTAhZ10walkLengthFNaNbNiNfAhZm({ i64, i8* }) * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * Building type: pure nothrow @nogc @safe ulong(ubyte[] range) * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe ulong(ubyte[] range)) * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * Final function type: i64 ({ i64, i8* }) * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * Function type: pure nothrow @nogc @safe ulong(ubyte[] range) * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * CallExp::toElem: save(needle) @ ubyte[] * * * * * * * * * * * * * * VarExp::toElem: save @ pure nothrow @nogc @property @safe ubyte[](ubyte[] a) * * * * * * * * * * * * * * * DtoSymbolAddress ('save' of type 'pure nothrow @nogc @property @safe ubyte[](ubyte[] a)') * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * Building type: pure nothrow @nogc @property @safe ubyte[](ubyte[] a) * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @property @safe ubyte[](ubyte[] a)) * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * Final function type: { i64, i8* } ({ i64, i8* }) * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @property @safe ubyte[](ubyte[] a) * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * VarExp::toElem: needle @ ubyte[] * * * * * * * * * * * * * * * * * DtoSymbolAddress ('needle' of type 'ubyte[]') * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * type: ubyte[] * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %needleLength = alloca i64, align 8 * * * * * * * * * * * rhs: %7 = call i64 @_D3std5range10primitives19__T10walkLengthTAhZ10walkLengthFNaNbNiNfAhZm({ i64, i8* } %6) * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/searching.d(1624) * * * * * * CmpExp::toElem: needleLength > haystack.length @ bool * * * * * * * VarExp::toElem: needleLength @ ulong * * * * * * * * DtoSymbolAddress ('needleLength' of type 'const(ulong)') * * * * * * * * * a normal variable * * * * * * * ArrayLengthExp::toElem: haystack.length @ ulong * * * * * * * * VarExp::toElem: haystack @ ubyte[] * * * * * * * * * DtoSymbolAddress ('haystack' of type 'ubyte[]') * * * * * * * * * * function param * * * * * * * * * * type: ubyte[] * * * * * * * * DtoArrayLen * * * * * * * type 1: %9 = load i64, i64* %needleLength * * * * * * * type 2: %.len = load i64, i64* %8 * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/searching.d(1625) * * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/searching.d(1628) * * * * * * * * SliceExp::toElem: haystack[haystack.length..haystack.length] @ ubyte[] * * * * * * * * * VarExp::toElem: haystack @ ubyte[] * * * * * * * * * * DtoSymbolAddress ('haystack' of type 'ubyte[]') * * * * * * * * * * * function param * * * * * * * * * * * type: ubyte[] * * * * * * * * * DtoArrayPtr * * * * * * * * * ArrayLengthExp::toElem: haystack.length @ ulong * * * * * * * * * * VarExp::toElem: haystack @ ubyte[] * * * * * * * * * * * DtoSymbolAddress ('haystack' of type 'ubyte[]') * * * * * * * * * * * * function param * * * * * * * * * * * * type: ubyte[] * * * * * * * * * * DtoArrayLen * * * * * * * * * ArrayLengthExp::toElem: haystack.length @ ulong * * * * * * * * * * VarExp::toElem: haystack @ ubyte[] * * * * * * * * * * * DtoSymbolAddress ('haystack' of type 'ubyte[]') * * * * * * * * * * * * function param * * * * * * * * * * * * type: ubyte[] * * * * * * * * * * DtoArrayLen * * * * * * * * * DtoArrayLen * * * * * * * * return value is '0x1233ea70' * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/searching.d(1633) * * * * * * DeclarationExp::toElem: ulong step = 1LU; | T=void * * * * * * * DtoDeclarationExp: step * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * llvm value for decl: %step = alloca i64, align 8 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: step = 1LU | (ulong)(ulong = ulong) * * * * * * * * * * VarExp::toElem: step @ ulong * * * * * * * * * * * DtoSymbolAddress ('step' of type 'ulong') * * * * * * * * * * * * a normal variable * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * value = i64 1 * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %step = alloca i64, align 8 * * * * * * * * * * * rhs: i64 1 * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/searching.d(1634) * * * * * * DeclarationExp::toElem: ubyte needleBack = back(needle); | T=void * * * * * * * DtoDeclarationExp: needleBack * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = ubyte) * * * * * * * * * llvm value for decl: %needleBack = alloca i8, align 1 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: needleBack = back(needle) | (ubyte)(ubyte = ubyte) * * * * * * * * * * VarExp::toElem: needleBack @ ubyte * * * * * * * * * * * DtoSymbolAddress ('needleBack' of type 'ubyte') * * * * * * * * * * * * a normal variable * * * * * * * * * * CallExp::toElem: back(needle) @ ubyte * * * * * * * * * * * VarExp::toElem: back @ pure nothrow @nogc @property ref @safe ubyte(ubyte[] a) * * * * * * * * * * * * DtoSymbolAddress ('back' of type 'pure nothrow @nogc @property ref @safe ubyte(ubyte[] a)') * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * Building type: pure nothrow @nogc @property ref @safe ubyte(ubyte[] a) * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @property ref @safe ubyte(ubyte[] a)) * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * Final function type: i8* ({ i64, i8* }) * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * Function type: pure nothrow @nogc @property ref @safe ubyte(ubyte[] a) * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * VarExp::toElem: needle @ ubyte[] * * * * * * * * * * * * * * DtoSymbolAddress ('needle' of type 'ubyte[]') * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * type: ubyte[] * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %needleBack = alloca i8, align 1 * * * * * * * * * * * rhs: %18 = load i8, i8* %17 * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/searching.d(1635) * * * * * * CallExp::toElem: popBack(needle) @ void * * * * * * * VarExp::toElem: popBack @ pure nothrow @nogc @safe void(ref ubyte[] a) * * * * * * * * DtoSymbolAddress ('popBack' of type 'pure nothrow @nogc @safe void(ref ubyte[] a)') * * * * * * * * * FuncDeclaration * * * * * * * DtoCallFunction() * * * * * * * * Building type: pure nothrow @nogc @safe void(ref ubyte[] a) * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe void(ref ubyte[] a)) * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: void ({ i64, i8* }*) * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (0) * * * * * * * * Function type: pure nothrow @nogc @safe void(ref ubyte[] a) * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: needle @ ubyte[] * * * * * * * * * * DtoSymbolAddress ('needle' of type 'ubyte[]') * * * * * * * * * * * function param * * * * * * * * * * * type: ubyte[] * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/searching.d(1636) * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/searching.d(1636) * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/searching.d(1636) * * * * * * * * DeclarationExp::toElem: ubyte[] i = save(needle); | T=void * * * * * * * * * DtoDeclarationExp: i * * * * * * * * * * VarDeclaration * * * * * * * * * * DtoVarDeclaration(vdtype = ubyte[]) * * * * * * * * * * * llvm value for decl: %i = alloca { i64, i8* }, align 8 * * * * * * * * * * * expression initializer * * * * * * * * * * * AssignExp::toElem: i = save(needle) | (ubyte[])(ubyte[] = ubyte[]) * * * * * * * * * * * * VarExp::toElem: i @ ubyte[] * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'ubyte[]') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * CallExp::toElem: save(needle) @ ubyte[] * * * * * * * * * * * * * VarExp::toElem: save @ pure nothrow @nogc @property @safe ubyte[](ubyte[] a) * * * * * * * * * * * * * * DtoSymbolAddress ('save' of type 'pure nothrow @nogc @property @safe ubyte[](ubyte[] a)') * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * Function type: pure nothrow @nogc @property @safe ubyte[](ubyte[] a) * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * VarExp::toElem: needle @ ubyte[] * * * * * * * * * * * * * * * * DtoSymbolAddress ('needle' of type 'ubyte[]') * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * type: ubyte[] * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * SetArray * * * * * * * ForStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/searching.d(1636) * * * * * * * * AndAndExp::toElem: !empty(i) && cast(int)back(i) != cast(int)needleBack @ bool * * * * * * * * * NotExp::toElem: !empty(i) @ bool * * * * * * * * * * CallExp::toElem: empty(i) @ bool * * * * * * * * * * * VarExp::toElem: empty @ pure nothrow @nogc @property @safe bool(const(ubyte[]) a) * * * * * * * * * * * * DtoSymbolAddress ('empty' of type 'pure nothrow @nogc @property @safe bool(const(ubyte[]) a)') * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * Function type: pure nothrow @nogc @property @safe bool(const(ubyte[]) a) * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * VarExp::toElem: i @ const(ubyte[]) * * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'ubyte[]') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * EqualExp::toElem: cast(int)back(i) != cast(int)needleBack @ bool * * * * * * * * * * CastExp::toElem: cast(int)back(i) @ int * * * * * * * * * * * CallExp::toElem: back(i) @ ubyte * * * * * * * * * * * * VarExp::toElem: back @ pure nothrow @nogc @property ref @safe ubyte(ubyte[] a) * * * * * * * * * * * * * DtoSymbolAddress ('back' of type 'pure nothrow @nogc @property ref @safe ubyte(ubyte[] a)') * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * Function type: pure nothrow @nogc @property ref @safe ubyte(ubyte[] a) * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * VarExp::toElem: i @ ubyte[] * * * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'ubyte[]') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * Casting from 'ubyte' to 'int' * * * * * * * * * * * * cast to: i32 * * * * * * * * * * CastExp::toElem: cast(int)needleBack @ int * * * * * * * * * * * VarExp::toElem: needleBack @ ubyte * * * * * * * * * * * * DtoSymbolAddress ('needleBack' of type 'ubyte') * * * * * * * * * * * * * a normal variable * * * * * * * * * * * Casting from 'ubyte' to 'int' * * * * * * * * * * * * cast to: i32 * * * * * * * * * * integral or pointer or interface * * * * * * * * * * lv: %34 = zext i8 %33 to i32 * * * * * * * * * * rv: %36 = zext i8 %35 to i32 * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/searching.d(1638) * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/searching.d(1638) * * * * * * * * CommaExp::toElem: popBack(i) , step += 1LU @ ulong * * * * * * * * * CallExp::toElem: popBack(i) @ void * * * * * * * * * * VarExp::toElem: popBack @ pure nothrow @nogc @safe void(ref ubyte[] a) * * * * * * * * * * * DtoSymbolAddress ('popBack' of type 'pure nothrow @nogc @safe void(ref ubyte[] a)') * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * doing normal arguments * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * Function type: pure nothrow @nogc @safe void(ref ubyte[] a) * * * * * * * * * * * DtoArgument * * * * * * * * * * * * VarExp::toElem: i @ ubyte[] * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'ubyte[]') * * * * * * * * * * * * * * a normal variable * * * * * * * * * AddAssignExp::toElem: step += 1LU @ ulong * * * * * * * * * * Caching l-value of step += 1LU => step * * * * * * * * * * * VarExp::toElem: step @ ulong * * * * * * * * * * * * DtoSymbolAddress ('step' of type 'ulong') * * * * * * * * * * * * * a normal variable * * * * * * * * * * AddExp::toElem: step + 1LU @ ulong * * * * * * * * * * * VarExp::toElem: step @ ulong * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %step = alloca i64, align 8 * * * * * * * * * * * rhs: %32 = add i64 %31, 1 * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/searching.d(1641) * * * * * * DeclarationExp::toElem: ulong scout = needleLength - 1LU; | T=void * * * * * * * DtoDeclarationExp: scout * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * llvm value for decl: %scout = alloca i64, align 8 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: scout = needleLength - 1LU | (ulong)(ulong = ulong) * * * * * * * * * * VarExp::toElem: scout @ ulong * * * * * * * * * * * DtoSymbolAddress ('scout' of type 'ulong') * * * * * * * * * * * * a normal variable * * * * * * * * * * MinExp::toElem: needleLength - 1LU @ ulong * * * * * * * * * * * VarExp::toElem: needleLength @ ulong * * * * * * * * * * * * DtoSymbolAddress ('needleLength' of type 'const(ulong)') * * * * * * * * * * * * * a normal variable * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %scout = alloca i64, align 8 * * * * * * * * * * * rhs: %34 = sub i64 %33, 1 * * * * * ForStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/searching.d(1642) * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/searching.d(1643) * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/searching.d(1643) * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/searching.d(1644) * * * * * * * * * CmpExp::toElem: scout >= haystack.length @ bool * * * * * * * * * * VarExp::toElem: scout @ ulong * * * * * * * * * * * DtoSymbolAddress ('scout' of type 'ulong') * * * * * * * * * * * * a normal variable * * * * * * * * * * ArrayLengthExp::toElem: haystack.length @ ulong * * * * * * * * * * * VarExp::toElem: haystack @ ubyte[] * * * * * * * * * * * * DtoSymbolAddress ('haystack' of type 'ubyte[]') * * * * * * * * * * * * * function param * * * * * * * * * * * * * type: ubyte[] * * * * * * * * * * * DtoArrayLen * * * * * * * * * * type 1: %43 = load i64, i64* %scout * * * * * * * * * * type 2: %.len13 = load i64, i64* %42 * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/searching.d(1645) * * * * * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/searching.d(1646) * * * * * * * * * * * SliceExp::toElem: haystack[haystack.length..haystack.length] @ ubyte[] * * * * * * * * * * * * VarExp::toElem: haystack @ ubyte[] * * * * * * * * * * * * * DtoSymbolAddress ('haystack' of type 'ubyte[]') * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * type: ubyte[] * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * ArrayLengthExp::toElem: haystack.length @ ulong * * * * * * * * * * * * * VarExp::toElem: haystack @ ubyte[] * * * * * * * * * * * * * * DtoSymbolAddress ('haystack' of type 'ubyte[]') * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * type: ubyte[] * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * ArrayLengthExp::toElem: haystack.length @ ulong * * * * * * * * * * * * * VarExp::toElem: haystack @ ubyte[] * * * * * * * * * * * * * * DtoSymbolAddress ('haystack' of type 'ubyte[]') * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * type: ubyte[] * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * return value is '0x12346ee0' * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/searching.d(1648) * * * * * * * * * NotExp::toElem: !binaryFun(haystack[scout], needleBack) @ bool * * * * * * * * * * CallExp::toElem: binaryFun(haystack[scout], needleBack) @ bool * * * * * * * * * * * VarExp::toElem: binaryFun @ pure nothrow @nogc @safe bool(auto ref ubyte __a, auto ref ubyte __b) * * * * * * * * * * * * DtoSymbolAddress ('binaryFun' of type 'pure nothrow @nogc @safe bool(auto ref ubyte __a, auto ref ubyte __b)') * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * Building type: pure nothrow @nogc @safe bool(auto ref ubyte __a, auto ref ubyte __b) * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe bool(auto ref ubyte __a, auto ref ubyte __b)) * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * Final function type: i1 (i8*, i8*) * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * Function type: pure nothrow @nogc @safe bool(auto ref ubyte __a, auto ref ubyte __b) * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * IndexExp::toElem: haystack[scout] @ ubyte * * * * * * * * * * * * * * VarExp::toElem: haystack @ ubyte[] * * * * * * * * * * * * * * * DtoSymbolAddress ('haystack' of type 'ubyte[]') * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * type: ubyte[] * * * * * * * * * * * * * * VarExp::toElem: scout @ ulong * * * * * * * * * * * * * * * DtoSymbolAddress ('scout' of type 'ulong') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * VarExp::toElem: needleBack @ ubyte * * * * * * * * * * * * * * DtoSymbolAddress ('needleBack' of type 'ubyte') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/searching.d(1649) * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/searching.d(1649) * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/searching.d(1650) * * * * * * * * * * * * AddAssignExp::toElem: scout += 1LU @ ulong * * * * * * * * * * * * * Caching l-value of scout += 1LU => scout * * * * * * * * * * * * * * VarExp::toElem: scout @ ulong * * * * * * * * * * * * * * * DtoSymbolAddress ('scout' of type 'ulong') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * AddExp::toElem: scout + 1LU @ ulong * * * * * * * * * * * * * * VarExp::toElem: scout @ ulong * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * lhs: %scout = alloca i64, align 8 * * * * * * * * * * * * * * rhs: %63 = add i64 %62, 1 * * * * * * * * * * * ContinueStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/searching.d(1651) * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/searching.d(1654) * * * * * * * * * DeclarationExp::toElem: ubyte[] cand = haystack[scout + 1LU - needleLength..haystack.length]; | T=void * * * * * * * * * * DtoDeclarationExp: cand * * * * * * * * * * * VarDeclaration * * * * * * * * * * * DtoVarDeclaration(vdtype = ubyte[]) * * * * * * * * * * * * llvm value for decl: %cand = alloca { i64, i8* }, align 8 * * * * * * * * * * * * expression initializer * * * * * * * * * * * * AssignExp::toElem: cand = haystack[scout + 1LU - needleLength..haystack.length] | (ubyte[])(ubyte[] = ubyte[]) * * * * * * * * * * * * * VarExp::toElem: cand @ ubyte[] * * * * * * * * * * * * * * DtoSymbolAddress ('cand' of type 'ubyte[]') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * SliceExp::toElem: haystack[scout + 1LU - needleLength..haystack.length] @ ubyte[] * * * * * * * * * * * * * * VarExp::toElem: haystack @ ubyte[] * * * * * * * * * * * * * * * DtoSymbolAddress ('haystack' of type 'ubyte[]') * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * type: ubyte[] * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * MinExp::toElem: scout + 1LU - needleLength @ ulong * * * * * * * * * * * * * * * AddExp::toElem: scout + 1LU @ ulong * * * * * * * * * * * * * * * * VarExp::toElem: scout @ ulong * * * * * * * * * * * * * * * * * DtoSymbolAddress ('scout' of type 'ulong') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * * * VarExp::toElem: needleLength @ ulong * * * * * * * * * * * * * * * * DtoSymbolAddress ('needleLength' of type 'const(ulong)') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * ArrayLengthExp::toElem: haystack.length @ ulong * * * * * * * * * * * * * * * VarExp::toElem: haystack @ ubyte[] * * * * * * * * * * * * * * * * DtoSymbolAddress ('haystack' of type 'ubyte[]') * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * type: ubyte[] * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * SetArray * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/searching.d(1655) * * * * * * * * * CallExp::toElem: startsWith(cand, needle) @ bool * * * * * * * * * * VarExp::toElem: startsWith @ pure nothrow @nogc @safe bool(ubyte[] doesThisStart, ubyte[] withThis) * * * * * * * * * * * DtoSymbolAddress ('startsWith' of type 'pure nothrow @nogc @safe bool(ubyte[] doesThisStart, ubyte[] withThis)') * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe bool(ubyte[] doesThisStart, ubyte[] withThis)) * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * Final function type: i1 ({ i64, i8* }, { i64, i8* }) * * * * * * * * * * * * DtoResolveFunction(std.algorithm.searching.startsWith!("a == b", ubyte[], ubyte[]).startsWith): /usr/include/dlang/ldc/std/algorithm/searching.d(3072) * * * * * * * * * * * * * DtoDeclareFunction(std.algorithm.searching.startsWith!("a == b", ubyte[], ubyte[]).startsWith): /usr/include/dlang/ldc/std/algorithm/searching.d(3072) * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe bool(ubyte[] doesThisStart, ubyte[] withThis)) * * * * * * * * * * * * * * func = declare i1 @_D3std9algorithm9searching41__T10startsWithVAyaa6_61203d3d2062TAhTAhZ10startsWithFNaNbNiNfAhAhZb({ i64, i8* }, { i64, i8* }) * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * Building type: pure nothrow @nogc @safe bool(ubyte[] doesThisStart, ubyte[] withThis) * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe bool(ubyte[] doesThisStart, ubyte[] withThis)) * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * Final function type: i1 ({ i64, i8* }, { i64, i8* }) * * * * * * * * * * * doing normal arguments * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * Function type: pure nothrow @nogc @safe bool(ubyte[] doesThisStart, ubyte[] withThis) * * * * * * * * * * * DtoArgument * * * * * * * * * * * * VarExp::toElem: cand @ ubyte[] * * * * * * * * * * * * * DtoSymbolAddress ('cand' of type 'ubyte[]') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * DtoArgument * * * * * * * * * * * * VarExp::toElem: needle @ ubyte[] * * * * * * * * * * * * * DtoSymbolAddress ('needle' of type 'ubyte[]') * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * type: ubyte[] * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/searching.d(1656) * * * * * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/searching.d(1658) * * * * * * * * * * * VarExp::toElem: cand @ ubyte[] * * * * * * * * * * * * DtoSymbolAddress ('cand' of type 'ubyte[]') * * * * * * * * * * * * * a normal variable * * * * * * * * * * * return value is '0x1234d6d8' * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/searching.d(1661) * * * * * * * * * AddAssignExp::toElem: scout += step @ ulong * * * * * * * * * * Caching l-value of scout += step => scout * * * * * * * * * * * VarExp::toElem: scout @ ulong * * * * * * * * * * * * DtoSymbolAddress ('scout' of type 'ulong') * * * * * * * * * * * * * a normal variable * * * * * * * * * * AddExp::toElem: scout + step @ ulong * * * * * * * * * * * VarExp::toElem: scout @ ulong * * * * * * * * * * * VarExp::toElem: step @ ulong * * * * * * * * * * * * DtoSymbolAddress ('step' of type 'ulong') * * * * * * * * * * * * * a normal variable * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %scout = alloca i64, align 8 * * * * * * * * * * * rhs: %82 = add i64 %80, %81 * TemplateInstance::codegen: 'std.range.primitives.walkLength!(ubyte[])' * * DtoDefineFunction(std.range.primitives.walkLength!(ubyte[]).walkLength): /usr/include/dlang/ldc/std/range/primitives.d(1550) * * * Doing function body for: walkLength * * * DtoCreateNestedContext for walkLength * * * * DtoCreateNestedContextType for std.range.primitives.walkLength!(ubyte[]).walkLength * * * CompoundStatement::toIR(): * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/range/primitives.d(1554) * * * * * ArrayLengthExp::toElem: range.length @ ulong * * * * * * VarExp::toElem: range @ ubyte[] * * * * * * * DtoSymbolAddress ('range' of type 'ubyte[]') * * * * * * * * function param * * * * * * * * type: ubyte[] * * * * * * DtoArrayLen * * * * * return value is '0x1234e6a8' * TemplateInstance::codegen: 'std.algorithm.searching.startsWith!("a == b", ubyte[], ubyte[])' * * DtoDefineFunction(std.algorithm.searching.startsWith!("a == b", ubyte[], ubyte[]).startsWith): /usr/include/dlang/ldc/std/algorithm/searching.d(3072) * * * Doing function body for: startsWith * * * DtoCreateNestedContext for startsWith * * * * DtoCreateNestedContextType for std.algorithm.searching.startsWith!("a == b", ubyte[], ubyte[]).startsWith * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/searching.d(3076) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/searching.d(3077) * * * * * * DeclarationExp::toElem: alias haystack = ubyte[] doesThisStart; ; | T=void * * * * * * * DtoDeclarationExp: haystack * * * * * * * * Ignoring Symbol: alias * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/searching.d(3078) * * * * * * DeclarationExp::toElem: alias needle = ubyte[] withThis; ; | T=void * * * * * * * DtoDeclarationExp: needle * * * * * * * * Ignoring Symbol: alias * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/searching.d(3081) * * * * * * DeclarationExp::toElem: enum bool isDefaultPred = true; | T=void * * * * * * * DtoDeclarationExp: isDefaultPred * * * * * * * * VarDeclaration * * * * * * * * Manifest constant, nothing to do. * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/searching.d(3090) * * * * * * CmpExp::toElem: doesThisStart.length < withThis.length @ bool * * * * * * * ArrayLengthExp::toElem: doesThisStart.length @ ulong * * * * * * * * VarExp::toElem: doesThisStart @ ubyte[] * * * * * * * * * DtoSymbolAddress ('doesThisStart' of type 'ubyte[]') * * * * * * * * * * function param * * * * * * * * * * type: ubyte[] * * * * * * * * DtoArrayLen * * * * * * * ArrayLengthExp::toElem: withThis.length @ ulong * * * * * * * * VarExp::toElem: withThis @ ubyte[] * * * * * * * * * DtoSymbolAddress ('withThis' of type 'ubyte[]') * * * * * * * * * * function param * * * * * * * * * * type: ubyte[] * * * * * * * * DtoArrayLen * * * * * * * type 1: %.len = load i64, i64* %1 * * * * * * * type 2: %.len1 = load i64, i64* %2 * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/searching.d(3091) * * * * * * * IntegerExp::toElem: false @ bool * * * * * * * * IntegerExp::toConstElem: false @ bool * * * * * * * * * value = i1 false * * * * * * * return value is '0x120e69a0' * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/searching.d(3098) * * * * * * EqualExp::toElem: doesThisStart[0..withThis.length] == withThis @ bool * * * * * * * SliceExp::toElem: doesThisStart[0..withThis.length] @ ubyte[] * * * * * * * * VarExp::toElem: doesThisStart @ ubyte[] * * * * * * * * * DtoSymbolAddress ('doesThisStart' of type 'ubyte[]') * * * * * * * * * * function param * * * * * * * * * * type: ubyte[] * * * * * * * * DtoArrayPtr * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * value = i64 0 * * * * * * * * ArrayLengthExp::toElem: withThis.length @ ulong * * * * * * * * * VarExp::toElem: withThis @ ubyte[] * * * * * * * * * * DtoSymbolAddress ('withThis' of type 'ubyte[]') * * * * * * * * * * * function param * * * * * * * * * * * type: ubyte[] * * * * * * * * * DtoArrayLen * * * * * * * * DtoArrayLen * * * * * * * VarExp::toElem: withThis @ ubyte[] * * * * * * * * DtoSymbolAddress ('withThis' of type 'ubyte[]') * * * * * * * * * function param * * * * * * * * * type: ubyte[] * * * * * * * static or dynamic array * * * * * * * comparing arrays * * * * * * * casting to dynamic arrays * * * * * * * DtoCastArray * * * * * * * * from array or sarray * * * * * * * * to array * * * * * * * * DtoArrayLen * * * * * * * * DtoArrayPtr * * * * * * * * isslice * * * * * * * DtoCastArray * * * * * * * * from array or sarray * * * * * * * * to array * * * * * * * * DtoArrayLen * * * * * * * * DtoArrayPtr * * * * * * * * isslice * * * * * * * DtoTypeInfoOf(type = 'ubyte[]', base='1') * * * * * * * * Type::getTypeInfo(): ubyte[] * * * * * * * * TypeInfoDeclaration::codegen(typeid(ubyte[])) * * * * * * return value is '0x12351ea0' * TemplateInstance::codegen: 'std.traits.isArray!(ubyte[])' * * VarDeclaration::codegen(): 'std.traits.isArray!(ubyte[]).isArray' * * * DtoResolveVariable(std.traits.isArray!(ubyte[]).isArray) * TemplateInstance::codegen: 'std.algorithm.searching.find!("a == b", string, string).find.force!(string, ubyte[])' * * DtoDefineFunction(std.algorithm.searching.find!("a == b", string, string).find.force!(string, ubyte[]).force): /usr/include/dlang/ldc/std/algorithm/searching.d(1571) * * * Doing function body for: force * * * DtoCreateNestedContext for force * * * * DtoCreateNestedContextType for std.algorithm.searching.find!("a == b", string, string).find.force!(string, ubyte[]).force * * * CompoundStatement::toIR(): * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/searching.d(1571) * * * * * CastExp::toElem: cast(string)r @ string * * * * * * VarExp::toElem: r @ ubyte[] * * * * * * * DtoSymbolAddress ('r' of type 'ubyte[]') * * * * * * * * function param * * * * * * * * type: ubyte[] * * * * * * Casting from 'ubyte[]' to 'string' * * * * * * * DtoCastArray * * * * * * * * from array or sarray * * * * * * * * to array * * * * * * * * DtoArrayLen * * * * * * * * DtoArrayPtr * * * * * * * * isslice * * * * * return value is '0x12353100' * TemplateInstance::codegen: 'std.array.appender!string' * TemplateInstance::codegen: 'std.array.Appender!string.Appender.canPutItem!string' * TemplateInstance::codegen: 'std.traits.isImplicitlyConvertible!(string, immutable(char))' * TemplateInstance::codegen: 'std.array.Appender!string.Appender.canPutConstRange!string' * TemplateInstance::codegen: 'std.array.Appender!string.Appender.canPutRange!string' * TemplateInstance::codegen: 'std.array.Appender!string.Appender.canPutItem!dchar' * TemplateInstance::codegen: 'std.traits.isImplicitlyConvertible!(dchar, immutable(char))' * TemplateInstance::codegen: 'std.traits.isSomeChar!dchar' * TemplateInstance::codegen: 'std.traits.CharTypeOf!dchar' * TemplateInstance::codegen: 'std.traits.isAggregateType!dchar' * TemplateInstance::codegen: 'std.traits.OriginalType!dchar' * * Ignoring Dsymbol::codegen for std.traits.OriginalType!dchar.Impl(T) * * Ignoring Dsymbol::codegen for std.traits.OriginalType!dchar.OriginalType * TemplateInstance::codegen: 'std.traits.ModifyTypePreservingSTC!(Impl, dchar)' * * Ignoring Dsymbol::codegen for std.traits.ModifyTypePreservingSTC!(Impl, dchar).ModifyTypePreservingSTC * TemplateInstance::codegen: 'std.traits.OriginalType!dchar.Modifier!dchar' * * Ignoring Dsymbol::codegen for std.traits.OriginalType!dchar.Modifier!dchar.Impl * TemplateInstance::codegen: 'std.traits.Unqual!dchar' * TemplateInstance::codegen: 'std.typetuple.staticIndexOf!(dchar, char, wchar, dchar)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(dchar, char, wchar, dchar)' * TemplateInstance::codegen: 'std.typetuple.isSame!(dchar, char)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(dchar, wchar, dchar)' * TemplateInstance::codegen: 'std.typetuple.isSame!(dchar, wchar)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(dchar, dchar)' * TemplateInstance::codegen: 'std.typetuple.isSame!(dchar, dchar)' * TemplateInstance::codegen: 'std.array.Appender!string.Appender.canPutConstRange!dchar' * TemplateInstance::codegen: 'std.range.primitives.isInputRange!dchar' * TemplateInstance::codegen: 'std.array.Appender!string.Appender.canPutRange!dchar' * TemplateInstance::codegen: 'std.array.Appender!string.Appender.put!dchar' * TemplateInstance::codegen: 'std.array.Appender!string.Appender.canPutItem!(char[])' * TemplateInstance::codegen: 'std.traits.isImplicitlyConvertible!(char[], immutable(char))' * TemplateInstance::codegen: 'std.traits.isSomeChar!(char[])' * TemplateInstance::codegen: 'std.typetuple.staticIndexOf!(char[], char, wchar, dchar)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(char[], char, wchar, dchar)' * TemplateInstance::codegen: 'std.typetuple.isSame!(char[], char)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(char[], wchar, dchar)' * TemplateInstance::codegen: 'std.typetuple.isSame!(char[], wchar)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(char[], dchar)' * TemplateInstance::codegen: 'std.typetuple.isSame!(char[], dchar)' * TemplateInstance::codegen: 'std.array.Appender!string.Appender.canPutConstRange!(char[])' * TemplateInstance::codegen: 'std.range.primitives.isInputRange!(char[])' * TemplateInstance::codegen: 'std.traits.isNarrowString!(char[])' * TemplateInstance::codegen: 'std.range.primitives.popFront!char' * TemplateInstance::codegen: 'std.range.primitives.front!char' * TemplateInstance::codegen: 'std.traits.isSomeString!(char[])' * * VarDeclaration::codegen(): 'std.traits.isSomeString!(char[]).isSomeString' * * * DtoResolveVariable(std.traits.isSomeString!(char[]).isSomeString) * TemplateInstance::codegen: 'std.traits.StringTypeOf!(char[])' * TemplateInstance::codegen: 'std.utf.decode!(char[])' * TemplateInstance::codegen: 'std.range.primitives.ElementEncodingType!(char[])' * TemplateInstance::codegen: 'std.utf.codeUnitLimit!(char[])' * TemplateInstance::codegen: 'std.utf.decodeImpl!(true, char[])' * TemplateInstance::codegen: 'std.utf.decodeImpl!(true, char[]).decodeImpl.exception!(char[])' * TemplateInstance::codegen: 'std.array.Appender!string.Appender.canPutRange!(char[])' * TemplateInstance::codegen: 'std.array.Appender!string.Appender.put!(char[])' * TemplateInstance::codegen: 'std.range.primitives.ElementType!(char[])' * TemplateInstance::codegen: 'std.array.blockAttribute!(immutable(char))' * TemplateInstance::codegen: 'std.traits.hasIndirections!(immutable(char))' * TemplateInstance::codegen: 'std.traits.isStaticArray!(immutable(char))' * TemplateInstance::codegen: 'std.traits.isFunctionPointer!(immutable(char))' * TemplateInstance::codegen: 'std.traits.isPointer!(immutable(char))' * TemplateInstance::codegen: 'std.traits.isDelegate!(immutable(char))' * TemplateInstance::codegen: 'std.traits.isDynamicArray!(immutable(char))' * TemplateInstance::codegen: 'std.traits.isAssociativeArray!(immutable(char))' * TemplateInstance::codegen: 'std.traits.hasElaborateAssign!char' * TemplateInstance::codegen: 'std.traits.isStaticArray!char' * * VarDeclaration::codegen(): 'std.traits.isStaticArray!char.isStaticArray' * * * DtoResolveVariable(std.traits.isStaticArray!char.isStaticArray) * TemplateInstance::codegen: 'std.traits.isAssignable!(char, char)' * TemplateInstance::codegen: 'std.traits.isRvalueAssignable!(char, char)' * TemplateInstance::codegen: 'std.traits.lvalueOf!char' * TemplateInstance::codegen: 'std.traits.rvalueOf!char' * TemplateInstance::codegen: 'std.traits.isLvalueAssignable!(char, char)' * TemplateInstance::codegen: 'std.array.Appender!string.Appender.put!string' * TemplateInstance::codegen: 'std.range.primitives.ElementType!string' * TemplateInstance::codegen: 'std.traits.isAssignable!(char, immutable(char))' * TemplateInstance::codegen: 'std.traits.isRvalueAssignable!(char, immutable(char))' * TemplateInstance::codegen: 'std.traits.rvalueOf!(immutable(char))' * TemplateInstance::codegen: 'std.traits.isLvalueAssignable!(char, immutable(char))' * TemplateInstance::codegen: 'std.traits.lvalueOf!(immutable(char))' * TemplateInstance::codegen: 'std.range.primitives.isOutputRange!(Appender!string, immutable(char))' * TemplateInstance::codegen: 'std.range.primitives.put!(Appender!string, immutable(char))' * TemplateInstance::codegen: 'std.range.primitives.doPut!(Appender!string, immutable(char))' * TemplateInstance::codegen: 'std.traits.hasMember!(Appender!string, "put")' * TemplateInstance::codegen: 'std.typetuple.staticIndexOf!("put", "core", "T", "Data", "_data", "__ctor", "reserve", "capacity", "data", "ensureAddable", "canPutItem", "canPutConstRange", "canPutRange", "put", "opOpAssign", "clear", "toString")' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("put", "core", "T", "Data", "_data", "__ctor", "reserve", "capacity", "data", "ensureAddable", "canPutItem", "canPutConstRange", "canPutRange", "put", "opOpAssign", "clear", "toString")' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("put", "T", "Data", "_data", "__ctor", "reserve", "capacity", "data", "ensureAddable", "canPutItem", "canPutConstRange", "canPutRange", "put", "opOpAssign", "clear", "toString")' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("put", "Data", "_data", "__ctor", "reserve", "capacity", "data", "ensureAddable", "canPutItem", "canPutConstRange", "canPutRange", "put", "opOpAssign", "clear", "toString")' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("put", "_data", "__ctor", "reserve", "capacity", "data", "ensureAddable", "canPutItem", "canPutConstRange", "canPutRange", "put", "opOpAssign", "clear", "toString")' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("put", "__ctor", "reserve", "capacity", "data", "ensureAddable", "canPutItem", "canPutConstRange", "canPutRange", "put", "opOpAssign", "clear", "toString")' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("put", "reserve", "capacity", "data", "ensureAddable", "canPutItem", "canPutConstRange", "canPutRange", "put", "opOpAssign", "clear", "toString")' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("put", "capacity", "data", "ensureAddable", "canPutItem", "canPutConstRange", "canPutRange", "put", "opOpAssign", "clear", "toString")' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("put", "data", "ensureAddable", "canPutItem", "canPutConstRange", "canPutRange", "put", "opOpAssign", "clear", "toString")' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("put", "ensureAddable", "canPutItem", "canPutConstRange", "canPutRange", "put", "opOpAssign", "clear", "toString")' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("put", "canPutItem", "canPutConstRange", "canPutRange", "put", "opOpAssign", "clear", "toString")' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("put", "canPutConstRange", "canPutRange", "put", "opOpAssign", "clear", "toString")' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("put", "canPutRange", "put", "opOpAssign", "clear", "toString")' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("put", "put", "opOpAssign", "clear", "toString")' * TemplateInstance::codegen: 'std.traits.Identity!(put)' * TemplateInstance::codegen: 'std.array.Appender!string.Appender.canPutItem!(immutable(char))' * TemplateInstance::codegen: 'std.traits.isImplicitlyConvertible!(immutable(char), immutable(char))' * TemplateInstance::codegen: 'std.array.Appender!string.Appender.canPutConstRange!(immutable(char))' * TemplateInstance::codegen: 'std.range.primitives.isInputRange!char' * TemplateInstance::codegen: 'std.range.primitives.isInputRange!(immutable(char))' * TemplateInstance::codegen: 'std.array.Appender!string.Appender.canPutRange!(immutable(char))' * TemplateInstance::codegen: 'std.array.Appender!string.Appender.put!(immutable(char))' * TemplateInstance::codegen: 'std.conv.emplaceRef!(char, char)' * TemplateInstance::codegen: 'std.conv.emplaceImpl!char' * * Ignoring Dsymbol::codegen for std.conv.emplaceImpl!char.UT * * Ignoring Dsymbol::codegen for std.conv.emplaceImpl!char.emplaceImpl()(ref UT chunk) * * Ignoring Dsymbol::codegen for std.conv.emplaceImpl!char.emplaceImpl(Arg)(ref UT chunk, auto ref Arg arg) * TemplateInstance::codegen: 'std.conv.emplaceImpl!char.emplaceImpl!char' * TemplateInstance::codegen: 'std.array.replaceInto!(immutable(char), Appender!string, string, string)' * TemplateInstance::codegen: 'std.conv.isRawStaticArray!ulong' * TemplateInstance::codegen: 'std.conv.to!string.to!(ulong)' * TemplateInstance::codegen: 'std.traits.isImplicitlyConvertible!(ulong, string)' * TemplateInstance::codegen: 'std.range.primitives.isInfinite!ulong' * TemplateInstance::codegen: 'std.range.primitives.isInputRange!ulong' * TemplateInstance::codegen: 'std.traits.isSomeString!ulong' * TemplateInstance::codegen: 'std.conv.isExactSomeString!ulong' * TemplateInstance::codegen: 'std.conv.toImpl!(string, ulong)' * TemplateInstance::codegen: 'std.conv.toImpl!(string, ulong)' * TemplateInstance::codegen: 'std.conv.toImpl!(string, ulong).toImpl.toStringRadixConvert!(25LU, 10u, true)' * TemplateInstance::codegen: 'std.conv.unsigned!ulong' * * DtoDefineFunction(std.conv.unsigned!ulong.unsigned): /usr/include/dlang/ldc/std/conv.d(5165) * * * DtoFunctionType(pure nothrow @nogc @safe ulong(ulong x)) * * * * x86-64 ABI: Transforming return type * * * * x86-64 ABI: Transforming argument types * * * * Final function type: i64 (i64) * * * DtoResolveFunction(std.conv.unsigned!ulong.unsigned): /usr/include/dlang/ldc/std/conv.d(5165) * * * * DtoDeclareFunction(std.conv.unsigned!ulong.unsigned): /usr/include/dlang/ldc/std/conv.d(5165) * * * * * DtoFunctionType(pure nothrow @nogc @safe ulong(ulong x)) * * * * * func = declare i64 @_D3std4conv15__T8unsignedTmZ8unsignedFNaNbNiNfmZm(i64) * * * Doing function body for: unsigned * * * DtoCreateNestedContext for unsigned * * * * DtoCreateNestedContextType for std.conv.unsigned!ulong.unsigned * * * CompoundStatement::toIR(): * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(5167) * * * * * VarExp::toElem: x @ ulong * * * * * * DtoSymbolAddress ('x' of type 'ulong') * * * * * * * function param * * * * * * * type: ulong * * * * * return value is '0x1235e7f8' * TemplateInstance::codegen: 'std.traits.Unsigned!ulong' * * Ignoring Dsymbol::codegen for std.traits.Unsigned!ulong.Impl(T) * * Ignoring Dsymbol::codegen for std.traits.Unsigned!ulong.Unsigned * TemplateInstance::codegen: 'std.traits.ModifyTypePreservingSTC!(Impl, ulong)' * * Ignoring Dsymbol::codegen for std.traits.ModifyTypePreservingSTC!(Impl, ulong).ModifyTypePreservingSTC * TemplateInstance::codegen: 'std.traits.Unsigned!ulong.Modifier!ulong' * * Ignoring Dsymbol::codegen for std.traits.Unsigned!ulong.Modifier!ulong.Impl * TemplateInstance::codegen: 'std.conv.toImpl!(string, ulong).toImpl.toStringRadixConvert!(24LU, 10u, false)' * TemplateInstance::codegen: 'std.conv.toImpl!(string, ulong).toImpl.toStringRadixConvert!(16LU, 16u, false)' * TemplateInstance::codegen: 'std.conv.toImpl!(string, ulong).toImpl.toStringRadixConvert!(64LU, 2u, false)' * TemplateInstance::codegen: 'std.conv.toImpl!(string, ulong).toImpl.toStringRadixConvert!(24LU, 8u, false)' * TemplateInstance::codegen: 'std.conv.toImpl!(string, ulong).toImpl.toStringRadixConvert!(48LU, 0u, false)' * TemplateInstance::codegen: 'core.bitop.ctlz!ulong' * TemplateInstance::codegen: 'std.uni.CowArray!(GcPolicy).CowArray.opIndex!()' * TemplateInstance::codegen: 'object.RTInfo!(CodepointRange)' * TemplateInstance::codegen: 'std.uni.CowArray!(GcPolicy).CowArray.opEquals!()' * TypeInfoDeclaration::codegen(typeid(const(Intervals!(CowArray!(GcPolicy))))) * * type = 'const(Intervals!(CowArray!(GcPolicy)))' * * typeinfo mangle: _D153TypeInfo_xS3std3uni38__T13InversionListTS3std3uni8GcPolicyZ13InversionList67__T9IntervalsTS3std3uni32__T8CowArrayTS3std3uni8GcPolicyZ8CowArrayZ9Intervals6__initZ * * Building type: Intervals!(CowArray!(GcPolicy)) * * * Building struct type std.uni.InversionList!(GcPolicy).InversionList.Intervals!(CowArray!(GcPolicy)).Intervals @ /usr/include/dlang/ldc/std/uni.d(2654) * * * * adding default initializer for struct field start * * * * adding default initializer for struct field end * * * * adding default initializer for struct field slice * * * * Building type: CowArray!(GcPolicy) * * * * * Building struct type std.uni.CowArray!(GcPolicy).CowArray @ /usr/include/dlang/ldc/std/uni.d(3110) * * * * * * adding default initializer for struct field data * * * * * * final struct type: %"std.uni.CowArray!(GcPolicy).CowArray" = type { { i64, i32* } } * * * * final struct type: %"std.uni.InversionList!(GcPolicy).InversionList.Intervals!(CowArray!(GcPolicy)).Intervals" = type { i64, i64, %"std.uni.CowArray!(GcPolicy).CowArray" } * * TypeInfoConstDeclaration::llvmDefine() typeid(const(Intervals!(CowArray!(GcPolicy)))) * * * DtoTypeInfoOf(type = 'Intervals!(CowArray!(GcPolicy))', base='1') * * * * Type::getTypeInfo(): Intervals!(CowArray!(GcPolicy)) * * * * * TypeInfoDeclaration::codegen(typeid(Intervals!(CowArray!(GcPolicy)))) * * * * * * type = 'Intervals!(CowArray!(GcPolicy))' * * * * * * typeinfo mangle: _D152TypeInfo_S3std3uni38__T13InversionListTS3std3uni8GcPolicyZ13InversionList67__T9IntervalsTS3std3uni32__T8CowArrayTS3std3uni8GcPolicyZ8CowArrayZ9Intervals6__initZ * * * * * * TypeInfoStructDeclaration::llvmDefine() typeid(Intervals!(CowArray!(GcPolicy))) * * * * * * * Resolving struct type: Intervals (/usr/include/dlang/ldc/std/uni.d(2654)) * * * * * * * DtoFunctionType(nothrow @trusted ulong(ref const(Intervals!(CowArray!(GcPolicy))) p)) * * * * * * * * Building type: const(Intervals!(CowArray!(GcPolicy)))* * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * Final function type: i64 (%"std.uni.InversionList!(GcPolicy).InversionList.Intervals!(CowArray!(GcPolicy)).Intervals"*) * * * * * * * DtoResolveFunction(std.uni.InversionList!(GcPolicy).InversionList.Intervals!(CowArray!(GcPolicy)).Intervals.__xtoHash): * * * * * * * * DtoDeclareFunction(std.uni.InversionList!(GcPolicy).InversionList.Intervals!(CowArray!(GcPolicy)).Intervals.__xtoHash): * * * * * * * * * DtoFunctionType(nothrow @trusted ulong(ref const(Intervals!(CowArray!(GcPolicy))) p)) * * * * * * * * * func = declare i64 @_D3std3uni38__T13InversionListTS3std3uni8GcPolicyZ13InversionList67__T9IntervalsTS3std3uni32__T8CowArrayTS3std3uni8GcPolicyZ8CowArrayZ9Intervals9__xtoHashFNbNeKxS3std3uni38__T13InversionListTS3std3uni8GcPolicyZ13InversionList67__T9IntervalsTS3std3uni32__T8CowArrayTS3std3uni8GcPolicyZ8CowArrayZ9IntervalsZm(%"std.uni.InversionList!(GcPolicy).InversionList.Intervals!(CowArray!(GcPolicy)).Intervals"*) * * * * * * * DtoFunctionType(bool(ref const(Intervals!(CowArray!(GcPolicy))) p, ref const(Intervals!(CowArray!(GcPolicy))) q)) * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * Final function type: i1 (%"std.uni.InversionList!(GcPolicy).InversionList.Intervals!(CowArray!(GcPolicy)).Intervals"*, %"std.uni.InversionList!(GcPolicy).InversionList.Intervals!(CowArray!(GcPolicy)).Intervals"*) * * * * * * * DtoResolveFunction(std.uni.InversionList!(GcPolicy).InversionList.Intervals!(CowArray!(GcPolicy)).Intervals.__xopEquals): * * * * * * * * DtoDeclareFunction(std.uni.InversionList!(GcPolicy).InversionList.Intervals!(CowArray!(GcPolicy)).Intervals.__xopEquals): * * * * * * * * * DtoFunctionType(bool(ref const(Intervals!(CowArray!(GcPolicy))) p, ref const(Intervals!(CowArray!(GcPolicy))) q)) * * * * * * * * * func = declare i1 @_D3std3uni38__T13InversionListTS3std3uni8GcPolicyZ13InversionList67__T9IntervalsTS3std3uni32__T8CowArrayTS3std3uni8GcPolicyZ8CowArrayZ9Intervals11__xopEqualsFKxS3std3uni38__T13InversionListTS3std3uni8GcPolicyZ13InversionList67__T9IntervalsTS3std3uni32__T8CowArrayTS3std3uni8GcPolicyZ8CowArrayZ9IntervalsKxS3std3uni38__T13InversionListTS3std3uni8GcPolicyZ13InversionList67__T9IntervalsTS3std3uni32__T8CowArrayTS3std3uni8GcPolicyZ8CowArrayZ9IntervalsZb(%"std.uni.InversionList!(GcPolicy).InversionList.Intervals!(CowArray!(GcPolicy)).Intervals"*, %"std.uni.InversionList!(GcPolicy).InversionList.Intervals!(CowArray!(GcPolicy)).Intervals"*) * * * * * * * isMember = this is: Intervals!(CowArray!(GcPolicy)) * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted void()) * * * * * * * * Building type: Intervals!(CowArray!(GcPolicy))* * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * Final function type: void (%"std.uni.InversionList!(GcPolicy).InversionList.Intervals!(CowArray!(GcPolicy)).Intervals"*) * * * * * * * DtoResolveFunction(std.uni.InversionList!(GcPolicy).InversionList.Intervals!(CowArray!(GcPolicy)).Intervals.~this): /usr/include/dlang/ldc/std/uni.d(2654) * * * * * * * * DtoDeclareFunction(std.uni.InversionList!(GcPolicy).InversionList.Intervals!(CowArray!(GcPolicy)).Intervals.~this): /usr/include/dlang/ldc/std/uni.d(2654) * * * * * * * * * isMember = this is: Intervals!(CowArray!(GcPolicy)) * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted void()) * * * * * * * * * func = declare void @_D3std3uni38__T13InversionListTS3std3uni8GcPolicyZ13InversionList67__T9IntervalsTS3std3uni32__T8CowArrayTS3std3uni8GcPolicyZ8CowArrayZ9Intervals11__fieldDtorMFNaNbNiNeZv(%"std.uni.InversionList!(GcPolicy).InversionList.Intervals!(CowArray!(GcPolicy)).Intervals"*) * * * * * * * isMember = this is: Intervals!(CowArray!(GcPolicy)) * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted void()) * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * Final function type: void (%"std.uni.InversionList!(GcPolicy).InversionList.Intervals!(CowArray!(GcPolicy)).Intervals"*) * * * * * * * DtoResolveFunction(std.uni.InversionList!(GcPolicy).InversionList.Intervals!(CowArray!(GcPolicy)).Intervals.__fieldPostBlit): /usr/include/dlang/ldc/std/uni.d(2654) * * * * * * * * DtoDeclareFunction(std.uni.InversionList!(GcPolicy).InversionList.Intervals!(CowArray!(GcPolicy)).Intervals.__fieldPostBlit): /usr/include/dlang/ldc/std/uni.d(2654) * * * * * * * * * isMember = this is: Intervals!(CowArray!(GcPolicy)) * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted void()) * * * * * * * * * func = declare void @_D3std3uni38__T13InversionListTS3std3uni8GcPolicyZ13InversionList67__T9IntervalsTS3std3uni32__T8CowArrayTS3std3uni8GcPolicyZ8CowArrayZ9Intervals15__fieldPostBlitMFNaNbNiNeZv(%"std.uni.InversionList!(GcPolicy).InversionList.Intervals!(CowArray!(GcPolicy)).Intervals"*) * * * * * * * IntegerExp::toConstElem: cast(void*)305419896LU @ void* * * * * * * * * pointer * * * * TypeInfoDeclaration::codegen(typeid(Intervals!(CowArray!(GcPolicy)))) * TemplateInstance::codegen: 'std.range.primitives.put!(void delegate(const(char)[]), string)' * TemplateInstance::codegen: 'std.range.primitives.doPut!(void delegate(const(char)[]), string)' * TemplateInstance::codegen: 'std.traits.hasMember!(void delegate(const(char)[]), "put")' * TemplateInstance::codegen: 'std.range.primitives.isInputRange!(void delegate(const(char)[]))' * TemplateInstance::codegen: 'std.format.hasToString!(uint, char)' * TemplateInstance::codegen: 'std.traits.isPointer!uint' * TemplateInstance::codegen: 'std.typetuple.staticIndexOf!(uint, float, double, real)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(uint, float, double, real)' * TemplateInstance::codegen: 'std.typetuple.isSame!(uint, float)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(uint, double, real)' * TemplateInstance::codegen: 'std.typetuple.isSame!(uint, double)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(uint, real)' * TemplateInstance::codegen: 'std.typetuple.isSame!(uint, real)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!uint' * TemplateInstance::codegen: 'std.typetuple.staticIndexOf!(uint, char, wchar, dchar)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(uint, char, wchar, dchar)' * TemplateInstance::codegen: 'std.typetuple.isSame!(uint, char)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(uint, wchar, dchar)' * TemplateInstance::codegen: 'std.typetuple.isSame!(uint, wchar)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(uint, dchar)' * TemplateInstance::codegen: 'std.typetuple.isSame!(uint, dchar)' * TemplateInstance::codegen: 'std.traits.isDelegate!uint' * TemplateInstance::codegen: 'std.format.formatValue!(void delegate(const(char)[]), uint, char)' * TemplateInstance::codegen: 'std.format.formatValue!(void delegate(const(char)[]), uint, char).formatValue.__lambda4!uint' * TemplateInstance::codegen: 'std.range.primitives.put!(void delegate(const(char)[]), const(char))' * TemplateInstance::codegen: 'std.traits.isDynamicArray!(void delegate(const(char)[]))' * TemplateInstance::codegen: 'std.traits.isAggregateType!(void delegate(const(char)[]))' * TemplateInstance::codegen: 'std.traits.OriginalType!(void delegate(const(char)[]))' * TemplateInstance::codegen: 'std.traits.ModifyTypePreservingSTC!(Impl, void delegate(const(char)[]))' * TemplateInstance::codegen: 'std.traits.OriginalType!(void delegate(const(char)[])).Modifier!(void delegate(const(char)[]))' * TemplateInstance::codegen: 'std.traits.Unqual!(void delegate(const(char)[]))' * TemplateInstance::codegen: 'std.range.primitives.doPut!(void delegate(const(char)[]), const(char)[])' * TemplateInstance::codegen: 'std.range.primitives.put!(void delegate(const(char)[]), const(char)).put.__lambda3!(const(char))' * TemplateInstance::codegen: 'std.exception.enforceEx!(FormatException).enforceEx!bool' * TemplateInstance::codegen: 'std.traits.isSigned!uint' * TemplateInstance::codegen: 'std.typetuple.staticIndexOf!(uint, byte, short, int, long)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(uint, byte, short, int, long)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(uint, short, int, long)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(uint, int, long)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(uint, long)' * TemplateInstance::codegen: 'std.typetuple.isSame!(uint, long)' * TemplateInstance::codegen: 'std.traits.Unsigned!uint' * TemplateInstance::codegen: 'std.traits.ModifyTypePreservingSTC!(Impl, uint)' * TemplateInstance::codegen: 'std.traits.Unsigned!uint.Modifier!uint' * TemplateInstance::codegen: 'std.traits.isUnsigned!uint' * TemplateInstance::codegen: 'std.traits.UnsignedTypeOf!uint' * TemplateInstance::codegen: 'std.typetuple.staticIndexOf!(uint, ubyte, ushort, uint, ulong)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(uint, ubyte, ushort, uint, ulong)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(uint, ushort, uint, ulong)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(uint, uint, ulong)' * TemplateInstance::codegen: 'std.format.formatIntegral!(void delegate(const(char)[]), ulong, char)' * TemplateInstance::codegen: 'std.format.formatUnsigned!(void delegate(const(char)[]), ulong, char)' * TemplateInstance::codegen: 'std.range.primitives.put!(void delegate(const(char)[]), char)' * TemplateInstance::codegen: 'std.range.primitives.doPut!(void delegate(const(char)[]), char[])' * TemplateInstance::codegen: 'std.range.primitives.put!(void delegate(const(char)[]), char).put.__lambda3!char' * TemplateInstance::codegen: 'std.range.primitives.put!(void delegate(const(char)[]), char[])' * TemplateInstance::codegen: 'std.range.primitives.doPut!(void delegate(const(char)[]), char[])' * TemplateInstance::codegen: 'std.range.assumeSorted!("a < b", uint[])' * TemplateInstance::codegen: 'std.range.SortedRange!(uint[], "a < b")' * TemplateInstance::codegen: 'std.functional.binaryFun!("a < b", "a", "b")' * TemplateInstance::codegen: 'std.algorithm.mutation.move!(uint[])' * TemplateInstance::codegen: 'std.traits.hasAliasing!(uint[])' * TemplateInstance::codegen: 'std.traits.hasRawAliasing!(uint[])' * TemplateInstance::codegen: 'std.traits.RepresentationTypeTuple!(uint[])' * TemplateInstance::codegen: 'std.traits.RepresentationTypeTuple!(uint[]).Impl!(uint[])' * TemplateInstance::codegen: 'std.traits.RepresentationTypeTuple!(uint[]).Impl!()' * TemplateInstance::codegen: 'std.typetuple.TypeTuple!(uint[])' * TemplateInstance::codegen: 'std.traits.hasRawAliasing!(uint[]).Impl!(uint[])' * TemplateInstance::codegen: 'std.traits.hasRawAliasing!(uint[]).Impl!()' * TemplateInstance::codegen: 'std.traits.hasObjects!(uint[])' * TemplateInstance::codegen: 'std.traits.hasObjects!()' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(isAliasingDelegate, uint[], uint[])' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(isAliasingDelegate, uint[])' * TemplateInstance::codegen: 'std.traits.hasAliasing!(uint[]).F!(uint[])' * TemplateInstance::codegen: 'std.traits.isDelegate!(uint[])' * TemplateInstance::codegen: 'std.traits.isCallable!(uint[])' * TemplateInstance::codegen: 'std.traits.isSomeFunction!(uint[])' * TemplateInstance::codegen: 'std.exception.doesPointTo!(uint[], uint[], void)' * TemplateInstance::codegen: 'std.traits.isPointer!(uint[])' * TemplateInstance::codegen: 'std.array.overlap!void' * TemplateInstance::codegen: 'object.RTInfo!(SortedRange!(uint[], "a < b"))' * TemplateInstance::codegen: 'std.range.isTwoWayCompatible!(binaryFun, uint, int)' * TemplateInstance::codegen: 'std.functional.binaryFun!("a < b", "a", "b").binaryFun!(uint, int)' * TemplateInstance::codegen: 'std.functional.binaryFun!("a < b", "a", "b").binaryFun!(int, uint)' * TemplateInstance::codegen: 'std.range.SortedRange!(uint[], "a < b").SortedRange.lowerBound!(cast(SearchPolicy)2, int)' * TemplateInstance::codegen: 'std.range.SortedRange!(uint[], "a < b").SortedRange.getTransitionIndex!(cast(SearchPolicy)2, geq, int)' * TemplateInstance::codegen: 'std.range.SortedRange!(uint[], "a < b").SortedRange.geq!(uint, int)' * TemplateInstance::codegen: 'std.functional.binaryFun!("a < b", "a", "b").binaryFun!(uint, int)' * TemplateInstance::codegen: 'std.range.SortedRange!(uint[], "a < b").SortedRange.getTransitionIndex!(cast(SearchPolicy)3, geq, int)' * TemplateInstance::codegen: 'std.uni.CowArray!(GcPolicy).CowArray.append!()' * TemplateInstance::codegen: 'std.uni.GcPolicy.realloc!uint' * TemplateInstance::codegen: 'std.uni.genericReplace!(void, CowArray!(GcPolicy), uint[])' * TemplateInstance::codegen: 'std.uni.copyBackwards!(uint, uint)' * TemplateInstance::codegen: 'std.uni.copyForward!(uint, uint)' * TemplateInstance::codegen: 'std.uni.genericReplace!(void, CowArray!(GcPolicy), int[])' * TemplateInstance::codegen: 'std.uni.copyForward!(int, uint)' * TemplateInstance::codegen: 'std.range.primitives.isInputRange!(int[])' * TemplateInstance::codegen: 'std.range.primitives.empty!int' * TemplateInstance::codegen: 'std.traits.isNarrowString!(int[])' * TemplateInstance::codegen: 'std.traits.isAggregateType!(int[])' * TemplateInstance::codegen: 'std.traits.isStaticArray!(int[])' * TemplateInstance::codegen: 'std.traits.OriginalType!(int[])' * TemplateInstance::codegen: 'std.traits.ModifyTypePreservingSTC!(Impl, int[])' * TemplateInstance::codegen: 'std.traits.OriginalType!(int[]).Modifier!(int[])' * TemplateInstance::codegen: 'std.range.primitives.popFront!int' * TemplateInstance::codegen: 'std.range.primitives.front!int' * TemplateInstance::codegen: 'std.range.primitives.ElementType!(int[])' * TemplateInstance::codegen: 'std.range.primitives.isOutputRange!(uint[], int)' * TemplateInstance::codegen: 'std.range.primitives.put!(uint[], int)' * TemplateInstance::codegen: 'std.range.primitives.doPut!(uint[], int)' * TemplateInstance::codegen: 'std.algorithm.mutation.copy!(int[], uint[])' * TemplateInstance::codegen: 'std.range.primitives.isRandomAccessRange!(int[])' * TemplateInstance::codegen: 'std.range.primitives.isBidirectionalRange!(int[])' * TemplateInstance::codegen: 'std.range.primitives.isForwardRange!(int[])' * TemplateInstance::codegen: 'std.range.primitives.save!int' * TemplateInstance::codegen: 'std.range.primitives.popBack!int' * TemplateInstance::codegen: 'std.range.primitives.back!int' * TemplateInstance::codegen: 'std.range.primitives.hasLength!(int[])' * TemplateInstance::codegen: 'std.range.primitives.isInfinite!(int[])' * TemplateInstance::codegen: 'std.traits.isArray!(int[])' * TemplateInstance::codegen: 'std.traits.isDynamicArray!(int[])' * TemplateInstance::codegen: 'std.traits.DynamicArrayTypeOf!(int[])' * TemplateInstance::codegen: 'std.traits.Unqual!(int[])' * TemplateInstance::codegen: 'std.format.format!(char, string)' * TemplateInstance::codegen: 'std.format.formattedWrite!(Appender!string, char, string)' * TemplateInstance::codegen: 'std.format.formatGeneric!(Appender!string, string, char)' * TemplateInstance::codegen: 'std.format.hasToString!(string, char)' * TemplateInstance::codegen: 'std.traits.isDelegate!string' * TemplateInstance::codegen: 'std.format.formatValue!(Appender!string, string, char)' * TemplateInstance::codegen: 'std.format.formatRange!(Appender!string, string, char)' * TemplateInstance::codegen: 'std.range.primitives.put!(Appender!string, char)' * TemplateInstance::codegen: 'std.range.primitives.doPut!(Appender!string, char)' * TemplateInstance::codegen: 'std.array.Appender!string.Appender.canPutItem!char' * TemplateInstance::codegen: 'std.traits.isImplicitlyConvertible!(char, immutable(char))' * TemplateInstance::codegen: 'std.array.Appender!string.Appender.canPutConstRange!char' * TemplateInstance::codegen: 'std.array.Appender!string.Appender.canPutRange!char' * TemplateInstance::codegen: 'std.array.Appender!string.Appender.put!char' * TemplateInstance::codegen: 'std.conv.emplaceRef!(char, char)' * TemplateInstance::codegen: 'std.range.primitives.put!(Appender!string, string)' * TemplateInstance::codegen: 'std.range.primitives.doPut!(Appender!string, string)' * TemplateInstance::codegen: 'std.typetuple.staticIndexOf!(char, byte, ubyte, short, ushort, int, uint, long, ulong)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(char, byte, ubyte, short, ushort, int, uint, long, ulong)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(char, ubyte, short, ushort, int, uint, long, ulong)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(char, short, ushort, int, uint, long, ulong)' * TemplateInstance::codegen: 'std.typetuple.isSame!(char, short)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(char, ushort, int, uint, long, ulong)' * TemplateInstance::codegen: 'std.typetuple.isSame!(char, ushort)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(char, int, uint, long, ulong)' * TemplateInstance::codegen: 'std.typetuple.isSame!(char, int)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(char, uint, long, ulong)' * TemplateInstance::codegen: 'std.typetuple.isSame!(char, uint)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(char, long, ulong)' * TemplateInstance::codegen: 'std.typetuple.isSame!(char, long)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(char, ulong)' * TemplateInstance::codegen: 'std.typetuple.isSame!(char, ulong)' * TemplateInstance::codegen: 'std.typetuple.staticIndexOf!(char, float, double, real)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(char, float, double, real)' * TemplateInstance::codegen: 'std.typetuple.isSame!(char, float)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(char, double, real)' * TemplateInstance::codegen: 'std.typetuple.isSame!(char, double)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(char, real)' * TemplateInstance::codegen: 'std.typetuple.isSame!(char, real)' * TemplateInstance::codegen: 'std.format.hasToString!(immutable(char), char)' * TemplateInstance::codegen: 'std.format.formatValue!(Appender!string, immutable(char), char)' * TemplateInstance::codegen: 'std.typetuple.TypeTuple!(ubyte, ushort, uint)' * TemplateInstance::codegen: 'std.traits.IntegralTypeOf!ubyte' * TemplateInstance::codegen: 'std.typetuple.staticIndexOf!(ubyte, byte, ubyte, short, ushort, int, uint, long, ulong)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(ubyte, byte, ubyte, short, ushort, int, uint, long, ulong)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(ubyte, ubyte, short, ushort, int, uint, long, ulong)' * TemplateInstance::codegen: 'std.format.hasToString!(ubyte, char)' * TemplateInstance::codegen: 'std.typetuple.staticIndexOf!(ubyte, float, double, real)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(ubyte, float, double, real)' * TemplateInstance::codegen: 'std.typetuple.isSame!(ubyte, float)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(ubyte, double, real)' * TemplateInstance::codegen: 'std.typetuple.isSame!(ubyte, double)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(ubyte, real)' * TemplateInstance::codegen: 'std.typetuple.isSame!(ubyte, real)' * TemplateInstance::codegen: 'std.format.formatValue!(Appender!string, ubyte, char)' * TemplateInstance::codegen: 'std.format.formatValue!(Appender!string, ubyte, char).formatValue.__lambda4!ubyte' * TemplateInstance::codegen: 'std.range.primitives.put!(Appender!string, const(char))' * TemplateInstance::codegen: 'std.range.primitives.doPut!(Appender!string, const(char))' * TemplateInstance::codegen: 'std.array.Appender!string.Appender.canPutItem!(const(char))' * TemplateInstance::codegen: 'std.traits.isImplicitlyConvertible!(const(char), immutable(char))' * TemplateInstance::codegen: 'std.traits.isSomeChar!(const(char))' * TemplateInstance::codegen: 'std.traits.CharTypeOf!(const(char))' * * Ignoring Dsymbol::codegen for std.traits.CharTypeOf!(const(char)).X * * Ignoring Dsymbol::codegen for std.traits.CharTypeOf!(const(char)).CharTypeOf * TemplateInstance::codegen: 'std.traits.isAggregateType!(const(char))' * TemplateInstance::codegen: 'std.traits.OriginalType!(const(char))' * * Ignoring Dsymbol::codegen for std.traits.OriginalType!(const(char)).Impl(T) * * Ignoring Dsymbol::codegen for std.traits.OriginalType!(const(char)).OriginalType * TemplateInstance::codegen: 'std.traits.ModifyTypePreservingSTC!(Impl, const(char))' * * Ignoring Dsymbol::codegen for std.traits.ModifyTypePreservingSTC!(Impl, const(char)).ModifyTypePreservingSTC * TemplateInstance::codegen: 'std.traits.OriginalType!(const(char)).Modifier!char' * * Ignoring Dsymbol::codegen for std.traits.OriginalType!(const(char)).Modifier!char.Impl * TemplateInstance::codegen: 'std.traits.Unqual!(const(char))' * TemplateInstance::codegen: 'std.array.Appender!string.Appender.canPutConstRange!(const(char))' * TemplateInstance::codegen: 'std.range.primitives.isInputRange!(const(char))' * TemplateInstance::codegen: 'std.array.Appender!string.Appender.canPutRange!(const(char))' * TemplateInstance::codegen: 'std.array.Appender!string.Appender.put!(const(char))' * TemplateInstance::codegen: 'std.traits.isSigned!ubyte' * TemplateInstance::codegen: 'std.typetuple.staticIndexOf!(ubyte, byte, short, int, long)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(ubyte, byte, short, int, long)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(ubyte, short, int, long)' * TemplateInstance::codegen: 'std.typetuple.isSame!(ubyte, short)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(ubyte, int, long)' * TemplateInstance::codegen: 'std.typetuple.isSame!(ubyte, int)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(ubyte, long)' * TemplateInstance::codegen: 'std.typetuple.isSame!(ubyte, long)' * TemplateInstance::codegen: 'std.traits.Unsigned!ubyte' * TemplateInstance::codegen: 'std.traits.ModifyTypePreservingSTC!(Impl, ubyte)' * TemplateInstance::codegen: 'std.traits.Unsigned!ubyte.Modifier!ubyte' * TemplateInstance::codegen: 'std.traits.isUnsigned!ubyte' * TemplateInstance::codegen: 'std.traits.UnsignedTypeOf!ubyte' * TemplateInstance::codegen: 'std.typetuple.staticIndexOf!(ubyte, ubyte, ushort, uint, ulong)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(ubyte, ubyte, ushort, uint, ulong)' * TemplateInstance::codegen: 'std.format.formatIntegral!(Appender!string, ulong, char)' * TemplateInstance::codegen: 'std.format.formatUnsigned!(Appender!string, ulong, char)' * TemplateInstance::codegen: 'std.range.primitives.put!(Appender!string, char[])' * TemplateInstance::codegen: 'std.range.primitives.doPut!(Appender!string, char[])' * TemplateInstance::codegen: 'std.format.FormatSpec!char.FormatSpec.writeUpToNextSpec!(Appender!string)' * TemplateInstance::codegen: 'std.range.primitives.put!(Appender!string, const(char)[])' * TemplateInstance::codegen: 'std.range.primitives.doPut!(Appender!string, const(char)[])' * TemplateInstance::codegen: 'std.array.Appender!string.Appender.canPutItem!(const(char)[])' * TemplateInstance::codegen: 'std.traits.isImplicitlyConvertible!(const(char)[], immutable(char))' * TemplateInstance::codegen: 'std.traits.isSomeChar!(const(char)[])' * TemplateInstance::codegen: 'std.traits.isAggregateType!(const(char)[])' * * VarDeclaration::codegen(): 'std.traits.isAggregateType!(const(char)[]).isAggregateType' * * * DtoResolveVariable(std.traits.isAggregateType!(const(char)[]).isAggregateType) * TemplateInstance::codegen: 'std.traits.OriginalType!(const(char)[])' * TemplateInstance::codegen: 'std.traits.ModifyTypePreservingSTC!(Impl, const(char)[])' * TemplateInstance::codegen: 'std.traits.OriginalType!(const(char)[]).Modifier!(const(char)[])' * TemplateInstance::codegen: 'std.traits.Unqual!(const(char)[])' * TemplateInstance::codegen: 'std.typetuple.staticIndexOf!(const(char)[], char, wchar, dchar)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(const(char)[], char, wchar, dchar)' * TemplateInstance::codegen: 'std.typetuple.Alias!(const(char)[])' * TemplateInstance::codegen: 'std.typetuple.isSame!(const(char)[], char)' * TemplateInstance::codegen: 'std.typetuple.expectType!(const(char)[])' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(const(char)[], wchar, dchar)' * TemplateInstance::codegen: 'std.typetuple.isSame!(const(char)[], wchar)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(const(char)[], dchar)' * TemplateInstance::codegen: 'std.typetuple.isSame!(const(char)[], dchar)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(const(char)[])' * TemplateInstance::codegen: 'std.array.Appender!string.Appender.canPutConstRange!(const(char)[])' * TemplateInstance::codegen: 'std.range.primitives.isInputRange!(const(char)[])' * TemplateInstance::codegen: 'std.traits.isNarrowString!(const(char)[])' * TemplateInstance::codegen: 'std.traits.isStaticArray!(const(char)[])' * * VarDeclaration::codegen(): 'std.traits.isStaticArray!(const(char)[]).isStaticArray' * * * DtoResolveVariable(std.traits.isStaticArray!(const(char)[]).isStaticArray) * TemplateInstance::codegen: 'std.range.primitives.popFront!(const(char))' * TemplateInstance::codegen: 'std.range.primitives.front!(const(char))' * TemplateInstance::codegen: 'std.traits.isSomeString!(const(char)[])' * * VarDeclaration::codegen(): 'std.traits.isSomeString!(const(char)[]).isSomeString' * * * DtoResolveVariable(std.traits.isSomeString!(const(char)[]).isSomeString) * TemplateInstance::codegen: 'std.traits.StringTypeOf!(const(char)[])' * TemplateInstance::codegen: 'std.utf.decode!(const(char)[])' * TemplateInstance::codegen: 'std.range.primitives.ElementEncodingType!(const(char)[])' * TemplateInstance::codegen: 'std.utf.codeUnitLimit!(const(char)[])' * TemplateInstance::codegen: 'std.utf.decodeImpl!(true, const(char)[])' * TemplateInstance::codegen: 'std.utf.decodeImpl!(true, const(char)[]).decodeImpl.exception!(const(char)[])' * TemplateInstance::codegen: 'std.array.Appender!string.Appender.canPutRange!(const(char)[])' * TemplateInstance::codegen: 'std.array.Appender!string.Appender.put!(const(char)[])' * TemplateInstance::codegen: 'std.range.primitives.ElementType!(const(char)[])' * TemplateInstance::codegen: 'std.traits.isAssignable!(char, const(char))' * TemplateInstance::codegen: 'std.traits.isRvalueAssignable!(char, const(char))' * TemplateInstance::codegen: 'std.traits.rvalueOf!(const(char))' * TemplateInstance::codegen: 'std.traits.isLvalueAssignable!(char, const(char))' * TemplateInstance::codegen: 'std.traits.lvalueOf!(const(char))' * TemplateInstance::codegen: 'std.conv.text!(string, const(char)[])' * TemplateInstance::codegen: 'std.conv.textImpl!(string, string, const(char)[])' * TemplateInstance::codegen: 'std.conv.isRawStaticArray!string' * TemplateInstance::codegen: 'std.conv.to!string.to!(string)' * TemplateInstance::codegen: 'std.traits.isImplicitlyConvertible!(string, string)' * TemplateInstance::codegen: 'std.conv.isEnumStrToStr!(string, string)' * TemplateInstance::codegen: 'std.conv.isNullToStr!(string, string)' * TemplateInstance::codegen: 'std.conv.toImpl!(string, string)' * TemplateInstance::codegen: 'std.conv.toImpl!(string, string).toImpl.isSignedInt!string' * TemplateInstance::codegen: 'std.traits.isIntegral!string' * TemplateInstance::codegen: 'std.conv.isRawStaticArray!(const(char)[])' * TemplateInstance::codegen: 'std.conv.to!string.to!(const(char)[])' * TemplateInstance::codegen: 'std.traits.isImplicitlyConvertible!(const(char)[], string)' * TemplateInstance::codegen: 'std.range.primitives.isInfinite!(const(char)[])' * TemplateInstance::codegen: 'std.traits.isNumeric!(const(char)[])' * TemplateInstance::codegen: 'std.typetuple.staticIndexOf!(const(char)[], byte, ubyte, short, ushort, int, uint, long, ulong)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(const(char)[], byte, ubyte, short, ushort, int, uint, long, ulong)' * TemplateInstance::codegen: 'std.typetuple.isSame!(const(char)[], byte)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(const(char)[], ubyte, short, ushort, int, uint, long, ulong)' * TemplateInstance::codegen: 'std.typetuple.isSame!(const(char)[], ubyte)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(const(char)[], short, ushort, int, uint, long, ulong)' * TemplateInstance::codegen: 'std.typetuple.isSame!(const(char)[], short)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(const(char)[], ushort, int, uint, long, ulong)' * TemplateInstance::codegen: 'std.typetuple.isSame!(const(char)[], ushort)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(const(char)[], int, uint, long, ulong)' * TemplateInstance::codegen: 'std.typetuple.isSame!(const(char)[], int)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(const(char)[], uint, long, ulong)' * TemplateInstance::codegen: 'std.typetuple.isSame!(const(char)[], uint)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(const(char)[], long, ulong)' * TemplateInstance::codegen: 'std.typetuple.isSame!(const(char)[], long)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(const(char)[], ulong)' * TemplateInstance::codegen: 'std.typetuple.isSame!(const(char)[], ulong)' * TemplateInstance::codegen: 'std.typetuple.staticIndexOf!(const(char)[], float, double, real)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(const(char)[], float, double, real)' * TemplateInstance::codegen: 'std.typetuple.isSame!(const(char)[], float)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(const(char)[], double, real)' * TemplateInstance::codegen: 'std.typetuple.isSame!(const(char)[], double)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(const(char)[], real)' * TemplateInstance::codegen: 'std.typetuple.isSame!(const(char)[], real)' * TemplateInstance::codegen: 'std.traits.isBoolean!(const(char)[])' * TemplateInstance::codegen: 'std.traits.isAssociativeArray!(const(char)[])' * TemplateInstance::codegen: 'std.conv.isExactSomeString!(const(char)[])' * TemplateInstance::codegen: 'std.traits.isDynamicArray!(const(char)[])' * TemplateInstance::codegen: 'std.traits.DynamicArrayTypeOf!(const(char)[])' * TemplateInstance::codegen: 'std.conv.toImpl!(string, const(char)[])' * TemplateInstance::codegen: 'std.typetuple.staticIndexOf!(int, dchar, char)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(int, dchar, char)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(int, char)' * TemplateInstance::codegen: 'std.conv.parse!(int, const(char)[])' * TemplateInstance::codegen: 'std.conv.convError!(const(char)[], int)' * TemplateInstance::codegen: 'std.conv.convError_unexpected!(const(char)[])' * TemplateInstance::codegen: 'std.conv.text!(string, dchar, string)' * TemplateInstance::codegen: 'std.conv.textImpl!(string, string, dchar, string)' * TemplateInstance::codegen: 'std.conv.isRawStaticArray!dchar' * TemplateInstance::codegen: 'std.traits.isStaticArray!dchar' * * VarDeclaration::codegen(): 'std.traits.isStaticArray!dchar.isStaticArray' * * * DtoResolveVariable(std.traits.isStaticArray!dchar.isStaticArray) * TemplateInstance::codegen: 'std.conv.to!string.to!(dchar)' * TemplateInstance::codegen: 'std.traits.isImplicitlyConvertible!(dchar, string)' * TemplateInstance::codegen: 'std.range.primitives.isInfinite!dchar' * TemplateInstance::codegen: 'std.traits.isNumeric!dchar' * TemplateInstance::codegen: 'std.typetuple.staticIndexOf!(dchar, byte, ubyte, short, ushort, int, uint, long, ulong)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(dchar, byte, ubyte, short, ushort, int, uint, long, ulong)' * TemplateInstance::codegen: 'std.typetuple.isSame!(dchar, byte)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(dchar, ubyte, short, ushort, int, uint, long, ulong)' * TemplateInstance::codegen: 'std.typetuple.isSame!(dchar, ubyte)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(dchar, short, ushort, int, uint, long, ulong)' * TemplateInstance::codegen: 'std.typetuple.isSame!(dchar, short)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(dchar, ushort, int, uint, long, ulong)' * TemplateInstance::codegen: 'std.typetuple.isSame!(dchar, ushort)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(dchar, int, uint, long, ulong)' * TemplateInstance::codegen: 'std.typetuple.isSame!(dchar, int)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(dchar, uint, long, ulong)' * TemplateInstance::codegen: 'std.typetuple.isSame!(dchar, uint)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(dchar, long, ulong)' * TemplateInstance::codegen: 'std.typetuple.isSame!(dchar, long)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(dchar, ulong)' * TemplateInstance::codegen: 'std.typetuple.isSame!(dchar, ulong)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!dchar' * TemplateInstance::codegen: 'std.typetuple.staticIndexOf!(dchar, float, double, real)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(dchar, float, double, real)' * TemplateInstance::codegen: 'std.typetuple.isSame!(dchar, float)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(dchar, double, real)' * TemplateInstance::codegen: 'std.typetuple.isSame!(dchar, double)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(dchar, real)' * TemplateInstance::codegen: 'std.typetuple.isSame!(dchar, real)' * TemplateInstance::codegen: 'std.traits.isSomeString!dchar' * TemplateInstance::codegen: 'std.traits.isDynamicArray!dchar' * TemplateInstance::codegen: 'std.traits.isAssociativeArray!dchar' * TemplateInstance::codegen: 'std.conv.isExactSomeString!dchar' * TemplateInstance::codegen: 'std.conv.toImpl!(string, dchar)' * TemplateInstance::codegen: 'std.traits.isIntegral!dchar' * TemplateInstance::codegen: 'std.traits.isPointer!dchar' * TemplateInstance::codegen: 'std.conv.toStr!(string, dchar)' * TemplateInstance::codegen: 'std.format.FormatSpec!(immutable(char))' * TemplateInstance::codegen: 'std.format.hasToString!(dchar, char)' * TemplateInstance::codegen: 'std.traits.isDelegate!dchar' * TemplateInstance::codegen: 'std.format.formatValue!(Appender!string, dchar, char)' * TemplateInstance::codegen: 'std.range.primitives.put!(Appender!string, dchar)' * TemplateInstance::codegen: 'std.range.primitives.doPut!(Appender!string, dchar)' * TemplateInstance::codegen: 'std.format.formatValue!(Appender!string, uint, char)' * TemplateInstance::codegen: 'std.format.formatValue!(Appender!string, uint, char).formatValue.__lambda4!uint' * TemplateInstance::codegen: 'std.conv.text!(string, string, string)' * TemplateInstance::codegen: 'std.conv.textImpl!(string, string, string, string)' * TemplateInstance::codegen: 'std.traits.isFloatingPoint!uint' * TemplateInstance::codegen: 'std.typetuple.staticIndexOf!(uint, dchar, char)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(uint, dchar, char)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(uint, char)' * TemplateInstance::codegen: 'std.traits.isDynamicArray!uint' * TemplateInstance::codegen: 'std.traits.isStaticArray!uint' * TemplateInstance::codegen: 'std.traits.isAssociativeArray!uint' * TemplateInstance::codegen: 'std.conv.parse!(uint, const(char)[])' * TemplateInstance::codegen: 'std.conv.convError!(const(char)[], uint)' * TemplateInstance::codegen: 'std.exception.enforceEx!(FormatException).enforceEx!ulong' * TemplateInstance::codegen: 'std.functional.binaryFun!("a == b", "a", "b").binaryFun!(dchar, char)' * TemplateInstance::codegen: 'std.algorithm.searching.startsWith!("a == b", const(char)[], char)' * TemplateInstance::codegen: 'std.conv.to!ubyte' * TemplateInstance::codegen: 'std.conv.isRawStaticArray!(const(uint))' * TemplateInstance::codegen: 'std.traits.isStaticArray!(const(uint))' * TemplateInstance::codegen: 'std.traits.isAggregateType!(const(uint))' * TemplateInstance::codegen: 'std.traits.OriginalType!(const(uint))' * TemplateInstance::codegen: 'std.traits.ModifyTypePreservingSTC!(Impl, const(uint))' * TemplateInstance::codegen: 'std.traits.OriginalType!(const(uint)).Modifier!uint' * TemplateInstance::codegen: 'std.conv.to!ubyte.to!(const(uint))' * TemplateInstance::codegen: 'std.traits.isImplicitlyConvertible!(const(uint), ubyte)' * TemplateInstance::codegen: 'std.range.primitives.isInfinite!(const(uint))' * TemplateInstance::codegen: 'std.range.primitives.isInputRange!(const(uint))' * TemplateInstance::codegen: 'std.conv.isExactSomeString!ubyte' * TemplateInstance::codegen: 'std.traits.isSomeString!ubyte' * TemplateInstance::codegen: 'std.traits.isNumeric!(const(uint))' * TemplateInstance::codegen: 'std.traits.NumericTypeOf!(const(uint))' * TemplateInstance::codegen: 'std.traits.IntegralTypeOf!(const(uint))' * TemplateInstance::codegen: 'std.traits.Unqual!(const(uint))' * TemplateInstance::codegen: 'std.traits.isNumeric!ubyte' * TemplateInstance::codegen: 'std.traits.NumericTypeOf!ubyte' * TemplateInstance::codegen: 'std.traits.isSomeString!(const(uint))' * TemplateInstance::codegen: 'std.traits.isDynamicArray!(const(uint))' * TemplateInstance::codegen: 'std.traits.isAssociativeArray!(const(uint))' * TemplateInstance::codegen: 'std.conv.isExactSomeString!(const(uint))' * TemplateInstance::codegen: 'std.conv.toImpl!(ubyte, const(uint))' * TemplateInstance::codegen: 'std.traits.mostNegative!(const(uint))' * TemplateInstance::codegen: 'std.traits.mostNegative!ubyte' * TemplateInstance::codegen: 'std.conv.toImpl!(ubyte, const(uint)).toImpl.__lambda2!(const(uint))' * TemplateInstance::codegen: 'std.traits.isIntegral!ubyte' * TemplateInstance::codegen: 'std.traits.isFloatingPoint!ubyte' * TemplateInstance::codegen: 'std.typetuple.staticIndexOf!(ubyte, dchar, char)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(ubyte, dchar, char)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(ubyte, char)' * TemplateInstance::codegen: 'std.conv.parse!(ubyte, const(char)[])' * TemplateInstance::codegen: 'std.traits.Select!(false, int, uint)' * TemplateInstance::codegen: 'std.conv.to!int' * TemplateInstance::codegen: 'std.conv.to!int.to!(const(uint))' * TemplateInstance::codegen: 'std.traits.isImplicitlyConvertible!(const(uint), int)' * TemplateInstance::codegen: 'std.conv.isEnumStrToStr!(const(uint), int)' * TemplateInstance::codegen: 'std.conv.isNullToStr!(const(uint), int)' * TemplateInstance::codegen: 'std.conv.toImpl!(int, const(uint))' * TemplateInstance::codegen: 'std.traits.isUnsignedInt!(const(uint))' * TemplateInstance::codegen: 'std.traits.UnsignedTypeOf!(const(uint))' * TemplateInstance::codegen: 'std.conv.toImpl!(int, const(uint)).toImpl.isSignedInt!int' * TemplateInstance::codegen: 'std.traits.isSomeFunction!(ConvOverflowException)' * TemplateInstance::codegen: 'std.exception.enforce!bool' * TemplateInstance::codegen: 'std.format.formatElement!(Appender!string, dchar, char)' * TemplateInstance::codegen: 'std.format.formatChar!(Appender!string)' * TemplateInstance::codegen: 'std.range.primitives.put!(Appender!string, const(dchar))' * TemplateInstance::codegen: 'std.range.primitives.doPut!(Appender!string, const(dchar))' * TemplateInstance::codegen: 'std.array.Appender!string.Appender.canPutItem!(const(dchar))' * TemplateInstance::codegen: 'std.traits.isImplicitlyConvertible!(const(dchar), immutable(char))' * TemplateInstance::codegen: 'std.traits.isSomeChar!(const(dchar))' * TemplateInstance::codegen: 'std.traits.CharTypeOf!(const(dchar))' * TemplateInstance::codegen: 'std.traits.isAggregateType!(const(dchar))' * TemplateInstance::codegen: 'std.traits.OriginalType!(const(dchar))' * TemplateInstance::codegen: 'std.traits.ModifyTypePreservingSTC!(Impl, const(dchar))' * TemplateInstance::codegen: 'std.traits.OriginalType!(const(dchar)).Modifier!dchar' * TemplateInstance::codegen: 'std.traits.Unqual!(const(dchar))' * TemplateInstance::codegen: 'std.array.Appender!string.Appender.canPutConstRange!(const(dchar))' * TemplateInstance::codegen: 'std.range.primitives.isInputRange!(const(dchar))' * TemplateInstance::codegen: 'std.array.Appender!string.Appender.canPutRange!(const(dchar))' * TemplateInstance::codegen: 'std.array.Appender!string.Appender.put!(const(dchar))' * TemplateInstance::codegen: 'std.format.formattedWrite!(Appender!string, char, uint)' * TemplateInstance::codegen: 'std.format.formatGeneric!(Appender!string, uint, char)' * TemplateInstance::codegen: 'std.format.formattedWrite!(Appender!string, char, uint).formattedWrite.__lambda6!uint' * TemplateInstance::codegen: 'std.conv.text!(string, char)' * TemplateInstance::codegen: 'std.conv.textImpl!(string, string, char)' * TemplateInstance::codegen: 'std.conv.isRawStaticArray!char' * TemplateInstance::codegen: 'std.conv.to!string.to!(char)' * TemplateInstance::codegen: 'std.traits.isImplicitlyConvertible!(char, string)' * TemplateInstance::codegen: 'std.range.primitives.isInfinite!char' * TemplateInstance::codegen: 'std.traits.isNumeric!char' * TemplateInstance::codegen: 'std.traits.isSomeString!char' * * VarDeclaration::codegen(): 'std.traits.isSomeString!char.isSomeString' * * * DtoResolveVariable(std.traits.isSomeString!char.isSomeString) * TemplateInstance::codegen: 'std.traits.isDynamicArray!char' * * VarDeclaration::codegen(): 'std.traits.isDynamicArray!char.isDynamicArray' * * * DtoResolveVariable(std.traits.isDynamicArray!char.isDynamicArray) * TemplateInstance::codegen: 'std.traits.isAssociativeArray!char' * * VarDeclaration::codegen(): 'std.traits.isAssociativeArray!char.isAssociativeArray' * * * DtoResolveVariable(std.traits.isAssociativeArray!char.isAssociativeArray) * TemplateInstance::codegen: 'std.conv.isExactSomeString!char' * TemplateInstance::codegen: 'std.conv.toImpl!(string, char)' * TemplateInstance::codegen: 'std.traits.isIntegral!char' * TemplateInstance::codegen: 'std.traits.isPointer!char' * TemplateInstance::codegen: 'std.conv.toStr!(string, char)' * TemplateInstance::codegen: 'std.format.hasToString!(char, char)' * TemplateInstance::codegen: 'std.traits.isDelegate!char' * * VarDeclaration::codegen(): 'std.traits.isDelegate!char.isDelegate' * * * DtoResolveVariable(std.traits.isDelegate!char.isDelegate) * TemplateInstance::codegen: 'std.format.formatValue!(Appender!string, char, char)' * TemplateInstance::codegen: 'std.format.getNthInt!(uint)' * TemplateInstance::codegen: 'std.format.getNthInt!()' * TemplateInstance::codegen: 'std.conv.isRawStaticArray!uint' * TemplateInstance::codegen: 'std.conv.to!int.to!(uint)' * TemplateInstance::codegen: 'std.traits.isImplicitlyConvertible!(uint, int)' * TemplateInstance::codegen: 'std.conv.isEnumStrToStr!(uint, int)' * TemplateInstance::codegen: 'std.conv.isNullToStr!(uint, int)' * TemplateInstance::codegen: 'std.conv.isExactSomeString!uint' * TemplateInstance::codegen: 'std.traits.isSomeString!uint' * TemplateInstance::codegen: 'std.conv.toImpl!(int, uint)' * TemplateInstance::codegen: 'std.conv.toImpl!(int, uint).toImpl.isSignedInt!int' * TemplateInstance::codegen: 'std.conv.to!int.to!(int)' * TemplateInstance::codegen: 'std.traits.isImplicitlyConvertible!(int, int)' * TemplateInstance::codegen: 'std.conv.isEnumStrToStr!(int, int)' * TemplateInstance::codegen: 'std.conv.isNullToStr!(int, int)' * TemplateInstance::codegen: 'std.conv.toImpl!(int, int)' * TemplateInstance::codegen: 'std.conv.toImpl!(int, int).toImpl.isSignedInt!int' * TemplateInstance::codegen: 'std.format.formatNth!(Appender!string, char, uint)' * TemplateInstance::codegen: 'std.format.formatNth!(Appender!string, char, uint).formatNth.gencode!1LU' * TemplateInstance::codegen: 'std.format.formattedWrite!(Appender!string, char, string).formattedWrite.__lambda6!string' * TemplateInstance::codegen: 'std.format.getNthInt!(string)' * TemplateInstance::codegen: 'std.format.formatNth!(Appender!string, char, string)' * TemplateInstance::codegen: 'std.format.formatNth!(Appender!string, char, string).formatNth.gencode!1LU' * TemplateInstance::codegen: 'std.conv.text!(string, uint, string, ulong, string)' * TemplateInstance::codegen: 'std.conv.textImpl!(string, string, uint, string, ulong, string)' * TemplateInstance::codegen: 'std.conv.to!string.to!(uint)' * TemplateInstance::codegen: 'std.traits.isImplicitlyConvertible!(uint, string)' * TemplateInstance::codegen: 'std.range.primitives.isInfinite!uint' * TemplateInstance::codegen: 'std.range.primitives.isInputRange!uint' * TemplateInstance::codegen: 'std.traits.isNumeric!uint' * TemplateInstance::codegen: 'std.traits.NumericTypeOf!uint' * TemplateInstance::codegen: 'std.conv.toImpl!(string, uint)' * TemplateInstance::codegen: 'std.conv.toImpl!(string, uint)' * TemplateInstance::codegen: 'std.conv.toImpl!(string, uint).toImpl.toStringRadixConvert!(13LU, 10u, true)' * TemplateInstance::codegen: 'std.traits.isSomeChar!uint' * TemplateInstance::codegen: 'std.conv.unsigned!uint' * TemplateInstance::codegen: 'std.conv.toImpl!(string, uint).toImpl.toStringRadixConvert!(12LU, 10u, false)' * TemplateInstance::codegen: 'std.conv.toImpl!(string, uint).toImpl.toStringRadixConvert!(8LU, 16u, false)' * TemplateInstance::codegen: 'std.conv.toImpl!(string, uint).toImpl.toStringRadixConvert!(32LU, 2u, false)' * TemplateInstance::codegen: 'std.conv.toImpl!(string, uint).toImpl.toStringRadixConvert!(12LU, 8u, false)' * TemplateInstance::codegen: 'std.conv.toImpl!(string, uint).toImpl.toStringRadixConvert!(24LU, 0u, false)' * TemplateInstance::codegen: 'std.traits.isSomeFunction!(FormatException)' * TemplateInstance::codegen: 'std.traits.isIterable!(Intervals!(CowArray!(GcPolicy)))' * TemplateInstance::codegen: 'std.traits.isNarrowString!(Intervals!(CowArray!(GcPolicy)))' * TemplateInstance::codegen: 'std.traits.isAggregateType!(Intervals!(CowArray!(GcPolicy)))' * TemplateInstance::codegen: 'std.traits.isStaticArray!(Intervals!(CowArray!(GcPolicy)))' * TemplateInstance::codegen: 'std.traits.OriginalType!(Intervals!(CowArray!(GcPolicy)))' * TemplateInstance::codegen: 'std.traits.ModifyTypePreservingSTC!(Impl, Intervals!(CowArray!(GcPolicy)))' * TemplateInstance::codegen: 'std.traits.OriginalType!(Intervals!(CowArray!(GcPolicy))).Modifier!(Intervals!(CowArray!(GcPolicy)))' * TemplateInstance::codegen: 'std.range.primitives.isInfinite!(Intervals!(CowArray!(GcPolicy)))' * TemplateInstance::codegen: 'std.range.primitives.isInputRange!(Intervals!(CowArray!(GcPolicy)))' * TemplateInstance::codegen: 'std.array.array!(Intervals!(CowArray!(GcPolicy)))' * TemplateInstance::codegen: 'std.traits.ForeachType!(Intervals!(CowArray!(GcPolicy)))' * TemplateInstance::codegen: 'std.traits.isCallable!(CodepointInterval function(inout(int)) pure nothrow @nogc @safe)' * TemplateInstance::codegen: 'std.traits.isSomeFunction!(CodepointInterval function(inout(int)) pure nothrow @nogc @safe)' * TemplateInstance::codegen: 'std.traits.ReturnType!(CodepointInterval function(inout(int)) pure nothrow @nogc @safe)' * TemplateInstance::codegen: 'std.traits.FunctionTypeOf!(CodepointInterval function(inout(int)) pure nothrow @nogc @safe)' * TemplateInstance::codegen: 'std.range.primitives.hasLength!(Intervals!(CowArray!(GcPolicy)))' * TemplateInstance::codegen: 'std.traits.Unqual!(CodepointInterval)' * TemplateInstance::codegen: 'std.traits.isDynamicArray!(CodepointInterval[])' * TemplateInstance::codegen: 'std.traits.DynamicArrayTypeOf!(CodepointInterval[])' * TemplateInstance::codegen: 'std.traits.isAggregateType!(CodepointInterval[])' * TemplateInstance::codegen: 'std.traits.OriginalType!(CodepointInterval[])' * TemplateInstance::codegen: 'std.traits.ModifyTypePreservingSTC!(Impl, CodepointInterval[])' * TemplateInstance::codegen: 'std.traits.OriginalType!(CodepointInterval[]).Modifier!(CodepointInterval[])' * TemplateInstance::codegen: 'std.traits.Unqual!(CodepointInterval[])' * TemplateInstance::codegen: 'std.typetuple.allSatisfy!(isIntegral, ulong)' * TemplateInstance::codegen: 'std.range.primitives.ElementEncodingType!(CodepointInterval[])' * TemplateInstance::codegen: 'std.range.primitives.ElementType!(CodepointInterval[])' * TemplateInstance::codegen: 'std.traits.isNarrowString!(CodepointInterval[])' * TemplateInstance::codegen: 'std.traits.isStaticArray!(CodepointInterval[])' * TemplateInstance::codegen: 'std.range.primitives.front!(CodepointInterval)' * TemplateInstance::codegen: 'std.traits.hasIndirections!(CodepointInterval)' * TemplateInstance::codegen: 'std.traits.FieldTypeTuple!(CodepointInterval)' * TemplateInstance::codegen: 'std.traits.isNested!(CodepointInterval)' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(hasIndirections, uint[2])' * TemplateInstance::codegen: 'std.traits.F!(uint[2])' * TemplateInstance::codegen: 'std.traits.isStaticArray!(uint[2])' * TemplateInstance::codegen: 'std.traits.StaticArrayTypeOf!(uint[2])' * TemplateInstance::codegen: 'std.traits.isAggregateType!(uint[2])' * TemplateInstance::codegen: 'std.traits.OriginalType!(uint[2])' * TemplateInstance::codegen: 'std.traits.ModifyTypePreservingSTC!(Impl, uint[2])' * TemplateInstance::codegen: 'std.traits.OriginalType!(uint[2]).Modifier!(uint[2])' * TemplateInstance::codegen: 'std.traits.hasIndirections!uint' * TemplateInstance::codegen: 'std.traits.isFunctionPointer!uint' * TemplateInstance::codegen: 'std.array.uninitializedArray!(CodepointInterval[], ulong)' * TemplateInstance::codegen: 'std.typetuple.allSatisfy!(isSize_t, ulong)' * TemplateInstance::codegen: 'std.array.uninitializedArray!(CodepointInterval[], ulong).uninitializedArray.F!ulong' * TemplateInstance::codegen: 'std.typetuple.staticMap!(toSize_t, ulong)' * TemplateInstance::codegen: 'std.array.uninitializedArray!(CodepointInterval[], ulong).uninitializedArray.F!ulong' * TemplateInstance::codegen: 'std.typetuple.TypeTuple!ulong' * TemplateInstance::codegen: 'std.array.arrayAllocImpl!(false, CodepointInterval[], ulong)' * TemplateInstance::codegen: 'std.array.nDimensions!(CodepointInterval[])' * TemplateInstance::codegen: 'std.traits.isArray!(CodepointInterval[])' * TemplateInstance::codegen: 'std.array.nDimensions!(CodepointInterval)' * TemplateInstance::codegen: 'std.traits.isArray!(CodepointInterval)' * TemplateInstance::codegen: 'std.traits.isStaticArray!(CodepointInterval)' * TemplateInstance::codegen: 'std.traits.StaticArrayTypeOf!(CodepointInterval)' * TemplateInstance::codegen: 'std.traits.isAggregateType!(CodepointInterval)' * TemplateInstance::codegen: 'std.traits.AliasThisTypeOf!(CodepointInterval)' * TemplateInstance::codegen: 'std.typetuple.TypeTuple!"_tuple"' * TemplateInstance::codegen: 'std.traits.isDynamicArray!(CodepointInterval)' * TemplateInstance::codegen: 'std.traits.Unqual!(uint[2])' * TemplateInstance::codegen: 'std.traits.DynamicArrayTypeOf!(uint[2])' * TemplateInstance::codegen: 'std.array.blockAttribute!(CodepointInterval)' * TemplateInstance::codegen: 'std.conv.emplaceRef!(CodepointInterval, CodepointInterval)' * TemplateInstance::codegen: 'std.conv.emplaceImpl!(CodepointInterval)' * TemplateInstance::codegen: 'std.conv.emplaceImpl!(CodepointInterval).emplaceImpl!(CodepointInterval)' * TemplateInstance::codegen: 'std.traits.hasElaborateAssign!(CodepointInterval)' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(hasElaborateAssign, uint[2])' * TemplateInstance::codegen: 'std.traits.F!(uint[2])' * TemplateInstance::codegen: 'std.traits.hasElaborateAssign!uint' * TemplateInstance::codegen: 'std.traits.isAssignable!(CodepointInterval, CodepointInterval)' * TemplateInstance::codegen: 'std.traits.isRvalueAssignable!(CodepointInterval, CodepointInterval)' * TemplateInstance::codegen: 'std.traits.lvalueOf!(CodepointInterval)' * TemplateInstance::codegen: 'std.traits.rvalueOf!(CodepointInterval)' * TemplateInstance::codegen: 'std.traits.isLvalueAssignable!(CodepointInterval, CodepointInterval)' * TemplateInstance::codegen: 'std.range.primitives.isForwardRange!(CodepointInterval[])' * TemplateInstance::codegen: 'std.range.primitives.isInputRange!(CodepointInterval[])' * TemplateInstance::codegen: 'std.range.primitives.empty!(CodepointInterval)' * TemplateInstance::codegen: 'std.range.primitives.popFront!(CodepointInterval)' * TemplateInstance::codegen: 'std.range.primitives.save!(CodepointInterval)' * TemplateInstance::codegen: 'std.functional.unaryFun!("a[0] > 0x80", "a")' * TemplateInstance::codegen: 'std.functional.unaryFun!("a[0] > 0x80", "a").unaryFun!(CodepointInterval)' * TemplateInstance::codegen: 'std.algorithm.searching.countUntil!("a[0] > 0x80", CodepointInterval[])' * TemplateInstance::codegen: 'std.range.primitives.isRandomAccessRange!(CodepointInterval[])' * TemplateInstance::codegen: 'std.range.primitives.isBidirectionalRange!(CodepointInterval[])' * TemplateInstance::codegen: 'std.range.primitives.popBack!(CodepointInterval)' * TemplateInstance::codegen: 'std.range.primitives.back!(CodepointInterval)' * TemplateInstance::codegen: 'std.range.primitives.hasLength!(CodepointInterval[])' * TemplateInstance::codegen: 'std.range.primitives.isInfinite!(CodepointInterval[])' * TemplateInstance::codegen: 'std.uni.InversionList!(GcPolicy).InversionList.toSourceCode.binaryScope!(CodepointInterval[])' * TemplateInstance::codegen: 'std.uni.InversionList!(GcPolicy).InversionList.toSourceCode.linearScope!(CodepointInterval[])' * TemplateInstance::codegen: 'std.format.format!(char, string, uint)' * TemplateInstance::codegen: 'std.format.formattedWrite!(Appender!string, char, string, uint)' * TemplateInstance::codegen: 'std.format.formattedWrite!(Appender!string, char, string, uint).formattedWrite.__lambda7!string' * TemplateInstance::codegen: 'std.format.formattedWrite!(Appender!string, char, string, uint).formattedWrite.__lambda9!uint' * TemplateInstance::codegen: 'std.format.getNthInt!(string, uint)' * TemplateInstance::codegen: 'std.format.formatNth!(Appender!string, char, string, uint)' * TemplateInstance::codegen: 'std.format.formatNth!(Appender!string, char, string, uint).formatNth.gencode!2LU' * TemplateInstance::codegen: 'std.format.format!(char, string, uint, uint)' * TemplateInstance::codegen: 'std.format.formattedWrite!(Appender!string, char, string, uint, uint)' * TemplateInstance::codegen: 'std.format.formattedWrite!(Appender!string, char, string, uint, uint).formattedWrite.__lambda8!string' * TemplateInstance::codegen: 'std.format.formattedWrite!(Appender!string, char, string, uint, uint).formattedWrite.__lambda10!uint' * TemplateInstance::codegen: 'std.format.formattedWrite!(Appender!string, char, string, uint, uint).formattedWrite.__lambda12!uint' * TemplateInstance::codegen: 'std.format.getNthInt!(string, uint, uint)' * TemplateInstance::codegen: 'std.format.getNthInt!(uint, uint)' * TemplateInstance::codegen: 'std.format.formatNth!(Appender!string, char, string, uint, uint)' * TemplateInstance::codegen: 'std.format.formatNth!(Appender!string, char, string, uint, uint).formatNth.gencode!3LU' * TemplateInstance::codegen: 'std.format.format!(char, string, string)' * TemplateInstance::codegen: 'std.format.formattedWrite!(Appender!string, char, string, string)' * TemplateInstance::codegen: 'std.format.formattedWrite!(Appender!string, char, string, string).formattedWrite.__lambda7!string' * TemplateInstance::codegen: 'std.format.formattedWrite!(Appender!string, char, string, string).formattedWrite.__lambda9!string' * TemplateInstance::codegen: 'std.format.getNthInt!(string, string)' * TemplateInstance::codegen: 'std.format.formatNth!(Appender!string, char, string, string)' * TemplateInstance::codegen: 'std.format.formatNth!(Appender!string, char, string, string).formatNth.gencode!2LU' * TemplateInstance::codegen: 'std.uni.InversionList!(GcPolicy).InversionList.toSourceCode.bisect!(CodepointInterval[])' * TemplateInstance::codegen: 'std.format.format!(char, string, uint, string)' * TemplateInstance::codegen: 'std.format.formattedWrite!(Appender!string, char, string, uint, string)' * TemplateInstance::codegen: 'std.format.formattedWrite!(Appender!string, char, string, uint, string).formattedWrite.__lambda8!string' * TemplateInstance::codegen: 'std.format.formattedWrite!(Appender!string, char, string, uint, string).formattedWrite.__lambda10!uint' * TemplateInstance::codegen: 'std.format.formattedWrite!(Appender!string, char, string, uint, string).formattedWrite.__lambda12!string' * TemplateInstance::codegen: 'std.format.getNthInt!(string, uint, string)' * TemplateInstance::codegen: 'std.format.getNthInt!(uint, string)' * TemplateInstance::codegen: 'std.format.formatNth!(Appender!string, char, string, uint, string)' * TemplateInstance::codegen: 'std.format.formatNth!(Appender!string, char, string, uint, string).formatNth.gencode!3LU' * TemplateInstance::codegen: 'std.uni.InversionList!(GcPolicy).InversionList.Intervals!(uint[])' * TemplateInstance::codegen: 'std.range.primitives.hasAssignableElements!(Intervals!(uint[]))' * TemplateInstance::codegen: 'std.range.primitives.isInputRange!(Intervals!(uint[]))' * TemplateInstance::codegen: 'std.range.primitives.isBidirectionalRange!(Intervals!(uint[]))' * TemplateInstance::codegen: 'std.range.primitives.isForwardRange!(Intervals!(uint[]))' * TemplateInstance::codegen: 'std.range.primitives.isRandomAccessRange!(Intervals!(uint[]))' * TemplateInstance::codegen: 'std.traits.isNarrowString!(Intervals!(uint[]))' * TemplateInstance::codegen: 'std.traits.isAggregateType!(Intervals!(uint[]))' * TemplateInstance::codegen: 'std.traits.isStaticArray!(Intervals!(uint[]))' * TemplateInstance::codegen: 'std.traits.OriginalType!(Intervals!(uint[]))' * TemplateInstance::codegen: 'std.traits.ModifyTypePreservingSTC!(Impl, Intervals!(uint[]))' * TemplateInstance::codegen: 'std.traits.OriginalType!(Intervals!(uint[])).Modifier!(Intervals!(uint[]))' * TemplateInstance::codegen: 'std.range.primitives.hasLength!(Intervals!(uint[]))' * TemplateInstance::codegen: 'std.range.primitives.hasSlicing!(Intervals!(uint[]))' * TemplateInstance::codegen: 'std.range.primitives.isInfinite!(Intervals!(uint[]))' * TemplateInstance::codegen: 'std.uni.InversionList!(GcPolicy).InversionList.sanitize.sort!((a, b) => a.a < b.a, cast(SwapStrategy)2, Intervals!(uint[]))' * TemplateInstance::codegen: 'std.uni.InversionList!(GcPolicy).InversionList.sanitize.SortedRange!(Intervals!(uint[]), __lambda1)' * TemplateInstance::codegen: 'std.uni.InversionList!(GcPolicy).InversionList.sanitize.binaryFun!(__lambda1, "a", "b")' * TemplateInstance::codegen: 'std.uni.InversionList!(GcPolicy).InversionList.sanitize.needOpCallAlias!(__lambda1)' * TemplateInstance::codegen: 'std.uni.InversionList!(GcPolicy).InversionList.sanitize.__lambda1!(CodepointInterval, CodepointInterval)' * TemplateInstance::codegen: 'std.uni.InversionList!(GcPolicy).InversionList.sanitize.TimSortImpl!(__lambda1, Intervals!(uint[]))' * TemplateInstance::codegen: 'std.range.primitives.ElementType!(Intervals!(uint[]))' * TemplateInstance::codegen: 'std.uni.InversionList!(GcPolicy).InversionList.sanitize.TimSortImpl!(__lambda1, Intervals!(uint[])).gallopSearch!(false, false)' * TemplateInstance::codegen: 'std.uni.InversionList!(GcPolicy).InversionList.sanitize.TimSortImpl!(__lambda1, Intervals!(uint[])).gallopSearch!(false, true)' * TemplateInstance::codegen: 'std.uni.InversionList!(GcPolicy).InversionList.sanitize.TimSortImpl!(__lambda1, Intervals!(uint[])).gallopSearch!(true, false)' * TemplateInstance::codegen: 'std.uni.InversionList!(GcPolicy).InversionList.sanitize.TimSortImpl!(__lambda1, Intervals!(uint[])).gallopSearch!(true, true)' * TemplateInstance::codegen: 'std.range.primitives.moveAt!(Intervals!(uint[]), ulong)' * TemplateInstance::codegen: 'std.traits.hasElaborateCopyConstructor!(CodepointInterval)' * TemplateInstance::codegen: 'std.traits.hasMember!(CodepointInterval, "__postblit")' * TemplateInstance::codegen: 'std.typetuple.staticIndexOf!("__postblit", "_tuple", "__ctor", "opEquals", "a", "b")' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("__postblit", "_tuple", "__ctor", "opEquals", "a", "b")' * TemplateInstance::codegen: 'std.typetuple.Alias!("__postblit")' * TemplateInstance::codegen: 'std.typetuple.Alias!"_tuple"' * TemplateInstance::codegen: 'std.typetuple.isSame!("__postblit", "_tuple")' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("__postblit", "__ctor", "opEquals", "a", "b")' * TemplateInstance::codegen: 'std.typetuple.isSame!("__postblit", "__ctor")' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("__postblit", "opEquals", "a", "b")' * TemplateInstance::codegen: 'std.typetuple.Alias!"opEquals"' * TemplateInstance::codegen: 'std.typetuple.isSame!("__postblit", "opEquals")' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("__postblit", "a", "b")' * TemplateInstance::codegen: 'std.typetuple.Alias!"a"' * TemplateInstance::codegen: 'std.typetuple.isSame!("__postblit", "a")' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("__postblit", "b")' * TemplateInstance::codegen: 'std.typetuple.Alias!"b"' * TemplateInstance::codegen: 'std.typetuple.isSame!("__postblit", "b")' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("__postblit")' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(hasElaborateCopyConstructor, uint[2])' * TemplateInstance::codegen: 'std.traits.F!(uint[2])' * TemplateInstance::codegen: 'std.traits.hasElaborateCopyConstructor!uint' * TemplateInstance::codegen: 'std.algorithm.mutation.move!(CodepointInterval)' * TemplateInstance::codegen: 'std.traits.hasAliasing!(CodepointInterval)' * TemplateInstance::codegen: 'std.traits.hasRawAliasing!(CodepointInterval)' * TemplateInstance::codegen: 'std.traits.RepresentationTypeTuple!(CodepointInterval)' * TemplateInstance::codegen: 'std.traits.RepresentationTypeTuple!(CodepointInterval).Impl!(uint[2])' * TemplateInstance::codegen: 'std.traits.RepresentationTypeTuple!(CodepointInterval).Impl!()' * TemplateInstance::codegen: 'std.typetuple.TypeTuple!(uint[2])' * TemplateInstance::codegen: 'std.traits.hasRawAliasing!(CodepointInterval).Impl!(uint[2])' * TemplateInstance::codegen: 'std.traits.isAssociativeArray!(uint[2])' * TemplateInstance::codegen: 'std.traits.hasRawAliasing!(CodepointInterval).Impl!()' * TemplateInstance::codegen: 'std.traits.hasObjects!(CodepointInterval)' * TemplateInstance::codegen: 'std.traits.hasObjects!(uint[2])' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(isAliasingDelegate, CodepointInterval, uint[2])' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(isAliasingDelegate, CodepointInterval)' * TemplateInstance::codegen: 'std.traits.hasAliasing!(CodepointInterval).F!(CodepointInterval)' * TemplateInstance::codegen: 'std.traits.isDelegate!(CodepointInterval)' * TemplateInstance::codegen: 'std.traits.isCallable!(CodepointInterval)' * TemplateInstance::codegen: 'std.traits.isSomeFunction!(CodepointInterval)' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(isAliasingDelegate, uint[2])' * TemplateInstance::codegen: 'std.traits.hasAliasing!(CodepointInterval).F!(uint[2])' * TemplateInstance::codegen: 'std.traits.isDelegate!(uint[2])' * TemplateInstance::codegen: 'std.traits.isCallable!(uint[2])' * TemplateInstance::codegen: 'std.traits.isSomeFunction!(uint[2])' * TemplateInstance::codegen: 'std.traits.hasElaborateDestructor!(CodepointInterval)' * TemplateInstance::codegen: 'std.traits.hasMember!(CodepointInterval, "__dtor")' * TemplateInstance::codegen: 'std.typetuple.staticIndexOf!("__dtor", "_tuple", "__ctor", "opEquals", "a", "b")' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("__dtor", "_tuple", "__ctor", "opEquals", "a", "b")' * TemplateInstance::codegen: 'std.typetuple.Alias!("__dtor")' * TemplateInstance::codegen: 'std.typetuple.isSame!("__dtor", "_tuple")' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("__dtor", "__ctor", "opEquals", "a", "b")' * TemplateInstance::codegen: 'std.typetuple.isSame!("__dtor", "__ctor")' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("__dtor", "opEquals", "a", "b")' * TemplateInstance::codegen: 'std.typetuple.isSame!("__dtor", "opEquals")' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("__dtor", "a", "b")' * TemplateInstance::codegen: 'std.typetuple.isSame!("__dtor", "a")' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("__dtor", "b")' * TemplateInstance::codegen: 'std.typetuple.isSame!("__dtor", "b")' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("__dtor")' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(hasElaborateDestructor, uint[2])' * TemplateInstance::codegen: 'std.traits.F!(uint[2])' * TemplateInstance::codegen: 'std.traits.hasElaborateDestructor!uint' * TemplateInstance::codegen: 'std.uni.InversionList!(GcPolicy).InversionList.sanitize.isSorted!(__lambda1, Intervals!(uint[]))' * TemplateInstance::codegen: 'std.algorithm.comparison.min!(ulong, int)' * TemplateInstance::codegen: 'std.algorithm.comparison.MinType!(ulong, int)' * TemplateInstance::codegen: 'std.typetuple.allSatisfy!(isIntegral, immutable(int))' * TemplateInstance::codegen: 'std.traits.F!(immutable(int))' * TemplateInstance::codegen: 'std.traits.IntegralTypeOf!(immutable(int))' * TemplateInstance::codegen: 'std.traits.isAggregateType!(immutable(int))' * TemplateInstance::codegen: 'std.traits.OriginalType!(immutable(int))' * TemplateInstance::codegen: 'std.traits.ModifyTypePreservingSTC!(Impl, immutable(int))' * TemplateInstance::codegen: 'std.traits.OriginalType!(immutable(int)).Modifier!int' * TemplateInstance::codegen: 'std.traits.Unqual!(immutable(int))' * TemplateInstance::codegen: 'std.array.uninitializedArray!(CodepointInterval[], immutable(int))' * TemplateInstance::codegen: 'std.typetuple.allSatisfy!(isSize_t, immutable(int))' * TemplateInstance::codegen: 'std.array.uninitializedArray!(CodepointInterval[], immutable(int)).uninitializedArray.F!(immutable(int))' * TemplateInstance::codegen: 'std.typetuple.staticMap!(toSize_t, immutable(int))' * TemplateInstance::codegen: 'std.array.uninitializedArray!(CodepointInterval[], immutable(int)).uninitializedArray.F!(immutable(int))' * TemplateInstance::codegen: 'std.algorithm.mutation.reverse!(Intervals!(uint[]))' * TemplateInstance::codegen: 'std.algorithm.mutation.swapAt!(Intervals!(uint[]))' * TemplateInstance::codegen: 'std.uni.InversionList!(GcPolicy).InversionList.sanitize.TimSortImpl!(__lambda1, Intervals!(uint[])).gallopSearch!(false, true).gallopSearch!(Intervals!(uint[]))' * TemplateInstance::codegen: 'std.uni.InversionList!(GcPolicy).InversionList.sanitize.TimSortImpl!(__lambda1, Intervals!(uint[])).gallopSearch!(true, false).gallopSearch!(Intervals!(uint[]))' * TemplateInstance::codegen: 'std.range.primitives.isOutputRange!(CodepointInterval[], CodepointInterval)' * TemplateInstance::codegen: 'std.range.primitives.put!(CodepointInterval[], CodepointInterval)' * TemplateInstance::codegen: 'std.range.primitives.doPut!(CodepointInterval[], CodepointInterval)' * TemplateInstance::codegen: 'std.traits.hasMember!(CodepointInterval[], "put")' * TemplateInstance::codegen: 'std.algorithm.mutation.copy!(Intervals!(uint[]), CodepointInterval[])' * TemplateInstance::codegen: 'std.range.primitives.hasSlicing!(CodepointInterval[])' * TemplateInstance::codegen: 'std.traits.isArray!(Intervals!(uint[]))' * TemplateInstance::codegen: 'std.traits.isDynamicArray!(Intervals!(uint[]))' * TemplateInstance::codegen: 'std.traits.Unqual!(Intervals!(uint[]))' * TemplateInstance::codegen: 'std.uni.InversionList!(GcPolicy).InversionList.sanitize.TimSortImpl!(__lambda1, Intervals!(uint[])).gallopSearch!(false, true).gallopSearch!(CodepointInterval[])' * TemplateInstance::codegen: 'std.uni.InversionList!(GcPolicy).InversionList.sanitize.TimSortImpl!(__lambda1, Intervals!(uint[])).gallopSearch!(false, false).gallopSearch!(Intervals!(uint[]))' * TemplateInstance::codegen: 'std.uni.InversionList!(GcPolicy).InversionList.sanitize.TimSortImpl!(__lambda1, Intervals!(uint[])).gallopSearch!(true, false).gallopSearch!(CodepointInterval[])' * TemplateInstance::codegen: 'std.uni.InversionList!(GcPolicy).InversionList.sanitize.TimSortImpl!(__lambda1, Intervals!(uint[])).gallopSearch!(true, true).gallopSearch!(Intervals!(uint[]))' * TemplateInstance::codegen: 'std.uni.InversionList!(GcPolicy).InversionList.sanitize.assumeSorted!(__lambda1, Intervals!(uint[]))' * TemplateInstance::codegen: 'object.RTInfo!(Slice)' * TemplateInstance::codegen: 'std.algorithm.comparison.max!(uint, uint)' * TemplateInstance::codegen: 'std.algorithm.comparison.MaxType!(uint, uint)' * TemplateInstance::codegen: 'std.functional.safeOp!"<".safeOp!(uint, uint)' * TemplateInstance::codegen: 'std.traits.mostNegative!uint' * TemplateInstance::codegen: 'std.range.assumeSorted!("a<=b", uint[])' * TemplateInstance::codegen: 'std.range.SortedRange!(uint[], "a<=b")' * TemplateInstance::codegen: 'object.RTInfo!(SortedRange!(uint[], "a<=b"))' * TemplateInstance::codegen: 'std.range.isTwoWayCompatible!(binaryFun, uint, uint)' * TemplateInstance::codegen: 'std.functional.binaryFun!("a<=b", "a", "b").binaryFun!(uint, uint)' * TemplateInstance::codegen: 'std.range.SortedRange!(uint[], "a<=b").SortedRange.lowerBound!(cast(SearchPolicy)3, uint)' * TemplateInstance::codegen: 'std.range.SortedRange!(uint[], "a<=b").SortedRange.getTransitionIndex!(cast(SearchPolicy)3, geq, uint)' * TemplateInstance::codegen: 'std.range.SortedRange!(uint[], "a<=b").SortedRange.geq!(uint, uint)' * TemplateInstance::codegen: 'std.functional.binaryFun!("a<=b", "a", "b").binaryFun!(uint, uint)' * TemplateInstance::codegen: 'object.RTInfo!(InversionList!(GcPolicy))' * TypeInfoDeclaration::codegen(typeid(const(CowArray!(GcPolicy)))) * * type = 'const(CowArray!(GcPolicy))' * * typeinfo mangle: _D62TypeInfo_xS3std3uni32__T8CowArrayTS3std3uni8GcPolicyZ8CowArray6__initZ * * TypeInfoConstDeclaration::llvmDefine() typeid(const(CowArray!(GcPolicy))) * * * DtoTypeInfoOf(type = 'CowArray!(GcPolicy)', base='1') * * * * Type::getTypeInfo(): CowArray!(GcPolicy) * * * * * TypeInfoDeclaration::codegen(typeid(CowArray!(GcPolicy))) * * * * * * type = 'CowArray!(GcPolicy)' * * * * * * typeinfo mangle: _D61TypeInfo_S3std3uni32__T8CowArrayTS3std3uni8GcPolicyZ8CowArray6__initZ * * * * * * TypeInfoStructDeclaration::llvmDefine() typeid(CowArray!(GcPolicy)) * * * * * * * Resolving struct type: CowArray (/usr/include/dlang/ldc/std/uni.d(3110)) * * * * * * * DtoFunctionType(nothrow @trusted ulong(ref const(CowArray!(GcPolicy)) p)) * * * * * * * * Building type: const(CowArray!(GcPolicy))* * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * Final function type: i64 (%"std.uni.CowArray!(GcPolicy).CowArray"*) * * * * * * * DtoResolveFunction(std.uni.CowArray!(GcPolicy).CowArray.__xtoHash): * * * * * * * * DtoDeclareFunction(std.uni.CowArray!(GcPolicy).CowArray.__xtoHash): * * * * * * * * * DtoFunctionType(nothrow @trusted ulong(ref const(CowArray!(GcPolicy)) p)) * * * * * * * * * func = declare i64 @_D3std3uni32__T8CowArrayTS3std3uni8GcPolicyZ8CowArray9__xtoHashFNbNeKxS3std3uni32__T8CowArrayTS3std3uni8GcPolicyZ8CowArrayZm(%"std.uni.CowArray!(GcPolicy).CowArray"*) * * * * * * * DtoFunctionType(bool(ref const(CowArray!(GcPolicy)) p, ref const(CowArray!(GcPolicy)) q)) * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * Final function type: i1 (%"std.uni.CowArray!(GcPolicy).CowArray"*, %"std.uni.CowArray!(GcPolicy).CowArray"*) * * * * * * * DtoResolveFunction(std.uni.CowArray!(GcPolicy).CowArray.__xopEquals): * * * * * * * * DtoDeclareFunction(std.uni.CowArray!(GcPolicy).CowArray.__xopEquals): * * * * * * * * * DtoFunctionType(bool(ref const(CowArray!(GcPolicy)) p, ref const(CowArray!(GcPolicy)) q)) * * * * * * * * * func = declare i1 @_D3std3uni32__T8CowArrayTS3std3uni8GcPolicyZ8CowArray11__xopEqualsFKxS3std3uni32__T8CowArrayTS3std3uni8GcPolicyZ8CowArrayKxS3std3uni32__T8CowArrayTS3std3uni8GcPolicyZ8CowArrayZb(%"std.uni.CowArray!(GcPolicy).CowArray"*, %"std.uni.CowArray!(GcPolicy).CowArray"*) * * * * * * * isMember = this is: CowArray!(GcPolicy) * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted void()) * * * * * * * * Building type: CowArray!(GcPolicy)* * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * Final function type: void (%"std.uni.CowArray!(GcPolicy).CowArray"*) * * * * * * * DtoResolveFunction(std.uni.CowArray!(GcPolicy).CowArray.~this): /usr/include/dlang/ldc/std/uni.d(3147) * * * * * * * * DtoDeclareFunction(std.uni.CowArray!(GcPolicy).CowArray.~this): /usr/include/dlang/ldc/std/uni.d(3147) * * * * * * * * * isMember = this is: CowArray!(GcPolicy) * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted void()) * * * * * * * * * func = declare void @_D3std3uni32__T8CowArrayTS3std3uni8GcPolicyZ8CowArray6__dtorMFNaNbNiNeZv(%"std.uni.CowArray!(GcPolicy).CowArray"*) * * * * * * * isMember = this is: CowArray!(GcPolicy) * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted void()) * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * Final function type: void (%"std.uni.CowArray!(GcPolicy).CowArray"*) * * * * * * * DtoResolveFunction(std.uni.CowArray!(GcPolicy).CowArray.__postblit): /usr/include/dlang/ldc/std/uni.d(3139) * * * * * * * * DtoDeclareFunction(std.uni.CowArray!(GcPolicy).CowArray.__postblit): /usr/include/dlang/ldc/std/uni.d(3139) * * * * * * * * * isMember = this is: CowArray!(GcPolicy) * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted void()) * * * * * * * * * func = declare void @_D3std3uni32__T8CowArrayTS3std3uni8GcPolicyZ8CowArray10__postblitMFNaNbNiNeZv(%"std.uni.CowArray!(GcPolicy).CowArray"*) * * * * * * * IntegerExp::toConstElem: cast(void*)305419896LU @ void* * * * * * * * * pointer * * * * TypeInfoDeclaration::codegen(typeid(CowArray!(GcPolicy))) * TemplateInstance::codegen: 'std.traits.isAggregateType!(const(ubyte))' * TemplateInstance::codegen: 'std.traits.OriginalType!(const(ubyte))' * TemplateInstance::codegen: 'std.traits.ModifyTypePreservingSTC!(Impl, const(ubyte))' * TemplateInstance::codegen: 'std.traits.OriginalType!(const(ubyte)).Modifier!ubyte' * TemplateInstance::codegen: 'std.traits.IntegralTypeOf!(const(ubyte))' * TemplateInstance::codegen: 'std.format.hasToString!(const(ubyte), char)' * TemplateInstance::codegen: 'std.traits.isPointer!(const(ubyte))' * TemplateInstance::codegen: 'std.traits.isDelegate!(const(ubyte))' * TemplateInstance::codegen: 'std.format.formatValue!(Appender!string, const(ubyte), char)' * TemplateInstance::codegen: 'std.format.formatValue!(Appender!string, const(ubyte), char).formatValue.__lambda4!(const(ubyte))' * TemplateInstance::codegen: 'std.traits.isSigned!(const(ubyte))' * TemplateInstance::codegen: 'std.traits.Unsigned!(const(ubyte))' * TemplateInstance::codegen: 'std.traits.ModifyTypePreservingSTC!(Impl, const(ubyte))' * TemplateInstance::codegen: 'std.traits.Unsigned!(const(ubyte)).Modifier!ubyte' * TemplateInstance::codegen: 'std.traits.isAggregateType!(const(int))' * TemplateInstance::codegen: 'std.traits.OriginalType!(const(int))' * TemplateInstance::codegen: 'std.traits.ModifyTypePreservingSTC!(Impl, const(int))' * TemplateInstance::codegen: 'std.traits.OriginalType!(const(int)).Modifier!int' * TemplateInstance::codegen: 'std.traits.Unqual!(const(int))' * TemplateInstance::codegen: 'std.traits.IntegralTypeOf!(const(int))' * TemplateInstance::codegen: 'std.format.hasToString!(const(int), char)' * TemplateInstance::codegen: 'std.traits.isPointer!(const(int))' * TemplateInstance::codegen: 'std.traits.isDelegate!(const(int))' * TemplateInstance::codegen: 'std.format.formatValue!(Appender!string, const(int), char)' * TemplateInstance::codegen: 'std.format.formatValue!(Appender!string, const(int), char).formatValue.__lambda4!(const(int))' * TemplateInstance::codegen: 'std.traits.isSigned!(const(int))' * TemplateInstance::codegen: 'std.traits.SignedTypeOf!(const(int))' * TemplateInstance::codegen: 'std.traits.Unsigned!(const(int))' * TemplateInstance::codegen: 'std.traits.ModifyTypePreservingSTC!(Impl, const(int))' * TemplateInstance::codegen: 'std.traits.Unsigned!(const(int)).Modifier!int' * TemplateInstance::codegen: 'std.format.formatIntegral!(Appender!string, long, char)' * TemplateInstance::codegen: 'std.array.appender!(const(char)[])' * TemplateInstance::codegen: 'std.array.Appender!(const(char)[])' * TemplateInstance::codegen: 'std.traits.isMutable!(const(char))' * TemplateInstance::codegen: 'std.array.Appender!(const(char)[]).Appender.canPutItem!char' * TemplateInstance::codegen: 'std.traits.isImplicitlyConvertible!(char, const(char))' * TemplateInstance::codegen: 'std.array.Appender!(const(char)[]).Appender.canPutConstRange!char' * TemplateInstance::codegen: 'std.array.Appender!(const(char)[]).Appender.canPutRange!char' * TemplateInstance::codegen: 'std.array.Appender!(const(char)[]).Appender.put!char' * TemplateInstance::codegen: 'std.array.blockAttribute!(const(char))' * TemplateInstance::codegen: 'std.traits.hasIndirections!(const(char))' * TemplateInstance::codegen: 'std.traits.isStaticArray!(const(char))' * TemplateInstance::codegen: 'std.traits.isFunctionPointer!(const(char))' * TemplateInstance::codegen: 'std.traits.isPointer!(const(char))' * TemplateInstance::codegen: 'std.traits.isDelegate!(const(char))' * TemplateInstance::codegen: 'std.traits.isDynamicArray!(const(char))' * TemplateInstance::codegen: 'std.traits.isAssociativeArray!(const(char))' * TemplateInstance::codegen: 'std.array.Appender!(const(char)[]).Appender.canPutItem!dchar' * TemplateInstance::codegen: 'std.traits.isImplicitlyConvertible!(dchar, const(char))' * TemplateInstance::codegen: 'std.array.Appender!(const(char)[]).Appender.canPutConstRange!dchar' * TemplateInstance::codegen: 'std.array.Appender!(const(char)[]).Appender.canPutRange!dchar' * TemplateInstance::codegen: 'std.array.Appender!(const(char)[]).Appender.put!dchar' * TemplateInstance::codegen: 'std.array.Appender!(const(char)[]).Appender.canPutItem!(char[])' * TemplateInstance::codegen: 'std.traits.isImplicitlyConvertible!(char[], const(char))' * TemplateInstance::codegen: 'std.array.Appender!(const(char)[]).Appender.canPutConstRange!(char[])' * TemplateInstance::codegen: 'std.array.Appender!(const(char)[]).Appender.canPutRange!(char[])' * TemplateInstance::codegen: 'std.array.Appender!(const(char)[]).Appender.put!(char[])' * TemplateInstance::codegen: 'std.conv.text!(string, void*, string, int, string, int, string, char, string, ubyte, string, ubyte, string, bool, string, bool, string, bool, string, bool, string, bool, string, const(char)[], string, const(char)[], string)' * TemplateInstance::codegen: 'std.conv.textImpl!(string, string, void*, string, int, string, int, string, char, string, ubyte, string, ubyte, string, bool, string, bool, string, bool, string, bool, string, bool, string, const(char)[], string, const(char)[], string)' * TemplateInstance::codegen: 'std.conv.isRawStaticArray!(void*)' * TemplateInstance::codegen: 'std.traits.isStaticArray!(void*)' * TemplateInstance::codegen: 'std.traits.isAggregateType!(void*)' * TemplateInstance::codegen: 'std.traits.OriginalType!(void*)' * TemplateInstance::codegen: 'std.traits.ModifyTypePreservingSTC!(Impl, void*)' * TemplateInstance::codegen: 'std.traits.OriginalType!(void*).Modifier!(void*)' * TemplateInstance::codegen: 'std.conv.to!string.to!(void*)' * TemplateInstance::codegen: 'std.traits.isImplicitlyConvertible!(void*, string)' * TemplateInstance::codegen: 'std.range.primitives.isInfinite!(void*)' * TemplateInstance::codegen: 'std.range.primitives.isInputRange!(void*)' * TemplateInstance::codegen: 'std.traits.isNumeric!(void*)' * TemplateInstance::codegen: 'std.traits.Unqual!(void*)' * TemplateInstance::codegen: 'std.typetuple.staticIndexOf!(void*, byte, ubyte, short, ushort, int, uint, long, ulong)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(void*, byte, ubyte, short, ushort, int, uint, long, ulong)' * TemplateInstance::codegen: 'std.typetuple.Alias!(void*)' * TemplateInstance::codegen: 'std.typetuple.isSame!(void*, byte)' * TemplateInstance::codegen: 'std.typetuple.expectType!(void*)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(void*, ubyte, short, ushort, int, uint, long, ulong)' * TemplateInstance::codegen: 'std.typetuple.isSame!(void*, ubyte)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(void*, short, ushort, int, uint, long, ulong)' * TemplateInstance::codegen: 'std.typetuple.isSame!(void*, short)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(void*, ushort, int, uint, long, ulong)' * TemplateInstance::codegen: 'std.typetuple.isSame!(void*, ushort)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(void*, int, uint, long, ulong)' * TemplateInstance::codegen: 'std.typetuple.isSame!(void*, int)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(void*, uint, long, ulong)' * TemplateInstance::codegen: 'std.typetuple.isSame!(void*, uint)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(void*, long, ulong)' * TemplateInstance::codegen: 'std.typetuple.isSame!(void*, long)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(void*, ulong)' * TemplateInstance::codegen: 'std.typetuple.isSame!(void*, ulong)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(void*)' * TemplateInstance::codegen: 'std.typetuple.staticIndexOf!(void*, float, double, real)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(void*, float, double, real)' * TemplateInstance::codegen: 'std.typetuple.isSame!(void*, float)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(void*, double, real)' * TemplateInstance::codegen: 'std.typetuple.isSame!(void*, double)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(void*, real)' * TemplateInstance::codegen: 'std.typetuple.isSame!(void*, real)' * TemplateInstance::codegen: 'std.traits.isSomeChar!(void*)' * TemplateInstance::codegen: 'std.typetuple.staticIndexOf!(void*, char, wchar, dchar)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(void*, char, wchar, dchar)' * TemplateInstance::codegen: 'std.typetuple.isSame!(void*, char)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(void*, wchar, dchar)' * TemplateInstance::codegen: 'std.typetuple.isSame!(void*, wchar)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(void*, dchar)' * TemplateInstance::codegen: 'std.typetuple.isSame!(void*, dchar)' * TemplateInstance::codegen: 'std.traits.isBoolean!(void*)' * TemplateInstance::codegen: 'std.traits.isSomeString!(void*)' * TemplateInstance::codegen: 'std.traits.isDynamicArray!(void*)' * TemplateInstance::codegen: 'std.traits.isAssociativeArray!(void*)' * TemplateInstance::codegen: 'std.conv.isExactSomeString!(void*)' * TemplateInstance::codegen: 'std.conv.toImpl!(string, void*)' * TemplateInstance::codegen: 'std.traits.isIntegral!(void*)' * TemplateInstance::codegen: 'std.traits.isPointer!(void*)' * TemplateInstance::codegen: 'std.conv.toStr!(string, void*)' * TemplateInstance::codegen: 'std.format.hasToString!(void*, char)' * TemplateInstance::codegen: 'std.traits.isDelegate!(void*)' * TemplateInstance::codegen: 'std.format.formatValue!(Appender!string, void*, char)' * TemplateInstance::codegen: 'std.format.formatValue!(Appender!string, void*, char).formatValue.SharedOf!(void*)' * TemplateInstance::codegen: 'std.traits.isAggregateType!(const(ulong))' * TemplateInstance::codegen: 'std.traits.OriginalType!(const(ulong))' * TemplateInstance::codegen: 'std.traits.ModifyTypePreservingSTC!(Impl, const(ulong))' * TemplateInstance::codegen: 'std.traits.OriginalType!(const(ulong)).Modifier!ulong' * TemplateInstance::codegen: 'std.traits.IntegralTypeOf!(const(ulong))' * TemplateInstance::codegen: 'std.format.hasToString!(const(ulong), char)' * TemplateInstance::codegen: 'std.traits.isPointer!(const(ulong))' * TemplateInstance::codegen: 'std.traits.isDelegate!(const(ulong))' * TemplateInstance::codegen: 'std.format.formatValue!(Appender!string, const(ulong), char)' * TemplateInstance::codegen: 'std.format.formatValue!(Appender!string, const(ulong), char).formatValue.__lambda4!(const(ulong))' * TemplateInstance::codegen: 'std.traits.isSigned!(const(ulong))' * TemplateInstance::codegen: 'std.traits.Unsigned!(const(ulong))' * TemplateInstance::codegen: 'std.traits.ModifyTypePreservingSTC!(Impl, const(ulong))' * TemplateInstance::codegen: 'std.traits.Unsigned!(const(ulong)).Modifier!ulong' * TemplateInstance::codegen: 'std.conv.isRawStaticArray!ubyte' * TemplateInstance::codegen: 'std.conv.to!string.to!(ubyte)' * TemplateInstance::codegen: 'std.traits.isImplicitlyConvertible!(ubyte, string)' * TemplateInstance::codegen: 'std.range.primitives.isInfinite!ubyte' * TemplateInstance::codegen: 'std.conv.toImpl!(string, ubyte)' * TemplateInstance::codegen: 'std.conv.toImpl!(string, ubyte)' * TemplateInstance::codegen: 'std.conv.toImpl!(string, ubyte).toImpl.toStringRadixConvert!(4LU, 10u, true)' * TemplateInstance::codegen: 'std.conv.unsigned!ubyte' * TemplateInstance::codegen: 'std.conv.toImpl!(string, ubyte).toImpl.toStringRadixConvert!(3LU, 10u, false)' * TemplateInstance::codegen: 'std.conv.toImpl!(string, ubyte).toImpl.toStringRadixConvert!(2LU, 16u, false)' * TemplateInstance::codegen: 'std.conv.toImpl!(string, ubyte).toImpl.toStringRadixConvert!(8LU, 2u, false)' * TemplateInstance::codegen: 'std.conv.toImpl!(string, ubyte).toImpl.toStringRadixConvert!(3LU, 8u, false)' * TemplateInstance::codegen: 'std.conv.toImpl!(string, ubyte).toImpl.toStringRadixConvert!(6LU, 0u, false)' * TemplateInstance::codegen: 'std.conv.isRawStaticArray!bool' * TemplateInstance::codegen: 'std.traits.isStaticArray!bool' * TemplateInstance::codegen: 'std.traits.isAggregateType!bool' * TemplateInstance::codegen: 'std.traits.OriginalType!bool' * TemplateInstance::codegen: 'std.traits.ModifyTypePreservingSTC!(Impl, bool)' * TemplateInstance::codegen: 'std.traits.OriginalType!bool.Modifier!bool' * TemplateInstance::codegen: 'std.conv.to!string.to!(bool)' * TemplateInstance::codegen: 'std.traits.isImplicitlyConvertible!(bool, string)' * TemplateInstance::codegen: 'std.range.primitives.isInfinite!bool' * TemplateInstance::codegen: 'std.range.primitives.isInputRange!bool' * TemplateInstance::codegen: 'std.traits.isNumeric!bool' * TemplateInstance::codegen: 'std.traits.Unqual!bool' * TemplateInstance::codegen: 'std.typetuple.staticIndexOf!(bool, byte, ubyte, short, ushort, int, uint, long, ulong)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(bool, byte, ubyte, short, ushort, int, uint, long, ulong)' * TemplateInstance::codegen: 'std.typetuple.Alias!bool' * TemplateInstance::codegen: 'std.typetuple.isSame!(bool, byte)' * TemplateInstance::codegen: 'std.typetuple.expectType!bool' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(bool, ubyte, short, ushort, int, uint, long, ulong)' * TemplateInstance::codegen: 'std.typetuple.isSame!(bool, ubyte)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(bool, short, ushort, int, uint, long, ulong)' * TemplateInstance::codegen: 'std.typetuple.isSame!(bool, short)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(bool, ushort, int, uint, long, ulong)' * TemplateInstance::codegen: 'std.typetuple.isSame!(bool, ushort)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(bool, int, uint, long, ulong)' * TemplateInstance::codegen: 'std.typetuple.isSame!(bool, int)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(bool, uint, long, ulong)' * TemplateInstance::codegen: 'std.typetuple.isSame!(bool, uint)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(bool, long, ulong)' * TemplateInstance::codegen: 'std.typetuple.isSame!(bool, long)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(bool, ulong)' * TemplateInstance::codegen: 'std.typetuple.isSame!(bool, ulong)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!bool' * TemplateInstance::codegen: 'std.typetuple.staticIndexOf!(bool, float, double, real)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(bool, float, double, real)' * TemplateInstance::codegen: 'std.typetuple.isSame!(bool, float)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(bool, double, real)' * TemplateInstance::codegen: 'std.typetuple.isSame!(bool, double)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(bool, real)' * TemplateInstance::codegen: 'std.typetuple.isSame!(bool, real)' * TemplateInstance::codegen: 'std.traits.isSomeChar!bool' * TemplateInstance::codegen: 'std.typetuple.staticIndexOf!(bool, char, wchar, dchar)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(bool, char, wchar, dchar)' * TemplateInstance::codegen: 'std.typetuple.isSame!(bool, char)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(bool, wchar, dchar)' * TemplateInstance::codegen: 'std.typetuple.isSame!(bool, wchar)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(bool, dchar)' * TemplateInstance::codegen: 'std.typetuple.isSame!(bool, dchar)' * TemplateInstance::codegen: 'std.traits.isBoolean!bool' * TemplateInstance::codegen: 'std.traits.BooleanTypeOf!bool' * TemplateInstance::codegen: 'std.traits.isSomeString!bool' * TemplateInstance::codegen: 'std.traits.isDynamicArray!bool' * TemplateInstance::codegen: 'std.traits.isAssociativeArray!bool' * TemplateInstance::codegen: 'std.conv.isExactSomeString!bool' * TemplateInstance::codegen: 'std.conv.toImpl!(string, bool)' * TemplateInstance::codegen: 'std.traits.isIntegral!bool' * TemplateInstance::codegen: 'std.traits.isPointer!bool' * TemplateInstance::codegen: 'std.conv.toStr!(string, bool)' * TemplateInstance::codegen: 'object.RTInfo!(FormatSpec!char)' * TypeInfoDeclaration::codegen(typeid(const(int))) * * type = 'const(int)' * * typeinfo mangle: _D11TypeInfo_xi6__initZ * * TypeInfoConstDeclaration::llvmDefine() typeid(const(int)) * * * DtoTypeInfoOf(type = 'int', base='1') * * * * Type::getTypeInfo(): int * * * * TypeInfoDeclaration::codegen(typeid(int)) * * * * * type = 'int' * * * * * typeinfo mangle: _D10TypeInfo_i6__initZ * TypeInfoDeclaration::codegen(typeid(const(char))) * * type = 'const(char)' * * typeinfo mangle: _D11TypeInfo_xa6__initZ * * TypeInfoConstDeclaration::llvmDefine() typeid(const(char)) * * * DtoTypeInfoOf(type = 'char', base='1') * * * * Type::getTypeInfo(): char * * * * TypeInfoDeclaration::codegen(typeid(char)) * TypeInfoDeclaration::codegen(typeid(const(ubyte))) * TemplateInstance::codegen: 'std.uni.GcPolicy.append!(uint, int)' * TemplateInstance::codegen: 'object.RTInfo!(CowArray!(GcPolicy))' * TemplateInstance::codegen: 'object.RTInfo!(assumeSize!(low_8, 8LU))' * TemplateInstance::codegen: 'object.RTInfo!(assumeSize!(midlow_8, 8LU))' * TemplateInstance::codegen: 'core.time.convert!("weeks", "hnsecs")' * TemplateInstance::codegen: 'core.time.hnsecsPer!"weeks"' * TemplateInstance::codegen: 'core.time.hnsecsPer!"days"' * TemplateInstance::codegen: 'core.time.hnsecsPer!"hours"' * TemplateInstance::codegen: 'core.time.hnsecsPer!"minutes"' * TemplateInstance::codegen: 'core.time.convert!("days", "hnsecs")' * TemplateInstance::codegen: 'core.time.convert!("hours", "hnsecs")' * TemplateInstance::codegen: 'core.time.convert!("minutes", "hnsecs")' * TemplateInstance::codegen: 'core.time.convert!("msecs", "hnsecs")' * TemplateInstance::codegen: 'core.time.convert!("usecs", "hnsecs")' * TemplateInstance::codegen: 'core.time.convert!("hnsecs", "hnsecs")' * TemplateInstance::codegen: 'core.time.convert!("nsecs", "hnsecs")' * TemplateInstance::codegen: 'object.RTInfo!(Data)' * * VarDeclaration::codegen(): 'object.RTInfo!(Data).RTInfo' * * * DtoResolveVariable(object.RTInfo!(Data).RTInfo) * TypeInfoDeclaration::codegen(typeid(const(bool))) * TemplateInstance::codegen: 'object.capacity!ubyte' * * DtoDefineFunction(object.capacity!ubyte.capacity): /usr/include/dlang/ldc/object.di(667) * * * Doing function body for: capacity * * * DtoCreateNestedContext for capacity * * * * DtoCreateNestedContextType for object.capacity!ubyte.capacity * * * CompoundStatement::toIR(): * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/object.di(669) * * * * * CallExp::toElem: _d_arraysetcapacity(typeid(ubyte[]), 0LU, & arr) @ ulong * * * * * * VarExp::toElem: _d_arraysetcapacity @ pure nothrow extern (C) ulong(TypeInfo ti, ulong newcapacity, void[]* arrptr) * * * * * * * DtoSymbolAddress ('_d_arraysetcapacity' of type 'pure nothrow extern (C) ulong(TypeInfo ti, ulong newcapacity, void[]* arrptr)') * * * * * * * * FuncDeclaration * * * * * * * * DtoFunctionType(pure nothrow extern (C) ulong(TypeInfo ti, ulong newcapacity, void[]* arrptr)) * * * * * * * * * Building type: void[]* * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * Final function type: i64 (%object.TypeInfo*, i64, { i64, i8* }*) * * * * * * * * DtoResolveFunction(object._d_arraysetcapacity): /usr/include/dlang/ldc/object.di(664) * * * * * * * * * DtoDeclareFunction(object._d_arraysetcapacity): /usr/include/dlang/ldc/object.di(664) * * * * * * * * * * DtoFunctionType(pure nothrow extern (C) ulong(TypeInfo ti, ulong newcapacity, void[]* arrptr)) * * * * * * * * * * func = declare i64 @_d_arraysetcapacity(%object.TypeInfo*, i64, { i64, i8* }*) * * * * * * DtoCallFunction() * * * * * * * Building type: pure nothrow extern (C) ulong(TypeInfo ti, ulong newcapacity, void[]* arrptr) * * * * * * * * DtoFunctionType(pure nothrow extern (C) ulong(TypeInfo ti, ulong newcapacity, void[]* arrptr)) * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * Final function type: i64 (%object.TypeInfo*, i64, { i64, i8* }*) * * * * * * * doing normal arguments * * * * * * * Arguments so far: (0) * * * * * * * Function type: pure nothrow extern (C) ulong(TypeInfo ti, ulong newcapacity, void[]* arrptr) * * * * * * * DtoArgument * * * * * * * * SymOffExp::toElem: typeid(ubyte[]) @ object.TypeInfo * * * * * * * * * DtoSymbolAddress ('typeid(ubyte[])' of type 'object.TypeInfo_Array') * * * * * * * * * * TypeInfoDeclaration * * * * * * * * * Casting from 'TypeInfo_Array*' to 'object.TypeInfo' * * * * * * * * * * src: %object.TypeInfo_Array* bitcast (%object.TypeInfo* @_D11TypeInfo_Ah6__initZ to %object.TypeInfo_Array*) * * * * * * * * * * to type: %object.TypeInfo* * * * * * * * DtoArgument * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * value = i64 0 * * * * * * * DtoArgument * * * * * * * * SymOffExp::toElem: & arr @ void[]* * * * * * * * * * DtoSymbolAddress ('arr' of type 'ubyte[]') * * * * * * * * * * function param * * * * * * * * * * type: ubyte[] * * * * * * * * * Casting from 'ubyte[]*' to 'void[]*' * * * * * * * * * * src: %arr = alloca { i64, i8* }, align 8 * * * * * * * * * * to type: { i64, i8* }* * * * * * return value is '0x123bd1e0' * TemplateInstance::codegen: 'std.exception.enforce!(Exception, bool)' * * DtoDefineFunction(std.exception.enforce!(Exception, bool).enforce): /usr/include/dlang/ldc/std/exception.d(348) * * * Doing function body for: enforce * * * DtoCreateNestedContext for enforce * * * * DtoCreateNestedContextType for std.exception.enforce!(Exception, bool).enforce * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/exception.d(350) * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/exception.d(351) * * * * * * NotExp::toElem: !value @ bool * * * * * * * VarExp::toElem: value @ bool * * * * * * * * DtoSymbolAddress ('value' of type 'bool') * * * * * * * * * function param * * * * * * * * * type: bool * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/exception.d(351) * * * * * * * CallExp::toElem: bailOut(file, line, msg()) @ void * * * * * * * * VarExp::toElem: bailOut @ pure @safe void(string file, ulong line, const(char[]) msg) * * * * * * * * * DtoSymbolAddress ('bailOut' of type 'pure @safe void(string file, ulong line, const(char[]) msg)') * * * * * * * * * * FuncDeclaration * * * * * * * * * * DtoFunctionType(pure @safe void(string file, ulong line, const(char[]) msg)) * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * Final function type: void ({ i64, i8* }, i64, { i64, i8* }) * * * * * * * * * * DtoResolveFunction(std.exception.bailOut!(Exception).bailOut): /usr/include/dlang/ldc/std/exception.d(385) * * * * * * * * * * * DtoDeclareFunction(std.exception.bailOut!(Exception).bailOut): /usr/include/dlang/ldc/std/exception.d(385) * * * * * * * * * * * * DtoFunctionType(pure @safe void(string file, ulong line, const(char[]) msg)) * * * * * * * * * * * * func = declare void @_D3std9exception25__T7bailOutHTC9ExceptionZ7bailOutFNaNfAyamxAaZv({ i64, i8* }, i64, { i64, i8* }) * * * * * * * * DtoCallFunction() * * * * * * * * * Building type: pure @safe void(string file, ulong line, const(char[]) msg) * * * * * * * * * * DtoFunctionType(pure @safe void(string file, ulong line, const(char[]) msg)) * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * Final function type: void ({ i64, i8* }, i64, { i64, i8* }) * * * * * * * * * doing normal arguments * * * * * * * * * Arguments so far: (0) * * * * * * * * * Function type: pure @safe void(string file, ulong line, const(char[]) msg) * * * * * * * * * DtoArgument * * * * * * * * * * VarExp::toElem: file @ string * * * * * * * * * * * DtoSymbolAddress ('file' of type 'string') * * * * * * * * * * * * function param * * * * * * * * * * * * type: string * * * * * * * * * DtoArgument * * * * * * * * * * VarExp::toElem: line @ ulong * * * * * * * * * * * DtoSymbolAddress ('line' of type 'ulong') * * * * * * * * * * * * function param * * * * * * * * * * * * type: ulong * * * * * * * * * DtoArgument * * * * * * * * * * CallExp::toElem: msg() @ const(char[]) * * * * * * * * * * * VarExp::toElem: msg @ const(char)[] delegate() pure @safe * * * * * * * * * * * * DtoSymbolAddress ('msg' of type 'const(char)[]') * * * * * * * * * * * * * function param * * * * * * * * * * * * * type: const(char)[] * * * * * * * * * * * * * lazy parameter * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * Building type: const(char)[] delegate() pure @safe * * * * * * * * * * * * * DtoFunctionType(pure @safe const(char)[]()) * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * Final function type: { i64, i8* } (i8*) * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * %.ptr = load i8*, i8** %6 * * * * * * * * * * * * Function type: pure @safe const(char)[]() * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/exception.d(352) * * * * * * VarExp::toElem: value @ bool * * * * * * * DtoSymbolAddress ('value' of type 'bool') * * * * * * * * function param * * * * * * * * type: bool * * * * * * return value is '0x123c0fc8' * TemplateInstance::codegen: 'object.RTInfo!(Appender!(ubyte[]))' * * VarDeclaration::codegen(): 'object.RTInfo!(Appender!(ubyte[])).RTInfo' * * * DtoResolveVariable(object.RTInfo!(Appender!(ubyte[])).RTInfo) * TemplateInstance::codegen: 'object.RTInfo!(Rebindable!(immutable(TimeZone)))' * TypeInfoDeclaration::codegen(typeid(immutable(TimeZone))) * * type = 'immutable(TimeZone)' * * typeinfo mangle: _D33TypeInfo_yC3std8datetime8TimeZone6__initZ * * Building type: std.datetime.TimeZone * * * Building class type std.datetime.TimeZone @ /usr/include/dlang/ldc/std/datetime.d(26232) * * * * Instance size: 64 * * * * adding default initializer for struct field _name * * * * adding default initializer for struct field _stdName * * * * adding default initializer for struct field _dstName * * * * Building vtbl type for class std.datetime.TimeZone * * * * * Adding type of object.Object.toString * * * * * isMember = this is: object.Object * * * * * DtoFunctionType(string()) * * * * * Adding type of object.Object.toHash * * * * * isMember = this is: object.Object * * * * * DtoFunctionType(nothrow @trusted ulong()) * * * * * Adding type of object.Object.opCmp * * * * * isMember = this is: object.Object * * * * * DtoFunctionType(int(Object o)) * * * * * Adding type of object.Object.opEquals * * * * * isMember = this is: object.Object * * * * * DtoFunctionType(bool(Object o)) * * * * * Adding type of std.datetime.TimeZone.name * * * * * isMember = this is: std.datetime.TimeZone * * * * * DtoFunctionType(const nothrow @property @safe string()) * * * * * * x86-64 ABI: Transforming return type * * * * * * x86-64 ABI: Transforming argument types * * * * * * Final function type: { i64, i8* } (%std.datetime.TimeZone*) * * * * * Adding type of std.datetime.TimeZone.stdName * * * * * isMember = this is: std.datetime.TimeZone * * * * * DtoFunctionType(const nothrow @property @safe string()) * * * * * * x86-64 ABI: Transforming return type * * * * * * x86-64 ABI: Transforming argument types * * * * * * Final function type: { i64, i8* } (%std.datetime.TimeZone*) * * * * * Adding type of std.datetime.TimeZone.dstName * * * * * isMember = this is: std.datetime.TimeZone * * * * * DtoFunctionType(const nothrow @property @safe string()) * * * * * * x86-64 ABI: Transforming return type * * * * * * x86-64 ABI: Transforming argument types * * * * * * Final function type: { i64, i8* } (%std.datetime.TimeZone*) * * * * * Adding type of std.datetime.TimeZone.hasDST * * * * * isMember = this is: std.datetime.TimeZone * * * * * DtoFunctionType(const nothrow @property @safe bool()) * * * * * * x86-64 ABI: Transforming return type * * * * * * x86-64 ABI: Transforming argument types * * * * * * Final function type: i1 (%std.datetime.TimeZone*) * * * * * Adding type of std.datetime.TimeZone.dstInEffect * * * * * isMember = this is: std.datetime.TimeZone * * * * * DtoFunctionType(const nothrow @safe bool(long stdTime)) * * * * * * x86-64 ABI: Transforming return type * * * * * * x86-64 ABI: Transforming argument types * * * * * * Final function type: i1 (%std.datetime.TimeZone*, i64) * * * * * Adding type of std.datetime.TimeZone.utcToTZ * * * * * isMember = this is: std.datetime.TimeZone * * * * * DtoFunctionType(const nothrow @safe long(long stdTime)) * * * * * * x86-64 ABI: Transforming return type * * * * * * x86-64 ABI: Transforming argument types * * * * * * Final function type: i64 (%std.datetime.TimeZone*, i64) * * * * * Adding type of std.datetime.TimeZone.tzToUTC * * * * * isMember = this is: std.datetime.TimeZone * * * * * DtoFunctionType(const nothrow @safe long(long adjTime)) * * * * * * x86-64 ABI: Transforming return type * * * * * * x86-64 ABI: Transforming argument types * * * * * * Final function type: i64 (%std.datetime.TimeZone*, i64) * * * * * Adding type of std.datetime.TimeZone.utcOffsetAt * * * * * isMember = this is: std.datetime.TimeZone * * * * * DtoFunctionType(const nothrow @safe Duration(long stdTime)) * * * * * * x86-64 ABI: Transforming return type * * * * * * x86-64 ABI: Transforming argument types * * * * * * Final function type: %core.time.Duration (%std.datetime.TimeZone*, i64) * * * * class type: %std.datetime.TimeZone = type { %std.datetime.TimeZone.__vtbl*, i8*, { i64, i8* }, { i64, i8* }, { i64, i8* } } * * TypeInfoInvariantDeclaration::llvmDefine() typeid(immutable(TimeZone)) * * * DtoTypeInfoOf(type = 'std.datetime.TimeZone', base='1') * * * * Type::getTypeInfo(): std.datetime.TimeZone * * * * * DtoResolveClass(std.datetime.TimeZone): /usr/include/dlang/ldc/std/datetime.d(26232) * TypeInfoDeclaration::codegen(typeid(const(TimeZone))) * * type = 'const(TimeZone)' * * typeinfo mangle: _D33TypeInfo_xC3std8datetime8TimeZone6__initZ * * TypeInfoConstDeclaration::llvmDefine() typeid(const(TimeZone)) * * * DtoTypeInfoOf(type = 'std.datetime.TimeZone', base='1') * * * * Type::getTypeInfo(): std.datetime.TimeZone * TemplateInstance::codegen: 'object.RTInfo!(Data)' * TypeInfoDeclaration::codegen(typeid(const(DirHandle[]))) * * type = 'const(DirHandle[])' * * typeinfo mangle: _D48TypeInfo_xAS3std4file15DirIteratorImpl9DirHandle6__initZ * * Building type: const(DirHandle)[] * * * Building type: DirHandle * * * * Building struct type std.file.DirIteratorImpl.DirHandle @ /usr/include/dlang/ldc/std/file.d(2787) * * * * * adding default initializer for struct field dirpath * * * * * adding default initializer for struct field h * * * * * Building type: DIR* * * * * * * Building type: DIR * * * * * * * Building struct type core.sys.posix.dirent.DIR @ /usr/include/dlang/ldc/core/sys/posix/dirent.d(69) * * * * * * * * final struct type: %core.sys.posix.dirent.DIR = type { [1 x i8] } * * * * * final struct type: %std.file.DirIteratorImpl.DirHandle = type { { i64, i8* }, %core.sys.posix.dirent.DIR* } * * TypeInfoConstDeclaration::llvmDefine() typeid(const(DirHandle[])) * * * DtoTypeInfoOf(type = 'const(DirHandle)[]', base='1') * * * * Type::getTypeInfo(): const(DirHandle)[] * * * * * TypeInfoDeclaration::codegen(typeid(const(DirHandle)[])) * * * * * * type = 'const(DirHandle)[]' * * * * * * typeinfo mangle: _D48TypeInfo_AxS3std4file15DirIteratorImpl9DirHandle6__initZ * * * * * * TypeInfoArrayDeclaration::llvmDefine() typeid(const(DirHandle)[]) * * * * * * * DtoTypeInfoOf(type = 'const(DirHandle)', base='1') * * * * * * * * Type::getTypeInfo(): const(DirHandle) * * * * * * * * * TypeInfoDeclaration::codegen(typeid(const(DirHandle))) * * * * * * * * * * type = 'const(DirHandle)' * * * * * * * * * * typeinfo mangle: _D47TypeInfo_xS3std4file15DirIteratorImpl9DirHandle6__initZ * * * * * * * * * * TypeInfoConstDeclaration::llvmDefine() typeid(const(DirHandle)) * * * * * * * * * * * DtoTypeInfoOf(type = 'DirHandle', base='1') * * * * * * * * * * * * Type::getTypeInfo(): DirHandle * * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(DirHandle)) * * * * * * * * * * * * * * type = 'DirHandle' * * * * * * * * * * * * * * typeinfo mangle: _D46TypeInfo_S3std4file15DirIteratorImpl9DirHandle6__initZ * * * * * * * * * * * * * * TypeInfoStructDeclaration::llvmDefine() typeid(DirHandle) * * * * * * * * * * * * * * * Resolving struct type: DirHandle (/usr/include/dlang/ldc/std/file.d(2787)) * * * * * * * * * * * * * * * DtoFunctionType(nothrow @trusted ulong(ref const(DirHandle) p)) * * * * * * * * * * * * * * * * Building type: const(DirHandle)* * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * Final function type: i64 (%std.file.DirIteratorImpl.DirHandle*) * * * * * * * * * * * * * * * DtoResolveFunction(std.file.DirIteratorImpl.DirHandle.__xtoHash): * * * * * * * * * * * * * * * * DtoDeclareFunction(std.file.DirIteratorImpl.DirHandle.__xtoHash): * * * * * * * * * * * * * * * * * DtoFunctionType(nothrow @trusted ulong(ref const(DirHandle) p)) * * * * * * * * * * * * * * * * * func = declare i64 @_D3std4file15DirIteratorImpl9DirHandle9__xtoHashFNbNeKxS3std4file15DirIteratorImpl9DirHandleZm(%std.file.DirIteratorImpl.DirHandle*) * * * * * * * * * * * * * * * DtoFunctionType(bool(ref const(DirHandle) p, ref const(DirHandle) q)) * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * Final function type: i1 (%std.file.DirIteratorImpl.DirHandle*, %std.file.DirIteratorImpl.DirHandle*) * * * * * * * * * * * * * * * DtoResolveFunction(std.file.DirIteratorImpl.DirHandle.__xopEquals): * * * * * * * * * * * * * * * * DtoDeclareFunction(std.file.DirIteratorImpl.DirHandle.__xopEquals): * * * * * * * * * * * * * * * * * DtoFunctionType(bool(ref const(DirHandle) p, ref const(DirHandle) q)) * * * * * * * * * * * * * * * * * func = declare i1 @_D3std4file15DirIteratorImpl9DirHandle11__xopEqualsFKxS3std4file15DirIteratorImpl9DirHandleKxS3std4file15DirIteratorImpl9DirHandleZb(%std.file.DirIteratorImpl.DirHandle*, %std.file.DirIteratorImpl.DirHandle*) * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(DirHandle)) * * * * * * * * TypeInfoDeclaration::codegen(typeid(const(DirHandle))) * * * * TypeInfoDeclaration::codegen(typeid(const(DirHandle)[])) * TemplateInstance::codegen: 'object.capacity!(DirHandle)' * TypeInfoDeclaration::codegen(typeid(DirHandle[])) * * type = 'DirHandle[]' * * typeinfo mangle: _D47TypeInfo_AS3std4file15DirIteratorImpl9DirHandle6__initZ * * Building type: DirHandle[] * * TypeInfoArrayDeclaration::llvmDefine() typeid(DirHandle[]) * * * DtoTypeInfoOf(type = 'DirHandle', base='1') * * * * Type::getTypeInfo(): DirHandle * * * * TypeInfoDeclaration::codegen(typeid(DirHandle)) * TemplateInstance::codegen: 'std.array.appenderNewCapacity!24LU' * TemplateInstance::codegen: 'std.array.blockAttribute!(DirHandle)' * TemplateInstance::codegen: 'std.traits.hasIndirections!(DirHandle)' * TemplateInstance::codegen: 'std.traits.FieldTypeTuple!(DirHandle)' * TemplateInstance::codegen: 'std.traits.isNested!(DirHandle)' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(hasIndirections, string, DIR*)' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(hasIndirections, string)' * TemplateInstance::codegen: 'std.traits.F!string' * TemplateInstance::codegen: 'std.traits.isFunctionPointer!string' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(hasIndirections, DIR*)' * TemplateInstance::codegen: 'std.traits.F!(DIR*)' * TemplateInstance::codegen: 'std.traits.isStaticArray!(DIR*)' * TemplateInstance::codegen: 'std.traits.isAggregateType!(DIR*)' * TemplateInstance::codegen: 'std.traits.OriginalType!(DIR*)' * TemplateInstance::codegen: 'std.traits.ModifyTypePreservingSTC!(Impl, DIR*)' * TemplateInstance::codegen: 'std.traits.OriginalType!(DIR*).Modifier!(DIR*)' * TemplateInstance::codegen: 'std.traits.isFunctionPointer!(DIR*)' * TemplateInstance::codegen: 'std.traits.isPointer!(DIR*)' * TemplateInstance::codegen: 'std.traits.isDelegate!(DIR*)' * TemplateInstance::codegen: 'std.traits.isDynamicArray!(DIR*)' * TemplateInstance::codegen: 'std.traits.Unqual!(DIR*)' * TemplateInstance::codegen: 'std.traits.isAssociativeArray!(DIR*)' * TemplateInstance::codegen: 'object.RTInfo!(Appender!(DirHandle[]))' * TemplateInstance::codegen: 'object.RTInfo!(Data)' * TypeInfoDeclaration::codegen(typeid(const(DirEntry[]))) * * type = 'const(DirEntry[])' * * typeinfo mangle: _D30TypeInfo_xAS3std4file8DirEntry6__initZ * * Building type: const(DirEntry)[] * * * Building type: DirEntry * * * * Building struct type std.file.DirEntry @ /usr/include/dlang/ldc/std/file.d(2176) * * * * * adding explicit initializer for struct field _didLStat * * * * * adding explicit initializer for struct field _didStat * * * * * adding explicit initializer for struct field _dTypeSet * * * * * adding default initializer for struct field _name * * * * * adding default initializer for struct field _statBuf * * * * * adding default initializer for struct field _lstatMode * * * * * adding default initializer for struct field _dType * * * * * Building type: stat_t * * * * * * Building struct type core.sys.posix.sys.stat.stat_t @ /usr/include/dlang/ldc/core/sys/posix/sys/stat.d(141) * * * * * * * adding default initializer for struct field st_dev * * * * * * * adding default initializer for struct field st_ino * * * * * * * adding default initializer for struct field st_nlink * * * * * * * adding default initializer for struct field st_mode * * * * * * * adding default initializer for struct field st_uid * * * * * * * adding default initializer for struct field st_gid * * * * * * * adding default initializer for struct field __pad0 * * * * * * * adding default initializer for struct field st_rdev * * * * * * * adding default initializer for struct field st_size * * * * * * * adding default initializer for struct field st_blksize * * * * * * * adding default initializer for struct field st_blocks * * * * * * * adding default initializer for struct field st_atime * * * * * * * adding default initializer for struct field st_atimensec * * * * * * * adding default initializer for struct field st_mtime * * * * * * * adding default initializer for struct field st_mtimensec * * * * * * * adding default initializer for struct field st_ctime * * * * * * * adding default initializer for struct field st_ctimensec * * * * * * * adding default initializer for struct field __unused * * * * * * * Building type: long[3] * * * * * * * final struct type: %core.sys.posix.sys.stat.stat_t = type { i64, i64, i64, i32, i32, i32, i32, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, [3 x i64] } * * * * * final struct type: %std.file.DirEntry = type { { i64, i8* }, %core.sys.posix.sys.stat.stat_t, i32, i8, i8, i8, i8 } * * TypeInfoConstDeclaration::llvmDefine() typeid(const(DirEntry[])) * * * DtoTypeInfoOf(type = 'const(DirEntry)[]', base='1') * * * * Type::getTypeInfo(): const(DirEntry)[] * * * * * TypeInfoDeclaration::codegen(typeid(const(DirEntry)[])) * * * * * * type = 'const(DirEntry)[]' * * * * * * typeinfo mangle: _D30TypeInfo_AxS3std4file8DirEntry6__initZ * * * * * * TypeInfoArrayDeclaration::llvmDefine() typeid(const(DirEntry)[]) * * * * * * * DtoTypeInfoOf(type = 'const(DirEntry)', base='1') * * * * * * * * Type::getTypeInfo(): const(DirEntry) * * * * * * * * TypeInfoDeclaration::codegen(typeid(const(DirEntry))) * * * * * * * * * type = 'const(DirEntry)' * * * * * * * * * typeinfo mangle: _D29TypeInfo_xS3std4file8DirEntry6__initZ * * * * * * * * * TypeInfoConstDeclaration::llvmDefine() typeid(const(DirEntry)) * * * * * * * * * * DtoTypeInfoOf(type = 'DirEntry', base='1') * * * * * * * * * * * Type::getTypeInfo(): DirEntry * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(DirEntry)) * * * * * * * * * * * * * type = 'DirEntry' * * * * * * * * * * * * * typeinfo mangle: _D28TypeInfo_S3std4file8DirEntry6__initZ * * * * * * * * * * * * * TypeInfoStructDeclaration::llvmDefine() typeid(DirEntry) * * * * * * * * * * * * * * Resolving struct type: DirEntry (/usr/include/dlang/ldc/std/file.d(2176)) * * * * * * * * * * * * * * DtoFunctionType(nothrow @trusted ulong(ref const(DirEntry) p)) * * * * * * * * * * * * * * * Building type: const(DirEntry)* * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * Final function type: i64 (%std.file.DirEntry*) * * * * * * * * * * * * * * DtoResolveFunction(std.file.DirEntry.__xtoHash): * * * * * * * * * * * * * * * DtoDeclareFunction(std.file.DirEntry.__xtoHash): * * * * * * * * * * * * * * * * DtoFunctionType(nothrow @trusted ulong(ref const(DirEntry) p)) * * * * * * * * * * * * * * * * func = declare i64 @_D3std4file8DirEntry9__xtoHashFNbNeKxS3std4file8DirEntryZm(%std.file.DirEntry*) * * * * * * * * * * * * * * DtoFunctionType(bool(ref const(DirEntry) p, ref const(DirEntry) q)) * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * Final function type: i1 (%std.file.DirEntry*, %std.file.DirEntry*) * * * * * * * * * * * * * * DtoResolveFunction(std.file.DirEntry.__xopEquals): * * * * * * * * * * * * * * * DtoDeclareFunction(std.file.DirEntry.__xopEquals): * * * * * * * * * * * * * * * * DtoFunctionType(bool(ref const(DirEntry) p, ref const(DirEntry) q)) * * * * * * * * * * * * * * * * func = declare i1 @_D3std4file8DirEntry11__xopEqualsFKxS3std4file8DirEntryKxS3std4file8DirEntryZb(%std.file.DirEntry*, %std.file.DirEntry*) * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(DirEntry)) * * * * TypeInfoDeclaration::codegen(typeid(const(DirEntry)[])) * TemplateInstance::codegen: 'object.capacity!(DirEntry)' * TypeInfoDeclaration::codegen(typeid(DirEntry[])) * * type = 'DirEntry[]' * * typeinfo mangle: _D29TypeInfo_AS3std4file8DirEntry6__initZ * * Building type: DirEntry[] * * TypeInfoArrayDeclaration::llvmDefine() typeid(DirEntry[]) * * * DtoTypeInfoOf(type = 'DirEntry', base='1') * * * * Type::getTypeInfo(): DirEntry * * * * TypeInfoDeclaration::codegen(typeid(DirEntry)) * TemplateInstance::codegen: 'std.array.appenderNewCapacity!168LU' * TemplateInstance::codegen: 'std.array.blockAttribute!(DirEntry)' * TemplateInstance::codegen: 'std.traits.hasIndirections!(DirEntry)' * TemplateInstance::codegen: 'std.traits.FieldTypeTuple!(DirEntry)' * TemplateInstance::codegen: 'std.traits.isNested!(DirEntry)' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(hasIndirections, string, stat_t, uint, ubyte, bool, bool, bool)' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(hasIndirections, string, stat_t, uint)' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(hasIndirections, stat_t, uint)' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(hasIndirections, stat_t)' * TemplateInstance::codegen: 'std.traits.F!(stat_t)' * TemplateInstance::codegen: 'std.traits.FieldTypeTuple!(stat_t)' * TemplateInstance::codegen: 'std.traits.isNested!(stat_t)' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(hasIndirections, ulong, ulong, ulong, uint, uint, uint, uint, ulong, long, long, long, long, ulong, long, ulong, long, ulong, long[3])' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(hasIndirections, ulong, ulong, ulong, uint, uint, uint, uint, ulong, long)' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(hasIndirections, ulong, ulong, ulong, uint)' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(hasIndirections, ulong, ulong)' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(hasIndirections, ulong)' * TemplateInstance::codegen: 'std.traits.F!ulong' * TemplateInstance::codegen: 'std.traits.isFunctionPointer!ulong' * TemplateInstance::codegen: 'std.traits.isDelegate!ulong' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(hasIndirections, ulong, uint)' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(hasIndirections, uint)' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(hasIndirections, uint, uint, uint, ulong, long)' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(hasIndirections, uint, uint)' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(hasIndirections, uint, ulong, long)' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(hasIndirections, ulong, long)' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(hasIndirections, long)' * TemplateInstance::codegen: 'std.traits.F!long' * TemplateInstance::codegen: 'std.traits.isStaticArray!long' * TemplateInstance::codegen: 'std.traits.isAggregateType!long' * TemplateInstance::codegen: 'std.traits.OriginalType!long' * TemplateInstance::codegen: 'std.traits.ModifyTypePreservingSTC!(Impl, long)' * TemplateInstance::codegen: 'std.traits.OriginalType!long.Modifier!long' * TemplateInstance::codegen: 'std.traits.isFunctionPointer!long' * TemplateInstance::codegen: 'std.traits.isPointer!long' * TemplateInstance::codegen: 'std.traits.isDelegate!long' * TemplateInstance::codegen: 'std.traits.isDynamicArray!long' * TemplateInstance::codegen: 'std.traits.Unqual!long' * TemplateInstance::codegen: 'std.traits.isAssociativeArray!long' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(hasIndirections, long, long, long, ulong, long, ulong, long, ulong, long[3])' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(hasIndirections, long, long, long, ulong)' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(hasIndirections, long, long)' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(hasIndirections, long, ulong)' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(hasIndirections, long, ulong, long, ulong, long[3])' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(hasIndirections, long, ulong, long[3])' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(hasIndirections, ulong, long[3])' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(hasIndirections, long[3])' * TemplateInstance::codegen: 'std.traits.F!(long[3])' * TemplateInstance::codegen: 'std.traits.isStaticArray!(long[3])' * TemplateInstance::codegen: 'std.traits.StaticArrayTypeOf!(long[3])' * TemplateInstance::codegen: 'std.traits.isAggregateType!(long[3])' * TemplateInstance::codegen: 'std.traits.OriginalType!(long[3])' * TemplateInstance::codegen: 'std.traits.ModifyTypePreservingSTC!(Impl, long[3])' * TemplateInstance::codegen: 'std.traits.OriginalType!(long[3]).Modifier!(long[3])' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(hasIndirections, ubyte, bool, bool, bool)' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(hasIndirections, ubyte, bool)' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(hasIndirections, ubyte)' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(hasIndirections, bool)' * TemplateInstance::codegen: 'std.traits.F!bool' * TemplateInstance::codegen: 'std.traits.isFunctionPointer!bool' * TemplateInstance::codegen: 'std.traits.isDelegate!bool' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(hasIndirections, bool, bool)' * TemplateInstance::codegen: 'object.RTInfo!(Appender!(DirEntry[]))' * TemplateInstance::codegen: 'object.RTInfo!(Impl)' * TypeInfoDeclaration::codegen(typeid(const(DirIteratorImpl))) * * type = 'const(DirIteratorImpl)' * * typeinfo mangle: _D37TypeInfo_xS3std4file15DirIteratorImpl6__initZ * * Building type: DirIteratorImpl * * * Building struct type std.file.DirIteratorImpl @ /usr/include/dlang/ldc/std/file.d(2693) * * * * adding default initializer for struct field _mode * * * * adding default initializer for struct field _followSymlink * * * * adding default initializer for struct field _cur * * * * adding default initializer for struct field _stack * * * * adding default initializer for struct field _stashed * * * * Building type: SpanMode * * * * Building type: SpanMode * * * * Building type: Appender!(DirHandle[]) * * * * * Building struct type std.array.Appender!(DirHandle[]).Appender @ /usr/include/dlang/ldc/std/array.d(2591) * * * * * * adding default initializer for struct field _data * * * * * * Building type: Data* * * * * * * * Building type: Data * * * * * * * * Building struct type std.array.Appender!(DirHandle[]).Appender.Data @ /usr/include/dlang/ldc/std/array.d(2597) * * * * * * * * * adding explicit initializer for struct field canExtend * * * * * * * * * adding default initializer for struct field capacity * * * * * * * * * adding default initializer for struct field arr * * * * * * * * * final struct type: %"std.array.Appender!(DirHandle[]).Appender.Data" = type { i64, { i64, %std.file.DirIteratorImpl.DirHandle* }, i8, [7 x i8] } * * * * * * final struct type: %"std.array.Appender!(DirHandle[]).Appender" = type { %"std.array.Appender!(DirHandle[]).Appender.Data"* } * * * * Building type: Appender!(DirEntry[]) * * * * * Building struct type std.array.Appender!(DirEntry[]).Appender @ /usr/include/dlang/ldc/std/array.d(2591) * * * * * * adding default initializer for struct field _data * * * * * * Building type: Data* * * * * * * * Building type: Data * * * * * * * * Building struct type std.array.Appender!(DirEntry[]).Appender.Data @ /usr/include/dlang/ldc/std/array.d(2597) * * * * * * * * * adding explicit initializer for struct field canExtend * * * * * * * * * adding default initializer for struct field capacity * * * * * * * * * adding default initializer for struct field arr * * * * * * * * * final struct type: %"std.array.Appender!(DirEntry[]).Appender.Data" = type { i64, { i64, %std.file.DirEntry* }, i8, [7 x i8] } * * * * * * final struct type: %"std.array.Appender!(DirEntry[]).Appender" = type { %"std.array.Appender!(DirEntry[]).Appender.Data"* } * * * * final struct type: %std.file.DirIteratorImpl = type { i32, i8, [3 x i8], %std.file.DirEntry, %"std.array.Appender!(DirHandle[]).Appender", %"std.array.Appender!(DirEntry[]).Appender" } * * TypeInfoConstDeclaration::llvmDefine() typeid(const(DirIteratorImpl)) * * * DtoTypeInfoOf(type = 'DirIteratorImpl', base='1') * * * * Type::getTypeInfo(): DirIteratorImpl * * * * TypeInfoDeclaration::codegen(typeid(DirIteratorImpl)) * * * * * type = 'DirIteratorImpl' * * * * * typeinfo mangle: _D36TypeInfo_S3std4file15DirIteratorImpl6__initZ * * * * * TypeInfoStructDeclaration::llvmDefine() typeid(DirIteratorImpl) * * * * * * Resolving struct type: DirIteratorImpl (/usr/include/dlang/ldc/std/file.d(2693)) * * * * * * DtoFunctionType(nothrow @trusted ulong(ref const(DirIteratorImpl) p)) * * * * * * * Building type: const(DirIteratorImpl)* * * * * * * * x86-64 ABI: Transforming return type * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * Final function type: i64 (%std.file.DirIteratorImpl*) * * * * * * DtoResolveFunction(std.file.DirIteratorImpl.__xtoHash): * * * * * * * DtoDeclareFunction(std.file.DirIteratorImpl.__xtoHash): * * * * * * * * DtoFunctionType(nothrow @trusted ulong(ref const(DirIteratorImpl) p)) * * * * * * * * func = declare i64 @_D3std4file15DirIteratorImpl9__xtoHashFNbNeKxS3std4file15DirIteratorImplZm(%std.file.DirIteratorImpl*) * * * * * * DtoFunctionType(bool(ref const(DirIteratorImpl) p, ref const(DirIteratorImpl) q)) * * * * * * * x86-64 ABI: Transforming return type * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * Final function type: i1 (%std.file.DirIteratorImpl*, %std.file.DirIteratorImpl*) * * * * * * DtoResolveFunction(std.file.DirIteratorImpl.__xopEquals): * * * * * * * DtoDeclareFunction(std.file.DirIteratorImpl.__xopEquals): * * * * * * * * DtoFunctionType(bool(ref const(DirIteratorImpl) p, ref const(DirIteratorImpl) q)) * * * * * * * * func = declare i1 @_D3std4file15DirIteratorImpl11__xopEqualsFKxS3std4file15DirIteratorImplKxS3std4file15DirIteratorImplZb(%std.file.DirIteratorImpl*, %std.file.DirIteratorImpl*) * * * * * * isMember = this is: DirIteratorImpl * * * * * * DtoFunctionType(void()) * * * * * * * Building type: DirIteratorImpl* * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * Final function type: void (%std.file.DirIteratorImpl*) * * * * * * DtoResolveFunction(std.file.DirIteratorImpl.~this): /usr/include/dlang/ldc/std/file.d(2896) * * * * * * * DtoDeclareFunction(std.file.DirIteratorImpl.~this): /usr/include/dlang/ldc/std/file.d(2896) * * * * * * * * isMember = this is: DirIteratorImpl * * * * * * * * DtoFunctionType(void()) * * * * * * * * func = declare void @_D3std4file15DirIteratorImpl6__dtorMFZv(%std.file.DirIteratorImpl*) * TemplateInstance::codegen: 'std.typecons.RefCounted!(DirIteratorImpl, cast(RefCountedAutoInitialize)0).RefCounted.RefCountedStore.initialize!()' * TemplateInstance::codegen: 'std.traits.hasIndirections!(DirIteratorImpl)' * TemplateInstance::codegen: 'std.traits.FieldTypeTuple!(DirIteratorImpl)' * TemplateInstance::codegen: 'std.traits.isNested!(DirIteratorImpl)' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(hasIndirections, SpanMode, bool, DirEntry, Appender!(DirHandle[]), Appender!(DirEntry[]))' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(hasIndirections, SpanMode, bool)' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(hasIndirections, SpanMode)' * TemplateInstance::codegen: 'std.traits.F!(SpanMode)' * TemplateInstance::codegen: 'std.traits.isStaticArray!(SpanMode)' * TemplateInstance::codegen: 'std.traits.isAggregateType!(SpanMode)' * TemplateInstance::codegen: 'std.traits.OriginalType!(SpanMode)' * TemplateInstance::codegen: 'std.traits.ModifyTypePreservingSTC!(Impl, SpanMode)' * TemplateInstance::codegen: 'std.traits.OriginalType!(SpanMode).Modifier!(SpanMode)' * TemplateInstance::codegen: 'std.traits.isFunctionPointer!(SpanMode)' * TemplateInstance::codegen: 'std.traits.isPointer!(SpanMode)' * TemplateInstance::codegen: 'std.traits.isDelegate!(SpanMode)' * TemplateInstance::codegen: 'std.traits.isDynamicArray!(SpanMode)' * TemplateInstance::codegen: 'std.traits.isAssociativeArray!(SpanMode)' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(hasIndirections, DirEntry, Appender!(DirHandle[]), Appender!(DirEntry[]))' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(hasIndirections, DirEntry)' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(hasIndirections, Appender!(DirHandle[]), Appender!(DirEntry[]))' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(hasIndirections, Appender!(DirHandle[]))' * TemplateInstance::codegen: 'std.traits.F!(Appender!(DirHandle[]))' * TemplateInstance::codegen: 'std.traits.FieldTypeTuple!(Appender!(DirHandle[]))' * TemplateInstance::codegen: 'std.traits.isNested!(Appender!(DirHandle[]))' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(hasIndirections, Data*)' * TemplateInstance::codegen: 'std.traits.F!(Data*)' * TemplateInstance::codegen: 'std.traits.isStaticArray!(Data*)' * TemplateInstance::codegen: 'std.traits.isAggregateType!(Data*)' * TemplateInstance::codegen: 'std.traits.OriginalType!(Data*)' * TemplateInstance::codegen: 'std.traits.ModifyTypePreservingSTC!(Impl, Data*)' * TemplateInstance::codegen: 'std.traits.OriginalType!(Data*).Modifier!(Data*)' * TemplateInstance::codegen: 'std.traits.isFunctionPointer!(Data*)' * TemplateInstance::codegen: 'std.traits.isPointer!(Data*)' * TemplateInstance::codegen: 'std.traits.isDelegate!(Data*)' * TemplateInstance::codegen: 'std.traits.isDynamicArray!(Data*)' * TemplateInstance::codegen: 'std.traits.Unqual!(Data*)' * TemplateInstance::codegen: 'std.traits.isAssociativeArray!(Data*)' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(hasIndirections, Appender!(DirEntry[]))' * TemplateInstance::codegen: 'std.traits.F!(Appender!(DirEntry[]))' * TemplateInstance::codegen: 'std.traits.FieldTypeTuple!(Appender!(DirEntry[]))' * TemplateInstance::codegen: 'std.traits.isNested!(Appender!(DirEntry[]))' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(hasIndirections, Data*)' * TemplateInstance::codegen: 'std.traits.F!(Data*)' * TemplateInstance::codegen: 'std.traits.isStaticArray!(Data*)' * TemplateInstance::codegen: 'std.traits.isAggregateType!(Data*)' * TemplateInstance::codegen: 'std.traits.OriginalType!(Data*)' * TemplateInstance::codegen: 'std.traits.ModifyTypePreservingSTC!(Impl, Data*)' * TemplateInstance::codegen: 'std.traits.OriginalType!(Data*).Modifier!(Data*)' * TemplateInstance::codegen: 'std.traits.isFunctionPointer!(Data*)' * TemplateInstance::codegen: 'std.traits.isPointer!(Data*)' * TemplateInstance::codegen: 'std.traits.isDelegate!(Data*)' * TemplateInstance::codegen: 'std.traits.isDynamicArray!(Data*)' * TemplateInstance::codegen: 'std.traits.Unqual!(Data*)' * TemplateInstance::codegen: 'std.traits.isAssociativeArray!(Data*)' * TemplateInstance::codegen: 'std.conv.emplace!(DirIteratorImpl)' * TemplateInstance::codegen: 'std.conv.emplaceImpl!(DirIteratorImpl)' * TemplateInstance::codegen: 'std.traits.Unqual!(DirIteratorImpl)' * TemplateInstance::codegen: 'std.conv.emplaceImpl!(DirIteratorImpl).emplaceImpl!()' * TemplateInstance::codegen: 'std.conv.emplaceInitializer!(DirIteratorImpl)' * TemplateInstance::codegen: 'std.traits.hasElaborateAssign!(DirIteratorImpl)' * TemplateInstance::codegen: 'std.traits.isStaticArray!(DirIteratorImpl)' * TemplateInstance::codegen: 'std.traits.isAggregateType!(DirIteratorImpl)' * TemplateInstance::codegen: 'std.traits.OriginalType!(DirIteratorImpl)' * TemplateInstance::codegen: 'std.traits.ModifyTypePreservingSTC!(Impl, DirIteratorImpl)' * TemplateInstance::codegen: 'std.traits.OriginalType!(DirIteratorImpl).Modifier!(DirIteratorImpl)' * TemplateInstance::codegen: 'std.traits.rvalueOf!(DirIteratorImpl)' * TemplateInstance::codegen: 'std.traits.lvalueOf!(DirIteratorImpl)' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(hasElaborateAssign, SpanMode, bool, DirEntry, Appender!(DirHandle[]), Appender!(DirEntry[]))' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(hasElaborateAssign, SpanMode, bool)' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(hasElaborateAssign, SpanMode)' * TemplateInstance::codegen: 'std.traits.F!(SpanMode)' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(hasElaborateAssign, bool)' * TemplateInstance::codegen: 'std.traits.F!bool' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(hasElaborateAssign, DirEntry, Appender!(DirHandle[]), Appender!(DirEntry[]))' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(hasElaborateAssign, DirEntry)' * TemplateInstance::codegen: 'std.traits.F!(DirEntry)' * TemplateInstance::codegen: 'std.traits.isStaticArray!(DirEntry)' * TemplateInstance::codegen: 'std.traits.isAggregateType!(DirEntry)' * TemplateInstance::codegen: 'std.traits.AliasThisTypeOf!(DirEntry)' * TemplateInstance::codegen: 'std.typetuple.TypeTuple!"name"' * TemplateInstance::codegen: 'std.traits.StaticArrayTypeOf!string' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(hasElaborateAssign, string, stat_t, uint, ubyte, bool, bool, bool)' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(hasElaborateAssign, string, stat_t, uint)' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(hasElaborateAssign, string)' * TemplateInstance::codegen: 'std.traits.F!string' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(hasElaborateAssign, stat_t, uint)' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(hasElaborateAssign, stat_t)' * TemplateInstance::codegen: 'std.traits.F!(stat_t)' * TemplateInstance::codegen: 'std.traits.isStaticArray!(stat_t)' * TemplateInstance::codegen: 'std.traits.isAggregateType!(stat_t)' * TemplateInstance::codegen: 'std.traits.OriginalType!(stat_t)' * TemplateInstance::codegen: 'std.traits.ModifyTypePreservingSTC!(Impl, stat_t)' * TemplateInstance::codegen: 'std.traits.OriginalType!(stat_t).Modifier!(stat_t)' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(hasElaborateAssign, ulong, ulong, ulong, uint, uint, uint, uint, ulong, long, long, long, long, ulong, long, ulong, long, ulong, long[3])' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(hasElaborateAssign, ulong, ulong, ulong, uint, uint, uint, uint, ulong, long)' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(hasElaborateAssign, ulong, ulong, ulong, uint)' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(hasElaborateAssign, ulong, ulong)' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(hasElaborateAssign, ulong)' * TemplateInstance::codegen: 'std.traits.F!ulong' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(hasElaborateAssign, ulong, uint)' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(hasElaborateAssign, uint)' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(hasElaborateAssign, uint, uint, uint, ulong, long)' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(hasElaborateAssign, uint, uint)' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(hasElaborateAssign, uint, ulong, long)' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(hasElaborateAssign, ulong, long)' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(hasElaborateAssign, long)' * TemplateInstance::codegen: 'std.traits.F!long' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(hasElaborateAssign, long, long, long, ulong, long, ulong, long, ulong, long[3])' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(hasElaborateAssign, long, long, long, ulong)' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(hasElaborateAssign, long, long)' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(hasElaborateAssign, long, ulong)' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(hasElaborateAssign, long, ulong, long, ulong, long[3])' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(hasElaborateAssign, long, ulong, long[3])' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(hasElaborateAssign, ulong, long[3])' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(hasElaborateAssign, long[3])' * TemplateInstance::codegen: 'std.traits.F!(long[3])' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(hasElaborateAssign, ubyte, bool, bool, bool)' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(hasElaborateAssign, ubyte, bool)' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(hasElaborateAssign, ubyte)' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(hasElaborateAssign, bool, bool)' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(hasElaborateAssign, Appender!(DirHandle[]), Appender!(DirEntry[]))' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(hasElaborateAssign, Appender!(DirHandle[]))' * TemplateInstance::codegen: 'std.traits.F!(Appender!(DirHandle[]))' * TemplateInstance::codegen: 'std.traits.isStaticArray!(Appender!(DirHandle[]))' * TemplateInstance::codegen: 'std.traits.isAggregateType!(Appender!(DirHandle[]))' * TemplateInstance::codegen: 'std.traits.OriginalType!(Appender!(DirHandle[]))' * TemplateInstance::codegen: 'std.traits.ModifyTypePreservingSTC!(Impl, Appender!(DirHandle[]))' * TemplateInstance::codegen: 'std.traits.OriginalType!(Appender!(DirHandle[])).Modifier!(Appender!(DirHandle[]))' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(hasElaborateAssign, Data*)' * TemplateInstance::codegen: 'std.traits.F!(Data*)' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(hasElaborateAssign, Appender!(DirEntry[]))' * TemplateInstance::codegen: 'std.traits.F!(Appender!(DirEntry[]))' * TemplateInstance::codegen: 'std.traits.isStaticArray!(Appender!(DirEntry[]))' * TemplateInstance::codegen: 'std.traits.isAggregateType!(Appender!(DirEntry[]))' * TemplateInstance::codegen: 'std.traits.OriginalType!(Appender!(DirEntry[]))' * TemplateInstance::codegen: 'std.traits.ModifyTypePreservingSTC!(Impl, Appender!(DirEntry[]))' * TemplateInstance::codegen: 'std.traits.OriginalType!(Appender!(DirEntry[])).Modifier!(Appender!(DirEntry[]))' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(hasElaborateAssign, Data*)' * TemplateInstance::codegen: 'std.traits.F!(Data*)' * TemplateInstance::codegen: 'object.RTInfo!(RefCountedStore)' * TemplateInstance::codegen: 'object.destroy!(DirIteratorImpl)' * TypeInfoDeclaration::codegen(typeid(DirIteratorImpl)) * TemplateInstance::codegen: 'std.traits.isBlitAssignable!(Impl*)' * TemplateInstance::codegen: 'std.traits.OriginalType!(Impl*)' * TemplateInstance::codegen: 'std.traits.ModifyTypePreservingSTC!(Impl, Impl*)' * TemplateInstance::codegen: 'std.traits.OriginalType!(Impl*).Modifier!(Impl*)' * TemplateInstance::codegen: 'std.traits.isStaticArray!(Impl*)' * TemplateInstance::codegen: 'std.traits.isAggregateType!(Impl*)' * TemplateInstance::codegen: 'std.traits.isMutable!(Impl*)' * TemplateInstance::codegen: 'std.algorithm.mutation.swap!(Impl*)' * TemplateInstance::codegen: 'std.traits.hasAliasing!(Impl*)' * TemplateInstance::codegen: 'std.traits.hasRawAliasing!(Impl*)' * TemplateInstance::codegen: 'std.traits.RepresentationTypeTuple!(Impl*)' * TemplateInstance::codegen: 'std.traits.RepresentationTypeTuple!(Impl*).Impl!(Impl*)' * TemplateInstance::codegen: 'std.traits.RepresentationTypeTuple!(Impl*).Impl!()' * TemplateInstance::codegen: 'std.typetuple.TypeTuple!(Impl*)' * TemplateInstance::codegen: 'std.traits.hasRawAliasing!(Impl*).Impl!(Impl*)' * TemplateInstance::codegen: 'std.traits.isFunctionPointer!(Impl*)' * TemplateInstance::codegen: 'std.traits.hasRawAliasing!(Impl*).Impl!()' * TemplateInstance::codegen: 'std.traits.hasObjects!(Impl*)' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(isAliasingDelegate, Impl*, Impl*)' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(isAliasingDelegate, Impl*)' * TemplateInstance::codegen: 'std.traits.hasAliasing!(Impl*).F!(Impl*)' * TemplateInstance::codegen: 'std.traits.isDelegate!(Impl*)' * TemplateInstance::codegen: 'std.traits.isCallable!(Impl*)' * TemplateInstance::codegen: 'std.traits.isSomeFunction!(Impl*)' * TemplateInstance::codegen: 'std.exception.doesPointTo!(Impl*, Impl*, void)' * TemplateInstance::codegen: 'std.traits.isPointer!(Impl*)' * TemplateInstance::codegen: 'std.traits.hasElaborateAssign!(Impl*)' * TemplateInstance::codegen: 'std.traits.isAssignable!(Impl*, Impl*)' * TemplateInstance::codegen: 'std.traits.isRvalueAssignable!(Impl*, Impl*)' * TemplateInstance::codegen: 'std.traits.lvalueOf!(Impl*)' * TemplateInstance::codegen: 'std.traits.rvalueOf!(Impl*)' * TemplateInstance::codegen: 'std.traits.isLvalueAssignable!(Impl*, Impl*)' * TemplateInstance::codegen: 'std.algorithm.mutation.move!(DirIteratorImpl)' * TemplateInstance::codegen: 'std.traits.hasAliasing!(DirIteratorImpl)' * TemplateInstance::codegen: 'std.traits.hasRawAliasing!(DirIteratorImpl)' * TemplateInstance::codegen: 'std.traits.RepresentationTypeTuple!(DirIteratorImpl)' * TemplateInstance::codegen: 'std.traits.RepresentationTypeTuple!(DirIteratorImpl).Impl!(SpanMode, bool, DirEntry, Appender!(DirHandle[]), Appender!(DirEntry[]))' * TemplateInstance::codegen: 'std.traits.RepresentationTypeTuple!(DirIteratorImpl).Impl!(bool, DirEntry, Appender!(DirHandle[]), Appender!(DirEntry[]))' * TemplateInstance::codegen: 'std.traits.RepresentationTypeTuple!(DirIteratorImpl).Impl!(DirEntry, Appender!(DirHandle[]), Appender!(DirEntry[]))' * TemplateInstance::codegen: 'std.traits.RepresentationTypeTuple!(DirIteratorImpl).Impl!(string, stat_t, uint, ubyte, bool, bool, bool, Appender!(DirHandle[]), Appender!(DirEntry[]))' * TemplateInstance::codegen: 'std.traits.RepresentationTypeTuple!(DirIteratorImpl).Impl!(stat_t, uint, ubyte, bool, bool, bool, Appender!(DirHandle[]), Appender!(DirEntry[]))' * TemplateInstance::codegen: 'std.traits.RepresentationTypeTuple!(DirIteratorImpl).Impl!(ulong, ulong, ulong, uint, uint, uint, uint, ulong, long, long, long, long, ulong, long, ulong, long, ulong, long[3], uint, ubyte, bool, bool, bool, Appender!(DirHandle[]), Appender!(DirEntry[]))' * TemplateInstance::codegen: 'std.traits.RepresentationTypeTuple!(DirIteratorImpl).Impl!(ulong, ulong, uint, uint, uint, uint, ulong, long, long, long, long, ulong, long, ulong, long, ulong, long[3], uint, ubyte, bool, bool, bool, Appender!(DirHandle[]), Appender!(DirEntry[]))' * TemplateInstance::codegen: 'std.traits.RepresentationTypeTuple!(DirIteratorImpl).Impl!(ulong, uint, uint, uint, uint, ulong, long, long, long, long, ulong, long, ulong, long, ulong, long[3], uint, ubyte, bool, bool, bool, Appender!(DirHandle[]), Appender!(DirEntry[]))' * TemplateInstance::codegen: 'std.traits.RepresentationTypeTuple!(DirIteratorImpl).Impl!(uint, uint, uint, uint, ulong, long, long, long, long, ulong, long, ulong, long, ulong, long[3], uint, ubyte, bool, bool, bool, Appender!(DirHandle[]), Appender!(DirEntry[]))' * TemplateInstance::codegen: 'std.traits.RepresentationTypeTuple!(DirIteratorImpl).Impl!(uint, uint, uint, ulong, long, long, long, long, ulong, long, ulong, long, ulong, long[3], uint, ubyte, bool, bool, bool, Appender!(DirHandle[]), Appender!(DirEntry[]))' * TemplateInstance::codegen: 'std.traits.RepresentationTypeTuple!(DirIteratorImpl).Impl!(uint, uint, ulong, long, long, long, long, ulong, long, ulong, long, ulong, long[3], uint, ubyte, bool, bool, bool, Appender!(DirHandle[]), Appender!(DirEntry[]))' * TemplateInstance::codegen: 'std.traits.RepresentationTypeTuple!(DirIteratorImpl).Impl!(uint, ulong, long, long, long, long, ulong, long, ulong, long, ulong, long[3], uint, ubyte, bool, bool, bool, Appender!(DirHandle[]), Appender!(DirEntry[]))' * TemplateInstance::codegen: 'std.traits.RepresentationTypeTuple!(DirIteratorImpl).Impl!(ulong, long, long, long, long, ulong, long, ulong, long, ulong, long[3], uint, ubyte, bool, bool, bool, Appender!(DirHandle[]), Appender!(DirEntry[]))' * TemplateInstance::codegen: 'std.traits.RepresentationTypeTuple!(DirIteratorImpl).Impl!(long, long, long, long, ulong, long, ulong, long, ulong, long[3], uint, ubyte, bool, bool, bool, Appender!(DirHandle[]), Appender!(DirEntry[]))' * TemplateInstance::codegen: 'std.traits.RepresentationTypeTuple!(DirIteratorImpl).Impl!(long, long, long, ulong, long, ulong, long, ulong, long[3], uint, ubyte, bool, bool, bool, Appender!(DirHandle[]), Appender!(DirEntry[]))' * TemplateInstance::codegen: 'std.traits.RepresentationTypeTuple!(DirIteratorImpl).Impl!(long, long, ulong, long, ulong, long, ulong, long[3], uint, ubyte, bool, bool, bool, Appender!(DirHandle[]), Appender!(DirEntry[]))' * TemplateInstance::codegen: 'std.traits.RepresentationTypeTuple!(DirIteratorImpl).Impl!(long, ulong, long, ulong, long, ulong, long[3], uint, ubyte, bool, bool, bool, Appender!(DirHandle[]), Appender!(DirEntry[]))' * TemplateInstance::codegen: 'std.traits.RepresentationTypeTuple!(DirIteratorImpl).Impl!(ulong, long, ulong, long, ulong, long[3], uint, ubyte, bool, bool, bool, Appender!(DirHandle[]), Appender!(DirEntry[]))' * TemplateInstance::codegen: 'std.traits.RepresentationTypeTuple!(DirIteratorImpl).Impl!(long, ulong, long, ulong, long[3], uint, ubyte, bool, bool, bool, Appender!(DirHandle[]), Appender!(DirEntry[]))' * TemplateInstance::codegen: 'std.traits.RepresentationTypeTuple!(DirIteratorImpl).Impl!(ulong, long, ulong, long[3], uint, ubyte, bool, bool, bool, Appender!(DirHandle[]), Appender!(DirEntry[]))' * TemplateInstance::codegen: 'std.traits.RepresentationTypeTuple!(DirIteratorImpl).Impl!(long, ulong, long[3], uint, ubyte, bool, bool, bool, Appender!(DirHandle[]), Appender!(DirEntry[]))' * TemplateInstance::codegen: 'std.traits.RepresentationTypeTuple!(DirIteratorImpl).Impl!(ulong, long[3], uint, ubyte, bool, bool, bool, Appender!(DirHandle[]), Appender!(DirEntry[]))' * TemplateInstance::codegen: 'std.traits.RepresentationTypeTuple!(DirIteratorImpl).Impl!(long[3], uint, ubyte, bool, bool, bool, Appender!(DirHandle[]), Appender!(DirEntry[]))' * TemplateInstance::codegen: 'std.traits.RepresentationTypeTuple!(DirIteratorImpl).Impl!(uint, ubyte, bool, bool, bool, Appender!(DirHandle[]), Appender!(DirEntry[]))' * TemplateInstance::codegen: 'std.traits.RepresentationTypeTuple!(DirIteratorImpl).Impl!(ubyte, bool, bool, bool, Appender!(DirHandle[]), Appender!(DirEntry[]))' * TemplateInstance::codegen: 'std.traits.RepresentationTypeTuple!(DirIteratorImpl).Impl!(bool, bool, bool, Appender!(DirHandle[]), Appender!(DirEntry[]))' * TemplateInstance::codegen: 'std.traits.RepresentationTypeTuple!(DirIteratorImpl).Impl!(bool, bool, Appender!(DirHandle[]), Appender!(DirEntry[]))' * TemplateInstance::codegen: 'std.traits.RepresentationTypeTuple!(DirIteratorImpl).Impl!(bool, Appender!(DirHandle[]), Appender!(DirEntry[]))' * TemplateInstance::codegen: 'std.traits.RepresentationTypeTuple!(DirIteratorImpl).Impl!(Appender!(DirHandle[]), Appender!(DirEntry[]))' * TemplateInstance::codegen: 'std.traits.RepresentationTypeTuple!(DirIteratorImpl).Impl!(Data*, Appender!(DirEntry[]))' * TemplateInstance::codegen: 'std.traits.RepresentationTypeTuple!(DirIteratorImpl).Impl!(Appender!(DirEntry[]))' * TemplateInstance::codegen: 'std.traits.RepresentationTypeTuple!(DirIteratorImpl).Impl!(Data*)' * TemplateInstance::codegen: 'std.traits.RepresentationTypeTuple!(DirIteratorImpl).Impl!()' * TemplateInstance::codegen: 'std.typetuple.TypeTuple!(Data*)' * TemplateInstance::codegen: 'std.typetuple.TypeTuple!(Data*, Data*)' * TemplateInstance::codegen: 'std.typetuple.TypeTuple!(bool, Data*, Data*)' * TemplateInstance::codegen: 'std.typetuple.TypeTuple!(bool, bool, Data*, Data*)' * TemplateInstance::codegen: 'std.typetuple.TypeTuple!(bool, bool, bool, Data*, Data*)' * TemplateInstance::codegen: 'std.typetuple.TypeTuple!(ubyte, bool, bool, bool, Data*, Data*)' * TemplateInstance::codegen: 'std.typetuple.TypeTuple!(uint, ubyte, bool, bool, bool, Data*, Data*)' * TemplateInstance::codegen: 'std.typetuple.TypeTuple!(long[3], uint, ubyte, bool, bool, bool, Data*, Data*)' * TemplateInstance::codegen: 'std.typetuple.TypeTuple!(ulong, long[3], uint, ubyte, bool, bool, bool, Data*, Data*)' * TemplateInstance::codegen: 'std.typetuple.TypeTuple!(long, ulong, long[3], uint, ubyte, bool, bool, bool, Data*, Data*)' * TemplateInstance::codegen: 'std.typetuple.TypeTuple!(ulong, long, ulong, long[3], uint, ubyte, bool, bool, bool, Data*, Data*)' * TemplateInstance::codegen: 'std.typetuple.TypeTuple!(long, ulong, long, ulong, long[3], uint, ubyte, bool, bool, bool, Data*, Data*)' * TemplateInstance::codegen: 'std.typetuple.TypeTuple!(ulong, long, ulong, long, ulong, long[3], uint, ubyte, bool, bool, bool, Data*, Data*)' * TemplateInstance::codegen: 'std.typetuple.TypeTuple!(long, ulong, long, ulong, long, ulong, long[3], uint, ubyte, bool, bool, bool, Data*, Data*)' * TemplateInstance::codegen: 'std.typetuple.TypeTuple!(long, long, ulong, long, ulong, long, ulong, long[3], uint, ubyte, bool, bool, bool, Data*, Data*)' * TemplateInstance::codegen: 'std.typetuple.TypeTuple!(long, long, long, ulong, long, ulong, long, ulong, long[3], uint, ubyte, bool, bool, bool, Data*, Data*)' * TemplateInstance::codegen: 'std.typetuple.TypeTuple!(long, long, long, long, ulong, long, ulong, long, ulong, long[3], uint, ubyte, bool, bool, bool, Data*, Data*)' * TemplateInstance::codegen: 'std.typetuple.TypeTuple!(ulong, long, long, long, long, ulong, long, ulong, long, ulong, long[3], uint, ubyte, bool, bool, bool, Data*, Data*)' * TemplateInstance::codegen: 'std.typetuple.TypeTuple!(uint, ulong, long, long, long, long, ulong, long, ulong, long, ulong, long[3], uint, ubyte, bool, bool, bool, Data*, Data*)' * TemplateInstance::codegen: 'std.typetuple.TypeTuple!(uint, uint, ulong, long, long, long, long, ulong, long, ulong, long, ulong, long[3], uint, ubyte, bool, bool, bool, Data*, Data*)' * TemplateInstance::codegen: 'std.typetuple.TypeTuple!(uint, uint, uint, ulong, long, long, long, long, ulong, long, ulong, long, ulong, long[3], uint, ubyte, bool, bool, bool, Data*, Data*)' * TemplateInstance::codegen: 'std.typetuple.TypeTuple!(uint, uint, uint, uint, ulong, long, long, long, long, ulong, long, ulong, long, ulong, long[3], uint, ubyte, bool, bool, bool, Data*, Data*)' * TemplateInstance::codegen: 'std.typetuple.TypeTuple!(ulong, uint, uint, uint, uint, ulong, long, long, long, long, ulong, long, ulong, long, ulong, long[3], uint, ubyte, bool, bool, bool, Data*, Data*)' * TemplateInstance::codegen: 'std.typetuple.TypeTuple!(ulong, ulong, uint, uint, uint, uint, ulong, long, long, long, long, ulong, long, ulong, long, ulong, long[3], uint, ubyte, bool, bool, bool, Data*, Data*)' * TemplateInstance::codegen: 'std.typetuple.TypeTuple!(ulong, ulong, ulong, uint, uint, uint, uint, ulong, long, long, long, long, ulong, long, ulong, long, ulong, long[3], uint, ubyte, bool, bool, bool, Data*, Data*)' * TemplateInstance::codegen: 'std.typetuple.TypeTuple!(string, ulong, ulong, ulong, uint, uint, uint, uint, ulong, long, long, long, long, ulong, long, ulong, long, ulong, long[3], uint, ubyte, bool, bool, bool, Data*, Data*)' * TemplateInstance::codegen: 'std.typetuple.TypeTuple!(bool, string, ulong, ulong, ulong, uint, uint, uint, uint, ulong, long, long, long, long, ulong, long, ulong, long, ulong, long[3], uint, ubyte, bool, bool, bool, Data*, Data*)' * TemplateInstance::codegen: 'std.typetuple.TypeTuple!(SpanMode, bool, string, ulong, ulong, ulong, uint, uint, uint, uint, ulong, long, long, long, long, ulong, long, ulong, long, ulong, long[3], uint, ubyte, bool, bool, bool, Data*, Data*)' * TemplateInstance::codegen: 'std.traits.hasRawAliasing!(DirIteratorImpl).Impl!(SpanMode, bool, string, ulong, ulong, ulong, uint, uint, uint, uint, ulong, long, long, long, long, ulong, long, ulong, long, ulong, long[3], uint, ubyte, bool, bool, bool, Data*, Data*)' * TemplateInstance::codegen: 'std.traits.hasRawAliasing!(DirIteratorImpl).Impl!(bool, string, ulong, ulong, ulong, uint, uint, uint, uint, ulong, long, long, long, long, ulong, long, ulong, long, ulong, long[3], uint, ubyte, bool, bool, bool, Data*, Data*)' * TemplateInstance::codegen: 'std.traits.hasRawAliasing!(DirIteratorImpl).Impl!(string, ulong, ulong, ulong, uint, uint, uint, uint, ulong, long, long, long, long, ulong, long, ulong, long, ulong, long[3], uint, ubyte, bool, bool, bool, Data*, Data*)' * TemplateInstance::codegen: 'std.traits.hasRawAliasing!(DirIteratorImpl).Impl!(ulong, ulong, ulong, uint, uint, uint, uint, ulong, long, long, long, long, ulong, long, ulong, long, ulong, long[3], uint, ubyte, bool, bool, bool, Data*, Data*)' * TemplateInstance::codegen: 'std.traits.hasRawAliasing!(DirIteratorImpl).Impl!(ulong, ulong, uint, uint, uint, uint, ulong, long, long, long, long, ulong, long, ulong, long, ulong, long[3], uint, ubyte, bool, bool, bool, Data*, Data*)' * TemplateInstance::codegen: 'std.traits.hasRawAliasing!(DirIteratorImpl).Impl!(ulong, uint, uint, uint, uint, ulong, long, long, long, long, ulong, long, ulong, long, ulong, long[3], uint, ubyte, bool, bool, bool, Data*, Data*)' * TemplateInstance::codegen: 'std.traits.hasRawAliasing!(DirIteratorImpl).Impl!(uint, uint, uint, uint, ulong, long, long, long, long, ulong, long, ulong, long, ulong, long[3], uint, ubyte, bool, bool, bool, Data*, Data*)' * TemplateInstance::codegen: 'std.traits.hasRawAliasing!(DirIteratorImpl).Impl!(uint, uint, uint, ulong, long, long, long, long, ulong, long, ulong, long, ulong, long[3], uint, ubyte, bool, bool, bool, Data*, Data*)' * TemplateInstance::codegen: 'std.traits.hasRawAliasing!(DirIteratorImpl).Impl!(uint, uint, ulong, long, long, long, long, ulong, long, ulong, long, ulong, long[3], uint, ubyte, bool, bool, bool, Data*, Data*)' * TemplateInstance::codegen: 'std.traits.hasRawAliasing!(DirIteratorImpl).Impl!(uint, ulong, long, long, long, long, ulong, long, ulong, long, ulong, long[3], uint, ubyte, bool, bool, bool, Data*, Data*)' * TemplateInstance::codegen: 'std.traits.hasRawAliasing!(DirIteratorImpl).Impl!(ulong, long, long, long, long, ulong, long, ulong, long, ulong, long[3], uint, ubyte, bool, bool, bool, Data*, Data*)' * TemplateInstance::codegen: 'std.traits.hasRawAliasing!(DirIteratorImpl).Impl!(long, long, long, long, ulong, long, ulong, long, ulong, long[3], uint, ubyte, bool, bool, bool, Data*, Data*)' * TemplateInstance::codegen: 'std.traits.hasRawAliasing!(DirIteratorImpl).Impl!(long, long, long, ulong, long, ulong, long, ulong, long[3], uint, ubyte, bool, bool, bool, Data*, Data*)' * TemplateInstance::codegen: 'std.traits.hasRawAliasing!(DirIteratorImpl).Impl!(long, long, ulong, long, ulong, long, ulong, long[3], uint, ubyte, bool, bool, bool, Data*, Data*)' * TemplateInstance::codegen: 'std.traits.hasRawAliasing!(DirIteratorImpl).Impl!(long, ulong, long, ulong, long, ulong, long[3], uint, ubyte, bool, bool, bool, Data*, Data*)' * TemplateInstance::codegen: 'std.traits.hasRawAliasing!(DirIteratorImpl).Impl!(ulong, long, ulong, long, ulong, long[3], uint, ubyte, bool, bool, bool, Data*, Data*)' * TemplateInstance::codegen: 'std.traits.hasRawAliasing!(DirIteratorImpl).Impl!(long, ulong, long, ulong, long[3], uint, ubyte, bool, bool, bool, Data*, Data*)' * TemplateInstance::codegen: 'std.traits.hasRawAliasing!(DirIteratorImpl).Impl!(ulong, long, ulong, long[3], uint, ubyte, bool, bool, bool, Data*, Data*)' * TemplateInstance::codegen: 'std.traits.hasRawAliasing!(DirIteratorImpl).Impl!(long, ulong, long[3], uint, ubyte, bool, bool, bool, Data*, Data*)' * TemplateInstance::codegen: 'std.traits.hasRawAliasing!(DirIteratorImpl).Impl!(ulong, long[3], uint, ubyte, bool, bool, bool, Data*, Data*)' * TemplateInstance::codegen: 'std.traits.hasRawAliasing!(DirIteratorImpl).Impl!(long[3], uint, ubyte, bool, bool, bool, Data*, Data*)' * TemplateInstance::codegen: 'std.traits.isAssociativeArray!(long[3])' * TemplateInstance::codegen: 'std.traits.Unqual!(long[3])' * TemplateInstance::codegen: 'std.traits.hasRawAliasing!(DirIteratorImpl).Impl!(uint, ubyte, bool, bool, bool, Data*, Data*)' * TemplateInstance::codegen: 'std.traits.hasRawAliasing!(DirIteratorImpl).Impl!(ubyte, bool, bool, bool, Data*, Data*)' * TemplateInstance::codegen: 'std.traits.hasRawAliasing!(DirIteratorImpl).Impl!(bool, bool, bool, Data*, Data*)' * TemplateInstance::codegen: 'std.traits.hasRawAliasing!(DirIteratorImpl).Impl!(bool, bool, Data*, Data*)' * TemplateInstance::codegen: 'std.traits.hasRawAliasing!(DirIteratorImpl).Impl!(bool, Data*, Data*)' * TemplateInstance::codegen: 'std.traits.hasRawAliasing!(DirIteratorImpl).Impl!(Data*, Data*)' * TemplateInstance::codegen: 'std.traits.hasRawAliasing!(DirIteratorImpl).Impl!(Data*)' * TemplateInstance::codegen: 'std.traits.hasRawAliasing!(DirIteratorImpl).Impl!()' * TemplateInstance::codegen: 'std.traits.hasObjects!(DirIteratorImpl)' * TemplateInstance::codegen: 'std.traits.hasObjects!(SpanMode, bool, string, ulong, ulong, ulong, uint, uint, uint, uint, ulong, long, long, long, long, ulong, long, ulong, long, ulong, long[3], uint, ubyte, bool, bool, bool, Data*, Data*)' * TemplateInstance::codegen: 'std.traits.hasObjects!(bool, string, ulong, ulong, ulong, uint, uint, uint, uint, ulong, long, long, long, long, ulong, long, ulong, long, ulong, long[3], uint, ubyte, bool, bool, bool, Data*, Data*)' * TemplateInstance::codegen: 'std.traits.hasObjects!(string, ulong, ulong, ulong, uint, uint, uint, uint, ulong, long, long, long, long, ulong, long, ulong, long, ulong, long[3], uint, ubyte, bool, bool, bool, Data*, Data*)' * TemplateInstance::codegen: 'std.traits.hasObjects!(ulong, ulong, ulong, uint, uint, uint, uint, ulong, long, long, long, long, ulong, long, ulong, long, ulong, long[3], uint, ubyte, bool, bool, bool, Data*, Data*)' * TemplateInstance::codegen: 'std.traits.hasObjects!(ulong, ulong, uint, uint, uint, uint, ulong, long, long, long, long, ulong, long, ulong, long, ulong, long[3], uint, ubyte, bool, bool, bool, Data*, Data*)' * TemplateInstance::codegen: 'std.traits.hasObjects!(ulong, uint, uint, uint, uint, ulong, long, long, long, long, ulong, long, ulong, long, ulong, long[3], uint, ubyte, bool, bool, bool, Data*, Data*)' * TemplateInstance::codegen: 'std.traits.hasObjects!(uint, uint, uint, uint, ulong, long, long, long, long, ulong, long, ulong, long, ulong, long[3], uint, ubyte, bool, bool, bool, Data*, Data*)' * TemplateInstance::codegen: 'std.traits.hasObjects!(uint, uint, uint, ulong, long, long, long, long, ulong, long, ulong, long, ulong, long[3], uint, ubyte, bool, bool, bool, Data*, Data*)' * TemplateInstance::codegen: 'std.traits.hasObjects!(uint, uint, ulong, long, long, long, long, ulong, long, ulong, long, ulong, long[3], uint, ubyte, bool, bool, bool, Data*, Data*)' * TemplateInstance::codegen: 'std.traits.hasObjects!(uint, ulong, long, long, long, long, ulong, long, ulong, long, ulong, long[3], uint, ubyte, bool, bool, bool, Data*, Data*)' * TemplateInstance::codegen: 'std.traits.hasObjects!(ulong, long, long, long, long, ulong, long, ulong, long, ulong, long[3], uint, ubyte, bool, bool, bool, Data*, Data*)' * TemplateInstance::codegen: 'std.traits.hasObjects!(long, long, long, long, ulong, long, ulong, long, ulong, long[3], uint, ubyte, bool, bool, bool, Data*, Data*)' * TemplateInstance::codegen: 'std.traits.hasObjects!(long, long, long, ulong, long, ulong, long, ulong, long[3], uint, ubyte, bool, bool, bool, Data*, Data*)' * TemplateInstance::codegen: 'std.traits.hasObjects!(long, long, ulong, long, ulong, long, ulong, long[3], uint, ubyte, bool, bool, bool, Data*, Data*)' * TemplateInstance::codegen: 'std.traits.hasObjects!(long, ulong, long, ulong, long, ulong, long[3], uint, ubyte, bool, bool, bool, Data*, Data*)' * TemplateInstance::codegen: 'std.traits.hasObjects!(ulong, long, ulong, long, ulong, long[3], uint, ubyte, bool, bool, bool, Data*, Data*)' * TemplateInstance::codegen: 'std.traits.hasObjects!(long, ulong, long, ulong, long[3], uint, ubyte, bool, bool, bool, Data*, Data*)' * TemplateInstance::codegen: 'std.traits.hasObjects!(ulong, long, ulong, long[3], uint, ubyte, bool, bool, bool, Data*, Data*)' * TemplateInstance::codegen: 'std.traits.hasObjects!(long, ulong, long[3], uint, ubyte, bool, bool, bool, Data*, Data*)' * TemplateInstance::codegen: 'std.traits.hasObjects!(ulong, long[3], uint, ubyte, bool, bool, bool, Data*, Data*)' * TemplateInstance::codegen: 'std.traits.hasObjects!(long[3], uint, ubyte, bool, bool, bool, Data*, Data*)' * TemplateInstance::codegen: 'std.traits.hasObjects!(uint, ubyte, bool, bool, bool, Data*, Data*)' * TemplateInstance::codegen: 'std.traits.hasObjects!(ubyte, bool, bool, bool, Data*, Data*)' * TemplateInstance::codegen: 'std.traits.hasObjects!(bool, bool, bool, Data*, Data*)' * TemplateInstance::codegen: 'std.traits.hasObjects!(bool, bool, Data*, Data*)' * TemplateInstance::codegen: 'std.traits.hasObjects!(bool, Data*, Data*)' * TemplateInstance::codegen: 'std.traits.hasObjects!(Data*, Data*)' * TemplateInstance::codegen: 'std.traits.hasObjects!(Data*)' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(isAliasingDelegate, DirIteratorImpl, SpanMode, bool, string, ulong, ulong, ulong, uint, uint, uint, uint, ulong, long, long, long, long, ulong, long, ulong, long, ulong, long[3], uint, ubyte, bool, bool, bool, Data*, Data*)' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(isAliasingDelegate, DirIteratorImpl, SpanMode, bool, string, ulong, ulong, ulong, uint, uint, uint, uint, ulong, long, long)' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(isAliasingDelegate, DirIteratorImpl, SpanMode, bool, string, ulong, ulong, ulong)' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(isAliasingDelegate, DirIteratorImpl, SpanMode, bool)' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(isAliasingDelegate, DirIteratorImpl)' * TemplateInstance::codegen: 'std.traits.hasAliasing!(DirIteratorImpl).F!(DirIteratorImpl)' * TemplateInstance::codegen: 'std.traits.isDelegate!(DirIteratorImpl)' * TemplateInstance::codegen: 'std.traits.isCallable!(DirIteratorImpl)' * TemplateInstance::codegen: 'std.traits.isSomeFunction!(DirIteratorImpl)' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(isAliasingDelegate, SpanMode, bool)' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(isAliasingDelegate, SpanMode)' * TemplateInstance::codegen: 'std.traits.hasAliasing!(DirIteratorImpl).F!(SpanMode)' * TemplateInstance::codegen: 'std.traits.isCallable!(SpanMode)' * TemplateInstance::codegen: 'std.traits.isSomeFunction!(SpanMode)' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(isAliasingDelegate, bool)' * TemplateInstance::codegen: 'std.traits.hasAliasing!(DirIteratorImpl).F!bool' * TemplateInstance::codegen: 'std.traits.isCallable!bool' * TemplateInstance::codegen: 'std.traits.isSomeFunction!bool' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(isAliasingDelegate, string, ulong, ulong, ulong)' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(isAliasingDelegate, string, ulong)' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(isAliasingDelegate, string)' * TemplateInstance::codegen: 'std.traits.hasAliasing!(DirIteratorImpl).F!string' * TemplateInstance::codegen: 'std.traits.isCallable!string' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(isAliasingDelegate, ulong)' * TemplateInstance::codegen: 'std.traits.hasAliasing!(DirIteratorImpl).F!ulong' * TemplateInstance::codegen: 'std.traits.isCallable!ulong' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(isAliasingDelegate, ulong, ulong)' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(isAliasingDelegate, uint, uint, uint, uint, ulong, long, long)' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(isAliasingDelegate, uint, uint, uint)' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(isAliasingDelegate, uint)' * TemplateInstance::codegen: 'std.traits.hasAliasing!(DirIteratorImpl).F!uint' * TemplateInstance::codegen: 'std.traits.isCallable!uint' * TemplateInstance::codegen: 'std.traits.isSomeFunction!uint' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(isAliasingDelegate, uint, uint)' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(isAliasingDelegate, uint, ulong, long, long)' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(isAliasingDelegate, uint, ulong)' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(isAliasingDelegate, long, long)' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(isAliasingDelegate, long)' * TemplateInstance::codegen: 'std.traits.hasAliasing!(DirIteratorImpl).F!long' * TemplateInstance::codegen: 'std.traits.isCallable!long' * TemplateInstance::codegen: 'std.traits.isSomeFunction!long' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(isAliasingDelegate, long, long, ulong, long, ulong, long, ulong, long[3], uint, ubyte, bool, bool, bool, Data*, Data*)' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(isAliasingDelegate, long, long, ulong, long, ulong, long, ulong)' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(isAliasingDelegate, long, long, ulong)' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(isAliasingDelegate, long, ulong)' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(isAliasingDelegate, long, ulong, long, ulong)' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(isAliasingDelegate, long[3], uint, ubyte, bool, bool, bool, Data*, Data*)' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(isAliasingDelegate, long[3], uint, ubyte, bool)' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(isAliasingDelegate, long[3], uint)' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(isAliasingDelegate, long[3])' * TemplateInstance::codegen: 'std.traits.hasAliasing!(DirIteratorImpl).F!(long[3])' * TemplateInstance::codegen: 'std.traits.isDelegate!(long[3])' * TemplateInstance::codegen: 'std.traits.isCallable!(long[3])' * TemplateInstance::codegen: 'std.traits.isSomeFunction!(long[3])' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(isAliasingDelegate, ubyte, bool)' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(isAliasingDelegate, ubyte)' * TemplateInstance::codegen: 'std.traits.hasAliasing!(DirIteratorImpl).F!ubyte' * TemplateInstance::codegen: 'std.traits.isCallable!ubyte' * TemplateInstance::codegen: 'std.traits.isSomeFunction!ubyte' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(isAliasingDelegate, bool, bool, Data*, Data*)' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(isAliasingDelegate, bool, bool)' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(isAliasingDelegate, Data*, Data*)' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(isAliasingDelegate, Data*)' * TemplateInstance::codegen: 'std.traits.hasAliasing!(DirIteratorImpl).F!(Data*)' * TemplateInstance::codegen: 'std.traits.isCallable!(Data*)' * TemplateInstance::codegen: 'std.traits.isSomeFunction!(Data*)' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(isAliasingDelegate, Data*)' * TemplateInstance::codegen: 'std.traits.hasAliasing!(DirIteratorImpl).F!(Data*)' * TemplateInstance::codegen: 'std.traits.isCallable!(Data*)' * TemplateInstance::codegen: 'std.traits.isSomeFunction!(Data*)' * TemplateInstance::codegen: 'std.exception.doesPointTo!(DirIteratorImpl, DirIteratorImpl, void)' * TemplateInstance::codegen: 'std.traits.isPointer!(DirIteratorImpl)' * TemplateInstance::codegen: 'std.exception.isUnionAliased!(DirIteratorImpl, 0LU)' * TemplateInstance::codegen: 'std.exception.isUnionAliasedImpl!(DirIteratorImpl)' * TemplateInstance::codegen: 'std.exception.doesPointTo!(SpanMode, DirIteratorImpl, void)' * TemplateInstance::codegen: 'std.exception.isUnionAliased!(DirIteratorImpl, 1LU)' * TemplateInstance::codegen: 'std.exception.doesPointTo!(bool, DirIteratorImpl, void)' * TemplateInstance::codegen: 'std.exception.isUnionAliased!(DirIteratorImpl, 2LU)' * TemplateInstance::codegen: 'std.exception.doesPointTo!(DirEntry, DirIteratorImpl, void)' * TemplateInstance::codegen: 'std.traits.isPointer!(DirEntry)' * TemplateInstance::codegen: 'std.exception.isUnionAliased!(DirEntry, 0LU)' * TemplateInstance::codegen: 'std.exception.isUnionAliasedImpl!(DirEntry)' * TemplateInstance::codegen: 'std.exception.doesPointTo!(string, DirIteratorImpl, void)' * TemplateInstance::codegen: 'std.exception.isUnionAliased!(DirEntry, 1LU)' * TemplateInstance::codegen: 'std.exception.doesPointTo!(stat_t, DirIteratorImpl, void)' * TemplateInstance::codegen: 'std.traits.isPointer!(stat_t)' * TemplateInstance::codegen: 'std.exception.isUnionAliased!(stat_t, 0LU)' * TemplateInstance::codegen: 'std.exception.isUnionAliasedImpl!(stat_t)' * TemplateInstance::codegen: 'std.exception.doesPointTo!(ulong, DirIteratorImpl, void)' * TemplateInstance::codegen: 'std.exception.isUnionAliased!(stat_t, 1LU)' * TemplateInstance::codegen: 'std.exception.isUnionAliased!(stat_t, 2LU)' * TemplateInstance::codegen: 'std.exception.isUnionAliased!(stat_t, 3LU)' * TemplateInstance::codegen: 'std.exception.doesPointTo!(uint, DirIteratorImpl, void)' * TemplateInstance::codegen: 'std.exception.isUnionAliased!(stat_t, 4LU)' * TemplateInstance::codegen: 'std.exception.isUnionAliased!(stat_t, 5LU)' * TemplateInstance::codegen: 'std.exception.isUnionAliased!(stat_t, 6LU)' * TemplateInstance::codegen: 'std.exception.isUnionAliased!(stat_t, 7LU)' * TemplateInstance::codegen: 'std.exception.isUnionAliased!(stat_t, 8LU)' * TemplateInstance::codegen: 'std.exception.doesPointTo!(long, DirIteratorImpl, void)' * TemplateInstance::codegen: 'std.exception.isUnionAliased!(stat_t, 9LU)' * TemplateInstance::codegen: 'std.exception.isUnionAliased!(stat_t, 10LU)' * TemplateInstance::codegen: 'std.exception.isUnionAliased!(stat_t, 11LU)' * TemplateInstance::codegen: 'std.exception.isUnionAliased!(stat_t, 12LU)' * TemplateInstance::codegen: 'std.exception.isUnionAliased!(stat_t, 13LU)' * TemplateInstance::codegen: 'std.exception.isUnionAliased!(stat_t, 14LU)' * TemplateInstance::codegen: 'std.exception.isUnionAliased!(stat_t, 15LU)' * TemplateInstance::codegen: 'std.exception.isUnionAliased!(stat_t, 16LU)' * TemplateInstance::codegen: 'std.exception.isUnionAliased!(stat_t, 17LU)' * TemplateInstance::codegen: 'std.exception.doesPointTo!(long[3], DirIteratorImpl, void)' * TemplateInstance::codegen: 'std.traits.isPointer!(long[3])' * TemplateInstance::codegen: 'std.exception.isUnionAliased!(DirEntry, 2LU)' * TemplateInstance::codegen: 'std.exception.isUnionAliased!(DirEntry, 3LU)' * TemplateInstance::codegen: 'std.exception.doesPointTo!(ubyte, DirIteratorImpl, void)' * TemplateInstance::codegen: 'std.exception.isUnionAliased!(DirEntry, 4LU)' * TemplateInstance::codegen: 'std.exception.isUnionAliased!(DirEntry, 5LU)' * TemplateInstance::codegen: 'std.exception.isUnionAliased!(DirEntry, 6LU)' * TemplateInstance::codegen: 'std.exception.isUnionAliased!(DirIteratorImpl, 3LU)' * TemplateInstance::codegen: 'std.exception.doesPointTo!(Appender!(DirHandle[]), DirIteratorImpl, void)' * TemplateInstance::codegen: 'std.traits.isPointer!(Appender!(DirHandle[]))' * TemplateInstance::codegen: 'std.exception.isUnionAliased!(Appender!(DirHandle[]), 0LU)' * TemplateInstance::codegen: 'std.exception.isUnionAliasedImpl!(Appender!(DirHandle[]))' * TemplateInstance::codegen: 'std.exception.doesPointTo!(const(Data)*, DirIteratorImpl, void)' * TemplateInstance::codegen: 'std.traits.isPointer!(const(Data)*)' * TemplateInstance::codegen: 'std.traits.isAggregateType!(const(Data)*)' * TemplateInstance::codegen: 'std.exception.isUnionAliased!(DirIteratorImpl, 4LU)' * TemplateInstance::codegen: 'std.exception.doesPointTo!(Appender!(DirEntry[]), DirIteratorImpl, void)' * TemplateInstance::codegen: 'std.traits.isPointer!(Appender!(DirEntry[]))' * TemplateInstance::codegen: 'std.exception.isUnionAliased!(Appender!(DirEntry[]), 0LU)' * TemplateInstance::codegen: 'std.exception.isUnionAliasedImpl!(Appender!(DirEntry[]))' * TemplateInstance::codegen: 'std.exception.doesPointTo!(const(Data)*, DirIteratorImpl, void)' * TemplateInstance::codegen: 'std.traits.isPointer!(const(Data)*)' * TemplateInstance::codegen: 'std.traits.isAggregateType!(const(Data)*)' * TemplateInstance::codegen: 'std.traits.hasElaborateDestructor!(DirIteratorImpl)' * TemplateInstance::codegen: 'std.traits.hasMember!(DirIteratorImpl, "__dtor")' * TemplateInstance::codegen: 'std.typetuple.staticIndexOf!("__dtor", "_mode", "_followSymlink", "_cur", "_stack", "_stashed", "pushExtra", "hasExtra", "popExtra", "DirHandle", "stepIn", "next", "popDirStack", "releaseDirStack", "mayStepIn", "__ctor", "empty", "front", "popFront", "__dtor", "opAssign")' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("__dtor", "_mode", "_followSymlink", "_cur", "_stack", "_stashed", "pushExtra", "hasExtra", "popExtra", "DirHandle", "stepIn", "next", "popDirStack", "releaseDirStack", "mayStepIn", "__ctor", "empty", "front", "popFront", "__dtor", "opAssign")' * TemplateInstance::codegen: 'std.typetuple.Alias!"_mode"' * TemplateInstance::codegen: 'std.typetuple.isSame!("__dtor", "_mode")' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("__dtor", "_followSymlink", "_cur", "_stack", "_stashed", "pushExtra", "hasExtra", "popExtra", "DirHandle", "stepIn", "next", "popDirStack", "releaseDirStack", "mayStepIn", "__ctor", "empty", "front", "popFront", "__dtor", "opAssign")' * TemplateInstance::codegen: 'std.typetuple.Alias!"_followSymlink"' * TemplateInstance::codegen: 'std.typetuple.isSame!("__dtor", "_followSymlink")' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("__dtor", "_cur", "_stack", "_stashed", "pushExtra", "hasExtra", "popExtra", "DirHandle", "stepIn", "next", "popDirStack", "releaseDirStack", "mayStepIn", "__ctor", "empty", "front", "popFront", "__dtor", "opAssign")' * TemplateInstance::codegen: 'std.typetuple.Alias!"_cur"' * TemplateInstance::codegen: 'std.typetuple.isSame!("__dtor", "_cur")' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("__dtor", "_stack", "_stashed", "pushExtra", "hasExtra", "popExtra", "DirHandle", "stepIn", "next", "popDirStack", "releaseDirStack", "mayStepIn", "__ctor", "empty", "front", "popFront", "__dtor", "opAssign")' * TemplateInstance::codegen: 'std.typetuple.Alias!"_stack"' * TemplateInstance::codegen: 'std.typetuple.isSame!("__dtor", "_stack")' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("__dtor", "_stashed", "pushExtra", "hasExtra", "popExtra", "DirHandle", "stepIn", "next", "popDirStack", "releaseDirStack", "mayStepIn", "__ctor", "empty", "front", "popFront", "__dtor", "opAssign")' * TemplateInstance::codegen: 'std.typetuple.Alias!"_stashed"' * TemplateInstance::codegen: 'std.typetuple.isSame!("__dtor", "_stashed")' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("__dtor", "pushExtra", "hasExtra", "popExtra", "DirHandle", "stepIn", "next", "popDirStack", "releaseDirStack", "mayStepIn", "__ctor", "empty", "front", "popFront", "__dtor", "opAssign")' * TemplateInstance::codegen: 'std.typetuple.Alias!"pushExtra"' * TemplateInstance::codegen: 'std.typetuple.isSame!("__dtor", "pushExtra")' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("__dtor", "hasExtra", "popExtra", "DirHandle", "stepIn", "next", "popDirStack", "releaseDirStack", "mayStepIn", "__ctor", "empty", "front", "popFront", "__dtor", "opAssign")' * TemplateInstance::codegen: 'std.typetuple.Alias!"hasExtra"' * TemplateInstance::codegen: 'std.typetuple.isSame!("__dtor", "hasExtra")' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("__dtor", "popExtra", "DirHandle", "stepIn", "next", "popDirStack", "releaseDirStack", "mayStepIn", "__ctor", "empty", "front", "popFront", "__dtor", "opAssign")' * TemplateInstance::codegen: 'std.typetuple.Alias!"popExtra"' * TemplateInstance::codegen: 'std.typetuple.isSame!("__dtor", "popExtra")' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("__dtor", "DirHandle", "stepIn", "next", "popDirStack", "releaseDirStack", "mayStepIn", "__ctor", "empty", "front", "popFront", "__dtor", "opAssign")' * TemplateInstance::codegen: 'std.typetuple.Alias!"DirHandle"' * TemplateInstance::codegen: 'std.typetuple.isSame!("__dtor", "DirHandle")' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("__dtor", "stepIn", "next", "popDirStack", "releaseDirStack", "mayStepIn", "__ctor", "empty", "front", "popFront", "__dtor", "opAssign")' * TemplateInstance::codegen: 'std.typetuple.Alias!"stepIn"' * TemplateInstance::codegen: 'std.typetuple.isSame!("__dtor", "stepIn")' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("__dtor", "next", "popDirStack", "releaseDirStack", "mayStepIn", "__ctor", "empty", "front", "popFront", "__dtor", "opAssign")' * TemplateInstance::codegen: 'std.typetuple.Alias!"next"' * TemplateInstance::codegen: 'std.typetuple.isSame!("__dtor", "next")' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("__dtor", "popDirStack", "releaseDirStack", "mayStepIn", "__ctor", "empty", "front", "popFront", "__dtor", "opAssign")' * TemplateInstance::codegen: 'std.typetuple.Alias!"popDirStack"' * TemplateInstance::codegen: 'std.typetuple.isSame!("__dtor", "popDirStack")' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("__dtor", "releaseDirStack", "mayStepIn", "__ctor", "empty", "front", "popFront", "__dtor", "opAssign")' * TemplateInstance::codegen: 'std.typetuple.Alias!"releaseDirStack"' * TemplateInstance::codegen: 'std.typetuple.isSame!("__dtor", "releaseDirStack")' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("__dtor", "mayStepIn", "__ctor", "empty", "front", "popFront", "__dtor", "opAssign")' * TemplateInstance::codegen: 'std.typetuple.Alias!"mayStepIn"' * TemplateInstance::codegen: 'std.typetuple.isSame!("__dtor", "mayStepIn")' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("__dtor", "__ctor", "empty", "front", "popFront", "__dtor", "opAssign")' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("__dtor", "empty", "front", "popFront", "__dtor", "opAssign")' * TemplateInstance::codegen: 'std.typetuple.Alias!"empty"' * TemplateInstance::codegen: 'std.typetuple.isSame!("__dtor", "empty")' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("__dtor", "front", "popFront", "__dtor", "opAssign")' * TemplateInstance::codegen: 'std.typetuple.Alias!"front"' * TemplateInstance::codegen: 'std.typetuple.isSame!("__dtor", "front")' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("__dtor", "popFront", "__dtor", "opAssign")' * TemplateInstance::codegen: 'std.typetuple.Alias!"popFront"' * TemplateInstance::codegen: 'std.typetuple.isSame!("__dtor", "popFront")' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("__dtor", "__dtor", "opAssign")' * TemplateInstance::codegen: 'std.typetuple.isSame!("__dtor", "__dtor")' * TemplateInstance::codegen: 'std.traits.Identity!(__dtor)' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(hasElaborateDestructor, SpanMode, bool, DirEntry, Appender!(DirHandle[]), Appender!(DirEntry[]))' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(hasElaborateDestructor, SpanMode, bool)' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(hasElaborateDestructor, SpanMode)' * TemplateInstance::codegen: 'std.traits.F!(SpanMode)' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(hasElaborateDestructor, bool)' * TemplateInstance::codegen: 'std.traits.F!bool' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(hasElaborateDestructor, DirEntry, Appender!(DirHandle[]), Appender!(DirEntry[]))' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(hasElaborateDestructor, DirEntry)' * TemplateInstance::codegen: 'std.traits.F!(DirEntry)' * TemplateInstance::codegen: 'std.traits.hasMember!(DirEntry, "__dtor")' * TemplateInstance::codegen: 'std.typetuple.staticIndexOf!("__dtor", "__ctor", "name", "isDir", "isFile", "isSymlink", "size", "timeStatusChanged", "timeLastAccessed", "timeLastModified", "attributes", "linkAttributes", "statBuf", "_ensureStatDone", "_ensureStatOrLStatDone", "_ensureLStatDone", "_name", "_statBuf", "_lstatMode", "_dType", "_didLStat", "_didStat", "_dTypeSet")' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("__dtor", "__ctor", "name", "isDir", "isFile", "isSymlink", "size", "timeStatusChanged", "timeLastAccessed", "timeLastModified", "attributes", "linkAttributes", "statBuf", "_ensureStatDone", "_ensureStatOrLStatDone", "_ensureLStatDone", "_name", "_statBuf", "_lstatMode", "_dType", "_didLStat", "_didStat", "_dTypeSet")' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("__dtor", "name", "isDir", "isFile", "isSymlink", "size", "timeStatusChanged", "timeLastAccessed", "timeLastModified", "attributes", "linkAttributes", "statBuf", "_ensureStatDone", "_ensureStatOrLStatDone", "_ensureLStatDone", "_name", "_statBuf", "_lstatMode", "_dType", "_didLStat", "_didStat", "_dTypeSet")' * TemplateInstance::codegen: 'std.typetuple.Alias!"name"' * TemplateInstance::codegen: 'std.typetuple.isSame!("__dtor", "name")' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("__dtor", "isDir", "isFile", "isSymlink", "size", "timeStatusChanged", "timeLastAccessed", "timeLastModified", "attributes", "linkAttributes", "statBuf", "_ensureStatDone", "_ensureStatOrLStatDone", "_ensureLStatDone", "_name", "_statBuf", "_lstatMode", "_dType", "_didLStat", "_didStat", "_dTypeSet")' * TemplateInstance::codegen: 'std.typetuple.Alias!"isDir"' * TemplateInstance::codegen: 'std.typetuple.isSame!("__dtor", "isDir")' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("__dtor", "isFile", "isSymlink", "size", "timeStatusChanged", "timeLastAccessed", "timeLastModified", "attributes", "linkAttributes", "statBuf", "_ensureStatDone", "_ensureStatOrLStatDone", "_ensureLStatDone", "_name", "_statBuf", "_lstatMode", "_dType", "_didLStat", "_didStat", "_dTypeSet")' * TemplateInstance::codegen: 'std.typetuple.Alias!"isFile"' * TemplateInstance::codegen: 'std.typetuple.isSame!("__dtor", "isFile")' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("__dtor", "isSymlink", "size", "timeStatusChanged", "timeLastAccessed", "timeLastModified", "attributes", "linkAttributes", "statBuf", "_ensureStatDone", "_ensureStatOrLStatDone", "_ensureLStatDone", "_name", "_statBuf", "_lstatMode", "_dType", "_didLStat", "_didStat", "_dTypeSet")' * TemplateInstance::codegen: 'std.typetuple.Alias!"isSymlink"' * TemplateInstance::codegen: 'std.typetuple.isSame!("__dtor", "isSymlink")' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("__dtor", "size", "timeStatusChanged", "timeLastAccessed", "timeLastModified", "attributes", "linkAttributes", "statBuf", "_ensureStatDone", "_ensureStatOrLStatDone", "_ensureLStatDone", "_name", "_statBuf", "_lstatMode", "_dType", "_didLStat", "_didStat", "_dTypeSet")' * TemplateInstance::codegen: 'std.typetuple.Alias!"size"' * TemplateInstance::codegen: 'std.typetuple.isSame!("__dtor", "size")' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("__dtor", "timeStatusChanged", "timeLastAccessed", "timeLastModified", "attributes", "linkAttributes", "statBuf", "_ensureStatDone", "_ensureStatOrLStatDone", "_ensureLStatDone", "_name", "_statBuf", "_lstatMode", "_dType", "_didLStat", "_didStat", "_dTypeSet")' * TemplateInstance::codegen: 'std.typetuple.Alias!"timeStatusChanged"' * TemplateInstance::codegen: 'std.typetuple.isSame!("__dtor", "timeStatusChanged")' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("__dtor", "timeLastAccessed", "timeLastModified", "attributes", "linkAttributes", "statBuf", "_ensureStatDone", "_ensureStatOrLStatDone", "_ensureLStatDone", "_name", "_statBuf", "_lstatMode", "_dType", "_didLStat", "_didStat", "_dTypeSet")' * TemplateInstance::codegen: 'std.typetuple.Alias!"timeLastAccessed"' * TemplateInstance::codegen: 'std.typetuple.isSame!("__dtor", "timeLastAccessed")' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("__dtor", "timeLastModified", "attributes", "linkAttributes", "statBuf", "_ensureStatDone", "_ensureStatOrLStatDone", "_ensureLStatDone", "_name", "_statBuf", "_lstatMode", "_dType", "_didLStat", "_didStat", "_dTypeSet")' * TemplateInstance::codegen: 'std.typetuple.Alias!"timeLastModified"' * TemplateInstance::codegen: 'std.typetuple.isSame!("__dtor", "timeLastModified")' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("__dtor", "attributes", "linkAttributes", "statBuf", "_ensureStatDone", "_ensureStatOrLStatDone", "_ensureLStatDone", "_name", "_statBuf", "_lstatMode", "_dType", "_didLStat", "_didStat", "_dTypeSet")' * TemplateInstance::codegen: 'std.typetuple.Alias!"attributes"' * TemplateInstance::codegen: 'std.typetuple.isSame!("__dtor", "attributes")' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("__dtor", "linkAttributes", "statBuf", "_ensureStatDone", "_ensureStatOrLStatDone", "_ensureLStatDone", "_name", "_statBuf", "_lstatMode", "_dType", "_didLStat", "_didStat", "_dTypeSet")' * TemplateInstance::codegen: 'std.typetuple.Alias!"linkAttributes"' * TemplateInstance::codegen: 'std.typetuple.isSame!("__dtor", "linkAttributes")' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("__dtor", "statBuf", "_ensureStatDone", "_ensureStatOrLStatDone", "_ensureLStatDone", "_name", "_statBuf", "_lstatMode", "_dType", "_didLStat", "_didStat", "_dTypeSet")' * TemplateInstance::codegen: 'std.typetuple.Alias!"statBuf"' * TemplateInstance::codegen: 'std.typetuple.isSame!("__dtor", "statBuf")' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("__dtor", "_ensureStatDone", "_ensureStatOrLStatDone", "_ensureLStatDone", "_name", "_statBuf", "_lstatMode", "_dType", "_didLStat", "_didStat", "_dTypeSet")' * TemplateInstance::codegen: 'std.typetuple.Alias!"_ensureStatDone"' * TemplateInstance::codegen: 'std.typetuple.isSame!("__dtor", "_ensureStatDone")' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("__dtor", "_ensureStatOrLStatDone", "_ensureLStatDone", "_name", "_statBuf", "_lstatMode", "_dType", "_didLStat", "_didStat", "_dTypeSet")' * TemplateInstance::codegen: 'std.typetuple.Alias!"_ensureStatOrLStatDone"' * TemplateInstance::codegen: 'std.typetuple.isSame!("__dtor", "_ensureStatOrLStatDone")' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("__dtor", "_ensureLStatDone", "_name", "_statBuf", "_lstatMode", "_dType", "_didLStat", "_didStat", "_dTypeSet")' * TemplateInstance::codegen: 'std.typetuple.Alias!"_ensureLStatDone"' * TemplateInstance::codegen: 'std.typetuple.isSame!("__dtor", "_ensureLStatDone")' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("__dtor", "_name", "_statBuf", "_lstatMode", "_dType", "_didLStat", "_didStat", "_dTypeSet")' * TemplateInstance::codegen: 'std.typetuple.Alias!"_name"' * TemplateInstance::codegen: 'std.typetuple.isSame!("__dtor", "_name")' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("__dtor", "_statBuf", "_lstatMode", "_dType", "_didLStat", "_didStat", "_dTypeSet")' * TemplateInstance::codegen: 'std.typetuple.Alias!"_statBuf"' * TemplateInstance::codegen: 'std.typetuple.isSame!("__dtor", "_statBuf")' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("__dtor", "_lstatMode", "_dType", "_didLStat", "_didStat", "_dTypeSet")' * TemplateInstance::codegen: 'std.typetuple.Alias!"_lstatMode"' * TemplateInstance::codegen: 'std.typetuple.isSame!("__dtor", "_lstatMode")' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("__dtor", "_dType", "_didLStat", "_didStat", "_dTypeSet")' * TemplateInstance::codegen: 'std.typetuple.Alias!"_dType"' * TemplateInstance::codegen: 'std.typetuple.isSame!("__dtor", "_dType")' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("__dtor", "_didLStat", "_didStat", "_dTypeSet")' * TemplateInstance::codegen: 'std.typetuple.Alias!"_didLStat"' * TemplateInstance::codegen: 'std.typetuple.isSame!("__dtor", "_didLStat")' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("__dtor", "_didStat", "_dTypeSet")' * TemplateInstance::codegen: 'std.typetuple.Alias!"_didStat"' * TemplateInstance::codegen: 'std.typetuple.isSame!("__dtor", "_didStat")' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("__dtor", "_dTypeSet")' * TemplateInstance::codegen: 'std.typetuple.Alias!"_dTypeSet"' * TemplateInstance::codegen: 'std.typetuple.isSame!("__dtor", "_dTypeSet")' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(hasElaborateDestructor, string, stat_t, uint, ubyte, bool, bool, bool)' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(hasElaborateDestructor, string, stat_t, uint)' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(hasElaborateDestructor, string)' * TemplateInstance::codegen: 'std.traits.F!string' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(hasElaborateDestructor, stat_t, uint)' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(hasElaborateDestructor, stat_t)' * TemplateInstance::codegen: 'std.traits.F!(stat_t)' * TemplateInstance::codegen: 'std.traits.hasMember!(stat_t, "__dtor")' * TemplateInstance::codegen: 'std.typetuple.staticIndexOf!("__dtor", "st_dev", "st_ino", "st_nlink", "st_mode", "st_uid", "st_gid", "st_rdev", "st_size", "st_blksize", "st_blocks", "st_atime", "st_atimensec", "st_mtime", "st_mtimensec", "st_ctime", "st_ctimensec")' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("__dtor", "st_dev", "st_ino", "st_nlink", "st_mode", "st_uid", "st_gid", "st_rdev", "st_size", "st_blksize", "st_blocks", "st_atime", "st_atimensec", "st_mtime", "st_mtimensec", "st_ctime", "st_ctimensec")' * TemplateInstance::codegen: 'std.typetuple.Alias!"st_dev"' * TemplateInstance::codegen: 'std.typetuple.isSame!("__dtor", "st_dev")' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("__dtor", "st_ino", "st_nlink", "st_mode", "st_uid", "st_gid", "st_rdev", "st_size", "st_blksize", "st_blocks", "st_atime", "st_atimensec", "st_mtime", "st_mtimensec", "st_ctime", "st_ctimensec")' * TemplateInstance::codegen: 'std.typetuple.Alias!"st_ino"' * TemplateInstance::codegen: 'std.typetuple.isSame!("__dtor", "st_ino")' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("__dtor", "st_nlink", "st_mode", "st_uid", "st_gid", "st_rdev", "st_size", "st_blksize", "st_blocks", "st_atime", "st_atimensec", "st_mtime", "st_mtimensec", "st_ctime", "st_ctimensec")' * TemplateInstance::codegen: 'std.typetuple.Alias!"st_nlink"' * TemplateInstance::codegen: 'std.typetuple.isSame!("__dtor", "st_nlink")' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("__dtor", "st_mode", "st_uid", "st_gid", "st_rdev", "st_size", "st_blksize", "st_blocks", "st_atime", "st_atimensec", "st_mtime", "st_mtimensec", "st_ctime", "st_ctimensec")' * TemplateInstance::codegen: 'std.typetuple.Alias!"st_mode"' * TemplateInstance::codegen: 'std.typetuple.isSame!("__dtor", "st_mode")' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("__dtor", "st_uid", "st_gid", "st_rdev", "st_size", "st_blksize", "st_blocks", "st_atime", "st_atimensec", "st_mtime", "st_mtimensec", "st_ctime", "st_ctimensec")' * TemplateInstance::codegen: 'std.typetuple.Alias!"st_uid"' * TemplateInstance::codegen: 'std.typetuple.isSame!("__dtor", "st_uid")' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("__dtor", "st_gid", "st_rdev", "st_size", "st_blksize", "st_blocks", "st_atime", "st_atimensec", "st_mtime", "st_mtimensec", "st_ctime", "st_ctimensec")' * TemplateInstance::codegen: 'std.typetuple.Alias!"st_gid"' * TemplateInstance::codegen: 'std.typetuple.isSame!("__dtor", "st_gid")' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("__dtor", "st_rdev", "st_size", "st_blksize", "st_blocks", "st_atime", "st_atimensec", "st_mtime", "st_mtimensec", "st_ctime", "st_ctimensec")' * TemplateInstance::codegen: 'std.typetuple.Alias!"st_rdev"' * TemplateInstance::codegen: 'std.typetuple.isSame!("__dtor", "st_rdev")' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("__dtor", "st_size", "st_blksize", "st_blocks", "st_atime", "st_atimensec", "st_mtime", "st_mtimensec", "st_ctime", "st_ctimensec")' * TemplateInstance::codegen: 'std.typetuple.Alias!"st_size"' * TemplateInstance::codegen: 'std.typetuple.isSame!("__dtor", "st_size")' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("__dtor", "st_blksize", "st_blocks", "st_atime", "st_atimensec", "st_mtime", "st_mtimensec", "st_ctime", "st_ctimensec")' * TemplateInstance::codegen: 'std.typetuple.Alias!"st_blksize"' * TemplateInstance::codegen: 'std.typetuple.isSame!("__dtor", "st_blksize")' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("__dtor", "st_blocks", "st_atime", "st_atimensec", "st_mtime", "st_mtimensec", "st_ctime", "st_ctimensec")' * TemplateInstance::codegen: 'std.typetuple.Alias!"st_blocks"' * TemplateInstance::codegen: 'std.typetuple.isSame!("__dtor", "st_blocks")' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("__dtor", "st_atime", "st_atimensec", "st_mtime", "st_mtimensec", "st_ctime", "st_ctimensec")' * TemplateInstance::codegen: 'std.typetuple.Alias!"st_atime"' * TemplateInstance::codegen: 'std.typetuple.isSame!("__dtor", "st_atime")' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("__dtor", "st_atimensec", "st_mtime", "st_mtimensec", "st_ctime", "st_ctimensec")' * TemplateInstance::codegen: 'std.typetuple.Alias!"st_atimensec"' * TemplateInstance::codegen: 'std.typetuple.isSame!("__dtor", "st_atimensec")' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("__dtor", "st_mtime", "st_mtimensec", "st_ctime", "st_ctimensec")' * TemplateInstance::codegen: 'std.typetuple.Alias!"st_mtime"' * TemplateInstance::codegen: 'std.typetuple.isSame!("__dtor", "st_mtime")' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("__dtor", "st_mtimensec", "st_ctime", "st_ctimensec")' * TemplateInstance::codegen: 'std.typetuple.Alias!"st_mtimensec"' * TemplateInstance::codegen: 'std.typetuple.isSame!("__dtor", "st_mtimensec")' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("__dtor", "st_ctime", "st_ctimensec")' * TemplateInstance::codegen: 'std.typetuple.Alias!"st_ctime"' * TemplateInstance::codegen: 'std.typetuple.isSame!("__dtor", "st_ctime")' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("__dtor", "st_ctimensec")' * TemplateInstance::codegen: 'std.typetuple.Alias!"st_ctimensec"' * TemplateInstance::codegen: 'std.typetuple.isSame!("__dtor", "st_ctimensec")' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(hasElaborateDestructor, ulong, ulong, ulong, uint, uint, uint, uint, ulong, long, long, long, long, ulong, long, ulong, long, ulong, long[3])' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(hasElaborateDestructor, ulong, ulong, ulong, uint, uint, uint, uint, ulong, long)' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(hasElaborateDestructor, ulong, ulong, ulong, uint)' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(hasElaborateDestructor, ulong, ulong)' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(hasElaborateDestructor, ulong)' * TemplateInstance::codegen: 'std.traits.F!ulong' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(hasElaborateDestructor, ulong, uint)' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(hasElaborateDestructor, uint)' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(hasElaborateDestructor, uint, uint, uint, ulong, long)' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(hasElaborateDestructor, uint, uint)' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(hasElaborateDestructor, uint, ulong, long)' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(hasElaborateDestructor, ulong, long)' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(hasElaborateDestructor, long)' * TemplateInstance::codegen: 'std.traits.F!long' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(hasElaborateDestructor, long, long, long, ulong, long, ulong, long, ulong, long[3])' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(hasElaborateDestructor, long, long, long, ulong)' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(hasElaborateDestructor, long, long)' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(hasElaborateDestructor, long, ulong)' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(hasElaborateDestructor, long, ulong, long, ulong, long[3])' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(hasElaborateDestructor, long, ulong, long[3])' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(hasElaborateDestructor, ulong, long[3])' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(hasElaborateDestructor, long[3])' * TemplateInstance::codegen: 'std.traits.F!(long[3])' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(hasElaborateDestructor, ubyte, bool, bool, bool)' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(hasElaborateDestructor, ubyte, bool)' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(hasElaborateDestructor, ubyte)' * TemplateInstance::codegen: 'std.traits.F!ubyte' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(hasElaborateDestructor, bool, bool)' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(hasElaborateDestructor, Appender!(DirHandle[]), Appender!(DirEntry[]))' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(hasElaborateDestructor, Appender!(DirHandle[]))' * TemplateInstance::codegen: 'std.traits.F!(Appender!(DirHandle[]))' * TemplateInstance::codegen: 'std.traits.hasMember!(Appender!(DirHandle[]), "__dtor")' * TemplateInstance::codegen: 'std.typetuple.staticIndexOf!("__dtor", "core", "T", "Data", "_data", "__ctor", "reserve", "capacity", "data", "ensureAddable", "canPutItem", "canPutConstRange", "canPutRange", "put", "opOpAssign", "clear", "shrinkTo", "toString")' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("__dtor", "core", "T", "Data", "_data", "__ctor", "reserve", "capacity", "data", "ensureAddable", "canPutItem", "canPutConstRange", "canPutRange", "put", "opOpAssign", "clear", "shrinkTo", "toString")' * TemplateInstance::codegen: 'std.typetuple.isSame!("__dtor", "core")' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("__dtor", "T", "Data", "_data", "__ctor", "reserve", "capacity", "data", "ensureAddable", "canPutItem", "canPutConstRange", "canPutRange", "put", "opOpAssign", "clear", "shrinkTo", "toString")' * TemplateInstance::codegen: 'std.typetuple.isSame!("__dtor", "T")' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("__dtor", "Data", "_data", "__ctor", "reserve", "capacity", "data", "ensureAddable", "canPutItem", "canPutConstRange", "canPutRange", "put", "opOpAssign", "clear", "shrinkTo", "toString")' * TemplateInstance::codegen: 'std.typetuple.isSame!("__dtor", "Data")' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("__dtor", "_data", "__ctor", "reserve", "capacity", "data", "ensureAddable", "canPutItem", "canPutConstRange", "canPutRange", "put", "opOpAssign", "clear", "shrinkTo", "toString")' * TemplateInstance::codegen: 'std.typetuple.isSame!("__dtor", "_data")' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("__dtor", "__ctor", "reserve", "capacity", "data", "ensureAddable", "canPutItem", "canPutConstRange", "canPutRange", "put", "opOpAssign", "clear", "shrinkTo", "toString")' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("__dtor", "reserve", "capacity", "data", "ensureAddable", "canPutItem", "canPutConstRange", "canPutRange", "put", "opOpAssign", "clear", "shrinkTo", "toString")' * TemplateInstance::codegen: 'std.typetuple.isSame!("__dtor", "reserve")' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("__dtor", "capacity", "data", "ensureAddable", "canPutItem", "canPutConstRange", "canPutRange", "put", "opOpAssign", "clear", "shrinkTo", "toString")' * TemplateInstance::codegen: 'std.typetuple.isSame!("__dtor", "capacity")' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("__dtor", "data", "ensureAddable", "canPutItem", "canPutConstRange", "canPutRange", "put", "opOpAssign", "clear", "shrinkTo", "toString")' * TemplateInstance::codegen: 'std.typetuple.isSame!("__dtor", "data")' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("__dtor", "ensureAddable", "canPutItem", "canPutConstRange", "canPutRange", "put", "opOpAssign", "clear", "shrinkTo", "toString")' * TemplateInstance::codegen: 'std.typetuple.isSame!("__dtor", "ensureAddable")' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("__dtor", "canPutItem", "canPutConstRange", "canPutRange", "put", "opOpAssign", "clear", "shrinkTo", "toString")' * TemplateInstance::codegen: 'std.typetuple.isSame!("__dtor", "canPutItem")' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("__dtor", "canPutConstRange", "canPutRange", "put", "opOpAssign", "clear", "shrinkTo", "toString")' * TemplateInstance::codegen: 'std.typetuple.isSame!("__dtor", "canPutConstRange")' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("__dtor", "canPutRange", "put", "opOpAssign", "clear", "shrinkTo", "toString")' * TemplateInstance::codegen: 'std.typetuple.isSame!("__dtor", "canPutRange")' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("__dtor", "put", "opOpAssign", "clear", "shrinkTo", "toString")' * TemplateInstance::codegen: 'std.typetuple.isSame!("__dtor", "put")' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("__dtor", "opOpAssign", "clear", "shrinkTo", "toString")' * TemplateInstance::codegen: 'std.typetuple.Alias!"opOpAssign"' * TemplateInstance::codegen: 'std.typetuple.isSame!("__dtor", "opOpAssign")' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("__dtor", "clear", "shrinkTo", "toString")' * TemplateInstance::codegen: 'std.typetuple.Alias!"clear"' * TemplateInstance::codegen: 'std.typetuple.isSame!("__dtor", "clear")' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("__dtor", "shrinkTo", "toString")' * TemplateInstance::codegen: 'std.typetuple.Alias!"shrinkTo"' * TemplateInstance::codegen: 'std.typetuple.isSame!("__dtor", "shrinkTo")' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("__dtor", "toString")' * TemplateInstance::codegen: 'std.typetuple.Alias!"toString"' * TemplateInstance::codegen: 'std.typetuple.isSame!("__dtor", "toString")' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(hasElaborateDestructor, Data*)' * TemplateInstance::codegen: 'std.traits.F!(Data*)' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(hasElaborateDestructor, Appender!(DirEntry[]))' * TemplateInstance::codegen: 'std.traits.F!(Appender!(DirEntry[]))' * TemplateInstance::codegen: 'std.traits.hasMember!(Appender!(DirEntry[]), "__dtor")' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(hasElaborateDestructor, Data*)' * TemplateInstance::codegen: 'std.traits.F!(Data*)' * TemplateInstance::codegen: 'std.algorithm.searching.endsWith!("a == b", string, string)' * TemplateInstance::codegen: 'object.RTInfo!(RefCounted!(DirIteratorImpl, cast(RefCountedAutoInitialize)0))' * TemplateInstance::codegen: 'object.RTInfo!(Data)' * TemplateInstance::codegen: 'object.RTInfo!(Appender!string)' * TemplateInstance::codegen: 'object.RTInfo!(SliceOverIndexed!(int[]))' * TemplateInstance::codegen: 'std.uni.SliceOverIndexed!(int[]).SliceOverIndexed.opEquals!(const(SliceOverIndexed!(int[])))' * TemplateInstance::codegen: 'object.RTInfo!(sliceBits!(4LU, 7LU))' * TemplateInstance::codegen: 'object.RTInfo!(BitPacked!(uint, 2LU))' * TemplateInstance::codegen: 'object.RTInfo!(Intervals!(CowArray!(GcPolicy)))' * TemplateInstance::codegen: 'object.RTInfo!(Intervals!(uint[]))' * TemplateInstance::codegen: 'std.algorithm.mutation.move!(Intervals!(uint[]))' * TemplateInstance::codegen: 'std.traits.hasAliasing!(Intervals!(uint[]))' * TemplateInstance::codegen: 'std.traits.hasRawAliasing!(Intervals!(uint[]))' * TemplateInstance::codegen: 'std.traits.RepresentationTypeTuple!(Intervals!(uint[]))' * TemplateInstance::codegen: 'std.traits.FieldTypeTuple!(Intervals!(uint[]))' * TemplateInstance::codegen: 'std.traits.isNested!(Intervals!(uint[]))' * TemplateInstance::codegen: 'std.traits.RepresentationTypeTuple!(Intervals!(uint[])).Impl!(ulong, ulong, uint[])' * TemplateInstance::codegen: 'std.traits.RepresentationTypeTuple!(Intervals!(uint[])).Impl!(ulong, uint[])' * TemplateInstance::codegen: 'std.traits.RepresentationTypeTuple!(Intervals!(uint[])).Impl!(uint[])' * TemplateInstance::codegen: 'std.traits.RepresentationTypeTuple!(Intervals!(uint[])).Impl!()' * TemplateInstance::codegen: 'std.typetuple.TypeTuple!(ulong, uint[])' * TemplateInstance::codegen: 'std.typetuple.TypeTuple!(ulong, ulong, uint[])' * TemplateInstance::codegen: 'std.traits.hasRawAliasing!(Intervals!(uint[])).Impl!(ulong, ulong, uint[])' * TemplateInstance::codegen: 'std.traits.hasRawAliasing!(Intervals!(uint[])).Impl!(ulong, uint[])' * TemplateInstance::codegen: 'std.traits.hasRawAliasing!(Intervals!(uint[])).Impl!(uint[])' * TemplateInstance::codegen: 'std.traits.hasRawAliasing!(Intervals!(uint[])).Impl!()' * TemplateInstance::codegen: 'std.traits.hasObjects!(Intervals!(uint[]))' * TemplateInstance::codegen: 'std.traits.hasObjects!(ulong, ulong, uint[])' * TemplateInstance::codegen: 'std.traits.hasObjects!(ulong, uint[])' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(isAliasingDelegate, Intervals!(uint[]), ulong, ulong, uint[])' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(isAliasingDelegate, Intervals!(uint[]), ulong)' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(isAliasingDelegate, Intervals!(uint[]))' * TemplateInstance::codegen: 'std.traits.hasAliasing!(Intervals!(uint[])).F!(Intervals!(uint[]))' * TemplateInstance::codegen: 'std.traits.isDelegate!(Intervals!(uint[]))' * TemplateInstance::codegen: 'std.traits.isCallable!(Intervals!(uint[]))' * TemplateInstance::codegen: 'std.traits.isSomeFunction!(Intervals!(uint[]))' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(isAliasingDelegate, ulong)' * TemplateInstance::codegen: 'std.traits.hasAliasing!(Intervals!(uint[])).F!ulong' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(isAliasingDelegate, ulong, uint[])' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(isAliasingDelegate, uint[])' * TemplateInstance::codegen: 'std.traits.hasAliasing!(Intervals!(uint[])).F!(uint[])' * TemplateInstance::codegen: 'std.exception.doesPointTo!(Intervals!(uint[]), Intervals!(uint[]), void)' * TemplateInstance::codegen: 'std.traits.isPointer!(Intervals!(uint[]))' * TemplateInstance::codegen: 'std.exception.isUnionAliased!(Intervals!(uint[]), 0LU)' * TemplateInstance::codegen: 'std.exception.isUnionAliasedImpl!(Intervals!(uint[]))' * TemplateInstance::codegen: 'std.exception.doesPointTo!(ulong, Intervals!(uint[]), void)' * TemplateInstance::codegen: 'std.exception.isUnionAliased!(Intervals!(uint[]), 1LU)' * TemplateInstance::codegen: 'std.exception.isUnionAliased!(Intervals!(uint[]), 2LU)' * TemplateInstance::codegen: 'std.exception.doesPointTo!(const(uint)[], Intervals!(uint[]), void)' * TemplateInstance::codegen: 'std.traits.isPointer!(const(uint)[])' * TemplateInstance::codegen: 'std.traits.isDynamicArray!(const(uint)[])' * TemplateInstance::codegen: 'std.traits.DynamicArrayTypeOf!(const(uint)[])' * TemplateInstance::codegen: 'std.traits.Unqual!(const(uint)[])' * TemplateInstance::codegen: 'std.traits.hasElaborateAssign!(Intervals!(uint[]))' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(hasElaborateAssign, ulong, ulong, uint[])' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(hasElaborateAssign, ulong, uint[])' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(hasElaborateAssign, uint[])' * TemplateInstance::codegen: 'std.traits.F!(uint[])' * TemplateInstance::codegen: 'std.traits.isAssignable!(Intervals!(uint[]), Intervals!(uint[]))' * TemplateInstance::codegen: 'std.traits.isRvalueAssignable!(Intervals!(uint[]), Intervals!(uint[]))' * TemplateInstance::codegen: 'std.traits.lvalueOf!(Intervals!(uint[]))' * TemplateInstance::codegen: 'std.traits.rvalueOf!(Intervals!(uint[]))' * TemplateInstance::codegen: 'std.traits.isLvalueAssignable!(Intervals!(uint[]), Intervals!(uint[]))' * TemplateInstance::codegen: 'std.traits.hasElaborateDestructor!(Intervals!(uint[]))' * TemplateInstance::codegen: 'std.traits.hasMember!(Intervals!(uint[]), "__dtor")' * TemplateInstance::codegen: 'std.typetuple.staticIndexOf!("__dtor", "__ctor", "front", "back", "popFront", "popBack", "opIndex", "opIndexAssign", "opSlice", "length", "empty", "save", "start", "end", "slice")' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("__dtor", "__ctor", "front", "back", "popFront", "popBack", "opIndex", "opIndexAssign", "opSlice", "length", "empty", "save", "start", "end", "slice")' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("__dtor", "front", "back", "popFront", "popBack", "opIndex", "opIndexAssign", "opSlice", "length", "empty", "save", "start", "end", "slice")' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("__dtor", "back", "popFront", "popBack", "opIndex", "opIndexAssign", "opSlice", "length", "empty", "save", "start", "end", "slice")' * TemplateInstance::codegen: 'std.typetuple.Alias!"back"' * TemplateInstance::codegen: 'std.typetuple.isSame!("__dtor", "back")' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("__dtor", "popFront", "popBack", "opIndex", "opIndexAssign", "opSlice", "length", "empty", "save", "start", "end", "slice")' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("__dtor", "popBack", "opIndex", "opIndexAssign", "opSlice", "length", "empty", "save", "start", "end", "slice")' * TemplateInstance::codegen: 'std.typetuple.Alias!"popBack"' * TemplateInstance::codegen: 'std.typetuple.isSame!("__dtor", "popBack")' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("__dtor", "opIndex", "opIndexAssign", "opSlice", "length", "empty", "save", "start", "end", "slice")' * TemplateInstance::codegen: 'std.typetuple.Alias!"opIndex"' * TemplateInstance::codegen: 'std.typetuple.isSame!("__dtor", "opIndex")' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("__dtor", "opIndexAssign", "opSlice", "length", "empty", "save", "start", "end", "slice")' * TemplateInstance::codegen: 'std.typetuple.Alias!"opIndexAssign"' * TemplateInstance::codegen: 'std.typetuple.isSame!("__dtor", "opIndexAssign")' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("__dtor", "opSlice", "length", "empty", "save", "start", "end", "slice")' * TemplateInstance::codegen: 'std.typetuple.Alias!"opSlice"' * TemplateInstance::codegen: 'std.typetuple.isSame!("__dtor", "opSlice")' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("__dtor", "length", "empty", "save", "start", "end", "slice")' * TemplateInstance::codegen: 'std.typetuple.Alias!"length"' * TemplateInstance::codegen: 'std.typetuple.isSame!("__dtor", "length")' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("__dtor", "empty", "save", "start", "end", "slice")' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("__dtor", "save", "start", "end", "slice")' * TemplateInstance::codegen: 'std.typetuple.Alias!"save"' * TemplateInstance::codegen: 'std.typetuple.isSame!("__dtor", "save")' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("__dtor", "start", "end", "slice")' * TemplateInstance::codegen: 'std.typetuple.Alias!"start"' * TemplateInstance::codegen: 'std.typetuple.isSame!("__dtor", "start")' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("__dtor", "end", "slice")' * TemplateInstance::codegen: 'std.typetuple.Alias!"end"' * TemplateInstance::codegen: 'std.typetuple.isSame!("__dtor", "end")' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("__dtor", "slice")' * TemplateInstance::codegen: 'std.typetuple.Alias!"slice"' * TemplateInstance::codegen: 'std.typetuple.isSame!("__dtor", "slice")' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(hasElaborateDestructor, ulong, ulong, uint[])' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(hasElaborateDestructor, ulong, uint[])' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(hasElaborateDestructor, uint[])' * TemplateInstance::codegen: 'std.traits.F!(uint[])' * TemplateInstance::codegen: 'std.traits.hasElaborateCopyConstructor!(Intervals!(uint[]))' * TemplateInstance::codegen: 'std.traits.hasMember!(Intervals!(uint[]), "__postblit")' * TemplateInstance::codegen: 'std.typetuple.staticIndexOf!("__postblit", "__ctor", "front", "back", "popFront", "popBack", "opIndex", "opIndexAssign", "opSlice", "length", "empty", "save", "start", "end", "slice")' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("__postblit", "__ctor", "front", "back", "popFront", "popBack", "opIndex", "opIndexAssign", "opSlice", "length", "empty", "save", "start", "end", "slice")' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("__postblit", "front", "back", "popFront", "popBack", "opIndex", "opIndexAssign", "opSlice", "length", "empty", "save", "start", "end", "slice")' * TemplateInstance::codegen: 'std.typetuple.isSame!("__postblit", "front")' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("__postblit", "back", "popFront", "popBack", "opIndex", "opIndexAssign", "opSlice", "length", "empty", "save", "start", "end", "slice")' * TemplateInstance::codegen: 'std.typetuple.isSame!("__postblit", "back")' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("__postblit", "popFront", "popBack", "opIndex", "opIndexAssign", "opSlice", "length", "empty", "save", "start", "end", "slice")' * TemplateInstance::codegen: 'std.typetuple.isSame!("__postblit", "popFront")' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("__postblit", "popBack", "opIndex", "opIndexAssign", "opSlice", "length", "empty", "save", "start", "end", "slice")' * TemplateInstance::codegen: 'std.typetuple.isSame!("__postblit", "popBack")' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("__postblit", "opIndex", "opIndexAssign", "opSlice", "length", "empty", "save", "start", "end", "slice")' * TemplateInstance::codegen: 'std.typetuple.isSame!("__postblit", "opIndex")' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("__postblit", "opIndexAssign", "opSlice", "length", "empty", "save", "start", "end", "slice")' * TemplateInstance::codegen: 'std.typetuple.isSame!("__postblit", "opIndexAssign")' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("__postblit", "opSlice", "length", "empty", "save", "start", "end", "slice")' * TemplateInstance::codegen: 'std.typetuple.isSame!("__postblit", "opSlice")' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("__postblit", "length", "empty", "save", "start", "end", "slice")' * TemplateInstance::codegen: 'std.typetuple.isSame!("__postblit", "length")' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("__postblit", "empty", "save", "start", "end", "slice")' * TemplateInstance::codegen: 'std.typetuple.isSame!("__postblit", "empty")' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("__postblit", "save", "start", "end", "slice")' * TemplateInstance::codegen: 'std.typetuple.isSame!("__postblit", "save")' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("__postblit", "start", "end", "slice")' * TemplateInstance::codegen: 'std.typetuple.isSame!("__postblit", "start")' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("__postblit", "end", "slice")' * TemplateInstance::codegen: 'std.typetuple.isSame!("__postblit", "end")' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("__postblit", "slice")' * TemplateInstance::codegen: 'std.typetuple.isSame!("__postblit", "slice")' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(hasElaborateCopyConstructor, ulong, ulong, uint[])' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(hasElaborateCopyConstructor, ulong)' * TemplateInstance::codegen: 'std.traits.F!ulong' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(hasElaborateCopyConstructor, ulong, uint[])' * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(hasElaborateCopyConstructor, uint[])' * TemplateInstance::codegen: 'std.traits.F!(uint[])' * TemplateInstance::codegen: 'object.RTInfo!(SortedRange!(Intervals!(uint[]), __lambda1))' * TypeInfoDeclaration::codegen(typeid(const(Intervals!(uint[])))) * * type = 'const(Intervals!(uint[]))' * * typeinfo mangle: _D103TypeInfo_xS3std3uni38__T13InversionListTS3std3uni8GcPolicyZ13InversionList17__T9IntervalsTAkZ9Intervals6__initZ * * Building type: Intervals!(uint[]) * * * Building struct type std.uni.InversionList!(GcPolicy).InversionList.Intervals!(uint[]).Intervals @ /usr/include/dlang/ldc/std/uni.d(2654) * * * * adding default initializer for struct field start * * * * adding default initializer for struct field end * * * * adding default initializer for struct field slice * * * * final struct type: %"std.uni.InversionList!(GcPolicy).InversionList.Intervals!(uint[]).Intervals" = type { i64, i64, { i64, i32* } } * * TypeInfoConstDeclaration::llvmDefine() typeid(const(Intervals!(uint[]))) * * * DtoTypeInfoOf(type = 'Intervals!(uint[])', base='1') * * * * Type::getTypeInfo(): Intervals!(uint[]) * * * * * TypeInfoDeclaration::codegen(typeid(Intervals!(uint[]))) * * * * * * type = 'Intervals!(uint[])' * * * * * * typeinfo mangle: _D102TypeInfo_S3std3uni38__T13InversionListTS3std3uni8GcPolicyZ13InversionList17__T9IntervalsTAkZ9Intervals6__initZ * * * * * * TypeInfoStructDeclaration::llvmDefine() typeid(Intervals!(uint[])) * * * * * * * Resolving struct type: Intervals (/usr/include/dlang/ldc/std/uni.d(2654)) * * * * * * * DtoFunctionType(nothrow @trusted ulong(ref const(Intervals!(uint[])) p)) * * * * * * * * Building type: const(Intervals!(uint[]))* * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * Final function type: i64 (%"std.uni.InversionList!(GcPolicy).InversionList.Intervals!(uint[]).Intervals"*) * * * * * * * DtoResolveFunction(std.uni.InversionList!(GcPolicy).InversionList.Intervals!(uint[]).Intervals.__xtoHash): * * * * * * * * DtoDeclareFunction(std.uni.InversionList!(GcPolicy).InversionList.Intervals!(uint[]).Intervals.__xtoHash): * * * * * * * * * DtoFunctionType(nothrow @trusted ulong(ref const(Intervals!(uint[])) p)) * * * * * * * * * func = declare i64 @_D3std3uni38__T13InversionListTS3std3uni8GcPolicyZ13InversionList17__T9IntervalsTAkZ9Intervals9__xtoHashFNbNeKxS3std3uni38__T13InversionListTS3std3uni8GcPolicyZ13InversionList17__T9IntervalsTAkZ9IntervalsZm(%"std.uni.InversionList!(GcPolicy).InversionList.Intervals!(uint[]).Intervals"*) * * * * * * * DtoFunctionType(bool(ref const(Intervals!(uint[])) p, ref const(Intervals!(uint[])) q)) * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * Final function type: i1 (%"std.uni.InversionList!(GcPolicy).InversionList.Intervals!(uint[]).Intervals"*, %"std.uni.InversionList!(GcPolicy).InversionList.Intervals!(uint[]).Intervals"*) * * * * * * * DtoResolveFunction(std.uni.InversionList!(GcPolicy).InversionList.Intervals!(uint[]).Intervals.__xopEquals): * * * * * * * * DtoDeclareFunction(std.uni.InversionList!(GcPolicy).InversionList.Intervals!(uint[]).Intervals.__xopEquals): * * * * * * * * * DtoFunctionType(bool(ref const(Intervals!(uint[])) p, ref const(Intervals!(uint[])) q)) * * * * * * * * * func = declare i1 @_D3std3uni38__T13InversionListTS3std3uni8GcPolicyZ13InversionList17__T9IntervalsTAkZ9Intervals11__xopEqualsFKxS3std3uni38__T13InversionListTS3std3uni8GcPolicyZ13InversionList17__T9IntervalsTAkZ9IntervalsKxS3std3uni38__T13InversionListTS3std3uni8GcPolicyZ13InversionList17__T9IntervalsTAkZ9IntervalsZb(%"std.uni.InversionList!(GcPolicy).InversionList.Intervals!(uint[]).Intervals"*, %"std.uni.InversionList!(GcPolicy).InversionList.Intervals!(uint[]).Intervals"*) * * * * * * * IntegerExp::toConstElem: cast(void*)305419896LU @ void* * * * * * * * * pointer * * * * TypeInfoDeclaration::codegen(typeid(Intervals!(uint[]))) * TypeInfoDeclaration::codegen(typeid(const(void*))) * * type = 'const(void*)' * * typeinfo mangle: _D12TypeInfo_xPv6__initZ * * TypeInfoConstDeclaration::llvmDefine() typeid(const(void*)) * * * DtoTypeInfoOf(type = 'const(void)*', base='1') * * * * Type::getTypeInfo(): const(void)* * * * * * TypeInfoDeclaration::codegen(typeid(const(void)*)) * * * * * * type = 'const(void)*' * * * * * * typeinfo mangle: _D12TypeInfo_Pxv6__initZ * * * * * * TypeInfoPointerDeclaration::llvmDefine() typeid(const(void)*) * * * * * * * DtoTypeInfoOf(type = 'const(void)', base='1') * * * * * * * * Type::getTypeInfo(): const(void) * * * * * * * * * TypeInfoDeclaration::codegen(typeid(const(void))) * * * * * * * * * * type = 'const(void)' * * * * * * * * * * typeinfo mangle: _D11TypeInfo_xv6__initZ * * * * * * * * * * TypeInfoConstDeclaration::llvmDefine() typeid(const(void)) * * * * * * * * * * * DtoTypeInfoOf(type = 'void', base='1') * * * * * * * * * * * * Type::getTypeInfo(): void * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(void)) * * * * * * * * TypeInfoDeclaration::codegen(typeid(const(void))) * * * * TypeInfoDeclaration::codegen(typeid(const(void)*)) * TemplateInstance::codegen: 'object.RTInfo!(Data)' * TemplateInstance::codegen: 'object.RTInfo!(Appender!(const(char)[]))' * TemplateInstance::codegen: 'std.format.format!(char, uint)' * * DtoDefineFunction(std.format.format!(char, uint).format): /usr/include/dlang/ldc/std/format.d(6521) * * * DtoFunctionType(pure @safe string(const(char[]) fmt, uint _param_1)) * * * * x86-64 ABI: Transforming return type * * * * x86-64 ABI: Transforming argument types * * * * Final function type: { i64, i8* } (i32, { i64, i8* }) * * * DtoResolveFunction(std.format.format!(char, uint).format): /usr/include/dlang/ldc/std/format.d(6521) * * * * DtoDeclareFunction(std.format.format!(char, uint).format): /usr/include/dlang/ldc/std/format.d(6521) * * * * * DtoFunctionType(pure @safe string(const(char[]) fmt, uint _param_1)) * * * * * func = declare { i64, i8* } @_D3std6format15__T6formatTaTkZ6formatFNaNfxAakZAya(i32, { i64, i8* }) * * * Doing function body for: format * * * DtoCreateNestedContext for format * * * * DtoCreateNestedContextType for std.format.format!(char, uint).format * * * * * has nested frame * * * * * Function format has depth 0 * * * * * Nested var 'n' of type i32 * * * * * frameType = %nest.format = type { i32 } * * * * nested var: n * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(6522) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(6525) * * * * * * DeclarationExp::toElem: Appender!string w = appender(); | T=void * * * * * * * DtoDeclarationExp: w * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = Appender!string) * * * * * * * * * Building type: Appender!string * * * * * * * * * * Building struct type std.array.Appender!string.Appender @ /usr/include/dlang/ldc/std/array.d(2591) * * * * * * * * * * * adding default initializer for struct field _data * * * * * * * * * * * Building type: Data* * * * * * * * * * * * * Building type: Data * * * * * * * * * * * * * Building struct type std.array.Appender!string.Appender.Data @ /usr/include/dlang/ldc/std/array.d(2597) * * * * * * * * * * * * * * adding explicit initializer for struct field canExtend * * * * * * * * * * * * * * adding default initializer for struct field capacity * * * * * * * * * * * * * * adding default initializer for struct field arr * * * * * * * * * * * * * * final struct type: %"std.array.Appender!string.Appender.Data" = type { i64, { i64, i8* }, i8, [7 x i8] } * * * * * * * * * * * final struct type: %"std.array.Appender!string.Appender" = type { %"std.array.Appender!string.Appender.Data"* } * * * * * * * * * llvm value for decl: %w = alloca %"std.array.Appender!string.Appender", align 8 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: w = appender() | (Appender!string)(Appender!string = Appender!string) * * * * * * * * * * VarExp::toElem: w @ Appender!string * * * * * * * * * * * DtoSymbolAddress ('w' of type 'Appender!string') * * * * * * * * * * * * a normal variable * * * * * * * * * * CallExp::toElem: appender() @ Appender!string * * * * * * * * * * * VarExp::toElem: appender @ pure nothrow @safe Appender!string() * * * * * * * * * * * * DtoSymbolAddress ('appender' of type 'pure nothrow @safe Appender!string()') * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * DtoFunctionType(pure nothrow @safe Appender!string()) * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * Final function type: %"std.array.Appender!string.Appender" () * * * * * * * * * * * * * DtoResolveFunction(std.array.appender!string.appender): /usr/include/dlang/ldc/std/array.d(3071) * * * * * * * * * * * * * * DtoDeclareFunction(std.array.appender!string.appender): /usr/include/dlang/ldc/std/array.d(3071) * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @safe Appender!string()) * * * * * * * * * * * * * * * func = declare %"std.array.Appender!string.Appender" @_D3std5array17__T8appenderTAyaZ8appenderFNaNbNfZS3std5array17__T8AppenderTAyaZ8Appender() * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * Building type: pure nothrow @safe Appender!string() * * * * * * * * * * * * * DtoFunctionType(pure nothrow @safe Appender!string()) * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * Final function type: %"std.array.Appender!string.Appender" () * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * Function type: pure nothrow @safe Appender!string() * * * * * * * * * * * * Storing return value to stack slot * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(6526) * * * * * * DeclarationExp::toElem: uint n = formattedWrite(w, fmt, _param_1); | T=void * * * * * * * DtoDeclarationExp: n * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = uint) * * * * * * * * * has nestedref set (referenced by nested function/delegate) * * * * * * * * * llvm value for decl: %n = getelementptr %nest.format, %nest.format* %.frame, i32 0, i32 0 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: n = formattedWrite(w, fmt, _param_1) | (uint)(uint = uint) * * * * * * * * * * VarExp::toElem: n @ uint * * * * * * * * * * * DtoSymbolAddress ('n' of type 'uint') * * * * * * * * * * * * nested variable * * * * * * * * * * * * DtoNestedVariable for n @ /usr/include/dlang/ldc/std/format.d(6526) * * * * * * * * * * CallExp::toElem: formattedWrite(w, fmt, _param_1) @ uint * * * * * * * * * * * VarExp::toElem: formattedWrite @ pure @safe uint(Appender!string w, const(char[]) fmt, uint _param_2) * * * * * * * * * * * * DtoSymbolAddress ('formattedWrite' of type 'pure @safe uint(Appender!string w, const(char[]) fmt, uint _param_2)') * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * DtoFunctionType(pure @safe uint(Appender!string w, const(char[]) fmt, uint _param_2)) * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * Final function type: i32 (i32, { i64, i8* }, %"std.array.Appender!string.Appender") * * * * * * * * * * * * * DtoResolveFunction(std.format.formattedWrite!(Appender!string, char, uint).formattedWrite): /usr/include/dlang/ldc/std/format.d(420) * * * * * * * * * * * * * * DtoDeclareFunction(std.format.formattedWrite!(Appender!string, char, uint).formattedWrite): /usr/include/dlang/ldc/std/format.d(420) * * * * * * * * * * * * * * * DtoFunctionType(pure @safe uint(Appender!string w, const(char[]) fmt, uint _param_2)) * * * * * * * * * * * * * * * func = declare i32 @_D3std6format64__T14formattedWriteTS3std5array17__T8AppenderTAyaZ8AppenderTaTkZ14formattedWriteFNaNfS3std5array17__T8AppenderTAyaZ8AppenderxAakZk(i32, { i64, i8* }, %"std.array.Appender!string.Appender") * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * Building type: pure @safe uint(Appender!string w, const(char[]) fmt, uint _param_2) * * * * * * * * * * * * * DtoFunctionType(pure @safe uint(Appender!string w, const(char[]) fmt, uint _param_2)) * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * Final function type: i32 (i32, { i64, i8* }, %"std.array.Appender!string.Appender") * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * Function type: pure @safe uint(Appender!string w, const(char[]) fmt, uint _param_2) * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * VarExp::toElem: w @ Appender!string * * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'Appender!string') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * VarExp::toElem: fmt @ const(char[]) * * * * * * * * * * * * * * DtoSymbolAddress ('fmt' of type 'const(char[])') * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * type: const(char[]) * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * VarExp::toElem: _param_1 @ uint * * * * * * * * * * * * * * DtoSymbolAddress ('_param_1' of type 'uint') * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * type: uint * * * * * * * * * * * * Loading struct type for function argument * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %n = getelementptr %nest.format, %nest.format* %.frame, i32 0, i32 0 * * * * * * * * * * * rhs: %8 = call i32 @_D3std6format64__T14formattedWriteTS3std5array17__T8AppenderTAyaZ8AppenderTaTkZ14formattedWriteFNaNfS3std5array17__T8AppenderTAyaZ8AppenderxAakZk(i32 %7, { i64, i8* } %6, %"std.array.Appender!string.Appender" %5) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(6533) * * * * * * CallExp::toElem: enforce(cast(ulong)n == 1LU, delegate Throwable() => new FormatException(text("Orphan format arguments: args[", n, "..", 1LU, "]"), "/usr/include/dlang/ldc/std/format.d", 6533LU, null)) @ bool * * * * * * * VarExp::toElem: enforce @ pure @safe bool(bool value, lazy Throwable ex) * * * * * * * * DtoSymbolAddress ('enforce' of type 'pure @safe bool(bool value, lazy Throwable ex)') * * * * * * * * * FuncDeclaration * * * * * * * * * DtoFunctionType(pure @safe bool(bool value, lazy Throwable ex)) * * * * * * * * * * lazy param * * * * * * * * * * Building type: Throwable delegate() * * * * * * * * * * * DtoFunctionType(Throwable()) * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * Final function type: %object.Throwable* (i8*) * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: i1 ({ i8*, %object.Throwable* (i8*)* }, i1) * * * * * * * * * DtoResolveFunction(std.exception.enforce!bool.enforce): /usr/include/dlang/ldc/std/exception.d(522) * * * * * * * * * * DtoDeclareFunction(std.exception.enforce!bool.enforce): /usr/include/dlang/ldc/std/exception.d(522) * * * * * * * * * * * DtoFunctionType(pure @safe bool(bool value, lazy Throwable ex)) * * * * * * * * * * * func = declare i1 @_D3std9exception14__T7enforceTbZ7enforceFNaNfbLC6object9ThrowableZb({ i8*, %object.Throwable* (i8*)* }, i1) * * * * * * * DtoCallFunction() * * * * * * * * Building type: pure @safe bool(bool value, lazy Throwable ex) * * * * * * * * * DtoFunctionType(pure @safe bool(bool value, lazy Throwable ex)) * * * * * * * * * * lazy param * * * * * * * * * * Building type: Throwable delegate() * * * * * * * * * * * DtoFunctionType(Throwable()) * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * Final function type: %object.Throwable* (i8*) * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: i1 ({ i8*, %object.Throwable* (i8*)* }, i1) * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (0) * * * * * * * * Function type: pure @safe bool(bool value, lazy Throwable ex) * * * * * * * * DtoArgument * * * * * * * * * EqualExp::toElem: cast(ulong)n == 1LU @ bool * * * * * * * * * * CastExp::toElem: cast(ulong)n @ ulong * * * * * * * * * * * VarExp::toElem: n @ uint * * * * * * * * * * * * DtoSymbolAddress ('n' of type 'uint') * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * DtoNestedVariable for n @ /usr/include/dlang/ldc/std/format.d(6533) * * * * * * * * * * * Casting from 'uint' to 'ulong' * * * * * * * * * * * * cast to: i64 * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * value = i64 1 * * * * * * * * * * integral or pointer or interface * * * * * * * * * * lv: %10 = zext i32 %9 to i64 * * * * * * * * * * rv: i64 1 * * * * * * * * DtoArgument * * * * * * * * * FuncExp::toElem: __dgliteral4 @ Throwable delegate() pure nothrow @safe * * * * * * * * * * nested * * * * * * * * * * kind = delegate * * * * * * * * * * DtoDefineFunction(std.format.format!(char, uint).format.__dgliteral4): /usr/include/dlang/ldc/std/format.d(6533) * * * * * * * * * * * DtoFunctionType(pure nothrow @safe Throwable()) * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * Final function type: %object.Throwable* (i8*) * * * * * * * * * * * DtoResolveFunction(std.format.format!(char, uint).format.__dgliteral4): /usr/include/dlang/ldc/std/format.d(6533) * * * * * * * * * * * * DtoDeclareFunction(std.format.format!(char, uint).format.__dgliteral4): /usr/include/dlang/ldc/std/format.d(6533) * * * * * * * * * * * * * DtoFunctionType(pure nothrow @safe Throwable()) * * * * * * * * * * * * * func = declare %object.Throwable* @_D3std6format15__T6formatTaTkZ6formatFxAakZ12__dgliteral4MFNaNbNfZC6object9Throwable(i8*) * * * * * * * * * * * Doing function body for: __dgliteral4 * * * * * * * * * * * DtoCreateNestedContext for __dgliteral4 * * * * * * * * * * * * DtoCreateNestedContextType for std.format.format!(char, uint).format.__dgliteral4 * * * * * * * * * * * * * DtoCreateNestedContextType for std.format.format!(char, uint).format * * * * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/format.d(6533) * * * * * * * * * * * * * NewExp::toElem: new FormatException(text("Orphan format arguments: args[", n, "..", 1LU, "]"), "/usr/include/dlang/ldc/std/format.d", 6533LU, null) @ object.Throwable * * * * * * * * * * * * * * new class * * * * * * * * * * * * * * DtoResolveClass(std.format.FormatException): /usr/include/dlang/ldc/std/format.d(52) * * * * * * * * * * * * * * * Building type: std.format.FormatException * * * * * * * * * * * * * * * * Building class type std.format.FormatException @ /usr/include/dlang/ldc/std/format.d(52) * * * * * * * * * * * * * * * * * Instance size: 72 * * * * * * * * * * * * * * * * * adding default initializer for struct field msg * * * * * * * * * * * * * * * * * adding default initializer for struct field file * * * * * * * * * * * * * * * * * adding default initializer for struct field line * * * * * * * * * * * * * * * * * adding default initializer for struct field info * * * * * * * * * * * * * * * * * adding default initializer for struct field next * * * * * * * * * * * * * * * * * Building vtbl type for class std.format.FormatException * * * * * * * * * * * * * * * * * * Adding type of object.Throwable.toString * * * * * * * * * * * * * * * * * * isMember = this is: object.Throwable * * * * * * * * * * * * * * * * * * DtoFunctionType(string()) * * * * * * * * * * * * * * * * * * Adding type of object.Object.toHash * * * * * * * * * * * * * * * * * * isMember = this is: object.Object * * * * * * * * * * * * * * * * * * DtoFunctionType(nothrow @trusted ulong()) * * * * * * * * * * * * * * * * * * Adding type of object.Object.opCmp * * * * * * * * * * * * * * * * * * isMember = this is: object.Object * * * * * * * * * * * * * * * * * * DtoFunctionType(int(Object o)) * * * * * * * * * * * * * * * * * * Adding type of object.Object.opEquals * * * * * * * * * * * * * * * * * * isMember = this is: object.Object * * * * * * * * * * * * * * * * * * DtoFunctionType(bool(Object o)) * * * * * * * * * * * * * * * * * * Adding type of object.Throwable.toString * * * * * * * * * * * * * * * * * * isMember = this is: object.Throwable * * * * * * * * * * * * * * * * * * DtoFunctionType(const void(scope void delegate(const(char[])) sink)) * * * * * * * * * * * * * * * * * class type: %std.format.FormatException = type { %std.format.FormatException.__vtbl*, i8*, { i64, i8* }, { i64, i8* }, i64, %object.Throwable.TraceInfo*, %object.Throwable* } * * * * * * * * * * * * * * Calling constructor * * * * * * * * * * * * * * isMember = this is: std.format.FormatException * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @safe FormatException(string msg, string fn = __FILE__, ulong ln = cast(ulong)__LINE__, Throwable next = null)) * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * Passing implicitly ByVal: string ({ i64, i8* }) * * * * * * * * * * * * * * * Final function type: %std.format.FormatException* (%std.format.FormatException*, %object.Throwable*, i64, { i64, i8* }, { i64, i8* }*) * * * * * * * * * * * * * * DtoResolveFunction(std.format.FormatException.this): /usr/include/dlang/ldc/std/format.d(61) * * * * * * * * * * * * * * * DtoDeclareFunction(std.format.FormatException.this): /usr/include/dlang/ldc/std/format.d(61) * * * * * * * * * * * * * * * * isMember = this is: std.format.FormatException * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @safe FormatException(string msg, string fn = __FILE__, ulong ln = cast(ulong)__LINE__, Throwable next = null)) * * * * * * * * * * * * * * * * func = declare %std.format.FormatException* @_D3std6format15FormatException6__ctorMFNaNbNfAyaAyamC6object9ThrowableZC3std6format15FormatException(%std.format.FormatException*, %object.Throwable*, i64, { i64, i8* }, { i64, i8* }*) * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * Building type: pure nothrow @safe FormatException(string msg, string fn = __FILE__, ulong ln = cast(ulong)__LINE__, Throwable next = null) * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @safe FormatException(string msg, string fn = __FILE__, ulong ln = cast(ulong)__LINE__, Throwable next = null)) * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * Final function type: %std.format.FormatException* (%object.Throwable*, i64, { i64, i8* }, { i64, i8* }) * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * %.newclass_gc = bitcast %object.Object* %.newclass_gc_alloc to %std.format.FormatException* * * * * * * * * * * * * * * * Function type: pure nothrow @safe FormatException(string msg, string fn = __FILE__, ulong ln = cast(ulong)__LINE__, Throwable next = null) * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * CallExp::toElem: text("Orphan format arguments: args[", n, "..", 1LU, "]") @ string * * * * * * * * * * * * * * * * * VarExp::toElem: text @ pure nothrow @safe string(string _param_0, uint _param_1, string _param_2, ulong _param_3, string _param_4) * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('text' of type 'pure nothrow @safe string(string _param_0, uint _param_1, string _param_2, ulong _param_3, string _param_4)') * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @safe string(string _param_0, uint _param_1, string _param_2, ulong _param_3, string _param_4)) * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * Final function type: { i64, i8* } ({ i64, i8* }, i64, { i64, i8* }, i32, { i64, i8* }) * * * * * * * * * * * * * * * * * * * DtoResolveFunction(std.conv.text!(string, uint, string, ulong, string).text): /usr/include/dlang/ldc/std/conv.d(3638) * * * * * * * * * * * * * * * * * * * * DtoDeclareFunction(std.conv.text!(string, uint, string, ulong, string).text): /usr/include/dlang/ldc/std/conv.d(3638) * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @safe string(string _param_0, uint _param_1, string _param_2, ulong _param_3, string _param_4)) * * * * * * * * * * * * * * * * * * * * * func = declare { i64, i8* } @_D3std4conv25__T4textTAyaTkTAyaTmTAyaZ4textFNaNbNfAyakAyamAyaZAya({ i64, i8* }, i64, { i64, i8* }, i32, { i64, i8* }) * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * Building type: pure nothrow @safe string(string _param_0, uint _param_1, string _param_2, ulong _param_3, string _param_4) * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @safe string(string _param_0, uint _param_1, string _param_2, ulong _param_3, string _param_4)) * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * Final function type: { i64, i8* } ({ i64, i8* }, i64, { i64, i8* }, i32, { i64, i8* }) * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * Function type: pure nothrow @safe string(string _param_0, uint _param_1, string _param_2, ulong _param_3, string _param_4) * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * StringExp::toElem: "Orphan format arguments: args[" @ string * * * * * * * * * * * * * * * * * * * * type: [31 x i8] * * * * * * * * * * * * * * * * * * * * init: [31 x i8] c"Orphan format arguments: args[\00" * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * VarExp::toElem: n @ uint * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('n' of type 'uint') * * * * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for n @ /usr/include/dlang/ldc/std/format.d(6534) * * * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for std.format.format!(char, uint).format * * * * * * * * * * * * * * * * * * * * * * Context: %6 = bitcast i8* %5 to %nest.format* * * * * * * * * * * * * * * * * * * * * * * of type: %nest.format = type { i32 } * * * * * * * * * * * * * * * * * * * * * * Variable: n * * * * * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * * * * * Function: __dgliteral4 * * * * * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * * * * * Addr: %n = getelementptr %nest.format, %nest.format* %6, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * * * * of type: i32* * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * StringExp::toElem: ".." @ string * * * * * * * * * * * * * * * * * * * * type: [3 x i8] * * * * * * * * * * * * * * * * * * * * init: [3 x i8] c"..\00" * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * StringExp::toElem: "]" @ string * * * * * * * * * * * * * * * * * * * * type: [2 x i8] * * * * * * * * * * * * * * * * * * * * init: [2 x i8] c"]\00" * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * StringExp::toElem: "/usr/include/dlang/ldc/std/format.d" @ string * * * * * * * * * * * * * * * * * type: [36 x i8] * * * * * * * * * * * * * * * * * init: [36 x i8] c"/usr/include/dlang/ldc/std/format.d\00" * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * IntegerExp::toElem: 6533LU @ ulong * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 6533LU @ ulong * * * * * * * * * * * * * * * * * * value = i64 6533 * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * NullExp::toElem(type=object.Throwable): null * * * * * * * * * * * * * * * * * NullExp::toConstElem(type=object.Throwable): null * * * * * * * * * * * * * * * Rewrite: putParam * * * * * * * * * * * * * return value is '0x12467c10' * * * * * * * * * * * * * return value after cast: %10 = bitcast %std.format.FormatException* %9 to %object.Throwable* * * * * * * * * * * Building type: Throwable delegate() pure nothrow @safe * * * * * * * * * * * DtoFunctionType(pure nothrow @safe Throwable()) * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * Final function type: %object.Throwable* (i8*) * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/format.d(6536) * * * * * * CallExp::toElem: w.data() @ string * * * * * * * DotVarExp::toElem: w.data @ inout pure nothrow @nogc @property @trusted string() * * * * * * * * VarExp::toElem: w @ Appender!string * * * * * * * * * DtoSymbolAddress ('w' of type 'Appender!string') * * * * * * * * * * a normal variable * * * * * * * * isMember = this is: Appender!string * * * * * * * * DtoFunctionType(inout pure nothrow @nogc @property @trusted string()) * * * * * * * * * Building type: Appender!string* * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * Final function type: { i64, i8* } (%"std.array.Appender!string.Appender"*) * * * * * * * * DtoResolveFunction(std.array.Appender!string.Appender.data): /usr/include/dlang/ldc/std/array.d(2682) * * * * * * * * * DtoDeclareFunction(std.array.Appender!string.Appender.data): /usr/include/dlang/ldc/std/array.d(2682) * * * * * * * * * * isMember = this is: Appender!string * * * * * * * * * * DtoFunctionType(inout pure nothrow @nogc @property @trusted string()) * * * * * * * * * * func = declare { i64, i8* } @_D3std5array17__T8AppenderTAyaZ8Appender4dataMNgFNaNbNdNiNeZAya(%"std.array.Appender!string.Appender"*) * * * * * * * DtoCallFunction() * * * * * * * * Building type: inout pure nothrow @nogc @property @trusted string() * * * * * * * * * DtoFunctionType(inout pure nothrow @nogc @property @trusted string()) * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: { i64, i8* } () * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (1) * * * * * * * * * %w = alloca %"std.array.Appender!string.Appender", align 8 * * * * * * * * Function type: inout pure nothrow @nogc @property @trusted string() * * * * * * return value is '0x12469a20' * TemplateInstance::codegen: 'std.range.primitives.isInputRange!(const(char[])[])' * * VarDeclaration::codegen(): 'std.range.primitives.isInputRange!(const(char[])[]).isInputRange' * * * DtoResolveVariable(std.range.primitives.isInputRange!(const(char[])[]).isInputRange) * TemplateInstance::codegen: 'std.range.primitives.empty!(const(char)[])' * * DtoDefineFunction(std.range.primitives.empty!(const(char)[]).empty): /usr/include/dlang/ldc/std/range/primitives.d(1950) * * * DtoFunctionType(pure nothrow @nogc @property @safe bool(const(char[][]) a)) * * * * Building type: const(char[])[] * * * * x86-64 ABI: Transforming return type * * * * x86-64 ABI: Transforming argument types * * * * Final function type: i1 ({ i64, { i64, i8* }* }) * * * DtoResolveFunction(std.range.primitives.empty!(const(char)[]).empty): /usr/include/dlang/ldc/std/range/primitives.d(1950) * * * * DtoDeclareFunction(std.range.primitives.empty!(const(char)[]).empty): /usr/include/dlang/ldc/std/range/primitives.d(1950) * * * * * DtoFunctionType(pure nothrow @nogc @property @safe bool(const(char[][]) a)) * * * * * func = declare i1 @_D3std5range10primitives14__T5emptyTAxaZ5emptyFNaNbNdNiNfxAAaZb({ i64, { i64, i8* }* }) * * * Doing function body for: empty * * * DtoCreateNestedContext for empty * * * * DtoCreateNestedContextType for std.range.primitives.empty!(const(char)[]).empty * * * CompoundStatement::toIR(): * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/range/primitives.d(1952) * * * * * NotExp::toElem: !a.length @ bool * * * * * * ArrayLengthExp::toElem: a.length @ ulong * * * * * * * VarExp::toElem: a @ const(char[][]) * * * * * * * * DtoSymbolAddress ('a' of type 'const(char[][])') * * * * * * * * * function param * * * * * * * * * type: const(char[][]) * * * * * * * DtoArrayLen * * * * * * Casting from 'ulong' to 'bool' * * * * * return value is '0x1246b840' * TemplateInstance::codegen: 'std.traits.isNarrowString!(const(char[])[])' * TemplateInstance::codegen: 'std.traits.isAggregateType!(const(char[])[])' * TemplateInstance::codegen: 'std.traits.isStaticArray!(const(char[])[])' * TemplateInstance::codegen: 'std.traits.OriginalType!(const(char[])[])' * TemplateInstance::codegen: 'std.traits.ModifyTypePreservingSTC!(Impl, const(char[])[])' * TemplateInstance::codegen: 'std.traits.OriginalType!(const(char[])[]).Modifier!(const(char[])[])' * TemplateInstance::codegen: 'std.range.primitives.popFront!(const(char[]))' * TemplateInstance::codegen: 'std.range.primitives.front!(const(char[]))' * TemplateInstance::codegen: 'std.range.primitives.ElementType!(const(char[])[])' * * Ignoring Dsymbol::codegen for std.range.primitives.ElementType!(const(char[])[]).ElementType * TemplateInstance::codegen: 'std.traits.isSomeString!(const(char[]))' * TemplateInstance::codegen: 'std.traits.StringTypeOf!(const(char[]))' * TemplateInstance::codegen: 'std.traits.isAggregateType!(const(char[]))' * TemplateInstance::codegen: 'std.traits.isStaticArray!(const(char[]))' * TemplateInstance::codegen: 'std.traits.OriginalType!(const(char[]))' * TemplateInstance::codegen: 'std.traits.ModifyTypePreservingSTC!(Impl, const(char[]))' * TemplateInstance::codegen: 'std.traits.OriginalType!(const(char[])).Modifier!(const(char)[])' * TemplateInstance::codegen: 'std.range.primitives.ElementEncodingType!(const(char[]))' * * Ignoring Dsymbol::codegen for std.range.primitives.ElementEncodingType!(const(char[])).ElementEncodingType * TemplateInstance::codegen: 'std.range.primitives.isForwardRange!(const(char[])[])' * * VarDeclaration::codegen(): 'std.range.primitives.isForwardRange!(const(char[])[]).isForwardRange' * * * DtoResolveVariable(std.range.primitives.isForwardRange!(const(char[])[]).isForwardRange) * TemplateInstance::codegen: 'std.range.primitives.save!(const(char[]))' * * DtoDefineFunction(std.range.primitives.save!(const(char[])).save): /usr/include/dlang/ldc/std/range/primitives.d(1971) * * * DtoFunctionType(pure nothrow @nogc @property @safe const(char[])[](const(char[])[] a)) * * * * x86-64 ABI: Transforming return type * * * * x86-64 ABI: Transforming argument types * * * * Final function type: { i64, { i64, i8* }* } ({ i64, { i64, i8* }* }) * * * DtoResolveFunction(std.range.primitives.save!(const(char[])).save): /usr/include/dlang/ldc/std/range/primitives.d(1971) * * * * DtoDeclareFunction(std.range.primitives.save!(const(char[])).save): /usr/include/dlang/ldc/std/range/primitives.d(1971) * * * * * DtoFunctionType(pure nothrow @nogc @property @safe const(char[])[](const(char[])[] a)) * * * * * func = declare { i64, { i64, i8* }* } @_D3std5range10primitives13__T4saveTxAaZ4saveFNaNbNdNiNfAxAaZAxAa({ i64, { i64, i8* }* }) * * * Doing function body for: save * * * DtoCreateNestedContext for save * * * * DtoCreateNestedContextType for std.range.primitives.save!(const(char[])).save * * * CompoundStatement::toIR(): * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/range/primitives.d(1973) * * * * * VarExp::toElem: a @ const(char[])[] * * * * * * DtoSymbolAddress ('a' of type 'const(char[])[]') * * * * * * * function param * * * * * * * type: const(char[])[] * * * * * return value is '0x1246e2a8' * TemplateInstance::codegen: 'std.range.primitives.isRandomAccessRange!(char[])' * TemplateInstance::codegen: 'std.range.primitives.isBidirectionalRange!(char[])' * TemplateInstance::codegen: 'std.range.primitives.isForwardRange!(char[])' * TemplateInstance::codegen: 'std.range.primitives.save!char' * TemplateInstance::codegen: 'std.range.primitives.popBack!char' * TemplateInstance::codegen: 'std.utf.strideBack!(char[])' * TemplateInstance::codegen: 'std.range.primitives.back!char' * TemplateInstance::codegen: 'std.range.primitives.hasLength!(char[])' * TemplateInstance::codegen: 'std.range.primitives.isInfinite!(char[])' * TemplateInstance::codegen: 'std.exception.enforce!(Exception, ulong)' * * DtoDefineFunction(std.exception.enforce!(Exception, ulong).enforce): /usr/include/dlang/ldc/std/exception.d(348) * * * DtoFunctionType(pure @safe ulong(ulong value, lazy const(char)[] msg = null, string file = __FILE__, ulong line = cast(ulong)__LINE__)) * * * * lazy param * * * * Building type: const(char)[] delegate() * * * * * DtoFunctionType(const(char)[]()) * * * * * * x86-64 ABI: Transforming return type * * * * * * x86-64 ABI: Transforming argument types * * * * * * Final function type: { i64, i8* } (i8*) * * * * x86-64 ABI: Transforming return type * * * * x86-64 ABI: Transforming argument types * * * * Final function type: i64 (i64, { i64, i8* }, { i8*, { i64, i8* } (i8*)* }, i64) * * * DtoResolveFunction(std.exception.enforce!(Exception, ulong).enforce): /usr/include/dlang/ldc/std/exception.d(348) * * * * DtoDeclareFunction(std.exception.enforce!(Exception, ulong).enforce): /usr/include/dlang/ldc/std/exception.d(348) * * * * * DtoFunctionType(pure @safe ulong(ulong value, lazy const(char)[] msg = null, string file = __FILE__, ulong line = cast(ulong)__LINE__)) * * * * * func = declare i64 @_D3std9exception27__T7enforceHTC9ExceptionTmZ7enforceFNaNfmLAxaAyamZm(i64, { i64, i8* }, { i8*, { i64, i8* } (i8*)* }, i64) * * * Doing function body for: enforce * * * DtoCreateNestedContext for enforce * * * * DtoCreateNestedContextType for std.exception.enforce!(Exception, ulong).enforce * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/exception.d(350) * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/exception.d(351) * * * * * * NotExp::toElem: !value @ bool * * * * * * * VarExp::toElem: value @ ulong * * * * * * * * DtoSymbolAddress ('value' of type 'ulong') * * * * * * * * * function param * * * * * * * * * type: ulong * * * * * * * Casting from 'ulong' to 'bool' * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/exception.d(351) * * * * * * * CallExp::toElem: bailOut(file, line, msg()) @ void * * * * * * * * VarExp::toElem: bailOut @ pure @safe void(string file, ulong line, const(char[]) msg) * * * * * * * * * DtoSymbolAddress ('bailOut' of type 'pure @safe void(string file, ulong line, const(char[]) msg)') * * * * * * * * * * FuncDeclaration * * * * * * * * DtoCallFunction() * * * * * * * * * doing normal arguments * * * * * * * * * Arguments so far: (0) * * * * * * * * * Function type: pure @safe void(string file, ulong line, const(char[]) msg) * * * * * * * * * DtoArgument * * * * * * * * * * VarExp::toElem: file @ string * * * * * * * * * * * DtoSymbolAddress ('file' of type 'string') * * * * * * * * * * * * function param * * * * * * * * * * * * type: string * * * * * * * * * DtoArgument * * * * * * * * * * VarExp::toElem: line @ ulong * * * * * * * * * * * DtoSymbolAddress ('line' of type 'ulong') * * * * * * * * * * * * function param * * * * * * * * * * * * type: ulong * * * * * * * * * DtoArgument * * * * * * * * * * CallExp::toElem: msg() @ const(char[]) * * * * * * * * * * * VarExp::toElem: msg @ const(char)[] delegate() pure @safe * * * * * * * * * * * * DtoSymbolAddress ('msg' of type 'const(char)[]') * * * * * * * * * * * * * function param * * * * * * * * * * * * * type: const(char)[] * * * * * * * * * * * * * lazy parameter * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * Building type: const(char)[] delegate() pure @safe * * * * * * * * * * * * * DtoFunctionType(pure @safe const(char)[]()) * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * Final function type: { i64, i8* } (i8*) * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * %.ptr = load i8*, i8** %5 * * * * * * * * * * * * Function type: pure @safe const(char)[]() * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/exception.d(352) * * * * * * VarExp::toElem: value @ ulong * * * * * * * DtoSymbolAddress ('value' of type 'ulong') * * * * * * * * function param * * * * * * * * type: ulong * * * * * * return value is '0x12473738' * TemplateInstance::codegen: 'std.conv.text!(dchar, dchar)' * * DtoDefineFunction(std.conv.text!(dchar, dchar).text): /usr/include/dlang/ldc/std/conv.d(3638) * * * DtoFunctionType(pure @safe string(dchar _param_0, dchar _param_1)) * * * * x86-64 ABI: Transforming return type * * * * x86-64 ABI: Transforming argument types * * * * Final function type: { i64, i8* } (i32, i32) * * * DtoResolveFunction(std.conv.text!(dchar, dchar).text): /usr/include/dlang/ldc/std/conv.d(3638) * * * * DtoDeclareFunction(std.conv.text!(dchar, dchar).text): /usr/include/dlang/ldc/std/conv.d(3638) * * * * * DtoFunctionType(pure @safe string(dchar _param_0, dchar _param_1)) * * * * * func = declare { i64, i8* } @_D3std4conv13__T4textTwTwZ4textFNaNfwwZAya(i32, i32) * * * Doing function body for: text * * * DtoCreateNestedContext for text * * * * DtoCreateNestedContextType for std.conv.text!(dchar, dchar).text * * * CompoundStatement::toIR(): * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(3638) * * * * * CallExp::toElem: textImpl(_param_0, _param_1) @ string * * * * * * VarExp::toElem: textImpl @ pure @safe string(dchar _param_0, dchar _param_1) * * * * * * * DtoSymbolAddress ('textImpl' of type 'pure @safe string(dchar _param_0, dchar _param_1)') * * * * * * * * FuncDeclaration * * * * * * * * DtoFunctionType(pure @safe string(dchar _param_0, dchar _param_1)) * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * Final function type: { i64, i8* } (i32, i32) * * * * * * * * DtoResolveFunction(std.conv.textImpl!(string, dchar, dchar).textImpl): /usr/include/dlang/ldc/std/conv.d(3644) * * * * * * * * * DtoDeclareFunction(std.conv.textImpl!(string, dchar, dchar).textImpl): /usr/include/dlang/ldc/std/conv.d(3644) * * * * * * * * * * DtoFunctionType(pure @safe string(dchar _param_0, dchar _param_1)) * * * * * * * * * * func = declare { i64, i8* } @_D3std4conv21__T8textImplTAyaTwTwZ8textImplFNaNfwwZAya(i32, i32) * * * * * * DtoCallFunction() * * * * * * * Building type: pure @safe string(dchar _param_0, dchar _param_1) * * * * * * * * DtoFunctionType(pure @safe string(dchar _param_0, dchar _param_1)) * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * Final function type: { i64, i8* } (i32, i32) * * * * * * * doing normal arguments * * * * * * * Arguments so far: (0) * * * * * * * Function type: pure @safe string(dchar _param_0, dchar _param_1) * * * * * * * DtoArgument * * * * * * * * VarExp::toElem: _param_0 @ dchar * * * * * * * * * DtoSymbolAddress ('_param_0' of type 'dchar') * * * * * * * * * * function param * * * * * * * * * * type: dchar * * * * * * * DtoArgument * * * * * * * * VarExp::toElem: _param_1 @ dchar * * * * * * * * * DtoSymbolAddress ('_param_1' of type 'dchar') * * * * * * * * * * function param * * * * * * * * * * type: dchar * * * * * return value is '0x12476ce8' * TemplateInstance::codegen: 'std.conv.textImpl!(string, dchar, dchar)' * * DtoDefineFunction(std.conv.textImpl!(string, dchar, dchar).textImpl): /usr/include/dlang/ldc/std/conv.d(3644) * * * Doing function body for: textImpl * * * DtoCreateNestedContext for textImpl * * * * DtoCreateNestedContextType for std.conv.textImpl!(string, dchar, dchar).textImpl * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(3645) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(3652) * * * * * * DeclarationExp::toElem: string result = to(_param_0); | T=void * * * * * * * DtoDeclarationExp: result * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = string) * * * * * * * * * llvm value for decl: %result = alloca { i64, i8* }, align 8 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: result = to(_param_0) | (string)(string = string) * * * * * * * * * * VarExp::toElem: result @ string * * * * * * * * * * * DtoSymbolAddress ('result' of type 'string') * * * * * * * * * * * * a normal variable * * * * * * * * * * CallExp::toElem: to(_param_0) @ string * * * * * * * * * * * VarExp::toElem: to @ pure @safe string(dchar _param_0) * * * * * * * * * * * * DtoSymbolAddress ('to' of type 'pure @safe string(dchar _param_0)') * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * DtoFunctionType(pure @safe string(dchar _param_0)) * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * Final function type: { i64, i8* } (i32) * * * * * * * * * * * * * DtoResolveFunction(std.conv.to!string.to!(dchar).to): /usr/include/dlang/ldc/std/conv.d(292) * * * * * * * * * * * * * * DtoDeclareFunction(std.conv.to!string.to!(dchar).to): /usr/include/dlang/ldc/std/conv.d(292) * * * * * * * * * * * * * * * DtoFunctionType(pure @safe string(dchar _param_0)) * * * * * * * * * * * * * * * func = declare { i64, i8* } @_D3std4conv11__T2toTAyaZ9__T2toTwZ2toFNaNfwZAya(i32) * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * Building type: pure @safe string(dchar _param_0) * * * * * * * * * * * * * DtoFunctionType(pure @safe string(dchar _param_0)) * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * Final function type: { i64, i8* } (i32) * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * Function type: pure @safe string(dchar _param_0) * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * VarExp::toElem: _param_0 @ dchar * * * * * * * * * * * * * * DtoSymbolAddress ('_param_0' of type 'dchar') * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * type: dchar * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * SetArray * * * * * UnrolledLoopStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(3653) * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(3653) * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(3653) * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(3653) * * * * * * * * * DeclarationExp::toElem: dchar arg = _param_1; | T=void * * * * * * * * * * DtoDeclarationExp: arg * * * * * * * * * * * VarDeclaration * * * * * * * * * * * DtoVarDeclaration(vdtype = dchar) * * * * * * * * * * * * llvm value for decl: %arg = alloca i32, align 4 * * * * * * * * * * * * expression initializer * * * * * * * * * * * * AssignExp::toElem: arg = _param_1 | (dchar)(dchar = dchar) * * * * * * * * * * * * * VarExp::toElem: arg @ dchar * * * * * * * * * * * * * * DtoSymbolAddress ('arg' of type 'dchar') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * VarExp::toElem: _param_1 @ dchar * * * * * * * * * * * * * * DtoSymbolAddress ('_param_1' of type 'dchar') * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * type: dchar * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * lhs: %arg = alloca i32, align 4 * * * * * * * * * * * * * * rhs: %5 = load i32, i32* %_param_1 * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(3654) * * * * * * * * * CatAssignExp::toElem: result ~= to(arg) @ string * * * * * * * * * * VarExp::toElem: result @ string * * * * * * * * * * * DtoSymbolAddress ('result' of type 'string') * * * * * * * * * * * * a normal variable * * * * * * * * * * DtoCatAssignArray * * * * * * * * * * * CallExp::toElem: to(arg) @ string * * * * * * * * * * * * VarExp::toElem: to @ pure @safe string(dchar _param_0) * * * * * * * * * * * * * DtoSymbolAddress ('to' of type 'pure @safe string(dchar _param_0)') * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * Function type: pure @safe string(dchar _param_0) * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * VarExp::toElem: arg @ dchar * * * * * * * * * * * * * * * DtoSymbolAddress ('arg' of type 'dchar') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * DtoTypeInfoOf(type = 'string', base='1') * * * * * * * * * * * * Type::getTypeInfo(): string * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(string)) * * * * * * * * * * DtoAssign() * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * SetArray * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(3655) * * * * * * VarExp::toElem: result @ string * * * * * * * DtoSymbolAddress ('result' of type 'string') * * * * * * * * a normal variable * * * * * * return value is '0x1247b658' * TemplateInstance::codegen: 'std.conv.to!ulong' * * Ignoring Dsymbol::codegen for std.conv.to!ulong.to(A...)(A args) if (!isRawStaticArray!A) * * Ignoring Dsymbol::codegen for std.conv.to!ulong.to(S)(ref S arg) if (isRawStaticArray!S) * TemplateInstance::codegen: 'std.conv.to!ulong.to!(string)' * * DtoDefineFunction(std.conv.to!ulong.to!(string).to): /usr/include/dlang/ldc/std/conv.d(292) * * * DtoFunctionType(pure @safe ulong(string _param_0)) * * * * x86-64 ABI: Transforming return type * * * * x86-64 ABI: Transforming argument types * * * * Final function type: i64 ({ i64, i8* }) * * * DtoResolveFunction(std.conv.to!ulong.to!(string).to): /usr/include/dlang/ldc/std/conv.d(292) * * * * DtoDeclareFunction(std.conv.to!ulong.to!(string).to): /usr/include/dlang/ldc/std/conv.d(292) * * * * * DtoFunctionType(pure @safe ulong(string _param_0)) * * * * * func = declare i64 @_D3std4conv9__T2toTmZ11__T2toTAyaZ2toFNaNfAyaZm({ i64, i8* }) * * * Doing function body for: to * * * DtoCreateNestedContext for to * * * * DtoCreateNestedContextType for std.conv.to!ulong.to!(string).to * * * CompoundStatement::toIR(): * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(295) * * * * * CallExp::toElem: toImpl(_param_0) @ ulong * * * * * * VarExp::toElem: toImpl @ pure @safe ulong(string value) * * * * * * * DtoSymbolAddress ('toImpl' of type 'pure @safe ulong(string value)') * * * * * * * * FuncDeclaration * * * * * * * * DtoFunctionType(pure @safe ulong(string value)) * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * Final function type: i64 ({ i64, i8* }) * * * * * * * * DtoResolveFunction(std.conv.toImpl!(ulong, string).toImpl): /usr/include/dlang/ldc/std/conv.d(1727) * * * * * * * * * DtoDeclareFunction(std.conv.toImpl!(ulong, string).toImpl): /usr/include/dlang/ldc/std/conv.d(1727) * * * * * * * * * * DtoFunctionType(pure @safe ulong(string value)) * * * * * * * * * * func = declare i64 @_D3std4conv17__T6toImplTmTAyaZ6toImplFNaNfAyaZm({ i64, i8* }) * * * * * * DtoCallFunction() * * * * * * * Building type: pure @safe ulong(string value) * * * * * * * * DtoFunctionType(pure @safe ulong(string value)) * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * Final function type: i64 ({ i64, i8* }) * * * * * * * doing normal arguments * * * * * * * Arguments so far: (0) * * * * * * * Function type: pure @safe ulong(string value) * * * * * * * DtoArgument * * * * * * * * VarExp::toElem: _param_0 @ string * * * * * * * * * DtoSymbolAddress ('_param_0' of type 'string') * * * * * * * * * * function param * * * * * * * * * * type: string * * * * * return value is '0x1247e9a0' * TemplateInstance::codegen: 'std.traits.isImplicitlyConvertible!(string, ulong)' * TemplateInstance::codegen: 'std.typetuple.staticIndexOf!(ulong, dchar, char)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(ulong, dchar, char)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(ulong, char)' * TemplateInstance::codegen: 'std.conv.parse!(ulong, string)' * * DtoDefineFunction(std.conv.parse!(ulong, string).parse): /usr/include/dlang/ldc/std/conv.d(1938) * * * DtoFunctionType(pure @safe ulong(ref string s)) * * * * x86-64 ABI: Transforming return type * * * * x86-64 ABI: Transforming argument types * * * * Final function type: i64 ({ i64, i8* }*) * * * DtoResolveFunction(std.conv.parse!(ulong, string).parse): /usr/include/dlang/ldc/std/conv.d(1938) * * * * DtoDeclareFunction(std.conv.parse!(ulong, string).parse): /usr/include/dlang/ldc/std/conv.d(1938) * * * * * DtoFunctionType(pure @safe ulong(ref string s)) * * * * * func = declare i64 @_D3std4conv16__T5parseTmTAyaZ5parseFNaNfKAyaZm({ i64, i8* }*) * * * Doing function body for: parse * * * DtoCreateNestedContext for parse * * * * DtoCreateNestedContextType for std.conv.parse!(ulong, string).parse * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(1941) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(1958) * * * * * * DeclarationExp::toElem: enum bool sign = false; | T=void * * * * * * * DtoDeclarationExp: sign * * * * * * * * VarDeclaration * * * * * * * * Manifest constant, nothing to do. * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(1960) * * * * * * DeclarationExp::toElem: enum char maxLastDigit = '\x05'; | T=void * * * * * * * DtoDeclarationExp: maxLastDigit * * * * * * * * VarDeclaration * * * * * * * * Manifest constant, nothing to do. * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(1961) * * * * * * DeclarationExp::toElem: dchar c = '\U0000ffff'; | T=void * * * * * * * DtoDeclarationExp: c * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = dchar) * * * * * * * * * llvm value for decl: %c = alloca i32, align 4 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: c = '\U0000ffff' | (dchar)(dchar = dchar) * * * * * * * * * * VarExp::toElem: c @ dchar * * * * * * * * * * * DtoSymbolAddress ('c' of type 'dchar') * * * * * * * * * * * * a normal variable * * * * * * * * * * IntegerExp::toElem: '\U0000ffff' @ dchar * * * * * * * * * * * IntegerExp::toConstElem: '\U0000ffff' @ dchar * * * * * * * * * * * * value = i32 65535 * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %c = alloca i32, align 4 * * * * * * * * * * * rhs: i32 65535 * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(1963) * * * * * * CallExp::toElem: empty(s) @ bool * * * * * * * VarExp::toElem: empty @ pure nothrow @nogc @property @safe bool(const(char[]) a) * * * * * * * * DtoSymbolAddress ('empty' of type 'pure nothrow @nogc @property @safe bool(const(char[]) a)') * * * * * * * * * FuncDeclaration * * * * * * * * * DtoFunctionType(pure nothrow @nogc @property @safe bool(const(char[]) a)) * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: i1 ({ i64, i8* }) * * * * * * * * * DtoResolveFunction(std.range.primitives.empty!char.empty): /usr/include/dlang/ldc/std/range/primitives.d(1950) * * * * * * * * * * DtoDeclareFunction(std.range.primitives.empty!char.empty): /usr/include/dlang/ldc/std/range/primitives.d(1950) * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @property @safe bool(const(char[]) a)) * * * * * * * * * * * func = declare i1 @_D3std5range10primitives12__T5emptyTaZ5emptyFNaNbNdNiNfxAaZb({ i64, i8* }) * * * * * * * DtoCallFunction() * * * * * * * * Building type: pure nothrow @nogc @property @safe bool(const(char[]) a) * * * * * * * * * DtoFunctionType(pure nothrow @nogc @property @safe bool(const(char[]) a)) * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: i1 ({ i64, i8* }) * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (0) * * * * * * * * Function type: pure nothrow @nogc @property @safe bool(const(char[]) a) * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: s @ const(char[]) * * * * * * * * * * DtoSymbolAddress ('s' of type 'string') * * * * * * * * * * * function param * * * * * * * * * * * type: string * * * * * * GotoStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(1964) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(1966) * * * * * * AssignExp::toElem: c = front(s) | (dchar)(dchar = dchar) * * * * * * * VarExp::toElem: c @ dchar * * * * * * * * DtoSymbolAddress ('c' of type 'dchar') * * * * * * * * * a normal variable * * * * * * * CallExp::toElem: front(s) @ dchar * * * * * * * * VarExp::toElem: front @ pure @property @safe dchar(string a) * * * * * * * * * DtoSymbolAddress ('front' of type 'pure @property @safe dchar(string a)') * * * * * * * * * * FuncDeclaration * * * * * * * * * * DtoFunctionType(pure @property @safe dchar(string a)) * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * Final function type: i32 ({ i64, i8* }) * * * * * * * * * * DtoResolveFunction(std.range.primitives.front!(immutable(char)).front): /usr/include/dlang/ldc/std/range/primitives.d(2185) * * * * * * * * * * * DtoDeclareFunction(std.range.primitives.front!(immutable(char)).front): /usr/include/dlang/ldc/std/range/primitives.d(2185) * * * * * * * * * * * * DtoFunctionType(pure @property @safe dchar(string a)) * * * * * * * * * * * * func = declare i32 @_D3std5range10primitives13__T5frontTyaZ5frontFNaNdNfAyaZw({ i64, i8* }) * * * * * * * * DtoCallFunction() * * * * * * * * * Building type: pure @property @safe dchar(string a) * * * * * * * * * * DtoFunctionType(pure @property @safe dchar(string a)) * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * Final function type: i32 ({ i64, i8* }) * * * * * * * * * doing normal arguments * * * * * * * * * Arguments so far: (0) * * * * * * * * * Function type: pure @property @safe dchar(string a) * * * * * * * * * DtoArgument * * * * * * * * * * VarExp::toElem: s @ string * * * * * * * * * * * DtoSymbolAddress ('s' of type 'string') * * * * * * * * * * * * function param * * * * * * * * * * * * type: string * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * DtoAssign() * * * * * * * * lhs: %c = alloca i32, align 4 * * * * * * * * rhs: %4 = call i32 @_D3std5range10primitives13__T5frontTyaZ5frontFNaNdNfAyaZw({ i64, i8* } %3) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(1967) * * * * * * CallExp::toElem: popFront(s) @ void * * * * * * * VarExp::toElem: popFront @ pure nothrow @nogc @trusted void(ref string str) * * * * * * * * DtoSymbolAddress ('popFront' of type 'pure nothrow @nogc @trusted void(ref string str)') * * * * * * * * * FuncDeclaration * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted void(ref string str)) * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: void ({ i64, i8* }*) * * * * * * * * * DtoResolveFunction(std.range.primitives.popFront!(immutable(char)).popFront): /usr/include/dlang/ldc/std/range/primitives.d(2015) * * * * * * * * * * DtoDeclareFunction(std.range.primitives.popFront!(immutable(char)).popFront): /usr/include/dlang/ldc/std/range/primitives.d(2015) * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted void(ref string str)) * * * * * * * * * * * func = declare void @_D3std5range10primitives16__T8popFrontTyaZ8popFrontFNaNbNiNeKAyaZv({ i64, i8* }*) * * * * * * * DtoCallFunction() * * * * * * * * Building type: pure nothrow @nogc @trusted void(ref string str) * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted void(ref string str)) * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: void ({ i64, i8* }*) * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (0) * * * * * * * * Function type: pure nothrow @nogc @trusted void(ref string str) * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: s @ string * * * * * * * * * * DtoSymbolAddress ('s' of type 'string') * * * * * * * * * * * function param * * * * * * * * * * * type: string * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(1986) * * * * * * MinAssignExp::toElem: cast(uint)c -= 48u @ dchar * * * * * * * Caching l-value of cast(uint)c -= 48u => c * * * * * * * * VarExp::toElem: c @ dchar * * * * * * * * * DtoSymbolAddress ('c' of type 'dchar') * * * * * * * * * * a normal variable * * * * * * * MinExp::toElem: cast(uint)c - 48u @ uint * * * * * * * * CastExp::toElem: cast(uint)c @ uint * * * * * * * * * VarExp::toElem: c @ dchar * * * * * * * * * Casting from 'dchar' to 'uint' * * * * * * * * IntegerExp::toElem: 48u @ uint * * * * * * * * * IntegerExp::toConstElem: 48u @ uint * * * * * * * * * * value = i32 48 * * * * * * * Casting from 'uint' to 'dchar' * * * * * * * DtoAssign() * * * * * * * * lhs: %c = alloca i32, align 4 * * * * * * * * rhs: %6 = sub i32 %5, 48 * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(1987) * * * * * * CmpExp::toElem: cast(uint)c <= 9u @ bool * * * * * * * CastExp::toElem: cast(uint)c @ uint * * * * * * * * VarExp::toElem: c @ dchar * * * * * * * * * DtoSymbolAddress ('c' of type 'dchar') * * * * * * * * * * a normal variable * * * * * * * * Casting from 'dchar' to 'uint' * * * * * * * IntegerExp::toElem: 9u @ uint * * * * * * * * IntegerExp::toConstElem: 9u @ uint * * * * * * * * * value = i32 9 * * * * * * * type 1: %7 = load i32, i32* %c * * * * * * * type 2: i32 9 * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(1988) * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(1988) * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(1989) * * * * * * * * * DeclarationExp::toElem: ulong v = cast(ulong)c; | T=void * * * * * * * * * * DtoDeclarationExp: v * * * * * * * * * * * VarDeclaration * * * * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * * * * llvm value for decl: %v = alloca i64, align 8 * * * * * * * * * * * * expression initializer * * * * * * * * * * * * AssignExp::toElem: v = cast(ulong)c | (ulong)(ulong = ulong) * * * * * * * * * * * * * VarExp::toElem: v @ ulong * * * * * * * * * * * * * * DtoSymbolAddress ('v' of type 'ulong') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * CastExp::toElem: cast(ulong)c @ ulong * * * * * * * * * * * * * * VarExp::toElem: c @ dchar * * * * * * * * * * * * * * * DtoSymbolAddress ('c' of type 'dchar') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * Casting from 'dchar' to 'ulong' * * * * * * * * * * * * * * * cast to: i64 * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * lhs: %v = alloca i64, align 8 * * * * * * * * * * * * * * rhs: %10 = zext i32 %9 to i64 * * * * * * * * ForStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(1990) * * * * * * * * * NotExp::toElem: !empty(s) @ bool * * * * * * * * * * CallExp::toElem: empty(s) @ bool * * * * * * * * * * * VarExp::toElem: empty @ pure nothrow @nogc @property @safe bool(const(char[]) a) * * * * * * * * * * * * DtoSymbolAddress ('empty' of type 'pure nothrow @nogc @property @safe bool(const(char[]) a)') * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * Function type: pure nothrow @nogc @property @safe bool(const(char[]) a) * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * VarExp::toElem: s @ const(char[]) * * * * * * * * * * * * * * DtoSymbolAddress ('s' of type 'string') * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * type: string * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(1991) * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(1991) * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(1992) * * * * * * * * * * * * AssignExp::toElem: c = cast(dchar)(cast(uint)front(s) - 48u) | (dchar)(dchar = dchar) * * * * * * * * * * * * * VarExp::toElem: c @ dchar * * * * * * * * * * * * * * DtoSymbolAddress ('c' of type 'dchar') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * CastExp::toElem: cast(dchar)(cast(uint)front(s) - 48u) @ dchar * * * * * * * * * * * * * * MinExp::toElem: cast(uint)front(s) - 48u @ uint * * * * * * * * * * * * * * * CastExp::toElem: cast(uint)front(s) @ uint * * * * * * * * * * * * * * * * CallExp::toElem: front(s) @ dchar * * * * * * * * * * * * * * * * * VarExp::toElem: front @ pure @property @safe dchar(string a) * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('front' of type 'pure @property @safe dchar(string a)') * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * Function type: pure @property @safe dchar(string a) * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * VarExp::toElem: s @ string * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('s' of type 'string') * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * type: string * * * * * * * * * * * * * * * * Casting from 'dchar' to 'uint' * * * * * * * * * * * * * * * IntegerExp::toElem: 48u @ uint * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 48u @ uint * * * * * * * * * * * * * * * * * value = i32 48 * * * * * * * * * * * * * * Casting from 'uint' to 'dchar' * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * lhs: %c = alloca i32, align 4 * * * * * * * * * * * * * * rhs: %16 = sub i32 %15, 48 * * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(1993) * * * * * * * * * * * * CmpExp::toElem: cast(uint)c > 9u @ bool * * * * * * * * * * * * * CastExp::toElem: cast(uint)c @ uint * * * * * * * * * * * * * * VarExp::toElem: c @ dchar * * * * * * * * * * * * * * * DtoSymbolAddress ('c' of type 'dchar') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * Casting from 'dchar' to 'uint' * * * * * * * * * * * * * IntegerExp::toElem: 9u @ uint * * * * * * * * * * * * * * IntegerExp::toConstElem: 9u @ uint * * * * * * * * * * * * * * * value = i32 9 * * * * * * * * * * * * * type 1: %17 = load i32, i32* %c * * * * * * * * * * * * * type 2: i32 9 * * * * * * * * * * * * BreakStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(1994) * * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(1996) * * * * * * * * * * * * AndAndExp::toElem: v >= 0LU && (v < 1844674407370955161LU || v == 1844674407370955161LU && cast(uint)c <= 5u) @ bool * * * * * * * * * * * * * CmpExp::toElem: v >= 0LU @ bool * * * * * * * * * * * * * * VarExp::toElem: v @ ulong * * * * * * * * * * * * * * * DtoSymbolAddress ('v' of type 'ulong') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * * type 1: %19 = load i64, i64* %v * * * * * * * * * * * * * * type 2: i64 0 * * * * * * * * * * * * * OrOrExp::toElem: v < 1844674407370955161LU || v == 1844674407370955161LU && cast(uint)c <= 5u @ bool * * * * * * * * * * * * * * CmpExp::toElem: v < 1844674407370955161LU @ bool * * * * * * * * * * * * * * * VarExp::toElem: v @ ulong * * * * * * * * * * * * * * * * DtoSymbolAddress ('v' of type 'ulong') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * IntegerExp::toElem: 1844674407370955161LU @ ulong * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1844674407370955161LU @ ulong * * * * * * * * * * * * * * * * * value = i64 1844674407370955161 * * * * * * * * * * * * * * * type 1: %21 = load i64, i64* %v * * * * * * * * * * * * * * * type 2: i64 1844674407370955161 * * * * * * * * * * * * * * AndAndExp::toElem: v == 1844674407370955161LU && cast(uint)c <= 5u @ bool * * * * * * * * * * * * * * * EqualExp::toElem: v == 1844674407370955161LU @ bool * * * * * * * * * * * * * * * * VarExp::toElem: v @ ulong * * * * * * * * * * * * * * * * * DtoSymbolAddress ('v' of type 'ulong') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * IntegerExp::toElem: 1844674407370955161LU @ ulong * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1844674407370955161LU @ ulong * * * * * * * * * * * * * * * * * * value = i64 1844674407370955161 * * * * * * * * * * * * * * * * integral or pointer or interface * * * * * * * * * * * * * * * * lv: %23 = load i64, i64* %v * * * * * * * * * * * * * * * * rv: i64 1844674407370955161 * * * * * * * * * * * * * * * CmpExp::toElem: cast(uint)c <= 5u @ bool * * * * * * * * * * * * * * * * CastExp::toElem: cast(uint)c @ uint * * * * * * * * * * * * * * * * * VarExp::toElem: c @ dchar * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('c' of type 'dchar') * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * Casting from 'dchar' to 'uint' * * * * * * * * * * * * * * * * IntegerExp::toElem: 5u @ uint * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 5u @ uint * * * * * * * * * * * * * * * * * * value = i32 5 * * * * * * * * * * * * * * * * type 1: %25 = load i32, i32* %c * * * * * * * * * * * * * * * * type 2: i32 5 * * * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(1998) * * * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(1998) * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(2001) * * * * * * * * * * * * * * * AssignExp::toElem: v = v * 10LU + cast(ulong)cast(uint)c | (ulong)(ulong = ulong) * * * * * * * * * * * * * * * * VarExp::toElem: v @ ulong * * * * * * * * * * * * * * * * * DtoSymbolAddress ('v' of type 'ulong') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * AddExp::toElem: v * 10LU + cast(ulong)cast(uint)c @ ulong * * * * * * * * * * * * * * * * * MulExp::toElem: v * 10LU @ ulong * * * * * * * * * * * * * * * * * * VarExp::toElem: v @ ulong * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('v' of type 'ulong') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 10LU @ ulong * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 10LU @ ulong * * * * * * * * * * * * * * * * * * * * value = i64 10 * * * * * * * * * * * * * * * * * CastExp::toElem: cast(ulong)cast(uint)c @ ulong * * * * * * * * * * * * * * * * * * CastExp::toElem: cast(uint)c @ uint * * * * * * * * * * * * * * * * * * * VarExp::toElem: c @ dchar * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('c' of type 'dchar') * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * Casting from 'dchar' to 'uint' * * * * * * * * * * * * * * * * * * Casting from 'uint' to 'ulong' * * * * * * * * * * * * * * * * * * * cast to: i64 * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * lhs: %v = alloca i64, align 8 * * * * * * * * * * * * * * * * * rhs: %31 = add i64 %28, %30 * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(2002) * * * * * * * * * * * * * * * CallExp::toElem: popFront(s) @ void * * * * * * * * * * * * * * * * VarExp::toElem: popFront @ pure nothrow @nogc @trusted void(ref string str) * * * * * * * * * * * * * * * * * DtoSymbolAddress ('popFront' of type 'pure nothrow @nogc @trusted void(ref string str)') * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @trusted void(ref string str) * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * VarExp::toElem: s @ string * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('s' of type 'string') * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * type: string * * * * * * * * * * * * ThrowStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(2005) * * * * * * * * * * * * * NewExp::toElem: new ConvOverflowException("Overflow in integral conversion", "/usr/include/dlang/ldc/std/conv.d", 2005LU) @ std.conv.ConvOverflowException * * * * * * * * * * * * * * new class * * * * * * * * * * * * * * DtoResolveClass(std.conv.ConvOverflowException): /usr/include/dlang/ldc/std/conv.d(156) * * * * * * * * * * * * * * * DtoResolveClass(std.conv.ConvException): /usr/include/dlang/ldc/std/conv.d(41) * * * * * * * * * * * * * * * * Building type: std.conv.ConvException * * * * * * * * * * * * * * * * * Building class type std.conv.ConvException @ /usr/include/dlang/ldc/std/conv.d(41) * * * * * * * * * * * * * * * * * * Instance size: 72 * * * * * * * * * * * * * * * * * * adding default initializer for struct field msg * * * * * * * * * * * * * * * * * * adding default initializer for struct field file * * * * * * * * * * * * * * * * * * adding default initializer for struct field line * * * * * * * * * * * * * * * * * * adding default initializer for struct field info * * * * * * * * * * * * * * * * * * adding default initializer for struct field next * * * * * * * * * * * * * * * * * * Building vtbl type for class std.conv.ConvException * * * * * * * * * * * * * * * * * * * Adding type of object.Throwable.toString * * * * * * * * * * * * * * * * * * * isMember = this is: object.Throwable * * * * * * * * * * * * * * * * * * * DtoFunctionType(string()) * * * * * * * * * * * * * * * * * * * Adding type of object.Object.toHash * * * * * * * * * * * * * * * * * * * isMember = this is: object.Object * * * * * * * * * * * * * * * * * * * DtoFunctionType(nothrow @trusted ulong()) * * * * * * * * * * * * * * * * * * * Adding type of object.Object.opCmp * * * * * * * * * * * * * * * * * * * isMember = this is: object.Object * * * * * * * * * * * * * * * * * * * DtoFunctionType(int(Object o)) * * * * * * * * * * * * * * * * * * * Adding type of object.Object.opEquals * * * * * * * * * * * * * * * * * * * isMember = this is: object.Object * * * * * * * * * * * * * * * * * * * DtoFunctionType(bool(Object o)) * * * * * * * * * * * * * * * * * * * Adding type of object.Throwable.toString * * * * * * * * * * * * * * * * * * * isMember = this is: object.Throwable * * * * * * * * * * * * * * * * * * * DtoFunctionType(const void(scope void delegate(const(char[])) sink)) * * * * * * * * * * * * * * * * * * class type: %std.conv.ConvException = type { %std.conv.ConvException.__vtbl*, i8*, { i64, i8* }, { i64, i8* }, i64, %object.Throwable.TraceInfo*, %object.Throwable* } * * * * * * * * * * * * * * * Building type: std.conv.ConvOverflowException * * * * * * * * * * * * * * * * Building class type std.conv.ConvOverflowException @ /usr/include/dlang/ldc/std/conv.d(156) * * * * * * * * * * * * * * * * * Instance size: 72 * * * * * * * * * * * * * * * * * adding default initializer for struct field msg * * * * * * * * * * * * * * * * * adding default initializer for struct field file * * * * * * * * * * * * * * * * * adding default initializer for struct field line * * * * * * * * * * * * * * * * * adding default initializer for struct field info * * * * * * * * * * * * * * * * * adding default initializer for struct field next * * * * * * * * * * * * * * * * * Building vtbl type for class std.conv.ConvOverflowException * * * * * * * * * * * * * * * * * * Adding type of object.Throwable.toString * * * * * * * * * * * * * * * * * * isMember = this is: object.Throwable * * * * * * * * * * * * * * * * * * DtoFunctionType(string()) * * * * * * * * * * * * * * * * * * Adding type of object.Object.toHash * * * * * * * * * * * * * * * * * * isMember = this is: object.Object * * * * * * * * * * * * * * * * * * DtoFunctionType(nothrow @trusted ulong()) * * * * * * * * * * * * * * * * * * Adding type of object.Object.opCmp * * * * * * * * * * * * * * * * * * isMember = this is: object.Object * * * * * * * * * * * * * * * * * * DtoFunctionType(int(Object o)) * * * * * * * * * * * * * * * * * * Adding type of object.Object.opEquals * * * * * * * * * * * * * * * * * * isMember = this is: object.Object * * * * * * * * * * * * * * * * * * DtoFunctionType(bool(Object o)) * * * * * * * * * * * * * * * * * * Adding type of object.Throwable.toString * * * * * * * * * * * * * * * * * * isMember = this is: object.Throwable * * * * * * * * * * * * * * * * * * DtoFunctionType(const void(scope void delegate(const(char[])) sink)) * * * * * * * * * * * * * * * * * class type: %std.conv.ConvOverflowException = type { %std.conv.ConvOverflowException.__vtbl*, i8*, { i64, i8* }, { i64, i8* }, i64, %object.Throwable.TraceInfo*, %object.Throwable* } * * * * * * * * * * * * * * Calling constructor * * * * * * * * * * * * * * isMember = this is: std.conv.ConvOverflowException * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @safe ConvOverflowException(string s, string fn = __FILE__, ulong ln = cast(ulong)__LINE__)) * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * Final function type: %std.conv.ConvOverflowException* (%std.conv.ConvOverflowException*, i64, { i64, i8* }, { i64, i8* }) * * * * * * * * * * * * * * DtoResolveFunction(std.conv.ConvOverflowException.this): /usr/include/dlang/ldc/std/conv.d(159) * * * * * * * * * * * * * * * DtoDeclareFunction(std.conv.ConvOverflowException.this): /usr/include/dlang/ldc/std/conv.d(159) * * * * * * * * * * * * * * * * isMember = this is: std.conv.ConvOverflowException * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @safe ConvOverflowException(string s, string fn = __FILE__, ulong ln = cast(ulong)__LINE__)) * * * * * * * * * * * * * * * * func = declare %std.conv.ConvOverflowException* @_D3std4conv21ConvOverflowException6__ctorMFNaNbNfAyaAyamZC3std4conv21ConvOverflowException(%std.conv.ConvOverflowException*, i64, { i64, i8* }, { i64, i8* }) * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * Building type: pure nothrow @safe ConvOverflowException(string s, string fn = __FILE__, ulong ln = cast(ulong)__LINE__) * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @safe ConvOverflowException(string s, string fn = __FILE__, ulong ln = cast(ulong)__LINE__)) * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * Final function type: %std.conv.ConvOverflowException* (i64, { i64, i8* }, { i64, i8* }) * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * %.newclass_gc = bitcast %object.Object* %.newclass_gc_alloc to %std.conv.ConvOverflowException* * * * * * * * * * * * * * * * Function type: pure nothrow @safe ConvOverflowException(string s, string fn = __FILE__, ulong ln = cast(ulong)__LINE__) * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * StringExp::toElem: "Overflow in integral conversion" @ string * * * * * * * * * * * * * * * * * type: [32 x i8] * * * * * * * * * * * * * * * * * init: [32 x i8] c"Overflow in integral conversion\00" * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * StringExp::toElem: "/usr/include/dlang/ldc/std/conv.d" @ string * * * * * * * * * * * * * * * * * type: [34 x i8] * * * * * * * * * * * * * * * * * init: [34 x i8] c"/usr/include/dlang/ldc/std/conv.d\00" * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * IntegerExp::toElem: 2005LU @ ulong * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 2005LU @ ulong * * * * * * * * * * * * * * * * * * value = i64 2005 * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(2008) * * * * * * * * * IntegerExp::toElem: false @ bool * * * * * * * * * * IntegerExp::toConstElem: false @ bool * * * * * * * * * * * value = i1 false * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(2009) * * * * * * * * * * AssignExp::toElem: v = -v | (ulong)(ulong = ulong) * * * * * * * * * * * VarExp::toElem: v @ ulong * * * * * * * * * * * * DtoSymbolAddress ('v' of type 'ulong') * * * * * * * * * * * * * a normal variable * * * * * * * * * * * NegExp::toElem: -v @ ulong * * * * * * * * * * * * VarExp::toElem: v @ ulong * * * * * * * * * * * * * DtoSymbolAddress ('v' of type 'ulong') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * lhs: %v = alloca i64, align 8 * * * * * * * * * * * * rhs: %negval = sub i64 0, %38 * * * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(2010) * * * * * * * * * VarExp::toElem: v @ ulong * * * * * * * * * * DtoSymbolAddress ('v' of type 'ulong') * * * * * * * * * * * a normal variable * * * * * * * * * return value is '0x12493b78' * * * * * LabelStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(2012) * * * * * * ThrowStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(2013) * * * * * * * CallExp::toElem: convError(s, "/usr/include/dlang/ldc/std/conv.d", 2013LU) @ std.conv.ConvException * * * * * * * * VarExp::toElem: convError @ pure @safe ConvException(string source, string fn = __FILE__, ulong ln = cast(ulong)__LINE__) * * * * * * * * * DtoSymbolAddress ('convError' of type 'pure @safe ConvException(string source, string fn = __FILE__, ulong ln = cast(ulong)__LINE__)') * * * * * * * * * * FuncDeclaration * * * * * * * * * * DtoFunctionType(pure @safe ConvException(string source, string fn = __FILE__, ulong ln = cast(ulong)__LINE__)) * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * Final function type: %std.conv.ConvException* (i64, { i64, i8* }, { i64, i8* }) * * * * * * * * * * DtoResolveFunction(std.conv.convError!(string, ulong).convError): /usr/include/dlang/ldc/std/conv.d(55) * * * * * * * * * * * DtoDeclareFunction(std.conv.convError!(string, ulong).convError): /usr/include/dlang/ldc/std/conv.d(55) * * * * * * * * * * * * DtoFunctionType(pure @safe ConvException(string source, string fn = __FILE__, ulong ln = cast(ulong)__LINE__)) * * * * * * * * * * * * func = declare %std.conv.ConvException* @_D3std4conv20__T9convErrorTAyaTmZ9convErrorFNaNfAyaAyamZC3std4conv13ConvException(i64, { i64, i8* }, { i64, i8* }) * * * * * * * * DtoCallFunction() * * * * * * * * * Building type: pure @safe ConvException(string source, string fn = __FILE__, ulong ln = cast(ulong)__LINE__) * * * * * * * * * * DtoFunctionType(pure @safe ConvException(string source, string fn = __FILE__, ulong ln = cast(ulong)__LINE__)) * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * Final function type: %std.conv.ConvException* (i64, { i64, i8* }, { i64, i8* }) * * * * * * * * * doing normal arguments * * * * * * * * * Arguments so far: (0) * * * * * * * * * Function type: pure @safe ConvException(string source, string fn = __FILE__, ulong ln = cast(ulong)__LINE__) * * * * * * * * * DtoArgument * * * * * * * * * * VarExp::toElem: s @ string * * * * * * * * * * * DtoSymbolAddress ('s' of type 'string') * * * * * * * * * * * * function param * * * * * * * * * * * * type: string * * * * * * * * * DtoArgument * * * * * * * * * * StringExp::toElem: "/usr/include/dlang/ldc/std/conv.d" @ string * * * * * * * * * DtoArgument * * * * * * * * * * IntegerExp::toElem: 2013LU @ ulong * * * * * * * * * * * IntegerExp::toConstElem: 2013LU @ ulong * * * * * * * * * * * * value = i64 2013 * TemplateInstance::codegen: 'std.conv.convError!(string, ulong)' * * DtoDefineFunction(std.conv.convError!(string, ulong).convError): /usr/include/dlang/ldc/std/conv.d(55) * * * Doing function body for: convError * * * DtoCreateNestedContext for convError * * * * DtoCreateNestedContextType for std.conv.convError!(string, ulong).convError * * * CompoundStatement::toIR(): * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(57) * * * * * NewExp::toElem: new ConvException(text("Unexpected ", convError_unexpected(source), " when converting from type string to type ulong"), fn, ln) @ std.conv.ConvException * * * * * * new class * * * * * * Calling constructor * * * * * * isMember = this is: std.conv.ConvException * * * * * * DtoFunctionType(pure nothrow @safe ConvException(string s, string fn = __FILE__, ulong ln = cast(ulong)__LINE__)) * * * * * * * x86-64 ABI: Transforming return type * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * Final function type: %std.conv.ConvException* (%std.conv.ConvException*, i64, { i64, i8* }, { i64, i8* }) * * * * * * DtoResolveFunction(std.conv.ConvException.this): /usr/include/dlang/ldc/std/conv.d(44) * * * * * * * DtoDeclareFunction(std.conv.ConvException.this): /usr/include/dlang/ldc/std/conv.d(44) * * * * * * * * isMember = this is: std.conv.ConvException * * * * * * * * DtoFunctionType(pure nothrow @safe ConvException(string s, string fn = __FILE__, ulong ln = cast(ulong)__LINE__)) * * * * * * * * func = declare %std.conv.ConvException* @_D3std4conv13ConvException6__ctorMFNaNbNfAyaAyamZC3std4conv13ConvException(%std.conv.ConvException*, i64, { i64, i8* }, { i64, i8* }) * * * * * * DtoCallFunction() * * * * * * * Building type: pure nothrow @safe ConvException(string s, string fn = __FILE__, ulong ln = cast(ulong)__LINE__) * * * * * * * * DtoFunctionType(pure nothrow @safe ConvException(string s, string fn = __FILE__, ulong ln = cast(ulong)__LINE__)) * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * Final function type: %std.conv.ConvException* (i64, { i64, i8* }, { i64, i8* }) * * * * * * * doing normal arguments * * * * * * * Arguments so far: (1) * * * * * * * * %.newclass_gc = bitcast %object.Object* %.newclass_gc_alloc to %std.conv.ConvException* * * * * * * * Function type: pure nothrow @safe ConvException(string s, string fn = __FILE__, ulong ln = cast(ulong)__LINE__) * * * * * * * DtoArgument * * * * * * * * CallExp::toElem: text("Unexpected ", convError_unexpected(source), " when converting from type string to type ulong") @ string * * * * * * * * * VarExp::toElem: text @ pure nothrow @safe string(string _param_0, string _param_1, string _param_2) * * * * * * * * * * DtoSymbolAddress ('text' of type 'pure nothrow @safe string(string _param_0, string _param_1, string _param_2)') * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * DtoFunctionType(pure nothrow @safe string(string _param_0, string _param_1, string _param_2)) * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * Final function type: { i64, i8* } ({ i64, i8* }, { i64, i8* }, { i64, i8* }) * * * * * * * * * * * DtoResolveFunction(std.conv.text!(string, string, string).text): /usr/include/dlang/ldc/std/conv.d(3638) * * * * * * * * * * * * DtoDeclareFunction(std.conv.text!(string, string, string).text): /usr/include/dlang/ldc/std/conv.d(3638) * * * * * * * * * * * * * DtoFunctionType(pure nothrow @safe string(string _param_0, string _param_1, string _param_2)) * * * * * * * * * * * * * func = declare { i64, i8* } @_D3std4conv21__T4textTAyaTAyaTAyaZ4textFNaNbNfAyaAyaAyaZAya({ i64, i8* }, { i64, i8* }, { i64, i8* }) * * * * * * * * * DtoCallFunction() * * * * * * * * * * Building type: pure nothrow @safe string(string _param_0, string _param_1, string _param_2) * * * * * * * * * * * DtoFunctionType(pure nothrow @safe string(string _param_0, string _param_1, string _param_2)) * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * Final function type: { i64, i8* } ({ i64, i8* }, { i64, i8* }, { i64, i8* }) * * * * * * * * * * doing normal arguments * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * Function type: pure nothrow @safe string(string _param_0, string _param_1, string _param_2) * * * * * * * * * * DtoArgument * * * * * * * * * * * StringExp::toElem: "Unexpected " @ string * * * * * * * * * * * * type: [12 x i8] * * * * * * * * * * * * init: [12 x i8] c"Unexpected \00" * * * * * * * * * * DtoArgument * * * * * * * * * * * CallExp::toElem: convError_unexpected(source) @ string * * * * * * * * * * * * VarExp::toElem: convError_unexpected @ pure @safe string(string source) * * * * * * * * * * * * * DtoSymbolAddress ('convError_unexpected' of type 'pure @safe string(string source)') * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * DtoFunctionType(pure @safe string(string source)) * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * Final function type: { i64, i8* } ({ i64, i8* }) * * * * * * * * * * * * * * DtoResolveFunction(std.conv.convError_unexpected!string.convError_unexpected): /usr/include/dlang/ldc/std/conv.d(50) * * * * * * * * * * * * * * * DtoDeclareFunction(std.conv.convError_unexpected!string.convError_unexpected): /usr/include/dlang/ldc/std/conv.d(50) * * * * * * * * * * * * * * * * DtoFunctionType(pure @safe string(string source)) * * * * * * * * * * * * * * * * func = declare { i64, i8* } @_D3std4conv30__T20convError_unexpectedTAyaZ20convError_unexpectedFNaNfAyaZAya({ i64, i8* }) * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * Building type: pure @safe string(string source) * * * * * * * * * * * * * * DtoFunctionType(pure @safe string(string source)) * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * Final function type: { i64, i8* } ({ i64, i8* }) * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * Function type: pure @safe string(string source) * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * VarExp::toElem: source @ string * * * * * * * * * * * * * * * DtoSymbolAddress ('source' of type 'string') * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * type: string * * * * * * * * * * DtoArgument * * * * * * * * * * * StringExp::toElem: " when converting from type string to type ulong" @ string * * * * * * * * * * * * type: [48 x i8] * * * * * * * * * * * * init: [48 x i8] c" when converting from type string to type ulong\00" * * * * * * * DtoArgument * * * * * * * * VarExp::toElem: fn @ string * * * * * * * * * DtoSymbolAddress ('fn' of type 'string') * * * * * * * * * * function param * * * * * * * * * * type: string * * * * * * * DtoArgument * * * * * * * * VarExp::toElem: ln @ ulong * * * * * * * * * DtoSymbolAddress ('ln' of type 'ulong') * * * * * * * * * * function param * * * * * * * * * * type: ulong * * * * * return value is '0x1249e548' * TemplateInstance::codegen: 'std.conv.convError_unexpected!string' * * DtoDefineFunction(std.conv.convError_unexpected!string.convError_unexpected): /usr/include/dlang/ldc/std/conv.d(50) * * * Doing function body for: convError_unexpected * * * DtoCreateNestedContext for convError_unexpected * * * * DtoCreateNestedContextType for std.conv.convError_unexpected!string.convError_unexpected * * * CompoundStatement::toIR(): * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(52) * * * * * CondExp::toElem: empty(source) ? "end of input" : text("'", front(source), "'") @ string * * * * * * CallExp::toElem: empty(source) @ bool * * * * * * * VarExp::toElem: empty @ pure nothrow @nogc @property @safe bool(const(char[]) a) * * * * * * * * DtoSymbolAddress ('empty' of type 'pure nothrow @nogc @property @safe bool(const(char[]) a)') * * * * * * * * * FuncDeclaration * * * * * * * DtoCallFunction() * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (0) * * * * * * * * Function type: pure nothrow @nogc @property @safe bool(const(char[]) a) * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: source @ const(char[]) * * * * * * * * * * DtoSymbolAddress ('source' of type 'string') * * * * * * * * * * * function param * * * * * * * * * * * type: string * * * * * * StringExp::toElem: "end of input" @ string * * * * * * * type: [13 x i8] * * * * * * * init: [13 x i8] c"end of input\00" * * * * * * CallExp::toElem: text("'", front(source), "'") @ string * * * * * * * VarExp::toElem: text @ pure @safe string(string _param_0, dchar _param_1, string _param_2) * * * * * * * * DtoSymbolAddress ('text' of type 'pure @safe string(string _param_0, dchar _param_1, string _param_2)') * * * * * * * * * FuncDeclaration * * * * * * * * * DtoFunctionType(pure @safe string(string _param_0, dchar _param_1, string _param_2)) * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: { i64, i8* } ({ i64, i8* }, i32, { i64, i8* }) * * * * * * * * * DtoResolveFunction(std.conv.text!(string, dchar, string).text): /usr/include/dlang/ldc/std/conv.d(3638) * * * * * * * * * * DtoDeclareFunction(std.conv.text!(string, dchar, string).text): /usr/include/dlang/ldc/std/conv.d(3638) * * * * * * * * * * * DtoFunctionType(pure @safe string(string _param_0, dchar _param_1, string _param_2)) * * * * * * * * * * * func = declare { i64, i8* } @_D3std4conv19__T4textTAyaTwTAyaZ4textFNaNfAyawAyaZAya({ i64, i8* }, i32, { i64, i8* }) * * * * * * * DtoCallFunction() * * * * * * * * Building type: pure @safe string(string _param_0, dchar _param_1, string _param_2) * * * * * * * * * DtoFunctionType(pure @safe string(string _param_0, dchar _param_1, string _param_2)) * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: { i64, i8* } ({ i64, i8* }, i32, { i64, i8* }) * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (0) * * * * * * * * Function type: pure @safe string(string _param_0, dchar _param_1, string _param_2) * * * * * * * * DtoArgument * * * * * * * * * StringExp::toElem: "'" @ string * * * * * * * * * * type: [2 x i8] * * * * * * * * * * init: [2 x i8] c"'\00" * * * * * * * * DtoArgument * * * * * * * * * CallExp::toElem: front(source) @ dchar * * * * * * * * * * VarExp::toElem: front @ pure @property @safe dchar(string a) * * * * * * * * * * * DtoSymbolAddress ('front' of type 'pure @property @safe dchar(string a)') * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * doing normal arguments * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * Function type: pure @property @safe dchar(string a) * * * * * * * * * * * DtoArgument * * * * * * * * * * * * VarExp::toElem: source @ string * * * * * * * * * * * * * DtoSymbolAddress ('source' of type 'string') * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * type: string * * * * * * * * DtoArgument * * * * * * * * * StringExp::toElem: "'" @ string * * * * * return value is '0x124a3268' * TemplateInstance::codegen: 'std.conv.toImpl!(ulong, string)' * * DtoDefineFunction(std.conv.toImpl!(ulong, string).toImpl): /usr/include/dlang/ldc/std/conv.d(1727) * * * Doing function body for: toImpl * * * DtoCreateNestedContext for toImpl * * * * DtoCreateNestedContextType for std.conv.toImpl!(ulong, string).toImpl * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(1730) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(1731) * * * * * * DeclarationExp::toElem: bool __os3183 = false; | T=void * * * * * * * DtoDeclarationExp: __os3183 * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = bool) * * * * * * * * * llvm value for decl: %__os3183 = alloca i8, align 1 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: __os3183 = false | (bool)(bool = bool) * * * * * * * * * * VarExp::toElem: __os3183 @ bool * * * * * * * * * * * DtoSymbolAddress ('__os3183' of type 'bool') * * * * * * * * * * * * a normal variable * * * * * * * * * * IntegerExp::toElem: false @ bool * * * * * * * * * * * IntegerExp::toConstElem: false @ bool * * * * * * * * * * * * value = i1 false * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * TryFinallyStatement::toIR(): * * * * * * IfStatement::toIR(): * * * * * * * NotExp::toElem: !__os3183 @ bool * * * * * * * * VarExp::toElem: __os3183 @ bool * * * * * * * * * DtoSymbolAddress ('__os3183' of type 'bool') * * * * * * * * * * a normal variable * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(1732) * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(1733) * * * * * * * * * ArrayLengthExp::toElem: value.length @ ulong * * * * * * * * * * VarExp::toElem: value @ string * * * * * * * * * * * DtoSymbolAddress ('value' of type 'string') * * * * * * * * * * * * function param * * * * * * * * * * * * type: string * * * * * * * * * * DtoArrayLen * * * * * * * * * if conditional: %.len = load i64, i64* %4 * * * * * * * * * Casting from 'ulong' to 'bool' * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(1734) * * * * * * * * * * ThrowStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(1735) * * * * * * * * * * * CallExp::toElem: convError(value, "/usr/include/dlang/ldc/std/conv.d", 1735LU) @ std.conv.ConvException * * * * * * * * * * * * VarExp::toElem: convError @ pure @safe ConvException(string source, string fn = __FILE__, ulong ln = cast(ulong)__LINE__) * * * * * * * * * * * * * DtoSymbolAddress ('convError' of type 'pure @safe ConvException(string source, string fn = __FILE__, ulong ln = cast(ulong)__LINE__)') * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * Function type: pure @safe ConvException(string source, string fn = __FILE__, ulong ln = cast(ulong)__LINE__) * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * VarExp::toElem: value @ string * * * * * * * * * * * * * * * DtoSymbolAddress ('value' of type 'string') * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * type: string * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * StringExp::toElem: "/usr/include/dlang/ldc/std/conv.d" @ string * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * IntegerExp::toElem: 1735LU @ ulong * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1735LU @ ulong * * * * * * * * * * * * * * * * value = i64 1735 * * * * * * TryCatchStatement::toIR(): * * * * * * * CompoundStatement::toIR(): * * * * * * * * ExpStatement::toIR(): * * * * * * * * * AssignExp::toElem: __os3183 = true | (bool)(bool = bool) * * * * * * * * * * VarExp::toElem: __os3183 @ bool * * * * * * * * * * * DtoSymbolAddress ('__os3183' of type 'bool') * * * * * * * * * * * * a normal variable * * * * * * * * * * IntegerExp::toElem: true @ bool * * * * * * * * * * * IntegerExp::toConstElem: true @ bool * * * * * * * * * * * * value = i1 true * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * * * * ThrowStatement::toIR(): * * * * * * * * * VarExp::toElem: __o3184 @ object.Throwable * * * * * * * * * * DtoSymbolAddress ('__o3184' of type 'object.Throwable') * * * * * * * * * * * a normal variable * * * * * * * ScopeStatement::toIR(): * * * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(1738) * * * * * * * * * CallExp::toElem: parse(value) @ ulong * * * * * * * * * * VarExp::toElem: parse @ pure @safe ulong(ref string s) * * * * * * * * * * * DtoSymbolAddress ('parse' of type 'pure @safe ulong(ref string s)') * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * Building type: pure @safe ulong(ref string s) * * * * * * * * * * * * DtoFunctionType(pure @safe ulong(ref string s)) * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * Final function type: i64 ({ i64, i8* }*) * * * * * * * * * * * doing normal arguments * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * Function type: pure @safe ulong(ref string s) * * * * * * * * * * * DtoArgument * * * * * * * * * * * * VarExp::toElem: value @ string * * * * * * * * * * * * * DtoSymbolAddress ('value' of type 'string') * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * type: string * * * * * * * * * return value is '0x124a78d0' * TemplateInstance::codegen: 'std.range.primitives.ElementEncodingType!(string[])' * * Ignoring Dsymbol::codegen for std.range.primitives.ElementEncodingType!(string[]).ElementEncodingType * TemplateInstance::codegen: 'std.range.primitives.ElementType!(string[])' * * Ignoring Dsymbol::codegen for std.range.primitives.ElementType!(string[]).ElementType * TemplateInstance::codegen: 'std.traits.isNarrowString!(string[])' * * VarDeclaration::codegen(): 'std.traits.isNarrowString!(string[]).isNarrowString' * * * DtoResolveVariable(std.traits.isNarrowString!(string[]).isNarrowString) * TemplateInstance::codegen: 'std.range.primitives.front!string' * * DtoDefineFunction(std.range.primitives.front!string.front): /usr/include/dlang/ldc/std/range/primitives.d(2157) * * * DtoFunctionType(pure nothrow @nogc @property ref @safe string(string[] a)) * * * * x86-64 ABI: Transforming argument types * * * * Final function type: { i64, i8* }* ({ i64, { i64, i8* }* }) * * * DtoResolveFunction(std.range.primitives.front!string.front): /usr/include/dlang/ldc/std/range/primitives.d(2157) * * * * DtoDeclareFunction(std.range.primitives.front!string.front): /usr/include/dlang/ldc/std/range/primitives.d(2157) * * * * * DtoFunctionType(pure nothrow @nogc @property ref @safe string(string[] a)) * * * * * func = declare { i64, i8* }* @_D3std5range10primitives14__T5frontTAyaZ5frontFNaNbNcNdNiNfAAyaZAya({ i64, { i64, i8* }* }) * * * Doing function body for: front * * * DtoCreateNestedContext for front * * * * DtoCreateNestedContextType for std.range.primitives.front!string.front * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/range/primitives.d(2159) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/range/primitives.d(2160) * * * * * * AssertExp::toElem: assert(a.length, "Attempting to fetch the front of an empty array of string") * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/range/primitives.d(2161) * * * * * * AddrExp::toElem: &a[0] @ string* * * * * * * * IndexExp::toElem: a[0] @ string * * * * * * * * VarExp::toElem: a @ string[] * * * * * * * * * DtoSymbolAddress ('a' of type 'string[]') * * * * * * * * * * function param * * * * * * * * * * type: string[] * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * value = i64 0 * * * * * * * * DtoArrayLen * * * * * * * * DtoArrayPtr * * * * * * * is nothing special * * * * * * * lval: %3 = getelementptr { i64, i8* }, { i64, i8* }* %.ptr, i64 0 * * * * * * return value is '0x124aab70' * TemplateInstance::codegen: 'std.range.primitives.hasSlicing!string' * TemplateInstance::codegen: 'std.algorithm.iteration.splitter!("a == b", string, string)' * * DtoDefineFunction(std.algorithm.iteration.splitter!("a == b", string, string).splitter): /usr/include/dlang/ldc/std/algorithm/iteration.d(3157) * * * DtoFunctionType(pure nothrow @nogc @safe Result(string r, string s)) * * * * Building type: Result* * * * * * Building type: Result * * * * * * Building struct type std.algorithm.iteration.splitter!("a == b", string, string).splitter.Result @ /usr/include/dlang/ldc/std/algorithm/iteration.d(3166) * * * * * * * adding explicit initializer for struct field _frontLength * * * * * * * adding explicit initializer for struct field _backLength * * * * * * * adding default initializer for struct field _input * * * * * * * adding default initializer for struct field _separator * * * * * * * final struct type: %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result" = type { { i64, i8* }, { i64, i8* }, i64, i64 } * * * * x86-64 ABI: Transforming argument types * * * * Final function type: void (%"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"*, { i64, i8* }, { i64, i8* }) * * * DtoResolveFunction(std.algorithm.iteration.splitter!("a == b", string, string).splitter): /usr/include/dlang/ldc/std/algorithm/iteration.d(3157) * * * * DtoDeclareFunction(std.algorithm.iteration.splitter!("a == b", string, string).splitter): /usr/include/dlang/ldc/std/algorithm/iteration.d(3157) * * * * * DtoFunctionType(pure nothrow @nogc @safe Result(string r, string s)) * * * * * func = declare void @_D3std9algorithm9iteration40__T8splitterVAyaa6_61203d3d2062TAyaTAyaZ8splitterFNaNbNiNfAyaAyaZS3std9algorithm9iteration40__T8splitterVAyaa6_61203d3d2062TAyaTAyaZ8splitterFAyaAyaZ6Result(%"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"*, { i64, i8* }, { i64, i8* }) * * * Doing function body for: splitter * * * DtoCreateNestedContext for splitter * * * * DtoCreateNestedContextType for std.algorithm.iteration.splitter!("a == b", string, string).splitter * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/iteration.d(3162) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/iteration.d(3166) * * * * * * DeclarationExp::toElem: static struct Result { private { string _input; string _separator; alias RIndexType = ulong; ulong _frontLength = 18446744073709551615LU; static if (isBidirectionalRange!string) { ulong _backLength = 18446744073709551615LU; } auto pure nothrow @nogc @property @safe ulong separatorLength() { return this._separator.length; } pure nothrow @nogc @safe void ensureFrontLength() { if (this._frontLength != 18446744073709551615LU) return ; assert(!empty(this._input)); this._frontLength = empty(this._separator) ? 1LU : this._input.length - find(this._input, this._separator).length; if (this._frontLength == this._input.length) this._backLength = this._frontLength; } pure @safe void ensureBackLength() { if (this._backLength != 18446744073709551615LU) return ; assert(!empty(this._input)); import std.range : retro; this._backLength = this._input.length - find(retro(this._input), retro(this._separator)).source.length; } public { pure nothrow @nogc @safe this(string input, string separator) { this._input = input; this._separator = separator; return this; } pure nothrow @nogc @property @safe string front() { assert(!this.empty()); this.ensureFrontLength(); return this._input[0..this._frontLength]; } static if (isInfinite!string) { enum bool empty = false; } else { pure nothrow @nogc @property @safe bool empty() { return this._frontLength == 18446744073709551615LU && empty(this._input); } } pure nothrow @nogc @safe void popFront() { assert(!this.empty()); this.ensureFrontLength(); if (this._frontLength == this._input.length) { this._input = this._input[this._frontLength..this._frontLength]; this._frontLength = 18446744073709551615LU; this._backLength = 18446744073709551615LU; return ; } if (this._frontLength + this.separatorLength() == this._input.length) { this._input = this._input[this._input.length..this._input.length]; this._frontLength = 0LU; this._backLength = 0LU; return ; } this._input = this._input[this._frontLength + this.separatorLength()..this._input.length]; this._frontLength = 18446744073709551615LU; } static if (isForwardRange!string) { pure nothrow @nogc @property @safe Result save() { Result ret = this; ret._input = save(this._input); return ret; } } static if (true && true) { deprecated("splitter!(Range, Range) cannot be iterated backwards (due to separator overlap).") deprecated pure @property @safe string back() { this.ensureBackLength(); return this._input[this._input.length - this._backLength..this._input.length]; } deprecated("splitter!(Range, Range) cannot be iterated backwards (due to separator overlap).") deprecated pure @safe void popBack() { this.ensureBackLength(); if (this._backLength == this._input.length) { this._input = this._input[0..0]; this._frontLength = 18446744073709551615LU; this._backLength = 18446744073709551615LU; return ; } if (this._backLength + this.separatorLength() == this._input.length) { this._input = this._input[0..0]; this._frontLength = 0LU; this._backLength = 0LU; return ; } this._input = this._input[0..this._input.length - this._backLength - this.separatorLength()]; this._backLength = 18446744073709551615LU; } } } } } | T=void * * * * * * * DtoDeclarationExp: __anonymous * * * * * * * * AttribDeclaration * * * * * * * * DtoDeclarationExp: Result * * * * * * * * * StructDeclaration * * * * * * * * * StructDeclaration::codegen: 'std.algorithm.iteration.splitter!("a == b", string, string).splitter.Result' * * * * * * * * * * Resolving struct type: Result (/usr/include/dlang/ldc/std/algorithm/iteration.d(3166)) * * * * * * * * * * VarDeclaration::codegen(): 'std.algorithm.iteration.splitter!("a == b", string, string).splitter.Result._input' * * * * * * * * * * * DtoResolveVariable(std.algorithm.iteration.splitter!("a == b", string, string).splitter.Result._input) * * * * * * * * * * VarDeclaration::codegen(): 'std.algorithm.iteration.splitter!("a == b", string, string).splitter.Result._separator' * * * * * * * * * * * DtoResolveVariable(std.algorithm.iteration.splitter!("a == b", string, string).splitter.Result._separator) * * * * * * * * * * Ignoring Dsymbol::codegen for std.algorithm.iteration.splitter!("a == b", string, string).splitter.Result.RIndexType * * * * * * * * * * VarDeclaration::codegen(): 'std.algorithm.iteration.splitter!("a == b", string, string).splitter.Result._frontLength' * * * * * * * * * * * DtoResolveVariable(std.algorithm.iteration.splitter!("a == b", string, string).splitter.Result._frontLength) * * * * * * * * * * VarDeclaration::codegen(): 'std.algorithm.iteration.splitter!("a == b", string, string).splitter.Result._backLength' * * * * * * * * * * * DtoResolveVariable(std.algorithm.iteration.splitter!("a == b", string, string).splitter.Result._backLength) * * * * * * * * * * DtoDefineFunction(std.algorithm.iteration.splitter!("a == b", string, string).splitter.Result.separatorLength): /usr/include/dlang/ldc/std/algorithm/iteration.d(3177) * * * * * * * * * * * isMember = this is: Result * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @property @safe ulong()) * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * Final function type: i64 (%"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"*) * * * * * * * * * * * DtoResolveFunction(std.algorithm.iteration.splitter!("a == b", string, string).splitter.Result.separatorLength): /usr/include/dlang/ldc/std/algorithm/iteration.d(3177) * * * * * * * * * * * * DtoDeclareFunction(std.algorithm.iteration.splitter!("a == b", string, string).splitter.Result.separatorLength): /usr/include/dlang/ldc/std/algorithm/iteration.d(3177) * * * * * * * * * * * * * isMember = this is: Result * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @property @safe ulong()) * * * * * * * * * * * * * func = declare i64 @_D3std9algorithm9iteration40__T8splitterVAyaa6_61203d3d2062TAyaTAyaZ8splitterFAyaAyaZ6Result15separatorLengthMFNaNbNdNiNfZm(%"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"*) * * * * * * * * * * * Doing function body for: separatorLength * * * * * * * * * * * DtoCreateNestedContext for separatorLength * * * * * * * * * * * * DtoCreateNestedContextType for std.algorithm.iteration.splitter!("a == b", string, string).splitter.Result.separatorLength * * * * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/iteration.d(3177) * * * * * * * * * * * * * ArrayLengthExp::toElem: this._separator.length @ ulong * * * * * * * * * * * * * * DotVarExp::toElem: this._separator @ string * * * * * * * * * * * * * * * ThisExp::toElem: this @ Result * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * Indexing aggregate field std.algorithm.iteration.splitter!("a == b", string, string).splitter.Result._separator: * * * * * * * * * * * * * * * * Value: %1 = getelementptr %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result", %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"* %.this_arg, i32 0, i32 1 * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * return value is '0x124b0bc8' * * * * * * * * * * DtoDefineFunction(std.algorithm.iteration.splitter!("a == b", string, string).splitter.Result.ensureFrontLength): /usr/include/dlang/ldc/std/algorithm/iteration.d(3179) * * * * * * * * * * * isMember = this is: Result * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe void()) * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * Final function type: void (%"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"*) * * * * * * * * * * * DtoResolveFunction(std.algorithm.iteration.splitter!("a == b", string, string).splitter.Result.ensureFrontLength): /usr/include/dlang/ldc/std/algorithm/iteration.d(3179) * * * * * * * * * * * * DtoDeclareFunction(std.algorithm.iteration.splitter!("a == b", string, string).splitter.Result.ensureFrontLength): /usr/include/dlang/ldc/std/algorithm/iteration.d(3179) * * * * * * * * * * * * * isMember = this is: Result * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe void()) * * * * * * * * * * * * * func = declare void @_D3std9algorithm9iteration40__T8splitterVAyaa6_61203d3d2062TAyaTAyaZ8splitterFAyaAyaZ6Result17ensureFrontLengthMFNaNbNiNfZv(%"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"*) * * * * * * * * * * * Doing function body for: ensureFrontLength * * * * * * * * * * * DtoCreateNestedContext for ensureFrontLength * * * * * * * * * * * * DtoCreateNestedContextType for std.algorithm.iteration.splitter!("a == b", string, string).splitter.Result.ensureFrontLength * * * * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/iteration.d(3180) * * * * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/iteration.d(3181) * * * * * * * * * * * * * * EqualExp::toElem: this._frontLength != 18446744073709551615LU @ bool * * * * * * * * * * * * * * * DotVarExp::toElem: this._frontLength @ ulong * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Result * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * Indexing aggregate field std.algorithm.iteration.splitter!("a == b", string, string).splitter.Result._frontLength: * * * * * * * * * * * * * * * * * Value: %1 = getelementptr %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result", %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"* %.this_arg, i32 0, i32 2 * * * * * * * * * * * * * * * IntegerExp::toElem: 18446744073709551615LU @ ulong * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 18446744073709551615LU @ ulong * * * * * * * * * * * * * * * * * value = i64 -1 * * * * * * * * * * * * * * * integral or pointer or interface * * * * * * * * * * * * * * * lv: %2 = load i64, i64* %1 * * * * * * * * * * * * * * * rv: i64 -1 * * * * * * * * * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/iteration.d(3181) * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/iteration.d(3182) * * * * * * * * * * * * * * AssertExp::toElem: assert(!empty(this._input)) * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/iteration.d(3184) * * * * * * * * * * * * * * AssignExp::toElem: this._frontLength = empty(this._separator) ? 1LU : this._input.length - find(this._input, this._separator).length | (ulong)(ulong = ulong) * * * * * * * * * * * * * * * DotVarExp::toElem: this._frontLength @ ulong * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Result * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * Indexing aggregate field std.algorithm.iteration.splitter!("a == b", string, string).splitter.Result._frontLength: * * * * * * * * * * * * * * * * * Value: %4 = getelementptr %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result", %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"* %.this_arg, i32 0, i32 2 * * * * * * * * * * * * * * * CondExp::toElem: empty(this._separator) ? 1LU : this._input.length - find(this._input, this._separator).length @ ulong * * * * * * * * * * * * * * * * CallExp::toElem: empty(this._separator) @ bool * * * * * * * * * * * * * * * * * VarExp::toElem: empty @ pure nothrow @nogc @property @safe bool(const(char[]) a) * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('empty' of type 'pure nothrow @nogc @property @safe bool(const(char[]) a)') * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @property @safe bool(const(char[]) a) * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: this._separator @ const(char[]) * * * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Result * * * * * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * * * * * Indexing aggregate field std.algorithm.iteration.splitter!("a == b", string, string).splitter.Result._separator: * * * * * * * * * * * * * * * * * * * * * Value: %5 = getelementptr %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result", %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"* %.this_arg, i32 0, i32 1 * * * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * * * * MinExp::toElem: this._input.length - find(this._input, this._separator).length @ ulong * * * * * * * * * * * * * * * * * ArrayLengthExp::toElem: this._input.length @ ulong * * * * * * * * * * * * * * * * * * DotVarExp::toElem: this._input @ string * * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Result * * * * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * * * * Indexing aggregate field std.algorithm.iteration.splitter!("a == b", string, string).splitter.Result._input: * * * * * * * * * * * * * * * * * * * * Value: %8 = getelementptr %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result", %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"* %.this_arg, i32 0, i32 0 * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * ArrayLengthExp::toElem: find(this._input, this._separator).length @ ulong * * * * * * * * * * * * * * * * * * CallExp::toElem: find(this._input, this._separator) @ string * * * * * * * * * * * * * * * * * * * VarExp::toElem: find @ pure nothrow @nogc @safe string(string haystack, string needle) * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('find' of type 'pure nothrow @nogc @safe string(string haystack, string needle)') * * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * Building type: pure nothrow @nogc @safe string(string haystack, string needle) * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe string(string haystack, string needle)) * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * * * Final function type: { i64, i8* } ({ i64, i8* }, { i64, i8* }) * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @safe string(string haystack, string needle) * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: this._input @ string * * * * * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Result * * * * * * * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * * * * * * * Indexing aggregate field std.algorithm.iteration.splitter!("a == b", string, string).splitter.Result._input: * * * * * * * * * * * * * * * * * * * * * * * Value: %10 = getelementptr %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result", %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"* %.this_arg, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: this._separator @ string * * * * * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Result * * * * * * * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * * * * * * * Indexing aggregate field std.algorithm.iteration.splitter!("a == b", string, string).splitter.Result._separator: * * * * * * * * * * * * * * * * * * * * * * * Value: %11 = getelementptr %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result", %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"* %.this_arg, i32 0, i32 1 * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * lhs: %4 = getelementptr %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result", %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"* %.this_arg, i32 0, i32 2 * * * * * * * * * * * * * * * * rhs: %17 = load i64, i64* %16 * * * * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/iteration.d(3187) * * * * * * * * * * * * * * EqualExp::toElem: this._frontLength == this._input.length @ bool * * * * * * * * * * * * * * * DotVarExp::toElem: this._frontLength @ ulong * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Result * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * Indexing aggregate field std.algorithm.iteration.splitter!("a == b", string, string).splitter.Result._frontLength: * * * * * * * * * * * * * * * * * Value: %18 = getelementptr %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result", %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"* %.this_arg, i32 0, i32 2 * * * * * * * * * * * * * * * ArrayLengthExp::toElem: this._input.length @ ulong * * * * * * * * * * * * * * * * DotVarExp::toElem: this._input @ string * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Result * * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * * Indexing aggregate field std.algorithm.iteration.splitter!("a == b", string, string).splitter.Result._input: * * * * * * * * * * * * * * * * * * Value: %19 = getelementptr %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result", %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"* %.this_arg, i32 0, i32 0 * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * integral or pointer or interface * * * * * * * * * * * * * * * lv: %21 = load i64, i64* %18 * * * * * * * * * * * * * * * rv: %.len3 = load i64, i64* %20 * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/iteration.d(3187) * * * * * * * * * * * * * * * AssignExp::toElem: this._backLength = this._frontLength | (ulong)(ulong = ulong) * * * * * * * * * * * * * * * * DotVarExp::toElem: this._backLength @ ulong * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Result * * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * * Indexing aggregate field std.algorithm.iteration.splitter!("a == b", string, string).splitter.Result._backLength: * * * * * * * * * * * * * * * * * * Value: %23 = getelementptr %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result", %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"* %.this_arg, i32 0, i32 3 * * * * * * * * * * * * * * * * DotVarExp::toElem: this._frontLength @ ulong * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Result * * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * * Indexing aggregate field std.algorithm.iteration.splitter!("a == b", string, string).splitter.Result._frontLength: * * * * * * * * * * * * * * * * * * Value: %24 = getelementptr %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result", %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"* %.this_arg, i32 0, i32 2 * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * lhs: %23 = getelementptr %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result", %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"* %.this_arg, i32 0, i32 3 * * * * * * * * * * * * * * * * * rhs: %25 = load i64, i64* %24 * * * * * * * * * * DtoDefineFunction(std.algorithm.iteration.splitter!("a == b", string, string).splitter.Result.ensureBackLength): /usr/include/dlang/ldc/std/algorithm/iteration.d(3190) * * * * * * * * * * * isMember = this is: Result * * * * * * * * * * * DtoFunctionType(pure @safe void()) * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * Final function type: void (%"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"*) * * * * * * * * * * * DtoResolveFunction(std.algorithm.iteration.splitter!("a == b", string, string).splitter.Result.ensureBackLength): /usr/include/dlang/ldc/std/algorithm/iteration.d(3190) * * * * * * * * * * * * DtoDeclareFunction(std.algorithm.iteration.splitter!("a == b", string, string).splitter.Result.ensureBackLength): /usr/include/dlang/ldc/std/algorithm/iteration.d(3190) * * * * * * * * * * * * * isMember = this is: Result * * * * * * * * * * * * * DtoFunctionType(pure @safe void()) * * * * * * * * * * * * * func = declare void @_D3std9algorithm9iteration40__T8splitterVAyaa6_61203d3d2062TAyaTAyaZ8splitterFAyaAyaZ6Result16ensureBackLengthMFNaNfZv(%"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"*) * * * * * * * * * * * Doing function body for: ensureBackLength * * * * * * * * * * * DtoCreateNestedContext for ensureBackLength * * * * * * * * * * * * DtoCreateNestedContextType for std.algorithm.iteration.splitter!("a == b", string, string).splitter.Result.ensureBackLength * * * * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/iteration.d(3191) * * * * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/iteration.d(3193) * * * * * * * * * * * * * * EqualExp::toElem: this._backLength != 18446744073709551615LU @ bool * * * * * * * * * * * * * * * DotVarExp::toElem: this._backLength @ ulong * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Result * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * Indexing aggregate field std.algorithm.iteration.splitter!("a == b", string, string).splitter.Result._backLength: * * * * * * * * * * * * * * * * * Value: %1 = getelementptr %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result", %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"* %.this_arg, i32 0, i32 3 * * * * * * * * * * * * * * * IntegerExp::toElem: 18446744073709551615LU @ ulong * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 18446744073709551615LU @ ulong * * * * * * * * * * * * * * * * * value = i64 -1 * * * * * * * * * * * * * * * integral or pointer or interface * * * * * * * * * * * * * * * lv: %2 = load i64, i64* %1 * * * * * * * * * * * * * * * rv: i64 -1 * * * * * * * * * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/iteration.d(3193) * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/iteration.d(3194) * * * * * * * * * * * * * * AssertExp::toElem: assert(!empty(this._input)) * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/iteration.d(3199) * * * * * * * * * * * * * * AssignExp::toElem: this._backLength = this._input.length - find(retro(this._input), retro(this._separator)).source.length | (ulong)(ulong = ulong) * * * * * * * * * * * * * * * DotVarExp::toElem: this._backLength @ ulong * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Result * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * Indexing aggregate field std.algorithm.iteration.splitter!("a == b", string, string).splitter.Result._backLength: * * * * * * * * * * * * * * * * * Value: %4 = getelementptr %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result", %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"* %.this_arg, i32 0, i32 3 * * * * * * * * * * * * * * * MinExp::toElem: this._input.length - find(retro(this._input), retro(this._separator)).source.length @ ulong * * * * * * * * * * * * * * * * ArrayLengthExp::toElem: this._input.length @ ulong * * * * * * * * * * * * * * * * * DotVarExp::toElem: this._input @ string * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Result * * * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * * * Indexing aggregate field std.algorithm.iteration.splitter!("a == b", string, string).splitter.Result._input: * * * * * * * * * * * * * * * * * * * Value: %5 = getelementptr %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result", %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"* %.this_arg, i32 0, i32 0 * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * ArrayLengthExp::toElem: find(retro(this._input), retro(this._separator)).source.length @ ulong * * * * * * * * * * * * * * * * * DotVarExp::toElem: find(retro(this._input), retro(this._separator)).source @ string * * * * * * * * * * * * * * * * * * CallExp::toElem: find(retro(this._input), retro(this._separator)) @ Result!() * * * * * * * * * * * * * * * * * * * VarExp::toElem: find @ pure @safe Result!()(Result!() haystack, Result!() needle) * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('find' of type 'pure @safe Result!()(Result!() haystack, Result!() needle)') * * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure @safe Result!()(Result!() haystack, Result!() needle)) * * * * * * * * * * * * * * * * * * * * * * Building type: Result!() * * * * * * * * * * * * * * * * * * * * * * * Building struct type std.range.retro!string.retro.Result!().Result @ /usr/include/dlang/ldc/std/range/package.d(192) * * * * * * * * * * * * * * * * * * * * * * * * adding default initializer for struct field source * * * * * * * * * * * * * * * * * * * * * * * * final struct type: %"std.range.retro!string.retro.Result!().Result" = type { { i64, i8* } } * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * * * Final function type: %"std.range.retro!string.retro.Result!().Result" (%"std.range.retro!string.retro.Result!().Result", %"std.range.retro!string.retro.Result!().Result") * * * * * * * * * * * * * * * * * * * * * DtoResolveFunction(std.algorithm.searching.find!("a == b", Result!(), Result!()).find): /usr/include/dlang/ldc/std/algorithm/searching.d(1557) * * * * * * * * * * * * * * * * * * * * * * DtoDeclareFunction(std.algorithm.searching.find!("a == b", Result!(), Result!()).find): /usr/include/dlang/ldc/std/algorithm/searching.d(1557) * * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure @safe Result!()(Result!() haystack, Result!() needle)) * * * * * * * * * * * * * * * * * * * * * * * func = declare %"std.range.retro!string.retro.Result!().Result" @_D3std9algorithm9searching146__T4findVAyaa6_61203d3d2062TS3std5range14__T5retroTAyaZ5retroFAyaZ11__T6ResultZ6ResultTS3std5range14__T5retroTAyaZ5retroFAyaZ11__T6ResultZ6ResultZ4findFNaNfS3std5range14__T5retroTAyaZ5retroFAyaZ11__T6ResultZ6ResultS3std5range14__T5retroTAyaZ5retroFAyaZ11__T6ResultZ6ResultZS3std5range14__T5retroTAyaZ5retroFAyaZ11__T6ResultZ6Result(%"std.range.retro!string.retro.Result!().Result", %"std.range.retro!string.retro.Result!().Result") * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * Building type: pure @safe Result!()(Result!() haystack, Result!() needle) * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure @safe Result!()(Result!() haystack, Result!() needle)) * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * * * Final function type: %"std.range.retro!string.retro.Result!().Result" (%"std.range.retro!string.retro.Result!().Result", %"std.range.retro!string.retro.Result!().Result") * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * * Function type: pure @safe Result!()(Result!() haystack, Result!() needle) * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * CallExp::toElem: retro(this._input) @ Result!() * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: retro @ pure nothrow @nogc @safe Result!()(string r) * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('retro' of type 'pure nothrow @nogc @safe Result!()(string r)') * * * * * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe Result!()(string r)) * * * * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * * * * * * Final function type: %"std.range.retro!string.retro.Result!().Result" ({ i64, i8* }) * * * * * * * * * * * * * * * * * * * * * * * * DtoResolveFunction(std.range.retro!string.retro): /usr/include/dlang/ldc/std/range/package.d(182) * * * * * * * * * * * * * * * * * * * * * * * * * DtoDeclareFunction(std.range.retro!string.retro): /usr/include/dlang/ldc/std/range/package.d(182) * * * * * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe Result!()(string r)) * * * * * * * * * * * * * * * * * * * * * * * * * * func = declare %"std.range.retro!string.retro.Result!().Result" @_D3std5range14__T5retroTAyaZ5retroFNaNbNiNfAyaZS3std5range14__T5retroTAyaZ5retroFAyaZ11__T6ResultZ6Result({ i64, i8* }) * * * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * * * Building type: pure nothrow @nogc @safe Result!()(string r) * * * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe Result!()(string r)) * * * * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * * * * * * Final function type: %"std.range.retro!string.retro.Result!().Result" ({ i64, i8* }) * * * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @safe Result!()(string r) * * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: this._input @ string * * * * * * * * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Result * * * * * * * * * * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * * * * * * * * * * Indexing aggregate field std.algorithm.iteration.splitter!("a == b", string, string).splitter.Result._input: * * * * * * * * * * * * * * * * * * * * * * * * * * Value: %7 = getelementptr %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result", %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"* %.this_arg, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * * * * * Storing return value to stack slot * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * CallExp::toElem: retro(this._separator) @ Result!() * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: retro @ pure nothrow @nogc @safe Result!()(string r) * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('retro' of type 'pure nothrow @nogc @safe Result!()(string r)') * * * * * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @safe Result!()(string r) * * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: this._separator @ string * * * * * * * * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Result * * * * * * * * * * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * * * * * * * * * * Indexing aggregate field std.algorithm.iteration.splitter!("a == b", string, string).splitter.Result._separator: * * * * * * * * * * * * * * * * * * * * * * * * * * Value: %11 = getelementptr %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result", %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"* %.this_arg, i32 0, i32 1 * * * * * * * * * * * * * * * * * * * * * * * Storing return value to stack slot * * * * * * * * * * * * * * * * * * * * Loading struct type for function argument * * * * * * * * * * * * * * * * * * * * Loading struct type for function argument * * * * * * * * * * * * * * * * * * * * Storing return value to stack slot * * * * * * * * * * * * * * * * * * Indexing aggregate field std.range.retro!string.retro.Result!().Result.source: * * * * * * * * * * * * * * * * * * * Resolving struct type: Result (/usr/include/dlang/ldc/std/range/package.d(192)) * * * * * * * * * * * * * * * * * * * Value: %19 = getelementptr %"std.range.retro!string.retro.Result!().Result", %"std.range.retro!string.retro.Result!().Result"* %3, i32 0, i32 0 * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * lhs: %7 = getelementptr %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result", %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"* %.this_arg, i32 0, i32 3 * * * * * * * * * * * * * * * * rhs: %21 = sub i64 %.len, %.len1 * * * * * * * * * * DtoDefineFunction(std.algorithm.iteration.splitter!("a == b", string, string).splitter.Result.this): /usr/include/dlang/ldc/std/algorithm/iteration.d(3205) * * * * * * * * * * * isMember = this is: Result * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc ref @safe Result(string input, string separator)) * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * Final function type: %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"* (%"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"*, { i64, i8* }, { i64, i8* }) * * * * * * * * * * * DtoResolveFunction(std.algorithm.iteration.splitter!("a == b", string, string).splitter.Result.this): /usr/include/dlang/ldc/std/algorithm/iteration.d(3205) * * * * * * * * * * * * DtoDeclareFunction(std.algorithm.iteration.splitter!("a == b", string, string).splitter.Result.this): /usr/include/dlang/ldc/std/algorithm/iteration.d(3205) * * * * * * * * * * * * * isMember = this is: Result * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc ref @safe Result(string input, string separator)) * * * * * * * * * * * * * func = declare %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"* @_D3std9algorithm9iteration40__T8splitterVAyaa6_61203d3d2062TAyaTAyaZ8splitterFAyaAyaZ6Result6__ctorMFNaNbNcNiNfAyaAyaZS3std9algorithm9iteration40__T8splitterVAyaa6_61203d3d2062TAyaTAyaZ8splitterFAyaAyaZ6Result(%"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"*, { i64, i8* }, { i64, i8* }) * * * * * * * * * * * Doing function body for: this * * * * * * * * * * * DtoCreateNestedContext for this * * * * * * * * * * * * DtoCreateNestedContextType for std.algorithm.iteration.splitter!("a == b", string, string).splitter.Result.this * * * * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/iteration.d(3205) * * * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/iteration.d(3206) * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/iteration.d(3207) * * * * * * * * * * * * * * * AssignExp::toElem: this._input = input | (string)(string = string) * * * * * * * * * * * * * * * * DotVarExp::toElem: this._input @ string * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Result * * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * * Indexing aggregate field std.algorithm.iteration.splitter!("a == b", string, string).splitter.Result._input: * * * * * * * * * * * * * * * * * * Value: %1 = getelementptr %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result", %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"* %.this_arg, i32 0, i32 0 * * * * * * * * * * * * * * * * VarExp::toElem: input @ string * * * * * * * * * * * * * * * * * DtoSymbolAddress ('input' of type 'string') * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * type: string * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * SetArray * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/iteration.d(3208) * * * * * * * * * * * * * * * AssignExp::toElem: this._separator = separator | (string)(string = string) * * * * * * * * * * * * * * * * DotVarExp::toElem: this._separator @ string * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Result * * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * * Indexing aggregate field std.algorithm.iteration.splitter!("a == b", string, string).splitter.Result._separator: * * * * * * * * * * * * * * * * * * Value: %6 = getelementptr %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result", %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"* %.this_arg, i32 0, i32 1 * * * * * * * * * * * * * * * * VarExp::toElem: separator @ string * * * * * * * * * * * * * * * * * DtoSymbolAddress ('separator' of type 'string') * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * type: string * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * SetArray * * * * * * * * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/iteration.d(3205) * * * * * * * * * * * * * * AddrExp::toElem: &this @ Result* * * * * * * * * * * * * * * * ThisExp::toElem: this @ Result * * * * * * * * * * * * * * * * this exp without var declaration * * * * * * * * * * * * * * * is nothing special * * * * * * * * * * * * * * * lval: %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"* %.this_arg * * * * * * * * * * * * * * return value is '0x124ca0c0' * * * * * * * * * * DtoDefineFunction(std.algorithm.iteration.splitter!("a == b", string, string).splitter.Result.front): /usr/include/dlang/ldc/std/algorithm/iteration.d(3211) * * * * * * * * * * * isMember = this is: Result * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @property @safe string()) * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * Final function type: { i64, i8* } (%"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"*) * * * * * * * * * * * DtoResolveFunction(std.algorithm.iteration.splitter!("a == b", string, string).splitter.Result.front): /usr/include/dlang/ldc/std/algorithm/iteration.d(3211) * * * * * * * * * * * * DtoDeclareFunction(std.algorithm.iteration.splitter!("a == b", string, string).splitter.Result.front): /usr/include/dlang/ldc/std/algorithm/iteration.d(3211) * * * * * * * * * * * * * isMember = this is: Result * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @property @safe string()) * * * * * * * * * * * * * func = declare { i64, i8* } @_D3std9algorithm9iteration40__T8splitterVAyaa6_61203d3d2062TAyaTAyaZ8splitterFAyaAyaZ6Result5frontMFNaNbNdNiNfZAya(%"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"*) * * * * * * * * * * * Doing function body for: front * * * * * * * * * * * DtoCreateNestedContext for front * * * * * * * * * * * * DtoCreateNestedContextType for std.algorithm.iteration.splitter!("a == b", string, string).splitter.Result.front * * * * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/iteration.d(3212) * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/iteration.d(3213) * * * * * * * * * * * * * * AssertExp::toElem: assert(!this.empty()) * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/iteration.d(3214) * * * * * * * * * * * * * * CallExp::toElem: this.ensureFrontLength() @ void * * * * * * * * * * * * * * * DotVarExp::toElem: this.ensureFrontLength @ pure nothrow @nogc @safe void() * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Result * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * Building type: pure nothrow @nogc @safe void() * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe void()) * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * Final function type: void () * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"* %.this_arg * * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @safe void() * * * * * * * * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/iteration.d(3215) * * * * * * * * * * * * * * SliceExp::toElem: this._input[0..this._frontLength] @ string * * * * * * * * * * * * * * * DotVarExp::toElem: this._input @ string * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Result * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * Indexing aggregate field std.algorithm.iteration.splitter!("a == b", string, string).splitter.Result._input: * * * * * * * * * * * * * * * * * Value: %1 = getelementptr %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result", %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"* %.this_arg, i32 0, i32 0 * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * * * DotVarExp::toElem: this._frontLength @ ulong * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Result * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * Indexing aggregate field std.algorithm.iteration.splitter!("a == b", string, string).splitter.Result._frontLength: * * * * * * * * * * * * * * * * * Value: %3 = getelementptr %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result", %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"* %.this_arg, i32 0, i32 2 * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * return value is '0x124cf530' * * * * * * * * * * DtoDefineFunction(std.algorithm.iteration.splitter!("a == b", string, string).splitter.Result.empty): /usr/include/dlang/ldc/std/algorithm/iteration.d(3224) * * * * * * * * * * * isMember = this is: Result * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @property @safe bool()) * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * Final function type: i1 (%"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"*) * * * * * * * * * * * DtoResolveFunction(std.algorithm.iteration.splitter!("a == b", string, string).splitter.Result.empty): /usr/include/dlang/ldc/std/algorithm/iteration.d(3224) * * * * * * * * * * * * DtoDeclareFunction(std.algorithm.iteration.splitter!("a == b", string, string).splitter.Result.empty): /usr/include/dlang/ldc/std/algorithm/iteration.d(3224) * * * * * * * * * * * * * isMember = this is: Result * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @property @safe bool()) * * * * * * * * * * * * * func = declare i1 @_D3std9algorithm9iteration40__T8splitterVAyaa6_61203d3d2062TAyaTAyaZ8splitterFAyaAyaZ6Result5emptyMFNaNbNdNiNfZb(%"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"*) * * * * * * * * * * * Doing function body for: empty * * * * * * * * * * * DtoCreateNestedContext for empty * * * * * * * * * * * * DtoCreateNestedContextType for std.algorithm.iteration.splitter!("a == b", string, string).splitter.Result.empty * * * * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/iteration.d(3226) * * * * * * * * * * * * * AndAndExp::toElem: this._frontLength == 18446744073709551615LU && empty(this._input) @ bool * * * * * * * * * * * * * * EqualExp::toElem: this._frontLength == 18446744073709551615LU @ bool * * * * * * * * * * * * * * * DotVarExp::toElem: this._frontLength @ ulong * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Result * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * Indexing aggregate field std.algorithm.iteration.splitter!("a == b", string, string).splitter.Result._frontLength: * * * * * * * * * * * * * * * * * Value: %1 = getelementptr %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result", %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"* %.this_arg, i32 0, i32 2 * * * * * * * * * * * * * * * IntegerExp::toElem: 18446744073709551615LU @ ulong * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 18446744073709551615LU @ ulong * * * * * * * * * * * * * * * * * value = i64 -1 * * * * * * * * * * * * * * * integral or pointer or interface * * * * * * * * * * * * * * * lv: %2 = load i64, i64* %1 * * * * * * * * * * * * * * * rv: i64 -1 * * * * * * * * * * * * * * CallExp::toElem: empty(this._input) @ bool * * * * * * * * * * * * * * * VarExp::toElem: empty @ pure nothrow @nogc @property @safe bool(const(char[]) a) * * * * * * * * * * * * * * * * DtoSymbolAddress ('empty' of type 'pure nothrow @nogc @property @safe bool(const(char[]) a)') * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @property @safe bool(const(char[]) a) * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * DotVarExp::toElem: this._input @ const(char[]) * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Result * * * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * * * Indexing aggregate field std.algorithm.iteration.splitter!("a == b", string, string).splitter.Result._input: * * * * * * * * * * * * * * * * * * * Value: %4 = getelementptr %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result", %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"* %.this_arg, i32 0, i32 0 * * * * * * * * * * * * * return value is '0x124d1ac8' * * * * * * * * * * DtoDefineFunction(std.algorithm.iteration.splitter!("a == b", string, string).splitter.Result.popFront): /usr/include/dlang/ldc/std/algorithm/iteration.d(3230) * * * * * * * * * * * isMember = this is: Result * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe void()) * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * Final function type: void (%"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"*) * * * * * * * * * * * DtoResolveFunction(std.algorithm.iteration.splitter!("a == b", string, string).splitter.Result.popFront): /usr/include/dlang/ldc/std/algorithm/iteration.d(3230) * * * * * * * * * * * * DtoDeclareFunction(std.algorithm.iteration.splitter!("a == b", string, string).splitter.Result.popFront): /usr/include/dlang/ldc/std/algorithm/iteration.d(3230) * * * * * * * * * * * * * isMember = this is: Result * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe void()) * * * * * * * * * * * * * func = declare void @_D3std9algorithm9iteration40__T8splitterVAyaa6_61203d3d2062TAyaTAyaZ8splitterFAyaAyaZ6Result8popFrontMFNaNbNiNfZv(%"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"*) * * * * * * * * * * * Doing function body for: popFront * * * * * * * * * * * DtoCreateNestedContext for popFront * * * * * * * * * * * * DtoCreateNestedContextType for std.algorithm.iteration.splitter!("a == b", string, string).splitter.Result.popFront * * * * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/iteration.d(3231) * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/iteration.d(3232) * * * * * * * * * * * * * * AssertExp::toElem: assert(!this.empty()) * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/iteration.d(3233) * * * * * * * * * * * * * * CallExp::toElem: this.ensureFrontLength() @ void * * * * * * * * * * * * * * * DotVarExp::toElem: this.ensureFrontLength @ pure nothrow @nogc @safe void() * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Result * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"* %.this_arg * * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @safe void() * * * * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/iteration.d(3234) * * * * * * * * * * * * * * EqualExp::toElem: this._frontLength == this._input.length @ bool * * * * * * * * * * * * * * * DotVarExp::toElem: this._frontLength @ ulong * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Result * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * Indexing aggregate field std.algorithm.iteration.splitter!("a == b", string, string).splitter.Result._frontLength: * * * * * * * * * * * * * * * * * Value: %1 = getelementptr %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result", %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"* %.this_arg, i32 0, i32 2 * * * * * * * * * * * * * * * ArrayLengthExp::toElem: this._input.length @ ulong * * * * * * * * * * * * * * * * DotVarExp::toElem: this._input @ string * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Result * * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * * Indexing aggregate field std.algorithm.iteration.splitter!("a == b", string, string).splitter.Result._input: * * * * * * * * * * * * * * * * * * Value: %2 = getelementptr %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result", %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"* %.this_arg, i32 0, i32 0 * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * integral or pointer or interface * * * * * * * * * * * * * * * lv: %4 = load i64, i64* %1 * * * * * * * * * * * * * * * rv: %.len = load i64, i64* %3 * * * * * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/iteration.d(3235) * * * * * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/iteration.d(3235) * * * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/iteration.d(3237) * * * * * * * * * * * * * * * * * AssignExp::toElem: this._input = this._input[this._frontLength..this._frontLength] | (string)(string = string) * * * * * * * * * * * * * * * * * * DotVarExp::toElem: this._input @ string * * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Result * * * * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * * * * Indexing aggregate field std.algorithm.iteration.splitter!("a == b", string, string).splitter.Result._input: * * * * * * * * * * * * * * * * * * * * Value: %6 = getelementptr %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result", %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"* %.this_arg, i32 0, i32 0 * * * * * * * * * * * * * * * * * * SliceExp::toElem: this._input[this._frontLength..this._frontLength] @ string * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: this._input @ string * * * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Result * * * * * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * * * * * Indexing aggregate field std.algorithm.iteration.splitter!("a == b", string, string).splitter.Result._input: * * * * * * * * * * * * * * * * * * * * * Value: %7 = getelementptr %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result", %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"* %.this_arg, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: this._frontLength @ ulong * * * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Result * * * * * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * * * * * Indexing aggregate field std.algorithm.iteration.splitter!("a == b", string, string).splitter.Result._frontLength: * * * * * * * * * * * * * * * * * * * * * Value: %9 = getelementptr %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result", %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"* %.this_arg, i32 0, i32 2 * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: this._frontLength @ ulong * * * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Result * * * * * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * * * * * Indexing aggregate field std.algorithm.iteration.splitter!("a == b", string, string).splitter.Result._frontLength: * * * * * * * * * * * * * * * * * * * * * Value: %10 = getelementptr %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result", %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"* %.this_arg, i32 0, i32 2 * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * * * SetArray * * * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/iteration.d(3238) * * * * * * * * * * * * * * * * * AssignExp::toElem: this._frontLength = 18446744073709551615LU | (ulong)(ulong = ulong) * * * * * * * * * * * * * * * * * * DotVarExp::toElem: this._frontLength @ ulong * * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Result * * * * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * * * * Indexing aggregate field std.algorithm.iteration.splitter!("a == b", string, string).splitter.Result._frontLength: * * * * * * * * * * * * * * * * * * * * Value: %18 = getelementptr %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result", %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"* %.this_arg, i32 0, i32 2 * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 18446744073709551615LU @ ulong * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 18446744073709551615LU @ ulong * * * * * * * * * * * * * * * * * * * * value = i64 -1 * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * lhs: %18 = getelementptr %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result", %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"* %.this_arg, i32 0, i32 2 * * * * * * * * * * * * * * * * * * * rhs: i64 -1 * * * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/iteration.d(3240) * * * * * * * * * * * * * * * * * AssignExp::toElem: this._backLength = 18446744073709551615LU | (ulong)(ulong = ulong) * * * * * * * * * * * * * * * * * * DotVarExp::toElem: this._backLength @ ulong * * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Result * * * * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * * * * Indexing aggregate field std.algorithm.iteration.splitter!("a == b", string, string).splitter.Result._backLength: * * * * * * * * * * * * * * * * * * * * Value: %19 = getelementptr %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result", %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"* %.this_arg, i32 0, i32 3 * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 18446744073709551615LU @ ulong * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 18446744073709551615LU @ ulong * * * * * * * * * * * * * * * * * * * * value = i64 -1 * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * lhs: %19 = getelementptr %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result", %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"* %.this_arg, i32 0, i32 3 * * * * * * * * * * * * * * * * * * * rhs: i64 -1 * * * * * * * * * * * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/iteration.d(3241) * * * * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/iteration.d(3243) * * * * * * * * * * * * * * EqualExp::toElem: this._frontLength + this.separatorLength() == this._input.length @ bool * * * * * * * * * * * * * * * AddExp::toElem: this._frontLength + this.separatorLength() @ ulong * * * * * * * * * * * * * * * * DotVarExp::toElem: this._frontLength @ ulong * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Result * * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * * Indexing aggregate field std.algorithm.iteration.splitter!("a == b", string, string).splitter.Result._frontLength: * * * * * * * * * * * * * * * * * * Value: %15 = getelementptr %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result", %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"* %.this_arg, i32 0, i32 2 * * * * * * * * * * * * * * * * CallExp::toElem: this.separatorLength() @ ulong * * * * * * * * * * * * * * * * * DotVarExp::toElem: this.separatorLength @ pure nothrow @nogc @property @safe ulong() * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Result * * * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * Building type: pure nothrow @nogc @property @safe ulong() * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @property @safe ulong()) * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * Final function type: i64 () * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * * %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"* %.this_arg * * * * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @property @safe ulong() * * * * * * * * * * * * * * * ArrayLengthExp::toElem: this._input.length @ ulong * * * * * * * * * * * * * * * * DotVarExp::toElem: this._input @ string * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Result * * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * * Indexing aggregate field std.algorithm.iteration.splitter!("a == b", string, string).splitter.Result._input: * * * * * * * * * * * * * * * * * * Value: %19 = getelementptr %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result", %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"* %.this_arg, i32 0, i32 0 * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * integral or pointer or interface * * * * * * * * * * * * * * * lv: %18 = add i64 %17, %16 * * * * * * * * * * * * * * * rv: %.len2 = load i64, i64* %20 * * * * * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/iteration.d(3244) * * * * * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/iteration.d(3244) * * * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/iteration.d(3247) * * * * * * * * * * * * * * * * * AssignExp::toElem: this._input = this._input[this._input.length..this._input.length] | (string)(string = string) * * * * * * * * * * * * * * * * * * DotVarExp::toElem: this._input @ string * * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Result * * * * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * * * * Indexing aggregate field std.algorithm.iteration.splitter!("a == b", string, string).splitter.Result._input: * * * * * * * * * * * * * * * * * * * * Value: %27 = getelementptr %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result", %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"* %.this_arg, i32 0, i32 0 * * * * * * * * * * * * * * * * * * SliceExp::toElem: this._input[this._input.length..this._input.length] @ string * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: this._input @ string * * * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Result * * * * * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * * * * * Indexing aggregate field std.algorithm.iteration.splitter!("a == b", string, string).splitter.Result._input: * * * * * * * * * * * * * * * * * * * * * Value: %28 = getelementptr %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result", %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"* %.this_arg, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * * ArrayLengthExp::toElem: this._input.length @ ulong * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: this._input @ string * * * * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Result * * * * * * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * * * * * * Indexing aggregate field std.algorithm.iteration.splitter!("a == b", string, string).splitter.Result._input: * * * * * * * * * * * * * * * * * * * * * * Value: %30 = getelementptr %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result", %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"* %.this_arg, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * * ArrayLengthExp::toElem: this._input.length @ ulong * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: this._input @ string * * * * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Result * * * * * * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * * * * * * Indexing aggregate field std.algorithm.iteration.splitter!("a == b", string, string).splitter.Result._input: * * * * * * * * * * * * * * * * * * * * * * Value: %32 = getelementptr %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result", %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"* %.this_arg, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * * * SetArray * * * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/iteration.d(3248) * * * * * * * * * * * * * * * * * AssignExp::toElem: this._frontLength = 0LU | (ulong)(ulong = ulong) * * * * * * * * * * * * * * * * * * DotVarExp::toElem: this._frontLength @ ulong * * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Result * * * * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * * * * Indexing aggregate field std.algorithm.iteration.splitter!("a == b", string, string).splitter.Result._frontLength: * * * * * * * * * * * * * * * * * * * * Value: %39 = getelementptr %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result", %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"* %.this_arg, i32 0, i32 2 * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * lhs: %39 = getelementptr %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result", %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"* %.this_arg, i32 0, i32 2 * * * * * * * * * * * * * * * * * * * rhs: i64 0 * * * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/iteration.d(3250) * * * * * * * * * * * * * * * * * AssignExp::toElem: this._backLength = 0LU | (ulong)(ulong = ulong) * * * * * * * * * * * * * * * * * * DotVarExp::toElem: this._backLength @ ulong * * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Result * * * * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * * * * Indexing aggregate field std.algorithm.iteration.splitter!("a == b", string, string).splitter.Result._backLength: * * * * * * * * * * * * * * * * * * * * Value: %40 = getelementptr %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result", %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"* %.this_arg, i32 0, i32 3 * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * lhs: %40 = getelementptr %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result", %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"* %.this_arg, i32 0, i32 3 * * * * * * * * * * * * * * * * * * * rhs: i64 0 * * * * * * * * * * * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/iteration.d(3251) * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/iteration.d(3255) * * * * * * * * * * * * * * AssignExp::toElem: this._input = this._input[this._frontLength + this.separatorLength()..this._input.length] | (string)(string = string) * * * * * * * * * * * * * * * DotVarExp::toElem: this._input @ string * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Result * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * Indexing aggregate field std.algorithm.iteration.splitter!("a == b", string, string).splitter.Result._input: * * * * * * * * * * * * * * * * * Value: %36 = getelementptr %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result", %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"* %.this_arg, i32 0, i32 0 * * * * * * * * * * * * * * * SliceExp::toElem: this._input[this._frontLength + this.separatorLength()..this._input.length] @ string * * * * * * * * * * * * * * * * DotVarExp::toElem: this._input @ string * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Result * * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * * Indexing aggregate field std.algorithm.iteration.splitter!("a == b", string, string).splitter.Result._input: * * * * * * * * * * * * * * * * * * Value: %37 = getelementptr %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result", %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"* %.this_arg, i32 0, i32 0 * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * AddExp::toElem: this._frontLength + this.separatorLength() @ ulong * * * * * * * * * * * * * * * * * DotVarExp::toElem: this._frontLength @ ulong * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Result * * * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * * * Indexing aggregate field std.algorithm.iteration.splitter!("a == b", string, string).splitter.Result._frontLength: * * * * * * * * * * * * * * * * * * * Value: %39 = getelementptr %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result", %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"* %.this_arg, i32 0, i32 2 * * * * * * * * * * * * * * * * * CallExp::toElem: this.separatorLength() @ ulong * * * * * * * * * * * * * * * * * * DotVarExp::toElem: this.separatorLength @ pure nothrow @nogc @property @safe ulong() * * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Result * * * * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * * * %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"* %.this_arg * * * * * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @property @safe ulong() * * * * * * * * * * * * * * * * ArrayLengthExp::toElem: this._input.length @ ulong * * * * * * * * * * * * * * * * * DotVarExp::toElem: this._input @ string * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Result * * * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * * * Indexing aggregate field std.algorithm.iteration.splitter!("a == b", string, string).splitter.Result._input: * * * * * * * * * * * * * * * * * * * Value: %43 = getelementptr %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result", %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"* %.this_arg, i32 0, i32 0 * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * SetArray * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/iteration.d(3257) * * * * * * * * * * * * * * AssignExp::toElem: this._frontLength = 18446744073709551615LU | (ulong)(ulong = ulong) * * * * * * * * * * * * * * * DotVarExp::toElem: this._frontLength @ ulong * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Result * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * Indexing aggregate field std.algorithm.iteration.splitter!("a == b", string, string).splitter.Result._frontLength: * * * * * * * * * * * * * * * * * Value: %55 = getelementptr %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result", %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"* %.this_arg, i32 0, i32 2 * * * * * * * * * * * * * * * IntegerExp::toElem: 18446744073709551615LU @ ulong * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 18446744073709551615LU @ ulong * * * * * * * * * * * * * * * * * value = i64 -1 * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * lhs: %55 = getelementptr %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result", %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"* %.this_arg, i32 0, i32 2 * * * * * * * * * * * * * * * * rhs: i64 -1 * * * * * * * * * * DtoDefineFunction(std.algorithm.iteration.splitter!("a == b", string, string).splitter.Result.save): /usr/include/dlang/ldc/std/algorithm/iteration.d(3262) * * * * * * * * * * * isMember = this is: Result * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @property @safe Result()) * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * Final function type: void (%"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"*, %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"*) * * * * * * * * * * * DtoResolveFunction(std.algorithm.iteration.splitter!("a == b", string, string).splitter.Result.save): /usr/include/dlang/ldc/std/algorithm/iteration.d(3262) * * * * * * * * * * * * DtoDeclareFunction(std.algorithm.iteration.splitter!("a == b", string, string).splitter.Result.save): /usr/include/dlang/ldc/std/algorithm/iteration.d(3262) * * * * * * * * * * * * * isMember = this is: Result * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @property @safe Result()) * * * * * * * * * * * * * func = declare void @_D3std9algorithm9iteration40__T8splitterVAyaa6_61203d3d2062TAyaTAyaZ8splitterFAyaAyaZ6Result4saveMFNaNbNdNiNfZS3std9algorithm9iteration40__T8splitterVAyaa6_61203d3d2062TAyaTAyaZ8splitterFAyaAyaZ6Result(%"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"*, %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"*) * * * * * * * * * * * Doing function body for: save * * * * * * * * * * * DtoCreateNestedContext for save * * * * * * * * * * * * DtoCreateNestedContextType for std.algorithm.iteration.splitter!("a == b", string, string).splitter.Result.save * * * * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/iteration.d(3263) * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/iteration.d(3264) * * * * * * * * * * * * * * DeclarationExp::toElem: Result ret = this; | T=void * * * * * * * * * * * * * * * DtoDeclarationExp: ret * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = Result) * * * * * * * * * * * * * * * * * llvm value for decl: %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"* %.sret_arg * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * AssignExp::toElem: ret = this | (Result)(Result = Result) * * * * * * * * * * * * * * * * * * VarExp::toElem: ret @ Result * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('ret' of type 'Result') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Result * * * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/iteration.d(3265) * * * * * * * * * * * * * * AssignExp::toElem: ret._input = save(this._input) | (string)(string = string) * * * * * * * * * * * * * * * DotVarExp::toElem: ret._input @ string * * * * * * * * * * * * * * * * VarExp::toElem: ret @ Result * * * * * * * * * * * * * * * * * DtoSymbolAddress ('ret' of type 'Result') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * Indexing aggregate field std.algorithm.iteration.splitter!("a == b", string, string).splitter.Result._input: * * * * * * * * * * * * * * * * * Value: %3 = getelementptr %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result", %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"* %.sret_arg, i32 0, i32 0 * * * * * * * * * * * * * * * CallExp::toElem: save(this._input) @ string * * * * * * * * * * * * * * * * VarExp::toElem: save @ pure nothrow @nogc @property @safe string(string a) * * * * * * * * * * * * * * * * * DtoSymbolAddress ('save' of type 'pure nothrow @nogc @property @safe string(string a)') * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * Building type: pure nothrow @nogc @property @safe string(string a) * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @property @safe string(string a)) * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * Final function type: { i64, i8* } ({ i64, i8* }) * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @property @safe string(string a) * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * DotVarExp::toElem: this._input @ string * * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Result * * * * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * * * * Indexing aggregate field std.algorithm.iteration.splitter!("a == b", string, string).splitter.Result._input: * * * * * * * * * * * * * * * * * * * * Value: %4 = getelementptr %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result", %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"* %.this_arg, i32 0, i32 0 * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * SetArray * * * * * * * * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/iteration.d(3266) * * * * * * * * * * * * * * VarExp::toElem: ret @ Result * * * * * * * * * * * * * * * DtoSymbolAddress ('ret' of type 'Result') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * DtoDefineFunction(std.algorithm.iteration.splitter!("a == b", string, string).splitter.Result.back): /usr/include/dlang/ldc/std/algorithm/iteration.d(3275) * * * * * * * * * * * isMember = this is: Result * * * * * * * * * * * DtoFunctionType(pure @property @safe string()) * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * Final function type: { i64, i8* } (%"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"*) * * * * * * * * * * * DtoResolveFunction(std.algorithm.iteration.splitter!("a == b", string, string).splitter.Result.back): /usr/include/dlang/ldc/std/algorithm/iteration.d(3275) * * * * * * * * * * * * DtoDeclareFunction(std.algorithm.iteration.splitter!("a == b", string, string).splitter.Result.back): /usr/include/dlang/ldc/std/algorithm/iteration.d(3275) * * * * * * * * * * * * * isMember = this is: Result * * * * * * * * * * * * * DtoFunctionType(pure @property @safe string()) * * * * * * * * * * * * * func = declare { i64, i8* } @_D3std9algorithm9iteration40__T8splitterVAyaa6_61203d3d2062TAyaTAyaZ8splitterFAyaAyaZ6Result4backMFNaNdNfZAya(%"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"*) * * * * * * * * * * * Doing function body for: back * * * * * * * * * * * DtoCreateNestedContext for back * * * * * * * * * * * * DtoCreateNestedContextType for std.algorithm.iteration.splitter!("a == b", string, string).splitter.Result.back * * * * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/iteration.d(3276) * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/iteration.d(3277) * * * * * * * * * * * * * * CallExp::toElem: this.ensureBackLength() @ void * * * * * * * * * * * * * * * DotVarExp::toElem: this.ensureBackLength @ pure @safe void() * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Result * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * Building type: pure @safe void() * * * * * * * * * * * * * * * * * DtoFunctionType(pure @safe void()) * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * Final function type: void () * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"* %.this_arg * * * * * * * * * * * * * * * * Function type: pure @safe void() * * * * * * * * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/iteration.d(3278) * * * * * * * * * * * * * * SliceExp::toElem: this._input[this._input.length - this._backLength..this._input.length] @ string * * * * * * * * * * * * * * * DotVarExp::toElem: this._input @ string * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Result * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * Indexing aggregate field std.algorithm.iteration.splitter!("a == b", string, string).splitter.Result._input: * * * * * * * * * * * * * * * * * Value: %1 = getelementptr %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result", %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"* %.this_arg, i32 0, i32 0 * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * MinExp::toElem: this._input.length - this._backLength @ ulong * * * * * * * * * * * * * * * * ArrayLengthExp::toElem: this._input.length @ ulong * * * * * * * * * * * * * * * * * DotVarExp::toElem: this._input @ string * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Result * * * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * * * Indexing aggregate field std.algorithm.iteration.splitter!("a == b", string, string).splitter.Result._input: * * * * * * * * * * * * * * * * * * * Value: %3 = getelementptr %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result", %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"* %.this_arg, i32 0, i32 0 * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * DotVarExp::toElem: this._backLength @ ulong * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Result * * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * * Indexing aggregate field std.algorithm.iteration.splitter!("a == b", string, string).splitter.Result._backLength: * * * * * * * * * * * * * * * * * * Value: %5 = getelementptr %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result", %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"* %.this_arg, i32 0, i32 3 * * * * * * * * * * * * * * * ArrayLengthExp::toElem: this._input.length @ ulong * * * * * * * * * * * * * * * * DotVarExp::toElem: this._input @ string * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Result * * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * * Indexing aggregate field std.algorithm.iteration.splitter!("a == b", string, string).splitter.Result._input: * * * * * * * * * * * * * * * * * * Value: %8 = getelementptr %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result", %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"* %.this_arg, i32 0, i32 0 * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * return value is '0x124e3ff0' * * * * * * * * * * DtoDefineFunction(std.algorithm.iteration.splitter!("a == b", string, string).splitter.Result.popBack): /usr/include/dlang/ldc/std/algorithm/iteration.d(3283) * * * * * * * * * * * isMember = this is: Result * * * * * * * * * * * DtoFunctionType(pure @safe void()) * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * Final function type: void (%"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"*) * * * * * * * * * * * DtoResolveFunction(std.algorithm.iteration.splitter!("a == b", string, string).splitter.Result.popBack): /usr/include/dlang/ldc/std/algorithm/iteration.d(3283) * * * * * * * * * * * * DtoDeclareFunction(std.algorithm.iteration.splitter!("a == b", string, string).splitter.Result.popBack): /usr/include/dlang/ldc/std/algorithm/iteration.d(3283) * * * * * * * * * * * * * isMember = this is: Result * * * * * * * * * * * * * DtoFunctionType(pure @safe void()) * * * * * * * * * * * * * func = declare void @_D3std9algorithm9iteration40__T8splitterVAyaa6_61203d3d2062TAyaTAyaZ8splitterFAyaAyaZ6Result7popBackMFNaNfZv(%"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"*) * * * * * * * * * * * Doing function body for: popBack * * * * * * * * * * * DtoCreateNestedContext for popBack * * * * * * * * * * * * DtoCreateNestedContextType for std.algorithm.iteration.splitter!("a == b", string, string).splitter.Result.popBack * * * * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/iteration.d(3284) * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/iteration.d(3285) * * * * * * * * * * * * * * CallExp::toElem: this.ensureBackLength() @ void * * * * * * * * * * * * * * * DotVarExp::toElem: this.ensureBackLength @ pure @safe void() * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Result * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"* %.this_arg * * * * * * * * * * * * * * * * Function type: pure @safe void() * * * * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/iteration.d(3286) * * * * * * * * * * * * * * EqualExp::toElem: this._backLength == this._input.length @ bool * * * * * * * * * * * * * * * DotVarExp::toElem: this._backLength @ ulong * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Result * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * Indexing aggregate field std.algorithm.iteration.splitter!("a == b", string, string).splitter.Result._backLength: * * * * * * * * * * * * * * * * * Value: %1 = getelementptr %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result", %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"* %.this_arg, i32 0, i32 3 * * * * * * * * * * * * * * * ArrayLengthExp::toElem: this._input.length @ ulong * * * * * * * * * * * * * * * * DotVarExp::toElem: this._input @ string * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Result * * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * * Indexing aggregate field std.algorithm.iteration.splitter!("a == b", string, string).splitter.Result._input: * * * * * * * * * * * * * * * * * * Value: %2 = getelementptr %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result", %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"* %.this_arg, i32 0, i32 0 * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * integral or pointer or interface * * * * * * * * * * * * * * * lv: %4 = load i64, i64* %1 * * * * * * * * * * * * * * * rv: %.len = load i64, i64* %3 * * * * * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/iteration.d(3287) * * * * * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/iteration.d(3287) * * * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/iteration.d(3289) * * * * * * * * * * * * * * * * * AssignExp::toElem: this._input = this._input[0..0] | (string)(string = string) * * * * * * * * * * * * * * * * * * DotVarExp::toElem: this._input @ string * * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Result * * * * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * * * * Indexing aggregate field std.algorithm.iteration.splitter!("a == b", string, string).splitter.Result._input: * * * * * * * * * * * * * * * * * * * * Value: %6 = getelementptr %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result", %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"* %.this_arg, i32 0, i32 0 * * * * * * * * * * * * * * * * * * SliceExp::toElem: this._input[0..0] @ string * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: this._input @ string * * * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Result * * * * * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * * * * * Indexing aggregate field std.algorithm.iteration.splitter!("a == b", string, string).splitter.Result._input: * * * * * * * * * * * * * * * * * * * * * Value: %7 = getelementptr %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result", %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"* %.this_arg, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * * * SetArray * * * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/iteration.d(3290) * * * * * * * * * * * * * * * * * AssignExp::toElem: this._frontLength = 18446744073709551615LU | (ulong)(ulong = ulong) * * * * * * * * * * * * * * * * * * DotVarExp::toElem: this._frontLength @ ulong * * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Result * * * * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * * * * Indexing aggregate field std.algorithm.iteration.splitter!("a == b", string, string).splitter.Result._frontLength: * * * * * * * * * * * * * * * * * * * * Value: %12 = getelementptr %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result", %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"* %.this_arg, i32 0, i32 2 * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 18446744073709551615LU @ ulong * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 18446744073709551615LU @ ulong * * * * * * * * * * * * * * * * * * * * value = i64 -1 * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * lhs: %12 = getelementptr %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result", %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"* %.this_arg, i32 0, i32 2 * * * * * * * * * * * * * * * * * * * rhs: i64 -1 * * * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/iteration.d(3291) * * * * * * * * * * * * * * * * * AssignExp::toElem: this._backLength = 18446744073709551615LU | (ulong)(ulong = ulong) * * * * * * * * * * * * * * * * * * DotVarExp::toElem: this._backLength @ ulong * * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Result * * * * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * * * * Indexing aggregate field std.algorithm.iteration.splitter!("a == b", string, string).splitter.Result._backLength: * * * * * * * * * * * * * * * * * * * * Value: %13 = getelementptr %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result", %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"* %.this_arg, i32 0, i32 3 * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 18446744073709551615LU @ ulong * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 18446744073709551615LU @ ulong * * * * * * * * * * * * * * * * * * * * value = i64 -1 * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * lhs: %13 = getelementptr %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result", %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"* %.this_arg, i32 0, i32 3 * * * * * * * * * * * * * * * * * * * rhs: i64 -1 * * * * * * * * * * * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/iteration.d(3292) * * * * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/iteration.d(3294) * * * * * * * * * * * * * * EqualExp::toElem: this._backLength + this.separatorLength() == this._input.length @ bool * * * * * * * * * * * * * * * AddExp::toElem: this._backLength + this.separatorLength() @ ulong * * * * * * * * * * * * * * * * DotVarExp::toElem: this._backLength @ ulong * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Result * * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * * Indexing aggregate field std.algorithm.iteration.splitter!("a == b", string, string).splitter.Result._backLength: * * * * * * * * * * * * * * * * * * Value: %10 = getelementptr %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result", %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"* %.this_arg, i32 0, i32 3 * * * * * * * * * * * * * * * * CallExp::toElem: this.separatorLength() @ ulong * * * * * * * * * * * * * * * * * DotVarExp::toElem: this.separatorLength @ pure nothrow @nogc @property @safe ulong() * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Result * * * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * * %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"* %.this_arg * * * * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @property @safe ulong() * * * * * * * * * * * * * * * ArrayLengthExp::toElem: this._input.length @ ulong * * * * * * * * * * * * * * * * DotVarExp::toElem: this._input @ string * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Result * * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * * Indexing aggregate field std.algorithm.iteration.splitter!("a == b", string, string).splitter.Result._input: * * * * * * * * * * * * * * * * * * Value: %14 = getelementptr %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result", %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"* %.this_arg, i32 0, i32 0 * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * integral or pointer or interface * * * * * * * * * * * * * * * lv: %13 = add i64 %12, %11 * * * * * * * * * * * * * * * rv: %.len2 = load i64, i64* %15 * * * * * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/iteration.d(3295) * * * * * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/iteration.d(3295) * * * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/iteration.d(3298) * * * * * * * * * * * * * * * * * AssignExp::toElem: this._input = this._input[0..0] | (string)(string = string) * * * * * * * * * * * * * * * * * * DotVarExp::toElem: this._input @ string * * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Result * * * * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * * * * Indexing aggregate field std.algorithm.iteration.splitter!("a == b", string, string).splitter.Result._input: * * * * * * * * * * * * * * * * * * * * Value: %21 = getelementptr %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result", %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"* %.this_arg, i32 0, i32 0 * * * * * * * * * * * * * * * * * * SliceExp::toElem: this._input[0..0] @ string * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: this._input @ string * * * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Result * * * * * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * * * * * Indexing aggregate field std.algorithm.iteration.splitter!("a == b", string, string).splitter.Result._input: * * * * * * * * * * * * * * * * * * * * * Value: %22 = getelementptr %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result", %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"* %.this_arg, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * * * SetArray * * * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/iteration.d(3299) * * * * * * * * * * * * * * * * * AssignExp::toElem: this._frontLength = 0LU | (ulong)(ulong = ulong) * * * * * * * * * * * * * * * * * * DotVarExp::toElem: this._frontLength @ ulong * * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Result * * * * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * * * * Indexing aggregate field std.algorithm.iteration.splitter!("a == b", string, string).splitter.Result._frontLength: * * * * * * * * * * * * * * * * * * * * Value: %27 = getelementptr %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result", %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"* %.this_arg, i32 0, i32 2 * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * lhs: %27 = getelementptr %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result", %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"* %.this_arg, i32 0, i32 2 * * * * * * * * * * * * * * * * * * * rhs: i64 0 * * * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/iteration.d(3300) * * * * * * * * * * * * * * * * * AssignExp::toElem: this._backLength = 0LU | (ulong)(ulong = ulong) * * * * * * * * * * * * * * * * * * DotVarExp::toElem: this._backLength @ ulong * * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Result * * * * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * * * * Indexing aggregate field std.algorithm.iteration.splitter!("a == b", string, string).splitter.Result._backLength: * * * * * * * * * * * * * * * * * * * * Value: %28 = getelementptr %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result", %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"* %.this_arg, i32 0, i32 3 * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * lhs: %28 = getelementptr %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result", %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"* %.this_arg, i32 0, i32 3 * * * * * * * * * * * * * * * * * * * rhs: i64 0 * * * * * * * * * * * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/iteration.d(3301) * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/iteration.d(3304) * * * * * * * * * * * * * * AssignExp::toElem: this._input = this._input[0..this._input.length - this._backLength - this.separatorLength()] | (string)(string = string) * * * * * * * * * * * * * * * DotVarExp::toElem: this._input @ string * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Result * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * Indexing aggregate field std.algorithm.iteration.splitter!("a == b", string, string).splitter.Result._input: * * * * * * * * * * * * * * * * * Value: %25 = getelementptr %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result", %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"* %.this_arg, i32 0, i32 0 * * * * * * * * * * * * * * * SliceExp::toElem: this._input[0..this._input.length - this._backLength - this.separatorLength()] @ string * * * * * * * * * * * * * * * * DotVarExp::toElem: this._input @ string * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Result * * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * * Indexing aggregate field std.algorithm.iteration.splitter!("a == b", string, string).splitter.Result._input: * * * * * * * * * * * * * * * * * * Value: %26 = getelementptr %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result", %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"* %.this_arg, i32 0, i32 0 * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * * * * MinExp::toElem: this._input.length - this._backLength - this.separatorLength() @ ulong * * * * * * * * * * * * * * * * * MinExp::toElem: this._input.length - this._backLength @ ulong * * * * * * * * * * * * * * * * * * ArrayLengthExp::toElem: this._input.length @ ulong * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: this._input @ string * * * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Result * * * * * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * * * * * Indexing aggregate field std.algorithm.iteration.splitter!("a == b", string, string).splitter.Result._input: * * * * * * * * * * * * * * * * * * * * * Value: %28 = getelementptr %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result", %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"* %.this_arg, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * DotVarExp::toElem: this._backLength @ ulong * * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Result * * * * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * * * * Indexing aggregate field std.algorithm.iteration.splitter!("a == b", string, string).splitter.Result._backLength: * * * * * * * * * * * * * * * * * * * * Value: %30 = getelementptr %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result", %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"* %.this_arg, i32 0, i32 3 * * * * * * * * * * * * * * * * * CallExp::toElem: this.separatorLength() @ ulong * * * * * * * * * * * * * * * * * * DotVarExp::toElem: this.separatorLength @ pure nothrow @nogc @property @safe ulong() * * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Result * * * * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * * * %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"* %.this_arg * * * * * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @property @safe ulong() * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * SetArray * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/iteration.d(3305) * * * * * * * * * * * * * * AssignExp::toElem: this._backLength = 18446744073709551615LU | (ulong)(ulong = ulong) * * * * * * * * * * * * * * * DotVarExp::toElem: this._backLength @ ulong * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Result * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * Indexing aggregate field std.algorithm.iteration.splitter!("a == b", string, string).splitter.Result._backLength: * * * * * * * * * * * * * * * * * Value: %43 = getelementptr %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result", %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"* %.this_arg, i32 0, i32 3 * * * * * * * * * * * * * * * IntegerExp::toElem: 18446744073709551615LU @ ulong * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 18446744073709551615LU @ ulong * * * * * * * * * * * * * * * * * value = i64 -1 * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * lhs: %43 = getelementptr %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result", %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"* %.this_arg, i32 0, i32 3 * * * * * * * * * * * * * * * * rhs: i64 -1 * * * * * * * * * * Building default initializer for std.algorithm.iteration.splitter!("a == b", string, string).splitter.Result * * * * * * * * * * * Creating initializer constant for Result * * * * * * * * * * * * Implicit initializer: _input @+0 * * * * * * * * * * * * * DtoConstExpInit(targetType = string, exp = null) * * * * * * * * * * * * * * NullExp::toConstElem(type=string): null * * * * * * * * * * * * Implicit initializer: _separator @+16 * * * * * * * * * * * * * DtoConstExpInit(targetType = string, exp = null) * * * * * * * * * * * * * * NullExp::toConstElem(type=string): null * * * * * * * * * * * * Implicit initializer: _frontLength @+32 * * * * * * * * * * * * * const expression initializer * * * * * * * * * * * * * DtoConstExpInit(targetType = ulong, exp = 18446744073709551615LU) * * * * * * * * * * * * * * IntegerExp::toConstElem: 18446744073709551615LU @ ulong * * * * * * * * * * * * * * * value = i64 -1 * * * * * * * * * * * * Implicit initializer: _backLength @+40 * * * * * * * * * * * * * const expression initializer * * * * * * * * * * * * * DtoConstExpInit(targetType = ulong, exp = 18446744073709551615LU) * * * * * * * * * * * * * * IntegerExp::toConstElem: 18446744073709551615LU @ ulong * * * * * * * * * * * * * * * value = i64 -1 * * * * * * * * * * * * adding field _input * * * * * * * * * * * * adding field _separator * * * * * * * * * * * * adding field _frontLength * * * * * * * * * * * * adding field _backLength * * * * * * * * * * * * final initializer: %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result_init" { { i64, i8* } zeroinitializer, { i64, i8* } zeroinitializer, i64 -1, i64 -1 } * * * * * * * * * * DtoTypeInfoOf(type = 'Result', base='1') * * * * * * * * * * * Type::getTypeInfo(): Result * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(Result)) * * * * * * * * * * * * * type = 'Result' * * * * * * * * * * * * * typeinfo mangle: _D100TypeInfo_S3std9algorithm9iteration40__T8splitterVAyaa6_61203d3d2062TAyaTAyaZ8splitterFAyaAyaZ6Result6__initZ * * * * * * * * * * * * * TypeInfoStructDeclaration::llvmDefine() typeid(Result) * * * * * * * * * * * * * * DtoFunctionType(nothrow @trusted ulong(ref const(Result) p)) * * * * * * * * * * * * * * * Building type: const(Result)* * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * Final function type: i64 (%"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"*) * * * * * * * * * * * * * * DtoResolveFunction(std.algorithm.iteration.splitter!("a == b", string, string).splitter.Result.__xtoHash): * * * * * * * * * * * * * * * DtoDeclareFunction(std.algorithm.iteration.splitter!("a == b", string, string).splitter.Result.__xtoHash): * * * * * * * * * * * * * * * * DtoFunctionType(nothrow @trusted ulong(ref const(Result) p)) * * * * * * * * * * * * * * * * func = declare i64 @_D3std9algorithm9iteration40__T8splitterVAyaa6_61203d3d2062TAyaTAyaZ8splitterFAyaAyaZ6Result9__xtoHashFNbNeKxS3std9algorithm9iteration40__T8splitterVAyaa6_61203d3d2062TAyaTAyaZ8splitterFAyaAyaZ6ResultZm(%"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"*) * * * * * * * * * * * * * * DtoFunctionType(bool(ref const(Result) p, ref const(Result) q)) * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * Final function type: i1 (%"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"*, %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"*) * * * * * * * * * * * * * * DtoResolveFunction(std.algorithm.iteration.splitter!("a == b", string, string).splitter.Result.__xopEquals): * * * * * * * * * * * * * * * DtoDeclareFunction(std.algorithm.iteration.splitter!("a == b", string, string).splitter.Result.__xopEquals): * * * * * * * * * * * * * * * * DtoFunctionType(bool(ref const(Result) p, ref const(Result) q)) * * * * * * * * * * * * * * * * func = declare i1 @_D3std9algorithm9iteration40__T8splitterVAyaa6_61203d3d2062TAyaTAyaZ8splitterFAyaAyaZ6Result11__xopEqualsFKxS3std9algorithm9iteration40__T8splitterVAyaa6_61203d3d2062TAyaTAyaZ8splitterFAyaAyaZ6ResultKxS3std9algorithm9iteration40__T8splitterVAyaa6_61203d3d2062TAyaTAyaZ8splitterFAyaAyaZ6ResultZb(%"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"*, %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"*) * * * * * * * * * * * * * * IntegerExp::toConstElem: cast(void*)305419896LU @ void* * * * * * * * * * * * * * * * pointer * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(Result)) * * * * * * * * * * DtoDefineFunction(std.algorithm.iteration.splitter!("a == b", string, string).splitter.Result.__xopEquals): * * * * * * * * * * * Doing function body for: __xopEquals * * * * * * * * * * * DtoCreateNestedContext for __xopEquals * * * * * * * * * * * * DtoCreateNestedContextType for std.algorithm.iteration.splitter!("a == b", string, string).splitter.Result.__xopEquals * * * * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * * * * ReturnStatement::toIR(): * * * * * * * * * * * * * AndAndExp::toElem: p._input == q._input && p._separator == q._separator && p._frontLength == q._frontLength && p._backLength == q._backLength @ bool * * * * * * * * * * * * * * AndAndExp::toElem: p._input == q._input && p._separator == q._separator && p._frontLength == q._frontLength @ bool * * * * * * * * * * * * * * * AndAndExp::toElem: p._input == q._input && p._separator == q._separator @ bool * * * * * * * * * * * * * * * * EqualExp::toElem: p._input == q._input @ bool * * * * * * * * * * * * * * * * * DotVarExp::toElem: p._input @ const(string) * * * * * * * * * * * * * * * * * * VarExp::toElem: p @ const(Result) * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('p' of type 'const(Result)') * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * type: const(Result) * * * * * * * * * * * * * * * * * * Indexing aggregate field std.algorithm.iteration.splitter!("a == b", string, string).splitter.Result._input: * * * * * * * * * * * * * * * * * * * Value: %1 = getelementptr %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result", %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"* %p_arg, i32 0, i32 0 * * * * * * * * * * * * * * * * * DotVarExp::toElem: q._input @ const(string) * * * * * * * * * * * * * * * * * * VarExp::toElem: q @ const(Result) * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('q' of type 'const(Result)') * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * type: const(Result) * * * * * * * * * * * * * * * * * * Indexing aggregate field std.algorithm.iteration.splitter!("a == b", string, string).splitter.Result._input: * * * * * * * * * * * * * * * * * * * Value: %2 = getelementptr %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result", %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"* %q_arg, i32 0, i32 0 * * * * * * * * * * * * * * * * * static or dynamic array * * * * * * * * * * * * * * * * * comparing arrays * * * * * * * * * * * * * * * * * casting to dynamic arrays * * * * * * * * * * * * * * * * * DtoCastArray * * * * * * * * * * * * * * * * * * from array or sarray * * * * * * * * * * * * * * * * * * to array * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * isslice * * * * * * * * * * * * * * * * * DtoCastArray * * * * * * * * * * * * * * * * * * from array or sarray * * * * * * * * * * * * * * * * * * to array * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * isslice * * * * * * * * * * * * * * * * * DtoTypeInfoOf(type = 'string', base='1') * * * * * * * * * * * * * * * * * * Type::getTypeInfo(): string * * * * * * * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(string)) * * * * * * * * * * * * * * * * EqualExp::toElem: p._separator == q._separator @ bool * * * * * * * * * * * * * * * * * DotVarExp::toElem: p._separator @ const(string) * * * * * * * * * * * * * * * * * * VarExp::toElem: p @ const(Result) * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('p' of type 'const(Result)') * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * type: const(Result) * * * * * * * * * * * * * * * * * * Indexing aggregate field std.algorithm.iteration.splitter!("a == b", string, string).splitter.Result._separator: * * * * * * * * * * * * * * * * * * * Value: %15 = getelementptr %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result", %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"* %p_arg, i32 0, i32 1 * * * * * * * * * * * * * * * * * DotVarExp::toElem: q._separator @ const(string) * * * * * * * * * * * * * * * * * * VarExp::toElem: q @ const(Result) * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('q' of type 'const(Result)') * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * type: const(Result) * * * * * * * * * * * * * * * * * * Indexing aggregate field std.algorithm.iteration.splitter!("a == b", string, string).splitter.Result._separator: * * * * * * * * * * * * * * * * * * * Value: %16 = getelementptr %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result", %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"* %q_arg, i32 0, i32 1 * * * * * * * * * * * * * * * * * static or dynamic array * * * * * * * * * * * * * * * * * comparing arrays * * * * * * * * * * * * * * * * * casting to dynamic arrays * * * * * * * * * * * * * * * * * DtoCastArray * * * * * * * * * * * * * * * * * * from array or sarray * * * * * * * * * * * * * * * * * * to array * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * isslice * * * * * * * * * * * * * * * * * DtoCastArray * * * * * * * * * * * * * * * * * * from array or sarray * * * * * * * * * * * * * * * * * * to array * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * isslice * * * * * * * * * * * * * * * * * DtoTypeInfoOf(type = 'string', base='1') * * * * * * * * * * * * * * * * * * Type::getTypeInfo(): string * * * * * * * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(string)) * * * * * * * * * * * * * * * EqualExp::toElem: p._frontLength == q._frontLength @ bool * * * * * * * * * * * * * * * * DotVarExp::toElem: p._frontLength @ const(ulong) * * * * * * * * * * * * * * * * * VarExp::toElem: p @ const(Result) * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('p' of type 'const(Result)') * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * type: const(Result) * * * * * * * * * * * * * * * * * Indexing aggregate field std.algorithm.iteration.splitter!("a == b", string, string).splitter.Result._frontLength: * * * * * * * * * * * * * * * * * * Value: %29 = getelementptr %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result", %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"* %p_arg, i32 0, i32 2 * * * * * * * * * * * * * * * * DotVarExp::toElem: q._frontLength @ const(ulong) * * * * * * * * * * * * * * * * * VarExp::toElem: q @ const(Result) * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('q' of type 'const(Result)') * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * type: const(Result) * * * * * * * * * * * * * * * * * Indexing aggregate field std.algorithm.iteration.splitter!("a == b", string, string).splitter.Result._frontLength: * * * * * * * * * * * * * * * * * * Value: %30 = getelementptr %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result", %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"* %q_arg, i32 0, i32 2 * * * * * * * * * * * * * * * * integral or pointer or interface * * * * * * * * * * * * * * * * lv: %31 = load i64, i64* %29 * * * * * * * * * * * * * * * * rv: %32 = load i64, i64* %30 * * * * * * * * * * * * * * EqualExp::toElem: p._backLength == q._backLength @ bool * * * * * * * * * * * * * * * DotVarExp::toElem: p._backLength @ const(ulong) * * * * * * * * * * * * * * * * VarExp::toElem: p @ const(Result) * * * * * * * * * * * * * * * * * DtoSymbolAddress ('p' of type 'const(Result)') * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * type: const(Result) * * * * * * * * * * * * * * * * Indexing aggregate field std.algorithm.iteration.splitter!("a == b", string, string).splitter.Result._backLength: * * * * * * * * * * * * * * * * * Value: %34 = getelementptr %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result", %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"* %p_arg, i32 0, i32 3 * * * * * * * * * * * * * * * DotVarExp::toElem: q._backLength @ const(ulong) * * * * * * * * * * * * * * * * VarExp::toElem: q @ const(Result) * * * * * * * * * * * * * * * * * DtoSymbolAddress ('q' of type 'const(Result)') * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * type: const(Result) * * * * * * * * * * * * * * * * Indexing aggregate field std.algorithm.iteration.splitter!("a == b", string, string).splitter.Result._backLength: * * * * * * * * * * * * * * * * * Value: %35 = getelementptr %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result", %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"* %q_arg, i32 0, i32 3 * * * * * * * * * * * * * * * integral or pointer or interface * * * * * * * * * * * * * * * lv: %36 = load i64, i64* %34 * * * * * * * * * * * * * * * rv: %37 = load i64, i64* %35 * * * * * * * * * * * * * return value is '0x124f8548' * * * * * * * * * * DtoDefineFunction(std.algorithm.iteration.splitter!("a == b", string, string).splitter.Result.__xtoHash): * * * * * * * * * * * Doing function body for: __xtoHash * * * * * * * * * * * DtoCreateNestedContext for __xtoHash * * * * * * * * * * * * DtoCreateNestedContextType for std.algorithm.iteration.splitter!("a == b", string, string).splitter.Result.__xtoHash * * * * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * * * * * ExpStatement::toIR(): * * * * * * * * * * * * * * DeclarationExp::toElem: ulong h = 0LU; | T=void * * * * * * * * * * * * * * * DtoDeclarationExp: h * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * * * * * * * * * llvm value for decl: %h = alloca i64, align 8 * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * AssignExp::toElem: h = 0LU | (ulong)(ulong = ulong) * * * * * * * * * * * * * * * * * * VarExp::toElem: h @ ulong * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('h' of type 'ulong') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * lhs: %h = alloca i64, align 8 * * * * * * * * * * * * * * * * * * * rhs: i64 0 * * * * * * * * * * * * * UnrolledLoopStatement::toIR(): * * * * * * * * * * * * * * ScopeStatement::toIR(): * * * * * * * * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * * * * * * * * ExpStatement::toIR(): * * * * * * * * * * * * * * * * * DeclarationExp::toElem: enum ulong i = 0LU; | T=void * * * * * * * * * * * * * * * * * * DtoDeclarationExp: i * * * * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * * * * Manifest constant, nothing to do. * * * * * * * * * * * * * * * * ExpStatement::toIR(): * * * * * * * * * * * * * * * * * DeclarationExp::toElem: alias T = const(string); | T=void * * * * * * * * * * * * * * * * * * DtoDeclarationExp: T * * * * * * * * * * * * * * * * * * * Ignoring Symbol: alias * * * * * * * * * * * * * * * * ExpStatement::toIR(): * * * * * * * * * * * * * * * * * AddAssignExp::toElem: h += typeid(const(string)).getHash(cast(const(void*))&p._input) @ ulong * * * * * * * * * * * * * * * * * * Caching l-value of h += typeid(const(string)).getHash(cast(const(void*))&p._input) => h * * * * * * * * * * * * * * * * * * * VarExp::toElem: h @ ulong * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('h' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * AddExp::toElem: h + typeid(const(string)).getHash(cast(const(void*))&p._input) @ ulong * * * * * * * * * * * * * * * * * * * VarExp::toElem: h @ ulong * * * * * * * * * * * * * * * * * * * CallExp::toElem: typeid(const(string)).getHash(cast(const(void*))&p._input) @ ulong * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: typeid(const(string)).getHash @ const nothrow @trusted ulong(const(void*) p) * * * * * * * * * * * * * * * * * * * * * SymOffExp::toElem: typeid(const(string)) @ object.TypeInfo * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('typeid(const(string))' of type 'object.TypeInfo_Const') * * * * * * * * * * * * * * * * * * * * * * * TypeInfoDeclaration * * * * * * * * * * * * * * * * * * * * * * Casting from 'TypeInfo_Const*' to 'object.TypeInfo' * * * * * * * * * * * * * * * * * * * * * * * src: %object.TypeInfo_Const* bitcast (%"typeid(const(string))"* @_D13TypeInfo_xAya6__initZ to %object.TypeInfo_Const*) * * * * * * * * * * * * * * * * * * * * * * * to type: %object.TypeInfo* * * * * * * * * * * * * * * * * * * * * * vthis: %object.TypeInfo* bitcast (%"typeid(const(string))"* @_D13TypeInfo_xAya6__initZ to %object.TypeInfo*) * * * * * * * * * * * * * * * * * * * * * funcval: %3 = load i64 (%object.TypeInfo*, i8*)*, i64 (%object.TypeInfo*, i8*)** %"typeid(const(string)).getHash@vtbl", align 8 * * * * * * * * * * * * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(const nothrow @trusted ulong(const(void*) p)) * * * * * * * * * * * * * * * * * * * * * funcval casted: %"typeid(const(string)).getHash" = load i64 (%object.TypeInfo*, i8*)*, i64 (%object.TypeInfo*, i8*)** %"typeid(const(string)).getHash@vtbl", align 8 * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * * * * * %object.TypeInfo* bitcast (%"typeid(const(string))"* @_D13TypeInfo_xAya6__initZ to %object.TypeInfo*) * * * * * * * * * * * * * * * * * * * * * Function type: const nothrow @trusted ulong(const(void*) p) * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * CastExp::toElem: cast(const(void*))&p._input @ const(void*) * * * * * * * * * * * * * * * * * * * * * * * AddrExp::toElem: &p._input @ const(string)* * * * * * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: p._input @ const(string) * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: p @ const(Result) * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('p' of type 'const(Result)') * * * * * * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * * * * * * type: const(Result) * * * * * * * * * * * * * * * * * * * * * * * * * Indexing aggregate field std.algorithm.iteration.splitter!("a == b", string, string).splitter.Result._input: * * * * * * * * * * * * * * * * * * * * * * * * * * Value: %3 = getelementptr %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result", %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"* %p_arg, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * * * * * * is nothing special * * * * * * * * * * * * * * * * * * * * * * * * lval: %3 = getelementptr %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result", %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"* %p_arg, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * * * * * Casting from 'const(string)*' to 'const(void*)' * * * * * * * * * * * * * * * * * * * * * * * * src: %3 = getelementptr %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result", %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"* %p_arg, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * * * * * * to type: i8* * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * lhs: %h = alloca i64, align 8 * * * * * * * * * * * * * * * * * * * rhs: %7 = add i64 %6, %5 * * * * * * * * * * * * * * ScopeStatement::toIR(): * * * * * * * * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * * * * * * * * ExpStatement::toIR(): * * * * * * * * * * * * * * * * * DeclarationExp::toElem: enum ulong i = 1LU; | T=void * * * * * * * * * * * * * * * * * * DtoDeclarationExp: i * * * * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * * * * Manifest constant, nothing to do. * * * * * * * * * * * * * * * * ExpStatement::toIR(): * * * * * * * * * * * * * * * * * DeclarationExp::toElem: alias T = const(string); | T=void * * * * * * * * * * * * * * * * * * DtoDeclarationExp: T * * * * * * * * * * * * * * * * * * * Ignoring Symbol: alias * * * * * * * * * * * * * * * * ExpStatement::toIR(): * * * * * * * * * * * * * * * * * AddAssignExp::toElem: h += typeid(const(string)).getHash(cast(const(void*))&p._separator) @ ulong * * * * * * * * * * * * * * * * * * Caching l-value of h += typeid(const(string)).getHash(cast(const(void*))&p._separator) => h * * * * * * * * * * * * * * * * * * * VarExp::toElem: h @ ulong * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('h' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * AddExp::toElem: h + typeid(const(string)).getHash(cast(const(void*))&p._separator) @ ulong * * * * * * * * * * * * * * * * * * * VarExp::toElem: h @ ulong * * * * * * * * * * * * * * * * * * * CallExp::toElem: typeid(const(string)).getHash(cast(const(void*))&p._separator) @ ulong * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: typeid(const(string)).getHash @ const nothrow @trusted ulong(const(void*) p) * * * * * * * * * * * * * * * * * * * * * SymOffExp::toElem: typeid(const(string)) @ object.TypeInfo * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('typeid(const(string))' of type 'object.TypeInfo_Const') * * * * * * * * * * * * * * * * * * * * * * * TypeInfoDeclaration * * * * * * * * * * * * * * * * * * * * * * Casting from 'TypeInfo_Const*' to 'object.TypeInfo' * * * * * * * * * * * * * * * * * * * * * * * src: %object.TypeInfo_Const* bitcast (%"typeid(const(string))"* @_D13TypeInfo_xAya6__initZ to %object.TypeInfo_Const*) * * * * * * * * * * * * * * * * * * * * * * * to type: %object.TypeInfo* * * * * * * * * * * * * * * * * * * * * * vthis: %object.TypeInfo* bitcast (%"typeid(const(string))"* @_D13TypeInfo_xAya6__initZ to %object.TypeInfo*) * * * * * * * * * * * * * * * * * * * * * funcval: %10 = load i64 (%object.TypeInfo*, i8*)*, i64 (%object.TypeInfo*, i8*)** %"typeid(const(string)).getHash@vtbl4", align 8 * * * * * * * * * * * * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(const nothrow @trusted ulong(const(void*) p)) * * * * * * * * * * * * * * * * * * * * * funcval casted: %"typeid(const(string)).getHash5" = load i64 (%object.TypeInfo*, i8*)*, i64 (%object.TypeInfo*, i8*)** %"typeid(const(string)).getHash@vtbl4", align 8 * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * * * * * %object.TypeInfo* bitcast (%"typeid(const(string))"* @_D13TypeInfo_xAya6__initZ to %object.TypeInfo*) * * * * * * * * * * * * * * * * * * * * * Function type: const nothrow @trusted ulong(const(void*) p) * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * CastExp::toElem: cast(const(void*))&p._separator @ const(void*) * * * * * * * * * * * * * * * * * * * * * * * AddrExp::toElem: &p._separator @ const(string)* * * * * * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: p._separator @ const(string) * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: p @ const(Result) * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('p' of type 'const(Result)') * * * * * * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * * * * * * type: const(Result) * * * * * * * * * * * * * * * * * * * * * * * * * Indexing aggregate field std.algorithm.iteration.splitter!("a == b", string, string).splitter.Result._separator: * * * * * * * * * * * * * * * * * * * * * * * * * * Value: %10 = getelementptr %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result", %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"* %p_arg, i32 0, i32 1 * * * * * * * * * * * * * * * * * * * * * * * * is nothing special * * * * * * * * * * * * * * * * * * * * * * * * lval: %10 = getelementptr %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result", %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"* %p_arg, i32 0, i32 1 * * * * * * * * * * * * * * * * * * * * * * * Casting from 'const(string)*' to 'const(void*)' * * * * * * * * * * * * * * * * * * * * * * * * src: %10 = getelementptr %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result", %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"* %p_arg, i32 0, i32 1 * * * * * * * * * * * * * * * * * * * * * * * * to type: i8* * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * lhs: %h = alloca i64, align 8 * * * * * * * * * * * * * * * * * * * rhs: %14 = add i64 %13, %12 * * * * * * * * * * * * * * ScopeStatement::toIR(): * * * * * * * * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * * * * * * * * ExpStatement::toIR(): * * * * * * * * * * * * * * * * * DeclarationExp::toElem: enum ulong i = 2LU; | T=void * * * * * * * * * * * * * * * * * * DtoDeclarationExp: i * * * * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * * * * Manifest constant, nothing to do. * * * * * * * * * * * * * * * * ExpStatement::toIR(): * * * * * * * * * * * * * * * * * DeclarationExp::toElem: alias T = const(ulong); | T=void * * * * * * * * * * * * * * * * * * DtoDeclarationExp: T * * * * * * * * * * * * * * * * * * * Ignoring Symbol: alias * * * * * * * * * * * * * * * * ExpStatement::toIR(): * * * * * * * * * * * * * * * * * AddAssignExp::toElem: h += typeid(const(ulong)).getHash(cast(const(void*))&p._frontLength) @ ulong * * * * * * * * * * * * * * * * * * Caching l-value of h += typeid(const(ulong)).getHash(cast(const(void*))&p._frontLength) => h * * * * * * * * * * * * * * * * * * * VarExp::toElem: h @ ulong * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('h' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * AddExp::toElem: h + typeid(const(ulong)).getHash(cast(const(void*))&p._frontLength) @ ulong * * * * * * * * * * * * * * * * * * * VarExp::toElem: h @ ulong * * * * * * * * * * * * * * * * * * * CallExp::toElem: typeid(const(ulong)).getHash(cast(const(void*))&p._frontLength) @ ulong * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: typeid(const(ulong)).getHash @ const nothrow @trusted ulong(const(void*) p) * * * * * * * * * * * * * * * * * * * * * SymOffExp::toElem: typeid(const(ulong)) @ object.TypeInfo * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('typeid(const(ulong))' of type 'object.TypeInfo_Const') * * * * * * * * * * * * * * * * * * * * * * * TypeInfoDeclaration * * * * * * * * * * * * * * * * * * * * * * Casting from 'TypeInfo_Const*' to 'object.TypeInfo' * * * * * * * * * * * * * * * * * * * * * * * src: %object.TypeInfo_Const* bitcast (%"typeid(const(ulong))"* @_D11TypeInfo_xm6__initZ to %object.TypeInfo_Const*) * * * * * * * * * * * * * * * * * * * * * * * to type: %object.TypeInfo* * * * * * * * * * * * * * * * * * * * * * vthis: %object.TypeInfo* bitcast (%"typeid(const(ulong))"* @_D11TypeInfo_xm6__initZ to %object.TypeInfo*) * * * * * * * * * * * * * * * * * * * * * funcval: %17 = load i64 (%object.TypeInfo*, i8*)*, i64 (%object.TypeInfo*, i8*)** %"typeid(const(ulong)).getHash@vtbl", align 8 * * * * * * * * * * * * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(const nothrow @trusted ulong(const(void*) p)) * * * * * * * * * * * * * * * * * * * * * funcval casted: %"typeid(const(ulong)).getHash" = load i64 (%object.TypeInfo*, i8*)*, i64 (%object.TypeInfo*, i8*)** %"typeid(const(ulong)).getHash@vtbl", align 8 * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * * * * * %object.TypeInfo* bitcast (%"typeid(const(ulong))"* @_D11TypeInfo_xm6__initZ to %object.TypeInfo*) * * * * * * * * * * * * * * * * * * * * * Function type: const nothrow @trusted ulong(const(void*) p) * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * CastExp::toElem: cast(const(void*))&p._frontLength @ const(void*) * * * * * * * * * * * * * * * * * * * * * * * AddrExp::toElem: &p._frontLength @ const(ulong)* * * * * * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: p._frontLength @ const(ulong) * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: p @ const(Result) * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('p' of type 'const(Result)') * * * * * * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * * * * * * type: const(Result) * * * * * * * * * * * * * * * * * * * * * * * * * Indexing aggregate field std.algorithm.iteration.splitter!("a == b", string, string).splitter.Result._frontLength: * * * * * * * * * * * * * * * * * * * * * * * * * * Value: %17 = getelementptr %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result", %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"* %p_arg, i32 0, i32 2 * * * * * * * * * * * * * * * * * * * * * * * * is nothing special * * * * * * * * * * * * * * * * * * * * * * * * lval: %17 = getelementptr %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result", %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"* %p_arg, i32 0, i32 2 * * * * * * * * * * * * * * * * * * * * * * * Casting from 'const(ulong)*' to 'const(void*)' * * * * * * * * * * * * * * * * * * * * * * * * src: %17 = getelementptr %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result", %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"* %p_arg, i32 0, i32 2 * * * * * * * * * * * * * * * * * * * * * * * * to type: i8* * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * lhs: %h = alloca i64, align 8 * * * * * * * * * * * * * * * * * * * rhs: %21 = add i64 %20, %19 * * * * * * * * * * * * * * ScopeStatement::toIR(): * * * * * * * * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * * * * * * * * ExpStatement::toIR(): * * * * * * * * * * * * * * * * * DeclarationExp::toElem: enum ulong i = 3LU; | T=void * * * * * * * * * * * * * * * * * * DtoDeclarationExp: i * * * * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * * * * Manifest constant, nothing to do. * * * * * * * * * * * * * * * * ExpStatement::toIR(): * * * * * * * * * * * * * * * * * DeclarationExp::toElem: alias T = const(ulong); | T=void * * * * * * * * * * * * * * * * * * DtoDeclarationExp: T * * * * * * * * * * * * * * * * * * * Ignoring Symbol: alias * * * * * * * * * * * * * * * * ExpStatement::toIR(): * * * * * * * * * * * * * * * * * AddAssignExp::toElem: h += typeid(const(ulong)).getHash(cast(const(void*))&p._backLength) @ ulong * * * * * * * * * * * * * * * * * * Caching l-value of h += typeid(const(ulong)).getHash(cast(const(void*))&p._backLength) => h * * * * * * * * * * * * * * * * * * * VarExp::toElem: h @ ulong * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('h' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * AddExp::toElem: h + typeid(const(ulong)).getHash(cast(const(void*))&p._backLength) @ ulong * * * * * * * * * * * * * * * * * * * VarExp::toElem: h @ ulong * * * * * * * * * * * * * * * * * * * CallExp::toElem: typeid(const(ulong)).getHash(cast(const(void*))&p._backLength) @ ulong * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: typeid(const(ulong)).getHash @ const nothrow @trusted ulong(const(void*) p) * * * * * * * * * * * * * * * * * * * * * SymOffExp::toElem: typeid(const(ulong)) @ object.TypeInfo * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('typeid(const(ulong))' of type 'object.TypeInfo_Const') * * * * * * * * * * * * * * * * * * * * * * * TypeInfoDeclaration * * * * * * * * * * * * * * * * * * * * * * Casting from 'TypeInfo_Const*' to 'object.TypeInfo' * * * * * * * * * * * * * * * * * * * * * * * src: %object.TypeInfo_Const* bitcast (%"typeid(const(ulong))"* @_D11TypeInfo_xm6__initZ to %object.TypeInfo_Const*) * * * * * * * * * * * * * * * * * * * * * * * to type: %object.TypeInfo* * * * * * * * * * * * * * * * * * * * * * vthis: %object.TypeInfo* bitcast (%"typeid(const(ulong))"* @_D11TypeInfo_xm6__initZ to %object.TypeInfo*) * * * * * * * * * * * * * * * * * * * * * funcval: %24 = load i64 (%object.TypeInfo*, i8*)*, i64 (%object.TypeInfo*, i8*)** %"typeid(const(ulong)).getHash@vtbl6", align 8 * * * * * * * * * * * * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(const nothrow @trusted ulong(const(void*) p)) * * * * * * * * * * * * * * * * * * * * * funcval casted: %"typeid(const(ulong)).getHash7" = load i64 (%object.TypeInfo*, i8*)*, i64 (%object.TypeInfo*, i8*)** %"typeid(const(ulong)).getHash@vtbl6", align 8 * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * * * * * %object.TypeInfo* bitcast (%"typeid(const(ulong))"* @_D11TypeInfo_xm6__initZ to %object.TypeInfo*) * * * * * * * * * * * * * * * * * * * * * Function type: const nothrow @trusted ulong(const(void*) p) * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * CastExp::toElem: cast(const(void*))&p._backLength @ const(void*) * * * * * * * * * * * * * * * * * * * * * * * AddrExp::toElem: &p._backLength @ const(ulong)* * * * * * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: p._backLength @ const(ulong) * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: p @ const(Result) * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('p' of type 'const(Result)') * * * * * * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * * * * * * type: const(Result) * * * * * * * * * * * * * * * * * * * * * * * * * Indexing aggregate field std.algorithm.iteration.splitter!("a == b", string, string).splitter.Result._backLength: * * * * * * * * * * * * * * * * * * * * * * * * * * Value: %24 = getelementptr %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result", %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"* %p_arg, i32 0, i32 3 * * * * * * * * * * * * * * * * * * * * * * * * is nothing special * * * * * * * * * * * * * * * * * * * * * * * * lval: %24 = getelementptr %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result", %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"* %p_arg, i32 0, i32 3 * * * * * * * * * * * * * * * * * * * * * * * Casting from 'const(ulong)*' to 'const(void*)' * * * * * * * * * * * * * * * * * * * * * * * * src: %24 = getelementptr %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result", %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"* %p_arg, i32 0, i32 3 * * * * * * * * * * * * * * * * * * * * * * * * to type: i8* * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * lhs: %h = alloca i64, align 8 * * * * * * * * * * * * * * * * * * * rhs: %28 = add i64 %27, %26 * * * * * * * * * * * * * ReturnStatement::toIR(): * * * * * * * * * * * * * * VarExp::toElem: h @ ulong * * * * * * * * * * * * * * * DtoSymbolAddress ('h' of type 'ulong') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * return value is '0x12500a38' * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/iteration.d(3310) * * * * * * CallExp::toElem: Result(null, null, 18446744073709551615LU, 18446744073709551615LU).this(r, s) @ Result * * * * * * * DotVarExp::toElem: Result(null, null, 18446744073709551615LU, 18446744073709551615LU).this @ pure nothrow @nogc ref @safe Result(string input, string separator) * * * * * * * * StructLiteralExp::toElem: Result(null, null, 18446744073709551615LU, 18446744073709551615LU) @ Result * * * * * * * * * initializing field: string _input (+0) * * * * * * * * * * expr 0 = null * * * * * * * * * * NullExp::toElem(type=string): null * * * * * * * * * * * NullExp::toConstElem(type=string): null * * * * * * * * * * Indexing aggregate field std.algorithm.iteration.splitter!("a == b", string, string).splitter.Result._input: * * * * * * * * * * * Value: %1 = getelementptr %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result", %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"* %.structliteral, i32 0, i32 0 * * * * * * * * * * DtoAssign() * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * DtoSetArrayToNull * * * * * * * * * initializing field: string _separator (+16) * * * * * * * * * * expr 1 = null * * * * * * * * * * NullExp::toElem(type=string): null * * * * * * * * * * * NullExp::toConstElem(type=string): null * * * * * * * * * * Indexing aggregate field std.algorithm.iteration.splitter!("a == b", string, string).splitter.Result._separator: * * * * * * * * * * * Value: %2 = getelementptr %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result", %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"* %.structliteral, i32 0, i32 1 * * * * * * * * * * DtoAssign() * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * DtoSetArrayToNull * * * * * * * * * initializing field: ulong _frontLength (+32) * * * * * * * * * * expr 2 = 18446744073709551615LU * * * * * * * * * * IntegerExp::toElem: 18446744073709551615LU @ ulong * * * * * * * * * * * IntegerExp::toConstElem: 18446744073709551615LU @ ulong * * * * * * * * * * * * value = i64 -1 * * * * * * * * * * Indexing aggregate field std.algorithm.iteration.splitter!("a == b", string, string).splitter.Result._frontLength: * * * * * * * * * * * Value: %3 = getelementptr %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result", %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"* %.structliteral, i32 0, i32 2 * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %3 = getelementptr %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result", %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"* %.structliteral, i32 0, i32 2 * * * * * * * * * * * rhs: i64 -1 * * * * * * * * * initializing field: ulong _backLength (+40) * * * * * * * * * * expr 3 = 18446744073709551615LU * * * * * * * * * * IntegerExp::toElem: 18446744073709551615LU @ ulong * * * * * * * * * * * IntegerExp::toConstElem: 18446744073709551615LU @ ulong * * * * * * * * * * * * value = i64 -1 * * * * * * * * * * Indexing aggregate field std.algorithm.iteration.splitter!("a == b", string, string).splitter.Result._backLength: * * * * * * * * * * * Value: %4 = getelementptr %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result", %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"* %.structliteral, i32 0, i32 3 * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %4 = getelementptr %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result", %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"* %.structliteral, i32 0, i32 3 * * * * * * * * * * * rhs: i64 -1 * * * * * * * DtoCallFunction() * * * * * * * * Building type: pure nothrow @nogc ref @safe Result(string input, string separator) * * * * * * * * * DtoFunctionType(pure nothrow @nogc ref @safe Result(string input, string separator)) * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"* ({ i64, i8* }, { i64, i8* }) * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (1) * * * * * * * * * %.structliteral = alloca %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result", align 8 * * * * * * * * Function type: pure nothrow @nogc ref @safe Result(string input, string separator) * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: r @ string * * * * * * * * * * DtoSymbolAddress ('r' of type 'string') * * * * * * * * * * * function param * * * * * * * * * * * type: string * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: s @ string * * * * * * * * * * DtoSymbolAddress ('s' of type 'string') * * * * * * * * * * * function param * * * * * * * * * * * type: string * * * * * * DtoAssign() * TemplateInstance::codegen: 'std.range.retro!string' * * DtoDefineFunction(std.range.retro!string.retro): /usr/include/dlang/ldc/std/range/package.d(182) * * * Doing function body for: retro * * * DtoCreateNestedContext for retro * * * * DtoCreateNestedContextType for std.range.retro!string.retro * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/range/package.d(184) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/range/package.d(192) * * * * * * DeclarationExp::toElem: static template Result() | T=void * * * * * * * DtoDeclarationExp: __anonymous * * * * * * * * AttribDeclaration * * * * * * * * DtoDeclarationExp: Result() * * * * * * * * * Ignoring Symbol: struct * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/range/package.d(289) * * * * * * StructLiteralExp::toElem: Result(r) @ Result!() * * * * * * * initializing field: string source (+0) * * * * * * * * expr 0 = r * * * * * * * * VarExp::toElem: r @ string * * * * * * * * * DtoSymbolAddress ('r' of type 'string') * * * * * * * * * * function param * * * * * * * * * * type: string * * * * * * * * Indexing aggregate field std.range.retro!string.retro.Result!().Result.source: * * * * * * * * * Value: %1 = getelementptr %"std.range.retro!string.retro.Result!().Result", %"std.range.retro!string.retro.Result!().Result"* %.structliteral, i32 0, i32 0 * * * * * * * * DtoAssign() * * * * * * * * * DtoArrayAssign * * * * * * * * * * DtoArrayPtr * * * * * * * * * * DtoArrayLen * * * * * * * * * * SetArray * * * * * * return value is '0x125037d8' * * * * * * Loading value for return * TemplateInstance::codegen: 'std.range.retro!string.retro.Result!()' * * StructDeclaration::codegen: 'std.range.retro!string.retro.Result!().Result' * * * Ignoring Dsymbol::codegen for std.range.retro!string.retro.Result!().Result.R * * * VarDeclaration::codegen(): 'std.range.retro!string.retro.Result!().Result.source' * * * * DtoResolveVariable(std.range.retro!string.retro.Result!().Result.source) * * * Ignoring Dsymbol::codegen for std.range.retro!string.retro.Result!().Result.Source * * * DtoDefineFunction(std.range.retro!string.retro.Result!().Result.empty): /usr/include/dlang/ldc/std/range/package.d(212) * * * * isMember = this is: Result!() * * * * DtoFunctionType(pure nothrow @nogc @property @safe bool()) * * * * * Building type: Result!()* * * * * * x86-64 ABI: Transforming return type * * * * * x86-64 ABI: Transforming argument types * * * * * Final function type: i1 (%"std.range.retro!string.retro.Result!().Result"*) * * * * DtoResolveFunction(std.range.retro!string.retro.Result!().Result.empty): /usr/include/dlang/ldc/std/range/package.d(212) * * * * * DtoDeclareFunction(std.range.retro!string.retro.Result!().Result.empty): /usr/include/dlang/ldc/std/range/package.d(212) * * * * * * isMember = this is: Result!() * * * * * * DtoFunctionType(pure nothrow @nogc @property @safe bool()) * * * * * * func = declare i1 @_D3std5range14__T5retroTAyaZ5retroFAyaZ11__T6ResultZ6Result5emptyMFNaNbNdNiNfZb(%"std.range.retro!string.retro.Result!().Result"*) * * * * Doing function body for: empty * * * * DtoCreateNestedContext for empty * * * * * DtoCreateNestedContextType for std.range.retro!string.retro.Result!().Result.empty * * * * CompoundStatement::toIR(): * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/range/package.d(212) * * * * * * CallExp::toElem: empty(this.source) @ bool * * * * * * * VarExp::toElem: empty @ pure nothrow @nogc @property @safe bool(const(char[]) a) * * * * * * * * DtoSymbolAddress ('empty' of type 'pure nothrow @nogc @property @safe bool(const(char[]) a)') * * * * * * * * * FuncDeclaration * * * * * * * DtoCallFunction() * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (0) * * * * * * * * Function type: pure nothrow @nogc @property @safe bool(const(char[]) a) * * * * * * * * DtoArgument * * * * * * * * * DotVarExp::toElem: this.source @ const(char[]) * * * * * * * * * * ThisExp::toElem: this @ Result!() * * * * * * * * * * * normal this exp * * * * * * * * * * Indexing aggregate field std.range.retro!string.retro.Result!().Result.source: * * * * * * * * * * * Value: %1 = getelementptr %"std.range.retro!string.retro.Result!().Result", %"std.range.retro!string.retro.Result!().Result"* %.this_arg, i32 0, i32 0 * * * * * * return value is '0x125063c0' * * * DtoDefineFunction(std.range.retro!string.retro.Result!().Result.save): /usr/include/dlang/ldc/std/range/package.d(213) * * * * isMember = this is: Result!() * * * * DtoFunctionType(pure nothrow @nogc @property @safe Result!()()) * * * * * x86-64 ABI: Transforming return type * * * * * x86-64 ABI: Transforming argument types * * * * * Final function type: %"std.range.retro!string.retro.Result!().Result" (%"std.range.retro!string.retro.Result!().Result"*) * * * * DtoResolveFunction(std.range.retro!string.retro.Result!().Result.save): /usr/include/dlang/ldc/std/range/package.d(213) * * * * * DtoDeclareFunction(std.range.retro!string.retro.Result!().Result.save): /usr/include/dlang/ldc/std/range/package.d(213) * * * * * * isMember = this is: Result!() * * * * * * DtoFunctionType(pure nothrow @nogc @property @safe Result!()()) * * * * * * func = declare %"std.range.retro!string.retro.Result!().Result" @_D3std5range14__T5retroTAyaZ5retroFAyaZ11__T6ResultZ6Result4saveMFNaNbNdNiNfZS3std5range14__T5retroTAyaZ5retroFAyaZ11__T6ResultZ6Result(%"std.range.retro!string.retro.Result!().Result"*) * * * * Doing function body for: save * * * * DtoCreateNestedContext for save * * * * * DtoCreateNestedContextType for std.range.retro!string.retro.Result!().Result.save * * * * CompoundStatement::toIR(): * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/range/package.d(215) * * * * * * StructLiteralExp::toElem: Result(save(this.source)) @ Result!() * * * * * * * initializing field: string source (+0) * * * * * * * * expr 0 = save(this.source) * * * * * * * * CallExp::toElem: save(this.source) @ string * * * * * * * * * VarExp::toElem: save @ pure nothrow @nogc @property @safe string(string a) * * * * * * * * * * DtoSymbolAddress ('save' of type 'pure nothrow @nogc @property @safe string(string a)') * * * * * * * * * * * FuncDeclaration * * * * * * * * * DtoCallFunction() * * * * * * * * * * doing normal arguments * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * Function type: pure nothrow @nogc @property @safe string(string a) * * * * * * * * * * DtoArgument * * * * * * * * * * * DotVarExp::toElem: this.source @ string * * * * * * * * * * * * ThisExp::toElem: this @ Result!() * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * Indexing aggregate field std.range.retro!string.retro.Result!().Result.source: * * * * * * * * * * * * * Value: %1 = getelementptr %"std.range.retro!string.retro.Result!().Result", %"std.range.retro!string.retro.Result!().Result"* %.this_arg, i32 0, i32 0 * * * * * * * * Indexing aggregate field std.range.retro!string.retro.Result!().Result.source: * * * * * * * * * Value: %4 = getelementptr %"std.range.retro!string.retro.Result!().Result", %"std.range.retro!string.retro.Result!().Result"* %.structliteral, i32 0, i32 0 * * * * * * * * DtoAssign() * * * * * * * * * DtoArrayAssign * * * * * * * * * * DtoArrayPtr * * * * * * * * * * DtoArrayLen * * * * * * * * * * SetArray * * * * * * return value is '0x12507eb8' * * * * * * Loading value for return * * * DtoDefineFunction(std.range.retro!string.retro.Result!().Result.front): /usr/include/dlang/ldc/std/range/package.d(217) * * * * isMember = this is: Result!() * * * * DtoFunctionType(pure @property @safe dchar()) * * * * * x86-64 ABI: Transforming return type * * * * * x86-64 ABI: Transforming argument types * * * * * Final function type: i32 (%"std.range.retro!string.retro.Result!().Result"*) * * * * DtoResolveFunction(std.range.retro!string.retro.Result!().Result.front): /usr/include/dlang/ldc/std/range/package.d(217) * * * * * DtoDeclareFunction(std.range.retro!string.retro.Result!().Result.front): /usr/include/dlang/ldc/std/range/package.d(217) * * * * * * isMember = this is: Result!() * * * * * * DtoFunctionType(pure @property @safe dchar()) * * * * * * func = declare i32 @_D3std5range14__T5retroTAyaZ5retroFAyaZ11__T6ResultZ6Result5frontMFNaNdNfZw(%"std.range.retro!string.retro.Result!().Result"*) * * * * Doing function body for: front * * * * DtoCreateNestedContext for front * * * * * DtoCreateNestedContextType for std.range.retro!string.retro.Result!().Result.front * * * * CompoundStatement::toIR(): * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/range/package.d(217) * * * * * * CallExp::toElem: back(this.source) @ dchar * * * * * * * VarExp::toElem: back @ pure @property @safe dchar(string a) * * * * * * * * DtoSymbolAddress ('back' of type 'pure @property @safe dchar(string a)') * * * * * * * * * FuncDeclaration * * * * * * * DtoCallFunction() * * * * * * * * Building type: pure @property @safe dchar(string a) * * * * * * * * * DtoFunctionType(pure @property @safe dchar(string a)) * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: i32 ({ i64, i8* }) * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (0) * * * * * * * * Function type: pure @property @safe dchar(string a) * * * * * * * * DtoArgument * * * * * * * * * DotVarExp::toElem: this.source @ string * * * * * * * * * * ThisExp::toElem: this @ Result!() * * * * * * * * * * * normal this exp * * * * * * * * * * Indexing aggregate field std.range.retro!string.retro.Result!().Result.source: * * * * * * * * * * * Value: %1 = getelementptr %"std.range.retro!string.retro.Result!().Result", %"std.range.retro!string.retro.Result!().Result"* %.this_arg, i32 0, i32 0 * * * * * * return value is '0x1250ac80' * * * DtoDefineFunction(std.range.retro!string.retro.Result!().Result.popFront): /usr/include/dlang/ldc/std/range/package.d(218) * * * * isMember = this is: Result!() * * * * DtoFunctionType(pure @safe void()) * * * * * x86-64 ABI: Transforming argument types * * * * * Final function type: void (%"std.range.retro!string.retro.Result!().Result"*) * * * * DtoResolveFunction(std.range.retro!string.retro.Result!().Result.popFront): /usr/include/dlang/ldc/std/range/package.d(218) * * * * * DtoDeclareFunction(std.range.retro!string.retro.Result!().Result.popFront): /usr/include/dlang/ldc/std/range/package.d(218) * * * * * * isMember = this is: Result!() * * * * * * DtoFunctionType(pure @safe void()) * * * * * * func = declare void @_D3std5range14__T5retroTAyaZ5retroFAyaZ11__T6ResultZ6Result8popFrontMFNaNfZv(%"std.range.retro!string.retro.Result!().Result"*) * * * * Doing function body for: popFront * * * * DtoCreateNestedContext for popFront * * * * * DtoCreateNestedContextType for std.range.retro!string.retro.Result!().Result.popFront * * * * CompoundStatement::toIR(): * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/range/package.d(218) * * * * * * CallExp::toElem: popBack(this.source) @ void * * * * * * * VarExp::toElem: popBack @ pure @safe void(ref string a) * * * * * * * * DtoSymbolAddress ('popBack' of type 'pure @safe void(ref string a)') * * * * * * * * * FuncDeclaration * * * * * * * DtoCallFunction() * * * * * * * * Building type: pure @safe void(ref string a) * * * * * * * * * DtoFunctionType(pure @safe void(ref string a)) * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: void ({ i64, i8* }*) * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (0) * * * * * * * * Function type: pure @safe void(ref string a) * * * * * * * * DtoArgument * * * * * * * * * DotVarExp::toElem: this.source @ string * * * * * * * * * * ThisExp::toElem: this @ Result!() * * * * * * * * * * * normal this exp * * * * * * * * * * Indexing aggregate field std.range.retro!string.retro.Result!().Result.source: * * * * * * * * * * * Value: %1 = getelementptr %"std.range.retro!string.retro.Result!().Result", %"std.range.retro!string.retro.Result!().Result"* %.this_arg, i32 0, i32 0 * * * DtoDefineFunction(std.range.retro!string.retro.Result!().Result.back): /usr/include/dlang/ldc/std/range/package.d(219) * * * * isMember = this is: Result!() * * * * DtoFunctionType(pure @property @safe dchar()) * * * * * x86-64 ABI: Transforming return type * * * * * x86-64 ABI: Transforming argument types * * * * * Final function type: i32 (%"std.range.retro!string.retro.Result!().Result"*) * * * * DtoResolveFunction(std.range.retro!string.retro.Result!().Result.back): /usr/include/dlang/ldc/std/range/package.d(219) * * * * * DtoDeclareFunction(std.range.retro!string.retro.Result!().Result.back): /usr/include/dlang/ldc/std/range/package.d(219) * * * * * * isMember = this is: Result!() * * * * * * DtoFunctionType(pure @property @safe dchar()) * * * * * * func = declare i32 @_D3std5range14__T5retroTAyaZ5retroFAyaZ11__T6ResultZ6Result4backMFNaNdNfZw(%"std.range.retro!string.retro.Result!().Result"*) * * * * Doing function body for: back * * * * DtoCreateNestedContext for back * * * * * DtoCreateNestedContextType for std.range.retro!string.retro.Result!().Result.back * * * * CompoundStatement::toIR(): * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/range/package.d(219) * * * * * * CallExp::toElem: front(this.source) @ dchar * * * * * * * VarExp::toElem: front @ pure @property @safe dchar(string a) * * * * * * * * DtoSymbolAddress ('front' of type 'pure @property @safe dchar(string a)') * * * * * * * * * FuncDeclaration * * * * * * * DtoCallFunction() * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (0) * * * * * * * * Function type: pure @property @safe dchar(string a) * * * * * * * * DtoArgument * * * * * * * * * DotVarExp::toElem: this.source @ string * * * * * * * * * * ThisExp::toElem: this @ Result!() * * * * * * * * * * * normal this exp * * * * * * * * * * Indexing aggregate field std.range.retro!string.retro.Result!().Result.source: * * * * * * * * * * * Value: %1 = getelementptr %"std.range.retro!string.retro.Result!().Result", %"std.range.retro!string.retro.Result!().Result"* %.this_arg, i32 0, i32 0 * * * * * * return value is '0x1250e270' * * * DtoDefineFunction(std.range.retro!string.retro.Result!().Result.popBack): /usr/include/dlang/ldc/std/range/package.d(220) * * * * isMember = this is: Result!() * * * * DtoFunctionType(pure nothrow @nogc @safe void()) * * * * * x86-64 ABI: Transforming argument types * * * * * Final function type: void (%"std.range.retro!string.retro.Result!().Result"*) * * * * DtoResolveFunction(std.range.retro!string.retro.Result!().Result.popBack): /usr/include/dlang/ldc/std/range/package.d(220) * * * * * DtoDeclareFunction(std.range.retro!string.retro.Result!().Result.popBack): /usr/include/dlang/ldc/std/range/package.d(220) * * * * * * isMember = this is: Result!() * * * * * * DtoFunctionType(pure nothrow @nogc @safe void()) * * * * * * func = declare void @_D3std5range14__T5retroTAyaZ5retroFAyaZ11__T6ResultZ6Result7popBackMFNaNbNiNfZv(%"std.range.retro!string.retro.Result!().Result"*) * * * * Doing function body for: popBack * * * * DtoCreateNestedContext for popBack * * * * * DtoCreateNestedContextType for std.range.retro!string.retro.Result!().Result.popBack * * * * CompoundStatement::toIR(): * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/range/package.d(220) * * * * * * CallExp::toElem: popFront(this.source) @ void * * * * * * * VarExp::toElem: popFront @ pure nothrow @nogc @trusted void(ref string str) * * * * * * * * DtoSymbolAddress ('popFront' of type 'pure nothrow @nogc @trusted void(ref string str)') * * * * * * * * * FuncDeclaration * * * * * * * DtoCallFunction() * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (0) * * * * * * * * Function type: pure nothrow @nogc @trusted void(ref string str) * * * * * * * * DtoArgument * * * * * * * * * DotVarExp::toElem: this.source @ string * * * * * * * * * * ThisExp::toElem: this @ Result!() * * * * * * * * * * * normal this exp * * * * * * * * * * Indexing aggregate field std.range.retro!string.retro.Result!().Result.source: * * * * * * * * * * * Value: %1 = getelementptr %"std.range.retro!string.retro.Result!().Result", %"std.range.retro!string.retro.Result!().Result"* %.this_arg, i32 0, i32 0 * * * DtoDefineFunction(std.range.retro!string.retro.Result!().Result.moveFront): /usr/include/dlang/ldc/std/range/package.d(224) * * * * isMember = this is: Result!() * * * * DtoFunctionType(pure @safe dchar()) * * * * * x86-64 ABI: Transforming return type * * * * * x86-64 ABI: Transforming argument types * * * * * Final function type: i32 (%"std.range.retro!string.retro.Result!().Result"*) * * * * DtoResolveFunction(std.range.retro!string.retro.Result!().Result.moveFront): /usr/include/dlang/ldc/std/range/package.d(224) * * * * * DtoDeclareFunction(std.range.retro!string.retro.Result!().Result.moveFront): /usr/include/dlang/ldc/std/range/package.d(224) * * * * * * isMember = this is: Result!() * * * * * * DtoFunctionType(pure @safe dchar()) * * * * * * func = declare i32 @_D3std5range14__T5retroTAyaZ5retroFAyaZ11__T6ResultZ6Result9moveFrontMFNaNfZw(%"std.range.retro!string.retro.Result!().Result"*) * * * * Doing function body for: moveFront * * * * DtoCreateNestedContext for moveFront * * * * * DtoCreateNestedContextType for std.range.retro!string.retro.Result!().Result.moveFront * * * * CompoundStatement::toIR(): * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/range/package.d(226) * * * * * * CallExp::toElem: moveBack(this.source) @ dchar * * * * * * * VarExp::toElem: moveBack @ pure @safe dchar(string r) * * * * * * * * DtoSymbolAddress ('moveBack' of type 'pure @safe dchar(string r)') * * * * * * * * * FuncDeclaration * * * * * * * * * DtoFunctionType(pure @safe dchar(string r)) * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: i32 ({ i64, i8* }) * * * * * * * * * DtoResolveFunction(std.range.primitives.moveBack!string.moveBack): /usr/include/dlang/ldc/std/range/primitives.d(1861) * * * * * * * * * * DtoDeclareFunction(std.range.primitives.moveBack!string.moveBack): /usr/include/dlang/ldc/std/range/primitives.d(1861) * * * * * * * * * * * DtoFunctionType(pure @safe dchar(string r)) * * * * * * * * * * * func = declare i32 @_D3std5range10primitives17__T8moveBackTAyaZ8moveBackFNaNfAyaZw({ i64, i8* }) * * * * * * * DtoCallFunction() * * * * * * * * Building type: pure @safe dchar(string r) * * * * * * * * * DtoFunctionType(pure @safe dchar(string r)) * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: i32 ({ i64, i8* }) * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (0) * * * * * * * * Function type: pure @safe dchar(string r) * * * * * * * * DtoArgument * * * * * * * * * DotVarExp::toElem: this.source @ string * * * * * * * * * * ThisExp::toElem: this @ Result!() * * * * * * * * * * * normal this exp * * * * * * * * * * Indexing aggregate field std.range.retro!string.retro.Result!().Result.source: * * * * * * * * * * * Value: %1 = getelementptr %"std.range.retro!string.retro.Result!().Result", %"std.range.retro!string.retro.Result!().Result"* %.this_arg, i32 0, i32 0 * * * * * * return value is '0x125129f0' * * * DtoDefineFunction(std.range.retro!string.retro.Result!().Result.moveBack): /usr/include/dlang/ldc/std/range/package.d(232) * * * * isMember = this is: Result!() * * * * DtoFunctionType(pure @safe dchar()) * * * * * x86-64 ABI: Transforming return type * * * * * x86-64 ABI: Transforming argument types * * * * * Final function type: i32 (%"std.range.retro!string.retro.Result!().Result"*) * * * * DtoResolveFunction(std.range.retro!string.retro.Result!().Result.moveBack): /usr/include/dlang/ldc/std/range/package.d(232) * * * * * DtoDeclareFunction(std.range.retro!string.retro.Result!().Result.moveBack): /usr/include/dlang/ldc/std/range/package.d(232) * * * * * * isMember = this is: Result!() * * * * * * DtoFunctionType(pure @safe dchar()) * * * * * * func = declare i32 @_D3std5range14__T5retroTAyaZ5retroFAyaZ11__T6ResultZ6Result8moveBackMFNaNfZw(%"std.range.retro!string.retro.Result!().Result"*) * * * * Doing function body for: moveBack * * * * DtoCreateNestedContext for moveBack * * * * * DtoCreateNestedContextType for std.range.retro!string.retro.Result!().Result.moveBack * * * * CompoundStatement::toIR(): * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/range/package.d(234) * * * * * * CallExp::toElem: moveFront(this.source) @ dchar * * * * * * * VarExp::toElem: moveFront @ pure @safe dchar(string r) * * * * * * * * DtoSymbolAddress ('moveFront' of type 'pure @safe dchar(string r)') * * * * * * * * * FuncDeclaration * * * * * * * * * DtoFunctionType(pure @safe dchar(string r)) * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: i32 ({ i64, i8* }) * * * * * * * * * DtoResolveFunction(std.range.primitives.moveFront!string.moveFront): /usr/include/dlang/ldc/std/range/primitives.d(1812) * * * * * * * * * * DtoDeclareFunction(std.range.primitives.moveFront!string.moveFront): /usr/include/dlang/ldc/std/range/primitives.d(1812) * * * * * * * * * * * DtoFunctionType(pure @safe dchar(string r)) * * * * * * * * * * * func = declare i32 @_D3std5range10primitives18__T9moveFrontTAyaZ9moveFrontFNaNfAyaZw({ i64, i8* }) * * * * * * * DtoCallFunction() * * * * * * * * Building type: pure @safe dchar(string r) * * * * * * * * * DtoFunctionType(pure @safe dchar(string r)) * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: i32 ({ i64, i8* }) * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (0) * * * * * * * * Function type: pure @safe dchar(string r) * * * * * * * * DtoArgument * * * * * * * * * DotVarExp::toElem: this.source @ string * * * * * * * * * * ThisExp::toElem: this @ Result!() * * * * * * * * * * * normal this exp * * * * * * * * * * Indexing aggregate field std.range.retro!string.retro.Result!().Result.source: * * * * * * * * * * * Value: %1 = getelementptr %"std.range.retro!string.retro.Result!().Result", %"std.range.retro!string.retro.Result!().Result"* %.this_arg, i32 0, i32 0 * * * * * * return value is '0x12515870' * * * Building default initializer for std.range.retro!string.retro.Result!().Result * * * * Creating initializer constant for Result * * * * * Implicit initializer: source @+0 * * * * * * DtoConstExpInit(targetType = string, exp = null) * * * * * * * NullExp::toConstElem(type=string): null * * * * * adding field source * * * * * final initializer: %"std.range.retro!string.retro.Result!().Result_init" zeroinitializer * * * DtoTypeInfoOf(type = 'Result!()', base='1') * * * * Type::getTypeInfo(): Result!() * * * * * TypeInfoDeclaration::codegen(typeid(Result!())) * * * * * * type = 'Result!()' * * * * * * typeinfo mangle: _D67TypeInfo_S3std5range14__T5retroTAyaZ5retroFAyaZ11__T6ResultZ6Result6__initZ * * * * * * TypeInfoStructDeclaration::llvmDefine() typeid(Result!()) * * * * * * * DtoFunctionType(nothrow @trusted ulong(ref const(Result!()) p)) * * * * * * * * Building type: const(Result!())* * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * Final function type: i64 (%"std.range.retro!string.retro.Result!().Result"*) * * * * * * * DtoResolveFunction(std.range.retro!string.retro.Result!().Result.__xtoHash): * * * * * * * * DtoDeclareFunction(std.range.retro!string.retro.Result!().Result.__xtoHash): * * * * * * * * * DtoFunctionType(nothrow @trusted ulong(ref const(Result!()) p)) * * * * * * * * * func = declare i64 @_D3std5range14__T5retroTAyaZ5retroFAyaZ11__T6ResultZ6Result9__xtoHashFNbNeKxS3std5range14__T5retroTAyaZ5retroFAyaZ11__T6ResultZ6ResultZm(%"std.range.retro!string.retro.Result!().Result"*) * * * * * * * DtoFunctionType(bool(ref const(Result!()) p, ref const(Result!()) q)) * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * Final function type: i1 (%"std.range.retro!string.retro.Result!().Result"*, %"std.range.retro!string.retro.Result!().Result"*) * * * * * * * DtoResolveFunction(std.range.retro!string.retro.Result!().Result.__xopEquals): * * * * * * * * DtoDeclareFunction(std.range.retro!string.retro.Result!().Result.__xopEquals): * * * * * * * * * DtoFunctionType(bool(ref const(Result!()) p, ref const(Result!()) q)) * * * * * * * * * func = declare i1 @_D3std5range14__T5retroTAyaZ5retroFAyaZ11__T6ResultZ6Result11__xopEqualsFKxS3std5range14__T5retroTAyaZ5retroFAyaZ11__T6ResultZ6ResultKxS3std5range14__T5retroTAyaZ5retroFAyaZ11__T6ResultZ6ResultZb(%"std.range.retro!string.retro.Result!().Result"*, %"std.range.retro!string.retro.Result!().Result"*) * * * * * * * DtoTypeInfoOf(type = 'ulong', base='1') * * * * * * * * Type::getTypeInfo(): ulong * * * * * * * * TypeInfoDeclaration::codegen(typeid(ulong)) * * * * * * * DtoTypeInfoOf(type = 'void*', base='1') * * * * * * * * Type::getTypeInfo(): void* * * * * * * * * TypeInfoDeclaration::codegen(typeid(void*)) * * * * * * * IntegerExp::toConstElem: cast(void*)305419896LU @ void* * * * * * * * * pointer * * * * TypeInfoDeclaration::codegen(typeid(Result!())) * * * DtoDefineFunction(std.range.retro!string.retro.Result!().Result.__xopEquals): * * * * Doing function body for: __xopEquals * * * * DtoCreateNestedContext for __xopEquals * * * * * DtoCreateNestedContextType for std.range.retro!string.retro.Result!().Result.__xopEquals * * * * CompoundStatement::toIR(): * * * * * ReturnStatement::toIR(): * * * * * * EqualExp::toElem: p.source == q.source @ bool * * * * * * * DotVarExp::toElem: p.source @ const(string) * * * * * * * * VarExp::toElem: p @ const(Result!()) * * * * * * * * * DtoSymbolAddress ('p' of type 'const(Result!())') * * * * * * * * * * function param * * * * * * * * * * type: const(Result!()) * * * * * * * * Indexing aggregate field std.range.retro!string.retro.Result!().Result.source: * * * * * * * * * Value: %1 = getelementptr %"std.range.retro!string.retro.Result!().Result", %"std.range.retro!string.retro.Result!().Result"* %p_arg, i32 0, i32 0 * * * * * * * DotVarExp::toElem: q.source @ const(string) * * * * * * * * VarExp::toElem: q @ const(Result!()) * * * * * * * * * DtoSymbolAddress ('q' of type 'const(Result!())') * * * * * * * * * * function param * * * * * * * * * * type: const(Result!()) * * * * * * * * Indexing aggregate field std.range.retro!string.retro.Result!().Result.source: * * * * * * * * * Value: %2 = getelementptr %"std.range.retro!string.retro.Result!().Result", %"std.range.retro!string.retro.Result!().Result"* %q_arg, i32 0, i32 0 * * * * * * * static or dynamic array * * * * * * * comparing arrays * * * * * * * casting to dynamic arrays * * * * * * * DtoCastArray * * * * * * * * from array or sarray * * * * * * * * to array * * * * * * * * DtoArrayLen * * * * * * * * DtoArrayPtr * * * * * * * * isslice * * * * * * * DtoCastArray * * * * * * * * from array or sarray * * * * * * * * to array * * * * * * * * DtoArrayLen * * * * * * * * DtoArrayPtr * * * * * * * * isslice * * * * * * * DtoTypeInfoOf(type = 'string', base='1') * * * * * * * * Type::getTypeInfo(): string * * * * * * * * TypeInfoDeclaration::codegen(typeid(string)) * * * * * * return value is '0x1251c2f0' * * * DtoDefineFunction(std.range.retro!string.retro.Result!().Result.__xtoHash): * * * * Doing function body for: __xtoHash * * * * DtoCreateNestedContext for __xtoHash * * * * * DtoCreateNestedContextType for std.range.retro!string.retro.Result!().Result.__xtoHash * * * * CompoundStatement::toIR(): * * * * * CompoundStatement::toIR(): * * * * * * ExpStatement::toIR(): * * * * * * * DeclarationExp::toElem: ulong h = 0LU; | T=void * * * * * * * * DtoDeclarationExp: h * * * * * * * * * VarDeclaration * * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * * llvm value for decl: %h = alloca i64, align 8 * * * * * * * * * * expression initializer * * * * * * * * * * AssignExp::toElem: h = 0LU | (ulong)(ulong = ulong) * * * * * * * * * * * VarExp::toElem: h @ ulong * * * * * * * * * * * * DtoSymbolAddress ('h' of type 'ulong') * * * * * * * * * * * * * a normal variable * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * lhs: %h = alloca i64, align 8 * * * * * * * * * * * * rhs: i64 0 * * * * * * UnrolledLoopStatement::toIR(): * * * * * * * ScopeStatement::toIR(): * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * ExpStatement::toIR(): * * * * * * * * * * DeclarationExp::toElem: enum ulong i = 0LU; | T=void * * * * * * * * * * * DtoDeclarationExp: i * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * Manifest constant, nothing to do. * * * * * * * * * ExpStatement::toIR(): * * * * * * * * * * DeclarationExp::toElem: alias T = const(string); | T=void * * * * * * * * * * * DtoDeclarationExp: T * * * * * * * * * * * * Ignoring Symbol: alias * * * * * * * * * ExpStatement::toIR(): * * * * * * * * * * AddAssignExp::toElem: h += typeid(const(string)).getHash(cast(const(void*))&p.source) @ ulong * * * * * * * * * * * Caching l-value of h += typeid(const(string)).getHash(cast(const(void*))&p.source) => h * * * * * * * * * * * * VarExp::toElem: h @ ulong * * * * * * * * * * * * * DtoSymbolAddress ('h' of type 'ulong') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * AddExp::toElem: h + typeid(const(string)).getHash(cast(const(void*))&p.source) @ ulong * * * * * * * * * * * * VarExp::toElem: h @ ulong * * * * * * * * * * * * CallExp::toElem: typeid(const(string)).getHash(cast(const(void*))&p.source) @ ulong * * * * * * * * * * * * * DotVarExp::toElem: typeid(const(string)).getHash @ const nothrow @trusted ulong(const(void*) p) * * * * * * * * * * * * * * SymOffExp::toElem: typeid(const(string)) @ object.TypeInfo * * * * * * * * * * * * * * * DtoSymbolAddress ('typeid(const(string))' of type 'object.TypeInfo_Const') * * * * * * * * * * * * * * * * TypeInfoDeclaration * * * * * * * * * * * * * * * Casting from 'TypeInfo_Const*' to 'object.TypeInfo' * * * * * * * * * * * * * * * * src: %object.TypeInfo_Const* bitcast (%"typeid(const(string))"* @_D13TypeInfo_xAya6__initZ to %object.TypeInfo_Const*) * * * * * * * * * * * * * * * * to type: %object.TypeInfo* * * * * * * * * * * * * * * vthis: %object.TypeInfo* bitcast (%"typeid(const(string))"* @_D13TypeInfo_xAya6__initZ to %object.TypeInfo*) * * * * * * * * * * * * * * funcval: %3 = load i64 (%object.TypeInfo*, i8*)*, i64 (%object.TypeInfo*, i8*)** %"typeid(const(string)).getHash@vtbl", align 8 * * * * * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * * * * * DtoFunctionType(const nothrow @trusted ulong(const(void*) p)) * * * * * * * * * * * * * * funcval casted: %"typeid(const(string)).getHash" = load i64 (%object.TypeInfo*, i8*)*, i64 (%object.TypeInfo*, i8*)** %"typeid(const(string)).getHash@vtbl", align 8 * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * %object.TypeInfo* bitcast (%"typeid(const(string))"* @_D13TypeInfo_xAya6__initZ to %object.TypeInfo*) * * * * * * * * * * * * * * Function type: const nothrow @trusted ulong(const(void*) p) * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * CastExp::toElem: cast(const(void*))&p.source @ const(void*) * * * * * * * * * * * * * * * * AddrExp::toElem: &p.source @ const(string)* * * * * * * * * * * * * * * * * * DotVarExp::toElem: p.source @ const(string) * * * * * * * * * * * * * * * * * * VarExp::toElem: p @ const(Result!()) * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('p' of type 'const(Result!())') * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * type: const(Result!()) * * * * * * * * * * * * * * * * * * Indexing aggregate field std.range.retro!string.retro.Result!().Result.source: * * * * * * * * * * * * * * * * * * * Value: %3 = getelementptr %"std.range.retro!string.retro.Result!().Result", %"std.range.retro!string.retro.Result!().Result"* %p_arg, i32 0, i32 0 * * * * * * * * * * * * * * * * * is nothing special * * * * * * * * * * * * * * * * * lval: %3 = getelementptr %"std.range.retro!string.retro.Result!().Result", %"std.range.retro!string.retro.Result!().Result"* %p_arg, i32 0, i32 0 * * * * * * * * * * * * * * * * Casting from 'const(string)*' to 'const(void*)' * * * * * * * * * * * * * * * * * src: %3 = getelementptr %"std.range.retro!string.retro.Result!().Result", %"std.range.retro!string.retro.Result!().Result"* %p_arg, i32 0, i32 0 * * * * * * * * * * * * * * * * * to type: i8* * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * lhs: %h = alloca i64, align 8 * * * * * * * * * * * * rhs: %7 = add i64 %6, %5 * * * * * * ReturnStatement::toIR(): * * * * * * * VarExp::toElem: h @ ulong * * * * * * * * DtoSymbolAddress ('h' of type 'ulong') * * * * * * * * * a normal variable * * * * * * * return value is '0x1251efa8' * TemplateInstance::codegen: 'std.range.primitives.moveBack!string' * * DtoDefineFunction(std.range.primitives.moveBack!string.moveBack): /usr/include/dlang/ldc/std/range/primitives.d(1861) * * * Doing function body for: moveBack * * * DtoCreateNestedContext for moveBack * * * * DtoCreateNestedContextType for std.range.primitives.moveBack!string.moveBack * * * CompoundStatement::toIR(): * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/range/primitives.d(1866) * * * * * CallExp::toElem: back(r) @ dchar * * * * * * VarExp::toElem: back @ pure @property @safe dchar(string a) * * * * * * * DtoSymbolAddress ('back' of type 'pure @property @safe dchar(string a)') * * * * * * * * FuncDeclaration * * * * * * DtoCallFunction() * * * * * * * doing normal arguments * * * * * * * Arguments so far: (0) * * * * * * * Function type: pure @property @safe dchar(string a) * * * * * * * DtoArgument * * * * * * * * VarExp::toElem: r @ string * * * * * * * * * DtoSymbolAddress ('r' of type 'string') * * * * * * * * * * function param * * * * * * * * * * type: string * * * * * return value is '0x1251fa10' * TemplateInstance::codegen: 'std.traits.hasElaborateCopyConstructor!dchar' * * VarDeclaration::codegen(): 'std.traits.hasElaborateCopyConstructor!dchar.hasElaborateCopyConstructor' * * * DtoResolveVariable(std.traits.hasElaborateCopyConstructor!dchar.hasElaborateCopyConstructor) * TemplateInstance::codegen: 'std.range.primitives.moveFront!string' * * DtoDefineFunction(std.range.primitives.moveFront!string.moveFront): /usr/include/dlang/ldc/std/range/primitives.d(1812) * * * Doing function body for: moveFront * * * DtoCreateNestedContext for moveFront * * * * DtoCreateNestedContextType for std.range.primitives.moveFront!string.moveFront * * * CompoundStatement::toIR(): * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/range/primitives.d(1817) * * * * * CallExp::toElem: front(r) @ dchar * * * * * * VarExp::toElem: front @ pure @property @safe dchar(string a) * * * * * * * DtoSymbolAddress ('front' of type 'pure @property @safe dchar(string a)') * * * * * * * * FuncDeclaration * * * * * * DtoCallFunction() * * * * * * * doing normal arguments * * * * * * * Arguments so far: (0) * * * * * * * Function type: pure @property @safe dchar(string a) * * * * * * * DtoArgument * * * * * * * * VarExp::toElem: r @ string * * * * * * * * * DtoSymbolAddress ('r' of type 'string') * * * * * * * * * * function param * * * * * * * * * * type: string * * * * * return value is '0x12520920' * TemplateInstance::codegen: 'std.range.primitives.hasAssignableElements!string' * * VarDeclaration::codegen(): 'std.range.primitives.hasAssignableElements!string.hasAssignableElements' * * * DtoResolveVariable(std.range.primitives.hasAssignableElements!string.hasAssignableElements) * TemplateInstance::codegen: 'object.RTInfo!(Result!())' * * VarDeclaration::codegen(): 'object.RTInfo!(Result!()).RTInfo' * * * DtoResolveVariable(object.RTInfo!(Result!()).RTInfo) * TemplateInstance::codegen: 'std.range.primitives.isInputRange!(Result!())' * TemplateInstance::codegen: 'std.functional.binaryFun!("a == b", "a", "b").binaryFun!(dchar, Result!())' * TemplateInstance::codegen: 'std.range.primitives.isForwardRange!(Result!())' * TemplateInstance::codegen: 'std.range.primitives.isRandomAccessRange!(Result!())' * TemplateInstance::codegen: 'std.range.primitives.isBidirectionalRange!(Result!())' * TemplateInstance::codegen: 'std.traits.isNarrowString!(Result!())' * * VarDeclaration::codegen(): 'std.traits.isNarrowString!(Result!()).isNarrowString' * * * DtoResolveVariable(std.traits.isNarrowString!(Result!()).isNarrowString) * TemplateInstance::codegen: 'std.traits.isAggregateType!(Result!())' * * VarDeclaration::codegen(): 'std.traits.isAggregateType!(Result!()).isAggregateType' * * * DtoResolveVariable(std.traits.isAggregateType!(Result!()).isAggregateType) * TemplateInstance::codegen: 'std.traits.isStaticArray!(Result!())' * * VarDeclaration::codegen(): 'std.traits.isStaticArray!(Result!()).isStaticArray' * * * DtoResolveVariable(std.traits.isStaticArray!(Result!()).isStaticArray) * TemplateInstance::codegen: 'std.traits.OriginalType!(Result!())' * TemplateInstance::codegen: 'std.traits.ModifyTypePreservingSTC!(Impl, Result!())' * TemplateInstance::codegen: 'std.traits.OriginalType!(Result!()).Modifier!(Result!())' * TemplateInstance::codegen: 'std.range.primitives.hasLength!(Result!())' * * VarDeclaration::codegen(): 'std.range.primitives.hasLength!(Result!()).hasLength' * * * DtoResolveVariable(std.range.primitives.hasLength!(Result!()).hasLength) * TemplateInstance::codegen: 'std.range.primitives.isInfinite!(Result!())' * TemplateInstance::codegen: 'std.algorithm.searching.find!("a == b", Result!(), Result!())' * * DtoDefineFunction(std.algorithm.searching.find!("a == b", Result!(), Result!()).find): /usr/include/dlang/ldc/std/algorithm/searching.d(1557) * * * Doing function body for: find * * * DtoCreateNestedContext for find * * * * DtoCreateNestedContextType for std.algorithm.searching.find!("a == b", Result!(), Result!()).find * * * CompoundStatement::toIR(): * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/searching.d(1577) * * * * * CallExp::toElem: simpleMindedFind(haystack, needle) @ Result!() * * * * * * VarExp::toElem: simpleMindedFind @ pure @safe Result!()(Result!() haystack, Result!() needle) * * * * * * * DtoSymbolAddress ('simpleMindedFind' of type 'pure @safe Result!()(Result!() haystack, Result!() needle)') * * * * * * * * FuncDeclaration * * * * * * * * DtoFunctionType(pure @safe Result!()(Result!() haystack, Result!() needle)) * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * Final function type: %"std.range.retro!string.retro.Result!().Result" (%"std.range.retro!string.retro.Result!().Result", %"std.range.retro!string.retro.Result!().Result") * * * * * * * * DtoResolveFunction(std.algorithm.searching.simpleMindedFind!("a == b", Result!(), Result!()).simpleMindedFind): /usr/include/dlang/ldc/std/algorithm/searching.d(1778) * * * * * * * * * DtoDeclareFunction(std.algorithm.searching.simpleMindedFind!("a == b", Result!(), Result!()).simpleMindedFind): /usr/include/dlang/ldc/std/algorithm/searching.d(1778) * * * * * * * * * * DtoFunctionType(pure @safe Result!()(Result!() haystack, Result!() needle)) * * * * * * * * * * func = declare %"std.range.retro!string.retro.Result!().Result" @_D3std9algorithm9searching159__T16simpleMindedFindVAyaa6_61203d3d2062TS3std5range14__T5retroTAyaZ5retroFAyaZ11__T6ResultZ6ResultTS3std5range14__T5retroTAyaZ5retroFAyaZ11__T6ResultZ6ResultZ16simpleMindedFindFNaNfS3std5range14__T5retroTAyaZ5retroFAyaZ11__T6ResultZ6ResultS3std5range14__T5retroTAyaZ5retroFAyaZ11__T6ResultZ6ResultZS3std5range14__T5retroTAyaZ5retroFAyaZ11__T6ResultZ6Result(%"std.range.retro!string.retro.Result!().Result", %"std.range.retro!string.retro.Result!().Result") * * * * * * DtoCallFunction() * * * * * * * Building type: pure @safe Result!()(Result!() haystack, Result!() needle) * * * * * * * * DtoFunctionType(pure @safe Result!()(Result!() haystack, Result!() needle)) * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * Final function type: %"std.range.retro!string.retro.Result!().Result" (%"std.range.retro!string.retro.Result!().Result", %"std.range.retro!string.retro.Result!().Result") * * * * * * * doing normal arguments * * * * * * * Arguments so far: (0) * * * * * * * Function type: pure @safe Result!()(Result!() haystack, Result!() needle) * * * * * * * DtoArgument * * * * * * * * VarExp::toElem: haystack @ Result!() * * * * * * * * * DtoSymbolAddress ('haystack' of type 'Result!()') * * * * * * * * * * function param * * * * * * * * * * type: Result!() * * * * * * * DtoArgument * * * * * * * * VarExp::toElem: needle @ Result!() * * * * * * * * * DtoSymbolAddress ('needle' of type 'Result!()') * * * * * * * * * * function param * * * * * * * * * * type: Result!() * * * * * * * Loading struct type for function argument * * * * * * * Loading struct type for function argument * * * * * * * Storing return value to stack slot * * * * * return value is '0x125270d8' * * * * * Loading value for return * TemplateInstance::codegen: 'std.traits.isSomeString!(Result!())' * * VarDeclaration::codegen(): 'std.traits.isSomeString!(Result!()).isSomeString' * * * DtoResolveVariable(std.traits.isSomeString!(Result!()).isSomeString) * TemplateInstance::codegen: 'std.algorithm.searching.simpleMindedFind!("a == b", Result!(), Result!())' * * DtoDefineFunction(std.algorithm.searching.simpleMindedFind!("a == b", Result!(), Result!()).simpleMindedFind): /usr/include/dlang/ldc/std/algorithm/searching.d(1778) * * * Doing function body for: simpleMindedFind * * * DtoCreateNestedContext for simpleMindedFind * * * * DtoCreateNestedContextType for std.algorithm.searching.simpleMindedFind!("a == b", Result!(), Result!()).simpleMindedFind * * * * * has nested frame * * * * * Function simpleMindedFind has depth 0 * * * * * Nested var 'haystack' of type %"std.range.retro!string.retro.Result!().Result" = type { { i64, i8* } } * * * * * frameType = %nest.simpleMindedFind = type { %"std.range.retro!string.retro.Result!().Result" } * * * * nested param: haystack * * * * * Copying to nested frame * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/searching.d(1779) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/searching.d(1780) * * * * * * DeclarationExp::toElem: enum bool estimateNeedleLength = false; | T=void * * * * * * * DtoDeclarationExp: estimateNeedleLength * * * * * * * * VarDeclaration * * * * * * * * Manifest constant, nothing to do. * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/searching.d(1790) * * * * * * DeclarationExp::toElem: pure nothrow @nogc @safe bool haystackTooShort() { return haystack.empty(); } | T=void * * * * * * * DtoDeclarationExp: haystackTooShort * * * * * * * * FuncDeclaration * * * * * * * * DtoDefineFunction(std.algorithm.searching.simpleMindedFind!("a == b", Result!(), Result!()).simpleMindedFind.haystackTooShort): /usr/include/dlang/ldc/std/algorithm/searching.d(1790) * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe bool()) * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: i1 (i8*) * * * * * * * * * DtoResolveFunction(std.algorithm.searching.simpleMindedFind!("a == b", Result!(), Result!()).simpleMindedFind.haystackTooShort): /usr/include/dlang/ldc/std/algorithm/searching.d(1790) * * * * * * * * * * DtoDeclareFunction(std.algorithm.searching.simpleMindedFind!("a == b", Result!(), Result!()).simpleMindedFind.haystackTooShort): /usr/include/dlang/ldc/std/algorithm/searching.d(1790) * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe bool()) * * * * * * * * * * * func = declare i1 @_D3std9algorithm9searching159__T16simpleMindedFindVAyaa6_61203d3d2062TS3std5range14__T5retroTAyaZ5retroFAyaZ11__T6ResultZ6ResultTS3std5range14__T5retroTAyaZ5retroFAyaZ11__T6ResultZ6ResultZ16simpleMindedFindFS3std5range14__T5retroTAyaZ5retroFAyaZ11__T6ResultZ6ResultS3std5range14__T5retroTAyaZ5retroFAyaZ11__T6ResultZ6ResultZ16haystackTooShortMFNaNbNiNfZb(i8*) * * * * * * * * * Doing function body for: haystackTooShort * * * * * * * * * DtoCreateNestedContext for haystackTooShort * * * * * * * * * * DtoCreateNestedContextType for std.algorithm.searching.simpleMindedFind!("a == b", Result!(), Result!()).simpleMindedFind.haystackTooShort * * * * * * * * * * * DtoCreateNestedContextType for std.algorithm.searching.simpleMindedFind!("a == b", Result!(), Result!()).simpleMindedFind * * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/searching.d(1798) * * * * * * * * * * * CallExp::toElem: haystack.empty() @ bool * * * * * * * * * * * * DotVarExp::toElem: haystack.empty @ pure nothrow @nogc @property @safe bool() * * * * * * * * * * * * * VarExp::toElem: haystack @ Result!() * * * * * * * * * * * * * * DtoSymbolAddress ('haystack' of type 'Result!()') * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * DtoNestedVariable for haystack @ /usr/include/dlang/ldc/std/algorithm/searching.d(1798) * * * * * * * * * * * * * * * * DtoCreateNestedContextType for std.algorithm.searching.simpleMindedFind!("a == b", Result!(), Result!()).simpleMindedFind * * * * * * * * * * * * * * * * Context: %2 = bitcast i8* %1 to %nest.simpleMindedFind* * * * * * * * * * * * * * * * * of type: %nest.simpleMindedFind = type { %"std.range.retro!string.retro.Result!().Result" } * * * * * * * * * * * * * * * * Variable: haystack * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * Function: haystackTooShort * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * Addr: %haystack = getelementptr %nest.simpleMindedFind, %nest.simpleMindedFind* %2, i32 0, i32 0 * * * * * * * * * * * * * * * * of type: %"std.range.retro!string.retro.Result!().Result"* * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * Building type: pure nothrow @nogc @property @safe bool() * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @property @safe bool()) * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * Final function type: i1 () * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * %haystack = getelementptr %nest.simpleMindedFind, %nest.simpleMindedFind* %2, i32 0, i32 0 * * * * * * * * * * * * * Function type: pure nothrow @nogc @property @safe bool() * * * * * * * * * * * return value is '0x1252b510' * * * * * LabelStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/searching.d(1802) * * * * * * ForStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/searching.d(1803) * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/searching.d(1804) * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/searching.d(1804) * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/searching.d(1805) * * * * * * * * * * CallExp::toElem: haystackTooShort() @ bool * * * * * * * * * * * VarExp::toElem: haystackTooShort @ pure nothrow @nogc @safe bool() * * * * * * * * * * * * DtoSymbolAddress ('haystackTooShort' of type 'pure nothrow @nogc @safe bool()') * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * Building type: pure nothrow @nogc @safe bool() * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe bool()) * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * Final function type: i1 () * * * * * * * * * * * * DtoNestedContext for std.algorithm.searching.simpleMindedFind!("a == b", Result!(), Result!()).simpleMindedFind.haystackTooShort * * * * * * * * * * * * * DtoCreateNestedContextType for std.algorithm.searching.simpleMindedFind!("a == b", Result!(), Result!()).simpleMindedFind.haystackTooShort * * * * * * * * * * * * * Parent frame is from simpleMindedFind * * * * * * * * * * * * * Current function is simpleMindedFind * * * * * * * * * * * * * Context is from simpleMindedFind * * * * * * * * * * * * * Needed depth: 0 * * * * * * * * * * * * * Context depth: 0 * * * * * * * * * * * * * Calling sibling function or directly nested function * * * * * * * * * * * * * result = %.frame = alloca %nest.simpleMindedFind, align 8 * * * * * * * * * * * * * of type %nest.simpleMindedFind* * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * %3 = bitcast %nest.simpleMindedFind* %.frame to i8* * * * * * * * * * * * * Function type: pure nothrow @nogc @safe bool() * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/searching.d(1806) * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/searching.d(1806) * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/searching.d(1818) * * * * * * * * * * * * * AssertExp::toElem: assert(haystack.empty()) * * * * * * * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/searching.d(1819) * * * * * * * * * * * * * VarExp::toElem: haystack @ Result!() * * * * * * * * * * * * * * DtoSymbolAddress ('haystack' of type 'Result!()') * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * DtoNestedVariable for haystack @ /usr/include/dlang/ldc/std/algorithm/searching.d(1819) * * * * * * * * * * * * * return value is '0x12528278' * * * * * * * * * * * * * Loading value for return * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/searching.d(1824) * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/searching.d(1824) * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/searching.d(1824) * * * * * * * * * * * * DeclarationExp::toElem: Result!() h = haystack.save(); | T=void * * * * * * * * * * * * * DtoDeclarationExp: h * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = Result!()) * * * * * * * * * * * * * * * llvm value for decl: %h = alloca %"std.range.retro!string.retro.Result!().Result", align 8 * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * AssignExp::toElem: h = haystack.save() | (Result!())(Result!() = Result!()) * * * * * * * * * * * * * * * * VarExp::toElem: h @ Result!() * * * * * * * * * * * * * * * * * DtoSymbolAddress ('h' of type 'Result!()') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * CallExp::toElem: haystack.save() @ Result!() * * * * * * * * * * * * * * * * * DotVarExp::toElem: haystack.save @ pure nothrow @nogc @property @safe Result!()() * * * * * * * * * * * * * * * * * * VarExp::toElem: haystack @ Result!() * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('haystack' of type 'Result!()') * * * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for haystack @ /usr/include/dlang/ldc/std/algorithm/searching.d(1824) * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * Building type: pure nothrow @nogc @property @safe Result!()() * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @property @safe Result!()()) * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * Final function type: %"std.range.retro!string.retro.Result!().Result" () * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * * %haystack = getelementptr %nest.simpleMindedFind, %nest.simpleMindedFind* %.frame, i32 0, i32 0 * * * * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @property @safe Result!()() * * * * * * * * * * * * * * * * * * Storing return value to stack slot * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/searching.d(1824) * * * * * * * * * * * * DeclarationExp::toElem: Result!() n = needle.save(); | T=void * * * * * * * * * * * * * DtoDeclarationExp: n * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = Result!()) * * * * * * * * * * * * * * * llvm value for decl: %n = alloca %"std.range.retro!string.retro.Result!().Result", align 8 * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * AssignExp::toElem: n = needle.save() | (Result!())(Result!() = Result!()) * * * * * * * * * * * * * * * * VarExp::toElem: n @ Result!() * * * * * * * * * * * * * * * * * DtoSymbolAddress ('n' of type 'Result!()') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * CallExp::toElem: needle.save() @ Result!() * * * * * * * * * * * * * * * * * DotVarExp::toElem: needle.save @ pure nothrow @nogc @property @safe Result!()() * * * * * * * * * * * * * * * * * * VarExp::toElem: needle @ Result!() * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('needle' of type 'Result!()') * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * type: Result!() * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * * %needle = alloca %"std.range.retro!string.retro.Result!().Result", align 8 * * * * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @property @safe Result!()() * * * * * * * * * * * * * * * * * * Storing return value to stack slot * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * ForStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/searching.d(1824) * * * * * * * * * * * * NotExp::toElem: !n.empty() @ bool * * * * * * * * * * * * * CallExp::toElem: n.empty() @ bool * * * * * * * * * * * * * * DotVarExp::toElem: n.empty @ pure nothrow @nogc @property @safe bool() * * * * * * * * * * * * * * * VarExp::toElem: n @ Result!() * * * * * * * * * * * * * * * * DtoSymbolAddress ('n' of type 'Result!()') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * %n = alloca %"std.range.retro!string.retro.Result!().Result", align 8 * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @property @safe bool() * * * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/searching.d(1827) * * * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/searching.d(1827) * * * * * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/searching.d(1828) * * * * * * * * * * * * * * * OrOrExp::toElem: h.empty() || !binaryFun(h.front(), n.front()) @ bool * * * * * * * * * * * * * * * * CallExp::toElem: h.empty() @ bool * * * * * * * * * * * * * * * * * DotVarExp::toElem: h.empty @ pure nothrow @nogc @property @safe bool() * * * * * * * * * * * * * * * * * * VarExp::toElem: h @ Result!() * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('h' of type 'Result!()') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * * %h = alloca %"std.range.retro!string.retro.Result!().Result", align 8 * * * * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @property @safe bool() * * * * * * * * * * * * * * * * NotExp::toElem: !binaryFun(h.front(), n.front()) @ bool * * * * * * * * * * * * * * * * * CallExp::toElem: binaryFun(h.front(), n.front()) @ bool * * * * * * * * * * * * * * * * * * VarExp::toElem: binaryFun @ pure nothrow @nogc @safe bool(auto dchar __a, auto dchar __b) * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('binaryFun' of type 'pure nothrow @nogc @safe bool(auto dchar __a, auto dchar __b)') * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * Building type: pure nothrow @nogc @safe bool(auto dchar __a, auto dchar __b) * * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe bool(auto dchar __a, auto dchar __b)) * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * * Final function type: i1 (i32, i32) * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @safe bool(auto dchar __a, auto dchar __b) * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * CallExp::toElem: h.front() @ dchar * * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: h.front @ pure @property @safe dchar() * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: h @ Result!() * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('h' of type 'Result!()') * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * * Building type: pure @property @safe dchar() * * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure @property @safe dchar()) * * * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * * * * * Final function type: i32 () * * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * * * * * * %h = alloca %"std.range.retro!string.retro.Result!().Result", align 8 * * * * * * * * * * * * * * * * * * * * * * Function type: pure @property @safe dchar() * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * CallExp::toElem: n.front() @ dchar * * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: n.front @ pure @property @safe dchar() * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: n @ Result!() * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('n' of type 'Result!()') * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * * * * * * %n = alloca %"std.range.retro!string.retro.Result!().Result", align 8 * * * * * * * * * * * * * * * * * * * * * * Function type: pure @property @safe dchar() * * * * * * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/searching.d(1829) * * * * * * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/searching.d(1829) * * * * * * * * * * * * * * * * * ContinueStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/searching.d(1836) * * * * * * * * * * * * * * * * * * ident = searching * * * * * * * * * * * * CommaExp::toElem: h.popFront() , n.popFront() @ void * * * * * * * * * * * * * CallExp::toElem: h.popFront() @ void * * * * * * * * * * * * * * DotVarExp::toElem: h.popFront @ pure @safe void() * * * * * * * * * * * * * * * VarExp::toElem: h @ Result!() * * * * * * * * * * * * * * * * DtoSymbolAddress ('h' of type 'Result!()') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * Building type: pure @safe void() * * * * * * * * * * * * * * * * DtoFunctionType(pure @safe void()) * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * Final function type: void () * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * %h = alloca %"std.range.retro!string.retro.Result!().Result", align 8 * * * * * * * * * * * * * * * Function type: pure @safe void() * * * * * * * * * * * * * CallExp::toElem: n.popFront() @ void * * * * * * * * * * * * * * DotVarExp::toElem: n.popFront @ pure @safe void() * * * * * * * * * * * * * * * VarExp::toElem: n @ Result!() * * * * * * * * * * * * * * * * DtoSymbolAddress ('n' of type 'Result!()') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * %n = alloca %"std.range.retro!string.retro.Result!().Result", align 8 * * * * * * * * * * * * * * * Function type: pure @safe void() * * * * * * * * * BreakStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/searching.d(1841) * * * * * * * CallExp::toElem: haystack.popFront() @ void * * * * * * * * DotVarExp::toElem: haystack.popFront @ pure @safe void() * * * * * * * * * VarExp::toElem: haystack @ Result!() * * * * * * * * * * DtoSymbolAddress ('haystack' of type 'Result!()') * * * * * * * * * * * nested variable * * * * * * * * * * * DtoNestedVariable for haystack @ /usr/include/dlang/ldc/std/algorithm/searching.d(1803) * * * * * * * * DtoCallFunction() * * * * * * * * * doing normal arguments * * * * * * * * * Arguments so far: (1) * * * * * * * * * * %haystack = getelementptr %nest.simpleMindedFind, %nest.simpleMindedFind* %.frame, i32 0, i32 0 * * * * * * * * * Function type: pure @safe void() * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/searching.d(1843) * * * * * * VarExp::toElem: haystack @ Result!() * * * * * * * DtoSymbolAddress ('haystack' of type 'Result!()') * * * * * * * * nested variable * * * * * * * * DtoNestedVariable for haystack @ /usr/include/dlang/ldc/std/algorithm/searching.d(1843) * * * * * * return value is '0x12528278' * * * * * * Loading value for return * TemplateInstance::codegen: 'object.RTInfo!(Result)' * * VarDeclaration::codegen(): 'object.RTInfo!(Result).RTInfo' * * * DtoResolveVariable(object.RTInfo!(Result).RTInfo) * TemplateInstance::codegen: 'std.traits.Unqual!(Result)' * * Ignoring Dsymbol::codegen for std.traits.Unqual!(Result).Unqual * TemplateInstance::codegen: 'std.range.primitives.isInputRange!(Result)' * * VarDeclaration::codegen(): 'std.range.primitives.isInputRange!(Result).isInputRange' * * * DtoResolveVariable(std.range.primitives.isInputRange!(Result).isInputRange) * TemplateInstance::codegen: 'std.range.primitives.isBidirectionalRange!(Result)' * * VarDeclaration::codegen(): 'std.range.primitives.isBidirectionalRange!(Result).isBidirectionalRange' * * * DtoResolveVariable(std.range.primitives.isBidirectionalRange!(Result).isBidirectionalRange) * TemplateInstance::codegen: 'std.range.primitives.isForwardRange!(Result)' * * VarDeclaration::codegen(): 'std.range.primitives.isForwardRange!(Result).isForwardRange' * * * DtoResolveVariable(std.range.primitives.isForwardRange!(Result).isForwardRange) * TemplateInstance::codegen: 'std.range.primitives.isInfinite!(Result)' * * VarDeclaration::codegen(): 'std.range.primitives.isInfinite!(Result).isInfinite' * * * DtoResolveVariable(std.range.primitives.isInfinite!(Result).isInfinite) * TemplateInstance::codegen: 'std.range.primitives.isRandomAccessRange!(Result)' * * VarDeclaration::codegen(): 'std.range.primitives.isRandomAccessRange!(Result).isRandomAccessRange' * * * DtoResolveVariable(std.range.primitives.isRandomAccessRange!(Result).isRandomAccessRange) * TemplateInstance::codegen: 'std.traits.isNarrowString!(Result)' * * VarDeclaration::codegen(): 'std.traits.isNarrowString!(Result).isNarrowString' * * * DtoResolveVariable(std.traits.isNarrowString!(Result).isNarrowString) * TemplateInstance::codegen: 'std.traits.isAggregateType!(Result)' * * VarDeclaration::codegen(): 'std.traits.isAggregateType!(Result).isAggregateType' * * * DtoResolveVariable(std.traits.isAggregateType!(Result).isAggregateType) * TemplateInstance::codegen: 'std.traits.isStaticArray!(Result)' * * VarDeclaration::codegen(): 'std.traits.isStaticArray!(Result).isStaticArray' * * * DtoResolveVariable(std.traits.isStaticArray!(Result).isStaticArray) * TemplateInstance::codegen: 'std.traits.OriginalType!(Result)' * TemplateInstance::codegen: 'std.traits.ModifyTypePreservingSTC!(Impl, Result)' * TemplateInstance::codegen: 'std.traits.OriginalType!(Result).Modifier!(Result)' * TemplateInstance::codegen: 'std.range.primitives.hasLength!(Result)' * * VarDeclaration::codegen(): 'std.range.primitives.hasLength!(Result).hasLength' * * * DtoResolveVariable(std.range.primitives.hasLength!(Result).hasLength) * TemplateInstance::codegen: 'std.range.primitives.hasSlicing!(Result)' * * VarDeclaration::codegen(): 'std.range.primitives.hasSlicing!(Result).hasSlicing' * * * DtoResolveVariable(std.range.primitives.hasSlicing!(Result).hasSlicing) * TemplateInstance::codegen: 'object.RTInfo!(MapResult!(__lambda8, Result))' * * VarDeclaration::codegen(): 'object.RTInfo!(MapResult!(__lambda8, Result)).RTInfo' * * * DtoResolveVariable(object.RTInfo!(MapResult!(__lambda8, Result)).RTInfo) * TypeInfoDeclaration::codegen(typeid(const(Result))) * * type = 'const(Result)' * * typeinfo mangle: _D101TypeInfo_xS3std9algorithm9iteration40__T8splitterVAyaa6_61203d3d2062TAyaTAyaZ8splitterFAyaAyaZ6Result6__initZ * * TypeInfoConstDeclaration::llvmDefine() typeid(const(Result)) * * * DtoTypeInfoOf(type = 'Result', base='1') * * * * Type::getTypeInfo(): Result * * * * TypeInfoDeclaration::codegen(typeid(Result)) * TemplateInstance::codegen: 'std.conv.to!ushort' * * Ignoring Dsymbol::codegen for std.conv.to!ushort.to(A...)(A args) if (!isRawStaticArray!A) * * Ignoring Dsymbol::codegen for std.conv.to!ushort.to(S)(ref S arg) if (isRawStaticArray!S) * TemplateInstance::codegen: 'std.conv.to!ushort.to!(string)' * * DtoDefineFunction(std.conv.to!ushort.to!(string).to): /usr/include/dlang/ldc/std/conv.d(292) * * * DtoFunctionType(pure @safe ushort(string _param_0)) * * * * x86-64 ABI: Transforming return type * * * * x86-64 ABI: Transforming argument types * * * * Final function type: i16 ({ i64, i8* }) * * * DtoResolveFunction(std.conv.to!ushort.to!(string).to): /usr/include/dlang/ldc/std/conv.d(292) * * * * DtoDeclareFunction(std.conv.to!ushort.to!(string).to): /usr/include/dlang/ldc/std/conv.d(292) * * * * * DtoFunctionType(pure @safe ushort(string _param_0)) * * * * * func = declare i16 @_D3std4conv9__T2toTtZ11__T2toTAyaZ2toFNaNfAyaZt({ i64, i8* }) * * * Doing function body for: to * * * DtoCreateNestedContext for to * * * * DtoCreateNestedContextType for std.conv.to!ushort.to!(string).to * * * CompoundStatement::toIR(): * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(295) * * * * * CallExp::toElem: toImpl(_param_0) @ ushort * * * * * * VarExp::toElem: toImpl @ pure @safe ushort(string value) * * * * * * * DtoSymbolAddress ('toImpl' of type 'pure @safe ushort(string value)') * * * * * * * * FuncDeclaration * * * * * * * * DtoFunctionType(pure @safe ushort(string value)) * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * Final function type: i16 ({ i64, i8* }) * * * * * * * * DtoResolveFunction(std.conv.toImpl!(ushort, string).toImpl): /usr/include/dlang/ldc/std/conv.d(1727) * * * * * * * * * DtoDeclareFunction(std.conv.toImpl!(ushort, string).toImpl): /usr/include/dlang/ldc/std/conv.d(1727) * * * * * * * * * * DtoFunctionType(pure @safe ushort(string value)) * * * * * * * * * * func = declare i16 @_D3std4conv17__T6toImplTtTAyaZ6toImplFNaNfAyaZt({ i64, i8* }) * * * * * * DtoCallFunction() * * * * * * * Building type: pure @safe ushort(string value) * * * * * * * * DtoFunctionType(pure @safe ushort(string value)) * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * Final function type: i16 ({ i64, i8* }) * * * * * * * doing normal arguments * * * * * * * Arguments so far: (0) * * * * * * * Function type: pure @safe ushort(string value) * * * * * * * DtoArgument * * * * * * * * VarExp::toElem: _param_0 @ string * * * * * * * * * DtoSymbolAddress ('_param_0' of type 'string') * * * * * * * * * * function param * * * * * * * * * * type: string * * * * * return value is '0x125391d0' * TemplateInstance::codegen: 'std.traits.isImplicitlyConvertible!(string, ushort)' * TemplateInstance::codegen: 'std.conv.isExactSomeString!ushort' * TemplateInstance::codegen: 'std.traits.isSomeString!ushort' * TemplateInstance::codegen: 'std.traits.isIntegral!ushort' * TemplateInstance::codegen: 'std.typetuple.staticIndexOf!(ushort, dchar, char)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(ushort, dchar, char)' * TemplateInstance::codegen: 'std.typetuple.isSame!(ushort, dchar)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(ushort, char)' * TemplateInstance::codegen: 'std.typetuple.isSame!(ushort, char)' * TemplateInstance::codegen: 'std.conv.parse!(ushort, string)' * * DtoDefineFunction(std.conv.parse!(ushort, string).parse): /usr/include/dlang/ldc/std/conv.d(1938) * * * DtoFunctionType(pure @safe ushort(ref string s)) * * * * x86-64 ABI: Transforming return type * * * * x86-64 ABI: Transforming argument types * * * * Final function type: i16 ({ i64, i8* }*) * * * DtoResolveFunction(std.conv.parse!(ushort, string).parse): /usr/include/dlang/ldc/std/conv.d(1938) * * * * DtoDeclareFunction(std.conv.parse!(ushort, string).parse): /usr/include/dlang/ldc/std/conv.d(1938) * * * * * DtoFunctionType(pure @safe ushort(ref string s)) * * * * * func = declare i16 @_D3std4conv16__T5parseTtTAyaZ5parseFNaNfKAyaZt({ i64, i8* }*) * * * Doing function body for: parse * * * DtoCreateNestedContext for parse * * * * DtoCreateNestedContextType for std.conv.parse!(ushort, string).parse * * * * * has nested frame * * * * * Function parse has depth 0 * * * * * Nested var 'v' of type i32 * * * * * frameType = %nest.parse = type { i32 } * * * * nested var: v * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(1941) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(1945) * * * * * * DeclarationExp::toElem: uint v = parse(s); | T=void * * * * * * * DtoDeclarationExp: v * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = uint) * * * * * * * * * has nestedref set (referenced by nested function/delegate) * * * * * * * * * llvm value for decl: %v = getelementptr %nest.parse, %nest.parse* %.frame, i32 0, i32 0 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: v = parse(s) | (uint)(uint = uint) * * * * * * * * * * VarExp::toElem: v @ uint * * * * * * * * * * * DtoSymbolAddress ('v' of type 'uint') * * * * * * * * * * * * nested variable * * * * * * * * * * * * DtoNestedVariable for v @ /usr/include/dlang/ldc/std/conv.d(1945) * * * * * * * * * * CallExp::toElem: parse(s) @ uint * * * * * * * * * * * VarExp::toElem: parse @ pure @safe uint(ref string s) * * * * * * * * * * * * DtoSymbolAddress ('parse' of type 'pure @safe uint(ref string s)') * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * DtoFunctionType(pure @safe uint(ref string s)) * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * Final function type: i32 ({ i64, i8* }*) * * * * * * * * * * * * * DtoResolveFunction(std.conv.parse!(uint, string).parse): /usr/include/dlang/ldc/std/conv.d(1938) * * * * * * * * * * * * * * DtoDeclareFunction(std.conv.parse!(uint, string).parse): /usr/include/dlang/ldc/std/conv.d(1938) * * * * * * * * * * * * * * * DtoFunctionType(pure @safe uint(ref string s)) * * * * * * * * * * * * * * * func = declare i32 @_D3std4conv16__T5parseTkTAyaZ5parseFNaNfKAyaZk({ i64, i8* }*) * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * Building type: pure @safe uint(ref string s) * * * * * * * * * * * * * DtoFunctionType(pure @safe uint(ref string s)) * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * Final function type: i32 ({ i64, i8* }*) * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * Function type: pure @safe uint(ref string s) * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * VarExp::toElem: s @ string * * * * * * * * * * * * * * DtoSymbolAddress ('s' of type 'string') * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * type: string * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %v = getelementptr %nest.parse, %nest.parse* %.frame, i32 0, i32 0 * * * * * * * * * * * rhs: %1 = call i32 @_D3std4conv16__T5parseTkTAyaZ5parseFNaNfKAyaZk({ i64, i8* }* %s_arg) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(1946) * * * * * * DeclarationExp::toElem: ushort result = delegate () => cast(ushort)v(); | T=void * * * * * * * DtoDeclarationExp: result * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = ushort) * * * * * * * * * llvm value for decl: %result = alloca i16, align 2 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: result = delegate () => cast(ushort)v() | (ushort)(ushort = ushort) * * * * * * * * * * VarExp::toElem: result @ ushort * * * * * * * * * * * DtoSymbolAddress ('result' of type 'ushort') * * * * * * * * * * * * a normal variable * * * * * * * * * * CallExp::toElem: delegate () => cast(ushort)v() @ ushort * * * * * * * * * * * FuncExp::toElem: __lambda2 @ ushort delegate() pure nothrow @nogc @trusted * * * * * * * * * * * * nested * * * * * * * * * * * * kind = delegate * * * * * * * * * * * * DtoDefineFunction(std.conv.parse!(ushort, string).parse.__lambda2): /usr/include/dlang/ldc/std/conv.d(1946) * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted ushort()) * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * Final function type: i16 (i8*) * * * * * * * * * * * * * DtoResolveFunction(std.conv.parse!(ushort, string).parse.__lambda2): /usr/include/dlang/ldc/std/conv.d(1946) * * * * * * * * * * * * * * DtoDeclareFunction(std.conv.parse!(ushort, string).parse.__lambda2): /usr/include/dlang/ldc/std/conv.d(1946) * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted ushort()) * * * * * * * * * * * * * * * func = declare i16 @_D3std4conv16__T5parseTtTAyaZ5parseFKAyaZ9__lambda2MFNaNbNiNeZt(i8*) * * * * * * * * * * * * * Doing function body for: __lambda2 * * * * * * * * * * * * * DtoCreateNestedContext for __lambda2 * * * * * * * * * * * * * * DtoCreateNestedContextType for std.conv.parse!(ushort, string).parse.__lambda2 * * * * * * * * * * * * * * * DtoCreateNestedContextType for std.conv.parse!(ushort, string).parse * * * * * * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(1946) * * * * * * * * * * * * * * * CastExp::toElem: cast(ushort)v @ ushort * * * * * * * * * * * * * * * * VarExp::toElem: v @ uint * * * * * * * * * * * * * * * * * DtoSymbolAddress ('v' of type 'uint') * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * DtoNestedVariable for v @ /usr/include/dlang/ldc/std/conv.d(1946) * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for std.conv.parse!(ushort, string).parse * * * * * * * * * * * * * * * * * * * Context: %2 = bitcast i8* %1 to %nest.parse* * * * * * * * * * * * * * * * * * * * of type: %nest.parse = type { i32 } * * * * * * * * * * * * * * * * * * * Variable: v * * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * * Function: __lambda2 * * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * * Addr: %v = getelementptr %nest.parse, %nest.parse* %2, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * of type: i32* * * * * * * * * * * * * * * * * Casting from 'uint' to 'ushort' * * * * * * * * * * * * * * * return value is '0x1253e768' * * * * * * * * * * * * Building type: ushort delegate() pure nothrow @nogc @trusted * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted ushort()) * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * Final function type: i16 (i8*) * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * %.ptr = extractvalue { i8*, i16 (i8*)* } %.func, 0 * * * * * * * * * * * * Function type: pure nothrow @nogc @trusted ushort() * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %result = alloca i16, align 2 * * * * * * * * * * * rhs: %4 = call zeroext i16 %.funcptr(i8* %.ptr) * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(1947) * * * * * * EqualExp::toElem: cast(uint)cast(int)result == v @ bool * * * * * * * CastExp::toElem: cast(uint)cast(int)result @ uint * * * * * * * * CastExp::toElem: cast(int)result @ int * * * * * * * * * VarExp::toElem: result @ ushort * * * * * * * * * * DtoSymbolAddress ('result' of type 'ushort') * * * * * * * * * * * a normal variable * * * * * * * * * Casting from 'ushort' to 'int' * * * * * * * * * * cast to: i32 * * * * * * * * Casting from 'int' to 'uint' * * * * * * * VarExp::toElem: v @ uint * * * * * * * * DtoSymbolAddress ('v' of type 'uint') * * * * * * * * * nested variable * * * * * * * * * DtoNestedVariable for v @ /usr/include/dlang/ldc/std/conv.d(1947) * * * * * * * integral or pointer or interface * * * * * * * lv: %6 = zext i16 %5 to i32 * * * * * * * rv: %7 = load i32, i32* %v * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(1948) * * * * * * * VarExp::toElem: result @ ushort * * * * * * * * DtoSymbolAddress ('result' of type 'ushort') * * * * * * * * * a normal variable * * * * * * * return value is '0x1253fb18' * * * * * ThrowStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(1949) * * * * * * NewExp::toElem: new ConvOverflowException("Overflow in integral conversion", "/usr/include/dlang/ldc/std/conv.d", 1949LU) @ std.conv.ConvOverflowException * * * * * * * new class * * * * * * * Calling constructor * * * * * * * DtoCallFunction() * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (1) * * * * * * * * * %.newclass_gc = bitcast %object.Object* %.newclass_gc_alloc to %std.conv.ConvOverflowException* * * * * * * * * Function type: pure nothrow @safe ConvOverflowException(string s, string fn = __FILE__, ulong ln = cast(ulong)__LINE__) * * * * * * * * DtoArgument * * * * * * * * * StringExp::toElem: "Overflow in integral conversion" @ string * * * * * * * * DtoArgument * * * * * * * * * StringExp::toElem: "/usr/include/dlang/ldc/std/conv.d" @ string * * * * * * * * DtoArgument * * * * * * * * * IntegerExp::toElem: 1949LU @ ulong * * * * * * * * * * IntegerExp::toConstElem: 1949LU @ ulong * * * * * * * * * * * value = i64 1949 * TemplateInstance::codegen: 'std.conv.parse!(uint, string)' * * DtoDefineFunction(std.conv.parse!(uint, string).parse): /usr/include/dlang/ldc/std/conv.d(1938) * * * Doing function body for: parse * * * DtoCreateNestedContext for parse * * * * DtoCreateNestedContextType for std.conv.parse!(uint, string).parse * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(1941) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(1958) * * * * * * DeclarationExp::toElem: enum bool sign = false; | T=void * * * * * * * DtoDeclarationExp: sign * * * * * * * * VarDeclaration * * * * * * * * Manifest constant, nothing to do. * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(1960) * * * * * * DeclarationExp::toElem: enum char maxLastDigit = '\x05'; | T=void * * * * * * * DtoDeclarationExp: maxLastDigit * * * * * * * * VarDeclaration * * * * * * * * Manifest constant, nothing to do. * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(1961) * * * * * * DeclarationExp::toElem: dchar c = '\U0000ffff'; | T=void * * * * * * * DtoDeclarationExp: c * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = dchar) * * * * * * * * * llvm value for decl: %c = alloca i32, align 4 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: c = '\U0000ffff' | (dchar)(dchar = dchar) * * * * * * * * * * VarExp::toElem: c @ dchar * * * * * * * * * * * DtoSymbolAddress ('c' of type 'dchar') * * * * * * * * * * * * a normal variable * * * * * * * * * * IntegerExp::toElem: '\U0000ffff' @ dchar * * * * * * * * * * * IntegerExp::toConstElem: '\U0000ffff' @ dchar * * * * * * * * * * * * value = i32 65535 * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %c = alloca i32, align 4 * * * * * * * * * * * rhs: i32 65535 * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(1963) * * * * * * CallExp::toElem: empty(s) @ bool * * * * * * * VarExp::toElem: empty @ pure nothrow @nogc @property @safe bool(const(char[]) a) * * * * * * * * DtoSymbolAddress ('empty' of type 'pure nothrow @nogc @property @safe bool(const(char[]) a)') * * * * * * * * * FuncDeclaration * * * * * * * DtoCallFunction() * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (0) * * * * * * * * Function type: pure nothrow @nogc @property @safe bool(const(char[]) a) * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: s @ const(char[]) * * * * * * * * * * DtoSymbolAddress ('s' of type 'string') * * * * * * * * * * * function param * * * * * * * * * * * type: string * * * * * * GotoStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(1964) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(1966) * * * * * * AssignExp::toElem: c = front(s) | (dchar)(dchar = dchar) * * * * * * * VarExp::toElem: c @ dchar * * * * * * * * DtoSymbolAddress ('c' of type 'dchar') * * * * * * * * * a normal variable * * * * * * * CallExp::toElem: front(s) @ dchar * * * * * * * * VarExp::toElem: front @ pure @property @safe dchar(string a) * * * * * * * * * DtoSymbolAddress ('front' of type 'pure @property @safe dchar(string a)') * * * * * * * * * * FuncDeclaration * * * * * * * * DtoCallFunction() * * * * * * * * * doing normal arguments * * * * * * * * * Arguments so far: (0) * * * * * * * * * Function type: pure @property @safe dchar(string a) * * * * * * * * * DtoArgument * * * * * * * * * * VarExp::toElem: s @ string * * * * * * * * * * * DtoSymbolAddress ('s' of type 'string') * * * * * * * * * * * * function param * * * * * * * * * * * * type: string * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * DtoAssign() * * * * * * * * lhs: %c = alloca i32, align 4 * * * * * * * * rhs: %4 = call i32 @_D3std5range10primitives13__T5frontTyaZ5frontFNaNdNfAyaZw({ i64, i8* } %3) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(1967) * * * * * * CallExp::toElem: popFront(s) @ void * * * * * * * VarExp::toElem: popFront @ pure nothrow @nogc @trusted void(ref string str) * * * * * * * * DtoSymbolAddress ('popFront' of type 'pure nothrow @nogc @trusted void(ref string str)') * * * * * * * * * FuncDeclaration * * * * * * * DtoCallFunction() * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (0) * * * * * * * * Function type: pure nothrow @nogc @trusted void(ref string str) * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: s @ string * * * * * * * * * * DtoSymbolAddress ('s' of type 'string') * * * * * * * * * * * function param * * * * * * * * * * * type: string * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(1986) * * * * * * MinAssignExp::toElem: cast(uint)c -= 48u @ dchar * * * * * * * Caching l-value of cast(uint)c -= 48u => c * * * * * * * * VarExp::toElem: c @ dchar * * * * * * * * * DtoSymbolAddress ('c' of type 'dchar') * * * * * * * * * * a normal variable * * * * * * * MinExp::toElem: cast(uint)c - 48u @ uint * * * * * * * * CastExp::toElem: cast(uint)c @ uint * * * * * * * * * VarExp::toElem: c @ dchar * * * * * * * * * Casting from 'dchar' to 'uint' * * * * * * * * IntegerExp::toElem: 48u @ uint * * * * * * * * * IntegerExp::toConstElem: 48u @ uint * * * * * * * * * * value = i32 48 * * * * * * * Casting from 'uint' to 'dchar' * * * * * * * DtoAssign() * * * * * * * * lhs: %c = alloca i32, align 4 * * * * * * * * rhs: %6 = sub i32 %5, 48 * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(1987) * * * * * * CmpExp::toElem: cast(uint)c <= 9u @ bool * * * * * * * CastExp::toElem: cast(uint)c @ uint * * * * * * * * VarExp::toElem: c @ dchar * * * * * * * * * DtoSymbolAddress ('c' of type 'dchar') * * * * * * * * * * a normal variable * * * * * * * * Casting from 'dchar' to 'uint' * * * * * * * IntegerExp::toElem: 9u @ uint * * * * * * * * IntegerExp::toConstElem: 9u @ uint * * * * * * * * * value = i32 9 * * * * * * * type 1: %7 = load i32, i32* %c * * * * * * * type 2: i32 9 * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(1988) * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(1988) * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(1989) * * * * * * * * * DeclarationExp::toElem: uint v = cast(uint)c; | T=void * * * * * * * * * * DtoDeclarationExp: v * * * * * * * * * * * VarDeclaration * * * * * * * * * * * DtoVarDeclaration(vdtype = uint) * * * * * * * * * * * * llvm value for decl: %v = alloca i32, align 4 * * * * * * * * * * * * expression initializer * * * * * * * * * * * * AssignExp::toElem: v = cast(uint)c | (uint)(uint = uint) * * * * * * * * * * * * * VarExp::toElem: v @ uint * * * * * * * * * * * * * * DtoSymbolAddress ('v' of type 'uint') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * CastExp::toElem: cast(uint)c @ uint * * * * * * * * * * * * * * VarExp::toElem: c @ dchar * * * * * * * * * * * * * * * DtoSymbolAddress ('c' of type 'dchar') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * Casting from 'dchar' to 'uint' * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * lhs: %v = alloca i32, align 4 * * * * * * * * * * * * * * rhs: %9 = load i32, i32* %c * * * * * * * * ForStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(1990) * * * * * * * * * NotExp::toElem: !empty(s) @ bool * * * * * * * * * * CallExp::toElem: empty(s) @ bool * * * * * * * * * * * VarExp::toElem: empty @ pure nothrow @nogc @property @safe bool(const(char[]) a) * * * * * * * * * * * * DtoSymbolAddress ('empty' of type 'pure nothrow @nogc @property @safe bool(const(char[]) a)') * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * Function type: pure nothrow @nogc @property @safe bool(const(char[]) a) * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * VarExp::toElem: s @ const(char[]) * * * * * * * * * * * * * * DtoSymbolAddress ('s' of type 'string') * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * type: string * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(1991) * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(1991) * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(1992) * * * * * * * * * * * * AssignExp::toElem: c = cast(dchar)(cast(uint)front(s) - 48u) | (dchar)(dchar = dchar) * * * * * * * * * * * * * VarExp::toElem: c @ dchar * * * * * * * * * * * * * * DtoSymbolAddress ('c' of type 'dchar') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * CastExp::toElem: cast(dchar)(cast(uint)front(s) - 48u) @ dchar * * * * * * * * * * * * * * MinExp::toElem: cast(uint)front(s) - 48u @ uint * * * * * * * * * * * * * * * CastExp::toElem: cast(uint)front(s) @ uint * * * * * * * * * * * * * * * * CallExp::toElem: front(s) @ dchar * * * * * * * * * * * * * * * * * VarExp::toElem: front @ pure @property @safe dchar(string a) * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('front' of type 'pure @property @safe dchar(string a)') * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * Function type: pure @property @safe dchar(string a) * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * VarExp::toElem: s @ string * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('s' of type 'string') * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * type: string * * * * * * * * * * * * * * * * Casting from 'dchar' to 'uint' * * * * * * * * * * * * * * * IntegerExp::toElem: 48u @ uint * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 48u @ uint * * * * * * * * * * * * * * * * * value = i32 48 * * * * * * * * * * * * * * Casting from 'uint' to 'dchar' * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * lhs: %c = alloca i32, align 4 * * * * * * * * * * * * * * rhs: %15 = sub i32 %14, 48 * * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(1993) * * * * * * * * * * * * CmpExp::toElem: cast(uint)c > 9u @ bool * * * * * * * * * * * * * CastExp::toElem: cast(uint)c @ uint * * * * * * * * * * * * * * VarExp::toElem: c @ dchar * * * * * * * * * * * * * * * DtoSymbolAddress ('c' of type 'dchar') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * Casting from 'dchar' to 'uint' * * * * * * * * * * * * * IntegerExp::toElem: 9u @ uint * * * * * * * * * * * * * * IntegerExp::toConstElem: 9u @ uint * * * * * * * * * * * * * * * value = i32 9 * * * * * * * * * * * * * type 1: %16 = load i32, i32* %c * * * * * * * * * * * * * type 2: i32 9 * * * * * * * * * * * * BreakStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(1994) * * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(1996) * * * * * * * * * * * * AndAndExp::toElem: v >= 0u && (v < 429496729u || v == 429496729u && cast(uint)c <= 5u) @ bool * * * * * * * * * * * * * CmpExp::toElem: v >= 0u @ bool * * * * * * * * * * * * * * VarExp::toElem: v @ uint * * * * * * * * * * * * * * * DtoSymbolAddress ('v' of type 'uint') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * IntegerExp::toElem: 0u @ uint * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0u @ uint * * * * * * * * * * * * * * * * value = i32 0 * * * * * * * * * * * * * * type 1: %18 = load i32, i32* %v * * * * * * * * * * * * * * type 2: i32 0 * * * * * * * * * * * * * OrOrExp::toElem: v < 429496729u || v == 429496729u && cast(uint)c <= 5u @ bool * * * * * * * * * * * * * * CmpExp::toElem: v < 429496729u @ bool * * * * * * * * * * * * * * * VarExp::toElem: v @ uint * * * * * * * * * * * * * * * * DtoSymbolAddress ('v' of type 'uint') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * IntegerExp::toElem: 429496729u @ uint * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 429496729u @ uint * * * * * * * * * * * * * * * * * value = i32 429496729 * * * * * * * * * * * * * * * type 1: %20 = load i32, i32* %v * * * * * * * * * * * * * * * type 2: i32 429496729 * * * * * * * * * * * * * * AndAndExp::toElem: v == 429496729u && cast(uint)c <= 5u @ bool * * * * * * * * * * * * * * * EqualExp::toElem: v == 429496729u @ bool * * * * * * * * * * * * * * * * VarExp::toElem: v @ uint * * * * * * * * * * * * * * * * * DtoSymbolAddress ('v' of type 'uint') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * IntegerExp::toElem: 429496729u @ uint * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 429496729u @ uint * * * * * * * * * * * * * * * * * * value = i32 429496729 * * * * * * * * * * * * * * * * integral or pointer or interface * * * * * * * * * * * * * * * * lv: %22 = load i32, i32* %v * * * * * * * * * * * * * * * * rv: i32 429496729 * * * * * * * * * * * * * * * CmpExp::toElem: cast(uint)c <= 5u @ bool * * * * * * * * * * * * * * * * CastExp::toElem: cast(uint)c @ uint * * * * * * * * * * * * * * * * * VarExp::toElem: c @ dchar * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('c' of type 'dchar') * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * Casting from 'dchar' to 'uint' * * * * * * * * * * * * * * * * IntegerExp::toElem: 5u @ uint * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 5u @ uint * * * * * * * * * * * * * * * * * * value = i32 5 * * * * * * * * * * * * * * * * type 1: %24 = load i32, i32* %c * * * * * * * * * * * * * * * * type 2: i32 5 * * * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(1998) * * * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(1998) * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(2001) * * * * * * * * * * * * * * * AssignExp::toElem: v = v * 10u + cast(uint)c | (uint)(uint = uint) * * * * * * * * * * * * * * * * VarExp::toElem: v @ uint * * * * * * * * * * * * * * * * * DtoSymbolAddress ('v' of type 'uint') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * AddExp::toElem: v * 10u + cast(uint)c @ uint * * * * * * * * * * * * * * * * * MulExp::toElem: v * 10u @ uint * * * * * * * * * * * * * * * * * * VarExp::toElem: v @ uint * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('v' of type 'uint') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 10u @ uint * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 10u @ uint * * * * * * * * * * * * * * * * * * * * value = i32 10 * * * * * * * * * * * * * * * * * CastExp::toElem: cast(uint)c @ uint * * * * * * * * * * * * * * * * * * VarExp::toElem: c @ dchar * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('c' of type 'dchar') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * Casting from 'dchar' to 'uint' * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * lhs: %v = alloca i32, align 4 * * * * * * * * * * * * * * * * * rhs: %29 = add i32 %27, %28 * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(2002) * * * * * * * * * * * * * * * CallExp::toElem: popFront(s) @ void * * * * * * * * * * * * * * * * VarExp::toElem: popFront @ pure nothrow @nogc @trusted void(ref string str) * * * * * * * * * * * * * * * * * DtoSymbolAddress ('popFront' of type 'pure nothrow @nogc @trusted void(ref string str)') * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @trusted void(ref string str) * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * VarExp::toElem: s @ string * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('s' of type 'string') * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * type: string * * * * * * * * * * * * ThrowStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(2005) * * * * * * * * * * * * * NewExp::toElem: new ConvOverflowException("Overflow in integral conversion", "/usr/include/dlang/ldc/std/conv.d", 2005LU) @ std.conv.ConvOverflowException * * * * * * * * * * * * * * new class * * * * * * * * * * * * * * Calling constructor * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * %.newclass_gc = bitcast %object.Object* %.newclass_gc_alloc to %std.conv.ConvOverflowException* * * * * * * * * * * * * * * * Function type: pure nothrow @safe ConvOverflowException(string s, string fn = __FILE__, ulong ln = cast(ulong)__LINE__) * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * StringExp::toElem: "Overflow in integral conversion" @ string * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * StringExp::toElem: "/usr/include/dlang/ldc/std/conv.d" @ string * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * IntegerExp::toElem: 2005LU @ ulong * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 2005LU @ ulong * * * * * * * * * * * * * * * * * * value = i64 2005 * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(2008) * * * * * * * * * IntegerExp::toElem: false @ bool * * * * * * * * * * IntegerExp::toConstElem: false @ bool * * * * * * * * * * * value = i1 false * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(2009) * * * * * * * * * * AssignExp::toElem: v = -v | (uint)(uint = uint) * * * * * * * * * * * VarExp::toElem: v @ uint * * * * * * * * * * * * DtoSymbolAddress ('v' of type 'uint') * * * * * * * * * * * * * a normal variable * * * * * * * * * * * NegExp::toElem: -v @ uint * * * * * * * * * * * * VarExp::toElem: v @ uint * * * * * * * * * * * * * DtoSymbolAddress ('v' of type 'uint') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * lhs: %v = alloca i32, align 4 * * * * * * * * * * * * rhs: %negval = sub i32 0, %36 * * * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(2010) * * * * * * * * * VarExp::toElem: v @ uint * * * * * * * * * * DtoSymbolAddress ('v' of type 'uint') * * * * * * * * * * * a normal variable * * * * * * * * * return value is '0x1254d4b8' * * * * * LabelStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(2012) * * * * * * ThrowStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(2013) * * * * * * * CallExp::toElem: convError(s, "/usr/include/dlang/ldc/std/conv.d", 2013LU) @ std.conv.ConvException * * * * * * * * VarExp::toElem: convError @ pure @safe ConvException(string source, string fn = __FILE__, ulong ln = cast(ulong)__LINE__) * * * * * * * * * DtoSymbolAddress ('convError' of type 'pure @safe ConvException(string source, string fn = __FILE__, ulong ln = cast(ulong)__LINE__)') * * * * * * * * * * FuncDeclaration * * * * * * * * * * DtoFunctionType(pure @safe ConvException(string source, string fn = __FILE__, ulong ln = cast(ulong)__LINE__)) * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * Final function type: %std.conv.ConvException* (i64, { i64, i8* }, { i64, i8* }) * * * * * * * * * * DtoResolveFunction(std.conv.convError!(string, uint).convError): /usr/include/dlang/ldc/std/conv.d(55) * * * * * * * * * * * DtoDeclareFunction(std.conv.convError!(string, uint).convError): /usr/include/dlang/ldc/std/conv.d(55) * * * * * * * * * * * * DtoFunctionType(pure @safe ConvException(string source, string fn = __FILE__, ulong ln = cast(ulong)__LINE__)) * * * * * * * * * * * * func = declare %std.conv.ConvException* @_D3std4conv20__T9convErrorTAyaTkZ9convErrorFNaNfAyaAyamZC3std4conv13ConvException(i64, { i64, i8* }, { i64, i8* }) * * * * * * * * DtoCallFunction() * * * * * * * * * Building type: pure @safe ConvException(string source, string fn = __FILE__, ulong ln = cast(ulong)__LINE__) * * * * * * * * * * DtoFunctionType(pure @safe ConvException(string source, string fn = __FILE__, ulong ln = cast(ulong)__LINE__)) * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * Final function type: %std.conv.ConvException* (i64, { i64, i8* }, { i64, i8* }) * * * * * * * * * doing normal arguments * * * * * * * * * Arguments so far: (0) * * * * * * * * * Function type: pure @safe ConvException(string source, string fn = __FILE__, ulong ln = cast(ulong)__LINE__) * * * * * * * * * DtoArgument * * * * * * * * * * VarExp::toElem: s @ string * * * * * * * * * * * DtoSymbolAddress ('s' of type 'string') * * * * * * * * * * * * function param * * * * * * * * * * * * type: string * * * * * * * * * DtoArgument * * * * * * * * * * StringExp::toElem: "/usr/include/dlang/ldc/std/conv.d" @ string * * * * * * * * * DtoArgument * * * * * * * * * * IntegerExp::toElem: 2013LU @ ulong * * * * * * * * * * * IntegerExp::toConstElem: 2013LU @ ulong * * * * * * * * * * * * value = i64 2013 * TemplateInstance::codegen: 'std.conv.convError!(string, uint)' * * DtoDefineFunction(std.conv.convError!(string, uint).convError): /usr/include/dlang/ldc/std/conv.d(55) * * * Doing function body for: convError * * * DtoCreateNestedContext for convError * * * * DtoCreateNestedContextType for std.conv.convError!(string, uint).convError * * * CompoundStatement::toIR(): * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(57) * * * * * NewExp::toElem: new ConvException(text("Unexpected ", convError_unexpected(source), " when converting from type string to type uint"), fn, ln) @ std.conv.ConvException * * * * * * new class * * * * * * Calling constructor * * * * * * DtoCallFunction() * * * * * * * doing normal arguments * * * * * * * Arguments so far: (1) * * * * * * * * %.newclass_gc = bitcast %object.Object* %.newclass_gc_alloc to %std.conv.ConvException* * * * * * * * Function type: pure nothrow @safe ConvException(string s, string fn = __FILE__, ulong ln = cast(ulong)__LINE__) * * * * * * * DtoArgument * * * * * * * * CallExp::toElem: text("Unexpected ", convError_unexpected(source), " when converting from type string to type uint") @ string * * * * * * * * * VarExp::toElem: text @ pure nothrow @safe string(string _param_0, string _param_1, string _param_2) * * * * * * * * * * DtoSymbolAddress ('text' of type 'pure nothrow @safe string(string _param_0, string _param_1, string _param_2)') * * * * * * * * * * * FuncDeclaration * * * * * * * * * DtoCallFunction() * * * * * * * * * * doing normal arguments * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * Function type: pure nothrow @safe string(string _param_0, string _param_1, string _param_2) * * * * * * * * * * DtoArgument * * * * * * * * * * * StringExp::toElem: "Unexpected " @ string * * * * * * * * * * DtoArgument * * * * * * * * * * * CallExp::toElem: convError_unexpected(source) @ string * * * * * * * * * * * * VarExp::toElem: convError_unexpected @ pure @safe string(string source) * * * * * * * * * * * * * DtoSymbolAddress ('convError_unexpected' of type 'pure @safe string(string source)') * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * Function type: pure @safe string(string source) * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * VarExp::toElem: source @ string * * * * * * * * * * * * * * * DtoSymbolAddress ('source' of type 'string') * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * type: string * * * * * * * * * * DtoArgument * * * * * * * * * * * StringExp::toElem: " when converting from type string to type uint" @ string * * * * * * * * * * * * type: [47 x i8] * * * * * * * * * * * * init: [47 x i8] c" when converting from type string to type uint\00" * * * * * * * DtoArgument * * * * * * * * VarExp::toElem: fn @ string * * * * * * * * * DtoSymbolAddress ('fn' of type 'string') * * * * * * * * * * function param * * * * * * * * * * type: string * * * * * * * DtoArgument * * * * * * * * VarExp::toElem: ln @ ulong * * * * * * * * * DtoSymbolAddress ('ln' of type 'ulong') * * * * * * * * * * function param * * * * * * * * * * type: ulong * * * * * return value is '0x12552508' * TemplateInstance::codegen: 'std.conv.toImpl!(ushort, string)' * * DtoDefineFunction(std.conv.toImpl!(ushort, string).toImpl): /usr/include/dlang/ldc/std/conv.d(1727) * * * Doing function body for: toImpl * * * DtoCreateNestedContext for toImpl * * * * DtoCreateNestedContextType for std.conv.toImpl!(ushort, string).toImpl * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(1730) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(1731) * * * * * * DeclarationExp::toElem: bool __os3188 = false; | T=void * * * * * * * DtoDeclarationExp: __os3188 * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = bool) * * * * * * * * * llvm value for decl: %__os3188 = alloca i8, align 1 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: __os3188 = false | (bool)(bool = bool) * * * * * * * * * * VarExp::toElem: __os3188 @ bool * * * * * * * * * * * DtoSymbolAddress ('__os3188' of type 'bool') * * * * * * * * * * * * a normal variable * * * * * * * * * * IntegerExp::toElem: false @ bool * * * * * * * * * * * IntegerExp::toConstElem: false @ bool * * * * * * * * * * * * value = i1 false * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * TryFinallyStatement::toIR(): * * * * * * IfStatement::toIR(): * * * * * * * NotExp::toElem: !__os3188 @ bool * * * * * * * * VarExp::toElem: __os3188 @ bool * * * * * * * * * DtoSymbolAddress ('__os3188' of type 'bool') * * * * * * * * * * a normal variable * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(1732) * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(1733) * * * * * * * * * ArrayLengthExp::toElem: value.length @ ulong * * * * * * * * * * VarExp::toElem: value @ string * * * * * * * * * * * DtoSymbolAddress ('value' of type 'string') * * * * * * * * * * * * function param * * * * * * * * * * * * type: string * * * * * * * * * * DtoArrayLen * * * * * * * * * if conditional: %.len = load i64, i64* %4 * * * * * * * * * Casting from 'ulong' to 'bool' * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(1734) * * * * * * * * * * ThrowStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(1735) * * * * * * * * * * * CallExp::toElem: convError(value, "/usr/include/dlang/ldc/std/conv.d", 1735LU) @ std.conv.ConvException * * * * * * * * * * * * VarExp::toElem: convError @ pure @safe ConvException(string source, string fn = __FILE__, ulong ln = cast(ulong)__LINE__) * * * * * * * * * * * * * DtoSymbolAddress ('convError' of type 'pure @safe ConvException(string source, string fn = __FILE__, ulong ln = cast(ulong)__LINE__)') * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * DtoFunctionType(pure @safe ConvException(string source, string fn = __FILE__, ulong ln = cast(ulong)__LINE__)) * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * Final function type: %std.conv.ConvException* (i64, { i64, i8* }, { i64, i8* }) * * * * * * * * * * * * * * DtoResolveFunction(std.conv.convError!(string, ushort).convError): /usr/include/dlang/ldc/std/conv.d(55) * * * * * * * * * * * * * * * DtoDeclareFunction(std.conv.convError!(string, ushort).convError): /usr/include/dlang/ldc/std/conv.d(55) * * * * * * * * * * * * * * * * DtoFunctionType(pure @safe ConvException(string source, string fn = __FILE__, ulong ln = cast(ulong)__LINE__)) * * * * * * * * * * * * * * * * func = declare %std.conv.ConvException* @_D3std4conv20__T9convErrorTAyaTtZ9convErrorFNaNfAyaAyamZC3std4conv13ConvException(i64, { i64, i8* }, { i64, i8* }) * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * Building type: pure @safe ConvException(string source, string fn = __FILE__, ulong ln = cast(ulong)__LINE__) * * * * * * * * * * * * * * DtoFunctionType(pure @safe ConvException(string source, string fn = __FILE__, ulong ln = cast(ulong)__LINE__)) * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * Final function type: %std.conv.ConvException* (i64, { i64, i8* }, { i64, i8* }) * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * Function type: pure @safe ConvException(string source, string fn = __FILE__, ulong ln = cast(ulong)__LINE__) * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * VarExp::toElem: value @ string * * * * * * * * * * * * * * * DtoSymbolAddress ('value' of type 'string') * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * type: string * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * StringExp::toElem: "/usr/include/dlang/ldc/std/conv.d" @ string * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * IntegerExp::toElem: 1735LU @ ulong * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1735LU @ ulong * * * * * * * * * * * * * * * * value = i64 1735 * * * * * * TryCatchStatement::toIR(): * * * * * * * CompoundStatement::toIR(): * * * * * * * * ExpStatement::toIR(): * * * * * * * * * AssignExp::toElem: __os3188 = true | (bool)(bool = bool) * * * * * * * * * * VarExp::toElem: __os3188 @ bool * * * * * * * * * * * DtoSymbolAddress ('__os3188' of type 'bool') * * * * * * * * * * * * a normal variable * * * * * * * * * * IntegerExp::toElem: true @ bool * * * * * * * * * * * IntegerExp::toConstElem: true @ bool * * * * * * * * * * * * value = i1 true * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * * * * ThrowStatement::toIR(): * * * * * * * * * VarExp::toElem: __o3189 @ object.Throwable * * * * * * * * * * DtoSymbolAddress ('__o3189' of type 'object.Throwable') * * * * * * * * * * * a normal variable * * * * * * * ScopeStatement::toIR(): * * * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(1738) * * * * * * * * * CallExp::toElem: parse(value) @ ushort * * * * * * * * * * VarExp::toElem: parse @ pure @safe ushort(ref string s) * * * * * * * * * * * DtoSymbolAddress ('parse' of type 'pure @safe ushort(ref string s)') * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * Building type: pure @safe ushort(ref string s) * * * * * * * * * * * * DtoFunctionType(pure @safe ushort(ref string s)) * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * Final function type: i16 ({ i64, i8* }*) * * * * * * * * * * * doing normal arguments * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * Function type: pure @safe ushort(ref string s) * * * * * * * * * * * DtoArgument * * * * * * * * * * * * VarExp::toElem: value @ string * * * * * * * * * * * * * DtoSymbolAddress ('value' of type 'string') * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * type: string * * * * * * * * * return value is '0x125588c0' * TemplateInstance::codegen: 'std.conv.convError!(string, ushort)' * * DtoDefineFunction(std.conv.convError!(string, ushort).convError): /usr/include/dlang/ldc/std/conv.d(55) * * * Doing function body for: convError * * * DtoCreateNestedContext for convError * * * * DtoCreateNestedContextType for std.conv.convError!(string, ushort).convError * * * CompoundStatement::toIR(): * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(57) * * * * * NewExp::toElem: new ConvException(text("Unexpected ", convError_unexpected(source), " when converting from type string to type ushort"), fn, ln) @ std.conv.ConvException * * * * * * new class * * * * * * Calling constructor * * * * * * DtoCallFunction() * * * * * * * doing normal arguments * * * * * * * Arguments so far: (1) * * * * * * * * %.newclass_gc = bitcast %object.Object* %.newclass_gc_alloc to %std.conv.ConvException* * * * * * * * Function type: pure nothrow @safe ConvException(string s, string fn = __FILE__, ulong ln = cast(ulong)__LINE__) * * * * * * * DtoArgument * * * * * * * * CallExp::toElem: text("Unexpected ", convError_unexpected(source), " when converting from type string to type ushort") @ string * * * * * * * * * VarExp::toElem: text @ pure nothrow @safe string(string _param_0, string _param_1, string _param_2) * * * * * * * * * * DtoSymbolAddress ('text' of type 'pure nothrow @safe string(string _param_0, string _param_1, string _param_2)') * * * * * * * * * * * FuncDeclaration * * * * * * * * * DtoCallFunction() * * * * * * * * * * doing normal arguments * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * Function type: pure nothrow @safe string(string _param_0, string _param_1, string _param_2) * * * * * * * * * * DtoArgument * * * * * * * * * * * StringExp::toElem: "Unexpected " @ string * * * * * * * * * * DtoArgument * * * * * * * * * * * CallExp::toElem: convError_unexpected(source) @ string * * * * * * * * * * * * VarExp::toElem: convError_unexpected @ pure @safe string(string source) * * * * * * * * * * * * * DtoSymbolAddress ('convError_unexpected' of type 'pure @safe string(string source)') * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * Function type: pure @safe string(string source) * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * VarExp::toElem: source @ string * * * * * * * * * * * * * * * DtoSymbolAddress ('source' of type 'string') * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * type: string * * * * * * * * * * DtoArgument * * * * * * * * * * * StringExp::toElem: " when converting from type string to type ushort" @ string * * * * * * * * * * * * type: [49 x i8] * * * * * * * * * * * * init: [49 x i8] c" when converting from type string to type ushort\00" * * * * * * * DtoArgument * * * * * * * * VarExp::toElem: fn @ string * * * * * * * * * DtoSymbolAddress ('fn' of type 'string') * * * * * * * * * * function param * * * * * * * * * * type: string * * * * * * * DtoArgument * * * * * * * * VarExp::toElem: ln @ ulong * * * * * * * * * DtoSymbolAddress ('ln' of type 'ulong') * * * * * * * * * * function param * * * * * * * * * * type: ulong * * * * * return value is '0x1255b638' * TemplateInstance::codegen: 'std.conv.to!bool' * * Ignoring Dsymbol::codegen for std.conv.to!bool.to(A...)(A args) if (!isRawStaticArray!A) * * Ignoring Dsymbol::codegen for std.conv.to!bool.to(S)(ref S arg) if (isRawStaticArray!S) * TemplateInstance::codegen: 'std.conv.to!bool.to!(string)' * * DtoDefineFunction(std.conv.to!bool.to!(string).to): /usr/include/dlang/ldc/std/conv.d(292) * * * DtoFunctionType(pure @safe bool(string _param_0)) * * * * x86-64 ABI: Transforming return type * * * * x86-64 ABI: Transforming argument types * * * * Final function type: i1 ({ i64, i8* }) * * * DtoResolveFunction(std.conv.to!bool.to!(string).to): /usr/include/dlang/ldc/std/conv.d(292) * * * * DtoDeclareFunction(std.conv.to!bool.to!(string).to): /usr/include/dlang/ldc/std/conv.d(292) * * * * * DtoFunctionType(pure @safe bool(string _param_0)) * * * * * func = declare i1 @_D3std4conv9__T2toTbZ11__T2toTAyaZ2toFNaNfAyaZb({ i64, i8* }) * * * Doing function body for: to * * * DtoCreateNestedContext for to * * * * DtoCreateNestedContextType for std.conv.to!bool.to!(string).to * * * CompoundStatement::toIR(): * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(295) * * * * * CallExp::toElem: toImpl(_param_0) @ bool * * * * * * VarExp::toElem: toImpl @ pure @safe bool(string value) * * * * * * * DtoSymbolAddress ('toImpl' of type 'pure @safe bool(string value)') * * * * * * * * FuncDeclaration * * * * * * * * DtoFunctionType(pure @safe bool(string value)) * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * Final function type: i1 ({ i64, i8* }) * * * * * * * * DtoResolveFunction(std.conv.toImpl!(bool, string).toImpl): /usr/include/dlang/ldc/std/conv.d(1727) * * * * * * * * * DtoDeclareFunction(std.conv.toImpl!(bool, string).toImpl): /usr/include/dlang/ldc/std/conv.d(1727) * * * * * * * * * * DtoFunctionType(pure @safe bool(string value)) * * * * * * * * * * func = declare i1 @_D3std4conv17__T6toImplTbTAyaZ6toImplFNaNfAyaZb({ i64, i8* }) * * * * * * DtoCallFunction() * * * * * * * Building type: pure @safe bool(string value) * * * * * * * * DtoFunctionType(pure @safe bool(string value)) * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * Final function type: i1 ({ i64, i8* }) * * * * * * * doing normal arguments * * * * * * * Arguments so far: (0) * * * * * * * Function type: pure @safe bool(string value) * * * * * * * DtoArgument * * * * * * * * VarExp::toElem: _param_0 @ string * * * * * * * * * DtoSymbolAddress ('_param_0' of type 'string') * * * * * * * * * * function param * * * * * * * * * * type: string * * * * * return value is '0x1255e980' * TemplateInstance::codegen: 'std.traits.isImplicitlyConvertible!(string, bool)' * TemplateInstance::codegen: 'std.traits.isFloatingPoint!bool' * TemplateInstance::codegen: 'std.typetuple.staticIndexOf!(bool, dchar, char)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(bool, dchar, char)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(bool, char)' * TemplateInstance::codegen: 'std.conv.parse!(bool, string)' * * DtoDefineFunction(std.conv.parse!(bool, string).parse): /usr/include/dlang/ldc/std/conv.d(1864) * * * DtoFunctionType(pure @safe bool(ref string s)) * * * * x86-64 ABI: Transforming return type * * * * x86-64 ABI: Transforming argument types * * * * Final function type: i1 ({ i64, i8* }*) * * * DtoResolveFunction(std.conv.parse!(bool, string).parse): /usr/include/dlang/ldc/std/conv.d(1864) * * * * DtoDeclareFunction(std.conv.parse!(bool, string).parse): /usr/include/dlang/ldc/std/conv.d(1864) * * * * * DtoFunctionType(pure @safe bool(ref string s)) * * * * * func = declare i1 @_D3std4conv16__T5parseTbTAyaZ5parseFNaNfKAyaZb({ i64, i8* }*) * * * Doing function body for: parse * * * DtoCreateNestedContext for parse * * * * DtoCreateNestedContextType for std.conv.parse!(bool, string).parse * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(1868) * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(1870) * * * * * * NotExp::toElem: !empty(s) @ bool * * * * * * * CallExp::toElem: empty(s) @ bool * * * * * * * * VarExp::toElem: empty @ pure nothrow @nogc @property @safe bool(const(char[]) a) * * * * * * * * * DtoSymbolAddress ('empty' of type 'pure nothrow @nogc @property @safe bool(const(char[]) a)') * * * * * * * * * * FuncDeclaration * * * * * * * * DtoCallFunction() * * * * * * * * * doing normal arguments * * * * * * * * * Arguments so far: (0) * * * * * * * * * Function type: pure nothrow @nogc @property @safe bool(const(char[]) a) * * * * * * * * * DtoArgument * * * * * * * * * * VarExp::toElem: s @ const(char[]) * * * * * * * * * * * DtoSymbolAddress ('s' of type 'string') * * * * * * * * * * * * function param * * * * * * * * * * * * type: string * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(1871) * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(1871) * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(1872) * * * * * * * * * DeclarationExp::toElem: dchar c1 = toLower(front(s)); | T=void * * * * * * * * * * DtoDeclarationExp: c1 * * * * * * * * * * * VarDeclaration * * * * * * * * * * * DtoVarDeclaration(vdtype = dchar) * * * * * * * * * * * * llvm value for decl: %c1 = alloca i32, align 4 * * * * * * * * * * * * expression initializer * * * * * * * * * * * * AssignExp::toElem: c1 = toLower(front(s)) | (dchar)(dchar = dchar) * * * * * * * * * * * * * VarExp::toElem: c1 @ dchar * * * * * * * * * * * * * * DtoSymbolAddress ('c1' of type 'dchar') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * CallExp::toElem: toLower(front(s)) @ dchar * * * * * * * * * * * * * * VarExp::toElem: toLower @ pure nothrow @nogc @safe dchar(dchar c) * * * * * * * * * * * * * * * DtoSymbolAddress ('toLower' of type 'pure nothrow @nogc @safe dchar(dchar c)') * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe dchar(dchar c)) * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * Final function type: i32 (i32) * * * * * * * * * * * * * * * * DtoResolveFunction(std.ascii.toLower!dchar.toLower): /usr/include/dlang/ldc/std/ascii.d(320) * * * * * * * * * * * * * * * * * DtoDeclareFunction(std.ascii.toLower!dchar.toLower): /usr/include/dlang/ldc/std/ascii.d(320) * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe dchar(dchar c)) * * * * * * * * * * * * * * * * * * func = declare i32 @_D3std5ascii14__T7toLowerTwZ7toLowerFNaNbNiNfwZw(i32) * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * Building type: pure nothrow @nogc @safe dchar(dchar c) * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe dchar(dchar c)) * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * Final function type: i32 (i32) * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @safe dchar(dchar c) * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * CallExp::toElem: front(s) @ dchar * * * * * * * * * * * * * * * * * VarExp::toElem: front @ pure @property @safe dchar(string a) * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('front' of type 'pure @property @safe dchar(string a)') * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * Function type: pure @property @safe dchar(string a) * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * VarExp::toElem: s @ string * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('s' of type 'string') * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * type: string * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * lhs: %c1 = alloca i32, align 4 * * * * * * * * * * * * * * rhs: %6 = call i32 @_D3std5ascii14__T7toLowerTwZ7toLowerFNaNbNiNfwZw(i32 %5) * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(1873) * * * * * * * * * DeclarationExp::toElem: bool result = cast(uint)c1 == 116u; | T=void * * * * * * * * * * DtoDeclarationExp: result * * * * * * * * * * * VarDeclaration * * * * * * * * * * * DtoVarDeclaration(vdtype = bool) * * * * * * * * * * * * llvm value for decl: %result = alloca i8, align 1 * * * * * * * * * * * * expression initializer * * * * * * * * * * * * AssignExp::toElem: result = cast(uint)c1 == 116u | (bool)(bool = bool) * * * * * * * * * * * * * VarExp::toElem: result @ bool * * * * * * * * * * * * * * DtoSymbolAddress ('result' of type 'bool') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * EqualExp::toElem: cast(uint)c1 == 116u @ bool * * * * * * * * * * * * * * CastExp::toElem: cast(uint)c1 @ uint * * * * * * * * * * * * * * * VarExp::toElem: c1 @ dchar * * * * * * * * * * * * * * * * DtoSymbolAddress ('c1' of type 'dchar') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * Casting from 'dchar' to 'uint' * * * * * * * * * * * * * * IntegerExp::toElem: 116u @ uint * * * * * * * * * * * * * * * IntegerExp::toConstElem: 116u @ uint * * * * * * * * * * * * * * * * value = i32 116 * * * * * * * * * * * * * * integral or pointer or interface * * * * * * * * * * * * * * lv: %7 = load i32, i32* %c1 * * * * * * * * * * * * * * rv: i32 116 * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * DtoAssign() * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(1874) * * * * * * * * * OrOrExp::toElem: result || cast(uint)c1 == 102u @ bool * * * * * * * * * * VarExp::toElem: result @ bool * * * * * * * * * * * DtoSymbolAddress ('result' of type 'bool') * * * * * * * * * * * * a normal variable * * * * * * * * * * EqualExp::toElem: cast(uint)c1 == 102u @ bool * * * * * * * * * * * CastExp::toElem: cast(uint)c1 @ uint * * * * * * * * * * * * VarExp::toElem: c1 @ dchar * * * * * * * * * * * * * DtoSymbolAddress ('c1' of type 'dchar') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * Casting from 'dchar' to 'uint' * * * * * * * * * * * IntegerExp::toElem: 102u @ uint * * * * * * * * * * * * IntegerExp::toConstElem: 102u @ uint * * * * * * * * * * * * * value = i32 102 * * * * * * * * * * * integral or pointer or interface * * * * * * * * * * * lv: %12 = load i32, i32* %c1 * * * * * * * * * * * rv: i32 102 * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(1875) * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(1875) * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(1876) * * * * * * * * * * * * CallExp::toElem: popFront(s) @ void * * * * * * * * * * * * * VarExp::toElem: popFront @ pure nothrow @nogc @trusted void(ref string str) * * * * * * * * * * * * * * DtoSymbolAddress ('popFront' of type 'pure nothrow @nogc @trusted void(ref string str)') * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * Function type: pure nothrow @nogc @trusted void(ref string str) * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * VarExp::toElem: s @ string * * * * * * * * * * * * * * * * DtoSymbolAddress ('s' of type 'string') * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * type: string * * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(1877) * * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(1877) * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(1877) * * * * * * * * * * * * * * DeclarationExp::toElem: string __aggr3190 = (result ? "rue" : "alse")[]; | T=void * * * * * * * * * * * * * * * DtoDeclarationExp: __aggr3190 * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = string) * * * * * * * * * * * * * * * * * llvm value for decl: %__aggr3190 = alloca { i64, i8* }, align 8 * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * AssignExp::toElem: __aggr3190 = (result ? "rue" : "alse")[] | (string)(string = string) * * * * * * * * * * * * * * * * * * VarExp::toElem: __aggr3190 @ string * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__aggr3190' of type 'string') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * SliceExp::toElem: (result ? "rue" : "alse")[] @ string * * * * * * * * * * * * * * * * * * * CondExp::toElem: result ? "rue" : "alse" @ string * * * * * * * * * * * * * * * * * * * * VarExp::toElem: result @ bool * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('result' of type 'bool') * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * StringExp::toElem: "rue" @ string * * * * * * * * * * * * * * * * * * * * * type: [4 x i8] * * * * * * * * * * * * * * * * * * * * * init: [4 x i8] c"rue\00" * * * * * * * * * * * * * * * * * * * * StringExp::toElem: "alse" @ string * * * * * * * * * * * * * * * * * * * * * type: [5 x i8] * * * * * * * * * * * * * * * * * * * * * init: [5 x i8] c"alse\00" * * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * * * SetArray * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(1877) * * * * * * * * * * * * * * DeclarationExp::toElem: ulong __key3191 = 0LU; | T=void * * * * * * * * * * * * * * * DtoDeclarationExp: __key3191 * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * * * * * * * * * llvm value for decl: %__key3191 = alloca i64, align 8 * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * AssignExp::toElem: __key3191 = 0LU | (ulong)(ulong = ulong) * * * * * * * * * * * * * * * * * * VarExp::toElem: __key3191 @ ulong * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__key3191' of type 'ulong') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * lhs: %__key3191 = alloca i64, align 8 * * * * * * * * * * * * * * * * * * * rhs: i64 0 * * * * * * * * * * * * * ForStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(1877) * * * * * * * * * * * * * * CmpExp::toElem: __key3191 < __aggr3190.length @ bool * * * * * * * * * * * * * * * VarExp::toElem: __key3191 @ ulong * * * * * * * * * * * * * * * * DtoSymbolAddress ('__key3191' of type 'ulong') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * ArrayLengthExp::toElem: __aggr3190.length @ ulong * * * * * * * * * * * * * * * * VarExp::toElem: __aggr3190 @ string * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__aggr3190' of type 'string') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * type 1: %22 = load i64, i64* %__key3191 * * * * * * * * * * * * * * * type 2: %.len4 = load i64, i64* %21 * * * * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(1877) * * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(1877) * * * * * * * * * * * * * * * * DeclarationExp::toElem: immutable immutable(char) c = __aggr3190[__key3191]; | T=void * * * * * * * * * * * * * * * * * DtoDeclarationExp: c * * * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = immutable(char)) * * * * * * * * * * * * * * * * * * * llvm value for decl: %c = alloca i8, align 1 * * * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * * * AssignExp::toElem: c = __aggr3190[__key3191] | (immutable(char))(immutable(char) = immutable(char)) * * * * * * * * * * * * * * * * * * * * VarExp::toElem: c @ immutable(char) * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('c' of type 'immutable(char)') * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * IndexExp::toElem: __aggr3190[__key3191] @ immutable(char) * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: __aggr3190 @ string * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__aggr3190' of type 'string') * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: __key3191 @ ulong * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__key3191' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * * lhs: %c = alloca i8, align 1 * * * * * * * * * * * * * * * * * * * * * rhs: %29 = load i8, i8* %28 * * * * * * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(1879) * * * * * * * * * * * * * * * * OrOrExp::toElem: empty(s) || cast(uint)toLower(front(s)) != cast(uint)cast(int)c @ bool * * * * * * * * * * * * * * * * * CallExp::toElem: empty(s) @ bool * * * * * * * * * * * * * * * * * * VarExp::toElem: empty @ pure nothrow @nogc @property @safe bool(const(char[]) a) * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('empty' of type 'pure nothrow @nogc @property @safe bool(const(char[]) a)') * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @property @safe bool(const(char[]) a) * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * VarExp::toElem: s @ const(char[]) * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('s' of type 'string') * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * type: string * * * * * * * * * * * * * * * * * EqualExp::toElem: cast(uint)toLower(front(s)) != cast(uint)cast(int)c @ bool * * * * * * * * * * * * * * * * * * CastExp::toElem: cast(uint)toLower(front(s)) @ uint * * * * * * * * * * * * * * * * * * * CallExp::toElem: toLower(front(s)) @ dchar * * * * * * * * * * * * * * * * * * * * VarExp::toElem: toLower @ pure nothrow @nogc @safe dchar(dchar c) * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('toLower' of type 'pure nothrow @nogc @safe dchar(dchar c)') * * * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @safe dchar(dchar c) * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * CallExp::toElem: front(s) @ dchar * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: front @ pure @property @safe dchar(string a) * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('front' of type 'pure @property @safe dchar(string a)') * * * * * * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * * * * * * Function type: pure @property @safe dchar(string a) * * * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: s @ string * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('s' of type 'string') * * * * * * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * * * * * * type: string * * * * * * * * * * * * * * * * * * * Casting from 'dchar' to 'uint' * * * * * * * * * * * * * * * * * * CastExp::toElem: cast(uint)cast(int)c @ uint * * * * * * * * * * * * * * * * * * * CastExp::toElem: cast(int)c @ int * * * * * * * * * * * * * * * * * * * * VarExp::toElem: c @ immutable(char) * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('c' of type 'immutable(char)') * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * Casting from 'immutable(char)' to 'int' * * * * * * * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * * * * * * * * Casting from 'int' to 'uint' * * * * * * * * * * * * * * * * * * integral or pointer or interface * * * * * * * * * * * * * * * * * * lv: %34 = call i32 @_D3std5ascii14__T7toLowerTwZ7toLowerFNaNbNiNfwZw(i32 %33) * * * * * * * * * * * * * * * * * * rv: %36 = zext i8 %35 to i32 * * * * * * * * * * * * * * * * GotoStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(1880) * * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(1881) * * * * * * * * * * * * * * * * CallExp::toElem: popFront(s) @ void * * * * * * * * * * * * * * * * * VarExp::toElem: popFront @ pure nothrow @nogc @trusted void(ref string str) * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('popFront' of type 'pure nothrow @nogc @trusted void(ref string str)') * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @trusted void(ref string str) * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * VarExp::toElem: s @ string * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('s' of type 'string') * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * type: string * * * * * * * * * * * * * * AddAssignExp::toElem: __key3191 += 1LU @ ulong * * * * * * * * * * * * * * * Caching l-value of __key3191 += 1LU => __key3191 * * * * * * * * * * * * * * * * VarExp::toElem: __key3191 @ ulong * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__key3191' of type 'ulong') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * AddExp::toElem: __key3191 + 1LU @ ulong * * * * * * * * * * * * * * * * VarExp::toElem: __key3191 @ ulong * * * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * lhs: %__key3191 = alloca i64, align 8 * * * * * * * * * * * * * * * * rhs: %27 = add i64 %26, 1 * * * * * * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(1883) * * * * * * * * * * * * VarExp::toElem: result @ bool * * * * * * * * * * * * * DtoSymbolAddress ('result' of type 'bool') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * return value is '0x1256bac8' * * * * * LabelStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(1886) * * * * * * ThrowStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(1887) * * * * * * * CallExp::toElem: parseError(delegate string() => "bool should be case-insensitive 'true' or 'false'", "/usr/include/dlang/ldc/std/conv.d", 1887LU) @ std.conv.ConvException * * * * * * * * VarExp::toElem: parseError @ pure @safe ConvException(lazy string msg, string fn = __FILE__, ulong ln = cast(ulong)__LINE__) * * * * * * * * * DtoSymbolAddress ('parseError' of type 'pure @safe ConvException(lazy string msg, string fn = __FILE__, ulong ln = cast(ulong)__LINE__)') * * * * * * * * * * FuncDeclaration * * * * * * * * * * DtoFunctionType(pure @safe ConvException(lazy string msg, string fn = __FILE__, ulong ln = cast(ulong)__LINE__)) * * * * * * * * * * * lazy param * * * * * * * * * * * Building type: string delegate() * * * * * * * * * * * * DtoFunctionType(string()) * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * Final function type: { i64, i8* } (i8*) * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * Final function type: %std.conv.ConvException* (i64, { i64, i8* }, { i8*, { i64, i8* } (i8*)* }) * * * * * * * * * * DtoResolveFunction(std.conv.parseError): /usr/include/dlang/ldc/std/conv.d(73) * * * * * * * * * * * DtoDeclareFunction(std.conv.parseError): /usr/include/dlang/ldc/std/conv.d(73) * * * * * * * * * * * * DtoFunctionType(pure @safe ConvException(lazy string msg, string fn = __FILE__, ulong ln = cast(ulong)__LINE__)) * * * * * * * * * * * * func = declare %std.conv.ConvException* @_D3std4conv10parseErrorFNaNfLAyaAyamZC3std4conv13ConvException(i64, { i64, i8* }, { i8*, { i64, i8* } (i8*)* }) * * * * * * * * DtoCallFunction() * * * * * * * * * Building type: pure @safe ConvException(lazy string msg, string fn = __FILE__, ulong ln = cast(ulong)__LINE__) * * * * * * * * * * DtoFunctionType(pure @safe ConvException(lazy string msg, string fn = __FILE__, ulong ln = cast(ulong)__LINE__)) * * * * * * * * * * * lazy param * * * * * * * * * * * Building type: string delegate() * * * * * * * * * * * * DtoFunctionType(string()) * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * Final function type: { i64, i8* } (i8*) * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * Final function type: %std.conv.ConvException* (i64, { i64, i8* }, { i8*, { i64, i8* } (i8*)* }) * * * * * * * * * doing normal arguments * * * * * * * * * Arguments so far: (0) * * * * * * * * * Function type: pure @safe ConvException(lazy string msg, string fn = __FILE__, ulong ln = cast(ulong)__LINE__) * * * * * * * * * DtoArgument * * * * * * * * * * FuncExp::toElem: __dgliteral2 @ string delegate() pure nothrow @nogc @safe * * * * * * * * * * * nested * * * * * * * * * * * kind = delegate * * * * * * * * * * * DtoDefineFunction(std.conv.parse!(bool, string).parse.__dgliteral2): /usr/include/dlang/ldc/std/conv.d(1887) * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe string()) * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * Final function type: { i64, i8* } (i8*) * * * * * * * * * * * * DtoResolveFunction(std.conv.parse!(bool, string).parse.__dgliteral2): /usr/include/dlang/ldc/std/conv.d(1887) * * * * * * * * * * * * * DtoDeclareFunction(std.conv.parse!(bool, string).parse.__dgliteral2): /usr/include/dlang/ldc/std/conv.d(1887) * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe string()) * * * * * * * * * * * * * * func = declare { i64, i8* } @_D3std4conv16__T5parseTbTAyaZ5parseFKAyaZ12__dgliteral2MFNaNbNiNfZAya(i8*) * * * * * * * * * * * * Doing function body for: __dgliteral2 * * * * * * * * * * * * DtoCreateNestedContext for __dgliteral2 * * * * * * * * * * * * * DtoCreateNestedContextType for std.conv.parse!(bool, string).parse.__dgliteral2 * * * * * * * * * * * * * * DtoCreateNestedContextType for std.conv.parse!(bool, string).parse * * * * * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(1887) * * * * * * * * * * * * * * StringExp::toElem: "bool should be case-insensitive 'true' or 'false'" @ string * * * * * * * * * * * * * * * type: [50 x i8] * * * * * * * * * * * * * * * init: [50 x i8] c"bool should be case-insensitive 'true' or 'false'\00" * * * * * * * * * * * * * * return value is '0x125709c0' * * * * * * * * * * * Building type: string delegate() pure nothrow @nogc @safe * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe string()) * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * Final function type: { i64, i8* } (i8*) * * * * * * * * * DtoArgument * * * * * * * * * * StringExp::toElem: "/usr/include/dlang/ldc/std/conv.d" @ string * * * * * * * * * DtoArgument * * * * * * * * * * IntegerExp::toElem: 1887LU @ ulong * * * * * * * * * * * IntegerExp::toConstElem: 1887LU @ ulong * * * * * * * * * * * * value = i64 1887 * TemplateInstance::codegen: 'std.ascii.toLower!dchar' * * DtoDefineFunction(std.ascii.toLower!dchar.toLower): /usr/include/dlang/ldc/std/ascii.d(320) * * * Doing function body for: toLower * * * DtoCreateNestedContext for toLower * * * * DtoCreateNestedContextType for std.ascii.toLower!dchar.toLower * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/ascii.d(322) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/ascii.d(325) * * * * * * DeclarationExp::toElem: alias OC = dchar; | T=void * * * * * * * DtoDeclarationExp: OC * * * * * * * * Ignoring Symbol: alias * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/ascii.d(329) * * * * * * DeclarationExp::toElem: alias R = dchar; | T=void * * * * * * * DtoDeclarationExp: R * * * * * * * * Ignoring Symbol: alias * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/ascii.d(331) * * * * * * CondExp::toElem: isUpper(c) ? cast(dchar)(cast(uint)c + 97u - 65u) : c @ dchar * * * * * * * Building type: dchar* * * * * * * * CallExp::toElem: isUpper(c) @ bool * * * * * * * * VarExp::toElem: isUpper @ pure nothrow @nogc @safe bool(dchar c) * * * * * * * * * DtoSymbolAddress ('isUpper' of type 'pure nothrow @nogc @safe bool(dchar c)') * * * * * * * * * * FuncDeclaration * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe bool(dchar c)) * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * Final function type: i1 (i32) * * * * * * * * * * DtoResolveFunction(std.ascii.isUpper): /usr/include/dlang/ldc/std/ascii.d(123) * * * * * * * * * * * DtoDeclareFunction(std.ascii.isUpper): /usr/include/dlang/ldc/std/ascii.d(123) * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe bool(dchar c)) * * * * * * * * * * * * func = declare i1 @_D3std5ascii7isUpperFNaNbNiNfwZb(i32) * * * * * * * * DtoCallFunction() * * * * * * * * * Building type: pure nothrow @nogc @safe bool(dchar c) * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe bool(dchar c)) * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * Final function type: i1 (i32) * * * * * * * * * doing normal arguments * * * * * * * * * Arguments so far: (0) * * * * * * * * * Function type: pure nothrow @nogc @safe bool(dchar c) * * * * * * * * * DtoArgument * * * * * * * * * * VarExp::toElem: c @ dchar * * * * * * * * * * * DtoSymbolAddress ('c' of type 'dchar') * * * * * * * * * * * * function param * * * * * * * * * * * * type: dchar * * * * * * * CastExp::toElem: cast(dchar)(cast(uint)c + 97u - 65u) @ dchar * * * * * * * * MinExp::toElem: cast(uint)c + 97u - 65u @ uint * * * * * * * * * AddExp::toElem: cast(uint)c + 97u @ uint * * * * * * * * * * CastExp::toElem: cast(uint)c @ uint * * * * * * * * * * * VarExp::toElem: c @ dchar * * * * * * * * * * * * DtoSymbolAddress ('c' of type 'dchar') * * * * * * * * * * * * * function param * * * * * * * * * * * * * type: dchar * * * * * * * * * * * Casting from 'dchar' to 'uint' * * * * * * * * * * IntegerExp::toElem: 97u @ uint * * * * * * * * * * * IntegerExp::toConstElem: 97u @ uint * * * * * * * * * * * * value = i32 97 * * * * * * * * * IntegerExp::toElem: 65u @ uint * * * * * * * * * * IntegerExp::toConstElem: 65u @ uint * * * * * * * * * * * value = i32 65 * * * * * * * * Casting from 'uint' to 'dchar' * * * * * * * VarExp::toElem: c @ dchar * * * * * * * * DtoSymbolAddress ('c' of type 'dchar') * * * * * * * * * function param * * * * * * * * * type: dchar * * * * * * return value is '0x12574318' * TemplateInstance::codegen: 'std.conv.text!(string, string)' * TemplateInstance::codegen: 'std.conv.textImpl!(string, string, string)' * TemplateInstance::codegen: 'std.conv.toImpl!(bool, string)' * * DtoDefineFunction(std.conv.toImpl!(bool, string).toImpl): /usr/include/dlang/ldc/std/conv.d(1727) * * * Doing function body for: toImpl * * * DtoCreateNestedContext for toImpl * * * * DtoCreateNestedContextType for std.conv.toImpl!(bool, string).toImpl * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(1730) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(1731) * * * * * * DeclarationExp::toElem: bool __os3192 = false; | T=void * * * * * * * DtoDeclarationExp: __os3192 * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = bool) * * * * * * * * * llvm value for decl: %__os3192 = alloca i8, align 1 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: __os3192 = false | (bool)(bool = bool) * * * * * * * * * * VarExp::toElem: __os3192 @ bool * * * * * * * * * * * DtoSymbolAddress ('__os3192' of type 'bool') * * * * * * * * * * * * a normal variable * * * * * * * * * * IntegerExp::toElem: false @ bool * * * * * * * * * * * IntegerExp::toConstElem: false @ bool * * * * * * * * * * * * value = i1 false * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * TryFinallyStatement::toIR(): * * * * * * IfStatement::toIR(): * * * * * * * NotExp::toElem: !__os3192 @ bool * * * * * * * * VarExp::toElem: __os3192 @ bool * * * * * * * * * DtoSymbolAddress ('__os3192' of type 'bool') * * * * * * * * * * a normal variable * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(1732) * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(1733) * * * * * * * * * ArrayLengthExp::toElem: value.length @ ulong * * * * * * * * * * VarExp::toElem: value @ string * * * * * * * * * * * DtoSymbolAddress ('value' of type 'string') * * * * * * * * * * * * function param * * * * * * * * * * * * type: string * * * * * * * * * * DtoArrayLen * * * * * * * * * if conditional: %.len = load i64, i64* %4 * * * * * * * * * Casting from 'ulong' to 'bool' * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(1734) * * * * * * * * * * ThrowStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(1735) * * * * * * * * * * * CallExp::toElem: convError(value, "/usr/include/dlang/ldc/std/conv.d", 1735LU) @ std.conv.ConvException * * * * * * * * * * * * VarExp::toElem: convError @ pure @safe ConvException(string source, string fn = __FILE__, ulong ln = cast(ulong)__LINE__) * * * * * * * * * * * * * DtoSymbolAddress ('convError' of type 'pure @safe ConvException(string source, string fn = __FILE__, ulong ln = cast(ulong)__LINE__)') * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * DtoFunctionType(pure @safe ConvException(string source, string fn = __FILE__, ulong ln = cast(ulong)__LINE__)) * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * Final function type: %std.conv.ConvException* (i64, { i64, i8* }, { i64, i8* }) * * * * * * * * * * * * * * DtoResolveFunction(std.conv.convError!(string, bool).convError): /usr/include/dlang/ldc/std/conv.d(55) * * * * * * * * * * * * * * * DtoDeclareFunction(std.conv.convError!(string, bool).convError): /usr/include/dlang/ldc/std/conv.d(55) * * * * * * * * * * * * * * * * DtoFunctionType(pure @safe ConvException(string source, string fn = __FILE__, ulong ln = cast(ulong)__LINE__)) * * * * * * * * * * * * * * * * func = declare %std.conv.ConvException* @_D3std4conv20__T9convErrorTAyaTbZ9convErrorFNaNfAyaAyamZC3std4conv13ConvException(i64, { i64, i8* }, { i64, i8* }) * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * Building type: pure @safe ConvException(string source, string fn = __FILE__, ulong ln = cast(ulong)__LINE__) * * * * * * * * * * * * * * DtoFunctionType(pure @safe ConvException(string source, string fn = __FILE__, ulong ln = cast(ulong)__LINE__)) * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * Final function type: %std.conv.ConvException* (i64, { i64, i8* }, { i64, i8* }) * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * Function type: pure @safe ConvException(string source, string fn = __FILE__, ulong ln = cast(ulong)__LINE__) * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * VarExp::toElem: value @ string * * * * * * * * * * * * * * * DtoSymbolAddress ('value' of type 'string') * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * type: string * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * StringExp::toElem: "/usr/include/dlang/ldc/std/conv.d" @ string * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * IntegerExp::toElem: 1735LU @ ulong * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1735LU @ ulong * * * * * * * * * * * * * * * * value = i64 1735 * * * * * * TryCatchStatement::toIR(): * * * * * * * CompoundStatement::toIR(): * * * * * * * * ExpStatement::toIR(): * * * * * * * * * AssignExp::toElem: __os3192 = true | (bool)(bool = bool) * * * * * * * * * * VarExp::toElem: __os3192 @ bool * * * * * * * * * * * DtoSymbolAddress ('__os3192' of type 'bool') * * * * * * * * * * * * a normal variable * * * * * * * * * * IntegerExp::toElem: true @ bool * * * * * * * * * * * IntegerExp::toConstElem: true @ bool * * * * * * * * * * * * value = i1 true * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * * * * ThrowStatement::toIR(): * * * * * * * * * VarExp::toElem: __o3193 @ object.Throwable * * * * * * * * * * DtoSymbolAddress ('__o3193' of type 'object.Throwable') * * * * * * * * * * * a normal variable * * * * * * * ScopeStatement::toIR(): * * * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(1738) * * * * * * * * * CallExp::toElem: parse(value) @ bool * * * * * * * * * * VarExp::toElem: parse @ pure @safe bool(ref string s) * * * * * * * * * * * DtoSymbolAddress ('parse' of type 'pure @safe bool(ref string s)') * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * Building type: pure @safe bool(ref string s) * * * * * * * * * * * * DtoFunctionType(pure @safe bool(ref string s)) * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * Final function type: i1 ({ i64, i8* }*) * * * * * * * * * * * doing normal arguments * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * Function type: pure @safe bool(ref string s) * * * * * * * * * * * DtoArgument * * * * * * * * * * * * VarExp::toElem: value @ string * * * * * * * * * * * * * DtoSymbolAddress ('value' of type 'string') * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * type: string * * * * * * * * * return value is '0x1257a930' * TemplateInstance::codegen: 'std.conv.convError!(string, bool)' * * DtoDefineFunction(std.conv.convError!(string, bool).convError): /usr/include/dlang/ldc/std/conv.d(55) * * * Doing function body for: convError * * * DtoCreateNestedContext for convError * * * * DtoCreateNestedContextType for std.conv.convError!(string, bool).convError * * * CompoundStatement::toIR(): * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(57) * * * * * NewExp::toElem: new ConvException(text("Unexpected ", convError_unexpected(source), " when converting from type string to type bool"), fn, ln) @ std.conv.ConvException * * * * * * new class * * * * * * Calling constructor * * * * * * DtoCallFunction() * * * * * * * doing normal arguments * * * * * * * Arguments so far: (1) * * * * * * * * %.newclass_gc = bitcast %object.Object* %.newclass_gc_alloc to %std.conv.ConvException* * * * * * * * Function type: pure nothrow @safe ConvException(string s, string fn = __FILE__, ulong ln = cast(ulong)__LINE__) * * * * * * * DtoArgument * * * * * * * * CallExp::toElem: text("Unexpected ", convError_unexpected(source), " when converting from type string to type bool") @ string * * * * * * * * * VarExp::toElem: text @ pure nothrow @safe string(string _param_0, string _param_1, string _param_2) * * * * * * * * * * DtoSymbolAddress ('text' of type 'pure nothrow @safe string(string _param_0, string _param_1, string _param_2)') * * * * * * * * * * * FuncDeclaration * * * * * * * * * DtoCallFunction() * * * * * * * * * * doing normal arguments * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * Function type: pure nothrow @safe string(string _param_0, string _param_1, string _param_2) * * * * * * * * * * DtoArgument * * * * * * * * * * * StringExp::toElem: "Unexpected " @ string * * * * * * * * * * DtoArgument * * * * * * * * * * * CallExp::toElem: convError_unexpected(source) @ string * * * * * * * * * * * * VarExp::toElem: convError_unexpected @ pure @safe string(string source) * * * * * * * * * * * * * DtoSymbolAddress ('convError_unexpected' of type 'pure @safe string(string source)') * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * Function type: pure @safe string(string source) * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * VarExp::toElem: source @ string * * * * * * * * * * * * * * * DtoSymbolAddress ('source' of type 'string') * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * type: string * * * * * * * * * * DtoArgument * * * * * * * * * * * StringExp::toElem: " when converting from type string to type bool" @ string * * * * * * * * * * * * type: [47 x i8] * * * * * * * * * * * * init: [47 x i8] c" when converting from type string to type bool\00" * * * * * * * DtoArgument * * * * * * * * VarExp::toElem: fn @ string * * * * * * * * * DtoSymbolAddress ('fn' of type 'string') * * * * * * * * * * function param * * * * * * * * * * type: string * * * * * * * DtoArgument * * * * * * * * VarExp::toElem: ln @ ulong * * * * * * * * * DtoSymbolAddress ('ln' of type 'ulong') * * * * * * * * * * function param * * * * * * * * * * type: ulong * * * * * return value is '0x1257d618' * TemplateInstance::codegen: 'std.range.primitives.isBidirectionalRange!(string[])' * * VarDeclaration::codegen(): 'std.range.primitives.isBidirectionalRange!(string[]).isBidirectionalRange' * * * DtoResolveVariable(std.range.primitives.isBidirectionalRange!(string[]).isBidirectionalRange) * TemplateInstance::codegen: 'std.range.primitives.isForwardRange!(string[])' * * VarDeclaration::codegen(): 'std.range.primitives.isForwardRange!(string[]).isForwardRange' * * * DtoResolveVariable(std.range.primitives.isForwardRange!(string[]).isForwardRange) * TemplateInstance::codegen: 'std.range.primitives.isInputRange!(string[])' * * VarDeclaration::codegen(): 'std.range.primitives.isInputRange!(string[]).isInputRange' * * * DtoResolveVariable(std.range.primitives.isInputRange!(string[]).isInputRange) * TemplateInstance::codegen: 'std.range.primitives.popFront!string' * * DtoDefineFunction(std.range.primitives.popFront!string.popFront): /usr/include/dlang/ldc/std/range/primitives.d(1992) * * * DtoFunctionType(pure nothrow @nogc @safe void(ref string[] a)) * * * * Building type: string[]* * * * * x86-64 ABI: Transforming argument types * * * * Final function type: void ({ i64, { i64, i8* }* }*) * * * DtoResolveFunction(std.range.primitives.popFront!string.popFront): /usr/include/dlang/ldc/std/range/primitives.d(1992) * * * * DtoDeclareFunction(std.range.primitives.popFront!string.popFront): /usr/include/dlang/ldc/std/range/primitives.d(1992) * * * * * DtoFunctionType(pure nothrow @nogc @safe void(ref string[] a)) * * * * * func = declare void @_D3std5range10primitives17__T8popFrontTAyaZ8popFrontFNaNbNiNfKAAyaZv({ i64, { i64, i8* }* }*) * * * Doing function body for: popFront * * * DtoCreateNestedContext for popFront * * * * DtoCreateNestedContextType for std.range.primitives.popFront!string.popFront * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/range/primitives.d(1994) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/range/primitives.d(1995) * * * * * * AssertExp::toElem: assert(a.length, "Attempting to popFront() past the end of an array of string") * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/range/primitives.d(1996) * * * * * * AssignExp::toElem: a = a[1..__dollar] | (string[])(string[] = string[]) * * * * * * * VarExp::toElem: a @ string[] * * * * * * * * DtoSymbolAddress ('a' of type 'string[]') * * * * * * * * * function param * * * * * * * * * type: string[] * * * * * * * SliceExp::toElem: a[1..__dollar] @ string[] * * * * * * * * VarExp::toElem: a @ string[] * * * * * * * * * DtoSymbolAddress ('a' of type 'string[]') * * * * * * * * * * function param * * * * * * * * * * type: string[] * * * * * * * * DtoArrayPtr * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * value = i64 1 * * * * * * * * VarExp::toElem: __dollar @ ulong * * * * * * * * * DtoSymbolAddress ('__dollar' of type 'ulong') * * * * * * * * * * Id::dollar * * * * * * * * * * DtoArrayLen * * * * * * * * DtoArrayLen * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * DtoAssign() * * * * * * * * DtoArrayAssign * * * * * * * * * DtoArrayPtr * * * * * * * * * DtoArrayLen * * * * * * * * * SetArray * TemplateInstance::codegen: 'std.range.primitives.save!string' * * DtoDefineFunction(std.range.primitives.save!string.save): /usr/include/dlang/ldc/std/range/primitives.d(1971) * * * DtoFunctionType(pure nothrow @nogc @property @safe string[](string[] a)) * * * * x86-64 ABI: Transforming return type * * * * x86-64 ABI: Transforming argument types * * * * Final function type: { i64, { i64, i8* }* } ({ i64, { i64, i8* }* }) * * * DtoResolveFunction(std.range.primitives.save!string.save): /usr/include/dlang/ldc/std/range/primitives.d(1971) * * * * DtoDeclareFunction(std.range.primitives.save!string.save): /usr/include/dlang/ldc/std/range/primitives.d(1971) * * * * * DtoFunctionType(pure nothrow @nogc @property @safe string[](string[] a)) * * * * * func = declare { i64, { i64, i8* }* } @_D3std5range10primitives13__T4saveTAyaZ4saveFNaNbNdNiNfAAyaZAAya({ i64, { i64, i8* }* }) * * * Doing function body for: save * * * DtoCreateNestedContext for save * * * * DtoCreateNestedContextType for std.range.primitives.save!string.save * * * CompoundStatement::toIR(): * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/range/primitives.d(1973) * * * * * VarExp::toElem: a @ string[] * * * * * * DtoSymbolAddress ('a' of type 'string[]') * * * * * * * function param * * * * * * * type: string[] * * * * * return value is '0x12581f18' * TemplateInstance::codegen: 'std.range.primitives.popBack!string' * * DtoDefineFunction(std.range.primitives.popBack!string.popBack): /usr/include/dlang/ldc/std/range/primitives.d(2091) * * * DtoFunctionType(pure nothrow @nogc @safe void(ref string[] a)) * * * * x86-64 ABI: Transforming argument types * * * * Final function type: void ({ i64, { i64, i8* }* }*) * * * DtoResolveFunction(std.range.primitives.popBack!string.popBack): /usr/include/dlang/ldc/std/range/primitives.d(2091) * * * * DtoDeclareFunction(std.range.primitives.popBack!string.popBack): /usr/include/dlang/ldc/std/range/primitives.d(2091) * * * * * DtoFunctionType(pure nothrow @nogc @safe void(ref string[] a)) * * * * * func = declare void @_D3std5range10primitives16__T7popBackTAyaZ7popBackFNaNbNiNfKAAyaZv({ i64, { i64, i8* }* }*) * * * Doing function body for: popBack * * * DtoCreateNestedContext for popBack * * * * DtoCreateNestedContextType for std.range.primitives.popBack!string.popBack * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/range/primitives.d(2093) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/range/primitives.d(2094) * * * * * * AssertExp::toElem: assert(a.length) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/range/primitives.d(2095) * * * * * * AssignExp::toElem: a = a[0..__dollar - 1LU] | (string[])(string[] = string[]) * * * * * * * VarExp::toElem: a @ string[] * * * * * * * * DtoSymbolAddress ('a' of type 'string[]') * * * * * * * * * function param * * * * * * * * * type: string[] * * * * * * * SliceExp::toElem: a[0..__dollar - 1LU] @ string[] * * * * * * * * VarExp::toElem: a @ string[] * * * * * * * * * DtoSymbolAddress ('a' of type 'string[]') * * * * * * * * * * function param * * * * * * * * * * type: string[] * * * * * * * * DtoArrayPtr * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * value = i64 0 * * * * * * * * MinExp::toElem: __dollar - 1LU @ ulong * * * * * * * * * VarExp::toElem: __dollar @ ulong * * * * * * * * * * DtoSymbolAddress ('__dollar' of type 'ulong') * * * * * * * * * * * Id::dollar * * * * * * * * * * * DtoArrayLen * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * value = i64 1 * * * * * * * * DtoArrayLen * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * DtoAssign() * * * * * * * * DtoArrayAssign * * * * * * * * * DtoArrayPtr * * * * * * * * * DtoArrayLen * * * * * * * * * SetArray * TemplateInstance::codegen: 'std.range.primitives.back!string' * * DtoDefineFunction(std.range.primitives.back!string.back): /usr/include/dlang/ldc/std/range/primitives.d(2201) * * * DtoFunctionType(pure nothrow @nogc @property ref @safe string(string[] a)) * * * * x86-64 ABI: Transforming argument types * * * * Final function type: { i64, i8* }* ({ i64, { i64, i8* }* }) * * * DtoResolveFunction(std.range.primitives.back!string.back): /usr/include/dlang/ldc/std/range/primitives.d(2201) * * * * DtoDeclareFunction(std.range.primitives.back!string.back): /usr/include/dlang/ldc/std/range/primitives.d(2201) * * * * * DtoFunctionType(pure nothrow @nogc @property ref @safe string(string[] a)) * * * * * func = declare { i64, i8* }* @_D3std5range10primitives13__T4backTAyaZ4backFNaNbNcNdNiNfAAyaZAya({ i64, { i64, i8* }* }) * * * Doing function body for: back * * * DtoCreateNestedContext for back * * * * DtoCreateNestedContextType for std.range.primitives.back!string.back * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/range/primitives.d(2202) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/range/primitives.d(2203) * * * * * * AssertExp::toElem: assert(a.length, "Attempting to fetch the back of an empty array of string") * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/range/primitives.d(2204) * * * * * * AddrExp::toElem: &a[__dollar - 1LU] @ string* * * * * * * * IndexExp::toElem: a[__dollar - 1LU] @ string * * * * * * * * VarExp::toElem: a @ string[] * * * * * * * * * DtoSymbolAddress ('a' of type 'string[]') * * * * * * * * * * function param * * * * * * * * * * type: string[] * * * * * * * * MinExp::toElem: __dollar - 1LU @ ulong * * * * * * * * * VarExp::toElem: __dollar @ ulong * * * * * * * * * * DtoSymbolAddress ('__dollar' of type 'ulong') * * * * * * * * * * * Id::dollar * * * * * * * * * * * DtoArrayLen * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * value = i64 1 * * * * * * * * DtoArrayLen * * * * * * * * DtoArrayPtr * * * * * * * is nothing special * * * * * * * lval: %5 = getelementptr { i64, i8* }, { i64, i8* }* %.ptr, i64 %2 * * * * * * return value is '0x125874c0' * TemplateInstance::codegen: 'std.range.primitives.hasLvalueElements!(string[])' * TemplateInstance::codegen: 'std.range.primitives.isRandomAccessRange!(string[])' * * VarDeclaration::codegen(): 'std.range.primitives.isRandomAccessRange!(string[]).isRandomAccessRange' * * * DtoResolveVariable(std.range.primitives.isRandomAccessRange!(string[]).isRandomAccessRange) * TemplateInstance::codegen: 'std.range.primitives.hasLength!(string[])' * * VarDeclaration::codegen(): 'std.range.primitives.hasLength!(string[]).hasLength' * * * DtoResolveVariable(std.range.primitives.hasLength!(string[]).hasLength) * TemplateInstance::codegen: 'std.range.primitives.isInfinite!(string[])' * * VarDeclaration::codegen(): 'std.range.primitives.isInfinite!(string[]).isInfinite' * * * DtoResolveVariable(std.range.primitives.isInfinite!(string[]).isInfinite) * TemplateInstance::codegen: 'std.algorithm.mutation.remove!(cast(SwapStrategy)2, string[], ulong)' * * DtoDefineFunction(std.algorithm.mutation.remove!(cast(SwapStrategy)2, string[], ulong).remove): /usr/include/dlang/ldc/std/algorithm/mutation.d(1418) * * * DtoFunctionType(pure @safe string[](string[] range, ulong _param_1)) * * * * x86-64 ABI: Transforming return type * * * * x86-64 ABI: Transforming argument types * * * * Final function type: { i64, { i64, i8* }* } (i64, { i64, { i64, i8* }* }) * * * DtoResolveFunction(std.algorithm.mutation.remove!(cast(SwapStrategy)2, string[], ulong).remove): /usr/include/dlang/ldc/std/algorithm/mutation.d(1418) * * * * DtoDeclareFunction(std.algorithm.mutation.remove!(cast(SwapStrategy)2, string[], ulong).remove): /usr/include/dlang/ldc/std/algorithm/mutation.d(1418) * * * * * DtoFunctionType(pure @safe string[](string[] range, ulong _param_1)) * * * * * func = declare { i64, { i64, i8* }* } @_D3std9algorithm8mutation59__T6removeVE3std9algorithm8mutation12SwapStrategyi2TAAyaTmZ6removeFNaNfAAyamZAAya(i64, { i64, { i64, i8* }* }) * * * Doing function body for: remove * * * DtoCreateNestedContext for remove * * * * DtoCreateNestedContextType for std.algorithm.mutation.remove!(cast(SwapStrategy)2, string[], ulong).remove * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/mutation.d(1425) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/mutation.d(1426) * * * * * * DeclarationExp::toElem: string[] result = range; | T=void * * * * * * * DtoDeclarationExp: result * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = string[]) * * * * * * * * * llvm value for decl: %result = alloca { i64, { i64, i8* }* }, align 8 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: result = range | (string[])(string[] = string[]) * * * * * * * * * * VarExp::toElem: result @ string[] * * * * * * * * * * * DtoSymbolAddress ('result' of type 'string[]') * * * * * * * * * * * * a normal variable * * * * * * * * * * VarExp::toElem: range @ string[] * * * * * * * * * * * DtoSymbolAddress ('range' of type 'string[]') * * * * * * * * * * * * function param * * * * * * * * * * * * type: string[] * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * DtoAssign() * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * SetArray * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/mutation.d(1427) * * * * * * DeclarationExp::toElem: string[] src = range; | T=void * * * * * * * DtoDeclarationExp: src * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = string[]) * * * * * * * * * llvm value for decl: %src = alloca { i64, { i64, i8* }* }, align 8 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: src = range | (string[])(string[] = string[]) * * * * * * * * * * VarExp::toElem: src @ string[] * * * * * * * * * * * DtoSymbolAddress ('src' of type 'string[]') * * * * * * * * * * * * a normal variable * * * * * * * * * * VarExp::toElem: range @ string[] * * * * * * * * * * * DtoSymbolAddress ('range' of type 'string[]') * * * * * * * * * * * * function param * * * * * * * * * * * * type: string[] * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * DtoAssign() * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * SetArray * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/mutation.d(1427) * * * * * * DeclarationExp::toElem: string[] tgt = range; | T=void * * * * * * * DtoDeclarationExp: tgt * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = string[]) * * * * * * * * * llvm value for decl: %tgt = alloca { i64, { i64, i8* }* }, align 8 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: tgt = range | (string[])(string[] = string[]) * * * * * * * * * * VarExp::toElem: tgt @ string[] * * * * * * * * * * * DtoSymbolAddress ('tgt' of type 'string[]') * * * * * * * * * * * * a normal variable * * * * * * * * * * VarExp::toElem: range @ string[] * * * * * * * * * * * DtoSymbolAddress ('range' of type 'string[]') * * * * * * * * * * * * function param * * * * * * * * * * * * type: string[] * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * DtoAssign() * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * SetArray * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/mutation.d(1428) * * * * * * DeclarationExp::toElem: ulong pos = 0LU; | T=void * * * * * * * DtoDeclarationExp: pos * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * llvm value for decl: %pos = alloca i64, align 8 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: pos = 0LU | (ulong)(ulong = ulong) * * * * * * * * * * VarExp::toElem: pos @ ulong * * * * * * * * * * * DtoSymbolAddress ('pos' of type 'ulong') * * * * * * * * * * * * a normal variable * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * value = i64 0 * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %pos = alloca i64, align 8 * * * * * * * * * * * rhs: i64 0 * * * * * UnrolledLoopStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/mutation.d(1429) * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/mutation.d(1429) * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/mutation.d(1429) * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/mutation.d(1429) * * * * * * * * * DeclarationExp::toElem: enum ulong pass = 0LU; | T=void * * * * * * * * * * DtoDeclarationExp: pass * * * * * * * * * * * VarDeclaration * * * * * * * * * * * Manifest constant, nothing to do. * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/mutation.d(1429) * * * * * * * * * DeclarationExp::toElem: ulong i = _param_1; | T=void * * * * * * * * * * DtoDeclarationExp: i * * * * * * * * * * * VarDeclaration * * * * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * * * * llvm value for decl: %i = alloca i64, align 8 * * * * * * * * * * * * expression initializer * * * * * * * * * * * * AssignExp::toElem: i = _param_1 | (ulong)(ulong = ulong) * * * * * * * * * * * * * VarExp::toElem: i @ ulong * * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'ulong') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * VarExp::toElem: _param_1 @ ulong * * * * * * * * * * * * * * DtoSymbolAddress ('_param_1' of type 'ulong') * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * type: ulong * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * lhs: %i = alloca i64, align 8 * * * * * * * * * * * * * * rhs: %13 = load i64, i64* %_param_1 * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/mutation.d(1437) * * * * * * * * * DeclarationExp::toElem: ulong from = i; | T=void * * * * * * * * * * DtoDeclarationExp: from * * * * * * * * * * * VarDeclaration * * * * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * * * * llvm value for decl: %from = alloca i64, align 8 * * * * * * * * * * * * expression initializer * * * * * * * * * * * * AssignExp::toElem: from = i | (ulong)(ulong = ulong) * * * * * * * * * * * * * VarExp::toElem: from @ ulong * * * * * * * * * * * * * * DtoSymbolAddress ('from' of type 'ulong') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * VarExp::toElem: i @ ulong * * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'ulong') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * lhs: %from = alloca i64, align 8 * * * * * * * * * * * * * * rhs: %14 = load i64, i64* %i * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/mutation.d(1438) * * * * * * * * * DeclarationExp::toElem: enum int delta = 1; | T=void * * * * * * * * * * DtoDeclarationExp: delta * * * * * * * * * * * VarDeclaration * * * * * * * * * * * Manifest constant, nothing to do. * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/mutation.d(1454) * * * * * * * * * CallExp::toElem: popFrontExactly(src, from) @ void * * * * * * * * * * VarExp::toElem: popFrontExactly @ pure nothrow @nogc @safe void(ref string[] r, ulong n) * * * * * * * * * * * DtoSymbolAddress ('popFrontExactly' of type 'pure nothrow @nogc @safe void(ref string[] r, ulong n)') * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe void(ref string[] r, ulong n)) * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * Final function type: void (i64, { i64, { i64, i8* }* }*) * * * * * * * * * * * * DtoResolveFunction(std.range.primitives.popFrontExactly!(string[]).popFrontExactly): /usr/include/dlang/ldc/std/range/primitives.d(1752) * * * * * * * * * * * * * DtoDeclareFunction(std.range.primitives.popFrontExactly!(string[]).popFrontExactly): /usr/include/dlang/ldc/std/range/primitives.d(1752) * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe void(ref string[] r, ulong n)) * * * * * * * * * * * * * * func = declare void @_D3std5range10primitives26__T15popFrontExactlyTAAyaZ15popFrontExactlyFNaNbNiNfKAAyamZv(i64, { i64, { i64, i8* }* }*) * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * Building type: pure nothrow @nogc @safe void(ref string[] r, ulong n) * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe void(ref string[] r, ulong n)) * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * Final function type: void (i64, { i64, { i64, i8* }* }*) * * * * * * * * * * * doing normal arguments * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * Function type: pure nothrow @nogc @safe void(ref string[] r, ulong n) * * * * * * * * * * * DtoArgument * * * * * * * * * * * * VarExp::toElem: src @ string[] * * * * * * * * * * * * * DtoSymbolAddress ('src' of type 'string[]') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * DtoArgument * * * * * * * * * * * * VarExp::toElem: from @ ulong * * * * * * * * * * * * * DtoSymbolAddress ('from' of type 'ulong') * * * * * * * * * * * * * * a normal variable * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/mutation.d(1455) * * * * * * * * * CallExp::toElem: popFrontExactly(tgt, from) @ void * * * * * * * * * * VarExp::toElem: popFrontExactly @ pure nothrow @nogc @safe void(ref string[] r, ulong n) * * * * * * * * * * * DtoSymbolAddress ('popFrontExactly' of type 'pure nothrow @nogc @safe void(ref string[] r, ulong n)') * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * doing normal arguments * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * Function type: pure nothrow @nogc @safe void(ref string[] r, ulong n) * * * * * * * * * * * DtoArgument * * * * * * * * * * * * VarExp::toElem: tgt @ string[] * * * * * * * * * * * * * DtoSymbolAddress ('tgt' of type 'string[]') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * DtoArgument * * * * * * * * * * * * VarExp::toElem: from @ ulong * * * * * * * * * * * * * DtoSymbolAddress ('from' of type 'ulong') * * * * * * * * * * * * * * a normal variable * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/mutation.d(1456) * * * * * * * * * AssignExp::toElem: pos = from | (ulong)(ulong = ulong) * * * * * * * * * * VarExp::toElem: pos @ ulong * * * * * * * * * * * DtoSymbolAddress ('pos' of type 'ulong') * * * * * * * * * * * * a normal variable * * * * * * * * * * VarExp::toElem: from @ ulong * * * * * * * * * * * DtoSymbolAddress ('from' of type 'ulong') * * * * * * * * * * * * a normal variable * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %pos = alloca i64, align 8 * * * * * * * * * * * rhs: %17 = load i64, i64* %from * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/mutation.d(1459) * * * * * * * * * CallExp::toElem: popFrontExactly(src, 1LU) @ void * * * * * * * * * * VarExp::toElem: popFrontExactly @ pure nothrow @nogc @safe void(ref string[] r, ulong n) * * * * * * * * * * * DtoSymbolAddress ('popFrontExactly' of type 'pure nothrow @nogc @safe void(ref string[] r, ulong n)') * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * doing normal arguments * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * Function type: pure nothrow @nogc @safe void(ref string[] r, ulong n) * * * * * * * * * * * DtoArgument * * * * * * * * * * * * VarExp::toElem: src @ string[] * * * * * * * * * * * * * DtoSymbolAddress ('src' of type 'string[]') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * DtoArgument * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * value = i64 1 * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/mutation.d(1460) * * * * * * * * * CallExp::toElem: popBackExactly(result, 1LU) @ void * * * * * * * * * * VarExp::toElem: popBackExactly @ pure nothrow @nogc @safe void(ref string[] r, ulong n) * * * * * * * * * * * DtoSymbolAddress ('popBackExactly' of type 'pure nothrow @nogc @safe void(ref string[] r, ulong n)') * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe void(ref string[] r, ulong n)) * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * Final function type: void (i64, { i64, { i64, i8* }* }*) * * * * * * * * * * * * DtoResolveFunction(std.range.primitives.popBackExactly!(string[]).popBackExactly): /usr/include/dlang/ldc/std/range/primitives.d(1768) * * * * * * * * * * * * * DtoDeclareFunction(std.range.primitives.popBackExactly!(string[]).popBackExactly): /usr/include/dlang/ldc/std/range/primitives.d(1768) * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe void(ref string[] r, ulong n)) * * * * * * * * * * * * * * func = declare void @_D3std5range10primitives25__T14popBackExactlyTAAyaZ14popBackExactlyFNaNbNiNfKAAyamZv(i64, { i64, { i64, i8* }* }*) * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * Building type: pure nothrow @nogc @safe void(ref string[] r, ulong n) * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe void(ref string[] r, ulong n)) * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * Final function type: void (i64, { i64, { i64, i8* }* }*) * * * * * * * * * * * doing normal arguments * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * Function type: pure nothrow @nogc @safe void(ref string[] r, ulong n) * * * * * * * * * * * DtoArgument * * * * * * * * * * * * VarExp::toElem: result @ string[] * * * * * * * * * * * * * DtoSymbolAddress ('result' of type 'string[]') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * DtoArgument * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * value = i64 1 * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/mutation.d(1461) * * * * * * * * * AddAssignExp::toElem: pos += 1LU @ ulong * * * * * * * * * * Caching l-value of pos += 1LU => pos * * * * * * * * * * * VarExp::toElem: pos @ ulong * * * * * * * * * * * * DtoSymbolAddress ('pos' of type 'ulong') * * * * * * * * * * * * * a normal variable * * * * * * * * * * AddExp::toElem: pos + 1LU @ ulong * * * * * * * * * * * VarExp::toElem: pos @ ulong * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %pos = alloca i64, align 8 * * * * * * * * * * * rhs: %19 = add i64 %18, 1 * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/mutation.d(1464) * * * * * * CallExp::toElem: moveAll(src, tgt) @ string[] * * * * * * * VarExp::toElem: moveAll @ pure @safe string[](string[] src, string[] tgt) * * * * * * * * DtoSymbolAddress ('moveAll' of type 'pure @safe string[](string[] src, string[] tgt)') * * * * * * * * * FuncDeclaration * * * * * * * * * DtoFunctionType(pure @safe string[](string[] src, string[] tgt)) * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: { i64, { i64, i8* }* } ({ i64, { i64, i8* }* }, { i64, { i64, i8* }* }) * * * * * * * * * DtoResolveFunction(std.algorithm.mutation.moveAll!(string[], string[]).moveAll): /usr/include/dlang/ldc/std/algorithm/mutation.d(1134) * * * * * * * * * * DtoDeclareFunction(std.algorithm.mutation.moveAll!(string[], string[]).moveAll): /usr/include/dlang/ldc/std/algorithm/mutation.d(1134) * * * * * * * * * * * DtoFunctionType(pure @safe string[](string[] src, string[] tgt)) * * * * * * * * * * * func = declare { i64, { i64, i8* }* } @_D3std9algorithm8mutation22__T7moveAllTAAyaTAAyaZ7moveAllFNaNfAAyaAAyaZAAya({ i64, { i64, i8* }* }, { i64, { i64, i8* }* }) * * * * * * * DtoCallFunction() * * * * * * * * Building type: pure @safe string[](string[] src, string[] tgt) * * * * * * * * * DtoFunctionType(pure @safe string[](string[] src, string[] tgt)) * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: { i64, { i64, i8* }* } ({ i64, { i64, i8* }* }, { i64, { i64, i8* }* }) * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (0) * * * * * * * * Function type: pure @safe string[](string[] src, string[] tgt) * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: src @ string[] * * * * * * * * * * DtoSymbolAddress ('src' of type 'string[]') * * * * * * * * * * * a normal variable * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: tgt @ string[] * * * * * * * * * * DtoSymbolAddress ('tgt' of type 'string[]') * * * * * * * * * * * a normal variable * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/mutation.d(1465) * * * * * * VarExp::toElem: result @ string[] * * * * * * * DtoSymbolAddress ('result' of type 'string[]') * * * * * * * * a normal variable * * * * * * return value is '0x125957f8' * TemplateInstance::codegen: 'std.range.primitives.popFrontExactly!(string[])' * * DtoDefineFunction(std.range.primitives.popFrontExactly!(string[]).popFrontExactly): /usr/include/dlang/ldc/std/range/primitives.d(1752) * * * Doing function body for: popFrontExactly * * * DtoCreateNestedContext for popFrontExactly * * * * DtoCreateNestedContextType for std.range.primitives.popFrontExactly!(string[]).popFrontExactly * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/range/primitives.d(1754) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/range/primitives.d(1756) * * * * * * AssertExp::toElem: assert(n <= r.length, "range is smaller than amount of items to pop") * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/range/primitives.d(1759) * * * * * * AssignExp::toElem: r = r[n..__dollar] | (string[])(string[] = string[]) * * * * * * * VarExp::toElem: r @ string[] * * * * * * * * DtoSymbolAddress ('r' of type 'string[]') * * * * * * * * * function param * * * * * * * * * type: string[] * * * * * * * SliceExp::toElem: r[n..__dollar] @ string[] * * * * * * * * VarExp::toElem: r @ string[] * * * * * * * * * DtoSymbolAddress ('r' of type 'string[]') * * * * * * * * * * function param * * * * * * * * * * type: string[] * * * * * * * * DtoArrayPtr * * * * * * * * VarExp::toElem: n @ ulong * * * * * * * * * DtoSymbolAddress ('n' of type 'ulong') * * * * * * * * * * function param * * * * * * * * * * type: ulong * * * * * * * * VarExp::toElem: __dollar @ ulong * * * * * * * * * DtoSymbolAddress ('__dollar' of type 'ulong') * * * * * * * * * * Id::dollar * * * * * * * * * * DtoArrayLen * * * * * * * * DtoArrayLen * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * DtoAssign() * * * * * * * * DtoArrayAssign * * * * * * * * * DtoArrayPtr * * * * * * * * * DtoArrayLen * * * * * * * * * SetArray * TemplateInstance::codegen: 'std.range.primitives.hasSlicing!(string[])' * * VarDeclaration::codegen(): 'std.range.primitives.hasSlicing!(string[]).hasSlicing' * * * DtoResolveVariable(std.range.primitives.hasSlicing!(string[]).hasSlicing) * TemplateInstance::codegen: 'std.range.primitives.popBackExactly!(string[])' * * DtoDefineFunction(std.range.primitives.popBackExactly!(string[]).popBackExactly): /usr/include/dlang/ldc/std/range/primitives.d(1768) * * * Doing function body for: popBackExactly * * * DtoCreateNestedContext for popBackExactly * * * * DtoCreateNestedContextType for std.range.primitives.popBackExactly!(string[]).popBackExactly * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/range/primitives.d(1770) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/range/primitives.d(1772) * * * * * * AssertExp::toElem: assert(n <= r.length, "range is smaller than amount of items to pop") * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/range/primitives.d(1775) * * * * * * AssignExp::toElem: r = r[0..__dollar - n] | (string[])(string[] = string[]) * * * * * * * VarExp::toElem: r @ string[] * * * * * * * * DtoSymbolAddress ('r' of type 'string[]') * * * * * * * * * function param * * * * * * * * * type: string[] * * * * * * * SliceExp::toElem: r[0..__dollar - n] @ string[] * * * * * * * * VarExp::toElem: r @ string[] * * * * * * * * * DtoSymbolAddress ('r' of type 'string[]') * * * * * * * * * * function param * * * * * * * * * * type: string[] * * * * * * * * DtoArrayPtr * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * value = i64 0 * * * * * * * * MinExp::toElem: __dollar - n @ ulong * * * * * * * * * VarExp::toElem: __dollar @ ulong * * * * * * * * * * DtoSymbolAddress ('__dollar' of type 'ulong') * * * * * * * * * * * Id::dollar * * * * * * * * * * * DtoArrayLen * * * * * * * * * VarExp::toElem: n @ ulong * * * * * * * * * * DtoSymbolAddress ('n' of type 'ulong') * * * * * * * * * * * function param * * * * * * * * * * * type: ulong * * * * * * * * DtoArrayLen * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * DtoAssign() * * * * * * * * DtoArrayAssign * * * * * * * * * DtoArrayPtr * * * * * * * * * DtoArrayLen * * * * * * * * * SetArray * TemplateInstance::codegen: 'std.algorithm.mutation.move!string' * * DtoDefineFunction(std.algorithm.mutation.move!string.move): /usr/include/dlang/ldc/std/algorithm/mutation.d(832) * * * DtoFunctionType(pure nothrow @nogc @safe void(ref string source, ref string target)) * * * * x86-64 ABI: Transforming argument types * * * * Final function type: void ({ i64, i8* }*, { i64, i8* }*) * * * DtoResolveFunction(std.algorithm.mutation.move!string.move): /usr/include/dlang/ldc/std/algorithm/mutation.d(832) * * * * DtoDeclareFunction(std.algorithm.mutation.move!string.move): /usr/include/dlang/ldc/std/algorithm/mutation.d(832) * * * * * DtoFunctionType(pure nothrow @nogc @safe void(ref string source, ref string target)) * * * * * func = declare void @_D3std9algorithm8mutation13__T4moveTAyaZ4moveFNaNbNiNfKAyaKAyaZv({ i64, i8* }*, { i64, i8* }*) * * * Doing function body for: move * * * DtoCreateNestedContext for move * * * * DtoCreateNestedContextType for std.algorithm.mutation.move!string.move * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/mutation.d(833) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/mutation.d(880) * * * * * * AssignExp::toElem: target = source | (string)(string = string) * * * * * * * VarExp::toElem: target @ string * * * * * * * * DtoSymbolAddress ('target' of type 'string') * * * * * * * * * function param * * * * * * * * * type: string * * * * * * * VarExp::toElem: source @ string * * * * * * * * DtoSymbolAddress ('source' of type 'string') * * * * * * * * * function param * * * * * * * * * type: string * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * DtoAssign() * * * * * * * * DtoArrayAssign * * * * * * * * * DtoArrayPtr * * * * * * * * * DtoArrayLen * * * * * * * * * SetArray * TemplateInstance::codegen: 'std.traits.hasAliasing!string' * * Ignoring Dsymbol::codegen for __anonymous * * Ignoring Dsymbol::codegen for std.traits.hasAliasing!string.isAliasingDelegate(T) * * VarDeclaration::codegen(): 'std.traits.hasAliasing!string.hasAliasing' * * * DtoResolveVariable(std.traits.hasAliasing!string.hasAliasing) * TemplateInstance::codegen: 'std.traits.hasRawAliasing!string' * * Ignoring Dsymbol::codegen for std.traits.hasRawAliasing!string.Impl(T...) * * VarDeclaration::codegen(): 'std.traits.hasRawAliasing!string.hasRawAliasing' * * * DtoResolveVariable(std.traits.hasRawAliasing!string.hasRawAliasing) * TemplateInstance::codegen: 'std.traits.RepresentationTypeTuple!string' * * Ignoring Dsymbol::codegen for std.traits.RepresentationTypeTuple!string.Impl(T...) * * Ignoring Dsymbol::codegen for std.traits.RepresentationTypeTuple!string.RepresentationTypeTuple * TemplateInstance::codegen: 'std.traits.RepresentationTypeTuple!string.Impl!string' * * Ignoring Dsymbol::codegen for __anonymous * * Ignoring Dsymbol::codegen for std.traits.RepresentationTypeTuple!string.Impl!string.Impl * TemplateInstance::codegen: 'std.traits.RepresentationTypeTuple!string.Impl!()' * * Ignoring Dsymbol::codegen for std.traits.RepresentationTypeTuple!string.Impl!().Impl * TemplateInstance::codegen: 'std.typetuple.TypeTuple!string' * * Ignoring Dsymbol::codegen for std.typetuple.TypeTuple!string.TypeTuple * TemplateInstance::codegen: 'std.traits.hasRawAliasing!string.Impl!string' * * VarDeclaration::codegen(): 'std.traits.hasRawAliasing!string.Impl!string.has' * * * DtoResolveVariable(std.traits.hasRawAliasing!string.Impl!string.has) * * VarDeclaration::codegen(): 'std.traits.hasRawAliasing!string.Impl!string.Impl' * * * DtoResolveVariable(std.traits.hasRawAliasing!string.Impl!string.Impl) * TemplateInstance::codegen: 'std.traits.hasRawAliasing!string.Impl!()' * * VarDeclaration::codegen(): 'std.traits.hasRawAliasing!string.Impl!().Impl' * * * DtoResolveVariable(std.traits.hasRawAliasing!string.Impl!().Impl) * TemplateInstance::codegen: 'std.traits.hasObjects!string' * * VarDeclaration::codegen(): 'std.traits.hasObjects!string.hasObjects' * * * DtoResolveVariable(std.traits.hasObjects!string.hasObjects) * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(isAliasingDelegate, string, string)' * * VarDeclaration::codegen(): 'std.typetuple.anySatisfy!(isAliasingDelegate, string, string).anySatisfy' * * * DtoResolveVariable(std.typetuple.anySatisfy!(isAliasingDelegate, string, string).anySatisfy) * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(isAliasingDelegate, string)' * * VarDeclaration::codegen(): 'std.typetuple.anySatisfy!(isAliasingDelegate, string).anySatisfy' * * * DtoResolveVariable(std.typetuple.anySatisfy!(isAliasingDelegate, string).anySatisfy) * TemplateInstance::codegen: 'std.traits.hasAliasing!string.F!string' * * VarDeclaration::codegen(): 'std.traits.hasAliasing!string.F!string.isAliasingDelegate' * * * DtoResolveVariable(std.traits.hasAliasing!string.F!string.isAliasingDelegate) * TemplateInstance::codegen: 'std.algorithm.mutation.moveAll!(string[], string[])' * * DtoDefineFunction(std.algorithm.mutation.moveAll!(string[], string[]).moveAll): /usr/include/dlang/ldc/std/algorithm/mutation.d(1134) * * * Doing function body for: moveAll * * * DtoCreateNestedContext for moveAll * * * * DtoCreateNestedContextType for std.algorithm.mutation.moveAll!(string[], string[]).moveAll * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/mutation.d(1137) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/mutation.d(1143) * * * * * * DeclarationExp::toElem: ulong toMove = src.length; | T=void * * * * * * * DtoDeclarationExp: toMove * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * llvm value for decl: %toMove = alloca i64, align 8 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: toMove = src.length | (ulong)(ulong = ulong) * * * * * * * * * * VarExp::toElem: toMove @ ulong * * * * * * * * * * * DtoSymbolAddress ('toMove' of type 'ulong') * * * * * * * * * * * * a normal variable * * * * * * * * * * ArrayLengthExp::toElem: src.length @ ulong * * * * * * * * * * * VarExp::toElem: src @ string[] * * * * * * * * * * * * DtoSymbolAddress ('src' of type 'string[]') * * * * * * * * * * * * * function param * * * * * * * * * * * * * type: string[] * * * * * * * * * * * DtoArrayLen * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %toMove = alloca i64, align 8 * * * * * * * * * * * rhs: %.len = load i64, i64* %1 * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/mutation.d(1144) * * * * * * CallExp::toElem: enforce(toMove <= tgt.length, delegate const(char)[]() => null, "/usr/include/dlang/ldc/std/algorithm/mutation.d", 1144LU) @ bool * * * * * * * VarExp::toElem: enforce @ pure @safe bool(bool value, lazy const(char)[] msg = null, string file = __FILE__, ulong line = cast(ulong)__LINE__) * * * * * * * * DtoSymbolAddress ('enforce' of type 'pure @safe bool(bool value, lazy const(char)[] msg = null, string file = __FILE__, ulong line = cast(ulong)__LINE__)') * * * * * * * * * FuncDeclaration * * * * * * * DtoCallFunction() * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (0) * * * * * * * * Function type: pure @safe bool(bool value, lazy const(char)[] msg = null, string file = __FILE__, ulong line = cast(ulong)__LINE__) * * * * * * * * DtoArgument * * * * * * * * * CmpExp::toElem: toMove <= tgt.length @ bool * * * * * * * * * * VarExp::toElem: toMove @ ulong * * * * * * * * * * * DtoSymbolAddress ('toMove' of type 'ulong') * * * * * * * * * * * * a normal variable * * * * * * * * * * ArrayLengthExp::toElem: tgt.length @ ulong * * * * * * * * * * * VarExp::toElem: tgt @ string[] * * * * * * * * * * * * DtoSymbolAddress ('tgt' of type 'string[]') * * * * * * * * * * * * * function param * * * * * * * * * * * * * type: string[] * * * * * * * * * * * DtoArrayLen * * * * * * * * * * type 1: %3 = load i64, i64* %toMove * * * * * * * * * * type 2: %.len1 = load i64, i64* %2 * * * * * * * * DtoArgument * * * * * * * * * FuncExp::toElem: __dgliteral3 @ const(char)[] delegate() pure nothrow @nogc @safe * * * * * * * * * * nested * * * * * * * * * * kind = delegate * * * * * * * * * * DtoDefineFunction(std.algorithm.mutation.moveAll!(string[], string[]).moveAll.__dgliteral3): /usr/include/dlang/ldc/std/exception.d(348) * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe const(char)[]()) * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * Final function type: { i64, i8* } (i8*) * * * * * * * * * * * DtoResolveFunction(std.algorithm.mutation.moveAll!(string[], string[]).moveAll.__dgliteral3): /usr/include/dlang/ldc/std/exception.d(348) * * * * * * * * * * * * DtoDeclareFunction(std.algorithm.mutation.moveAll!(string[], string[]).moveAll.__dgliteral3): /usr/include/dlang/ldc/std/exception.d(348) * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe const(char)[]()) * * * * * * * * * * * * * func = declare { i64, i8* } @_D3std9algorithm8mutation22__T7moveAllTAAyaTAAyaZ7moveAllFAAyaAAyaZ12__dgliteral3MFNaNbNiNfZAxa(i8*) * * * * * * * * * * * Doing function body for: __dgliteral3 * * * * * * * * * * * DtoCreateNestedContext for __dgliteral3 * * * * * * * * * * * * DtoCreateNestedContextType for std.algorithm.mutation.moveAll!(string[], string[]).moveAll.__dgliteral3 * * * * * * * * * * * * * DtoCreateNestedContextType for std.algorithm.mutation.moveAll!(string[], string[]).moveAll * * * * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/exception.d(348) * * * * * * * * * * * * * NullExp::toElem(type=const(char)[]): null * * * * * * * * * * * * * * NullExp::toConstElem(type=const(char)[]): null * * * * * * * * * * * * * return value is '0x120dd7b0' * * * * * * * * * * Building type: const(char)[] delegate() pure nothrow @nogc @safe * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe const(char)[]()) * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * Final function type: { i64, i8* } (i8*) * * * * * * * * DtoArgument * * * * * * * * * StringExp::toElem: "/usr/include/dlang/ldc/std/algorithm/mutation.d" @ string * * * * * * * * * * type: [48 x i8] * * * * * * * * * * init: [48 x i8] c"/usr/include/dlang/ldc/std/algorithm/mutation.d\00" * * * * * * * * DtoArgument * * * * * * * * * IntegerExp::toElem: 1144LU @ ulong * * * * * * * * * * IntegerExp::toConstElem: 1144LU @ ulong * * * * * * * * * * * value = i64 1144 * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/mutation.d(1145) * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/mutation.d(1145) * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/mutation.d(1145) * * * * * * * * DeclarationExp::toElem: ulong __key3195 = 0LU; | T=void * * * * * * * * * DtoDeclarationExp: __key3195 * * * * * * * * * * VarDeclaration * * * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * * * llvm value for decl: %__key3195 = alloca i64, align 8 * * * * * * * * * * * expression initializer * * * * * * * * * * * AssignExp::toElem: __key3195 = 0LU | (ulong)(ulong = ulong) * * * * * * * * * * * * VarExp::toElem: __key3195 @ ulong * * * * * * * * * * * * * DtoSymbolAddress ('__key3195' of type 'ulong') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * lhs: %__key3195 = alloca i64, align 8 * * * * * * * * * * * * * rhs: i64 0 * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/mutation.d(1145) * * * * * * * * DeclarationExp::toElem: ulong __limit3196 = toMove; | T=void * * * * * * * * * DtoDeclarationExp: __limit3196 * * * * * * * * * * VarDeclaration * * * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * * * llvm value for decl: %__limit3196 = alloca i64, align 8 * * * * * * * * * * * expression initializer * * * * * * * * * * * AssignExp::toElem: __limit3196 = toMove | (ulong)(ulong = ulong) * * * * * * * * * * * * VarExp::toElem: __limit3196 @ ulong * * * * * * * * * * * * * DtoSymbolAddress ('__limit3196' of type 'ulong') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * VarExp::toElem: toMove @ ulong * * * * * * * * * * * * * DtoSymbolAddress ('toMove' of type 'ulong') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * lhs: %__limit3196 = alloca i64, align 8 * * * * * * * * * * * * * rhs: %6 = load i64, i64* %toMove * * * * * * * ForStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/mutation.d(1145) * * * * * * * * CmpExp::toElem: __key3195 < __limit3196 @ bool * * * * * * * * * VarExp::toElem: __key3195 @ ulong * * * * * * * * * * DtoSymbolAddress ('__key3195' of type 'ulong') * * * * * * * * * * * a normal variable * * * * * * * * * VarExp::toElem: __limit3196 @ ulong * * * * * * * * * * DtoSymbolAddress ('__limit3196' of type 'ulong') * * * * * * * * * * * a normal variable * * * * * * * * * type 1: %7 = load i64, i64* %__key3195 * * * * * * * * * type 2: %8 = load i64, i64* %__limit3196 * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/mutation.d(1145) * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/mutation.d(1145) * * * * * * * * * * DeclarationExp::toElem: ulong idx = __key3195; | T=void * * * * * * * * * * * DtoDeclarationExp: idx * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * * * * * llvm value for decl: %idx = alloca i64, align 8 * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * AssignExp::toElem: idx = __key3195 | (ulong)(ulong = ulong) * * * * * * * * * * * * * * VarExp::toElem: idx @ ulong * * * * * * * * * * * * * * * DtoSymbolAddress ('idx' of type 'ulong') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * VarExp::toElem: __key3195 @ ulong * * * * * * * * * * * * * * * DtoSymbolAddress ('__key3195' of type 'ulong') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * lhs: %idx = alloca i64, align 8 * * * * * * * * * * * * * * * rhs: %10 = load i64, i64* %__key3195 * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/mutation.d(1146) * * * * * * * * * * CallExp::toElem: move(src[idx], tgt[idx]) @ void * * * * * * * * * * * VarExp::toElem: move @ pure nothrow @nogc @safe void(ref string source, ref string target) * * * * * * * * * * * * DtoSymbolAddress ('move' of type 'pure nothrow @nogc @safe void(ref string source, ref string target)') * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * Building type: pure nothrow @nogc @safe void(ref string source, ref string target) * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe void(ref string source, ref string target)) * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * Final function type: void ({ i64, i8* }*, { i64, i8* }*) * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * Function type: pure nothrow @nogc @safe void(ref string source, ref string target) * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * IndexExp::toElem: src[idx] @ string * * * * * * * * * * * * * * VarExp::toElem: src @ string[] * * * * * * * * * * * * * * * DtoSymbolAddress ('src' of type 'string[]') * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * type: string[] * * * * * * * * * * * * * * VarExp::toElem: idx @ ulong * * * * * * * * * * * * * * * DtoSymbolAddress ('idx' of type 'ulong') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * IndexExp::toElem: tgt[idx] @ string * * * * * * * * * * * * * * VarExp::toElem: tgt @ string[] * * * * * * * * * * * * * * * DtoSymbolAddress ('tgt' of type 'string[]') * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * type: string[] * * * * * * * * * * * * * * VarExp::toElem: idx @ ulong * * * * * * * * * * * * * * * DtoSymbolAddress ('idx' of type 'ulong') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * AddAssignExp::toElem: __key3195 += 1LU @ ulong * * * * * * * * * Caching l-value of __key3195 += 1LU => __key3195 * * * * * * * * * * VarExp::toElem: __key3195 @ ulong * * * * * * * * * * * DtoSymbolAddress ('__key3195' of type 'ulong') * * * * * * * * * * * * a normal variable * * * * * * * * * AddExp::toElem: __key3195 + 1LU @ ulong * * * * * * * * * * VarExp::toElem: __key3195 @ ulong * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * value = i64 1 * * * * * * * * * DtoAssign() * * * * * * * * * * lhs: %__key3195 = alloca i64, align 8 * * * * * * * * * * rhs: %14 = add i64 %13, 1 * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/mutation.d(1147) * * * * * * SliceExp::toElem: tgt[toMove..tgt.length] @ string[] * * * * * * * VarExp::toElem: tgt @ string[] * * * * * * * * DtoSymbolAddress ('tgt' of type 'string[]') * * * * * * * * * function param * * * * * * * * * type: string[] * * * * * * * DtoArrayPtr * * * * * * * VarExp::toElem: toMove @ ulong * * * * * * * * DtoSymbolAddress ('toMove' of type 'ulong') * * * * * * * * * a normal variable * * * * * * * ArrayLengthExp::toElem: tgt.length @ ulong * * * * * * * * VarExp::toElem: tgt @ string[] * * * * * * * * * DtoSymbolAddress ('tgt' of type 'string[]') * * * * * * * * * * function param * * * * * * * * * * type: string[] * * * * * * * * DtoArrayLen * * * * * * * DtoArrayLen * * * * * * return value is '0x125a7400' * TemplateInstance::codegen: 'std.format.formattedWrite!(MsgRange, char, string)' * * DtoDefineFunction(std.format.formattedWrite!(MsgRange, char, string).formattedWrite): /usr/include/dlang/ldc/std/format.d(420) * * * DtoFunctionType(@safe uint(MsgRange w, const(char[]) fmt, string _param_2)) * * * * Building type: MsgRange* * * * * * Building type: MsgRange * * * * * * Building struct type std.experimental.logger.core.MsgRange @ /usr/include/dlang/ldc/std/experimental/logger/core.d(652) * * * * * * * adding default initializer for struct field log * * * * * * * adding default initializer for struct field buffer * * * * * * * Building type: std.experimental.logger.core.Logger * * * * * * * * Building class type std.experimental.logger.core.Logger @ /usr/include/dlang/ldc/std/experimental/logger/core.d(732) * * * * * * * * * Instance size: 184 * * * * * * * * * adding explicit initializer for struct field logLevel_ * * * * * * * * * adding default initializer for struct field fatalHandler_ * * * * * * * * * adding default initializer for struct field mutex * * * * * * * * * adding default initializer for struct field msgAppender * * * * * * * * * adding default initializer for struct field header * * * * * * * * * Building type: void delegate() @safe * * * * * * * * * * DtoFunctionType(@safe void()) * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * Final function type: void (i8*) * * * * * * * * * Building type: LogLevel * * * * * * * * * Building type: LogLevel * * * * * * * * * Building type: core.sync.mutex.Mutex * * * * * * * * * * Building class type core.sync.mutex.Mutex @ /usr/include/dlang/ldc/core/sync/mutex.d(47) * * * * * * * * * * * Instance size: 72 * * * * * * * * * * * adding default initializer for struct field m_hndl * * * * * * * * * * * adding default initializer for struct field m_proxy * * * * * * * * * * * Building type: pthread_mutex_t * * * * * * * * * * * * Building struct type core.sys.posix.sys.types.pthread_mutex_t @ /usr/include/dlang/ldc/core/sys/posix/sys/types.d(508) * * * * * * * * * * * * * adding default initializer for struct field __size * * * * * * * * * * * * * Building type: byte[40] * * * * * * * * * * * * * final struct type: %core.sys.posix.sys.types.pthread_mutex_t = type <{ [40 x i8] }> * * * * * * * * * * * Building type: MonitorProxy * * * * * * * * * * * * Building struct type core.sync.mutex.Mutex.MonitorProxy @ /usr/include/dlang/ldc/core/sync/mutex.d(212) * * * * * * * * * * * * * adding default initializer for struct field link * * * * * * * * * * * * * Building type: object.Object.Monitor * * * * * * * * * * * * * * Building class type object.Object.Monitor @ /usr/include/dlang/ldc/object.di(58) * * * * * * * * * * * * * * * Instance size: 16 * * * * * * * * * * * * * * * Building vtbl type for class object.Object.Monitor * * * * * * * * * * * * * * * * Adding type of object.Object.Monitor.lock * * * * * * * * * * * * * * * * isMember = this is: object.Object.Monitor * * * * * * * * * * * * * * * * DtoFunctionType(void()) * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * Final function type: void (%object.Object.Monitor*) * * * * * * * * * * * * * * * * Adding type of object.Object.Monitor.unlock * * * * * * * * * * * * * * * * isMember = this is: object.Object.Monitor * * * * * * * * * * * * * * * * DtoFunctionType(void()) * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * Final function type: void (%object.Object.Monitor*) * * * * * * * * * * * * * * * class type: %object.Object.Monitor = type { %object.Object.Monitor.__vtbl* } * * * * * * * * * * * * * final struct type: %core.sync.mutex.Mutex.MonitorProxy = type { %object.Object.Monitor* } * * * * * * * * * * * Adding interface vtbl for object.Object.Monitor * * * * * * * * * * * Building vtbl type for class core.sync.mutex.Mutex * * * * * * * * * * * * Building type: Interface* * * * * * * * * * * * * Adding type of core.sync.mutex.Mutex.lock * * * * * * * * * * * * isMember = this is: core.sync.mutex.Mutex * * * * * * * * * * * * DtoFunctionType(@trusted void()) * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * Final function type: void (%core.sync.mutex.Mutex*) * * * * * * * * * * * * Adding type of core.sync.mutex.Mutex.unlock * * * * * * * * * * * * isMember = this is: core.sync.mutex.Mutex * * * * * * * * * * * * DtoFunctionType(@trusted void()) * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * Final function type: void (%core.sync.mutex.Mutex*) * * * * * * * * * * * Building vtbl type for class core.sync.mutex.Mutex * * * * * * * * * * * * Adding type of object.Object.toString * * * * * * * * * * * * isMember = this is: object.Object * * * * * * * * * * * * DtoFunctionType(string()) * * * * * * * * * * * * Adding type of object.Object.toHash * * * * * * * * * * * * isMember = this is: object.Object * * * * * * * * * * * * DtoFunctionType(nothrow @trusted ulong()) * * * * * * * * * * * * Adding type of object.Object.opCmp * * * * * * * * * * * * isMember = this is: object.Object * * * * * * * * * * * * DtoFunctionType(int(Object o)) * * * * * * * * * * * * Adding type of object.Object.opEquals * * * * * * * * * * * * isMember = this is: object.Object * * * * * * * * * * * * DtoFunctionType(bool(Object o)) * * * * * * * * * * * * Adding type of core.sync.mutex.Mutex.lock * * * * * * * * * * * * isMember = this is: core.sync.mutex.Mutex * * * * * * * * * * * * DtoFunctionType(@trusted void()) * * * * * * * * * * * * Adding type of core.sync.mutex.Mutex.unlock * * * * * * * * * * * * isMember = this is: core.sync.mutex.Mutex * * * * * * * * * * * * DtoFunctionType(@trusted void()) * * * * * * * * * * * * Adding type of core.sync.mutex.Mutex.tryLock * * * * * * * * * * * * isMember = this is: core.sync.mutex.Mutex * * * * * * * * * * * * DtoFunctionType(bool()) * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * Final function type: i1 (%core.sync.mutex.Mutex*) * * * * * * * * * * * class type: %core.sync.mutex.Mutex = type { %core.sync.mutex.Mutex.__vtbl*, i8*, %core.sys.posix.sys.types.pthread_mutex_t, %core.sync.mutex.Mutex.MonitorProxy, { %object.Interface*, void (%core.sync.mutex.Mutex*)*, void (%core.sync.mutex.Mutex*)* }* } * * * * * * * * * Building type: LogEntry * * * * * * * * * * Building struct type std.experimental.logger.core.Logger.LogEntry @ /usr/include/dlang/ldc/std/experimental/logger/core.d(738) * * * * * * * * * * * adding default initializer for struct field file * * * * * * * * * * * adding default initializer for struct field line * * * * * * * * * * * adding default initializer for struct field funcName * * * * * * * * * * * adding default initializer for struct field prettyFuncName * * * * * * * * * * * adding default initializer for struct field moduleName * * * * * * * * * * * adding default initializer for struct field logLevel * * * * * * * * * * * adding default initializer for struct field threadId * * * * * * * * * * * adding default initializer for struct field timestamp * * * * * * * * * * * adding default initializer for struct field msg * * * * * * * * * * * adding default initializer for struct field logger * * * * * * * * * * * Building type: LogLevel * * * * * * * * * * * Building type: LogLevel * * * * * * * * * * * Building type: Tid * * * * * * * * * * * * Building struct type std.concurrency.Tid @ /usr/include/dlang/ldc/std/concurrency.d(317) * * * * * * * * * * * * * adding default initializer for struct field mbox * * * * * * * * * * * * * Building type: std.concurrency.MessageBox * * * * * * * * * * * * * * Building class type std.concurrency.MessageBox @ /usr/include/dlang/ldc/std/concurrency.d(1776) * * * * * * * * * * * * * * * Instance size: 169 * * * * * * * * * * * * * * * adding default initializer for struct field m_localBox * * * * * * * * * * * * * * * adding default initializer for struct field m_localPty * * * * * * * * * * * * * * * adding default initializer for struct field m_lock * * * * * * * * * * * * * * * adding default initializer for struct field m_putMsg * * * * * * * * * * * * * * * adding default initializer for struct field m_notFull * * * * * * * * * * * * * * * adding default initializer for struct field m_putQueue * * * * * * * * * * * * * * * adding default initializer for struct field m_sharedBox * * * * * * * * * * * * * * * adding default initializer for struct field m_sharedPty * * * * * * * * * * * * * * * adding default initializer for struct field m_onMaxMsgs * * * * * * * * * * * * * * * adding default initializer for struct field m_localMsgs * * * * * * * * * * * * * * * adding default initializer for struct field m_maxMsgs * * * * * * * * * * * * * * * adding default initializer for struct field m_closed * * * * * * * * * * * * * * * Building type: List!(Message) * * * * * * * * * * * * * * * * Building struct type std.concurrency.List!(Message).List @ /usr/include/dlang/ldc/std/concurrency.d(2229) * * * * * * * * * * * * * * * * * adding default initializer for struct field m_first * * * * * * * * * * * * * * * * * adding default initializer for struct field m_last * * * * * * * * * * * * * * * * * adding default initializer for struct field m_count * * * * * * * * * * * * * * * * * Building type: Node* * * * * * * * * * * * * * * * * * * Building type: Node * * * * * * * * * * * * * * * * * * * Building struct type std.concurrency.List!(Message).List.Node @ /usr/include/dlang/ldc/std/concurrency.d(2358) * * * * * * * * * * * * * * * * * * * * adding default initializer for struct field next * * * * * * * * * * * * * * * * * * * * adding default initializer for struct field val * * * * * * * * * * * * * * * * * * * * Building type: Node* * * * * * * * * * * * * * * * * * * * * Building type: Message * * * * * * * * * * * * * * * * * * * * * Building struct type std.concurrency.Message @ /usr/include/dlang/ldc/std/concurrency.d(102) * * * * * * * * * * * * * * * * * * * * * * adding default initializer for struct field type * * * * * * * * * * * * * * * * * * * * * * adding default initializer for struct field data * * * * * * * * * * * * * * * * * * * * * * Building type: MsgType * * * * * * * * * * * * * * * * * * * * * * Building type: MsgType * * * * * * * * * * * * * * * * * * * * * * Building type: VariantN!32LU * * * * * * * * * * * * * * * * * * * * * * * Building struct type std.variant.VariantN!32LU.VariantN @ /usr/include/dlang/ldc/std/variant.d(158) * * * * * * * * * * * * * * * * * * * * * * * * adding explicit initializer for struct field fptr * * * * * * * * * * * * * * * * * * * * * * * * adding default initializer for struct field store * * * * * * * * * * * * * * * * * * * * * * * * Building type: long function(OpID selector, ubyte[32]* store, void* data) @trusted * * * * * * * * * * * * * * * * * * * * * * * * * Building type: @trusted long(OpID selector, ubyte[32]* store, void* data) * * * * * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(@trusted long(OpID selector, ubyte[32]* store, void* data)) * * * * * * * * * * * * * * * * * * * * * * * * * * * Building type: OpID * * * * * * * * * * * * * * * * * * * * * * * * * * * Building type: ubyte[32]* * * * * * * * * * * * * * * * * * * * * * * * * * * * * Building type: ubyte[32] * * * * * * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * * * * * * * * Final function type: i64 (i8*, [32 x i8]*, i32) * * * * * * * * * * * * * * * * * * * * * * * * final struct type: %"std.variant.VariantN!32LU.VariantN" = type { i64 (i8*, [32 x i8]*, i32)*, [32 x i8] } * * * * * * * * * * * * * * * * * * * * * * final struct type: %std.concurrency.Message = type { i32, [4 x i8], %"std.variant.VariantN!32LU.VariantN" } * * * * * * * * * * * * * * * * * * * * final struct type: %"std.concurrency.List!(Message).List.Node" = type { %"std.concurrency.List!(Message).List.Node"*, %std.concurrency.Message } * * * * * * * * * * * * * * * * * final struct type: %"std.concurrency.List!(Message).List" = type { %"std.concurrency.List!(Message).List.Node"*, %"std.concurrency.List!(Message).List.Node"*, i64 } * * * * * * * * * * * * * * * Building type: core.sync.condition.Condition * * * * * * * * * * * * * * * * Building class type core.sync.condition.Condition @ /usr/include/dlang/ldc/core/sync/condition.d(56) * * * * * * * * * * * * * * * * * Instance size: 72 * * * * * * * * * * * * * * * * * adding default initializer for struct field m_assocMutex * * * * * * * * * * * * * * * * * adding default initializer for struct field m_hndl * * * * * * * * * * * * * * * * * Building type: pthread_cond_t * * * * * * * * * * * * * * * * * * Building struct type core.sys.posix.sys.types.pthread_cond_t @ /usr/include/dlang/ldc/core/sys/posix/sys/types.d(494) * * * * * * * * * * * * * * * * * * * adding default initializer for struct field __size * * * * * * * * * * * * * * * * * * * Building type: byte[48] * * * * * * * * * * * * * * * * * * * final struct type: %core.sys.posix.sys.types.pthread_cond_t = type <{ [48 x i8] }> * * * * * * * * * * * * * * * * * Building vtbl type for class core.sync.condition.Condition * * * * * * * * * * * * * * * * * * Adding type of object.Object.toString * * * * * * * * * * * * * * * * * * isMember = this is: object.Object * * * * * * * * * * * * * * * * * * DtoFunctionType(string()) * * * * * * * * * * * * * * * * * * Adding type of object.Object.toHash * * * * * * * * * * * * * * * * * * isMember = this is: object.Object * * * * * * * * * * * * * * * * * * DtoFunctionType(nothrow @trusted ulong()) * * * * * * * * * * * * * * * * * * Adding type of object.Object.opCmp * * * * * * * * * * * * * * * * * * isMember = this is: object.Object * * * * * * * * * * * * * * * * * * DtoFunctionType(int(Object o)) * * * * * * * * * * * * * * * * * * Adding type of object.Object.opEquals * * * * * * * * * * * * * * * * * * isMember = this is: object.Object * * * * * * * * * * * * * * * * * * DtoFunctionType(bool(Object o)) * * * * * * * * * * * * * * * * * * Adding type of core.sync.condition.Condition.mutex * * * * * * * * * * * * * * * * * * isMember = this is: core.sync.condition.Condition * * * * * * * * * * * * * * * * * * DtoFunctionType(@property Mutex()) * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * Final function type: %core.sync.mutex.Mutex* (%core.sync.condition.Condition*) * * * * * * * * * * * * * * * * * * Adding type of core.sync.condition.Condition.wait * * * * * * * * * * * * * * * * * * isMember = this is: core.sync.condition.Condition * * * * * * * * * * * * * * * * * * DtoFunctionType(void()) * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * Final function type: void (%core.sync.condition.Condition*) * * * * * * * * * * * * * * * * * * Adding type of core.sync.condition.Condition.wait * * * * * * * * * * * * * * * * * * isMember = this is: core.sync.condition.Condition * * * * * * * * * * * * * * * * * * DtoFunctionType(bool(Duration val)) * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * Final function type: i1 (%core.sync.condition.Condition*, %core.time.Duration) * * * * * * * * * * * * * * * * * * Adding type of core.sync.condition.Condition.notify * * * * * * * * * * * * * * * * * * isMember = this is: core.sync.condition.Condition * * * * * * * * * * * * * * * * * * DtoFunctionType(void()) * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * Final function type: void (%core.sync.condition.Condition*) * * * * * * * * * * * * * * * * * * Adding type of core.sync.condition.Condition.notifyAll * * * * * * * * * * * * * * * * * * isMember = this is: core.sync.condition.Condition * * * * * * * * * * * * * * * * * * DtoFunctionType(void()) * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * Final function type: void (%core.sync.condition.Condition*) * * * * * * * * * * * * * * * * * class type: %core.sync.condition.Condition = type { %core.sync.condition.Condition.__vtbl*, i8*, %core.sync.mutex.Mutex*, %core.sys.posix.sys.types.pthread_cond_t } * * * * * * * * * * * * * * * Building type: bool function(Tid) * * * * * * * * * * * * * * * * Building type: bool(Tid) * * * * * * * * * * * * * * * * * DtoFunctionType(bool(Tid)) * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * Rewriting argument type Tid * * * * * * * * * * * * * * * * * * * * %std.concurrency.Tid = type opaque => i8* * * * * * * * * * * * * * * * * * * Final function type: i1 (i8*) * * * * * * * * * * * * * * * Building vtbl type for class std.concurrency.MessageBox * * * * * * * * * * * * * * * * Adding type of object.Object.toString * * * * * * * * * * * * * * * * isMember = this is: object.Object * * * * * * * * * * * * * * * * DtoFunctionType(string()) * * * * * * * * * * * * * * * * Adding type of object.Object.toHash * * * * * * * * * * * * * * * * isMember = this is: object.Object * * * * * * * * * * * * * * * * DtoFunctionType(nothrow @trusted ulong()) * * * * * * * * * * * * * * * * Adding type of object.Object.opCmp * * * * * * * * * * * * * * * * isMember = this is: object.Object * * * * * * * * * * * * * * * * DtoFunctionType(int(Object o)) * * * * * * * * * * * * * * * * Adding type of object.Object.opEquals * * * * * * * * * * * * * * * * isMember = this is: object.Object * * * * * * * * * * * * * * * * DtoFunctionType(bool(Object o)) * * * * * * * * * * * * * * * class type: %std.concurrency.MessageBox = type { %std.concurrency.MessageBox.__vtbl*, i8*, %"std.concurrency.List!(Message).List", %"std.concurrency.List!(Message).List", %core.sync.mutex.Mutex*, %core.sync.condition.Condition*, %core.sync.condition.Condition*, i64, %"std.concurrency.List!(Message).List", %"std.concurrency.List!(Message).List", i1 (i8*)*, i64, i64, i8 } * * * * * * * * * * * * * final struct type: %std.concurrency.Tid = type { %std.concurrency.MessageBox* } * * * * * * * * * * * Building type: SysTime * * * * * * * * * * * * Building struct type std.datetime.SysTime @ /usr/include/dlang/ldc/std/datetime.d(497) * * * * * * * * * * * * * adding default initializer for struct field _stdTime * * * * * * * * * * * * * adding default initializer for struct field _timezone * * * * * * * * * * * * * Building type: Rebindable!(immutable(TimeZone)) * * * * * * * * * * * * * * Building struct type std.typecons.Rebindable!(immutable(TimeZone)).Rebindable @ /usr/include/dlang/ldc/std/typecons.d(1322) * * * * * * * * * * * * * * * adding default initializer for struct field original * * * * * * * * * * * * * * * final struct type: %"std.typecons.Rebindable!(immutable(TimeZone)).Rebindable" = type { %std.datetime.TimeZone* } * * * * * * * * * * * * * final struct type: %std.datetime.SysTime = type { i64, %"std.typecons.Rebindable!(immutable(TimeZone)).Rebindable" } * * * * * * * * * * * final struct type: %std.experimental.logger.core.Logger.LogEntry = type { { i64, i8* }, i32, [4 x i8], { i64, i8* }, { i64, i8* }, { i64, i8* }, i8, [7 x i8], %std.concurrency.Tid, %std.datetime.SysTime, { i64, i8* }, %std.experimental.logger.core.Logger* } * * * * * * * * * Building vtbl type for class std.experimental.logger.core.Logger * * * * * * * * * * Adding type of object.Object.toString * * * * * * * * * * isMember = this is: object.Object * * * * * * * * * * DtoFunctionType(string()) * * * * * * * * * * Adding type of object.Object.toHash * * * * * * * * * * isMember = this is: object.Object * * * * * * * * * * DtoFunctionType(nothrow @trusted ulong()) * * * * * * * * * * Adding type of object.Object.opCmp * * * * * * * * * * isMember = this is: object.Object * * * * * * * * * * DtoFunctionType(int(Object o)) * * * * * * * * * * Adding type of object.Object.opEquals * * * * * * * * * * isMember = this is: object.Object * * * * * * * * * * DtoFunctionType(bool(Object o)) * * * * * * * * * * Adding type of std.experimental.logger.core.Logger.writeLogMsg * * * * * * * * * * isMember = this is: std.experimental.logger.core.Logger * * * * * * * * * * DtoFunctionType(@safe void(ref LogEntry payload)) * * * * * * * * * * * Building type: LogEntry* * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * Final function type: void (%std.experimental.logger.core.Logger*, %std.experimental.logger.core.Logger.LogEntry*) * * * * * * * * * * Adding type of std.experimental.logger.core.Logger.beginLogMsg * * * * * * * * * * isMember = this is: std.experimental.logger.core.Logger * * * * * * * * * * DtoFunctionType(@safe void(string file, int line, string funcName, string prettyFuncName, string moduleName, LogLevel logLevel, Tid threadId, SysTime timestamp, Logger logger)) * * * * * * * * * * * Building type: LogLevel * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * Final function type: void (%std.experimental.logger.core.Logger*, %std.experimental.logger.core.Logger*, %std.datetime.SysTime, %std.concurrency.Tid, i8, { i64, i8* }, { i64, i8* }, { i64, i8* }, i32, { i64, i8* }) * * * * * * * * * * Adding type of std.experimental.logger.core.Logger.logMsgPart * * * * * * * * * * isMember = this is: std.experimental.logger.core.Logger * * * * * * * * * * DtoFunctionType(@safe void(const(char)[] msg)) * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * Final function type: void (%std.experimental.logger.core.Logger*, { i64, i8* }) * * * * * * * * * * Adding type of std.experimental.logger.core.Logger.finishLogMsg * * * * * * * * * * isMember = this is: std.experimental.logger.core.Logger * * * * * * * * * * DtoFunctionType(@safe void()) * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * Final function type: void (%std.experimental.logger.core.Logger*) * * * * * * * * * * Adding type of std.experimental.logger.core.Logger.forwardMsg * * * * * * * * * * isMember = this is: std.experimental.logger.core.Logger * * * * * * * * * * DtoFunctionType(@trusted void(ref LogEntry payload)) * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * Final function type: void (%std.experimental.logger.core.Logger*, %std.experimental.logger.core.Logger.LogEntry*) * * * * * * * * * class type: %std.experimental.logger.core.Logger = type { %std.experimental.logger.core.Logger.__vtbl*, i8*, { i8*, void (i8*)* }, i8, [7 x i8], %core.sync.mutex.Mutex*, %"std.array.Appender!string.Appender", %std.experimental.logger.core.Logger.LogEntry } * * * * * * * final struct type: %std.experimental.logger.core.MsgRange = type { %std.experimental.logger.core.Logger*, { i64, i8* } } * * * * x86-64 ABI: Transforming return type * * * * x86-64 ABI: Transforming argument types * * * * Final function type: i32 ({ i64, i8* }, { i64, i8* }, %std.experimental.logger.core.MsgRange*) * * * DtoResolveFunction(std.format.formattedWrite!(MsgRange, char, string).formattedWrite): /usr/include/dlang/ldc/std/format.d(420) * * * * DtoDeclareFunction(std.format.formattedWrite!(MsgRange, char, string).formattedWrite): /usr/include/dlang/ldc/std/format.d(420) * * * * * DtoFunctionType(@safe uint(MsgRange w, const(char[]) fmt, string _param_2)) * * * * * func = declare i32 @_D3std6format67__T14formattedWriteTS3std12experimental6logger4core8MsgRangeTaTAyaZ14formattedWriteFNfS3std12experimental6logger4core8MsgRangexAaAyaZk({ i64, i8* }, { i64, i8* }, %std.experimental.logger.core.MsgRange*) * * * Doing function body for: formattedWrite * * * DtoCreateNestedContext for formattedWrite * * * * DtoCreateNestedContextType for std.format.formattedWrite!(MsgRange, char, string).formattedWrite * * * * * has nested frame * * * * * Function formattedWrite has depth 0 * * * * * Building type: FormatSpec!char * * * * * * Building struct type std.format.FormatSpec!char.FormatSpec @ /usr/include/dlang/ldc/std/format.d(632) * * * * * * * adding explicit initializer for struct field width * * * * * * * adding explicit initializer for struct field precision * * * * * * * adding explicit initializer for struct field spec * * * * * * * adding default initializer for struct field indexStart * * * * * * * adding default initializer for struct field indexEnd * * * * * * * adding default initializer for struct field _flDash_flZero_flSpace_flPlus_flHash_ * * * * * * * adding default initializer for struct field nested * * * * * * * adding default initializer for struct field sep * * * * * * * adding default initializer for struct field trailing * * * * * * * final struct type: %"std.format.FormatSpec!char.FormatSpec" = type { i32, i32, i8, i8, i8, i8, [4 x i8], { i64, i8* }, { i64, i8* }, { i64, i8* } } * * * * * Nested var 'spec' of type %"std.format.FormatSpec!char.FormatSpec" = type { i32, i32, i8, i8, i8, i8, [4 x i8], { i64, i8* }, { i64, i8* }, { i64, i8* } } * * * * * frameType = %nest.formattedWrite = type { %"std.format.FormatSpec!char.FormatSpec" } * * * * nested var: spec * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(421) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(424) * * * * * * DeclarationExp::toElem: alias FPfmt = void function(MsgRange, const(void)*, ref FormatSpec!char) pure nothrow @safe; | T=void * * * * * * * DtoDeclarationExp: FPfmt * * * * * * * * Ignoring Symbol: alias * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(426) * * * * * * DeclarationExp::toElem: FormatSpec!char spec = spec = FormatSpec , spec.this(fmt); | T=void * * * * * * * DtoDeclarationExp: spec * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = FormatSpec!char) * * * * * * * * * has nestedref set (referenced by nested function/delegate) * * * * * * * * * llvm value for decl: %spec = getelementptr %nest.formattedWrite, %nest.formattedWrite* %.frame, i32 0, i32 0 * * * * * * * * * expression initializer * * * * * * * * * CommaExp::toElem: spec = FormatSpec , spec.this(fmt) @ FormatSpec!char * * * * * * * * * * AssignExp::toElem: spec = FormatSpec | (FormatSpec!char)(FormatSpec!char = FormatSpec!char) * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(426) * * * * * * * * * * * VarExp::toElem: FormatSpec @ FormatSpec!char * * * * * * * * * * * * DtoSymbolAddress ('FormatSpec' of type 'FormatSpec!char') * * * * * * * * * * * * * Sym: type=FormatSpec!char * * * * * * * * * * * * * Resolving struct type: FormatSpec (/usr/include/dlang/ldc/std/format.d(632)) * * * * * * * * * * * * * Building type: FormatSpec!char* * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * DtoAssign() * * * * * * * * * * CallExp::toElem: spec.this(fmt) @ FormatSpec!char * * * * * * * * * * * DotVarExp::toElem: spec.this @ pure nothrow @nogc ref @safe FormatSpec!char(const(char[]) fmt) * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(426) * * * * * * * * * * * * isMember = this is: FormatSpec!char * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc ref @safe FormatSpec!char(const(char[]) fmt)) * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * Final function type: %"std.format.FormatSpec!char.FormatSpec"* (%"std.format.FormatSpec!char.FormatSpec"*, { i64, i8* }) * * * * * * * * * * * * DtoResolveFunction(std.format.FormatSpec!char.FormatSpec.this): /usr/include/dlang/ldc/std/format.d(778) * * * * * * * * * * * * * DtoDeclareFunction(std.format.FormatSpec!char.FormatSpec.this): /usr/include/dlang/ldc/std/format.d(778) * * * * * * * * * * * * * * isMember = this is: FormatSpec!char * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc ref @safe FormatSpec!char(const(char[]) fmt)) * * * * * * * * * * * * * * func = declare %"std.format.FormatSpec!char.FormatSpec"* @_D3std6format18__T10FormatSpecTaZ10FormatSpec6__ctorMFNaNbNcNiNfxAaZS3std6format18__T10FormatSpecTaZ10FormatSpec(%"std.format.FormatSpec!char.FormatSpec"*, { i64, i8* }) * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * Building type: pure nothrow @nogc ref @safe FormatSpec!char(const(char[]) fmt) * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc ref @safe FormatSpec!char(const(char[]) fmt)) * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * Final function type: %"std.format.FormatSpec!char.FormatSpec"* ({ i64, i8* }) * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * %spec = getelementptr %nest.formattedWrite, %nest.formattedWrite* %.frame, i32 0, i32 0 * * * * * * * * * * * * Function type: pure nothrow @nogc ref @safe FormatSpec!char(const(char[]) fmt) * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * VarExp::toElem: fmt @ const(char[]) * * * * * * * * * * * * * * DtoSymbolAddress ('fmt' of type 'const(char[])') * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * type: const(char[]) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(428) * * * * * * DeclarationExp::toElem: void function(MsgRange, const(void)*, ref FormatSpec!char) pure nothrow @safe[1] funs = null; | T=void * * * * * * * DtoDeclarationExp: funs * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = void function(MsgRange, const(void)*, ref FormatSpec!char) pure nothrow @safe[1]) * * * * * * * * * Building type: void function(MsgRange, const(void)*, ref FormatSpec!char) pure nothrow @safe[1] * * * * * * * * * * Building type: void function(MsgRange, const(void)*, ref FormatSpec!char) pure nothrow @safe * * * * * * * * * * * Building type: pure nothrow @safe void(MsgRange, const(void)*, ref FormatSpec!char) * * * * * * * * * * * * DtoFunctionType(pure nothrow @safe void(MsgRange, const(void)*, ref FormatSpec!char)) * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * Final function type: void (%"std.format.FormatSpec!char.FormatSpec"*, i8*, %std.experimental.logger.core.MsgRange*) * * * * * * * * * llvm value for decl: %funs = alloca [1 x void (%"std.format.FormatSpec!char.FormatSpec"*, i8*, %std.experimental.logger.core.MsgRange*)*], align 8 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: funs[] = null | (void function(MsgRange, const(void)*, ref FormatSpec!char) pure nothrow @safe[])(void function(MsgRange, const(void)*, ref FormatSpec!char) pure nothrow @safe[] = void function(MsgRange, const(void)*, ref FormatSpec!char) pure nothrow @safe) * * * * * * * * * * performing static array literal assignment * * * * * * * * * * SliceExp::toElem: funs[] @ void function(MsgRange, const(void)*, ref FormatSpec!char) pure nothrow @safe[] * * * * * * * * * * * VarExp::toElem: funs @ void function(MsgRange, const(void)*, ref FormatSpec!char) pure nothrow @safe[1] * * * * * * * * * * * * DtoSymbolAddress ('funs' of type 'void function(MsgRange, const(void)*, ref FormatSpec!char) pure nothrow @safe[1]') * * * * * * * * * * * * * a normal variable * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * Building type: void function(MsgRange, const(void)*, ref FormatSpec!char) pure nothrow @safe* * * * * * * * * * * NullExp::toElem(type=void function(MsgRange, const(void)*, ref FormatSpec!char) pure nothrow @safe): null * * * * * * * * * * * NullExp::toConstElem(type=void function(MsgRange, const(void)*, ref FormatSpec!char) pure nothrow @safe): null * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * DtoArrayInit * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(429) * * * * * * DeclarationExp::toElem: const(void)*[1] argsAddresses = null; | T=void * * * * * * * DtoDeclarationExp: argsAddresses * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = const(void)*[1]) * * * * * * * * * Building type: const(void)*[1] * * * * * * * * * llvm value for decl: %argsAddresses = alloca [1 x i8*], align 8 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: argsAddresses[] = null | (const(void)*[])(const(void)*[] = const(void)*) * * * * * * * * * * performing static array literal assignment * * * * * * * * * * SliceExp::toElem: argsAddresses[] @ const(void)*[] * * * * * * * * * * * VarExp::toElem: argsAddresses @ const(void)*[1] * * * * * * * * * * * * DtoSymbolAddress ('argsAddresses' of type 'const(void)*[1]') * * * * * * * * * * * * * a normal variable * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * Building type: const(void)** * * * * * * * * * * NullExp::toElem(type=const(void)*): null * * * * * * * * * * * NullExp::toConstElem(type=const(void)*): null * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * DtoArrayInit * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(430) * * * * * * NotExp::toElem: !__ctfe @ bool * * * * * * * VarExp::toElem: __ctfe @ bool * * * * * * * * DtoSymbolAddress ('__ctfe' of type 'bool') * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(431) * * * * * * * UnrolledLoopStatement::toIR(): /usr/include/dlang/ldc/std/format.d(432) * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(432) * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(432) * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(432) * * * * * * * * * * * DeclarationExp::toElem: enum ulong i = 0LU; | T=void * * * * * * * * * * * * DtoDeclarationExp: i * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * Manifest constant, nothing to do. * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(432) * * * * * * * * * * * DeclarationExp::toElem: alias Arg = string; | T=void * * * * * * * * * * * * DtoDeclarationExp: Arg * * * * * * * * * * * * * Ignoring Symbol: alias * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(434) * * * * * * * * * * * AssignExp::toElem: funs[0] = (*() => & formatGeneric)() | (void function(MsgRange, const(void)*, ref FormatSpec!char) pure nothrow @safe)(void function(MsgRange, const(void)*, ref FormatSpec!char) pure nothrow @safe = void function(MsgRange, const(void)*, ref FormatSpec!char) pure nothrow @safe) * * * * * * * * * * * * IndexExp::toElem: funs[0] @ void function(MsgRange, const(void)*, ref FormatSpec!char) pure nothrow @safe * * * * * * * * * * * * * VarExp::toElem: funs @ void function(MsgRange, const(void)*, ref FormatSpec!char) pure nothrow @safe[1] * * * * * * * * * * * * * * DtoSymbolAddress ('funs' of type 'void function(MsgRange, const(void)*, ref FormatSpec!char) pure nothrow @safe[1]') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * CallExp::toElem: (*() => & formatGeneric)() @ void function(MsgRange, const(void)*, ref FormatSpec!char) pure nothrow @safe * * * * * * * * * * * * * PtrExp::toElem: *() => & formatGeneric @ pure nothrow @nogc @trusted void function(MsgRange, const(void)*, ref FormatSpec!char) pure nothrow @safe() * * * * * * * * * * * * * * FuncExp::toElem: __lambda5 @ void function(MsgRange, const(void)*, ref FormatSpec!char) pure nothrow @safe function() pure nothrow @nogc @trusted * * * * * * * * * * * * * * * kind = function * * * * * * * * * * * * * * * DtoDefineFunction(std.format.formattedWrite!(MsgRange, char, string).formattedWrite.__lambda5): /usr/include/dlang/ldc/std/format.d(434) * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted void function(MsgRange, const(void)*, ref FormatSpec!char) pure nothrow @safe()) * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * Final function type: void (%"std.format.FormatSpec!char.FormatSpec"*, i8*, %std.experimental.logger.core.MsgRange*)* () * * * * * * * * * * * * * * * * DtoResolveFunction(std.format.formattedWrite!(MsgRange, char, string).formattedWrite.__lambda5): /usr/include/dlang/ldc/std/format.d(434) * * * * * * * * * * * * * * * * * DtoDeclareFunction(std.format.formattedWrite!(MsgRange, char, string).formattedWrite.__lambda5): /usr/include/dlang/ldc/std/format.d(434) * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted void function(MsgRange, const(void)*, ref FormatSpec!char) pure nothrow @safe()) * * * * * * * * * * * * * * * * * * func = declare void (%"std.format.FormatSpec!char.FormatSpec"*, i8*, %std.experimental.logger.core.MsgRange*)* @_D3std6format67__T14formattedWriteTS3std12experimental6logger4core8MsgRangeTaTAyaZ14formattedWriteFS3std12experimental6logger4core8MsgRangexAaAyaZ9__lambda5FNaNbNiNeZPFNaNbNfS3std12experimental6logger4core8MsgRangePxvKS3std6format18__T10FormatSpecTaZ10FormatSpecZv() * * * * * * * * * * * * * * * * Doing function body for: __lambda5 * * * * * * * * * * * * * * * * DtoCreateNestedContext for __lambda5 * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for std.format.formattedWrite!(MsgRange, char, string).formattedWrite.__lambda5 * * * * * * * * * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * * * * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/format.d(434) * * * * * * * * * * * * * * * * * * SymOffExp::toElem: & formatGeneric @ void function(MsgRange, const(void)*, ref FormatSpec!char) pure nothrow @safe * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('formatGeneric' of type '@system void(MsgRange w, const(void)* arg, ref FormatSpec!char f)') * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * * DtoFunctionType(@system void(MsgRange w, const(void)* arg, ref FormatSpec!char f)) * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * * Final function type: void (%"std.format.FormatSpec!char.FormatSpec"*, i8*, %std.experimental.logger.core.MsgRange*) * * * * * * * * * * * * * * * * * * * * DtoResolveFunction(std.format.formatGeneric!(MsgRange, string, char).formatGeneric): /usr/include/dlang/ldc/std/format.d(3455) * * * * * * * * * * * * * * * * * * * * * DtoDeclareFunction(std.format.formatGeneric!(MsgRange, string, char).formatGeneric): /usr/include/dlang/ldc/std/format.d(3455) * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(@system void(MsgRange w, const(void)* arg, ref FormatSpec!char f)) * * * * * * * * * * * * * * * * * * * * * * func = declare void @_D3std6format66__T13formatGenericTS3std12experimental6logger4core8MsgRangeTAyaTaZ13formatGenericFS3std12experimental6logger4core8MsgRangePxvKS3std6format18__T10FormatSpecTaZ10FormatSpecZv(%"std.format.FormatSpec!char.FormatSpec"*, i8*, %std.experimental.logger.core.MsgRange*) * * * * * * * * * * * * * * * * * * * Casting from 'void function(MsgRange w, const(void)* arg, ref FormatSpec!char f) @system' to 'void function(MsgRange, const(void)*, ref FormatSpec!char) pure nothrow @safe' * * * * * * * * * * * * * * * * * * * * src: declare void @_D3std6format66__T13formatGenericTS3std12experimental6logger4core8MsgRangeTAyaTaZ13formatGenericFS3std12experimental6logger4core8MsgRangePxvKS3std6format18__T10FormatSpecTaZ10FormatSpecZv(%"std.format.FormatSpec!char.FormatSpec"*, i8*, %std.experimental.logger.core.MsgRange* byval) * * * * * * * * * * * * * * * * * * * * to type: void (%"std.format.FormatSpec!char.FormatSpec"*, i8*, %std.experimental.logger.core.MsgRange*)* * * * * * * * * * * * * * * * * * * return value is '0x125c5498' * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * Building type: pure nothrow @nogc @trusted void function(MsgRange, const(void)*, ref FormatSpec!char) pure nothrow @safe() * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted void function(MsgRange, const(void)*, ref FormatSpec!char) pure nothrow @safe()) * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * Final function type: void (%"std.format.FormatSpec!char.FormatSpec"*, i8*, %std.experimental.logger.core.MsgRange*)* () * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * Function type: pure nothrow @nogc @trusted void function(MsgRange, const(void)*, ref FormatSpec!char) pure nothrow @safe() * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * lhs: %10 = getelementptr [1 x void (%"std.format.FormatSpec!char.FormatSpec"*, i8*, %std.experimental.logger.core.MsgRange*)*], [1 x void (%"std.format.FormatSpec!char.FormatSpec"*, i8*, %std.experimental.logger.core.MsgRange*)*]* %funs, i32 0, i64 0 * * * * * * * * * * * * * rhs: %11 = call void (%"std.format.FormatSpec!char.FormatSpec"*, i8*, %std.experimental.logger.core.MsgRange*)* @_D3std6format67__T14formattedWriteTS3std12experimental6logger4core8MsgRangeTaTAyaZ14formattedWriteFS3std12experimental6logger4core8MsgRangexAaAyaZ9__lambda5FNaNbNiNeZPFNaNbNfS3std12experimental6logger4core8MsgRangePxvKS3std6format18__T10FormatSpecTaZ10FormatSpecZv() * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(437) * * * * * * * * * * * AssignExp::toElem: argsAddresses[0] = (*(ref string arg) => cast(const(void*))&arg)(_param_2) | (const(void)*)(const(void)* = const(void)*) * * * * * * * * * * * * IndexExp::toElem: argsAddresses[0] @ const(void)* * * * * * * * * * * * * * VarExp::toElem: argsAddresses @ const(void)*[1] * * * * * * * * * * * * * * DtoSymbolAddress ('argsAddresses' of type 'const(void)*[1]') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * CallExp::toElem: (*(ref string arg) => cast(const(void*))&arg)(_param_2) @ const(void)* * * * * * * * * * * * * * PtrExp::toElem: *(ref string arg) => cast(const(void*))&arg @ pure nothrow @nogc @trusted const(void*)(ref string arg) * * * * * * * * * * * * * * FuncExp::toElem: __lambda6 @ const(void*) function(ref string arg) pure nothrow @nogc @trusted * * * * * * * * * * * * * * * kind = function * * * * * * * * * * * * * * * DtoDefineFunction(std.format.formattedWrite!(MsgRange, char, string).formattedWrite.__lambda6): /usr/include/dlang/ldc/std/format.d(437) * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted const(void*)(ref string arg)) * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * Final function type: i8* ({ i64, i8* }*) * * * * * * * * * * * * * * * * DtoResolveFunction(std.format.formattedWrite!(MsgRange, char, string).formattedWrite.__lambda6): /usr/include/dlang/ldc/std/format.d(437) * * * * * * * * * * * * * * * * * DtoDeclareFunction(std.format.formattedWrite!(MsgRange, char, string).formattedWrite.__lambda6): /usr/include/dlang/ldc/std/format.d(437) * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted const(void*)(ref string arg)) * * * * * * * * * * * * * * * * * * func = declare i8* @_D3std6format67__T14formattedWriteTS3std12experimental6logger4core8MsgRangeTaTAyaZ14formattedWriteFS3std12experimental6logger4core8MsgRangexAaAyaZ18__T9__lambda6TAyaZ9__lambda6FNaNbNiNeKAyaZxPv({ i64, i8* }*) * * * * * * * * * * * * * * * * Doing function body for: __lambda6 * * * * * * * * * * * * * * * * DtoCreateNestedContext for __lambda6 * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for std.format.formattedWrite!(MsgRange, char, string).formattedWrite.__lambda6 * * * * * * * * * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * * * * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/format.d(437) * * * * * * * * * * * * * * * * * * CastExp::toElem: cast(const(void*))&arg @ const(void*) * * * * * * * * * * * * * * * * * * * AddrExp::toElem: &arg @ string* * * * * * * * * * * * * * * * * * * * * VarExp::toElem: arg @ string * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('arg' of type 'string') * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * type: string * * * * * * * * * * * * * * * * * * * * is nothing special * * * * * * * * * * * * * * * * * * * * lval: { i64, i8* }* %arg_arg * * * * * * * * * * * * * * * * * * * Casting from 'string*' to 'const(void*)' * * * * * * * * * * * * * * * * * * * * src: { i64, i8* }* %arg_arg * * * * * * * * * * * * * * * * * * * * to type: i8* * * * * * * * * * * * * * * * * * * return value is '0x125cc2d8' * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * Building type: pure nothrow @nogc @trusted const(void*)(ref string arg) * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted const(void*)(ref string arg)) * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * Final function type: i8* ({ i64, i8* }*) * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * Function type: pure nothrow @nogc @trusted const(void*)(ref string arg) * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * VarExp::toElem: _param_2 @ string * * * * * * * * * * * * * * * * DtoSymbolAddress ('_param_2' of type 'string') * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * type: string * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * lhs: %12 = getelementptr [1 x i8*], [1 x i8*]* %argsAddresses, i32 0, i64 0 * * * * * * * * * * * * * rhs: %13 = call i8* @_D3std6format67__T14formattedWriteTS3std12experimental6logger4core8MsgRangeTaTAyaZ14formattedWriteFS3std12experimental6logger4core8MsgRangexAaAyaZ18__T9__lambda6TAyaZ9__lambda6FNaNbNiNeKAyaZxPv({ i64, i8* }* %_param_2) * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(440) * * * * * * * * * * * IntegerExp::toElem: 0 @ int * * * * * * * * * * * * IntegerExp::toConstElem: 0 @ int * * * * * * * * * * * * * value = i32 0 * * * * * * * * * * * if conditional: i32 0 * * * * * * * * * * * Casting from 'int' to 'bool' * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(440) * * * * * * * * * * * * CallExp::toElem: formatValue(w, _param_2, spec) @ void * * * * * * * * * * * * * VarExp::toElem: formatValue @ @safe void(MsgRange w, string obj, ref FormatSpec!char f) * * * * * * * * * * * * * * DtoSymbolAddress ('formatValue' of type '@safe void(MsgRange w, string obj, ref FormatSpec!char f)') * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * DtoFunctionType(@safe void(MsgRange w, string obj, ref FormatSpec!char f)) * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * Final function type: void (%"std.format.FormatSpec!char.FormatSpec"*, { i64, i8* }, %std.experimental.logger.core.MsgRange*) * * * * * * * * * * * * * * * DtoResolveFunction(std.format.formatValue!(MsgRange, string, char).formatValue): /usr/include/dlang/ldc/std/format.d(1978) * * * * * * * * * * * * * * * * DtoDeclareFunction(std.format.formatValue!(MsgRange, string, char).formatValue): /usr/include/dlang/ldc/std/format.d(1978) * * * * * * * * * * * * * * * * * DtoFunctionType(@safe void(MsgRange w, string obj, ref FormatSpec!char f)) * * * * * * * * * * * * * * * * * func = declare void @_D3std6format64__T11formatValueTS3std12experimental6logger4core8MsgRangeTAyaTaZ11formatValueFNfS3std12experimental6logger4core8MsgRangeAyaKS3std6format18__T10FormatSpecTaZ10FormatSpecZv(%"std.format.FormatSpec!char.FormatSpec"*, { i64, i8* }, %std.experimental.logger.core.MsgRange*) * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * Building type: @safe void(MsgRange w, string obj, ref FormatSpec!char f) * * * * * * * * * * * * * * * DtoFunctionType(@safe void(MsgRange w, string obj, ref FormatSpec!char f)) * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * Final function type: void (%"std.format.FormatSpec!char.FormatSpec"*, { i64, i8* }, %std.experimental.logger.core.MsgRange*) * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * Function type: @safe void(MsgRange w, string obj, ref FormatSpec!char f) * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * VarExp::toElem: w @ MsgRange * * * * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'MsgRange') * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * type: MsgRange * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * VarExp::toElem: _param_2 @ string * * * * * * * * * * * * * * * * DtoSymbolAddress ('_param_2' of type 'string') * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * type: string * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(440) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(445) * * * * * * DeclarationExp::toElem: uint currentArg = 0u; | T=void * * * * * * * DtoDeclarationExp: currentArg * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = uint) * * * * * * * * * llvm value for decl: %currentArg = alloca i32, align 4 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: currentArg = 0u | (uint)(uint = uint) * * * * * * * * * * VarExp::toElem: currentArg @ uint * * * * * * * * * * * DtoSymbolAddress ('currentArg' of type 'uint') * * * * * * * * * * * * a normal variable * * * * * * * * * * IntegerExp::toElem: 0u @ uint * * * * * * * * * * * IntegerExp::toConstElem: 0u @ uint * * * * * * * * * * * * value = i32 0 * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %currentArg = alloca i32, align 4 * * * * * * * * * * * rhs: i32 0 * * * * * ForStatement::toIR(): /usr/include/dlang/ldc/std/format.d(446) * * * * * * CallExp::toElem: spec.writeUpToNextSpec(w) @ bool * * * * * * * DotVarExp::toElem: spec.writeUpToNextSpec @ @safe bool(MsgRange writer) * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * nested variable * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(446) * * * * * * * * isMember = this is: FormatSpec!char * * * * * * * * DtoFunctionType(@safe bool(MsgRange writer)) * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * Final function type: i1 (%"std.format.FormatSpec!char.FormatSpec"*, %std.experimental.logger.core.MsgRange*) * * * * * * * * DtoResolveFunction(std.format.FormatSpec!char.FormatSpec.writeUpToNextSpec!(MsgRange).writeUpToNextSpec): /usr/include/dlang/ldc/std/format.d(783) * * * * * * * * * DtoDeclareFunction(std.format.FormatSpec!char.FormatSpec.writeUpToNextSpec!(MsgRange).writeUpToNextSpec): /usr/include/dlang/ldc/std/format.d(783) * * * * * * * * * * isMember = this is: FormatSpec!char * * * * * * * * * * DtoFunctionType(@safe bool(MsgRange writer)) * * * * * * * * * * func = declare i1 @_D3std6format18__T10FormatSpecTaZ10FormatSpec64__T17writeUpToNextSpecTS3std12experimental6logger4core8MsgRangeZ17writeUpToNextSpecMFNfS3std12experimental6logger4core8MsgRangeZb(%"std.format.FormatSpec!char.FormatSpec"*, %std.experimental.logger.core.MsgRange*) * * * * * * * DtoCallFunction() * * * * * * * * Building type: @safe bool(MsgRange writer) * * * * * * * * * DtoFunctionType(@safe bool(MsgRange writer)) * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: i1 (%std.experimental.logger.core.MsgRange*) * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (1) * * * * * * * * * %spec = getelementptr %nest.formattedWrite, %nest.formattedWrite* %.frame, i32 0, i32 0 * * * * * * * * Function type: @safe bool(MsgRange writer) * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: w @ MsgRange * * * * * * * * * * DtoSymbolAddress ('w' of type 'MsgRange') * * * * * * * * * * * function param * * * * * * * * * * * type: MsgRange * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(447) * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(447) * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(448) * * * * * * * * * AndAndExp::toElem: cast(ulong)currentArg == 1LU && !spec.indexStart @ bool * * * * * * * * * * EqualExp::toElem: cast(ulong)currentArg == 1LU @ bool * * * * * * * * * * * CastExp::toElem: cast(ulong)currentArg @ ulong * * * * * * * * * * * * VarExp::toElem: currentArg @ uint * * * * * * * * * * * * * DtoSymbolAddress ('currentArg' of type 'uint') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * Casting from 'uint' to 'ulong' * * * * * * * * * * * * * cast to: i64 * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * integral or pointer or interface * * * * * * * * * * * lv: %17 = zext i32 %16 to i64 * * * * * * * * * * * rv: i64 1 * * * * * * * * * * NotExp::toElem: !spec.indexStart @ bool * * * * * * * * * * * DotVarExp::toElem: spec.indexStart @ ubyte * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(448) * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.indexStart: * * * * * * * * * * * * * Value: %19 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 3 * * * * * * * * * * * Casting from 'ubyte' to 'bool' * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(449) * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(449) * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(451) * * * * * * * * * * * * CallExp::toElem: enforceEx(fmt.length == 0LU, delegate string() => text("Orphan format specifier: %", spec.spec), "/usr/include/dlang/ldc/std/format.d", 451LU) @ bool * * * * * * * * * * * * * VarExp::toElem: enforceEx @ pure @safe bool(bool value, lazy string msg = "", string file = __FILE__, ulong line = cast(ulong)__LINE__) * * * * * * * * * * * * * * DtoSymbolAddress ('enforceEx' of type 'pure @safe bool(bool value, lazy string msg = "", string file = __FILE__, ulong line = cast(ulong)__LINE__)') * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * DtoFunctionType(pure @safe bool(bool value, lazy string msg = "", string file = __FILE__, ulong line = cast(ulong)__LINE__)) * * * * * * * * * * * * * * * * lazy param * * * * * * * * * * * * * * * * Building type: string delegate() * * * * * * * * * * * * * * * * * DtoFunctionType(string()) * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * Final function type: { i64, i8* } (i8*) * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * Final function type: i1 (i64, { i64, i8* }, { i8*, { i64, i8* } (i8*)* }, i1) * * * * * * * * * * * * * * * DtoResolveFunction(std.exception.enforceEx!(FormatException).enforceEx!bool.enforceEx): /usr/include/dlang/ldc/std/exception.d(573) * * * * * * * * * * * * * * * * DtoDeclareFunction(std.exception.enforceEx!(FormatException).enforceEx!bool.enforceEx): /usr/include/dlang/ldc/std/exception.d(573) * * * * * * * * * * * * * * * * * DtoFunctionType(pure @safe bool(bool value, lazy string msg = "", string file = __FILE__, ulong line = cast(ulong)__LINE__)) * * * * * * * * * * * * * * * * * func = declare i1 @_D3std9exception45__T9enforceExHTC3std6format15FormatExceptionZ16__T9enforceExTbZ9enforceExFNaNfbLAyaAyamZb(i64, { i64, i8* }, { i8*, { i64, i8* } (i8*)* }, i1) * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * Building type: pure @safe bool(bool value, lazy string msg = "", string file = __FILE__, ulong line = cast(ulong)__LINE__) * * * * * * * * * * * * * * * DtoFunctionType(pure @safe bool(bool value, lazy string msg = "", string file = __FILE__, ulong line = cast(ulong)__LINE__)) * * * * * * * * * * * * * * * * lazy param * * * * * * * * * * * * * * * * Building type: string delegate() * * * * * * * * * * * * * * * * * DtoFunctionType(string()) * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * Final function type: { i64, i8* } (i8*) * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * Final function type: i1 (i64, { i64, i8* }, { i8*, { i64, i8* } (i8*)* }, i1) * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * Function type: pure @safe bool(bool value, lazy string msg = "", string file = __FILE__, ulong line = cast(ulong)__LINE__) * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * EqualExp::toElem: fmt.length == 0LU @ bool * * * * * * * * * * * * * * * * ArrayLengthExp::toElem: fmt.length @ ulong * * * * * * * * * * * * * * * * * VarExp::toElem: fmt @ const(char[]) * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('fmt' of type 'const(char[])') * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * type: const(char[]) * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * * * * integral or pointer or interface * * * * * * * * * * * * * * * * lv: %.len = load i64, i64* %23 * * * * * * * * * * * * * * * * rv: i64 0 * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * FuncExp::toElem: __dgliteral7 @ string delegate() pure @nogc @safe * * * * * * * * * * * * * * * * nested * * * * * * * * * * * * * * * * kind = delegate * * * * * * * * * * * * * * * * DtoDefineFunction(std.format.formattedWrite!(MsgRange, char, string).formattedWrite.__dgliteral7): /usr/include/dlang/ldc/std/format.d(452) * * * * * * * * * * * * * * * * * DtoFunctionType(pure @nogc @safe string()) * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * Final function type: { i64, i8* } (i8*) * * * * * * * * * * * * * * * * * DtoResolveFunction(std.format.formattedWrite!(MsgRange, char, string).formattedWrite.__dgliteral7): /usr/include/dlang/ldc/std/format.d(452) * * * * * * * * * * * * * * * * * * DtoDeclareFunction(std.format.formattedWrite!(MsgRange, char, string).formattedWrite.__dgliteral7): /usr/include/dlang/ldc/std/format.d(452) * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure @nogc @safe string()) * * * * * * * * * * * * * * * * * * * func = declare { i64, i8* } @_D3std6format67__T14formattedWriteTS3std12experimental6logger4core8MsgRangeTaTAyaZ14formattedWriteFS3std12experimental6logger4core8MsgRangexAaAyaZ12__dgliteral7MFNaNiNfZAya(i8*) * * * * * * * * * * * * * * * * * Doing function body for: __dgliteral7 * * * * * * * * * * * * * * * * * DtoCreateNestedContext for __dgliteral7 * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for std.format.formattedWrite!(MsgRange, char, string).formattedWrite.__dgliteral7 * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for std.format.formattedWrite!(MsgRange, char, string).formattedWrite * * * * * * * * * * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * * * * * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/format.d(452) * * * * * * * * * * * * * * * * * * * CallExp::toElem: text("Orphan format specifier: %", spec.spec) @ string * * * * * * * * * * * * * * * * * * * * VarExp::toElem: text @ pure @safe string(string _param_0, char _param_1) * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('text' of type 'pure @safe string(string _param_0, char _param_1)') * * * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure @safe string(string _param_0, char _param_1)) * * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * * * * Final function type: { i64, i8* } (i8, { i64, i8* }) * * * * * * * * * * * * * * * * * * * * * * DtoResolveFunction(std.conv.text!(string, char).text): /usr/include/dlang/ldc/std/conv.d(3638) * * * * * * * * * * * * * * * * * * * * * * * DtoDeclareFunction(std.conv.text!(string, char).text): /usr/include/dlang/ldc/std/conv.d(3638) * * * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure @safe string(string _param_0, char _param_1)) * * * * * * * * * * * * * * * * * * * * * * * * func = declare { i64, i8* } @_D3std4conv15__T4textTAyaTaZ4textFNaNfAyaaZAya(i8, { i64, i8* }) * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * Building type: pure @safe string(string _param_0, char _param_1) * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure @safe string(string _param_0, char _param_1)) * * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * * * * Final function type: { i64, i8* } (i8, { i64, i8* }) * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * * * Function type: pure @safe string(string _param_0, char _param_1) * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * StringExp::toElem: "Orphan format specifier: %" @ string * * * * * * * * * * * * * * * * * * * * * * * type: [27 x i8] * * * * * * * * * * * * * * * * * * * * * * * init: [27 x i8] c"Orphan format specifier: %\00" * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: spec.spec @ char * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(452) * * * * * * * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for std.format.formattedWrite!(MsgRange, char, string).formattedWrite * * * * * * * * * * * * * * * * * * * * * * * * * * Context: %2 = bitcast i8* %1 to %nest.formattedWrite* * * * * * * * * * * * * * * * * * * * * * * * * * * of type: %nest.formattedWrite = type { %"std.format.FormatSpec!char.FormatSpec" } * * * * * * * * * * * * * * * * * * * * * * * * * * Variable: spec * * * * * * * * * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * * * * * * * * * Function: __dgliteral7 * * * * * * * * * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * * * * * * * * * Addr: %spec = getelementptr %nest.formattedWrite, %nest.formattedWrite* %2, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * * * * * * * * of type: %"std.format.FormatSpec!char.FormatSpec"* * * * * * * * * * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.spec: * * * * * * * * * * * * * * * * * * * * * * * * Value: %3 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 2 * * * * * * * * * * * * * * * * * * * return value is '0x125d5298' * * * * * * * * * * * * * * * * Building type: string delegate() pure @nogc @safe * * * * * * * * * * * * * * * * * DtoFunctionType(pure @nogc @safe string()) * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * Final function type: { i64, i8* } (i8*) * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * StringExp::toElem: "/usr/include/dlang/ldc/std/format.d" @ string * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * IntegerExp::toElem: 451LU @ ulong * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 451LU @ ulong * * * * * * * * * * * * * * * * * value = i64 451 * * * * * * * * * * * BreakStatement::toIR(): /usr/include/dlang/ldc/std/format.d(453) * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(455) * * * * * * * * * EqualExp::toElem: spec.width == 2147483647 @ bool * * * * * * * * * * DotVarExp::toElem: spec.width @ int * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(455) * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.width: * * * * * * * * * * * * Value: %28 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 0 * * * * * * * * * * IntegerExp::toElem: 2147483647 @ int * * * * * * * * * * * IntegerExp::toConstElem: 2147483647 @ int * * * * * * * * * * * * value = i32 2147483647 * * * * * * * * * * integral or pointer or interface * * * * * * * * * * lv: %29 = load i32, i32* %28 * * * * * * * * * * rv: i32 2147483647 * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(456) * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(456) * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(457) * * * * * * * * * * * * DeclarationExp::toElem: int width = to(getNthInt(currentArg, _param_2)); | T=void * * * * * * * * * * * * * DtoDeclarationExp: width * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = int) * * * * * * * * * * * * * * * llvm value for decl: %width = alloca i32, align 4 * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * AssignExp::toElem: width = to(getNthInt(currentArg, _param_2)) | (int)(int = int) * * * * * * * * * * * * * * * * VarExp::toElem: width @ int * * * * * * * * * * * * * * * * * DtoSymbolAddress ('width' of type 'int') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * CallExp::toElem: to(getNthInt(currentArg, _param_2)) @ int * * * * * * * * * * * * * * * * * VarExp::toElem: to @ pure nothrow @nogc @safe int(int _param_0) * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('to' of type 'pure nothrow @nogc @safe int(int _param_0)') * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe int(int _param_0)) * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * Final function type: i32 (i32) * * * * * * * * * * * * * * * * * * * DtoResolveFunction(std.conv.to!int.to!(int).to): /usr/include/dlang/ldc/std/conv.d(292) * * * * * * * * * * * * * * * * * * * * DtoDeclareFunction(std.conv.to!int.to!(int).to): /usr/include/dlang/ldc/std/conv.d(292) * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe int(int _param_0)) * * * * * * * * * * * * * * * * * * * * * func = declare i32 @_D3std4conv9__T2toTiZ9__T2toTiZ2toFNaNbNiNfiZi(i32) * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * Building type: pure nothrow @nogc @safe int(int _param_0) * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe int(int _param_0)) * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * Final function type: i32 (i32) * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @safe int(int _param_0) * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * CallExp::toElem: getNthInt(currentArg, _param_2) @ int * * * * * * * * * * * * * * * * * * * * VarExp::toElem: getNthInt @ pure @safe int(uint index, string _param_1) * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('getNthInt' of type 'pure @safe int(uint index, string _param_1)') * * * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure @safe int(uint index, string _param_1)) * * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * * * * Final function type: i32 ({ i64, i8* }, i32) * * * * * * * * * * * * * * * * * * * * * * DtoResolveFunction(std.format.getNthInt!(string).getNthInt): /usr/include/dlang/ldc/std/format.d(3501) * * * * * * * * * * * * * * * * * * * * * * * DtoDeclareFunction(std.format.getNthInt!(string).getNthInt): /usr/include/dlang/ldc/std/format.d(3501) * * * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure @safe int(uint index, string _param_1)) * * * * * * * * * * * * * * * * * * * * * * * * func = declare i32 @_D3std6format18__T9getNthIntTAyaZ9getNthIntFNaNfkAyaZi({ i64, i8* }, i32) * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * Building type: pure @safe int(uint index, string _param_1) * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure @safe int(uint index, string _param_1)) * * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * * * * Final function type: i32 ({ i64, i8* }, i32) * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * * * Function type: pure @safe int(uint index, string _param_1) * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: currentArg @ uint * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('currentArg' of type 'uint') * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: _param_2 @ string * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('_param_2' of type 'string') * * * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * * * type: string * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * lhs: %width = alloca i32, align 4 * * * * * * * * * * * * * * * * * rhs: %34 = call i32 @_D3std4conv9__T2toTiZ9__T2toTiZ2toFNaNbNiNfiZi(i32 %33) * * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(458) * * * * * * * * * * * * CmpExp::toElem: width < 0 @ bool * * * * * * * * * * * * * VarExp::toElem: width @ int * * * * * * * * * * * * * * DtoSymbolAddress ('width' of type 'int') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * IntegerExp::toElem: 0 @ int * * * * * * * * * * * * * * IntegerExp::toConstElem: 0 @ int * * * * * * * * * * * * * * * value = i32 0 * * * * * * * * * * * * * type 1: %35 = load i32, i32* %width * * * * * * * * * * * * * type 2: i32 0 * * * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(459) * * * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(459) * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(460) * * * * * * * * * * * * * * * CallExp::toElem: spec.flDash(true) @ void * * * * * * * * * * * * * * * * DotVarExp::toElem: spec.flDash @ pure nothrow @nogc @property @safe void(bool v) * * * * * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(460) * * * * * * * * * * * * * * * * * isMember = this is: FormatSpec!char * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @property @safe void(bool v)) * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * Final function type: void (%"std.format.FormatSpec!char.FormatSpec"*, i1) * * * * * * * * * * * * * * * * * DtoResolveFunction(std.format.FormatSpec!char.FormatSpec.flDash): /usr/include/dlang/ldc/std/format.d-mixin-721(722) * * * * * * * * * * * * * * * * * * DtoDeclareFunction(std.format.FormatSpec!char.FormatSpec.flDash): /usr/include/dlang/ldc/std/format.d-mixin-721(722) * * * * * * * * * * * * * * * * * * * isMember = this is: FormatSpec!char * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @property @safe void(bool v)) * * * * * * * * * * * * * * * * * * * func = declare void @_D3std6format18__T10FormatSpecTaZ10FormatSpec6flDashMFNaNbNdNiNfbZv(%"std.format.FormatSpec!char.FormatSpec"*, i1) * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * Building type: pure nothrow @nogc @property @safe void(bool v) * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @property @safe void(bool v)) * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * Final function type: void (i1) * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * %spec = getelementptr %nest.formattedWrite, %nest.formattedWrite* %.frame, i32 0, i32 0 * * * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @property @safe void(bool v) * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * IntegerExp::toElem: true @ bool * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: true @ bool * * * * * * * * * * * * * * * * * * * * value = i1 true * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(461) * * * * * * * * * * * * * * * AssignExp::toElem: width = -width | (int)(int = int) * * * * * * * * * * * * * * * * VarExp::toElem: width @ int * * * * * * * * * * * * * * * * * DtoSymbolAddress ('width' of type 'int') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * NegExp::toElem: -width @ int * * * * * * * * * * * * * * * * * VarExp::toElem: width @ int * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('width' of type 'int') * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * lhs: %width = alloca i32, align 4 * * * * * * * * * * * * * * * * * rhs: %negval = sub i32 0, %37 * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(463) * * * * * * * * * * * * AssignExp::toElem: spec.width = width | (int)(int = int) * * * * * * * * * * * * * DotVarExp::toElem: spec.width @ int * * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(463) * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.width: * * * * * * * * * * * * * * * Value: %38 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 0 * * * * * * * * * * * * * VarExp::toElem: width @ int * * * * * * * * * * * * * * DtoSymbolAddress ('width' of type 'int') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * lhs: %38 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 0 * * * * * * * * * * * * * * rhs: %39 = load i32, i32* %width * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(464) * * * * * * * * * * * * AddAssignExp::toElem: currentArg += 1u @ uint * * * * * * * * * * * * * Caching l-value of currentArg += 1u => currentArg * * * * * * * * * * * * * * VarExp::toElem: currentArg @ uint * * * * * * * * * * * * * * * DtoSymbolAddress ('currentArg' of type 'uint') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * AddExp::toElem: currentArg + 1u @ uint * * * * * * * * * * * * * * VarExp::toElem: currentArg @ uint * * * * * * * * * * * * * * IntegerExp::toElem: 1u @ uint * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1u @ uint * * * * * * * * * * * * * * * * value = i32 1 * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * lhs: %currentArg = alloca i32, align 4 * * * * * * * * * * * * * * rhs: %41 = add i32 %40, 1 * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(466) * * * * * * * * * * CmpExp::toElem: spec.width < 0 @ bool * * * * * * * * * * * DotVarExp::toElem: spec.width @ int * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(466) * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.width: * * * * * * * * * * * * * Value: %37 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 0 * * * * * * * * * * * IntegerExp::toElem: 0 @ int * * * * * * * * * * * * IntegerExp::toConstElem: 0 @ int * * * * * * * * * * * * * value = i32 0 * * * * * * * * * * * type 1: %38 = load i32, i32* %37 * * * * * * * * * * * type 2: i32 0 * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(467) * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(467) * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(469) * * * * * * * * * * * * * DeclarationExp::toElem: uint index = cast(uint)-spec.width; | T=void * * * * * * * * * * * * * * DtoDeclarationExp: index * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = uint) * * * * * * * * * * * * * * * * llvm value for decl: %index = alloca i32, align 4 * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * AssignExp::toElem: index = cast(uint)-spec.width | (uint)(uint = uint) * * * * * * * * * * * * * * * * * VarExp::toElem: index @ uint * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('index' of type 'uint') * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * CastExp::toElem: cast(uint)-spec.width @ uint * * * * * * * * * * * * * * * * * * NegExp::toElem: -spec.width @ int * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: spec.width @ int * * * * * * * * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(469) * * * * * * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.width: * * * * * * * * * * * * * * * * * * * * * Value: %45 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 0 * * * * * * * * * * * * * * * * * * Casting from 'int' to 'uint' * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * lhs: %index = alloca i32, align 4 * * * * * * * * * * * * * * * * * * rhs: %negval12 = sub i32 0, %46 * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(470) * * * * * * * * * * * * * AssertExp::toElem: assert(index > 0u) * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(471) * * * * * * * * * * * * * DeclarationExp::toElem: int width = to(getNthInt(index - 1u, _param_2)); | T=void * * * * * * * * * * * * * * DtoDeclarationExp: width * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = int) * * * * * * * * * * * * * * * * llvm value for decl: %width13 = alloca i32, align 4 * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * AssignExp::toElem: width = to(getNthInt(index - 1u, _param_2)) | (int)(int = int) * * * * * * * * * * * * * * * * * VarExp::toElem: width @ int * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('width' of type 'int') * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * CallExp::toElem: to(getNthInt(index - 1u, _param_2)) @ int * * * * * * * * * * * * * * * * * * VarExp::toElem: to @ pure nothrow @nogc @safe int(int _param_0) * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('to' of type 'pure nothrow @nogc @safe int(int _param_0)') * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @safe int(int _param_0) * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * CallExp::toElem: getNthInt(index - 1u, _param_2) @ int * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: getNthInt @ pure @safe int(uint index, string _param_1) * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('getNthInt' of type 'pure @safe int(uint index, string _param_1)') * * * * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * * * * Function type: pure @safe int(uint index, string _param_1) * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * MinExp::toElem: index - 1u @ uint * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: index @ uint * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('index' of type 'uint') * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 1u @ uint * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1u @ uint * * * * * * * * * * * * * * * * * * * * * * * * * * value = i32 1 * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: _param_2 @ string * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('_param_2' of type 'string') * * * * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * * * * type: string * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * lhs: %width13 = alloca i32, align 4 * * * * * * * * * * * * * * * * * * rhs: %51 = call i32 @_D3std4conv9__T2toTiZ9__T2toTiZ2toFNaNbNiNfiZi(i32 %50) * * * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(472) * * * * * * * * * * * * * CmpExp::toElem: currentArg < index @ bool * * * * * * * * * * * * * * VarExp::toElem: currentArg @ uint * * * * * * * * * * * * * * * DtoSymbolAddress ('currentArg' of type 'uint') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * VarExp::toElem: index @ uint * * * * * * * * * * * * * * * DtoSymbolAddress ('index' of type 'uint') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * type 1: %52 = load i32, i32* %currentArg * * * * * * * * * * * * * * type 2: %53 = load i32, i32* %index * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(472) * * * * * * * * * * * * * * AssignExp::toElem: currentArg = index | (uint)(uint = uint) * * * * * * * * * * * * * * * VarExp::toElem: currentArg @ uint * * * * * * * * * * * * * * * * DtoSymbolAddress ('currentArg' of type 'uint') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * VarExp::toElem: index @ uint * * * * * * * * * * * * * * * * DtoSymbolAddress ('index' of type 'uint') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * lhs: %currentArg = alloca i32, align 4 * * * * * * * * * * * * * * * * rhs: %55 = load i32, i32* %index * * * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(473) * * * * * * * * * * * * * CmpExp::toElem: width < 0 @ bool * * * * * * * * * * * * * * VarExp::toElem: width @ int * * * * * * * * * * * * * * * DtoSymbolAddress ('width' of type 'int') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * IntegerExp::toElem: 0 @ int * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0 @ int * * * * * * * * * * * * * * * * value = i32 0 * * * * * * * * * * * * * * type 1: %56 = load i32, i32* %width13 * * * * * * * * * * * * * * type 2: i32 0 * * * * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(474) * * * * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(474) * * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(475) * * * * * * * * * * * * * * * * CallExp::toElem: spec.flDash(true) @ void * * * * * * * * * * * * * * * * * DotVarExp::toElem: spec.flDash @ pure nothrow @nogc @property @safe void(bool v) * * * * * * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(475) * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * * %spec = getelementptr %nest.formattedWrite, %nest.formattedWrite* %.frame, i32 0, i32 0 * * * * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @property @safe void(bool v) * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: true @ bool * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: true @ bool * * * * * * * * * * * * * * * * * * * * * value = i1 true * * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(476) * * * * * * * * * * * * * * * * AssignExp::toElem: width = -width | (int)(int = int) * * * * * * * * * * * * * * * * * VarExp::toElem: width @ int * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('width' of type 'int') * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * NegExp::toElem: -width @ int * * * * * * * * * * * * * * * * * * VarExp::toElem: width @ int * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('width' of type 'int') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * lhs: %width13 = alloca i32, align 4 * * * * * * * * * * * * * * * * * * rhs: %negval18 = sub i32 0, %58 * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(478) * * * * * * * * * * * * * AssignExp::toElem: spec.width = width | (int)(int = int) * * * * * * * * * * * * * * DotVarExp::toElem: spec.width @ int * * * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(478) * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.width: * * * * * * * * * * * * * * * * Value: %59 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 0 * * * * * * * * * * * * * * VarExp::toElem: width @ int * * * * * * * * * * * * * * * DtoSymbolAddress ('width' of type 'int') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * lhs: %59 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 0 * * * * * * * * * * * * * * * rhs: %60 = load i32, i32* %width13 * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(480) * * * * * * * * * EqualExp::toElem: spec.precision == 2147483647 @ bool * * * * * * * * * * DotVarExp::toElem: spec.precision @ int * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(480) * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.precision: * * * * * * * * * * * * Value: %40 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 1 * * * * * * * * * * IntegerExp::toElem: 2147483647 @ int * * * * * * * * * * * IntegerExp::toConstElem: 2147483647 @ int * * * * * * * * * * * * value = i32 2147483647 * * * * * * * * * * integral or pointer or interface * * * * * * * * * * lv: %41 = load i32, i32* %40 * * * * * * * * * * rv: i32 2147483647 * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(481) * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(481) * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(482) * * * * * * * * * * * * DeclarationExp::toElem: int precision = to(getNthInt(currentArg, _param_2)); | T=void * * * * * * * * * * * * * DtoDeclarationExp: precision * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = int) * * * * * * * * * * * * * * * llvm value for decl: %precision = alloca i32, align 4 * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * AssignExp::toElem: precision = to(getNthInt(currentArg, _param_2)) | (int)(int = int) * * * * * * * * * * * * * * * * VarExp::toElem: precision @ int * * * * * * * * * * * * * * * * * DtoSymbolAddress ('precision' of type 'int') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * CallExp::toElem: to(getNthInt(currentArg, _param_2)) @ int * * * * * * * * * * * * * * * * * VarExp::toElem: to @ pure nothrow @nogc @safe int(int _param_0) * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('to' of type 'pure nothrow @nogc @safe int(int _param_0)') * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @safe int(int _param_0) * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * CallExp::toElem: getNthInt(currentArg, _param_2) @ int * * * * * * * * * * * * * * * * * * * * VarExp::toElem: getNthInt @ pure @safe int(uint index, string _param_1) * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('getNthInt' of type 'pure @safe int(uint index, string _param_1)') * * * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * * * Function type: pure @safe int(uint index, string _param_1) * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: currentArg @ uint * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('currentArg' of type 'uint') * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: _param_2 @ string * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('_param_2' of type 'string') * * * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * * * type: string * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * lhs: %precision = alloca i32, align 4 * * * * * * * * * * * * * * * * * rhs: %67 = call i32 @_D3std4conv9__T2toTiZ9__T2toTiZ2toFNaNbNiNfiZi(i32 %66) * * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(484) * * * * * * * * * * * * CmpExp::toElem: precision >= 0 @ bool * * * * * * * * * * * * * VarExp::toElem: precision @ int * * * * * * * * * * * * * * DtoSymbolAddress ('precision' of type 'int') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * IntegerExp::toElem: 0 @ int * * * * * * * * * * * * * * IntegerExp::toConstElem: 0 @ int * * * * * * * * * * * * * * * value = i32 0 * * * * * * * * * * * * * type 1: %68 = load i32, i32* %precision * * * * * * * * * * * * * type 2: i32 0 * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(484) * * * * * * * * * * * * * AssignExp::toElem: spec.precision = precision | (int)(int = int) * * * * * * * * * * * * * * DotVarExp::toElem: spec.precision @ int * * * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(484) * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.precision: * * * * * * * * * * * * * * * * Value: %70 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 1 * * * * * * * * * * * * * * VarExp::toElem: precision @ int * * * * * * * * * * * * * * * DtoSymbolAddress ('precision' of type 'int') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * lhs: %70 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 1 * * * * * * * * * * * * * * * rhs: %71 = load i32, i32* %precision * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(486) * * * * * * * * * * * * * AssignExp::toElem: spec.precision = 2147483646 | (int)(int = int) * * * * * * * * * * * * * * DotVarExp::toElem: spec.precision @ int * * * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(486) * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.precision: * * * * * * * * * * * * * * * * Value: %72 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 1 * * * * * * * * * * * * * * IntegerExp::toElem: 2147483646 @ int * * * * * * * * * * * * * * * IntegerExp::toConstElem: 2147483646 @ int * * * * * * * * * * * * * * * * value = i32 2147483646 * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * lhs: %72 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 1 * * * * * * * * * * * * * * * rhs: i32 2147483646 * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(487) * * * * * * * * * * * * AddAssignExp::toElem: currentArg += 1u @ uint * * * * * * * * * * * * * Caching l-value of currentArg += 1u => currentArg * * * * * * * * * * * * * * VarExp::toElem: currentArg @ uint * * * * * * * * * * * * * * * DtoSymbolAddress ('currentArg' of type 'uint') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * AddExp::toElem: currentArg + 1u @ uint * * * * * * * * * * * * * * VarExp::toElem: currentArg @ uint * * * * * * * * * * * * * * IntegerExp::toElem: 1u @ uint * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1u @ uint * * * * * * * * * * * * * * * * value = i32 1 * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * lhs: %currentArg = alloca i32, align 4 * * * * * * * * * * * * * * rhs: %74 = add i32 %73, 1 * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(489) * * * * * * * * * * CmpExp::toElem: spec.precision < 0 @ bool * * * * * * * * * * * DotVarExp::toElem: spec.precision @ int * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(489) * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.precision: * * * * * * * * * * * * * Value: %70 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 1 * * * * * * * * * * * IntegerExp::toElem: 0 @ int * * * * * * * * * * * * IntegerExp::toConstElem: 0 @ int * * * * * * * * * * * * * value = i32 0 * * * * * * * * * * * type 1: %71 = load i32, i32* %70 * * * * * * * * * * * type 2: i32 0 * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(490) * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(490) * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(492) * * * * * * * * * * * * * DeclarationExp::toElem: uint index = cast(uint)-spec.precision; | T=void * * * * * * * * * * * * * * DtoDeclarationExp: index * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = uint) * * * * * * * * * * * * * * * * llvm value for decl: %index27 = alloca i32, align 4 * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * AssignExp::toElem: index = cast(uint)-spec.precision | (uint)(uint = uint) * * * * * * * * * * * * * * * * * VarExp::toElem: index @ uint * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('index' of type 'uint') * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * CastExp::toElem: cast(uint)-spec.precision @ uint * * * * * * * * * * * * * * * * * * NegExp::toElem: -spec.precision @ int * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: spec.precision @ int * * * * * * * * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(492) * * * * * * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.precision: * * * * * * * * * * * * * * * * * * * * * Value: %78 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 1 * * * * * * * * * * * * * * * * * * Casting from 'int' to 'uint' * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * lhs: %index27 = alloca i32, align 4 * * * * * * * * * * * * * * * * * * rhs: %negval28 = sub i32 0, %79 * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(493) * * * * * * * * * * * * * AssertExp::toElem: assert(index > 0u) * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(494) * * * * * * * * * * * * * DeclarationExp::toElem: int precision = to(getNthInt(index - 1u, _param_2)); | T=void * * * * * * * * * * * * * * DtoDeclarationExp: precision * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = int) * * * * * * * * * * * * * * * * llvm value for decl: %precision29 = alloca i32, align 4 * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * AssignExp::toElem: precision = to(getNthInt(index - 1u, _param_2)) | (int)(int = int) * * * * * * * * * * * * * * * * * VarExp::toElem: precision @ int * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('precision' of type 'int') * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * CallExp::toElem: to(getNthInt(index - 1u, _param_2)) @ int * * * * * * * * * * * * * * * * * * VarExp::toElem: to @ pure nothrow @nogc @safe int(int _param_0) * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('to' of type 'pure nothrow @nogc @safe int(int _param_0)') * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @safe int(int _param_0) * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * CallExp::toElem: getNthInt(index - 1u, _param_2) @ int * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: getNthInt @ pure @safe int(uint index, string _param_1) * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('getNthInt' of type 'pure @safe int(uint index, string _param_1)') * * * * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * * * * Function type: pure @safe int(uint index, string _param_1) * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * MinExp::toElem: index - 1u @ uint * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: index @ uint * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('index' of type 'uint') * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 1u @ uint * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1u @ uint * * * * * * * * * * * * * * * * * * * * * * * * * * value = i32 1 * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: _param_2 @ string * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('_param_2' of type 'string') * * * * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * * * * type: string * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * lhs: %precision29 = alloca i32, align 4 * * * * * * * * * * * * * * * * * * rhs: %84 = call i32 @_D3std4conv9__T2toTiZ9__T2toTiZ2toFNaNbNiNfiZi(i32 %83) * * * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(496) * * * * * * * * * * * * * CmpExp::toElem: currentArg < index @ bool * * * * * * * * * * * * * * VarExp::toElem: currentArg @ uint * * * * * * * * * * * * * * * DtoSymbolAddress ('currentArg' of type 'uint') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * VarExp::toElem: index @ uint * * * * * * * * * * * * * * * DtoSymbolAddress ('index' of type 'uint') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * type 1: %85 = load i32, i32* %currentArg * * * * * * * * * * * * * * type 2: %86 = load i32, i32* %index27 * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(496) * * * * * * * * * * * * * * AssignExp::toElem: currentArg = index | (uint)(uint = uint) * * * * * * * * * * * * * * * VarExp::toElem: currentArg @ uint * * * * * * * * * * * * * * * * DtoSymbolAddress ('currentArg' of type 'uint') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * VarExp::toElem: index @ uint * * * * * * * * * * * * * * * * DtoSymbolAddress ('index' of type 'uint') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * lhs: %currentArg = alloca i32, align 4 * * * * * * * * * * * * * * * * rhs: %88 = load i32, i32* %index27 * * * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(497) * * * * * * * * * * * * * CmpExp::toElem: precision >= 0 @ bool * * * * * * * * * * * * * * VarExp::toElem: precision @ int * * * * * * * * * * * * * * * DtoSymbolAddress ('precision' of type 'int') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * IntegerExp::toElem: 0 @ int * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0 @ int * * * * * * * * * * * * * * * * value = i32 0 * * * * * * * * * * * * * * type 1: %89 = load i32, i32* %precision29 * * * * * * * * * * * * * * type 2: i32 0 * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(497) * * * * * * * * * * * * * * AssignExp::toElem: spec.precision = precision | (int)(int = int) * * * * * * * * * * * * * * * DotVarExp::toElem: spec.precision @ int * * * * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(497) * * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.precision: * * * * * * * * * * * * * * * * * Value: %91 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 1 * * * * * * * * * * * * * * * VarExp::toElem: precision @ int * * * * * * * * * * * * * * * * DtoSymbolAddress ('precision' of type 'int') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * lhs: %91 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 1 * * * * * * * * * * * * * * * * rhs: %92 = load i32, i32* %precision29 * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(499) * * * * * * * * * * * * * * AssignExp::toElem: spec.precision = 2147483646 | (int)(int = int) * * * * * * * * * * * * * * * DotVarExp::toElem: spec.precision @ int * * * * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(499) * * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.precision: * * * * * * * * * * * * * * * * * Value: %93 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 1 * * * * * * * * * * * * * * * IntegerExp::toElem: 2147483646 @ int * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 2147483646 @ int * * * * * * * * * * * * * * * * * value = i32 2147483646 * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * lhs: %93 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 1 * * * * * * * * * * * * * * * * rhs: i32 2147483646 * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(502) * * * * * * * * * CmpExp::toElem: cast(int)spec.indexStart > 0 @ bool * * * * * * * * * * CastExp::toElem: cast(int)spec.indexStart @ int * * * * * * * * * * * DotVarExp::toElem: spec.indexStart @ ubyte * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(502) * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.indexStart: * * * * * * * * * * * * * Value: %73 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 3 * * * * * * * * * * * Casting from 'ubyte' to 'int' * * * * * * * * * * * * cast to: i32 * * * * * * * * * * IntegerExp::toElem: 0 @ int * * * * * * * * * * * IntegerExp::toConstElem: 0 @ int * * * * * * * * * * * * value = i32 0 * * * * * * * * * * type 1: %75 = zext i8 %74 to i32 * * * * * * * * * * type 2: i32 0 * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(503) * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(503) * * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(505) * * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(505) * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(505) * * * * * * * * * * * * * * DeclarationExp::toElem: int __key3251 = cast(int)spec.indexStart - 1; | T=void * * * * * * * * * * * * * * * DtoDeclarationExp: __key3251 * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = int) * * * * * * * * * * * * * * * * * llvm value for decl: %__key3251 = alloca i32, align 4 * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * AssignExp::toElem: __key3251 = cast(int)spec.indexStart - 1 | (int)(int = int) * * * * * * * * * * * * * * * * * * VarExp::toElem: __key3251 @ int * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__key3251' of type 'int') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * MinExp::toElem: cast(int)spec.indexStart - 1 @ int * * * * * * * * * * * * * * * * * * * CastExp::toElem: cast(int)spec.indexStart @ int * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: spec.indexStart @ ubyte * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(505) * * * * * * * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.indexStart: * * * * * * * * * * * * * * * * * * * * * * Value: %98 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 3 * * * * * * * * * * * * * * * * * * * * Casting from 'ubyte' to 'int' * * * * * * * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 1 @ int * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1 @ int * * * * * * * * * * * * * * * * * * * * * value = i32 1 * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * lhs: %__key3251 = alloca i32, align 4 * * * * * * * * * * * * * * * * * * * rhs: %101 = sub i32 %100, 1 * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(505) * * * * * * * * * * * * * * DeclarationExp::toElem: int __limit3252 = cast(int)spec.indexEnd; | T=void * * * * * * * * * * * * * * * DtoDeclarationExp: __limit3252 * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = int) * * * * * * * * * * * * * * * * * llvm value for decl: %__limit3252 = alloca i32, align 4 * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * AssignExp::toElem: __limit3252 = cast(int)spec.indexEnd | (int)(int = int) * * * * * * * * * * * * * * * * * * VarExp::toElem: __limit3252 @ int * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__limit3252' of type 'int') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * CastExp::toElem: cast(int)spec.indexEnd @ int * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: spec.indexEnd @ ubyte * * * * * * * * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(505) * * * * * * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.indexEnd: * * * * * * * * * * * * * * * * * * * * * Value: %102 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 4 * * * * * * * * * * * * * * * * * * * Casting from 'ubyte' to 'int' * * * * * * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * lhs: %__limit3252 = alloca i32, align 4 * * * * * * * * * * * * * * * * * * * rhs: %104 = zext i8 %103 to i32 * * * * * * * * * * * * * ForStatement::toIR(): /usr/include/dlang/ldc/std/format.d(505) * * * * * * * * * * * * * * CmpExp::toElem: __key3251 < __limit3252 @ bool * * * * * * * * * * * * * * * VarExp::toElem: __key3251 @ int * * * * * * * * * * * * * * * * DtoSymbolAddress ('__key3251' of type 'int') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * VarExp::toElem: __limit3252 @ int * * * * * * * * * * * * * * * * DtoSymbolAddress ('__limit3252' of type 'int') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * type 1: %105 = load i32, i32* %__key3251 * * * * * * * * * * * * * * * type 2: %106 = load i32, i32* %__limit3252 * * * * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(505) * * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(505) * * * * * * * * * * * * * * * * DeclarationExp::toElem: int i = __key3251; | T=void * * * * * * * * * * * * * * * * * DtoDeclarationExp: i * * * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = int) * * * * * * * * * * * * * * * * * * * llvm value for decl: %i = alloca i32, align 4 * * * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * * * AssignExp::toElem: i = __key3251 | (int)(int = int) * * * * * * * * * * * * * * * * * * * * VarExp::toElem: i @ int * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'int') * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * VarExp::toElem: __key3251 @ int * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__key3251' of type 'int') * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * * lhs: %i = alloca i32, align 4 * * * * * * * * * * * * * * * * * * * * * rhs: %108 = load i32, i32* %__key3251 * * * * * * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(507) * * * * * * * * * * * * * * * * CmpExp::toElem: 1LU <= cast(ulong)i @ bool * * * * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * * * * * CastExp::toElem: cast(ulong)i @ ulong * * * * * * * * * * * * * * * * * * VarExp::toElem: i @ int * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'int') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * Casting from 'int' to 'ulong' * * * * * * * * * * * * * * * * * * * cast to: i64 * * * * * * * * * * * * * * * * * type 1: i64 1 * * * * * * * * * * * * * * * * * type 2: %110 = sext i32 %109 to i64 * * * * * * * * * * * * * * * * BreakStatement::toIR(): /usr/include/dlang/ldc/std/format.d(507) * * * * * * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(508) * * * * * * * * * * * * * * * * VarExp::toElem: __ctfe @ bool * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__ctfe' of type 'bool') * * * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(509) * * * * * * * * * * * * * * * * * CallExp::toElem: formatNth(w, spec, cast(ulong)i, _param_2) @ void * * * * * * * * * * * * * * * * * * VarExp::toElem: formatNth @ @safe void(MsgRange w, ref FormatSpec!char f, ulong index, string _param_3) * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('formatNth' of type '@safe void(MsgRange w, ref FormatSpec!char f, ulong index, string _param_3)') * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * * DtoFunctionType(@safe void(MsgRange w, ref FormatSpec!char f, ulong index, string _param_3)) * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * * Final function type: void ({ i64, i8* }, i64, %"std.format.FormatSpec!char.FormatSpec"*, %std.experimental.logger.core.MsgRange*) * * * * * * * * * * * * * * * * * * * * DtoResolveFunction(std.format.formatNth!(MsgRange, char, string).formatNth): /usr/include/dlang/ldc/std/format.d(3460) * * * * * * * * * * * * * * * * * * * * * DtoDeclareFunction(std.format.formatNth!(MsgRange, char, string).formatNth): /usr/include/dlang/ldc/std/format.d(3460) * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(@safe void(MsgRange w, ref FormatSpec!char f, ulong index, string _param_3)) * * * * * * * * * * * * * * * * * * * * * * func = declare void @_D3std6format61__T9formatNthTS3std12experimental6logger4core8MsgRangeTaTAyaZ9formatNthFNfS3std12experimental6logger4core8MsgRangeKS3std6format18__T10FormatSpecTaZ10FormatSpecmAyaZv({ i64, i8* }, i64, %"std.format.FormatSpec!char.FormatSpec"*, %std.experimental.logger.core.MsgRange*) * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * Building type: @safe void(MsgRange w, ref FormatSpec!char f, ulong index, string _param_3) * * * * * * * * * * * * * * * * * * * * DtoFunctionType(@safe void(MsgRange w, ref FormatSpec!char f, ulong index, string _param_3)) * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * * Final function type: void ({ i64, i8* }, i64, %"std.format.FormatSpec!char.FormatSpec"*, %std.experimental.logger.core.MsgRange*) * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * Function type: @safe void(MsgRange w, ref FormatSpec!char f, ulong index, string _param_3) * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * VarExp::toElem: w @ MsgRange * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'MsgRange') * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * type: MsgRange * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(509) * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * CastExp::toElem: cast(ulong)i @ ulong * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: i @ int * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'int') * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * Casting from 'int' to 'ulong' * * * * * * * * * * * * * * * * * * * * * * cast to: i64 * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * VarExp::toElem: _param_2 @ string * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('_param_2' of type 'string') * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * type: string * * * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(511) * * * * * * * * * * * * * * * * * CallExp::toElem: (*funs[cast(ulong)i])(w, argsAddresses[cast(ulong)i], spec) @ void * * * * * * * * * * * * * * * * * * PtrExp::toElem: *funs[cast(ulong)i] @ pure nothrow @safe void(MsgRange, const(void)*, ref FormatSpec!char) * * * * * * * * * * * * * * * * * * * IndexExp::toElem: funs[cast(ulong)i] @ void function(MsgRange, const(void)*, ref FormatSpec!char) pure nothrow @safe * * * * * * * * * * * * * * * * * * * * VarExp::toElem: funs @ void function(MsgRange, const(void)*, ref FormatSpec!char) pure nothrow @safe[1] * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('funs' of type 'void function(MsgRange, const(void)*, ref FormatSpec!char) pure nothrow @safe[1]') * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * CastExp::toElem: cast(ulong)i @ ulong * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: i @ int * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'int') * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * Casting from 'int' to 'ulong' * * * * * * * * * * * * * * * * * * * * * * cast to: i64 * * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * Function type: pure nothrow @safe void(MsgRange, const(void)*, ref FormatSpec!char) * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * VarExp::toElem: w @ MsgRange * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'MsgRange') * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * type: MsgRange * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * IndexExp::toElem: argsAddresses[cast(ulong)i] @ const(void)* * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: argsAddresses @ const(void)*[1] * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('argsAddresses' of type 'const(void)*[1]') * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * CastExp::toElem: cast(ulong)i @ ulong * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: i @ int * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'int') * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * Casting from 'int' to 'ulong' * * * * * * * * * * * * * * * * * * * * * * * cast to: i64 * * * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(511) * * * * * * * * * * * * * * AddAssignExp::toElem: __key3251 += 1 @ int * * * * * * * * * * * * * * * Caching l-value of __key3251 += 1 => __key3251 * * * * * * * * * * * * * * * * VarExp::toElem: __key3251 @ int * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__key3251' of type 'int') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * AddExp::toElem: __key3251 + 1 @ int * * * * * * * * * * * * * * * * VarExp::toElem: __key3251 @ int * * * * * * * * * * * * * * * * IntegerExp::toElem: 1 @ int * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1 @ int * * * * * * * * * * * * * * * * * * value = i32 1 * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * lhs: %__key3251 = alloca i32, align 4 * * * * * * * * * * * * * * * * rhs: %113 = add i32 %112, 1 * * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(513) * * * * * * * * * * * * CmpExp::toElem: currentArg < cast(uint)cast(int)spec.indexEnd @ bool * * * * * * * * * * * * * VarExp::toElem: currentArg @ uint * * * * * * * * * * * * * * DtoSymbolAddress ('currentArg' of type 'uint') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * CastExp::toElem: cast(uint)cast(int)spec.indexEnd @ uint * * * * * * * * * * * * * * CastExp::toElem: cast(int)spec.indexEnd @ int * * * * * * * * * * * * * * * DotVarExp::toElem: spec.indexEnd @ ubyte * * * * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(513) * * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.indexEnd: * * * * * * * * * * * * * * * * * Value: %114 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 4 * * * * * * * * * * * * * * * Casting from 'ubyte' to 'int' * * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * * * Casting from 'int' to 'uint' * * * * * * * * * * * * * type 1: %117 = load i32, i32* %currentArg * * * * * * * * * * * * * type 2: %116 = zext i8 %115 to i32 * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(513) * * * * * * * * * * * * * AssignExp::toElem: currentArg = cast(uint)spec.indexEnd | (uint)(uint = uint) * * * * * * * * * * * * * * VarExp::toElem: currentArg @ uint * * * * * * * * * * * * * * * DtoSymbolAddress ('currentArg' of type 'uint') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * CastExp::toElem: cast(uint)spec.indexEnd @ uint * * * * * * * * * * * * * * * DotVarExp::toElem: spec.indexEnd @ ubyte * * * * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(513) * * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.indexEnd: * * * * * * * * * * * * * * * * * Value: %130 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 4 * * * * * * * * * * * * * * * Casting from 'ubyte' to 'uint' * * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * lhs: %currentArg = alloca i32, align 4 * * * * * * * * * * * * * * * rhs: %132 = zext i8 %131 to i32 * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(516) * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(516) * * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(517) * * * * * * * * * * * * VarExp::toElem: __ctfe @ bool * * * * * * * * * * * * * DtoSymbolAddress ('__ctfe' of type 'bool') * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(518) * * * * * * * * * * * * * CallExp::toElem: formatNth(w, spec, cast(ulong)currentArg, _param_2) @ void * * * * * * * * * * * * * * VarExp::toElem: formatNth @ @safe void(MsgRange w, ref FormatSpec!char f, ulong index, string _param_3) * * * * * * * * * * * * * * * DtoSymbolAddress ('formatNth' of type '@safe void(MsgRange w, ref FormatSpec!char f, ulong index, string _param_3)') * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * Function type: @safe void(MsgRange w, ref FormatSpec!char f, ulong index, string _param_3) * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * VarExp::toElem: w @ MsgRange * * * * * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'MsgRange') * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * type: MsgRange * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(518) * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * CastExp::toElem: cast(ulong)currentArg @ ulong * * * * * * * * * * * * * * * * * VarExp::toElem: currentArg @ uint * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('currentArg' of type 'uint') * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * Casting from 'uint' to 'ulong' * * * * * * * * * * * * * * * * * * cast to: i64 * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * VarExp::toElem: _param_2 @ string * * * * * * * * * * * * * * * * * DtoSymbolAddress ('_param_2' of type 'string') * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * type: string * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(520) * * * * * * * * * * * * * CallExp::toElem: (*funs[cast(ulong)currentArg])(w, argsAddresses[cast(ulong)currentArg], spec) @ void * * * * * * * * * * * * * * PtrExp::toElem: *funs[cast(ulong)currentArg] @ pure nothrow @safe void(MsgRange, const(void)*, ref FormatSpec!char) * * * * * * * * * * * * * * * IndexExp::toElem: funs[cast(ulong)currentArg] @ void function(MsgRange, const(void)*, ref FormatSpec!char) pure nothrow @safe * * * * * * * * * * * * * * * * VarExp::toElem: funs @ void function(MsgRange, const(void)*, ref FormatSpec!char) pure nothrow @safe[1] * * * * * * * * * * * * * * * * * DtoSymbolAddress ('funs' of type 'void function(MsgRange, const(void)*, ref FormatSpec!char) pure nothrow @safe[1]') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * CastExp::toElem: cast(ulong)currentArg @ ulong * * * * * * * * * * * * * * * * * VarExp::toElem: currentArg @ uint * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('currentArg' of type 'uint') * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * Casting from 'uint' to 'ulong' * * * * * * * * * * * * * * * * * * cast to: i64 * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * Function type: pure nothrow @safe void(MsgRange, const(void)*, ref FormatSpec!char) * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * VarExp::toElem: w @ MsgRange * * * * * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'MsgRange') * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * type: MsgRange * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * IndexExp::toElem: argsAddresses[cast(ulong)currentArg] @ const(void)* * * * * * * * * * * * * * * * * * VarExp::toElem: argsAddresses @ const(void)*[1] * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('argsAddresses' of type 'const(void)*[1]') * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * CastExp::toElem: cast(ulong)currentArg @ ulong * * * * * * * * * * * * * * * * * * VarExp::toElem: currentArg @ uint * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('currentArg' of type 'uint') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * Casting from 'uint' to 'ulong' * * * * * * * * * * * * * * * * * * * cast to: i64 * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(520) * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(521) * * * * * * * * * * * * AddAssignExp::toElem: currentArg += 1u @ uint * * * * * * * * * * * * * Caching l-value of currentArg += 1u => currentArg * * * * * * * * * * * * * * VarExp::toElem: currentArg @ uint * * * * * * * * * * * * * * * DtoSymbolAddress ('currentArg' of type 'uint') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * AddExp::toElem: currentArg + 1u @ uint * * * * * * * * * * * * * * VarExp::toElem: currentArg @ uint * * * * * * * * * * * * * * IntegerExp::toElem: 1u @ uint * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1u @ uint * * * * * * * * * * * * * * * * value = i32 1 * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * lhs: %currentArg = alloca i32, align 4 * * * * * * * * * * * * * * rhs: %139 = add i32 %138, 1 * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/format.d(524) * * * * * * VarExp::toElem: currentArg @ uint * * * * * * * DtoSymbolAddress ('currentArg' of type 'uint') * * * * * * * * a normal variable * * * * * * return value is '0x125fff18' * TemplateInstance::codegen: 'std.format.formatGeneric!(MsgRange, string, char)' * * DtoDefineFunction(std.format.formatGeneric!(MsgRange, string, char).formatGeneric): /usr/include/dlang/ldc/std/format.d(3455) * * * Doing function body for: formatGeneric * * * DtoCreateNestedContext for formatGeneric * * * * DtoCreateNestedContextType for std.format.formatGeneric!(MsgRange, string, char).formatGeneric * * * CompoundStatement::toIR(): * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3457) * * * * * CallExp::toElem: formatValue(w, *cast(string*)arg, f) @ void * * * * * * VarExp::toElem: formatValue @ @safe void(MsgRange w, string obj, ref FormatSpec!char f) * * * * * * * DtoSymbolAddress ('formatValue' of type '@safe void(MsgRange w, string obj, ref FormatSpec!char f)') * * * * * * * * FuncDeclaration * * * * * * DtoCallFunction() * * * * * * * doing normal arguments * * * * * * * Arguments so far: (0) * * * * * * * Function type: @safe void(MsgRange w, string obj, ref FormatSpec!char f) * * * * * * * DtoArgument * * * * * * * * VarExp::toElem: w @ MsgRange * * * * * * * * * DtoSymbolAddress ('w' of type 'MsgRange') * * * * * * * * * * function param * * * * * * * * * * type: MsgRange * * * * * * * DtoArgument * * * * * * * * PtrExp::toElem: *cast(string*)arg @ string * * * * * * * * * CastExp::toElem: cast(string*)arg @ string* * * * * * * * * * * VarExp::toElem: arg @ const(void)* * * * * * * * * * * * DtoSymbolAddress ('arg' of type 'const(void)*') * * * * * * * * * * * * function param * * * * * * * * * * * * type: const(void)* * * * * * * * * * * Casting from 'const(void)*' to 'string*' * * * * * * * * * * * src: %1 = load i8*, i8** %arg * * * * * * * * * * * to type: { i64, i8* }* * * * * * * * DtoArgument * * * * * * * * VarExp::toElem: f @ FormatSpec!char * * * * * * * * * DtoSymbolAddress ('f' of type 'FormatSpec!char') * * * * * * * * * * function param * * * * * * * * * * type: FormatSpec!char * TemplateInstance::codegen: 'std.format.formatValue!(MsgRange, string, char)' * * DtoDefineFunction(std.format.formatValue!(MsgRange, string, char).formatValue): /usr/include/dlang/ldc/std/format.d(1978) * * * Doing function body for: formatValue * * * DtoCreateNestedContext for formatValue * * * * DtoCreateNestedContextType for std.format.formatValue!(MsgRange, string, char).formatValue * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1980) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1981) * * * * * * DeclarationExp::toElem: string val = obj; | T=void * * * * * * * DtoDeclarationExp: val * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = string) * * * * * * * * * llvm value for decl: %val = alloca { i64, i8* }, align 8 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: val = obj | (string)(string = string) * * * * * * * * * * VarExp::toElem: val @ string * * * * * * * * * * * DtoSymbolAddress ('val' of type 'string') * * * * * * * * * * * * a normal variable * * * * * * * * * * VarExp::toElem: obj @ string * * * * * * * * * * * DtoSymbolAddress ('obj' of type 'string') * * * * * * * * * * * * function param * * * * * * * * * * * * type: string * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * DtoAssign() * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * SetArray * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1982) * * * * * * CallExp::toElem: formatRange(w, val, f) @ void * * * * * * * VarExp::toElem: formatRange @ @safe void(ref MsgRange w, ref string val, ref FormatSpec!char f) * * * * * * * * DtoSymbolAddress ('formatRange' of type '@safe void(ref MsgRange w, ref string val, ref FormatSpec!char f)') * * * * * * * * * FuncDeclaration * * * * * * * * * DtoFunctionType(@safe void(ref MsgRange w, ref string val, ref FormatSpec!char f)) * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: void (%"std.format.FormatSpec!char.FormatSpec"*, { i64, i8* }*, %std.experimental.logger.core.MsgRange*) * * * * * * * * * DtoResolveFunction(std.format.formatRange!(MsgRange, string, char).formatRange): /usr/include/dlang/ldc/std/format.d(2310) * * * * * * * * * * DtoDeclareFunction(std.format.formatRange!(MsgRange, string, char).formatRange): /usr/include/dlang/ldc/std/format.d(2310) * * * * * * * * * * * DtoFunctionType(@safe void(ref MsgRange w, ref string val, ref FormatSpec!char f)) * * * * * * * * * * * func = declare void @_D3std6format64__T11formatRangeTS3std12experimental6logger4core8MsgRangeTAyaTaZ11formatRangeFNfKS3std12experimental6logger4core8MsgRangeKAyaKS3std6format18__T10FormatSpecTaZ10FormatSpecZv(%"std.format.FormatSpec!char.FormatSpec"*, { i64, i8* }*, %std.experimental.logger.core.MsgRange*) * * * * * * * DtoCallFunction() * * * * * * * * Building type: @safe void(ref MsgRange w, ref string val, ref FormatSpec!char f) * * * * * * * * * DtoFunctionType(@safe void(ref MsgRange w, ref string val, ref FormatSpec!char f)) * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: void (%"std.format.FormatSpec!char.FormatSpec"*, { i64, i8* }*, %std.experimental.logger.core.MsgRange*) * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (0) * * * * * * * * Function type: @safe void(ref MsgRange w, ref string val, ref FormatSpec!char f) * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: w @ MsgRange * * * * * * * * * * DtoSymbolAddress ('w' of type 'MsgRange') * * * * * * * * * * * function param * * * * * * * * * * * type: MsgRange * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: val @ string * * * * * * * * * * DtoSymbolAddress ('val' of type 'string') * * * * * * * * * * * a normal variable * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: f @ FormatSpec!char * * * * * * * * * * DtoSymbolAddress ('f' of type 'FormatSpec!char') * * * * * * * * * * * function param * * * * * * * * * * * type: FormatSpec!char * TemplateInstance::codegen: 'std.format.formatRange!(MsgRange, string, char)' * * DtoDefineFunction(std.format.formatRange!(MsgRange, string, char).formatRange): /usr/include/dlang/ldc/std/format.d(2310) * * * Doing function body for: formatRange * * * DtoCreateNestedContext for formatRange * * * * DtoCreateNestedContextType for std.format.formatRange!(MsgRange, string, char).formatRange * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2312) * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2316) * * * * * * EqualExp::toElem: cast(int)f.spec == 115 @ bool * * * * * * * CastExp::toElem: cast(int)f.spec @ int * * * * * * * * DotVarExp::toElem: f.spec @ char * * * * * * * * * VarExp::toElem: f @ FormatSpec!char * * * * * * * * * * DtoSymbolAddress ('f' of type 'FormatSpec!char') * * * * * * * * * * * function param * * * * * * * * * * * type: FormatSpec!char * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.spec: * * * * * * * * * * Value: %1 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %f_arg, i32 0, i32 2 * * * * * * * * Casting from 'char' to 'int' * * * * * * * * * cast to: i32 * * * * * * * IntegerExp::toElem: 115 @ int * * * * * * * * IntegerExp::toConstElem: 115 @ int * * * * * * * * * value = i32 115 * * * * * * * integral or pointer or interface * * * * * * * lv: %3 = zext i8 %2 to i32 * * * * * * * rv: i32 115 * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2317) * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2317) * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2318) * * * * * * * * * DeclarationExp::toElem: alias E = dchar; | T=void * * * * * * * * * * DtoDeclarationExp: E * * * * * * * * * * * Ignoring Symbol: alias * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2324) * * * * * * * * * DeclarationExp::toElem: string s = val[0..cast(ulong)f.precision < __dollar ? cast(ulong)f.precision : __dollar]; | T=void * * * * * * * * * * DtoDeclarationExp: s * * * * * * * * * * * VarDeclaration * * * * * * * * * * * DtoVarDeclaration(vdtype = string) * * * * * * * * * * * * llvm value for decl: %s = alloca { i64, i8* }, align 8 * * * * * * * * * * * * expression initializer * * * * * * * * * * * * AssignExp::toElem: s = val[0..cast(ulong)f.precision < __dollar ? cast(ulong)f.precision : __dollar] | (string)(string = string) * * * * * * * * * * * * * VarExp::toElem: s @ string * * * * * * * * * * * * * * DtoSymbolAddress ('s' of type 'string') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * SliceExp::toElem: val[0..cast(ulong)f.precision < __dollar ? cast(ulong)f.precision : __dollar] @ string * * * * * * * * * * * * * * VarExp::toElem: val @ string * * * * * * * * * * * * * * * DtoSymbolAddress ('val' of type 'string') * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * type: string * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * * CondExp::toElem: cast(ulong)f.precision < __dollar ? cast(ulong)f.precision : __dollar @ ulong * * * * * * * * * * * * * * * CmpExp::toElem: cast(ulong)f.precision < __dollar @ bool * * * * * * * * * * * * * * * * CastExp::toElem: cast(ulong)f.precision @ ulong * * * * * * * * * * * * * * * * * DotVarExp::toElem: f.precision @ int * * * * * * * * * * * * * * * * * * VarExp::toElem: f @ FormatSpec!char * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('f' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * type: FormatSpec!char * * * * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.precision: * * * * * * * * * * * * * * * * * * * Value: %6 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %f_arg, i32 0, i32 1 * * * * * * * * * * * * * * * * * Casting from 'int' to 'ulong' * * * * * * * * * * * * * * * * * * cast to: i64 * * * * * * * * * * * * * * * * VarExp::toElem: __dollar @ ulong * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__dollar' of type 'ulong') * * * * * * * * * * * * * * * * * * Id::dollar * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * type 1: %8 = sext i32 %7 to i64 * * * * * * * * * * * * * * * * type 2: %.len = load i64, i64* %9 * * * * * * * * * * * * * * * CastExp::toElem: cast(ulong)f.precision @ ulong * * * * * * * * * * * * * * * * DotVarExp::toElem: f.precision @ int * * * * * * * * * * * * * * * * * VarExp::toElem: f @ FormatSpec!char * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('f' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * type: FormatSpec!char * * * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.precision: * * * * * * * * * * * * * * * * * * Value: %11 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %f_arg, i32 0, i32 1 * * * * * * * * * * * * * * * * Casting from 'int' to 'ulong' * * * * * * * * * * * * * * * * * cast to: i64 * * * * * * * * * * * * * * * VarExp::toElem: __dollar @ ulong * * * * * * * * * * * * * * * * DtoSymbolAddress ('__dollar' of type 'ulong') * * * * * * * * * * * * * * * * * Id::dollar * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * SetArray * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2325) * * * * * * * * * NotExp::toElem: !f.flDash() @ bool * * * * * * * * * * CallExp::toElem: f.flDash() @ bool * * * * * * * * * * * DotVarExp::toElem: f.flDash @ const pure nothrow @nogc @property @safe bool() * * * * * * * * * * * * VarExp::toElem: f @ FormatSpec!char * * * * * * * * * * * * * DtoSymbolAddress ('f' of type 'FormatSpec!char') * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * type: FormatSpec!char * * * * * * * * * * * * isMember = this is: FormatSpec!char * * * * * * * * * * * * DtoFunctionType(const pure nothrow @nogc @property @safe bool()) * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * Final function type: i1 (%"std.format.FormatSpec!char.FormatSpec"*) * * * * * * * * * * * * DtoResolveFunction(std.format.FormatSpec!char.FormatSpec.flDash): /usr/include/dlang/ldc/std/format.d-mixin-721(721) * * * * * * * * * * * * * DtoDeclareFunction(std.format.FormatSpec!char.FormatSpec.flDash): /usr/include/dlang/ldc/std/format.d-mixin-721(721) * * * * * * * * * * * * * * isMember = this is: FormatSpec!char * * * * * * * * * * * * * * DtoFunctionType(const pure nothrow @nogc @property @safe bool()) * * * * * * * * * * * * * * func = declare i1 @_D3std6format18__T10FormatSpecTaZ10FormatSpec6flDashMxFNaNbNdNiNfZb(%"std.format.FormatSpec!char.FormatSpec"*) * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * Building type: const pure nothrow @nogc @property @safe bool() * * * * * * * * * * * * * DtoFunctionType(const pure nothrow @nogc @property @safe bool()) * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * Final function type: i1 () * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * %"std.format.FormatSpec!char.FormatSpec"* %f_arg * * * * * * * * * * * * Function type: const pure nothrow @nogc @property @safe bool() * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2326) * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2326) * * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2328) * * * * * * * * * * * * CmpExp::toElem: cast(ulong)f.width > s.length @ bool * * * * * * * * * * * * * CastExp::toElem: cast(ulong)f.width @ ulong * * * * * * * * * * * * * * DotVarExp::toElem: f.width @ int * * * * * * * * * * * * * * * VarExp::toElem: f @ FormatSpec!char * * * * * * * * * * * * * * * * DtoSymbolAddress ('f' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * type: FormatSpec!char * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.width: * * * * * * * * * * * * * * * * Value: %23 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %f_arg, i32 0, i32 0 * * * * * * * * * * * * * * Casting from 'int' to 'ulong' * * * * * * * * * * * * * * * cast to: i64 * * * * * * * * * * * * * ArrayLengthExp::toElem: s.length @ ulong * * * * * * * * * * * * * * VarExp::toElem: s @ string * * * * * * * * * * * * * * * DtoSymbolAddress ('s' of type 'string') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * type 1: %25 = sext i32 %24 to i64 * * * * * * * * * * * * * type 2: %.len7 = load i64, i64* %26 * * * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2329) * * * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2329) * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2329) * * * * * * * * * * * * * * * DeclarationExp::toElem: ulong __key3201 = 0LU; | T=void * * * * * * * * * * * * * * * * DtoDeclarationExp: __key3201 * * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * * * * * * * * * * llvm value for decl: %__key3201 = alloca i64, align 8 * * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * * AssignExp::toElem: __key3201 = 0LU | (ulong)(ulong = ulong) * * * * * * * * * * * * * * * * * * * VarExp::toElem: __key3201 @ ulong * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__key3201' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * lhs: %__key3201 = alloca i64, align 8 * * * * * * * * * * * * * * * * * * * * rhs: i64 0 * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2329) * * * * * * * * * * * * * * * DeclarationExp::toElem: ulong __limit3202 = cast(ulong)f.width - s.length; | T=void * * * * * * * * * * * * * * * * DtoDeclarationExp: __limit3202 * * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * * * * * * * * * * llvm value for decl: %__limit3202 = alloca i64, align 8 * * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * * AssignExp::toElem: __limit3202 = cast(ulong)f.width - s.length | (ulong)(ulong = ulong) * * * * * * * * * * * * * * * * * * * VarExp::toElem: __limit3202 @ ulong * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__limit3202' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * MinExp::toElem: cast(ulong)f.width - s.length @ ulong * * * * * * * * * * * * * * * * * * * * CastExp::toElem: cast(ulong)f.width @ ulong * * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: f.width @ int * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: f @ FormatSpec!char * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('f' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * * * type: FormatSpec!char * * * * * * * * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.width: * * * * * * * * * * * * * * * * * * * * * * * Value: %28 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %f_arg, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * * * Casting from 'int' to 'ulong' * * * * * * * * * * * * * * * * * * * * * * cast to: i64 * * * * * * * * * * * * * * * * * * * * ArrayLengthExp::toElem: s.length @ ulong * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: s @ string * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('s' of type 'string') * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * lhs: %__limit3202 = alloca i64, align 8 * * * * * * * * * * * * * * * * * * * * rhs: %32 = sub i64 %30, %.len10 * * * * * * * * * * * * * * ForStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2329) * * * * * * * * * * * * * * * CmpExp::toElem: __key3201 < __limit3202 @ bool * * * * * * * * * * * * * * * * VarExp::toElem: __key3201 @ ulong * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__key3201' of type 'ulong') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * VarExp::toElem: __limit3202 @ ulong * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__limit3202' of type 'ulong') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * type 1: %33 = load i64, i64* %__key3201 * * * * * * * * * * * * * * * * type 2: %34 = load i64, i64* %__limit3202 * * * * * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2329) * * * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2329) * * * * * * * * * * * * * * * * * DeclarationExp::toElem: ulong i = __key3201; | T=void * * * * * * * * * * * * * * * * * * DtoDeclarationExp: i * * * * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * * * * * * * * * * * * llvm value for decl: %i = alloca i64, align 8 * * * * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * * * * AssignExp::toElem: i = __key3201 | (ulong)(ulong = ulong) * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: i @ ulong * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: __key3201 @ ulong * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__key3201' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * * * lhs: %i = alloca i64, align 8 * * * * * * * * * * * * * * * * * * * * * * rhs: %36 = load i64, i64* %__key3201 * * * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2329) * * * * * * * * * * * * * * * * * CallExp::toElem: put(w, ' ') @ void * * * * * * * * * * * * * * * * * * VarExp::toElem: put @ @safe void(ref MsgRange r, char e) * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('put' of type '@safe void(ref MsgRange r, char e)') * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * * DtoFunctionType(@safe void(ref MsgRange r, char e)) * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * * Final function type: void (i8, %std.experimental.logger.core.MsgRange*) * * * * * * * * * * * * * * * * * * * * DtoResolveFunction(std.range.primitives.put!(MsgRange, char).put): /usr/include/dlang/ldc/std/range/primitives.d(277) * * * * * * * * * * * * * * * * * * * * * DtoDeclareFunction(std.range.primitives.put!(MsgRange, char).put): /usr/include/dlang/ldc/std/range/primitives.d(277) * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(@safe void(ref MsgRange r, char e)) * * * * * * * * * * * * * * * * * * * * * * func = declare void @_D3std5range10primitives51__T3putTS3std12experimental6logger4core8MsgRangeTaZ3putFNfKS3std12experimental6logger4core8MsgRangeaZv(i8, %std.experimental.logger.core.MsgRange*) * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * Building type: @safe void(ref MsgRange r, char e) * * * * * * * * * * * * * * * * * * * * DtoFunctionType(@safe void(ref MsgRange r, char e)) * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * * Final function type: void (i8, %std.experimental.logger.core.MsgRange*) * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * Function type: @safe void(ref MsgRange r, char e) * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * VarExp::toElem: w @ MsgRange * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'MsgRange') * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * type: MsgRange * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: ' ' @ char * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: ' ' @ char * * * * * * * * * * * * * * * * * * * * * * value = i8 32 * * * * * * * * * * * * * * * AddAssignExp::toElem: __key3201 += 1LU @ ulong * * * * * * * * * * * * * * * * Caching l-value of __key3201 += 1LU => __key3201 * * * * * * * * * * * * * * * * * VarExp::toElem: __key3201 @ ulong * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__key3201' of type 'ulong') * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * AddExp::toElem: __key3201 + 1LU @ ulong * * * * * * * * * * * * * * * * * VarExp::toElem: __key3201 @ ulong * * * * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * lhs: %__key3201 = alloca i64, align 8 * * * * * * * * * * * * * * * * * rhs: %38 = add i64 %37, 1 * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2330) * * * * * * * * * * * * CallExp::toElem: put(w, s) @ void * * * * * * * * * * * * * VarExp::toElem: put @ @safe void(ref MsgRange r, string e) * * * * * * * * * * * * * * DtoSymbolAddress ('put' of type '@safe void(ref MsgRange r, string e)') * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * DtoFunctionType(@safe void(ref MsgRange r, string e)) * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * Final function type: void ({ i64, i8* }, %std.experimental.logger.core.MsgRange*) * * * * * * * * * * * * * * * DtoResolveFunction(std.range.primitives.put!(MsgRange, string).put): /usr/include/dlang/ldc/std/range/primitives.d(277) * * * * * * * * * * * * * * * * DtoDeclareFunction(std.range.primitives.put!(MsgRange, string).put): /usr/include/dlang/ldc/std/range/primitives.d(277) * * * * * * * * * * * * * * * * * DtoFunctionType(@safe void(ref MsgRange r, string e)) * * * * * * * * * * * * * * * * * func = declare void @_D3std5range10primitives53__T3putTS3std12experimental6logger4core8MsgRangeTAyaZ3putFNfKS3std12experimental6logger4core8MsgRangeAyaZv({ i64, i8* }, %std.experimental.logger.core.MsgRange*) * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * Building type: @safe void(ref MsgRange r, string e) * * * * * * * * * * * * * * * DtoFunctionType(@safe void(ref MsgRange r, string e)) * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * Final function type: void ({ i64, i8* }, %std.experimental.logger.core.MsgRange*) * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * Function type: @safe void(ref MsgRange r, string e) * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * VarExp::toElem: w @ MsgRange * * * * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'MsgRange') * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * type: MsgRange * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * VarExp::toElem: s @ string * * * * * * * * * * * * * * * * DtoSymbolAddress ('s' of type 'string') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2333) * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2333) * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2335) * * * * * * * * * * * * CallExp::toElem: put(w, s) @ void * * * * * * * * * * * * * VarExp::toElem: put @ @safe void(ref MsgRange r, string e) * * * * * * * * * * * * * * DtoSymbolAddress ('put' of type '@safe void(ref MsgRange r, string e)') * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * Function type: @safe void(ref MsgRange r, string e) * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * VarExp::toElem: w @ MsgRange * * * * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'MsgRange') * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * type: MsgRange * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * VarExp::toElem: s @ string * * * * * * * * * * * * * * * * DtoSymbolAddress ('s' of type 'string') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2336) * * * * * * * * * * * * CmpExp::toElem: cast(ulong)f.width > s.length @ bool * * * * * * * * * * * * * CastExp::toElem: cast(ulong)f.width @ ulong * * * * * * * * * * * * * * DotVarExp::toElem: f.width @ int * * * * * * * * * * * * * * * VarExp::toElem: f @ FormatSpec!char * * * * * * * * * * * * * * * * DtoSymbolAddress ('f' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * type: FormatSpec!char * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.width: * * * * * * * * * * * * * * * * Value: %29 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %f_arg, i32 0, i32 0 * * * * * * * * * * * * * * Casting from 'int' to 'ulong' * * * * * * * * * * * * * * * cast to: i64 * * * * * * * * * * * * * ArrayLengthExp::toElem: s.length @ ulong * * * * * * * * * * * * * * VarExp::toElem: s @ string * * * * * * * * * * * * * * * DtoSymbolAddress ('s' of type 'string') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * type 1: %31 = sext i32 %30 to i64 * * * * * * * * * * * * * type 2: %.len11 = load i64, i64* %32 * * * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2337) * * * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2337) * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2337) * * * * * * * * * * * * * * * DeclarationExp::toElem: ulong __key3203 = 0LU; | T=void * * * * * * * * * * * * * * * * DtoDeclarationExp: __key3203 * * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * * * * * * * * * * llvm value for decl: %__key3203 = alloca i64, align 8 * * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * * AssignExp::toElem: __key3203 = 0LU | (ulong)(ulong = ulong) * * * * * * * * * * * * * * * * * * * VarExp::toElem: __key3203 @ ulong * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__key3203' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * lhs: %__key3203 = alloca i64, align 8 * * * * * * * * * * * * * * * * * * * * rhs: i64 0 * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2337) * * * * * * * * * * * * * * * DeclarationExp::toElem: ulong __limit3204 = cast(ulong)f.width - s.length; | T=void * * * * * * * * * * * * * * * * DtoDeclarationExp: __limit3204 * * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * * * * * * * * * * llvm value for decl: %__limit3204 = alloca i64, align 8 * * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * * AssignExp::toElem: __limit3204 = cast(ulong)f.width - s.length | (ulong)(ulong = ulong) * * * * * * * * * * * * * * * * * * * VarExp::toElem: __limit3204 @ ulong * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__limit3204' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * MinExp::toElem: cast(ulong)f.width - s.length @ ulong * * * * * * * * * * * * * * * * * * * * CastExp::toElem: cast(ulong)f.width @ ulong * * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: f.width @ int * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: f @ FormatSpec!char * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('f' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * * * type: FormatSpec!char * * * * * * * * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.width: * * * * * * * * * * * * * * * * * * * * * * * Value: %46 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %f_arg, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * * * Casting from 'int' to 'ulong' * * * * * * * * * * * * * * * * * * * * * * cast to: i64 * * * * * * * * * * * * * * * * * * * * ArrayLengthExp::toElem: s.length @ ulong * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: s @ string * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('s' of type 'string') * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * lhs: %__limit3204 = alloca i64, align 8 * * * * * * * * * * * * * * * * * * * * rhs: %50 = sub i64 %48, %.len14 * * * * * * * * * * * * * * ForStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2337) * * * * * * * * * * * * * * * CmpExp::toElem: __key3203 < __limit3204 @ bool * * * * * * * * * * * * * * * * VarExp::toElem: __key3203 @ ulong * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__key3203' of type 'ulong') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * VarExp::toElem: __limit3204 @ ulong * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__limit3204' of type 'ulong') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * type 1: %51 = load i64, i64* %__key3203 * * * * * * * * * * * * * * * * type 2: %52 = load i64, i64* %__limit3204 * * * * * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2337) * * * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2337) * * * * * * * * * * * * * * * * * DeclarationExp::toElem: ulong i = __key3203; | T=void * * * * * * * * * * * * * * * * * * DtoDeclarationExp: i * * * * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * * * * * * * * * * * * llvm value for decl: %i19 = alloca i64, align 8 * * * * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * * * * AssignExp::toElem: i = __key3203 | (ulong)(ulong = ulong) * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: i @ ulong * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: __key3203 @ ulong * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__key3203' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * * * lhs: %i19 = alloca i64, align 8 * * * * * * * * * * * * * * * * * * * * * * rhs: %54 = load i64, i64* %__key3203 * * * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2337) * * * * * * * * * * * * * * * * * CallExp::toElem: put(w, ' ') @ void * * * * * * * * * * * * * * * * * * VarExp::toElem: put @ @safe void(ref MsgRange r, char e) * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('put' of type '@safe void(ref MsgRange r, char e)') * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * Function type: @safe void(ref MsgRange r, char e) * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * VarExp::toElem: w @ MsgRange * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'MsgRange') * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * type: MsgRange * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: ' ' @ char * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: ' ' @ char * * * * * * * * * * * * * * * * * * * * * * value = i8 32 * * * * * * * * * * * * * * * AddAssignExp::toElem: __key3203 += 1LU @ ulong * * * * * * * * * * * * * * * * Caching l-value of __key3203 += 1LU => __key3203 * * * * * * * * * * * * * * * * * VarExp::toElem: __key3203 @ ulong * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__key3203' of type 'ulong') * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * AddExp::toElem: __key3203 + 1LU @ ulong * * * * * * * * * * * * * * * * * VarExp::toElem: __key3203 @ ulong * * * * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * lhs: %__key3203 = alloca i64, align 8 * * * * * * * * * * * * * * * * * rhs: %56 = add i64 %55, 1 * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2421) * * * * * * * EqualExp::toElem: cast(int)f.spec == 114 @ bool * * * * * * * * CastExp::toElem: cast(int)f.spec @ int * * * * * * * * * DotVarExp::toElem: f.spec @ char * * * * * * * * * * VarExp::toElem: f @ FormatSpec!char * * * * * * * * * * * DtoSymbolAddress ('f' of type 'FormatSpec!char') * * * * * * * * * * * * function param * * * * * * * * * * * * type: FormatSpec!char * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.spec: * * * * * * * * * * * Value: %11 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %f_arg, i32 0, i32 2 * * * * * * * * * Casting from 'char' to 'int' * * * * * * * * * * cast to: i32 * * * * * * * * IntegerExp::toElem: 114 @ int * * * * * * * * * IntegerExp::toConstElem: 114 @ int * * * * * * * * * * value = i32 114 * * * * * * * * integral or pointer or interface * * * * * * * * lv: %13 = zext i8 %12 to i32 * * * * * * * * rv: i32 114 * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2422) * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2422) * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2425) * * * * * * * * * * DeclarationExp::toElem: alias ARR = string; | T=void * * * * * * * * * * * DtoDeclarationExp: ARR * * * * * * * * * * * * Ignoring Symbol: alias * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2426) * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2426) * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2426) * * * * * * * * * * * * DeclarationExp::toElem: string __aggr3205 = val[]; | T=void * * * * * * * * * * * * * DtoDeclarationExp: __aggr3205 * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = string) * * * * * * * * * * * * * * * llvm value for decl: %__aggr3205 = alloca { i64, i8* }, align 8 * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * AssignExp::toElem: __aggr3205 = val[] | (string)(string = string) * * * * * * * * * * * * * * * * VarExp::toElem: __aggr3205 @ string * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__aggr3205' of type 'string') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * SliceExp::toElem: val[] @ string * * * * * * * * * * * * * * * * * VarExp::toElem: val @ string * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('val' of type 'string') * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * type: string * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * SetArray * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2426) * * * * * * * * * * * * DeclarationExp::toElem: ulong __key3206 = 0LU; | T=void * * * * * * * * * * * * * DtoDeclarationExp: __key3206 * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * * * * * * * llvm value for decl: %__key3206 = alloca i64, align 8 * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * AssignExp::toElem: __key3206 = 0LU | (ulong)(ulong = ulong) * * * * * * * * * * * * * * * * VarExp::toElem: __key3206 @ ulong * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__key3206' of type 'ulong') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * lhs: %__key3206 = alloca i64, align 8 * * * * * * * * * * * * * * * * * rhs: i64 0 * * * * * * * * * * * ForStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2426) * * * * * * * * * * * * CmpExp::toElem: __key3206 < __aggr3205.length @ bool * * * * * * * * * * * * * VarExp::toElem: __key3206 @ ulong * * * * * * * * * * * * * * DtoSymbolAddress ('__key3206' of type 'ulong') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * ArrayLengthExp::toElem: __aggr3205.length @ ulong * * * * * * * * * * * * * * VarExp::toElem: __aggr3205 @ string * * * * * * * * * * * * * * * DtoSymbolAddress ('__aggr3205' of type 'string') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * type 1: %66 = load i64, i64* %__key3206 * * * * * * * * * * * * * type 2: %.len29 = load i64, i64* %65 * * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2426) * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2426) * * * * * * * * * * * * * * DeclarationExp::toElem: immutable immutable(char) e = __aggr3205[__key3206]; | T=void * * * * * * * * * * * * * * * DtoDeclarationExp: e * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = immutable(char)) * * * * * * * * * * * * * * * * * llvm value for decl: %e = alloca i8, align 1 * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * AssignExp::toElem: e = __aggr3205[__key3206] | (immutable(char))(immutable(char) = immutable(char)) * * * * * * * * * * * * * * * * * * VarExp::toElem: e @ immutable(char) * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('e' of type 'immutable(char)') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * IndexExp::toElem: __aggr3205[__key3206] @ immutable(char) * * * * * * * * * * * * * * * * * * * VarExp::toElem: __aggr3205 @ string * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__aggr3205' of type 'string') * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * VarExp::toElem: __key3206 @ ulong * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__key3206' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * lhs: %e = alloca i8, align 1 * * * * * * * * * * * * * * * * * * * rhs: %73 = load i8, i8* %72 * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2428) * * * * * * * * * * * * * * CallExp::toElem: formatValue(w, e, f) @ void * * * * * * * * * * * * * * * VarExp::toElem: formatValue @ @safe void(MsgRange w, immutable(char) obj, ref FormatSpec!char f) * * * * * * * * * * * * * * * * DtoSymbolAddress ('formatValue' of type '@safe void(MsgRange w, immutable(char) obj, ref FormatSpec!char f)') * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * DtoFunctionType(@safe void(MsgRange w, immutable(char) obj, ref FormatSpec!char f)) * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * Final function type: void (%"std.format.FormatSpec!char.FormatSpec"*, i8, %std.experimental.logger.core.MsgRange*) * * * * * * * * * * * * * * * * * DtoResolveFunction(std.format.formatValue!(MsgRange, immutable(char), char).formatValue): /usr/include/dlang/ldc/std/format.d(1905) * * * * * * * * * * * * * * * * * * DtoDeclareFunction(std.format.formatValue!(MsgRange, immutable(char), char).formatValue): /usr/include/dlang/ldc/std/format.d(1905) * * * * * * * * * * * * * * * * * * * DtoFunctionType(@safe void(MsgRange w, immutable(char) obj, ref FormatSpec!char f)) * * * * * * * * * * * * * * * * * * * func = declare void @_D3std6format63__T11formatValueTS3std12experimental6logger4core8MsgRangeTyaTaZ11formatValueFNfS3std12experimental6logger4core8MsgRangeyaKS3std6format18__T10FormatSpecTaZ10FormatSpecZv(%"std.format.FormatSpec!char.FormatSpec"*, i8, %std.experimental.logger.core.MsgRange*) * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * Building type: @safe void(MsgRange w, immutable(char) obj, ref FormatSpec!char f) * * * * * * * * * * * * * * * * * DtoFunctionType(@safe void(MsgRange w, immutable(char) obj, ref FormatSpec!char f)) * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * Final function type: void (%"std.format.FormatSpec!char.FormatSpec"*, i8, %std.experimental.logger.core.MsgRange*) * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * Function type: @safe void(MsgRange w, immutable(char) obj, ref FormatSpec!char f) * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * VarExp::toElem: w @ MsgRange * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'MsgRange') * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * type: MsgRange * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * VarExp::toElem: e @ immutable(char) * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('e' of type 'immutable(char)') * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * VarExp::toElem: f @ FormatSpec!char * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('f' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * type: FormatSpec!char * * * * * * * * * * * * AddAssignExp::toElem: __key3206 += 1LU @ ulong * * * * * * * * * * * * * Caching l-value of __key3206 += 1LU => __key3206 * * * * * * * * * * * * * * VarExp::toElem: __key3206 @ ulong * * * * * * * * * * * * * * * DtoSymbolAddress ('__key3206' of type 'ulong') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * AddExp::toElem: __key3206 + 1LU @ ulong * * * * * * * * * * * * * * VarExp::toElem: __key3206 @ ulong * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * lhs: %__key3206 = alloca i64, align 8 * * * * * * * * * * * * * * rhs: %71 = add i64 %70, 1 * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2439) * * * * * * * * EqualExp::toElem: cast(int)f.spec == 40 @ bool * * * * * * * * * CastExp::toElem: cast(int)f.spec @ int * * * * * * * * * * DotVarExp::toElem: f.spec @ char * * * * * * * * * * * VarExp::toElem: f @ FormatSpec!char * * * * * * * * * * * * DtoSymbolAddress ('f' of type 'FormatSpec!char') * * * * * * * * * * * * * function param * * * * * * * * * * * * * type: FormatSpec!char * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.spec: * * * * * * * * * * * * Value: %65 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %f_arg, i32 0, i32 2 * * * * * * * * * * Casting from 'char' to 'int' * * * * * * * * * * * cast to: i32 * * * * * * * * * IntegerExp::toElem: 40 @ int * * * * * * * * * * IntegerExp::toConstElem: 40 @ int * * * * * * * * * * * value = i32 40 * * * * * * * * * integral or pointer or interface * * * * * * * * * lv: %67 = zext i8 %66 to i32 * * * * * * * * * rv: i32 40 * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2440) * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2440) * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2441) * * * * * * * * * * * CallExp::toElem: empty(val) @ bool * * * * * * * * * * * * VarExp::toElem: empty @ pure nothrow @nogc @property @safe bool(const(char[]) a) * * * * * * * * * * * * * DtoSymbolAddress ('empty' of type 'pure nothrow @nogc @property @safe bool(const(char[]) a)') * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * Function type: pure nothrow @nogc @property @safe bool(const(char[]) a) * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * VarExp::toElem: val @ const(char[]) * * * * * * * * * * * * * * * DtoSymbolAddress ('val' of type 'string') * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * type: string * * * * * * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2442) * * * * * * * * * * ForStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2444) * * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2445) * * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2445) * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2446) * * * * * * * * * * * * * * DeclarationExp::toElem: FormatSpec!char fmt = fmt = FormatSpec , fmt.this(f.nested); | T=void * * * * * * * * * * * * * * * DtoDeclarationExp: fmt * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = FormatSpec!char) * * * * * * * * * * * * * * * * * llvm value for decl: %fmt = alloca %"std.format.FormatSpec!char.FormatSpec", align 8 * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * CommaExp::toElem: fmt = FormatSpec , fmt.this(f.nested) @ FormatSpec!char * * * * * * * * * * * * * * * * * * AssignExp::toElem: fmt = FormatSpec | (FormatSpec!char)(FormatSpec!char = FormatSpec!char) * * * * * * * * * * * * * * * * * * * VarExp::toElem: fmt @ FormatSpec!char * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('fmt' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * VarExp::toElem: FormatSpec @ FormatSpec!char * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('FormatSpec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * * * * Sym: type=FormatSpec!char * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * CallExp::toElem: fmt.this(f.nested) @ FormatSpec!char * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: fmt.this @ pure nothrow @nogc ref @safe FormatSpec!char(const(char[]) fmt) * * * * * * * * * * * * * * * * * * * * VarExp::toElem: fmt @ FormatSpec!char * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('fmt' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * * * * %fmt = alloca %"std.format.FormatSpec!char.FormatSpec", align 8 * * * * * * * * * * * * * * * * * * * * Function type: pure nothrow @nogc ref @safe FormatSpec!char(const(char[]) fmt) * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: f.nested @ const(char[]) * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: f @ FormatSpec!char * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('f' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * * * type: FormatSpec!char * * * * * * * * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.nested: * * * * * * * * * * * * * * * * * * * * * * * Value: %84 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %f_arg, i32 0, i32 7 * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2447) * * * * * * * * * * * * * * CallExp::toElem: fmt.writeUpToNextSpec(w) @ bool * * * * * * * * * * * * * * * DotVarExp::toElem: fmt.writeUpToNextSpec @ @safe bool(MsgRange writer) * * * * * * * * * * * * * * * * VarExp::toElem: fmt @ FormatSpec!char * * * * * * * * * * * * * * * * * DtoSymbolAddress ('fmt' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * %fmt = alloca %"std.format.FormatSpec!char.FormatSpec", align 8 * * * * * * * * * * * * * * * * Function type: @safe bool(MsgRange writer) * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * VarExp::toElem: w @ MsgRange * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'MsgRange') * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * type: MsgRange * * * * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2448) * * * * * * * * * * * * * * CallExp::toElem: f.flDash() @ bool * * * * * * * * * * * * * * * DotVarExp::toElem: f.flDash @ const pure nothrow @nogc @property @safe bool() * * * * * * * * * * * * * * * * VarExp::toElem: f @ FormatSpec!char * * * * * * * * * * * * * * * * * DtoSymbolAddress ('f' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * type: FormatSpec!char * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * %"std.format.FormatSpec!char.FormatSpec"* %f_arg * * * * * * * * * * * * * * * * Function type: const pure nothrow @nogc @property @safe bool() * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2449) * * * * * * * * * * * * * * * CallExp::toElem: formatValue(w, front(val), fmt) @ void * * * * * * * * * * * * * * * * VarExp::toElem: formatValue @ @safe void(MsgRange w, dchar obj, ref FormatSpec!char f) * * * * * * * * * * * * * * * * * DtoSymbolAddress ('formatValue' of type '@safe void(MsgRange w, dchar obj, ref FormatSpec!char f)') * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * DtoFunctionType(@safe void(MsgRange w, dchar obj, ref FormatSpec!char f)) * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * Final function type: void (%"std.format.FormatSpec!char.FormatSpec"*, i32, %std.experimental.logger.core.MsgRange*) * * * * * * * * * * * * * * * * * * DtoResolveFunction(std.format.formatValue!(MsgRange, dchar, char).formatValue): /usr/include/dlang/ldc/std/format.d(1905) * * * * * * * * * * * * * * * * * * * DtoDeclareFunction(std.format.formatValue!(MsgRange, dchar, char).formatValue): /usr/include/dlang/ldc/std/format.d(1905) * * * * * * * * * * * * * * * * * * * * DtoFunctionType(@safe void(MsgRange w, dchar obj, ref FormatSpec!char f)) * * * * * * * * * * * * * * * * * * * * func = declare void @_D3std6format62__T11formatValueTS3std12experimental6logger4core8MsgRangeTwTaZ11formatValueFNfS3std12experimental6logger4core8MsgRangewKS3std6format18__T10FormatSpecTaZ10FormatSpecZv(%"std.format.FormatSpec!char.FormatSpec"*, i32, %std.experimental.logger.core.MsgRange*) * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * Building type: @safe void(MsgRange w, dchar obj, ref FormatSpec!char f) * * * * * * * * * * * * * * * * * * DtoFunctionType(@safe void(MsgRange w, dchar obj, ref FormatSpec!char f)) * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * Final function type: void (%"std.format.FormatSpec!char.FormatSpec"*, i32, %std.experimental.logger.core.MsgRange*) * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * Function type: @safe void(MsgRange w, dchar obj, ref FormatSpec!char f) * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * VarExp::toElem: w @ MsgRange * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'MsgRange') * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * type: MsgRange * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * CallExp::toElem: front(val) @ dchar * * * * * * * * * * * * * * * * * * * VarExp::toElem: front @ pure @property @safe dchar(string a) * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('front' of type 'pure @property @safe dchar(string a)') * * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * * Function type: pure @property @safe dchar(string a) * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: val @ string * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('val' of type 'string') * * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * * type: string * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * VarExp::toElem: fmt @ FormatSpec!char * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('fmt' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2451) * * * * * * * * * * * * * * * CallExp::toElem: formatElement(w, front(val), fmt) @ void * * * * * * * * * * * * * * * * VarExp::toElem: formatElement @ @safe void(MsgRange w, dchar val, ref FormatSpec!char f) * * * * * * * * * * * * * * * * * DtoSymbolAddress ('formatElement' of type '@safe void(MsgRange w, dchar val, ref FormatSpec!char f)') * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * DtoFunctionType(@safe void(MsgRange w, dchar val, ref FormatSpec!char f)) * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * Final function type: void (%"std.format.FormatSpec!char.FormatSpec"*, i32, %std.experimental.logger.core.MsgRange*) * * * * * * * * * * * * * * * * * * DtoResolveFunction(std.format.formatElement!(MsgRange, dchar, char).formatElement): /usr/include/dlang/ldc/std/format.d(2596) * * * * * * * * * * * * * * * * * * * DtoDeclareFunction(std.format.formatElement!(MsgRange, dchar, char).formatElement): /usr/include/dlang/ldc/std/format.d(2596) * * * * * * * * * * * * * * * * * * * * DtoFunctionType(@safe void(MsgRange w, dchar val, ref FormatSpec!char f)) * * * * * * * * * * * * * * * * * * * * func = declare void @_D3std6format64__T13formatElementTS3std12experimental6logger4core8MsgRangeTwTaZ13formatElementFNfS3std12experimental6logger4core8MsgRangewKS3std6format18__T10FormatSpecTaZ10FormatSpecZv(%"std.format.FormatSpec!char.FormatSpec"*, i32, %std.experimental.logger.core.MsgRange*) * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * Building type: @safe void(MsgRange w, dchar val, ref FormatSpec!char f) * * * * * * * * * * * * * * * * * * DtoFunctionType(@safe void(MsgRange w, dchar val, ref FormatSpec!char f)) * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * Final function type: void (%"std.format.FormatSpec!char.FormatSpec"*, i32, %std.experimental.logger.core.MsgRange*) * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * Function type: @safe void(MsgRange w, dchar val, ref FormatSpec!char f) * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * VarExp::toElem: w @ MsgRange * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'MsgRange') * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * type: MsgRange * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * CallExp::toElem: front(val) @ dchar * * * * * * * * * * * * * * * * * * * VarExp::toElem: front @ pure @property @safe dchar(string a) * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('front' of type 'pure @property @safe dchar(string a)') * * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * * Function type: pure @property @safe dchar(string a) * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: val @ string * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('val' of type 'string') * * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * * type: string * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * VarExp::toElem: fmt @ FormatSpec!char * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('fmt' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2452) * * * * * * * * * * * * * * CastExp::toElem: cast(const(char)*)f.sep @ const(char)* * * * * * * * * * * * * * * * DotVarExp::toElem: f.sep @ const(char)[] * * * * * * * * * * * * * * * * VarExp::toElem: f @ FormatSpec!char * * * * * * * * * * * * * * * * * DtoSymbolAddress ('f' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * type: FormatSpec!char * * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.sep: * * * * * * * * * * * * * * * * * Value: %93 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %f_arg, i32 0, i32 8 * * * * * * * * * * * * * * * Casting from 'const(char)[]' to 'const(char)*' * * * * * * * * * * * * * * * * DtoCastArray * * * * * * * * * * * * * * * * * Building type: const(char)* * * * * * * * * * * * * * * * * * from array or sarray * * * * * * * * * * * * * * * * * to pointer * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * if conditional: %.ptr46 = load i8*, i8** %94 * * * * * * * * * * * * * * Casting from 'const(char)*' to 'bool' * * * * * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2453) * * * * * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2453) * * * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2454) * * * * * * * * * * * * * * * * * CallExp::toElem: put(w, fmt.trailing) @ void * * * * * * * * * * * * * * * * * * VarExp::toElem: put @ @safe void(ref MsgRange r, const(char)[] e) * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('put' of type '@safe void(ref MsgRange r, const(char)[] e)') * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * * DtoFunctionType(@safe void(ref MsgRange r, const(char)[] e)) * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * * Final function type: void ({ i64, i8* }, %std.experimental.logger.core.MsgRange*) * * * * * * * * * * * * * * * * * * * * DtoResolveFunction(std.range.primitives.put!(MsgRange, const(char)[]).put): /usr/include/dlang/ldc/std/range/primitives.d(277) * * * * * * * * * * * * * * * * * * * * * DtoDeclareFunction(std.range.primitives.put!(MsgRange, const(char)[]).put): /usr/include/dlang/ldc/std/range/primitives.d(277) * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(@safe void(ref MsgRange r, const(char)[] e)) * * * * * * * * * * * * * * * * * * * * * * func = declare void @_D3std5range10primitives53__T3putTS3std12experimental6logger4core8MsgRangeTAxaZ3putFNfKS3std12experimental6logger4core8MsgRangeAxaZv({ i64, i8* }, %std.experimental.logger.core.MsgRange*) * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * Building type: @safe void(ref MsgRange r, const(char)[] e) * * * * * * * * * * * * * * * * * * * * DtoFunctionType(@safe void(ref MsgRange r, const(char)[] e)) * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * * Final function type: void ({ i64, i8* }, %std.experimental.logger.core.MsgRange*) * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * Function type: @safe void(ref MsgRange r, const(char)[] e) * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * VarExp::toElem: w @ MsgRange * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'MsgRange') * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * type: MsgRange * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: fmt.trailing @ const(char)[] * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: fmt @ FormatSpec!char * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('fmt' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.trailing: * * * * * * * * * * * * * * * * * * * * * * Value: %96 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %fmt, i32 0, i32 9 * * * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2455) * * * * * * * * * * * * * * * * * CallExp::toElem: popFront(val) @ void * * * * * * * * * * * * * * * * * * VarExp::toElem: popFront @ pure nothrow @nogc @trusted void(ref string str) * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('popFront' of type 'pure nothrow @nogc @trusted void(ref string str)') * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @trusted void(ref string str) * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * VarExp::toElem: val @ string * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('val' of type 'string') * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * type: string * * * * * * * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2456) * * * * * * * * * * * * * * * * * CallExp::toElem: empty(val) @ bool * * * * * * * * * * * * * * * * * * VarExp::toElem: empty @ pure nothrow @nogc @property @safe bool(const(char[]) a) * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('empty' of type 'pure nothrow @nogc @property @safe bool(const(char[]) a)') * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @property @safe bool(const(char[]) a) * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * VarExp::toElem: val @ const(char[]) * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('val' of type 'string') * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * type: string * * * * * * * * * * * * * * * * * BreakStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2457) * * * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2458) * * * * * * * * * * * * * * * * * CallExp::toElem: put(w, f.sep) @ void * * * * * * * * * * * * * * * * * * VarExp::toElem: put @ @safe void(ref MsgRange r, const(char)[] e) * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('put' of type '@safe void(ref MsgRange r, const(char)[] e)') * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * Function type: @safe void(ref MsgRange r, const(char)[] e) * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * VarExp::toElem: w @ MsgRange * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'MsgRange') * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * type: MsgRange * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: f.sep @ const(char)[] * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: f @ FormatSpec!char * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('f' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * * type: FormatSpec!char * * * * * * * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.sep: * * * * * * * * * * * * * * * * * * * * * * Value: %100 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %f_arg, i32 0, i32 8 * * * * * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2461) * * * * * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2461) * * * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2462) * * * * * * * * * * * * * * * * * CallExp::toElem: popFront(val) @ void * * * * * * * * * * * * * * * * * * VarExp::toElem: popFront @ pure nothrow @nogc @trusted void(ref string str) * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('popFront' of type 'pure nothrow @nogc @trusted void(ref string str)') * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @trusted void(ref string str) * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * VarExp::toElem: val @ string * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('val' of type 'string') * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * type: string * * * * * * * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2463) * * * * * * * * * * * * * * * * * CallExp::toElem: empty(val) @ bool * * * * * * * * * * * * * * * * * * VarExp::toElem: empty @ pure nothrow @nogc @property @safe bool(const(char[]) a) * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('empty' of type 'pure nothrow @nogc @property @safe bool(const(char[]) a)') * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @property @safe bool(const(char[]) a) * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * VarExp::toElem: val @ const(char[]) * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('val' of type 'string') * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * type: string * * * * * * * * * * * * * * * * * BreakStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2464) * * * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2465) * * * * * * * * * * * * * * * * * CallExp::toElem: put(w, fmt.trailing) @ void * * * * * * * * * * * * * * * * * * VarExp::toElem: put @ @safe void(ref MsgRange r, const(char)[] e) * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('put' of type '@safe void(ref MsgRange r, const(char)[] e)') * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * Function type: @safe void(ref MsgRange r, const(char)[] e) * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * VarExp::toElem: w @ MsgRange * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'MsgRange') * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * type: MsgRange * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: fmt.trailing @ const(char)[] * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: fmt @ FormatSpec!char * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('fmt' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.trailing: * * * * * * * * * * * * * * * * * * * * * * Value: %104 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %fmt, i32 0, i32 9 * * * * * * * * ThrowStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2470) * * * * * * * * * NewExp::toElem: new Exception(text("Incorrect format specifier for range: %", f.spec), "/usr/include/dlang/ldc/std/format.d", 2470LU, null) @ object.Exception * * * * * * * * * * new class * * * * * * * * * * Calling constructor * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * doing normal arguments * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * %.newclass_gc = bitcast %object.Object* %.newclass_gc_alloc to %object.Exception* * * * * * * * * * * * Function type: pure nothrow @safe Exception(string msg, string file = __FILE__, ulong line = cast(ulong)__LINE__, Throwable next = null) * * * * * * * * * * * DtoArgument * * * * * * * * * * * * CallExp::toElem: text("Incorrect format specifier for range: %", f.spec) @ string * * * * * * * * * * * * * VarExp::toElem: text @ pure @safe string(string _param_0, char _param_1) * * * * * * * * * * * * * * DtoSymbolAddress ('text' of type 'pure @safe string(string _param_0, char _param_1)') * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * Function type: pure @safe string(string _param_0, char _param_1) * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * StringExp::toElem: "Incorrect format specifier for range: %" @ string * * * * * * * * * * * * * * * * type: [40 x i8] * * * * * * * * * * * * * * * * init: [40 x i8] c"Incorrect format specifier for range: %\00" * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * DotVarExp::toElem: f.spec @ char * * * * * * * * * * * * * * * * VarExp::toElem: f @ FormatSpec!char * * * * * * * * * * * * * * * * * DtoSymbolAddress ('f' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * type: FormatSpec!char * * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.spec: * * * * * * * * * * * * * * * * * Value: %87 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %f_arg, i32 0, i32 2 * * * * * * * * * * * DtoArgument * * * * * * * * * * * * StringExp::toElem: "/usr/include/dlang/ldc/std/format.d" @ string * * * * * * * * * * * DtoArgument * * * * * * * * * * * * IntegerExp::toElem: 2470LU @ ulong * * * * * * * * * * * * * IntegerExp::toConstElem: 2470LU @ ulong * * * * * * * * * * * * * * value = i64 2470 * * * * * * * * * * * DtoArgument * * * * * * * * * * * * NullExp::toElem(type=object.Throwable): null * * * * * * * * * * * * * NullExp::toConstElem(type=object.Throwable): null * * * * * * * * * * * Rewrite: putParam * TemplateInstance::codegen: 'std.range.primitives.put!(MsgRange, char)' * * DtoDefineFunction(std.range.primitives.put!(MsgRange, char).put): /usr/include/dlang/ldc/std/range/primitives.d(277) * * * Doing function body for: put * * * DtoCreateNestedContext for put * * * * DtoCreateNestedContextType for std.range.primitives.put!(MsgRange, char).put * * * CompoundStatement::toIR(): * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/range/primitives.d(282) * * * * * CallExp::toElem: doPut(r, e) @ void * * * * * * VarExp::toElem: doPut @ @safe void(ref MsgRange r, auto ref char e) * * * * * * * DtoSymbolAddress ('doPut' of type '@safe void(ref MsgRange r, auto ref char e)') * * * * * * * * FuncDeclaration * * * * * * * * DtoFunctionType(@safe void(ref MsgRange r, auto ref char e)) * * * * * * * * * Building type: char* * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * Final function type: void (i8*, %std.experimental.logger.core.MsgRange*) * * * * * * * * DtoResolveFunction(std.range.primitives.doPut!(MsgRange, char).doPut): /usr/include/dlang/ldc/std/range/primitives.d(182) * * * * * * * * * DtoDeclareFunction(std.range.primitives.doPut!(MsgRange, char).doPut): /usr/include/dlang/ldc/std/range/primitives.d(182) * * * * * * * * * * DtoFunctionType(@safe void(ref MsgRange r, auto ref char e)) * * * * * * * * * * func = declare void @_D3std5range10primitives53__T5doPutTS3std12experimental6logger4core8MsgRangeTaZ5doPutFNfKS3std12experimental6logger4core8MsgRangeKaZv(i8*, %std.experimental.logger.core.MsgRange*) * * * * * * DtoCallFunction() * * * * * * * Building type: @safe void(ref MsgRange r, auto ref char e) * * * * * * * * DtoFunctionType(@safe void(ref MsgRange r, auto ref char e)) * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * Final function type: void (i8*, %std.experimental.logger.core.MsgRange*) * * * * * * * doing normal arguments * * * * * * * Arguments so far: (0) * * * * * * * Function type: @safe void(ref MsgRange r, auto ref char e) * * * * * * * DtoArgument * * * * * * * * VarExp::toElem: r @ MsgRange * * * * * * * * * DtoSymbolAddress ('r' of type 'MsgRange') * * * * * * * * * * function param * * * * * * * * * * type: MsgRange * * * * * * * DtoArgument * * * * * * * * VarExp::toElem: e @ char * * * * * * * * * DtoSymbolAddress ('e' of type 'char') * * * * * * * * * * function param * * * * * * * * * * type: char * TemplateInstance::codegen: 'std.range.primitives.doPut!(MsgRange, char)' * * DtoDefineFunction(std.range.primitives.doPut!(MsgRange, char).doPut): /usr/include/dlang/ldc/std/range/primitives.d(182) * * * Doing function body for: doPut * * * DtoCreateNestedContext for doPut * * * * DtoCreateNestedContextType for std.range.primitives.doPut!(MsgRange, char).doPut * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/range/primitives.d(183) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/range/primitives.d(187) * * * * * * DeclarationExp::toElem: enum bool usingPut = true; | T=void * * * * * * * DtoDeclarationExp: usingPut * * * * * * * * VarDeclaration * * * * * * * * Manifest constant, nothing to do. * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/range/primitives.d(193) * * * * * * CallExp::toElem: r.put(cast(dchar)e) @ void * * * * * * * DotVarExp::toElem: r.put @ @safe void(dchar elem) * * * * * * * * VarExp::toElem: r @ MsgRange * * * * * * * * * DtoSymbolAddress ('r' of type 'MsgRange') * * * * * * * * * * function param * * * * * * * * * * type: MsgRange * * * * * * * * isMember = this is: MsgRange * * * * * * * * DtoFunctionType(@safe void(dchar elem)) * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * Final function type: void (%std.experimental.logger.core.MsgRange*, i32) * * * * * * * * DtoResolveFunction(std.experimental.logger.core.MsgRange.put): /usr/include/dlang/ldc/std/experimental/logger/core.d(671) * * * * * * * * * DtoDeclareFunction(std.experimental.logger.core.MsgRange.put): /usr/include/dlang/ldc/std/experimental/logger/core.d(671) * * * * * * * * * * isMember = this is: MsgRange * * * * * * * * * * DtoFunctionType(@safe void(dchar elem)) * * * * * * * * * * func = declare void @_D3std12experimental6logger4core8MsgRange3putMFNfwZv(%std.experimental.logger.core.MsgRange*, i32) * * * * * * * DtoCallFunction() * * * * * * * * Building type: @safe void(dchar elem) * * * * * * * * * DtoFunctionType(@safe void(dchar elem)) * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: void (i32) * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (1) * * * * * * * * * %std.experimental.logger.core.MsgRange* %r_arg * * * * * * * * Function type: @safe void(dchar elem) * * * * * * * * DtoArgument * * * * * * * * * CastExp::toElem: cast(dchar)e @ dchar * * * * * * * * * * VarExp::toElem: e @ char * * * * * * * * * * * DtoSymbolAddress ('e' of type 'char') * * * * * * * * * * * * function param * * * * * * * * * * * * type: char * * * * * * * * * * Casting from 'char' to 'dchar' * * * * * * * * * * * cast to: i32 * TemplateInstance::codegen: 'std.traits.hasMember!(MsgRange, "put")' * * VarDeclaration::codegen(): 'std.traits.hasMember!(MsgRange, "put").hasMember' * * * DtoResolveVariable(std.traits.hasMember!(MsgRange, "put").hasMember) * TemplateInstance::codegen: 'std.typetuple.staticIndexOf!("put", "log", "buffer", "__ctor", "put")' * * VarDeclaration::codegen(): 'std.typetuple.staticIndexOf!("put", "log", "buffer", "__ctor", "put").staticIndexOf' * * * DtoResolveVariable(std.typetuple.staticIndexOf!("put", "log", "buffer", "__ctor", "put").staticIndexOf) * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("put", "log", "buffer", "__ctor", "put")' * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!("put", "log", "buffer", "__ctor", "put").e * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!("put", "log", "buffer", "__ctor", "put").tuple * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!("put", "log", "buffer", "__ctor", "put").head * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!("put", "log", "buffer", "__ctor", "put").tail * * VarDeclaration::codegen(): 'std.typetuple.genericIndexOf!("put", "log", "buffer", "__ctor", "put").next' * * * DtoResolveVariable(std.typetuple.genericIndexOf!("put", "log", "buffer", "__ctor", "put").next) * * VarDeclaration::codegen(): 'std.typetuple.genericIndexOf!("put", "log", "buffer", "__ctor", "put").index' * * * DtoResolveVariable(std.typetuple.genericIndexOf!("put", "log", "buffer", "__ctor", "put").index) * TemplateInstance::codegen: 'std.typetuple.Alias!"log"' * * Ignoring Dsymbol::codegen for std.typetuple.Alias!"log".Alias * TemplateInstance::codegen: 'std.typetuple.isSame!("put", "log")' * * VarDeclaration::codegen(): 'std.typetuple.isSame!("put", "log").isSame' * * * DtoResolveVariable(std.typetuple.isSame!("put", "log").isSame) * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("put", "buffer", "__ctor", "put")' * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!("put", "buffer", "__ctor", "put").e * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!("put", "buffer", "__ctor", "put").tuple * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!("put", "buffer", "__ctor", "put").head * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!("put", "buffer", "__ctor", "put").tail * * VarDeclaration::codegen(): 'std.typetuple.genericIndexOf!("put", "buffer", "__ctor", "put").next' * * * DtoResolveVariable(std.typetuple.genericIndexOf!("put", "buffer", "__ctor", "put").next) * * VarDeclaration::codegen(): 'std.typetuple.genericIndexOf!("put", "buffer", "__ctor", "put").index' * * * DtoResolveVariable(std.typetuple.genericIndexOf!("put", "buffer", "__ctor", "put").index) * TemplateInstance::codegen: 'std.typetuple.Alias!"buffer"' * * Ignoring Dsymbol::codegen for std.typetuple.Alias!"buffer".Alias * TemplateInstance::codegen: 'std.typetuple.isSame!("put", "buffer")' * * VarDeclaration::codegen(): 'std.typetuple.isSame!("put", "buffer").isSame' * * * DtoResolveVariable(std.typetuple.isSame!("put", "buffer").isSame) * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("put", "__ctor", "put")' * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!("put", "__ctor", "put").e * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!("put", "__ctor", "put").tuple * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!("put", "__ctor", "put").head * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!("put", "__ctor", "put").tail * * VarDeclaration::codegen(): 'std.typetuple.genericIndexOf!("put", "__ctor", "put").next' * * * DtoResolveVariable(std.typetuple.genericIndexOf!("put", "__ctor", "put").next) * * VarDeclaration::codegen(): 'std.typetuple.genericIndexOf!("put", "__ctor", "put").index' * * * DtoResolveVariable(std.typetuple.genericIndexOf!("put", "__ctor", "put").index) * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("put", "put")' * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!("put", "put").e * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!("put", "put").tuple * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!("put", "put").head * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!("put", "put").tail * * VarDeclaration::codegen(): 'std.typetuple.genericIndexOf!("put", "put").index' * * * DtoResolveVariable(std.typetuple.genericIndexOf!("put", "put").index) * TemplateInstance::codegen: 'std.traits.Identity!(put)' * TemplateInstance::codegen: 'std.range.primitives.put!(MsgRange, string)' * * DtoDefineFunction(std.range.primitives.put!(MsgRange, string).put): /usr/include/dlang/ldc/std/range/primitives.d(277) * * * Doing function body for: put * * * DtoCreateNestedContext for put * * * * DtoCreateNestedContextType for std.range.primitives.put!(MsgRange, string).put * * * CompoundStatement::toIR(): * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/range/primitives.d(282) * * * * * CallExp::toElem: doPut(r, e) @ void * * * * * * VarExp::toElem: doPut @ @safe void(ref MsgRange r, auto ref string e) * * * * * * * DtoSymbolAddress ('doPut' of type '@safe void(ref MsgRange r, auto ref string e)') * * * * * * * * FuncDeclaration * * * * * * * * DtoFunctionType(@safe void(ref MsgRange r, auto ref string e)) * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * Final function type: void ({ i64, i8* }*, %std.experimental.logger.core.MsgRange*) * * * * * * * * DtoResolveFunction(std.range.primitives.doPut!(MsgRange, string).doPut): /usr/include/dlang/ldc/std/range/primitives.d(182) * * * * * * * * * DtoDeclareFunction(std.range.primitives.doPut!(MsgRange, string).doPut): /usr/include/dlang/ldc/std/range/primitives.d(182) * * * * * * * * * * DtoFunctionType(@safe void(ref MsgRange r, auto ref string e)) * * * * * * * * * * func = declare void @_D3std5range10primitives55__T5doPutTS3std12experimental6logger4core8MsgRangeTAyaZ5doPutFNfKS3std12experimental6logger4core8MsgRangeKAyaZv({ i64, i8* }*, %std.experimental.logger.core.MsgRange*) * * * * * * DtoCallFunction() * * * * * * * Building type: @safe void(ref MsgRange r, auto ref string e) * * * * * * * * DtoFunctionType(@safe void(ref MsgRange r, auto ref string e)) * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * Final function type: void ({ i64, i8* }*, %std.experimental.logger.core.MsgRange*) * * * * * * * doing normal arguments * * * * * * * Arguments so far: (0) * * * * * * * Function type: @safe void(ref MsgRange r, auto ref string e) * * * * * * * DtoArgument * * * * * * * * VarExp::toElem: r @ MsgRange * * * * * * * * * DtoSymbolAddress ('r' of type 'MsgRange') * * * * * * * * * * function param * * * * * * * * * * type: MsgRange * * * * * * * DtoArgument * * * * * * * * VarExp::toElem: e @ string * * * * * * * * * DtoSymbolAddress ('e' of type 'string') * * * * * * * * * * function param * * * * * * * * * * type: string * TemplateInstance::codegen: 'std.range.primitives.doPut!(MsgRange, string)' * * DtoDefineFunction(std.range.primitives.doPut!(MsgRange, string).doPut): /usr/include/dlang/ldc/std/range/primitives.d(182) * * * Doing function body for: doPut * * * DtoCreateNestedContext for doPut * * * * DtoCreateNestedContextType for std.range.primitives.doPut!(MsgRange, string).doPut * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/range/primitives.d(183) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/range/primitives.d(187) * * * * * * DeclarationExp::toElem: enum bool usingPut = true; | T=void * * * * * * * DtoDeclarationExp: usingPut * * * * * * * * VarDeclaration * * * * * * * * Manifest constant, nothing to do. * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/range/primitives.d(193) * * * * * * CallExp::toElem: r.put(e) @ void * * * * * * * DotVarExp::toElem: r.put @ @safe void(string msg) * * * * * * * * VarExp::toElem: r @ MsgRange * * * * * * * * * DtoSymbolAddress ('r' of type 'MsgRange') * * * * * * * * * * function param * * * * * * * * * * type: MsgRange * * * * * * * * isMember = this is: MsgRange * * * * * * * * DtoFunctionType(@safe void(string msg)) * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * Final function type: void (%std.experimental.logger.core.MsgRange*, { i64, i8* }) * * * * * * * * DtoResolveFunction(std.experimental.logger.core.MsgRange.put!string.put): /usr/include/dlang/ldc/std/experimental/logger/core.d(665) * * * * * * * * * DtoDeclareFunction(std.experimental.logger.core.MsgRange.put!string.put): /usr/include/dlang/ldc/std/experimental/logger/core.d(665) * * * * * * * * * * isMember = this is: MsgRange * * * * * * * * * * DtoFunctionType(@safe void(string msg)) * * * * * * * * * * func = declare void @_D3std12experimental6logger4core8MsgRange12__T3putTAyaZ3putMFNfAyaZv(%std.experimental.logger.core.MsgRange*, { i64, i8* }) * * * * * * * DtoCallFunction() * * * * * * * * Building type: @safe void(string msg) * * * * * * * * * DtoFunctionType(@safe void(string msg)) * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: void ({ i64, i8* }) * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (1) * * * * * * * * * %std.experimental.logger.core.MsgRange* %r_arg * * * * * * * * Function type: @safe void(string msg) * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: e @ string * * * * * * * * * * DtoSymbolAddress ('e' of type 'string') * * * * * * * * * * * function param * * * * * * * * * * * type: string * TemplateInstance::codegen: 'std.format.formatValue!(MsgRange, immutable(char), char)' * * DtoDefineFunction(std.format.formatValue!(MsgRange, immutable(char), char).formatValue): /usr/include/dlang/ldc/std/format.d(1905) * * * Doing function body for: formatValue * * * DtoCreateNestedContext for formatValue * * * * DtoCreateNestedContextType for std.format.formatValue!(MsgRange, immutable(char), char).formatValue * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1907) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1908) * * * * * * DeclarationExp::toElem: immutable immutable(char) val = obj; | T=void * * * * * * * DtoDeclarationExp: val * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = immutable(char)) * * * * * * * * * llvm value for decl: %val = alloca i8, align 1 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: val = obj | (immutable(char))(immutable(char) = immutable(char)) * * * * * * * * * * VarExp::toElem: val @ immutable(char) * * * * * * * * * * * DtoSymbolAddress ('val' of type 'immutable(char)') * * * * * * * * * * * * a normal variable * * * * * * * * * * VarExp::toElem: obj @ immutable(char) * * * * * * * * * * * DtoSymbolAddress ('obj' of type 'immutable(char)') * * * * * * * * * * * * function param * * * * * * * * * * * * type: immutable(char) * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %val = alloca i8, align 1 * * * * * * * * * * * rhs: %1 = load i8, i8* %obj * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1910) * * * * * * OrOrExp::toElem: cast(int)f.spec == 115 || cast(int)f.spec == 99 @ bool * * * * * * * EqualExp::toElem: cast(int)f.spec == 115 @ bool * * * * * * * * CastExp::toElem: cast(int)f.spec @ int * * * * * * * * * DotVarExp::toElem: f.spec @ char * * * * * * * * * * VarExp::toElem: f @ FormatSpec!char * * * * * * * * * * * DtoSymbolAddress ('f' of type 'FormatSpec!char') * * * * * * * * * * * * function param * * * * * * * * * * * * type: FormatSpec!char * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.spec: * * * * * * * * * * * Value: %2 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %f_arg, i32 0, i32 2 * * * * * * * * * Casting from 'char' to 'int' * * * * * * * * * * cast to: i32 * * * * * * * * IntegerExp::toElem: 115 @ int * * * * * * * * * IntegerExp::toConstElem: 115 @ int * * * * * * * * * * value = i32 115 * * * * * * * * integral or pointer or interface * * * * * * * * lv: %4 = zext i8 %3 to i32 * * * * * * * * rv: i32 115 * * * * * * * EqualExp::toElem: cast(int)f.spec == 99 @ bool * * * * * * * * CastExp::toElem: cast(int)f.spec @ int * * * * * * * * * DotVarExp::toElem: f.spec @ char * * * * * * * * * * VarExp::toElem: f @ FormatSpec!char * * * * * * * * * * * DtoSymbolAddress ('f' of type 'FormatSpec!char') * * * * * * * * * * * * function param * * * * * * * * * * * * type: FormatSpec!char * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.spec: * * * * * * * * * * * Value: %6 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %f_arg, i32 0, i32 2 * * * * * * * * * Casting from 'char' to 'int' * * * * * * * * * * cast to: i32 * * * * * * * * IntegerExp::toElem: 99 @ int * * * * * * * * * IntegerExp::toConstElem: 99 @ int * * * * * * * * * * value = i32 99 * * * * * * * * integral or pointer or interface * * * * * * * * lv: %8 = zext i8 %7 to i32 * * * * * * * * rv: i32 99 * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1911) * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1912) * * * * * * * * CallExp::toElem: put(w, val) @ void * * * * * * * * * VarExp::toElem: put @ @safe void(ref MsgRange r, immutable(char) e) * * * * * * * * * * DtoSymbolAddress ('put' of type '@safe void(ref MsgRange r, immutable(char) e)') * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * DtoFunctionType(@safe void(ref MsgRange r, immutable(char) e)) * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * Final function type: void (i8, %std.experimental.logger.core.MsgRange*) * * * * * * * * * * * DtoResolveFunction(std.range.primitives.put!(MsgRange, immutable(char)).put): /usr/include/dlang/ldc/std/range/primitives.d(277) * * * * * * * * * * * * DtoDeclareFunction(std.range.primitives.put!(MsgRange, immutable(char)).put): /usr/include/dlang/ldc/std/range/primitives.d(277) * * * * * * * * * * * * * DtoFunctionType(@safe void(ref MsgRange r, immutable(char) e)) * * * * * * * * * * * * * func = declare void @_D3std5range10primitives52__T3putTS3std12experimental6logger4core8MsgRangeTyaZ3putFNfKS3std12experimental6logger4core8MsgRangeyaZv(i8, %std.experimental.logger.core.MsgRange*) * * * * * * * * * DtoCallFunction() * * * * * * * * * * Building type: @safe void(ref MsgRange r, immutable(char) e) * * * * * * * * * * * DtoFunctionType(@safe void(ref MsgRange r, immutable(char) e)) * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * Final function type: void (i8, %std.experimental.logger.core.MsgRange*) * * * * * * * * * * doing normal arguments * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * Function type: @safe void(ref MsgRange r, immutable(char) e) * * * * * * * * * * DtoArgument * * * * * * * * * * * VarExp::toElem: w @ MsgRange * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'MsgRange') * * * * * * * * * * * * * function param * * * * * * * * * * * * * type: MsgRange * * * * * * * * * * DtoArgument * * * * * * * * * * * VarExp::toElem: val @ immutable(char) * * * * * * * * * * * * DtoSymbolAddress ('val' of type 'immutable(char)') * * * * * * * * * * * * * a normal variable * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1915) * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1915) * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1916) * * * * * * * * * DeclarationExp::toElem: alias U = ubyte; | T=void * * * * * * * * * * DtoDeclarationExp: U * * * * * * * * * * * Ignoring Symbol: alias * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1917) * * * * * * * * * CallExp::toElem: formatValue(w, cast(ubyte)val, f) @ void * * * * * * * * * * VarExp::toElem: formatValue @ @safe void(MsgRange w, ubyte obj, ref FormatSpec!char f) * * * * * * * * * * * DtoSymbolAddress ('formatValue' of type '@safe void(MsgRange w, ubyte obj, ref FormatSpec!char f)') * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * DtoFunctionType(@safe void(MsgRange w, ubyte obj, ref FormatSpec!char f)) * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * Final function type: void (%"std.format.FormatSpec!char.FormatSpec"*, i8, %std.experimental.logger.core.MsgRange*) * * * * * * * * * * * * DtoResolveFunction(std.format.formatValue!(MsgRange, ubyte, char).formatValue): /usr/include/dlang/ldc/std/format.d(1397) * * * * * * * * * * * * * DtoDeclareFunction(std.format.formatValue!(MsgRange, ubyte, char).formatValue): /usr/include/dlang/ldc/std/format.d(1397) * * * * * * * * * * * * * * DtoFunctionType(@safe void(MsgRange w, ubyte obj, ref FormatSpec!char f)) * * * * * * * * * * * * * * func = declare void @_D3std6format62__T11formatValueTS3std12experimental6logger4core8MsgRangeThTaZ11formatValueFNfS3std12experimental6logger4core8MsgRangehKS3std6format18__T10FormatSpecTaZ10FormatSpecZv(%"std.format.FormatSpec!char.FormatSpec"*, i8, %std.experimental.logger.core.MsgRange*) * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * Building type: @safe void(MsgRange w, ubyte obj, ref FormatSpec!char f) * * * * * * * * * * * * DtoFunctionType(@safe void(MsgRange w, ubyte obj, ref FormatSpec!char f)) * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * Final function type: void (%"std.format.FormatSpec!char.FormatSpec"*, i8, %std.experimental.logger.core.MsgRange*) * * * * * * * * * * * doing normal arguments * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * Function type: @safe void(MsgRange w, ubyte obj, ref FormatSpec!char f) * * * * * * * * * * * DtoArgument * * * * * * * * * * * * VarExp::toElem: w @ MsgRange * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'MsgRange') * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * type: MsgRange * * * * * * * * * * * DtoArgument * * * * * * * * * * * * CastExp::toElem: cast(ubyte)val @ ubyte * * * * * * * * * * * * * VarExp::toElem: val @ immutable(char) * * * * * * * * * * * * * * DtoSymbolAddress ('val' of type 'immutable(char)') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * Casting from 'immutable(char)' to 'ubyte' * * * * * * * * * * * DtoArgument * * * * * * * * * * * * VarExp::toElem: f @ FormatSpec!char * * * * * * * * * * * * * DtoSymbolAddress ('f' of type 'FormatSpec!char') * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * type: FormatSpec!char * TemplateInstance::codegen: 'std.range.primitives.put!(MsgRange, immutable(char))' * * DtoDefineFunction(std.range.primitives.put!(MsgRange, immutable(char)).put): /usr/include/dlang/ldc/std/range/primitives.d(277) * * * Doing function body for: put * * * DtoCreateNestedContext for put * * * * DtoCreateNestedContextType for std.range.primitives.put!(MsgRange, immutable(char)).put * * * CompoundStatement::toIR(): * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/range/primitives.d(282) * * * * * CallExp::toElem: doPut(r, e) @ void * * * * * * VarExp::toElem: doPut @ @safe void(ref MsgRange r, auto ref immutable(char) e) * * * * * * * DtoSymbolAddress ('doPut' of type '@safe void(ref MsgRange r, auto ref immutable(char) e)') * * * * * * * * FuncDeclaration * * * * * * * * DtoFunctionType(@safe void(ref MsgRange r, auto ref immutable(char) e)) * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * Final function type: void (i8*, %std.experimental.logger.core.MsgRange*) * * * * * * * * DtoResolveFunction(std.range.primitives.doPut!(MsgRange, immutable(char)).doPut): /usr/include/dlang/ldc/std/range/primitives.d(182) * * * * * * * * * DtoDeclareFunction(std.range.primitives.doPut!(MsgRange, immutable(char)).doPut): /usr/include/dlang/ldc/std/range/primitives.d(182) * * * * * * * * * * DtoFunctionType(@safe void(ref MsgRange r, auto ref immutable(char) e)) * * * * * * * * * * func = declare void @_D3std5range10primitives54__T5doPutTS3std12experimental6logger4core8MsgRangeTyaZ5doPutFNfKS3std12experimental6logger4core8MsgRangeKyaZv(i8*, %std.experimental.logger.core.MsgRange*) * * * * * * DtoCallFunction() * * * * * * * Building type: @safe void(ref MsgRange r, auto ref immutable(char) e) * * * * * * * * DtoFunctionType(@safe void(ref MsgRange r, auto ref immutable(char) e)) * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * Final function type: void (i8*, %std.experimental.logger.core.MsgRange*) * * * * * * * doing normal arguments * * * * * * * Arguments so far: (0) * * * * * * * Function type: @safe void(ref MsgRange r, auto ref immutable(char) e) * * * * * * * DtoArgument * * * * * * * * VarExp::toElem: r @ MsgRange * * * * * * * * * DtoSymbolAddress ('r' of type 'MsgRange') * * * * * * * * * * function param * * * * * * * * * * type: MsgRange * * * * * * * DtoArgument * * * * * * * * VarExp::toElem: e @ immutable(char) * * * * * * * * * DtoSymbolAddress ('e' of type 'immutable(char)') * * * * * * * * * * function param * * * * * * * * * * type: immutable(char) * TemplateInstance::codegen: 'std.range.primitives.doPut!(MsgRange, immutable(char))' * * DtoDefineFunction(std.range.primitives.doPut!(MsgRange, immutable(char)).doPut): /usr/include/dlang/ldc/std/range/primitives.d(182) * * * Doing function body for: doPut * * * DtoCreateNestedContext for doPut * * * * DtoCreateNestedContextType for std.range.primitives.doPut!(MsgRange, immutable(char)).doPut * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/range/primitives.d(183) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/range/primitives.d(187) * * * * * * DeclarationExp::toElem: enum bool usingPut = true; | T=void * * * * * * * DtoDeclarationExp: usingPut * * * * * * * * VarDeclaration * * * * * * * * Manifest constant, nothing to do. * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/range/primitives.d(193) * * * * * * CallExp::toElem: r.put(cast(dchar)e) @ void * * * * * * * DotVarExp::toElem: r.put @ @safe void(dchar elem) * * * * * * * * VarExp::toElem: r @ MsgRange * * * * * * * * * DtoSymbolAddress ('r' of type 'MsgRange') * * * * * * * * * * function param * * * * * * * * * * type: MsgRange * * * * * * * DtoCallFunction() * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (1) * * * * * * * * * %std.experimental.logger.core.MsgRange* %r_arg * * * * * * * * Function type: @safe void(dchar elem) * * * * * * * * DtoArgument * * * * * * * * * CastExp::toElem: cast(dchar)e @ dchar * * * * * * * * * * VarExp::toElem: e @ immutable(char) * * * * * * * * * * * DtoSymbolAddress ('e' of type 'immutable(char)') * * * * * * * * * * * * function param * * * * * * * * * * * * type: immutable(char) * * * * * * * * * * Casting from 'immutable(char)' to 'dchar' * * * * * * * * * * * cast to: i32 * TemplateInstance::codegen: 'std.traits.isSomeString!(immutable(char))' * TemplateInstance::codegen: 'std.format.formatValue!(MsgRange, ubyte, char)' * * DtoDefineFunction(std.format.formatValue!(MsgRange, ubyte, char).formatValue): /usr/include/dlang/ldc/std/format.d(1397) * * * Doing function body for: formatValue * * * DtoCreateNestedContext for formatValue * * * * DtoCreateNestedContextType for std.format.formatValue!(MsgRange, ubyte, char).formatValue * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1399) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1401) * * * * * * DeclarationExp::toElem: alias U = ubyte; | T=void * * * * * * * DtoDeclarationExp: U * * * * * * * * Ignoring Symbol: alias * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1402) * * * * * * DeclarationExp::toElem: ubyte val = obj; | T=void * * * * * * * DtoDeclarationExp: val * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = ubyte) * * * * * * * * * llvm value for decl: %val = alloca i8, align 1 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: val = obj | (ubyte)(ubyte = ubyte) * * * * * * * * * * VarExp::toElem: val @ ubyte * * * * * * * * * * * DtoSymbolAddress ('val' of type 'ubyte') * * * * * * * * * * * * a normal variable * * * * * * * * * * VarExp::toElem: obj @ ubyte * * * * * * * * * * * DtoSymbolAddress ('obj' of type 'ubyte') * * * * * * * * * * * * function param * * * * * * * * * * * * type: ubyte * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %val = alloca i8, align 1 * * * * * * * * * * * rhs: %1 = load i8, i8* %obj * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1404) * * * * * * EqualExp::toElem: cast(int)f.spec == 114 @ bool * * * * * * * CastExp::toElem: cast(int)f.spec @ int * * * * * * * * DotVarExp::toElem: f.spec @ char * * * * * * * * * VarExp::toElem: f @ FormatSpec!char * * * * * * * * * * DtoSymbolAddress ('f' of type 'FormatSpec!char') * * * * * * * * * * * function param * * * * * * * * * * * type: FormatSpec!char * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.spec: * * * * * * * * * * Value: %2 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %f_arg, i32 0, i32 2 * * * * * * * * Casting from 'char' to 'int' * * * * * * * * * cast to: i32 * * * * * * * IntegerExp::toElem: 114 @ int * * * * * * * * IntegerExp::toConstElem: 114 @ int * * * * * * * * * value = i32 114 * * * * * * * integral or pointer or interface * * * * * * * lv: %4 = zext i8 %3 to i32 * * * * * * * rv: i32 114 * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1405) * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1405) * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1407) * * * * * * * * * DeclarationExp::toElem: const(char)[] raw = (*(ref ubyte val) => (cast(const(char*))&val)[0..1])(val); | T=void * * * * * * * * * * DtoDeclarationExp: raw * * * * * * * * * * * VarDeclaration * * * * * * * * * * * DtoVarDeclaration(vdtype = const(char)[]) * * * * * * * * * * * * llvm value for decl: %raw = alloca { i64, i8* }, align 8 * * * * * * * * * * * * expression initializer * * * * * * * * * * * * AssignExp::toElem: raw = (*(ref ubyte val) => (cast(const(char*))&val)[0..1])(val) | (const(char)[])(const(char)[] = const(char)[]) * * * * * * * * * * * * * VarExp::toElem: raw @ const(char)[] * * * * * * * * * * * * * * DtoSymbolAddress ('raw' of type 'const(char)[]') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * CallExp::toElem: (*(ref ubyte val) => (cast(const(char*))&val)[0..1])(val) @ const(char)[] * * * * * * * * * * * * * * PtrExp::toElem: *(ref ubyte val) => (cast(const(char*))&val)[0..1] @ pure nothrow @nogc @trusted const(char)[](ref ubyte val) * * * * * * * * * * * * * * * FuncExp::toElem: __lambda4 @ const(char)[] function(ref ubyte val) pure nothrow @nogc @trusted * * * * * * * * * * * * * * * * kind = function * * * * * * * * * * * * * * * * DtoDefineFunction(std.format.formatValue!(MsgRange, ubyte, char).formatValue.__lambda4): /usr/include/dlang/ldc/std/format.d(1407) * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted const(char)[](ref ubyte val)) * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * Final function type: { i64, i8* } (i8*) * * * * * * * * * * * * * * * * * DtoResolveFunction(std.format.formatValue!(MsgRange, ubyte, char).formatValue.__lambda4): /usr/include/dlang/ldc/std/format.d(1407) * * * * * * * * * * * * * * * * * * DtoDeclareFunction(std.format.formatValue!(MsgRange, ubyte, char).formatValue.__lambda4): /usr/include/dlang/ldc/std/format.d(1407) * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted const(char)[](ref ubyte val)) * * * * * * * * * * * * * * * * * * * func = declare { i64, i8* } @_D3std6format62__T11formatValueTS3std12experimental6logger4core8MsgRangeThTaZ11formatValueFS3std12experimental6logger4core8MsgRangehKS3std6format18__T10FormatSpecTaZ10FormatSpecZ16__T9__lambda4ThZ9__lambda4FNaNbNiNeKhZAxa(i8*) * * * * * * * * * * * * * * * * * Doing function body for: __lambda4 * * * * * * * * * * * * * * * * * DtoCreateNestedContext for __lambda4 * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for std.format.formatValue!(MsgRange, ubyte, char).formatValue.__lambda4 * * * * * * * * * * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * * * * * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1408) * * * * * * * * * * * * * * * * * * * SliceExp::toElem: (cast(const(char*))&val)[0..1] @ const(char)[] * * * * * * * * * * * * * * * * * * * * CastExp::toElem: cast(const(char*))&val @ const(char*) * * * * * * * * * * * * * * * * * * * * * AddrExp::toElem: &val @ ubyte* * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: val @ ubyte * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('val' of type 'ubyte') * * * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * * * type: ubyte * * * * * * * * * * * * * * * * * * * * * * is nothing special * * * * * * * * * * * * * * * * * * * * * * lval: i8* %val_arg * * * * * * * * * * * * * * * * * * * * * Casting from 'ubyte*' to 'const(char*)' * * * * * * * * * * * * * * * * * * * * * * src: i8* %val_arg * * * * * * * * * * * * * * * * * * * * * * to type: i8* * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * * * * * * * return value is '0x12649320' * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * Building type: pure nothrow @nogc @trusted const(char)[](ref ubyte val) * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted const(char)[](ref ubyte val)) * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * Final function type: { i64, i8* } (i8*) * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @trusted const(char)[](ref ubyte val) * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * VarExp::toElem: val @ ubyte * * * * * * * * * * * * * * * * * DtoSymbolAddress ('val' of type 'ubyte') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * SetArray * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1410) * * * * * * * * * OrOrExp::toElem: !!f.flPlus() || false @ bool * * * * * * * * * * BoolExp::toElem: !!f.flPlus() @ bool * * * * * * * * * * * CallExp::toElem: f.flPlus() @ bool * * * * * * * * * * * * DotVarExp::toElem: f.flPlus @ const pure nothrow @nogc @property @safe bool() * * * * * * * * * * * * * VarExp::toElem: f @ FormatSpec!char * * * * * * * * * * * * * * DtoSymbolAddress ('f' of type 'FormatSpec!char') * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * type: FormatSpec!char * * * * * * * * * * * * * isMember = this is: FormatSpec!char * * * * * * * * * * * * * DtoFunctionType(const pure nothrow @nogc @property @safe bool()) * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * Final function type: i1 (%"std.format.FormatSpec!char.FormatSpec"*) * * * * * * * * * * * * * DtoResolveFunction(std.format.FormatSpec!char.FormatSpec.flPlus): /usr/include/dlang/ldc/std/format.d-mixin-721(727) * * * * * * * * * * * * * * DtoDeclareFunction(std.format.FormatSpec!char.FormatSpec.flPlus): /usr/include/dlang/ldc/std/format.d-mixin-721(727) * * * * * * * * * * * * * * * isMember = this is: FormatSpec!char * * * * * * * * * * * * * * * DtoFunctionType(const pure nothrow @nogc @property @safe bool()) * * * * * * * * * * * * * * * func = declare i1 @_D3std6format18__T10FormatSpecTaZ10FormatSpec6flPlusMxFNaNbNdNiNfZb(%"std.format.FormatSpec!char.FormatSpec"*) * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * Building type: const pure nothrow @nogc @property @safe bool() * * * * * * * * * * * * * * DtoFunctionType(const pure nothrow @nogc @property @safe bool()) * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * Final function type: i1 () * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * %"std.format.FormatSpec!char.FormatSpec"* %f_arg * * * * * * * * * * * * * Function type: const pure nothrow @nogc @property @safe bool() * * * * * * * * * * IntegerExp::toElem: false @ bool * * * * * * * * * * * IntegerExp::toConstElem: false @ bool * * * * * * * * * * * * value = i1 false * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1412) * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1414) * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1414) * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1414) * * * * * * * * * * * * * DeclarationExp::toElem: const(char)[] __aggr3213 = raw[]; | T=void * * * * * * * * * * * * * * DtoDeclarationExp: __aggr3213 * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = const(char)[]) * * * * * * * * * * * * * * * * llvm value for decl: %__aggr3213 = alloca { i64, i8* }, align 8 * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * AssignExp::toElem: __aggr3213 = raw[] | (const(char)[])(const(char)[] = const(char)[]) * * * * * * * * * * * * * * * * * VarExp::toElem: __aggr3213 @ const(char)[] * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__aggr3213' of type 'const(char)[]') * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * SliceExp::toElem: raw[] @ const(char)[] * * * * * * * * * * * * * * * * * * VarExp::toElem: raw @ const(char)[] * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('raw' of type 'const(char)[]') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * * SetArray * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1414) * * * * * * * * * * * * * DeclarationExp::toElem: ulong __key3214 = __aggr3213.length; | T=void * * * * * * * * * * * * * * DtoDeclarationExp: __key3214 * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * * * * * * * * llvm value for decl: %__key3214 = alloca i64, align 8 * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * AssignExp::toElem: __key3214 = __aggr3213.length | (ulong)(ulong = ulong) * * * * * * * * * * * * * * * * * VarExp::toElem: __key3214 @ ulong * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__key3214' of type 'ulong') * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * ArrayLengthExp::toElem: __aggr3213.length @ ulong * * * * * * * * * * * * * * * * * * VarExp::toElem: __aggr3213 @ const(char)[] * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__aggr3213' of type 'const(char)[]') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * lhs: %__key3214 = alloca i64, align 8 * * * * * * * * * * * * * * * * * * rhs: %.len5 = load i64, i64* %14 * * * * * * * * * * * * ForStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1414) * * * * * * * * * * * * * PostExp::toElem: __key3214-- @ ulong * * * * * * * * * * * * * * VarExp::toElem: __key3214 @ ulong * * * * * * * * * * * * * * * DtoSymbolAddress ('__key3214' of type 'ulong') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * Casting from 'ulong' to 'bool' * * * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1414) * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1414) * * * * * * * * * * * * * * * DeclarationExp::toElem: const const(char) c = __aggr3213[__key3214]; | T=void * * * * * * * * * * * * * * * * DtoDeclarationExp: c * * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = const(char)) * * * * * * * * * * * * * * * * * * llvm value for decl: %c = alloca i8, align 1 * * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * * AssignExp::toElem: c = __aggr3213[__key3214] | (const(char))(const(char) = const(char)) * * * * * * * * * * * * * * * * * * * VarExp::toElem: c @ const(char) * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('c' of type 'const(char)') * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * IndexExp::toElem: __aggr3213[__key3214] @ const(char) * * * * * * * * * * * * * * * * * * * * VarExp::toElem: __aggr3213 @ const(char)[] * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__aggr3213' of type 'const(char)[]') * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * VarExp::toElem: __key3214 @ ulong * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__key3214' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * lhs: %c = alloca i8, align 1 * * * * * * * * * * * * * * * * * * * * rhs: %23 = load i8, i8* %22 * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1415) * * * * * * * * * * * * * * * CallExp::toElem: put(w, c) @ void * * * * * * * * * * * * * * * * VarExp::toElem: put @ @safe void(ref MsgRange r, const(char) e) * * * * * * * * * * * * * * * * * DtoSymbolAddress ('put' of type '@safe void(ref MsgRange r, const(char) e)') * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * DtoFunctionType(@safe void(ref MsgRange r, const(char) e)) * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * Final function type: void (i8, %std.experimental.logger.core.MsgRange*) * * * * * * * * * * * * * * * * * * DtoResolveFunction(std.range.primitives.put!(MsgRange, const(char)).put): /usr/include/dlang/ldc/std/range/primitives.d(277) * * * * * * * * * * * * * * * * * * * DtoDeclareFunction(std.range.primitives.put!(MsgRange, const(char)).put): /usr/include/dlang/ldc/std/range/primitives.d(277) * * * * * * * * * * * * * * * * * * * * DtoFunctionType(@safe void(ref MsgRange r, const(char) e)) * * * * * * * * * * * * * * * * * * * * func = declare void @_D3std5range10primitives52__T3putTS3std12experimental6logger4core8MsgRangeTxaZ3putFNfKS3std12experimental6logger4core8MsgRangexaZv(i8, %std.experimental.logger.core.MsgRange*) * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * Building type: @safe void(ref MsgRange r, const(char) e) * * * * * * * * * * * * * * * * * * DtoFunctionType(@safe void(ref MsgRange r, const(char) e)) * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * Final function type: void (i8, %std.experimental.logger.core.MsgRange*) * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * Function type: @safe void(ref MsgRange r, const(char) e) * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * VarExp::toElem: w @ MsgRange * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'MsgRange') * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * type: MsgRange * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * VarExp::toElem: c @ const(char) * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('c' of type 'const(char)') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1418) * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1419) * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1419) * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1419) * * * * * * * * * * * * * DeclarationExp::toElem: const(char)[] __aggr3215 = raw[]; | T=void * * * * * * * * * * * * * * DtoDeclarationExp: __aggr3215 * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = const(char)[]) * * * * * * * * * * * * * * * * llvm value for decl: %__aggr3215 = alloca { i64, i8* }, align 8 * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * AssignExp::toElem: __aggr3215 = raw[] | (const(char)[])(const(char)[] = const(char)[]) * * * * * * * * * * * * * * * * * VarExp::toElem: __aggr3215 @ const(char)[] * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__aggr3215' of type 'const(char)[]') * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * SliceExp::toElem: raw[] @ const(char)[] * * * * * * * * * * * * * * * * * * VarExp::toElem: raw @ const(char)[] * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('raw' of type 'const(char)[]') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * * SetArray * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1419) * * * * * * * * * * * * * DeclarationExp::toElem: ulong __key3216 = 0LU; | T=void * * * * * * * * * * * * * * DtoDeclarationExp: __key3216 * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * * * * * * * * llvm value for decl: %__key3216 = alloca i64, align 8 * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * AssignExp::toElem: __key3216 = 0LU | (ulong)(ulong = ulong) * * * * * * * * * * * * * * * * * VarExp::toElem: __key3216 @ ulong * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__key3216' of type 'ulong') * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * lhs: %__key3216 = alloca i64, align 8 * * * * * * * * * * * * * * * * * * rhs: i64 0 * * * * * * * * * * * * ForStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1419) * * * * * * * * * * * * * CmpExp::toElem: __key3216 < __aggr3215.length @ bool * * * * * * * * * * * * * * VarExp::toElem: __key3216 @ ulong * * * * * * * * * * * * * * * DtoSymbolAddress ('__key3216' of type 'ulong') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * ArrayLengthExp::toElem: __aggr3215.length @ ulong * * * * * * * * * * * * * * * VarExp::toElem: __aggr3215 @ const(char)[] * * * * * * * * * * * * * * * * DtoSymbolAddress ('__aggr3215' of type 'const(char)[]') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * type 1: %30 = load i64, i64* %__key3216 * * * * * * * * * * * * * * type 2: %.len14 = load i64, i64* %29 * * * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1419) * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1419) * * * * * * * * * * * * * * * DeclarationExp::toElem: const const(char) c = __aggr3215[__key3216]; | T=void * * * * * * * * * * * * * * * * DtoDeclarationExp: c * * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = const(char)) * * * * * * * * * * * * * * * * * * llvm value for decl: %c15 = alloca i8, align 1 * * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * * AssignExp::toElem: c = __aggr3215[__key3216] | (const(char))(const(char) = const(char)) * * * * * * * * * * * * * * * * * * * VarExp::toElem: c @ const(char) * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('c' of type 'const(char)') * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * IndexExp::toElem: __aggr3215[__key3216] @ const(char) * * * * * * * * * * * * * * * * * * * * VarExp::toElem: __aggr3215 @ const(char)[] * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__aggr3215' of type 'const(char)[]') * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * VarExp::toElem: __key3216 @ ulong * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__key3216' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * lhs: %c15 = alloca i8, align 1 * * * * * * * * * * * * * * * * * * * * rhs: %37 = load i8, i8* %36 * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1420) * * * * * * * * * * * * * * * CallExp::toElem: put(w, c) @ void * * * * * * * * * * * * * * * * VarExp::toElem: put @ @safe void(ref MsgRange r, const(char) e) * * * * * * * * * * * * * * * * * DtoSymbolAddress ('put' of type '@safe void(ref MsgRange r, const(char) e)') * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * Function type: @safe void(ref MsgRange r, const(char) e) * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * VarExp::toElem: w @ MsgRange * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'MsgRange') * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * type: MsgRange * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * VarExp::toElem: c @ const(char) * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('c' of type 'const(char)') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * AddAssignExp::toElem: __key3216 += 1LU @ ulong * * * * * * * * * * * * * * Caching l-value of __key3216 += 1LU => __key3216 * * * * * * * * * * * * * * * VarExp::toElem: __key3216 @ ulong * * * * * * * * * * * * * * * * DtoSymbolAddress ('__key3216' of type 'ulong') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * AddExp::toElem: __key3216 + 1LU @ ulong * * * * * * * * * * * * * * * VarExp::toElem: __key3216 @ ulong * * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * lhs: %__key3216 = alloca i64, align 8 * * * * * * * * * * * * * * * rhs: %35 = add i64 %34, 1 * * * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1422) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1425) * * * * * * DeclarationExp::toElem: uint base = cast(int)f.spec == 120 || cast(int)f.spec == 88 ? 16u : cast(int)f.spec == 111 ? 8u : cast(int)f.spec == 98 ? 2u : cast(int)f.spec == 115 || cast(int)f.spec == 100 || cast(int)f.spec == 117 ? 10u : 0u; | T=void * * * * * * * DtoDeclarationExp: base * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = uint) * * * * * * * * * llvm value for decl: %base = alloca i32, align 4 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: base = cast(int)f.spec == 120 || cast(int)f.spec == 88 ? 16u : cast(int)f.spec == 111 ? 8u : cast(int)f.spec == 98 ? 2u : cast(int)f.spec == 115 || cast(int)f.spec == 100 || cast(int)f.spec == 117 ? 10u : 0u | (uint)(uint = uint) * * * * * * * * * * VarExp::toElem: base @ uint * * * * * * * * * * * DtoSymbolAddress ('base' of type 'uint') * * * * * * * * * * * * a normal variable * * * * * * * * * * CondExp::toElem: cast(int)f.spec == 120 || cast(int)f.spec == 88 ? 16u : cast(int)f.spec == 111 ? 8u : cast(int)f.spec == 98 ? 2u : cast(int)f.spec == 115 || cast(int)f.spec == 100 || cast(int)f.spec == 117 ? 10u : 0u @ uint * * * * * * * * * * * Building type: uint* * * * * * * * * * * * OrOrExp::toElem: cast(int)f.spec == 120 || cast(int)f.spec == 88 @ bool * * * * * * * * * * * * EqualExp::toElem: cast(int)f.spec == 120 @ bool * * * * * * * * * * * * * CastExp::toElem: cast(int)f.spec @ int * * * * * * * * * * * * * * DotVarExp::toElem: f.spec @ char * * * * * * * * * * * * * * * VarExp::toElem: f @ FormatSpec!char * * * * * * * * * * * * * * * * DtoSymbolAddress ('f' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * type: FormatSpec!char * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.spec: * * * * * * * * * * * * * * * * Value: %10 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %f_arg, i32 0, i32 2 * * * * * * * * * * * * * * Casting from 'char' to 'int' * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * * IntegerExp::toElem: 120 @ int * * * * * * * * * * * * * * IntegerExp::toConstElem: 120 @ int * * * * * * * * * * * * * * * value = i32 120 * * * * * * * * * * * * * integral or pointer or interface * * * * * * * * * * * * * lv: %12 = zext i8 %11 to i32 * * * * * * * * * * * * * rv: i32 120 * * * * * * * * * * * * EqualExp::toElem: cast(int)f.spec == 88 @ bool * * * * * * * * * * * * * CastExp::toElem: cast(int)f.spec @ int * * * * * * * * * * * * * * DotVarExp::toElem: f.spec @ char * * * * * * * * * * * * * * * VarExp::toElem: f @ FormatSpec!char * * * * * * * * * * * * * * * * DtoSymbolAddress ('f' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * type: FormatSpec!char * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.spec: * * * * * * * * * * * * * * * * Value: %45 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %f_arg, i32 0, i32 2 * * * * * * * * * * * * * * Casting from 'char' to 'int' * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * * IntegerExp::toElem: 88 @ int * * * * * * * * * * * * * * IntegerExp::toConstElem: 88 @ int * * * * * * * * * * * * * * * value = i32 88 * * * * * * * * * * * * * integral or pointer or interface * * * * * * * * * * * * * lv: %47 = zext i8 %46 to i32 * * * * * * * * * * * * * rv: i32 88 * * * * * * * * * * * IntegerExp::toElem: 16u @ uint * * * * * * * * * * * * IntegerExp::toConstElem: 16u @ uint * * * * * * * * * * * * * value = i32 16 * * * * * * * * * * * CondExp::toElem: cast(int)f.spec == 111 ? 8u : cast(int)f.spec == 98 ? 2u : cast(int)f.spec == 115 || cast(int)f.spec == 100 || cast(int)f.spec == 117 ? 10u : 0u @ uint * * * * * * * * * * * * EqualExp::toElem: cast(int)f.spec == 111 @ bool * * * * * * * * * * * * * CastExp::toElem: cast(int)f.spec @ int * * * * * * * * * * * * * * DotVarExp::toElem: f.spec @ char * * * * * * * * * * * * * * * VarExp::toElem: f @ FormatSpec!char * * * * * * * * * * * * * * * * DtoSymbolAddress ('f' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * type: FormatSpec!char * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.spec: * * * * * * * * * * * * * * * * Value: %45 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %f_arg, i32 0, i32 2 * * * * * * * * * * * * * * Casting from 'char' to 'int' * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * * IntegerExp::toElem: 111 @ int * * * * * * * * * * * * * * IntegerExp::toConstElem: 111 @ int * * * * * * * * * * * * * * * value = i32 111 * * * * * * * * * * * * * integral or pointer or interface * * * * * * * * * * * * * lv: %47 = zext i8 %46 to i32 * * * * * * * * * * * * * rv: i32 111 * * * * * * * * * * * * IntegerExp::toElem: 8u @ uint * * * * * * * * * * * * * IntegerExp::toConstElem: 8u @ uint * * * * * * * * * * * * * * value = i32 8 * * * * * * * * * * * * CondExp::toElem: cast(int)f.spec == 98 ? 2u : cast(int)f.spec == 115 || cast(int)f.spec == 100 || cast(int)f.spec == 117 ? 10u : 0u @ uint * * * * * * * * * * * * * EqualExp::toElem: cast(int)f.spec == 98 @ bool * * * * * * * * * * * * * * CastExp::toElem: cast(int)f.spec @ int * * * * * * * * * * * * * * * DotVarExp::toElem: f.spec @ char * * * * * * * * * * * * * * * * VarExp::toElem: f @ FormatSpec!char * * * * * * * * * * * * * * * * * DtoSymbolAddress ('f' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * type: FormatSpec!char * * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.spec: * * * * * * * * * * * * * * * * * Value: %53 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %f_arg, i32 0, i32 2 * * * * * * * * * * * * * * * Casting from 'char' to 'int' * * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * * * IntegerExp::toElem: 98 @ int * * * * * * * * * * * * * * * IntegerExp::toConstElem: 98 @ int * * * * * * * * * * * * * * * * value = i32 98 * * * * * * * * * * * * * * integral or pointer or interface * * * * * * * * * * * * * * lv: %55 = zext i8 %54 to i32 * * * * * * * * * * * * * * rv: i32 98 * * * * * * * * * * * * * IntegerExp::toElem: 2u @ uint * * * * * * * * * * * * * * IntegerExp::toConstElem: 2u @ uint * * * * * * * * * * * * * * * value = i32 2 * * * * * * * * * * * * * CondExp::toElem: cast(int)f.spec == 115 || cast(int)f.spec == 100 || cast(int)f.spec == 117 ? 10u : 0u @ uint * * * * * * * * * * * * * * OrOrExp::toElem: cast(int)f.spec == 115 || cast(int)f.spec == 100 || cast(int)f.spec == 117 @ bool * * * * * * * * * * * * * * * OrOrExp::toElem: cast(int)f.spec == 115 || cast(int)f.spec == 100 @ bool * * * * * * * * * * * * * * * * EqualExp::toElem: cast(int)f.spec == 115 @ bool * * * * * * * * * * * * * * * * * CastExp::toElem: cast(int)f.spec @ int * * * * * * * * * * * * * * * * * * DotVarExp::toElem: f.spec @ char * * * * * * * * * * * * * * * * * * * VarExp::toElem: f @ FormatSpec!char * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('f' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * type: FormatSpec!char * * * * * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.spec: * * * * * * * * * * * * * * * * * * * * Value: %57 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %f_arg, i32 0, i32 2 * * * * * * * * * * * * * * * * * * Casting from 'char' to 'int' * * * * * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * * * * * * IntegerExp::toElem: 115 @ int * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 115 @ int * * * * * * * * * * * * * * * * * * * value = i32 115 * * * * * * * * * * * * * * * * * integral or pointer or interface * * * * * * * * * * * * * * * * * lv: %59 = zext i8 %58 to i32 * * * * * * * * * * * * * * * * * rv: i32 115 * * * * * * * * * * * * * * * * EqualExp::toElem: cast(int)f.spec == 100 @ bool * * * * * * * * * * * * * * * * * CastExp::toElem: cast(int)f.spec @ int * * * * * * * * * * * * * * * * * * DotVarExp::toElem: f.spec @ char * * * * * * * * * * * * * * * * * * * VarExp::toElem: f @ FormatSpec!char * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('f' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * type: FormatSpec!char * * * * * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.spec: * * * * * * * * * * * * * * * * * * * * Value: %61 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %f_arg, i32 0, i32 2 * * * * * * * * * * * * * * * * * * Casting from 'char' to 'int' * * * * * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * * * * * * IntegerExp::toElem: 100 @ int * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 100 @ int * * * * * * * * * * * * * * * * * * * value = i32 100 * * * * * * * * * * * * * * * * * integral or pointer or interface * * * * * * * * * * * * * * * * * lv: %63 = zext i8 %62 to i32 * * * * * * * * * * * * * * * * * rv: i32 100 * * * * * * * * * * * * * * * EqualExp::toElem: cast(int)f.spec == 117 @ bool * * * * * * * * * * * * * * * * CastExp::toElem: cast(int)f.spec @ int * * * * * * * * * * * * * * * * * DotVarExp::toElem: f.spec @ char * * * * * * * * * * * * * * * * * * VarExp::toElem: f @ FormatSpec!char * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('f' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * type: FormatSpec!char * * * * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.spec: * * * * * * * * * * * * * * * * * * * Value: %65 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %f_arg, i32 0, i32 2 * * * * * * * * * * * * * * * * * Casting from 'char' to 'int' * * * * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * * * * * IntegerExp::toElem: 117 @ int * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 117 @ int * * * * * * * * * * * * * * * * * * value = i32 117 * * * * * * * * * * * * * * * * integral or pointer or interface * * * * * * * * * * * * * * * * lv: %67 = zext i8 %66 to i32 * * * * * * * * * * * * * * * * rv: i32 117 * * * * * * * * * * * * * * IntegerExp::toElem: 10u @ uint * * * * * * * * * * * * * * * IntegerExp::toConstElem: 10u @ uint * * * * * * * * * * * * * * * * value = i32 10 * * * * * * * * * * * * * * IntegerExp::toElem: 0u @ uint * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0u @ uint * * * * * * * * * * * * * * * * value = i32 0 * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %base = alloca i32, align 4 * * * * * * * * * * * rhs: %50 = load i32, i32* %49 * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1431) * * * * * * CallExp::toElem: enforceEx(base > 0u, delegate string() => "integral", "/usr/include/dlang/ldc/std/format.d", 1431LU) @ bool * * * * * * * VarExp::toElem: enforceEx @ pure @safe bool(bool value, lazy string msg = "", string file = __FILE__, ulong line = cast(ulong)__LINE__) * * * * * * * * DtoSymbolAddress ('enforceEx' of type 'pure @safe bool(bool value, lazy string msg = "", string file = __FILE__, ulong line = cast(ulong)__LINE__)') * * * * * * * * * FuncDeclaration * * * * * * * DtoCallFunction() * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (0) * * * * * * * * Function type: pure @safe bool(bool value, lazy string msg = "", string file = __FILE__, ulong line = cast(ulong)__LINE__) * * * * * * * * DtoArgument * * * * * * * * * CmpExp::toElem: base > 0u @ bool * * * * * * * * * * VarExp::toElem: base @ uint * * * * * * * * * * * DtoSymbolAddress ('base' of type 'uint') * * * * * * * * * * * * a normal variable * * * * * * * * * * IntegerExp::toElem: 0u @ uint * * * * * * * * * * * IntegerExp::toConstElem: 0u @ uint * * * * * * * * * * * * value = i32 0 * * * * * * * * * * type 1: %51 = load i32, i32* %base * * * * * * * * * * type 2: i32 0 * * * * * * * * DtoArgument * * * * * * * * * FuncExp::toElem: __dgliteral5 @ string delegate() pure nothrow @nogc @safe * * * * * * * * * * nested * * * * * * * * * * kind = delegate * * * * * * * * * * DtoDefineFunction(std.format.formatValue!(MsgRange, ubyte, char).formatValue.__dgliteral5): /usr/include/dlang/ldc/std/format.d(1432) * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe string()) * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * Final function type: { i64, i8* } (i8*) * * * * * * * * * * * DtoResolveFunction(std.format.formatValue!(MsgRange, ubyte, char).formatValue.__dgliteral5): /usr/include/dlang/ldc/std/format.d(1432) * * * * * * * * * * * * DtoDeclareFunction(std.format.formatValue!(MsgRange, ubyte, char).formatValue.__dgliteral5): /usr/include/dlang/ldc/std/format.d(1432) * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe string()) * * * * * * * * * * * * * func = declare { i64, i8* } @_D3std6format62__T11formatValueTS3std12experimental6logger4core8MsgRangeThTaZ11formatValueFS3std12experimental6logger4core8MsgRangehKS3std6format18__T10FormatSpecTaZ10FormatSpecZ12__dgliteral5MFNaNbNiNfZAya(i8*) * * * * * * * * * * * Doing function body for: __dgliteral5 * * * * * * * * * * * DtoCreateNestedContext for __dgliteral5 * * * * * * * * * * * * DtoCreateNestedContextType for std.format.formatValue!(MsgRange, ubyte, char).formatValue.__dgliteral5 * * * * * * * * * * * * * DtoCreateNestedContextType for std.format.formatValue!(MsgRange, ubyte, char).formatValue * * * * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1432) * * * * * * * * * * * * * StringExp::toElem: "integral" @ string * * * * * * * * * * * * * * type: [9 x i8] * * * * * * * * * * * * * * init: [9 x i8] c"integral\00" * * * * * * * * * * * * * return value is '0x123bb390' * * * * * * * * * * Building type: string delegate() pure nothrow @nogc @safe * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe string()) * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * Final function type: { i64, i8* } (i8*) * * * * * * * * DtoArgument * * * * * * * * * StringExp::toElem: "/usr/include/dlang/ldc/std/format.d" @ string * * * * * * * * DtoArgument * * * * * * * * * IntegerExp::toElem: 1431LU @ ulong * * * * * * * * * * IntegerExp::toConstElem: 1431LU @ ulong * * * * * * * * * * * value = i64 1431 * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1441) * * * * * * DeclarationExp::toElem: alias C = ulong; | T=void * * * * * * * DtoDeclarationExp: C * * * * * * * * Ignoring Symbol: alias * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1442) * * * * * * CallExp::toElem: formatIntegral(w, cast(ulong)val, f, base, 255LU) @ void * * * * * * * VarExp::toElem: formatIntegral @ @safe void(MsgRange w, const(ulong) val, ref FormatSpec!char f, uint base, ulong mask) * * * * * * * * DtoSymbolAddress ('formatIntegral' of type '@safe void(MsgRange w, const(ulong) val, ref FormatSpec!char f, uint base, ulong mask)') * * * * * * * * * FuncDeclaration * * * * * * * * * DtoFunctionType(@safe void(MsgRange w, const(ulong) val, ref FormatSpec!char f, uint base, ulong mask)) * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: void (i64, i32, %"std.format.FormatSpec!char.FormatSpec"*, i64, %std.experimental.logger.core.MsgRange*) * * * * * * * * * DtoResolveFunction(std.format.formatIntegral!(MsgRange, ulong, char).formatIntegral): /usr/include/dlang/ldc/std/format.d(1456) * * * * * * * * * * DtoDeclareFunction(std.format.formatIntegral!(MsgRange, ulong, char).formatIntegral): /usr/include/dlang/ldc/std/format.d(1456) * * * * * * * * * * * DtoFunctionType(@safe void(MsgRange w, const(ulong) val, ref FormatSpec!char f, uint base, ulong mask)) * * * * * * * * * * * func = declare void @_D3std6format65__T14formatIntegralTS3std12experimental6logger4core8MsgRangeTmTaZ14formatIntegralFNfS3std12experimental6logger4core8MsgRangexmKS3std6format18__T10FormatSpecTaZ10FormatSpeckmZv(i64, i32, %"std.format.FormatSpec!char.FormatSpec"*, i64, %std.experimental.logger.core.MsgRange*) * * * * * * * DtoCallFunction() * * * * * * * * Building type: @safe void(MsgRange w, const(ulong) val, ref FormatSpec!char f, uint base, ulong mask) * * * * * * * * * DtoFunctionType(@safe void(MsgRange w, const(ulong) val, ref FormatSpec!char f, uint base, ulong mask)) * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: void (i64, i32, %"std.format.FormatSpec!char.FormatSpec"*, i64, %std.experimental.logger.core.MsgRange*) * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (0) * * * * * * * * Function type: @safe void(MsgRange w, const(ulong) val, ref FormatSpec!char f, uint base, ulong mask) * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: w @ MsgRange * * * * * * * * * * DtoSymbolAddress ('w' of type 'MsgRange') * * * * * * * * * * * function param * * * * * * * * * * * type: MsgRange * * * * * * * * DtoArgument * * * * * * * * * CastExp::toElem: cast(ulong)val @ const(ulong) * * * * * * * * * * VarExp::toElem: val @ ubyte * * * * * * * * * * * DtoSymbolAddress ('val' of type 'ubyte') * * * * * * * * * * * * a normal variable * * * * * * * * * * Casting from 'ubyte' to 'ulong' * * * * * * * * * * * cast to: i64 * * * * * * * * * * repainting from 'ulong' to 'const(ulong)' * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: f @ FormatSpec!char * * * * * * * * * * DtoSymbolAddress ('f' of type 'FormatSpec!char') * * * * * * * * * * * function param * * * * * * * * * * * type: FormatSpec!char * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: base @ uint * * * * * * * * * * DtoSymbolAddress ('base' of type 'uint') * * * * * * * * * * * a normal variable * * * * * * * * DtoArgument * * * * * * * * * IntegerExp::toElem: 255LU @ ulong * * * * * * * * * * IntegerExp::toConstElem: 255LU @ ulong * * * * * * * * * * * value = i64 255 * TemplateInstance::codegen: 'std.format.formatValue!(MsgRange, ubyte, char).formatValue.__lambda4!ubyte' * * DtoDefineFunction(std.format.formatValue!(MsgRange, ubyte, char).formatValue.__lambda4): /usr/include/dlang/ldc/std/format.d(1407) * TemplateInstance::codegen: 'std.range.primitives.put!(MsgRange, const(char))' * * DtoDefineFunction(std.range.primitives.put!(MsgRange, const(char)).put): /usr/include/dlang/ldc/std/range/primitives.d(277) * * * Doing function body for: put * * * DtoCreateNestedContext for put * * * * DtoCreateNestedContextType for std.range.primitives.put!(MsgRange, const(char)).put * * * CompoundStatement::toIR(): * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/range/primitives.d(282) * * * * * CallExp::toElem: doPut(r, e) @ void * * * * * * VarExp::toElem: doPut @ @safe void(ref MsgRange r, auto ref const(char) e) * * * * * * * DtoSymbolAddress ('doPut' of type '@safe void(ref MsgRange r, auto ref const(char) e)') * * * * * * * * FuncDeclaration * * * * * * * * DtoFunctionType(@safe void(ref MsgRange r, auto ref const(char) e)) * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * Final function type: void (i8*, %std.experimental.logger.core.MsgRange*) * * * * * * * * DtoResolveFunction(std.range.primitives.doPut!(MsgRange, const(char)).doPut): /usr/include/dlang/ldc/std/range/primitives.d(182) * * * * * * * * * DtoDeclareFunction(std.range.primitives.doPut!(MsgRange, const(char)).doPut): /usr/include/dlang/ldc/std/range/primitives.d(182) * * * * * * * * * * DtoFunctionType(@safe void(ref MsgRange r, auto ref const(char) e)) * * * * * * * * * * func = declare void @_D3std5range10primitives54__T5doPutTS3std12experimental6logger4core8MsgRangeTxaZ5doPutFNfKS3std12experimental6logger4core8MsgRangeKxaZv(i8*, %std.experimental.logger.core.MsgRange*) * * * * * * DtoCallFunction() * * * * * * * Building type: @safe void(ref MsgRange r, auto ref const(char) e) * * * * * * * * DtoFunctionType(@safe void(ref MsgRange r, auto ref const(char) e)) * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * Final function type: void (i8*, %std.experimental.logger.core.MsgRange*) * * * * * * * doing normal arguments * * * * * * * Arguments so far: (0) * * * * * * * Function type: @safe void(ref MsgRange r, auto ref const(char) e) * * * * * * * DtoArgument * * * * * * * * VarExp::toElem: r @ MsgRange * * * * * * * * * DtoSymbolAddress ('r' of type 'MsgRange') * * * * * * * * * * function param * * * * * * * * * * type: MsgRange * * * * * * * DtoArgument * * * * * * * * VarExp::toElem: e @ const(char) * * * * * * * * * DtoSymbolAddress ('e' of type 'const(char)') * * * * * * * * * * function param * * * * * * * * * * type: const(char) * TemplateInstance::codegen: 'std.range.primitives.doPut!(MsgRange, const(char))' * * DtoDefineFunction(std.range.primitives.doPut!(MsgRange, const(char)).doPut): /usr/include/dlang/ldc/std/range/primitives.d(182) * * * Doing function body for: doPut * * * DtoCreateNestedContext for doPut * * * * DtoCreateNestedContextType for std.range.primitives.doPut!(MsgRange, const(char)).doPut * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/range/primitives.d(183) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/range/primitives.d(187) * * * * * * DeclarationExp::toElem: enum bool usingPut = true; | T=void * * * * * * * DtoDeclarationExp: usingPut * * * * * * * * VarDeclaration * * * * * * * * Manifest constant, nothing to do. * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/range/primitives.d(193) * * * * * * CallExp::toElem: r.put(cast(dchar)e) @ void * * * * * * * DotVarExp::toElem: r.put @ @safe void(dchar elem) * * * * * * * * VarExp::toElem: r @ MsgRange * * * * * * * * * DtoSymbolAddress ('r' of type 'MsgRange') * * * * * * * * * * function param * * * * * * * * * * type: MsgRange * * * * * * * DtoCallFunction() * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (1) * * * * * * * * * %std.experimental.logger.core.MsgRange* %r_arg * * * * * * * * Function type: @safe void(dchar elem) * * * * * * * * DtoArgument * * * * * * * * * CastExp::toElem: cast(dchar)e @ dchar * * * * * * * * * * VarExp::toElem: e @ const(char) * * * * * * * * * * * DtoSymbolAddress ('e' of type 'const(char)') * * * * * * * * * * * * function param * * * * * * * * * * * * type: const(char) * * * * * * * * * * Casting from 'const(char)' to 'dchar' * * * * * * * * * * * cast to: i32 * TemplateInstance::codegen: 'std.traits.isSomeString!(const(char))' * TemplateInstance::codegen: 'std.format.formatIntegral!(MsgRange, ulong, char)' * * DtoDefineFunction(std.format.formatIntegral!(MsgRange, ulong, char).formatIntegral): /usr/include/dlang/ldc/std/format.d(1456) * * * Doing function body for: formatIntegral * * * DtoCreateNestedContext for formatIntegral * * * * DtoCreateNestedContextType for std.format.formatIntegral!(MsgRange, ulong, char).formatIntegral * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1457) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1458) * * * * * * DeclarationExp::toElem: FormatSpec!char fs = f; | T=void * * * * * * * DtoDeclarationExp: fs * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = FormatSpec!char) * * * * * * * * * llvm value for decl: %fs = alloca %"std.format.FormatSpec!char.FormatSpec", align 8 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: fs = f | (FormatSpec!char)(FormatSpec!char = FormatSpec!char) * * * * * * * * * * VarExp::toElem: fs @ FormatSpec!char * * * * * * * * * * * DtoSymbolAddress ('fs' of type 'FormatSpec!char') * * * * * * * * * * * * a normal variable * * * * * * * * * * VarExp::toElem: f @ FormatSpec!char * * * * * * * * * * * DtoSymbolAddress ('f' of type 'FormatSpec!char') * * * * * * * * * * * * function param * * * * * * * * * * * * type: FormatSpec!char * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * DtoAssign() * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1459) * * * * * * DeclarationExp::toElem: ulong arg = val; | T=void * * * * * * * DtoDeclarationExp: arg * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * llvm value for decl: %arg = alloca i64, align 8 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: arg = val | (ulong)(ulong = ulong) * * * * * * * * * * VarExp::toElem: arg @ ulong * * * * * * * * * * * DtoSymbolAddress ('arg' of type 'ulong') * * * * * * * * * * * * a normal variable * * * * * * * * * * VarExp::toElem: val @ ulong * * * * * * * * * * * DtoSymbolAddress ('val' of type 'const(ulong)') * * * * * * * * * * * * function param * * * * * * * * * * * * type: const(ulong) * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %arg = alloca i64, align 8 * * * * * * * * * * * rhs: %3 = load i64, i64* %val * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1461) * * * * * * DeclarationExp::toElem: bool negative = base == 10u && arg < 0LU; | T=void * * * * * * * DtoDeclarationExp: negative * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = bool) * * * * * * * * * llvm value for decl: %negative = alloca i8, align 1 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: negative = base == 10u && arg < 0LU | (bool)(bool = bool) * * * * * * * * * * VarExp::toElem: negative @ bool * * * * * * * * * * * DtoSymbolAddress ('negative' of type 'bool') * * * * * * * * * * * * a normal variable * * * * * * * * * * AndAndExp::toElem: base == 10u && arg < 0LU @ bool * * * * * * * * * * * EqualExp::toElem: base == 10u @ bool * * * * * * * * * * * * VarExp::toElem: base @ uint * * * * * * * * * * * * * DtoSymbolAddress ('base' of type 'uint') * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * type: uint * * * * * * * * * * * * IntegerExp::toElem: 10u @ uint * * * * * * * * * * * * * IntegerExp::toConstElem: 10u @ uint * * * * * * * * * * * * * * value = i32 10 * * * * * * * * * * * * integral or pointer or interface * * * * * * * * * * * * lv: %4 = load i32, i32* %base * * * * * * * * * * * * rv: i32 10 * * * * * * * * * * * CmpExp::toElem: arg < 0LU @ bool * * * * * * * * * * * * VarExp::toElem: arg @ ulong * * * * * * * * * * * * * DtoSymbolAddress ('arg' of type 'ulong') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * type 1: %6 = load i64, i64* %arg * * * * * * * * * * * * type 2: i64 0 * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1462) * * * * * * VarExp::toElem: negative @ bool * * * * * * * DtoSymbolAddress ('negative' of type 'bool') * * * * * * * * a normal variable * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1463) * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1464) * * * * * * * * AssignExp::toElem: arg = -arg | (ulong)(ulong = ulong) * * * * * * * * * VarExp::toElem: arg @ ulong * * * * * * * * * * DtoSymbolAddress ('arg' of type 'ulong') * * * * * * * * * * * a normal variable * * * * * * * * * NegExp::toElem: -arg @ ulong * * * * * * * * * * VarExp::toElem: arg @ ulong * * * * * * * * * * * DtoSymbolAddress ('arg' of type 'ulong') * * * * * * * * * * * * a normal variable * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * DtoAssign() * * * * * * * * * * lhs: %arg = alloca i64, align 8 * * * * * * * * * * rhs: %negval = sub i64 0, %11 * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1471) * * * * * * CallExp::toElem: formatUnsigned(w, arg & mask, fs, base, negative) @ void * * * * * * * VarExp::toElem: formatUnsigned @ @safe void(MsgRange w, ulong arg, ref FormatSpec!char fs, uint base, bool negative) * * * * * * * * DtoSymbolAddress ('formatUnsigned' of type '@safe void(MsgRange w, ulong arg, ref FormatSpec!char fs, uint base, bool negative)') * * * * * * * * * FuncDeclaration * * * * * * * * * DtoFunctionType(@safe void(MsgRange w, ulong arg, ref FormatSpec!char fs, uint base, bool negative)) * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: void (i1, i32, %"std.format.FormatSpec!char.FormatSpec"*, i64, %std.experimental.logger.core.MsgRange*) * * * * * * * * * DtoResolveFunction(std.format.formatUnsigned!(MsgRange, ulong, char).formatUnsigned): /usr/include/dlang/ldc/std/format.d(1474) * * * * * * * * * * DtoDeclareFunction(std.format.formatUnsigned!(MsgRange, ulong, char).formatUnsigned): /usr/include/dlang/ldc/std/format.d(1474) * * * * * * * * * * * DtoFunctionType(@safe void(MsgRange w, ulong arg, ref FormatSpec!char fs, uint base, bool negative)) * * * * * * * * * * * func = declare void @_D3std6format65__T14formatUnsignedTS3std12experimental6logger4core8MsgRangeTmTaZ14formatUnsignedFNfS3std12experimental6logger4core8MsgRangemKS3std6format18__T10FormatSpecTaZ10FormatSpeckbZv(i1, i32, %"std.format.FormatSpec!char.FormatSpec"*, i64, %std.experimental.logger.core.MsgRange*) * * * * * * * DtoCallFunction() * * * * * * * * Building type: @safe void(MsgRange w, ulong arg, ref FormatSpec!char fs, uint base, bool negative) * * * * * * * * * DtoFunctionType(@safe void(MsgRange w, ulong arg, ref FormatSpec!char fs, uint base, bool negative)) * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: void (i1, i32, %"std.format.FormatSpec!char.FormatSpec"*, i64, %std.experimental.logger.core.MsgRange*) * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (0) * * * * * * * * Function type: @safe void(MsgRange w, ulong arg, ref FormatSpec!char fs, uint base, bool negative) * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: w @ MsgRange * * * * * * * * * * DtoSymbolAddress ('w' of type 'MsgRange') * * * * * * * * * * * function param * * * * * * * * * * * type: MsgRange * * * * * * * * DtoArgument * * * * * * * * * AndExp::toElem: arg & mask @ ulong * * * * * * * * * * VarExp::toElem: arg @ ulong * * * * * * * * * * * DtoSymbolAddress ('arg' of type 'ulong') * * * * * * * * * * * * a normal variable * * * * * * * * * * VarExp::toElem: mask @ ulong * * * * * * * * * * * DtoSymbolAddress ('mask' of type 'ulong') * * * * * * * * * * * * function param * * * * * * * * * * * * type: ulong * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: fs @ FormatSpec!char * * * * * * * * * * DtoSymbolAddress ('fs' of type 'FormatSpec!char') * * * * * * * * * * * a normal variable * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: base @ uint * * * * * * * * * * DtoSymbolAddress ('base' of type 'uint') * * * * * * * * * * * function param * * * * * * * * * * * type: uint * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: negative @ bool * * * * * * * * * * DtoSymbolAddress ('negative' of type 'bool') * * * * * * * * * * * a normal variable * TemplateInstance::codegen: 'std.format.formatUnsigned!(MsgRange, ulong, char)' * * DtoDefineFunction(std.format.formatUnsigned!(MsgRange, ulong, char).formatUnsigned): /usr/include/dlang/ldc/std/format.d(1474) * * * Doing function body for: formatUnsigned * * * DtoCreateNestedContext for formatUnsigned * * * * DtoCreateNestedContextType for std.format.formatUnsigned!(MsgRange, ulong, char).formatUnsigned * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1475) * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1476) * * * * * * EqualExp::toElem: fs.precision == 2147483646 @ bool * * * * * * * DotVarExp::toElem: fs.precision @ int * * * * * * * * VarExp::toElem: fs @ FormatSpec!char * * * * * * * * * DtoSymbolAddress ('fs' of type 'FormatSpec!char') * * * * * * * * * * function param * * * * * * * * * * type: FormatSpec!char * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.precision: * * * * * * * * * Value: %2 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %fs_arg, i32 0, i32 1 * * * * * * * IntegerExp::toElem: 2147483646 @ int * * * * * * * * IntegerExp::toConstElem: 2147483646 @ int * * * * * * * * * value = i32 2147483646 * * * * * * * integral or pointer or interface * * * * * * * lv: %3 = load i32, i32* %2 * * * * * * * rv: i32 2147483646 * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1477) * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1479) * * * * * * * * AssignExp::toElem: fs.precision = 1 | (int)(int = int) * * * * * * * * * DotVarExp::toElem: fs.precision @ int * * * * * * * * * * VarExp::toElem: fs @ FormatSpec!char * * * * * * * * * * * DtoSymbolAddress ('fs' of type 'FormatSpec!char') * * * * * * * * * * * * function param * * * * * * * * * * * * type: FormatSpec!char * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.precision: * * * * * * * * * * * Value: %5 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %fs_arg, i32 0, i32 1 * * * * * * * * * IntegerExp::toElem: 1 @ int * * * * * * * * * * IntegerExp::toConstElem: 1 @ int * * * * * * * * * * * value = i32 1 * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * DtoAssign() * * * * * * * * * * lhs: %5 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %fs_arg, i32 0, i32 1 * * * * * * * * * * rhs: i32 1 * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1482) * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1484) * * * * * * * * CallExp::toElem: fs.flZero(false) @ void * * * * * * * * * DotVarExp::toElem: fs.flZero @ pure nothrow @nogc @property @safe void(bool v) * * * * * * * * * * VarExp::toElem: fs @ FormatSpec!char * * * * * * * * * * * DtoSymbolAddress ('fs' of type 'FormatSpec!char') * * * * * * * * * * * * function param * * * * * * * * * * * * type: FormatSpec!char * * * * * * * * * * isMember = this is: FormatSpec!char * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @property @safe void(bool v)) * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * Final function type: void (%"std.format.FormatSpec!char.FormatSpec"*, i1) * * * * * * * * * * DtoResolveFunction(std.format.FormatSpec!char.FormatSpec.flZero): /usr/include/dlang/ldc/std/format.d-mixin-721(724) * * * * * * * * * * * DtoDeclareFunction(std.format.FormatSpec!char.FormatSpec.flZero): /usr/include/dlang/ldc/std/format.d-mixin-721(724) * * * * * * * * * * * * isMember = this is: FormatSpec!char * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @property @safe void(bool v)) * * * * * * * * * * * * func = declare void @_D3std6format18__T10FormatSpecTaZ10FormatSpec6flZeroMFNaNbNdNiNfbZv(%"std.format.FormatSpec!char.FormatSpec"*, i1) * * * * * * * * * DtoCallFunction() * * * * * * * * * * Building type: pure nothrow @nogc @property @safe void(bool v) * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @property @safe void(bool v)) * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * Final function type: void (i1) * * * * * * * * * * doing normal arguments * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * %"std.format.FormatSpec!char.FormatSpec"* %fs_arg * * * * * * * * * * Function type: pure nothrow @nogc @property @safe void(bool v) * * * * * * * * * * DtoArgument * * * * * * * * * * * IntegerExp::toElem: false @ bool * * * * * * * * * * * * IntegerExp::toConstElem: false @ bool * * * * * * * * * * * * * value = i1 false * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1487) * * * * * * DeclarationExp::toElem: char leftPad = void; | T=void * * * * * * * DtoDeclarationExp: leftPad * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = char) * * * * * * * * * llvm value for decl: %leftPad = alloca i8, align 1 * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1488) * * * * * * AndAndExp::toElem: !fs.flDash() && !fs.flZero() @ bool * * * * * * * NotExp::toElem: !fs.flDash() @ bool * * * * * * * * CallExp::toElem: fs.flDash() @ bool * * * * * * * * * DotVarExp::toElem: fs.flDash @ const pure nothrow @nogc @property @safe bool() * * * * * * * * * * VarExp::toElem: fs @ FormatSpec!char * * * * * * * * * * * DtoSymbolAddress ('fs' of type 'FormatSpec!char') * * * * * * * * * * * * function param * * * * * * * * * * * * type: FormatSpec!char * * * * * * * * * DtoCallFunction() * * * * * * * * * * doing normal arguments * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * %"std.format.FormatSpec!char.FormatSpec"* %fs_arg * * * * * * * * * * Function type: const pure nothrow @nogc @property @safe bool() * * * * * * * NotExp::toElem: !fs.flZero() @ bool * * * * * * * * CallExp::toElem: fs.flZero() @ bool * * * * * * * * * DotVarExp::toElem: fs.flZero @ const pure nothrow @nogc @property @safe bool() * * * * * * * * * * VarExp::toElem: fs @ FormatSpec!char * * * * * * * * * * * DtoSymbolAddress ('fs' of type 'FormatSpec!char') * * * * * * * * * * * * function param * * * * * * * * * * * * type: FormatSpec!char * * * * * * * * * * isMember = this is: FormatSpec!char * * * * * * * * * * DtoFunctionType(const pure nothrow @nogc @property @safe bool()) * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * Final function type: i1 (%"std.format.FormatSpec!char.FormatSpec"*) * * * * * * * * * * DtoResolveFunction(std.format.FormatSpec!char.FormatSpec.flZero): /usr/include/dlang/ldc/std/format.d-mixin-721(723) * * * * * * * * * * * DtoDeclareFunction(std.format.FormatSpec!char.FormatSpec.flZero): /usr/include/dlang/ldc/std/format.d-mixin-721(723) * * * * * * * * * * * * isMember = this is: FormatSpec!char * * * * * * * * * * * * DtoFunctionType(const pure nothrow @nogc @property @safe bool()) * * * * * * * * * * * * func = declare i1 @_D3std6format18__T10FormatSpecTaZ10FormatSpec6flZeroMxFNaNbNdNiNfZb(%"std.format.FormatSpec!char.FormatSpec"*) * * * * * * * * * DtoCallFunction() * * * * * * * * * * Building type: const pure nothrow @nogc @property @safe bool() * * * * * * * * * * * DtoFunctionType(const pure nothrow @nogc @property @safe bool()) * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * Final function type: i1 () * * * * * * * * * * doing normal arguments * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * %"std.format.FormatSpec!char.FormatSpec"* %fs_arg * * * * * * * * * * Function type: const pure nothrow @nogc @property @safe bool() * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1489) * * * * * * * AssignExp::toElem: leftPad = ' ' | (char)(char = char) * * * * * * * * VarExp::toElem: leftPad @ char * * * * * * * * * DtoSymbolAddress ('leftPad' of type 'char') * * * * * * * * * * a normal variable * * * * * * * * IntegerExp::toElem: ' ' @ char * * * * * * * * * IntegerExp::toConstElem: ' ' @ char * * * * * * * * * * value = i8 32 * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * DtoAssign() * * * * * * * * * lhs: %leftPad = alloca i8, align 1 * * * * * * * * * rhs: i8 32 * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1490) * * * * * * * AndAndExp::toElem: !fs.flDash() && fs.flZero() @ bool * * * * * * * * NotExp::toElem: !fs.flDash() @ bool * * * * * * * * * CallExp::toElem: fs.flDash() @ bool * * * * * * * * * * DotVarExp::toElem: fs.flDash @ const pure nothrow @nogc @property @safe bool() * * * * * * * * * * * VarExp::toElem: fs @ FormatSpec!char * * * * * * * * * * * * DtoSymbolAddress ('fs' of type 'FormatSpec!char') * * * * * * * * * * * * * function param * * * * * * * * * * * * * type: FormatSpec!char * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * doing normal arguments * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * %"std.format.FormatSpec!char.FormatSpec"* %fs_arg * * * * * * * * * * * Function type: const pure nothrow @nogc @property @safe bool() * * * * * * * * CallExp::toElem: fs.flZero() @ bool * * * * * * * * * DotVarExp::toElem: fs.flZero @ const pure nothrow @nogc @property @safe bool() * * * * * * * * * * VarExp::toElem: fs @ FormatSpec!char * * * * * * * * * * * DtoSymbolAddress ('fs' of type 'FormatSpec!char') * * * * * * * * * * * * function param * * * * * * * * * * * * type: FormatSpec!char * * * * * * * * * DtoCallFunction() * * * * * * * * * * doing normal arguments * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * %"std.format.FormatSpec!char.FormatSpec"* %fs_arg * * * * * * * * * * Function type: const pure nothrow @nogc @property @safe bool() * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1491) * * * * * * * * AssignExp::toElem: leftPad = '0' | (char)(char = char) * * * * * * * * * VarExp::toElem: leftPad @ char * * * * * * * * * * DtoSymbolAddress ('leftPad' of type 'char') * * * * * * * * * * * a normal variable * * * * * * * * * IntegerExp::toElem: '0' @ char * * * * * * * * * * IntegerExp::toConstElem: '0' @ char * * * * * * * * * * * value = i8 48 * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * DtoAssign() * * * * * * * * * * lhs: %leftPad = alloca i8, align 1 * * * * * * * * * * rhs: i8 48 * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1493) * * * * * * * * AssignExp::toElem: leftPad = '\x00' | (char)(char = char) * * * * * * * * * VarExp::toElem: leftPad @ char * * * * * * * * * * DtoSymbolAddress ('leftPad' of type 'char') * * * * * * * * * * * a normal variable * * * * * * * * * IntegerExp::toElem: '\x00' @ char * * * * * * * * * * IntegerExp::toConstElem: '\x00' @ char * * * * * * * * * * * value = i8 0 * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * DtoAssign() * * * * * * * * * * lhs: %leftPad = alloca i8, align 1 * * * * * * * * * * rhs: i8 0 * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1496) * * * * * * DeclarationExp::toElem: char forcedPrefix = void; | T=void * * * * * * * DtoDeclarationExp: forcedPrefix * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = char) * * * * * * * * * llvm value for decl: %forcedPrefix = alloca i8, align 1 * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1497) * * * * * * CallExp::toElem: fs.flPlus() @ bool * * * * * * * DotVarExp::toElem: fs.flPlus @ const pure nothrow @nogc @property @safe bool() * * * * * * * * VarExp::toElem: fs @ FormatSpec!char * * * * * * * * * DtoSymbolAddress ('fs' of type 'FormatSpec!char') * * * * * * * * * * function param * * * * * * * * * * type: FormatSpec!char * * * * * * * DtoCallFunction() * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (1) * * * * * * * * * %"std.format.FormatSpec!char.FormatSpec"* %fs_arg * * * * * * * * Function type: const pure nothrow @nogc @property @safe bool() * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1497) * * * * * * * AssignExp::toElem: forcedPrefix = '+' | (char)(char = char) * * * * * * * * VarExp::toElem: forcedPrefix @ char * * * * * * * * * DtoSymbolAddress ('forcedPrefix' of type 'char') * * * * * * * * * * a normal variable * * * * * * * * IntegerExp::toElem: '+' @ char * * * * * * * * * IntegerExp::toConstElem: '+' @ char * * * * * * * * * * value = i8 43 * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * DtoAssign() * * * * * * * * * lhs: %forcedPrefix = alloca i8, align 1 * * * * * * * * * rhs: i8 43 * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1498) * * * * * * * CallExp::toElem: fs.flSpace() @ bool * * * * * * * * DotVarExp::toElem: fs.flSpace @ const pure nothrow @nogc @property @safe bool() * * * * * * * * * VarExp::toElem: fs @ FormatSpec!char * * * * * * * * * * DtoSymbolAddress ('fs' of type 'FormatSpec!char') * * * * * * * * * * * function param * * * * * * * * * * * type: FormatSpec!char * * * * * * * * * isMember = this is: FormatSpec!char * * * * * * * * * DtoFunctionType(const pure nothrow @nogc @property @safe bool()) * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: i1 (%"std.format.FormatSpec!char.FormatSpec"*) * * * * * * * * * DtoResolveFunction(std.format.FormatSpec!char.FormatSpec.flSpace): /usr/include/dlang/ldc/std/format.d-mixin-721(725) * * * * * * * * * * DtoDeclareFunction(std.format.FormatSpec!char.FormatSpec.flSpace): /usr/include/dlang/ldc/std/format.d-mixin-721(725) * * * * * * * * * * * isMember = this is: FormatSpec!char * * * * * * * * * * * DtoFunctionType(const pure nothrow @nogc @property @safe bool()) * * * * * * * * * * * func = declare i1 @_D3std6format18__T10FormatSpecTaZ10FormatSpec7flSpaceMxFNaNbNdNiNfZb(%"std.format.FormatSpec!char.FormatSpec"*) * * * * * * * * DtoCallFunction() * * * * * * * * * Building type: const pure nothrow @nogc @property @safe bool() * * * * * * * * * * DtoFunctionType(const pure nothrow @nogc @property @safe bool()) * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * Final function type: i1 () * * * * * * * * * doing normal arguments * * * * * * * * * Arguments so far: (1) * * * * * * * * * * %"std.format.FormatSpec!char.FormatSpec"* %fs_arg * * * * * * * * * Function type: const pure nothrow @nogc @property @safe bool() * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1498) * * * * * * * * AssignExp::toElem: forcedPrefix = ' ' | (char)(char = char) * * * * * * * * * VarExp::toElem: forcedPrefix @ char * * * * * * * * * * DtoSymbolAddress ('forcedPrefix' of type 'char') * * * * * * * * * * * a normal variable * * * * * * * * * IntegerExp::toElem: ' ' @ char * * * * * * * * * * IntegerExp::toConstElem: ' ' @ char * * * * * * * * * * * value = i8 32 * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * DtoAssign() * * * * * * * * * * lhs: %forcedPrefix = alloca i8, align 1 * * * * * * * * * * rhs: i8 32 * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1499) * * * * * * * * AssignExp::toElem: forcedPrefix = '\x00' | (char)(char = char) * * * * * * * * * VarExp::toElem: forcedPrefix @ char * * * * * * * * * * DtoSymbolAddress ('forcedPrefix' of type 'char') * * * * * * * * * * * a normal variable * * * * * * * * * IntegerExp::toElem: '\x00' @ char * * * * * * * * * * IntegerExp::toConstElem: '\x00' @ char * * * * * * * * * * * value = i8 0 * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * DtoAssign() * * * * * * * * * * lhs: %forcedPrefix = alloca i8, align 1 * * * * * * * * * * rhs: i8 0 * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1500) * * * * * * EqualExp::toElem: base != 10u @ bool * * * * * * * VarExp::toElem: base @ uint * * * * * * * * DtoSymbolAddress ('base' of type 'uint') * * * * * * * * * function param * * * * * * * * * type: uint * * * * * * * IntegerExp::toElem: 10u @ uint * * * * * * * * IntegerExp::toConstElem: 10u @ uint * * * * * * * * * value = i32 10 * * * * * * * integral or pointer or interface * * * * * * * lv: %15 = load i32, i32* %base * * * * * * * rv: i32 10 * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1501) * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1503) * * * * * * * * AssignExp::toElem: forcedPrefix = '\x00' | (char)(char = char) * * * * * * * * * VarExp::toElem: forcedPrefix @ char * * * * * * * * * * DtoSymbolAddress ('forcedPrefix' of type 'char') * * * * * * * * * * * a normal variable * * * * * * * * * IntegerExp::toElem: '\x00' @ char * * * * * * * * * * IntegerExp::toConstElem: '\x00' @ char * * * * * * * * * * * value = i8 0 * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * DtoAssign() * * * * * * * * * * lhs: %forcedPrefix = alloca i8, align 1 * * * * * * * * * * rhs: i8 0 * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1505) * * * * * * * VarExp::toElem: negative @ bool * * * * * * * * DtoSymbolAddress ('negative' of type 'bool') * * * * * * * * * function param * * * * * * * * * type: bool * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1506) * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1508) * * * * * * * * * AssignExp::toElem: forcedPrefix = '-' | (char)(char = char) * * * * * * * * * * VarExp::toElem: forcedPrefix @ char * * * * * * * * * * * DtoSymbolAddress ('forcedPrefix' of type 'char') * * * * * * * * * * * * a normal variable * * * * * * * * * * IntegerExp::toElem: '-' @ char * * * * * * * * * * * IntegerExp::toConstElem: '-' @ char * * * * * * * * * * * * value = i8 45 * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %forcedPrefix = alloca i8, align 1 * * * * * * * * * * * rhs: i8 45 * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1511) * * * * * * DeclarationExp::toElem: char[64] buffer = '\xff'; | T=void * * * * * * * DtoDeclarationExp: buffer * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = char[64]) * * * * * * * * * Building type: char[64] * * * * * * * * * llvm value for decl: %buffer = alloca [64 x i8], align 1 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: buffer[] = '\xff' | (char[])(char[] = char) * * * * * * * * * * performing static array literal assignment * * * * * * * * * * SliceExp::toElem: buffer[] @ char[] * * * * * * * * * * * VarExp::toElem: buffer @ char[64] * * * * * * * * * * * * DtoSymbolAddress ('buffer' of type 'char[64]') * * * * * * * * * * * * * a normal variable * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * IntegerExp::toElem: '\xff' @ char * * * * * * * * * * * IntegerExp::toConstElem: '\xff' @ char * * * * * * * * * * * * value = i8 -1 * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * DtoArrayInit * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1512) * * * * * * DeclarationExp::toElem: char[] digits = null; | T=void * * * * * * * DtoDeclarationExp: digits * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = char[]) * * * * * * * * * llvm value for decl: %digits = alloca { i64, i8* }, align 8 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: digits = null | (char[])(char[] = char[]) * * * * * * * * * * VarExp::toElem: digits @ char[] * * * * * * * * * * * DtoSymbolAddress ('digits' of type 'char[]') * * * * * * * * * * * * a normal variable * * * * * * * * * * NullExp::toElem(type=char[]): null * * * * * * * * * * * NullExp::toConstElem(type=char[]): null * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * DtoSetArrayToNull * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1513) * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1513) * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1514) * * * * * * * * DeclarationExp::toElem: uint i = 64u; | T=void * * * * * * * * * DtoDeclarationExp: i * * * * * * * * * * VarDeclaration * * * * * * * * * * DtoVarDeclaration(vdtype = uint) * * * * * * * * * * * llvm value for decl: %i = alloca i32, align 4 * * * * * * * * * * * expression initializer * * * * * * * * * * * AssignExp::toElem: i = 64u | (uint)(uint = uint) * * * * * * * * * * * * VarExp::toElem: i @ uint * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'uint') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * IntegerExp::toElem: 64u @ uint * * * * * * * * * * * * * IntegerExp::toConstElem: 64u @ uint * * * * * * * * * * * * * * value = i32 64 * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * lhs: %i = alloca i32, align 4 * * * * * * * * * * * * * rhs: i32 64 * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1515) * * * * * * * * DeclarationExp::toElem: ulong n = arg; | T=void * * * * * * * * * DtoDeclarationExp: n * * * * * * * * * * VarDeclaration * * * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * * * llvm value for decl: %n = alloca i64, align 8 * * * * * * * * * * * expression initializer * * * * * * * * * * * AssignExp::toElem: n = arg | (ulong)(ulong = ulong) * * * * * * * * * * * * VarExp::toElem: n @ ulong * * * * * * * * * * * * * DtoSymbolAddress ('n' of type 'ulong') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * VarExp::toElem: arg @ ulong * * * * * * * * * * * * * DtoSymbolAddress ('arg' of type 'ulong') * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * type: ulong * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * lhs: %n = alloca i64, align 8 * * * * * * * * * * * * * rhs: %19 = load i64, i64* %arg * * * * * * * DoStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1516) * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1517) * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1517) * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1518) * * * * * * * * * * * MinAssignExp::toElem: i -= 1u @ uint * * * * * * * * * * * * Caching l-value of i -= 1u => i * * * * * * * * * * * * * VarExp::toElem: i @ uint * * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'uint') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * MinExp::toElem: i - 1u @ uint * * * * * * * * * * * * * VarExp::toElem: i @ uint * * * * * * * * * * * * * IntegerExp::toElem: 1u @ uint * * * * * * * * * * * * * * IntegerExp::toConstElem: 1u @ uint * * * * * * * * * * * * * * * value = i32 1 * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * lhs: %i = alloca i32, align 4 * * * * * * * * * * * * * rhs: %21 = sub i32 %20, 1 * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1519) * * * * * * * * * * * AssignExp::toElem: buffer[cast(ulong)i] = cast(char)(n % cast(ulong)base) | (char)(char = char) * * * * * * * * * * * * IndexExp::toElem: buffer[cast(ulong)i] @ char * * * * * * * * * * * * * VarExp::toElem: buffer @ char[64] * * * * * * * * * * * * * * DtoSymbolAddress ('buffer' of type 'char[64]') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * CastExp::toElem: cast(ulong)i @ ulong * * * * * * * * * * * * * * VarExp::toElem: i @ uint * * * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'uint') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * Casting from 'uint' to 'ulong' * * * * * * * * * * * * * * * cast to: i64 * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * CastExp::toElem: cast(char)(n % cast(ulong)base) @ char * * * * * * * * * * * * * ModExp::toElem: n % cast(ulong)base @ ulong * * * * * * * * * * * * * * VarExp::toElem: n @ ulong * * * * * * * * * * * * * * * DtoSymbolAddress ('n' of type 'ulong') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * CastExp::toElem: cast(ulong)base @ ulong * * * * * * * * * * * * * * * VarExp::toElem: base @ uint * * * * * * * * * * * * * * * * DtoSymbolAddress ('base' of type 'uint') * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * type: uint * * * * * * * * * * * * * * * Casting from 'uint' to 'ulong' * * * * * * * * * * * * * * * * cast to: i64 * * * * * * * * * * * * * Casting from 'ulong' to 'char' * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * lhs: %24 = getelementptr [64 x i8], [64 x i8]* %buffer, i32 0, i64 %23 * * * * * * * * * * * * * rhs: %29 = trunc i64 %28 to i8 * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1520) * * * * * * * * * * * DivAssignExp::toElem: n /= cast(ulong)base @ ulong * * * * * * * * * * * * Caching l-value of n /= cast(ulong)base => n * * * * * * * * * * * * * VarExp::toElem: n @ ulong * * * * * * * * * * * * * * DtoSymbolAddress ('n' of type 'ulong') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * DivExp::toElem: n / cast(ulong)base @ ulong * * * * * * * * * * * * * VarExp::toElem: n @ ulong * * * * * * * * * * * * * CastExp::toElem: cast(ulong)base @ ulong * * * * * * * * * * * * * * VarExp::toElem: base @ uint * * * * * * * * * * * * * * * DtoSymbolAddress ('base' of type 'uint') * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * type: uint * * * * * * * * * * * * * * Casting from 'uint' to 'ulong' * * * * * * * * * * * * * * * cast to: i64 * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * lhs: %n = alloca i64, align 8 * * * * * * * * * * * * * rhs: %33 = udiv i64 %32, %31 * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1521) * * * * * * * * * * * CmpExp::toElem: cast(int)buffer[cast(ulong)i] < 10 @ bool * * * * * * * * * * * * CastExp::toElem: cast(int)buffer[cast(ulong)i] @ int * * * * * * * * * * * * * IndexExp::toElem: buffer[cast(ulong)i] @ char * * * * * * * * * * * * * * VarExp::toElem: buffer @ char[64] * * * * * * * * * * * * * * * DtoSymbolAddress ('buffer' of type 'char[64]') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * CastExp::toElem: cast(ulong)i @ ulong * * * * * * * * * * * * * * * VarExp::toElem: i @ uint * * * * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'uint') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * Casting from 'uint' to 'ulong' * * * * * * * * * * * * * * * * cast to: i64 * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * Casting from 'char' to 'int' * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * IntegerExp::toElem: 10 @ int * * * * * * * * * * * * * IntegerExp::toConstElem: 10 @ int * * * * * * * * * * * * * * value = i32 10 * * * * * * * * * * * * type 1: %38 = zext i8 %37 to i32 * * * * * * * * * * * * type 2: i32 10 * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1521) * * * * * * * * * * * * AddAssignExp::toElem: cast(int)buffer[cast(ulong)i] += 48 @ char * * * * * * * * * * * * * Caching l-value of cast(int)buffer[cast(ulong)i] += 48 => buffer[cast(ulong)i] * * * * * * * * * * * * * * IndexExp::toElem: buffer[cast(ulong)i] @ char * * * * * * * * * * * * * * * VarExp::toElem: buffer @ char[64] * * * * * * * * * * * * * * * * DtoSymbolAddress ('buffer' of type 'char[64]') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * CastExp::toElem: cast(ulong)i @ ulong * * * * * * * * * * * * * * * * VarExp::toElem: i @ uint * * * * * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'uint') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * Casting from 'uint' to 'ulong' * * * * * * * * * * * * * * * * * cast to: i64 * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * AddExp::toElem: cast(int)buffer[cast(ulong)i] + 48 @ int * * * * * * * * * * * * * * CastExp::toElem: cast(int)buffer[cast(ulong)i] @ int * * * * * * * * * * * * * * * IndexExp::toElem: buffer[cast(ulong)i] @ char * * * * * * * * * * * * * * * Casting from 'char' to 'int' * * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * * * IntegerExp::toElem: 48 @ int * * * * * * * * * * * * * * * IntegerExp::toConstElem: 48 @ int * * * * * * * * * * * * * * * * value = i32 48 * * * * * * * * * * * * * Casting from 'int' to 'char' * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * lhs: %42 = getelementptr [64 x i8], [64 x i8]* %buffer, i32 0, i64 %41 * * * * * * * * * * * * * * rhs: %46 = trunc i32 %45 to i8 * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1522) * * * * * * * * * * * * AddAssignExp::toElem: cast(int)buffer[cast(ulong)i] += (cast(int)fs.spec == 120 ? 97 : 65) - 10 @ char * * * * * * * * * * * * * Caching l-value of cast(int)buffer[cast(ulong)i] += (cast(int)fs.spec == 120 ? 97 : 65) - 10 => buffer[cast(ulong)i] * * * * * * * * * * * * * * IndexExp::toElem: buffer[cast(ulong)i] @ char * * * * * * * * * * * * * * * VarExp::toElem: buffer @ char[64] * * * * * * * * * * * * * * * * DtoSymbolAddress ('buffer' of type 'char[64]') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * CastExp::toElem: cast(ulong)i @ ulong * * * * * * * * * * * * * * * * VarExp::toElem: i @ uint * * * * * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'uint') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * Casting from 'uint' to 'ulong' * * * * * * * * * * * * * * * * * cast to: i64 * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * AddExp::toElem: cast(int)buffer[cast(ulong)i] + ((cast(int)fs.spec == 120 ? 97 : 65) - 10) @ int * * * * * * * * * * * * * * CastExp::toElem: cast(int)buffer[cast(ulong)i] @ int * * * * * * * * * * * * * * * IndexExp::toElem: buffer[cast(ulong)i] @ char * * * * * * * * * * * * * * * Casting from 'char' to 'int' * * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * * * MinExp::toElem: (cast(int)fs.spec == 120 ? 97 : 65) - 10 @ int * * * * * * * * * * * * * * * CondExp::toElem: cast(int)fs.spec == 120 ? 97 : 65 @ int * * * * * * * * * * * * * * * * EqualExp::toElem: cast(int)fs.spec == 120 @ bool * * * * * * * * * * * * * * * * * CastExp::toElem: cast(int)fs.spec @ int * * * * * * * * * * * * * * * * * * DotVarExp::toElem: fs.spec @ char * * * * * * * * * * * * * * * * * * * VarExp::toElem: fs @ FormatSpec!char * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('fs' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * type: FormatSpec!char * * * * * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.spec: * * * * * * * * * * * * * * * * * * * * Value: %52 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %fs_arg, i32 0, i32 2 * * * * * * * * * * * * * * * * * * Casting from 'char' to 'int' * * * * * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * * * * * * IntegerExp::toElem: 120 @ int * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 120 @ int * * * * * * * * * * * * * * * * * * * value = i32 120 * * * * * * * * * * * * * * * * * integral or pointer or interface * * * * * * * * * * * * * * * * * lv: %54 = zext i8 %53 to i32 * * * * * * * * * * * * * * * * * rv: i32 120 * * * * * * * * * * * * * * * * IntegerExp::toElem: 97 @ int * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 97 @ int * * * * * * * * * * * * * * * * * * value = i32 97 * * * * * * * * * * * * * * * * IntegerExp::toElem: 65 @ int * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 65 @ int * * * * * * * * * * * * * * * * * * value = i32 65 * * * * * * * * * * * * * * * IntegerExp::toElem: 10 @ int * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 10 @ int * * * * * * * * * * * * * * * * * value = i32 10 * * * * * * * * * * * * * Casting from 'int' to 'char' * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * lhs: %49 = getelementptr [64 x i8], [64 x i8]* %buffer, i32 0, i64 %43 * * * * * * * * * * * * * * rhs: %60 = trunc i32 %59 to i8 * * * * * * * * VarExp::toElem: n @ ulong * * * * * * * * * DtoSymbolAddress ('n' of type 'ulong') * * * * * * * * * * a normal variable * * * * * * * * Casting from 'ulong' to 'bool' * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1524) * * * * * * * * AssignExp::toElem: digits = buffer[cast(ulong)i..64] | (char[])(char[] = char[]) * * * * * * * * * VarExp::toElem: digits @ char[] * * * * * * * * * * DtoSymbolAddress ('digits' of type 'char[]') * * * * * * * * * * * a normal variable * * * * * * * * * SliceExp::toElem: buffer[cast(ulong)i..64] @ char[] * * * * * * * * * * VarExp::toElem: buffer @ char[64] * * * * * * * * * * * DtoSymbolAddress ('buffer' of type 'char[64]') * * * * * * * * * * * * a normal variable * * * * * * * * * * DtoArrayPtr * * * * * * * * * * CastExp::toElem: cast(ulong)i @ ulong * * * * * * * * * * * VarExp::toElem: i @ uint * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'uint') * * * * * * * * * * * * * a normal variable * * * * * * * * * * * Casting from 'uint' to 'ulong' * * * * * * * * * * * * cast to: i64 * * * * * * * * * * IntegerExp::toElem: 64LU @ ulong * * * * * * * * * * * IntegerExp::toConstElem: 64LU @ ulong * * * * * * * * * * * * value = i64 64 * * * * * * * * * * DtoArrayLen * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * DtoAssign() * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * SetArray * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1527) * * * * * * AndAndExp::toElem: base == 8u && fs.flHash() && cast(ulong)fs.precision <= digits.length @ bool * * * * * * * AndAndExp::toElem: base == 8u && fs.flHash() @ bool * * * * * * * * EqualExp::toElem: base == 8u @ bool * * * * * * * * * VarExp::toElem: base @ uint * * * * * * * * * * DtoSymbolAddress ('base' of type 'uint') * * * * * * * * * * * function param * * * * * * * * * * * type: uint * * * * * * * * * IntegerExp::toElem: 8u @ uint * * * * * * * * * * IntegerExp::toConstElem: 8u @ uint * * * * * * * * * * * value = i32 8 * * * * * * * * * integral or pointer or interface * * * * * * * * * lv: %69 = load i32, i32* %base * * * * * * * * * rv: i32 8 * * * * * * * * CallExp::toElem: fs.flHash() @ bool * * * * * * * * * DotVarExp::toElem: fs.flHash @ const pure nothrow @nogc @property @safe bool() * * * * * * * * * * VarExp::toElem: fs @ FormatSpec!char * * * * * * * * * * * DtoSymbolAddress ('fs' of type 'FormatSpec!char') * * * * * * * * * * * * function param * * * * * * * * * * * * type: FormatSpec!char * * * * * * * * * * isMember = this is: FormatSpec!char * * * * * * * * * * DtoFunctionType(const pure nothrow @nogc @property @safe bool()) * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * Final function type: i1 (%"std.format.FormatSpec!char.FormatSpec"*) * * * * * * * * * * DtoResolveFunction(std.format.FormatSpec!char.FormatSpec.flHash): /usr/include/dlang/ldc/std/format.d-mixin-721(729) * * * * * * * * * * * DtoDeclareFunction(std.format.FormatSpec!char.FormatSpec.flHash): /usr/include/dlang/ldc/std/format.d-mixin-721(729) * * * * * * * * * * * * isMember = this is: FormatSpec!char * * * * * * * * * * * * DtoFunctionType(const pure nothrow @nogc @property @safe bool()) * * * * * * * * * * * * func = declare i1 @_D3std6format18__T10FormatSpecTaZ10FormatSpec6flHashMxFNaNbNdNiNfZb(%"std.format.FormatSpec!char.FormatSpec"*) * * * * * * * * * DtoCallFunction() * * * * * * * * * * Building type: const pure nothrow @nogc @property @safe bool() * * * * * * * * * * * DtoFunctionType(const pure nothrow @nogc @property @safe bool()) * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * Final function type: i1 () * * * * * * * * * * doing normal arguments * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * %"std.format.FormatSpec!char.FormatSpec"* %fs_arg * * * * * * * * * * Function type: const pure nothrow @nogc @property @safe bool() * * * * * * * CmpExp::toElem: cast(ulong)fs.precision <= digits.length @ bool * * * * * * * * CastExp::toElem: cast(ulong)fs.precision @ ulong * * * * * * * * * DotVarExp::toElem: fs.precision @ int * * * * * * * * * * VarExp::toElem: fs @ FormatSpec!char * * * * * * * * * * * DtoSymbolAddress ('fs' of type 'FormatSpec!char') * * * * * * * * * * * * function param * * * * * * * * * * * * type: FormatSpec!char * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.precision: * * * * * * * * * * * Value: %72 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %fs_arg, i32 0, i32 1 * * * * * * * * * Casting from 'int' to 'ulong' * * * * * * * * * * cast to: i64 * * * * * * * * ArrayLengthExp::toElem: digits.length @ ulong * * * * * * * * * VarExp::toElem: digits @ char[] * * * * * * * * * * DtoSymbolAddress ('digits' of type 'char[]') * * * * * * * * * * * a normal variable * * * * * * * * * DtoArrayLen * * * * * * * * type 1: %74 = sext i32 %73 to i64 * * * * * * * * type 2: %.len = load i64, i64* %75 * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1529) * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1531) * * * * * * * * AssignExp::toElem: forcedPrefix = '0' | (char)(char = char) * * * * * * * * * VarExp::toElem: forcedPrefix @ char * * * * * * * * * * DtoSymbolAddress ('forcedPrefix' of type 'char') * * * * * * * * * * * a normal variable * * * * * * * * * IntegerExp::toElem: '0' @ char * * * * * * * * * * IntegerExp::toConstElem: '0' @ char * * * * * * * * * * * value = i8 48 * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * DtoAssign() * * * * * * * * * * lhs: %forcedPrefix = alloca i8, align 1 * * * * * * * * * * rhs: i8 48 * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1536) * * * * * * DeclarationExp::toElem: long spacesToPrint = cast(long)(cast(ulong)fs.width - digits.length - cast(ulong)cast(int)(cast(int)forcedPrefix != 0) - (base == 16u && fs.flHash() && arg ? 2LU : 0LU)); | T=void * * * * * * * DtoDeclarationExp: spacesToPrint * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = long) * * * * * * * * * llvm value for decl: %spacesToPrint = alloca i64, align 8 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: spacesToPrint = cast(long)(cast(ulong)fs.width - digits.length - cast(ulong)cast(int)(cast(int)forcedPrefix != 0) - (base == 16u && fs.flHash() && arg ? 2LU : 0LU)) | (long)(long = long) * * * * * * * * * * VarExp::toElem: spacesToPrint @ long * * * * * * * * * * * DtoSymbolAddress ('spacesToPrint' of type 'long') * * * * * * * * * * * * a normal variable * * * * * * * * * * CastExp::toElem: cast(long)(cast(ulong)fs.width - digits.length - cast(ulong)cast(int)(cast(int)forcedPrefix != 0) - (base == 16u && fs.flHash() && arg ? 2LU : 0LU)) @ long * * * * * * * * * * * MinExp::toElem: cast(ulong)fs.width - digits.length - cast(ulong)cast(int)(cast(int)forcedPrefix != 0) - (base == 16u && fs.flHash() && arg ? 2LU : 0LU) @ ulong * * * * * * * * * * * * MinExp::toElem: cast(ulong)fs.width - digits.length - cast(ulong)cast(int)(cast(int)forcedPrefix != 0) @ ulong * * * * * * * * * * * * * MinExp::toElem: cast(ulong)fs.width - digits.length @ ulong * * * * * * * * * * * * * * CastExp::toElem: cast(ulong)fs.width @ ulong * * * * * * * * * * * * * * * DotVarExp::toElem: fs.width @ int * * * * * * * * * * * * * * * * VarExp::toElem: fs @ FormatSpec!char * * * * * * * * * * * * * * * * * DtoSymbolAddress ('fs' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * type: FormatSpec!char * * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.width: * * * * * * * * * * * * * * * * * Value: %77 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %fs_arg, i32 0, i32 0 * * * * * * * * * * * * * * * Casting from 'int' to 'ulong' * * * * * * * * * * * * * * * * cast to: i64 * * * * * * * * * * * * * * ArrayLengthExp::toElem: digits.length @ ulong * * * * * * * * * * * * * * * VarExp::toElem: digits @ char[] * * * * * * * * * * * * * * * * DtoSymbolAddress ('digits' of type 'char[]') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * CastExp::toElem: cast(ulong)cast(int)(cast(int)forcedPrefix != 0) @ ulong * * * * * * * * * * * * * * CastExp::toElem: cast(int)(cast(int)forcedPrefix != 0) @ int * * * * * * * * * * * * * * * EqualExp::toElem: cast(int)forcedPrefix != 0 @ bool * * * * * * * * * * * * * * * * CastExp::toElem: cast(int)forcedPrefix @ int * * * * * * * * * * * * * * * * * VarExp::toElem: forcedPrefix @ char * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('forcedPrefix' of type 'char') * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * Casting from 'char' to 'int' * * * * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * * * * * IntegerExp::toElem: 0 @ int * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0 @ int * * * * * * * * * * * * * * * * * * value = i32 0 * * * * * * * * * * * * * * * * integral or pointer or interface * * * * * * * * * * * * * * * * lv: %83 = zext i8 %82 to i32 * * * * * * * * * * * * * * * * rv: i32 0 * * * * * * * * * * * * * * * Casting from 'bool' to 'int' * * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * * * Casting from 'int' to 'ulong' * * * * * * * * * * * * * * * cast to: i64 * * * * * * * * * * * * CondExp::toElem: base == 16u && fs.flHash() && arg ? 2LU : 0LU @ ulong * * * * * * * * * * * * * AndAndExp::toElem: base == 16u && fs.flHash() && arg @ bool * * * * * * * * * * * * * * AndAndExp::toElem: base == 16u && fs.flHash() @ bool * * * * * * * * * * * * * * * EqualExp::toElem: base == 16u @ bool * * * * * * * * * * * * * * * * VarExp::toElem: base @ uint * * * * * * * * * * * * * * * * * DtoSymbolAddress ('base' of type 'uint') * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * type: uint * * * * * * * * * * * * * * * * IntegerExp::toElem: 16u @ uint * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 16u @ uint * * * * * * * * * * * * * * * * * * value = i32 16 * * * * * * * * * * * * * * * * integral or pointer or interface * * * * * * * * * * * * * * * * lv: %88 = load i32, i32* %base * * * * * * * * * * * * * * * * rv: i32 16 * * * * * * * * * * * * * * * CallExp::toElem: fs.flHash() @ bool * * * * * * * * * * * * * * * * DotVarExp::toElem: fs.flHash @ const pure nothrow @nogc @property @safe bool() * * * * * * * * * * * * * * * * * VarExp::toElem: fs @ FormatSpec!char * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('fs' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * type: FormatSpec!char * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * %"std.format.FormatSpec!char.FormatSpec"* %fs_arg * * * * * * * * * * * * * * * * * Function type: const pure nothrow @nogc @property @safe bool() * * * * * * * * * * * * * * VarExp::toElem: arg @ ulong * * * * * * * * * * * * * * * DtoSymbolAddress ('arg' of type 'ulong') * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * type: ulong * * * * * * * * * * * * * * Casting from 'ulong' to 'bool' * * * * * * * * * * * * * IntegerExp::toElem: 2LU @ ulong * * * * * * * * * * * * * * IntegerExp::toConstElem: 2LU @ ulong * * * * * * * * * * * * * * * value = i64 2 * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * Casting from 'ulong' to 'long' * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %spacesToPrint = alloca i64, align 8 * * * * * * * * * * * rhs: %92 = sub i64 %87, %91 * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1541) * * * * * * DeclarationExp::toElem: const const(long) delta = cast(const(long))(cast(ulong)fs.precision - digits.length); | T=void * * * * * * * DtoDeclarationExp: delta * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = const(long)) * * * * * * * * * llvm value for decl: %delta = alloca i64, align 8 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: delta = cast(const(long))(cast(ulong)fs.precision - digits.length) | (const(long))(const(long) = const(long)) * * * * * * * * * * VarExp::toElem: delta @ const(long) * * * * * * * * * * * DtoSymbolAddress ('delta' of type 'const(long)') * * * * * * * * * * * * a normal variable * * * * * * * * * * CastExp::toElem: cast(const(long))(cast(ulong)fs.precision - digits.length) @ const(long) * * * * * * * * * * * MinExp::toElem: cast(ulong)fs.precision - digits.length @ ulong * * * * * * * * * * * * CastExp::toElem: cast(ulong)fs.precision @ ulong * * * * * * * * * * * * * DotVarExp::toElem: fs.precision @ int * * * * * * * * * * * * * * VarExp::toElem: fs @ FormatSpec!char * * * * * * * * * * * * * * * DtoSymbolAddress ('fs' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * type: FormatSpec!char * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.precision: * * * * * * * * * * * * * * * Value: %93 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %fs_arg, i32 0, i32 1 * * * * * * * * * * * * * Casting from 'int' to 'ulong' * * * * * * * * * * * * * * cast to: i64 * * * * * * * * * * * * ArrayLengthExp::toElem: digits.length @ ulong * * * * * * * * * * * * * VarExp::toElem: digits @ char[] * * * * * * * * * * * * * * DtoSymbolAddress ('digits' of type 'char[]') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * Casting from 'ulong' to 'const(long)' * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %delta = alloca i64, align 8 * * * * * * * * * * * rhs: %97 = sub i64 %95, %.len58 * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1542) * * * * * * CmpExp::toElem: delta > 0L @ bool * * * * * * * VarExp::toElem: delta @ long * * * * * * * * DtoSymbolAddress ('delta' of type 'const(long)') * * * * * * * * * a normal variable * * * * * * * IntegerExp::toElem: 0L @ long * * * * * * * * IntegerExp::toConstElem: 0L @ long * * * * * * * * * value = i64 0 * * * * * * * type 1: %98 = load i64, i64* %delta * * * * * * * type 2: i64 0 * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1542) * * * * * * * MinAssignExp::toElem: spacesToPrint -= delta @ long * * * * * * * * Caching l-value of spacesToPrint -= delta => spacesToPrint * * * * * * * * * VarExp::toElem: spacesToPrint @ long * * * * * * * * * * DtoSymbolAddress ('spacesToPrint' of type 'long') * * * * * * * * * * * a normal variable * * * * * * * * MinExp::toElem: spacesToPrint - delta @ long * * * * * * * * * VarExp::toElem: spacesToPrint @ long * * * * * * * * * VarExp::toElem: delta @ long * * * * * * * * * * DtoSymbolAddress ('delta' of type 'const(long)') * * * * * * * * * * * a normal variable * * * * * * * * DtoAssign() * * * * * * * * * lhs: %spacesToPrint = alloca i64, align 8 * * * * * * * * * rhs: %105 = sub i64 %103, %104 * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1543) * * * * * * CmpExp::toElem: spacesToPrint > 0L @ bool * * * * * * * VarExp::toElem: spacesToPrint @ long * * * * * * * * DtoSymbolAddress ('spacesToPrint' of type 'long') * * * * * * * * * a normal variable * * * * * * * IntegerExp::toElem: 0L @ long * * * * * * * * IntegerExp::toConstElem: 0L @ long * * * * * * * * * value = i64 0 * * * * * * * type 1: %106 = load i64, i64* %spacesToPrint * * * * * * * type 2: i64 0 * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1544) * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1545) * * * * * * * * EqualExp::toElem: cast(int)leftPad == 48 @ bool * * * * * * * * * CastExp::toElem: cast(int)leftPad @ int * * * * * * * * * * VarExp::toElem: leftPad @ char * * * * * * * * * * * DtoSymbolAddress ('leftPad' of type 'char') * * * * * * * * * * * * a normal variable * * * * * * * * * * Casting from 'char' to 'int' * * * * * * * * * * * cast to: i32 * * * * * * * * * IntegerExp::toElem: 48 @ int * * * * * * * * * * IntegerExp::toConstElem: 48 @ int * * * * * * * * * * * value = i32 48 * * * * * * * * * integral or pointer or interface * * * * * * * * * lv: %109 = zext i8 %108 to i32 * * * * * * * * * rv: i32 48 * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1546) * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1549) * * * * * * * * * * AssignExp::toElem: fs.precision = cast(int)(cast(ulong)spacesToPrint + digits.length) | (int)(int = int) * * * * * * * * * * * DotVarExp::toElem: fs.precision @ int * * * * * * * * * * * * VarExp::toElem: fs @ FormatSpec!char * * * * * * * * * * * * * DtoSymbolAddress ('fs' of type 'FormatSpec!char') * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * type: FormatSpec!char * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.precision: * * * * * * * * * * * * * Value: %111 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %fs_arg, i32 0, i32 1 * * * * * * * * * * * CastExp::toElem: cast(int)(cast(ulong)spacesToPrint + digits.length) @ int * * * * * * * * * * * * AddExp::toElem: cast(ulong)spacesToPrint + digits.length @ ulong * * * * * * * * * * * * * CastExp::toElem: cast(ulong)spacesToPrint @ ulong * * * * * * * * * * * * * * VarExp::toElem: spacesToPrint @ long * * * * * * * * * * * * * * * DtoSymbolAddress ('spacesToPrint' of type 'long') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * Casting from 'long' to 'ulong' * * * * * * * * * * * * * ArrayLengthExp::toElem: digits.length @ ulong * * * * * * * * * * * * * * VarExp::toElem: digits @ char[] * * * * * * * * * * * * * * * DtoSymbolAddress ('digits' of type 'char[]') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * Casting from 'ulong' to 'int' * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * lhs: %111 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %fs_arg, i32 0, i32 1 * * * * * * * * * * * * rhs: %115 = trunc i64 %114 to i32 * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1553) * * * * * * * * * VarExp::toElem: leftPad @ char * * * * * * * * * * DtoSymbolAddress ('leftPad' of type 'char') * * * * * * * * * * * a normal variable * * * * * * * * * if conditional: %116 = load i8, i8* %leftPad * * * * * * * * * Casting from 'char' to 'bool' * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1553) * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1553) * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1553) * * * * * * * * * * * * DeclarationExp::toElem: long __key3217 = 0L; | T=void * * * * * * * * * * * * * DtoDeclarationExp: __key3217 * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = long) * * * * * * * * * * * * * * * llvm value for decl: %__key3217 = alloca i64, align 8 * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * AssignExp::toElem: __key3217 = 0L | (long)(long = long) * * * * * * * * * * * * * * * * VarExp::toElem: __key3217 @ long * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__key3217' of type 'long') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * IntegerExp::toElem: 0L @ long * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0L @ long * * * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * lhs: %__key3217 = alloca i64, align 8 * * * * * * * * * * * * * * * * * rhs: i64 0 * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1553) * * * * * * * * * * * * DeclarationExp::toElem: long __limit3218 = spacesToPrint; | T=void * * * * * * * * * * * * * DtoDeclarationExp: __limit3218 * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = long) * * * * * * * * * * * * * * * llvm value for decl: %__limit3218 = alloca i64, align 8 * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * AssignExp::toElem: __limit3218 = spacesToPrint | (long)(long = long) * * * * * * * * * * * * * * * * VarExp::toElem: __limit3218 @ long * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__limit3218' of type 'long') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * VarExp::toElem: spacesToPrint @ long * * * * * * * * * * * * * * * * * DtoSymbolAddress ('spacesToPrint' of type 'long') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * lhs: %__limit3218 = alloca i64, align 8 * * * * * * * * * * * * * * * * * rhs: %119 = load i64, i64* %spacesToPrint * * * * * * * * * * * ForStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1553) * * * * * * * * * * * * CmpExp::toElem: __key3217 < __limit3218 @ bool * * * * * * * * * * * * * VarExp::toElem: __key3217 @ long * * * * * * * * * * * * * * DtoSymbolAddress ('__key3217' of type 'long') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * VarExp::toElem: __limit3218 @ long * * * * * * * * * * * * * * DtoSymbolAddress ('__limit3218' of type 'long') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * type 1: %120 = load i64, i64* %__key3217 * * * * * * * * * * * * * type 2: %121 = load i64, i64* %__limit3218 * * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1553) * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1553) * * * * * * * * * * * * * * DeclarationExp::toElem: long i = __key3217; | T=void * * * * * * * * * * * * * * * DtoDeclarationExp: i * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = long) * * * * * * * * * * * * * * * * * llvm value for decl: %i69 = alloca i64, align 8 * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * AssignExp::toElem: i = __key3217 | (long)(long = long) * * * * * * * * * * * * * * * * * * VarExp::toElem: i @ long * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'long') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * VarExp::toElem: __key3217 @ long * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__key3217' of type 'long') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * lhs: %i69 = alloca i64, align 8 * * * * * * * * * * * * * * * * * * * rhs: %123 = load i64, i64* %__key3217 * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1553) * * * * * * * * * * * * * * CallExp::toElem: put(w, ' ') @ void * * * * * * * * * * * * * * * VarExp::toElem: put @ @safe void(ref MsgRange r, char e) * * * * * * * * * * * * * * * * DtoSymbolAddress ('put' of type '@safe void(ref MsgRange r, char e)') * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * Function type: @safe void(ref MsgRange r, char e) * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * VarExp::toElem: w @ MsgRange * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'MsgRange') * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * type: MsgRange * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * IntegerExp::toElem: ' ' @ char * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: ' ' @ char * * * * * * * * * * * * * * * * * * * value = i8 32 * * * * * * * * * * * * AddAssignExp::toElem: __key3217 += 1L @ long * * * * * * * * * * * * * Caching l-value of __key3217 += 1L => __key3217 * * * * * * * * * * * * * * VarExp::toElem: __key3217 @ long * * * * * * * * * * * * * * * DtoSymbolAddress ('__key3217' of type 'long') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * AddExp::toElem: __key3217 + 1L @ long * * * * * * * * * * * * * * VarExp::toElem: __key3217 @ long * * * * * * * * * * * * * * IntegerExp::toElem: 1L @ long * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1L @ long * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * lhs: %__key3217 = alloca i64, align 8 * * * * * * * * * * * * * * rhs: %125 = add i64 %124, 1 * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1556) * * * * * * VarExp::toElem: forcedPrefix @ char * * * * * * * DtoSymbolAddress ('forcedPrefix' of type 'char') * * * * * * * * a normal variable * * * * * * if conditional: %111 = load i8, i8* %forcedPrefix * * * * * * Casting from 'char' to 'bool' * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1556) * * * * * * * CallExp::toElem: put(w, forcedPrefix) @ void * * * * * * * * VarExp::toElem: put @ @safe void(ref MsgRange r, char e) * * * * * * * * * DtoSymbolAddress ('put' of type '@safe void(ref MsgRange r, char e)') * * * * * * * * * * FuncDeclaration * * * * * * * * DtoCallFunction() * * * * * * * * * doing normal arguments * * * * * * * * * Arguments so far: (0) * * * * * * * * * Function type: @safe void(ref MsgRange r, char e) * * * * * * * * * DtoArgument * * * * * * * * * * VarExp::toElem: w @ MsgRange * * * * * * * * * * * DtoSymbolAddress ('w' of type 'MsgRange') * * * * * * * * * * * * function param * * * * * * * * * * * * type: MsgRange * * * * * * * * * DtoArgument * * * * * * * * * * VarExp::toElem: forcedPrefix @ char * * * * * * * * * * * DtoSymbolAddress ('forcedPrefix' of type 'char') * * * * * * * * * * * * a normal variable * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1558) * * * * * * AndAndExp::toElem: base == 16u && fs.flHash() && arg @ bool * * * * * * * AndAndExp::toElem: base == 16u && fs.flHash() @ bool * * * * * * * * EqualExp::toElem: base == 16u @ bool * * * * * * * * * VarExp::toElem: base @ uint * * * * * * * * * * DtoSymbolAddress ('base' of type 'uint') * * * * * * * * * * * function param * * * * * * * * * * * type: uint * * * * * * * * * IntegerExp::toElem: 16u @ uint * * * * * * * * * * IntegerExp::toConstElem: 16u @ uint * * * * * * * * * * * value = i32 16 * * * * * * * * * integral or pointer or interface * * * * * * * * * lv: %130 = load i32, i32* %base * * * * * * * * * rv: i32 16 * * * * * * * * CallExp::toElem: fs.flHash() @ bool * * * * * * * * * DotVarExp::toElem: fs.flHash @ const pure nothrow @nogc @property @safe bool() * * * * * * * * * * VarExp::toElem: fs @ FormatSpec!char * * * * * * * * * * * DtoSymbolAddress ('fs' of type 'FormatSpec!char') * * * * * * * * * * * * function param * * * * * * * * * * * * type: FormatSpec!char * * * * * * * * * DtoCallFunction() * * * * * * * * * * doing normal arguments * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * %"std.format.FormatSpec!char.FormatSpec"* %fs_arg * * * * * * * * * * Function type: const pure nothrow @nogc @property @safe bool() * * * * * * * VarExp::toElem: arg @ ulong * * * * * * * * DtoSymbolAddress ('arg' of type 'ulong') * * * * * * * * * function param * * * * * * * * * type: ulong * * * * * * * Casting from 'ulong' to 'bool' * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1558) * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1558) * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1561) * * * * * * * * * CallExp::toElem: put(w, '0') @ void * * * * * * * * * * VarExp::toElem: put @ @safe void(ref MsgRange r, char e) * * * * * * * * * * * DtoSymbolAddress ('put' of type '@safe void(ref MsgRange r, char e)') * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * doing normal arguments * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * Function type: @safe void(ref MsgRange r, char e) * * * * * * * * * * * DtoArgument * * * * * * * * * * * * VarExp::toElem: w @ MsgRange * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'MsgRange') * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * type: MsgRange * * * * * * * * * * * DtoArgument * * * * * * * * * * * * IntegerExp::toElem: '0' @ char * * * * * * * * * * * * * IntegerExp::toConstElem: '0' @ char * * * * * * * * * * * * * * value = i8 48 * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1562) * * * * * * * * * CallExp::toElem: put(w, cast(int)fs.spec == 120 ? 'x' : 'X') @ void * * * * * * * * * * VarExp::toElem: put @ @safe void(ref MsgRange r, char e) * * * * * * * * * * * DtoSymbolAddress ('put' of type '@safe void(ref MsgRange r, char e)') * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * doing normal arguments * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * Function type: @safe void(ref MsgRange r, char e) * * * * * * * * * * * DtoArgument * * * * * * * * * * * * VarExp::toElem: w @ MsgRange * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'MsgRange') * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * type: MsgRange * * * * * * * * * * * DtoArgument * * * * * * * * * * * * CondExp::toElem: cast(int)fs.spec == 120 ? 'x' : 'X' @ char * * * * * * * * * * * * * EqualExp::toElem: cast(int)fs.spec == 120 @ bool * * * * * * * * * * * * * * CastExp::toElem: cast(int)fs.spec @ int * * * * * * * * * * * * * * * DotVarExp::toElem: fs.spec @ char * * * * * * * * * * * * * * * * VarExp::toElem: fs @ FormatSpec!char * * * * * * * * * * * * * * * * * DtoSymbolAddress ('fs' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * type: FormatSpec!char * * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.spec: * * * * * * * * * * * * * * * * * Value: %135 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %fs_arg, i32 0, i32 2 * * * * * * * * * * * * * * * Casting from 'char' to 'int' * * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * * * IntegerExp::toElem: 120 @ int * * * * * * * * * * * * * * * IntegerExp::toConstElem: 120 @ int * * * * * * * * * * * * * * * * value = i32 120 * * * * * * * * * * * * * * integral or pointer or interface * * * * * * * * * * * * * * lv: %137 = zext i8 %136 to i32 * * * * * * * * * * * * * * rv: i32 120 * * * * * * * * * * * * * IntegerExp::toElem: 'x' @ char * * * * * * * * * * * * * * IntegerExp::toConstElem: 'x' @ char * * * * * * * * * * * * * * * value = i8 120 * * * * * * * * * * * * * IntegerExp::toElem: 'X' @ char * * * * * * * * * * * * * * IntegerExp::toConstElem: 'X' @ char * * * * * * * * * * * * * * * value = i8 88 * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1565) * * * * * * OrOrExp::toElem: arg || fs.precision @ bool * * * * * * * VarExp::toElem: arg @ ulong * * * * * * * * DtoSymbolAddress ('arg' of type 'ulong') * * * * * * * * * function param * * * * * * * * * type: ulong * * * * * * * Casting from 'ulong' to 'bool' * * * * * * * DotVarExp::toElem: fs.precision @ int * * * * * * * * VarExp::toElem: fs @ FormatSpec!char * * * * * * * * * DtoSymbolAddress ('fs' of type 'FormatSpec!char') * * * * * * * * * * function param * * * * * * * * * * type: FormatSpec!char * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.precision: * * * * * * * * * Value: %143 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %fs_arg, i32 0, i32 1 * * * * * * * Casting from 'int' to 'bool' * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1566) * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1566) * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1567) * * * * * * * * * DeclarationExp::toElem: long zerosToPrint = cast(long)(cast(ulong)fs.precision - digits.length); | T=void * * * * * * * * * * DtoDeclarationExp: zerosToPrint * * * * * * * * * * * VarDeclaration * * * * * * * * * * * DtoVarDeclaration(vdtype = long) * * * * * * * * * * * * llvm value for decl: %zerosToPrint = alloca i64, align 8 * * * * * * * * * * * * expression initializer * * * * * * * * * * * * AssignExp::toElem: zerosToPrint = cast(long)(cast(ulong)fs.precision - digits.length) | (long)(long = long) * * * * * * * * * * * * * VarExp::toElem: zerosToPrint @ long * * * * * * * * * * * * * * DtoSymbolAddress ('zerosToPrint' of type 'long') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * CastExp::toElem: cast(long)(cast(ulong)fs.precision - digits.length) @ long * * * * * * * * * * * * * * MinExp::toElem: cast(ulong)fs.precision - digits.length @ ulong * * * * * * * * * * * * * * * CastExp::toElem: cast(ulong)fs.precision @ ulong * * * * * * * * * * * * * * * * DotVarExp::toElem: fs.precision @ int * * * * * * * * * * * * * * * * * VarExp::toElem: fs @ FormatSpec!char * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('fs' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * type: FormatSpec!char * * * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.precision: * * * * * * * * * * * * * * * * * * Value: %146 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %fs_arg, i32 0, i32 1 * * * * * * * * * * * * * * * * Casting from 'int' to 'ulong' * * * * * * * * * * * * * * * * * cast to: i64 * * * * * * * * * * * * * * * ArrayLengthExp::toElem: digits.length @ ulong * * * * * * * * * * * * * * * * VarExp::toElem: digits @ char[] * * * * * * * * * * * * * * * * * DtoSymbolAddress ('digits' of type 'char[]') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * Casting from 'ulong' to 'long' * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * lhs: %zerosToPrint = alloca i64, align 8 * * * * * * * * * * * * * * rhs: %150 = sub i64 %148, %.len88 * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1568) * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1568) * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1568) * * * * * * * * * * * DeclarationExp::toElem: long __key3219 = 0L; | T=void * * * * * * * * * * * * DtoDeclarationExp: __key3219 * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * DtoVarDeclaration(vdtype = long) * * * * * * * * * * * * * * llvm value for decl: %__key3219 = alloca i64, align 8 * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * AssignExp::toElem: __key3219 = 0L | (long)(long = long) * * * * * * * * * * * * * * * VarExp::toElem: __key3219 @ long * * * * * * * * * * * * * * * * DtoSymbolAddress ('__key3219' of type 'long') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * IntegerExp::toElem: 0L @ long * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0L @ long * * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * lhs: %__key3219 = alloca i64, align 8 * * * * * * * * * * * * * * * * rhs: i64 0 * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1568) * * * * * * * * * * * DeclarationExp::toElem: long __limit3220 = zerosToPrint; | T=void * * * * * * * * * * * * DtoDeclarationExp: __limit3220 * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * DtoVarDeclaration(vdtype = long) * * * * * * * * * * * * * * llvm value for decl: %__limit3220 = alloca i64, align 8 * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * AssignExp::toElem: __limit3220 = zerosToPrint | (long)(long = long) * * * * * * * * * * * * * * * VarExp::toElem: __limit3220 @ long * * * * * * * * * * * * * * * * DtoSymbolAddress ('__limit3220' of type 'long') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * VarExp::toElem: zerosToPrint @ long * * * * * * * * * * * * * * * * DtoSymbolAddress ('zerosToPrint' of type 'long') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * lhs: %__limit3220 = alloca i64, align 8 * * * * * * * * * * * * * * * * rhs: %151 = load i64, i64* %zerosToPrint * * * * * * * * * * ForStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1568) * * * * * * * * * * * CmpExp::toElem: __key3219 < __limit3220 @ bool * * * * * * * * * * * * VarExp::toElem: __key3219 @ long * * * * * * * * * * * * * DtoSymbolAddress ('__key3219' of type 'long') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * VarExp::toElem: __limit3220 @ long * * * * * * * * * * * * * DtoSymbolAddress ('__limit3220' of type 'long') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * type 1: %152 = load i64, i64* %__key3219 * * * * * * * * * * * * type 2: %153 = load i64, i64* %__limit3220 * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1568) * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1568) * * * * * * * * * * * * * DeclarationExp::toElem: long i = __key3219; | T=void * * * * * * * * * * * * * * DtoDeclarationExp: i * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = long) * * * * * * * * * * * * * * * * llvm value for decl: %i93 = alloca i64, align 8 * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * AssignExp::toElem: i = __key3219 | (long)(long = long) * * * * * * * * * * * * * * * * * VarExp::toElem: i @ long * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'long') * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * VarExp::toElem: __key3219 @ long * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__key3219' of type 'long') * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * lhs: %i93 = alloca i64, align 8 * * * * * * * * * * * * * * * * * * rhs: %155 = load i64, i64* %__key3219 * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1568) * * * * * * * * * * * * * CallExp::toElem: put(w, '0') @ void * * * * * * * * * * * * * * VarExp::toElem: put @ @safe void(ref MsgRange r, char e) * * * * * * * * * * * * * * * DtoSymbolAddress ('put' of type '@safe void(ref MsgRange r, char e)') * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * Function type: @safe void(ref MsgRange r, char e) * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * VarExp::toElem: w @ MsgRange * * * * * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'MsgRange') * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * type: MsgRange * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * IntegerExp::toElem: '0' @ char * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: '0' @ char * * * * * * * * * * * * * * * * * * value = i8 48 * * * * * * * * * * * AddAssignExp::toElem: __key3219 += 1L @ long * * * * * * * * * * * * Caching l-value of __key3219 += 1L => __key3219 * * * * * * * * * * * * * VarExp::toElem: __key3219 @ long * * * * * * * * * * * * * * DtoSymbolAddress ('__key3219' of type 'long') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * AddExp::toElem: __key3219 + 1L @ long * * * * * * * * * * * * * VarExp::toElem: __key3219 @ long * * * * * * * * * * * * * IntegerExp::toElem: 1L @ long * * * * * * * * * * * * * * IntegerExp::toConstElem: 1L @ long * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * lhs: %__key3219 = alloca i64, align 8 * * * * * * * * * * * * * rhs: %157 = add i64 %156, 1 * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1569) * * * * * * * * * CallExp::toElem: put(w, digits) @ void * * * * * * * * * * VarExp::toElem: put @ @safe void(ref MsgRange r, char[] e) * * * * * * * * * * * DtoSymbolAddress ('put' of type '@safe void(ref MsgRange r, char[] e)') * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * DtoFunctionType(@safe void(ref MsgRange r, char[] e)) * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * Final function type: void ({ i64, i8* }, %std.experimental.logger.core.MsgRange*) * * * * * * * * * * * * DtoResolveFunction(std.range.primitives.put!(MsgRange, char[]).put): /usr/include/dlang/ldc/std/range/primitives.d(277) * * * * * * * * * * * * * DtoDeclareFunction(std.range.primitives.put!(MsgRange, char[]).put): /usr/include/dlang/ldc/std/range/primitives.d(277) * * * * * * * * * * * * * * DtoFunctionType(@safe void(ref MsgRange r, char[] e)) * * * * * * * * * * * * * * func = declare void @_D3std5range10primitives52__T3putTS3std12experimental6logger4core8MsgRangeTAaZ3putFNfKS3std12experimental6logger4core8MsgRangeAaZv({ i64, i8* }, %std.experimental.logger.core.MsgRange*) * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * Building type: @safe void(ref MsgRange r, char[] e) * * * * * * * * * * * * DtoFunctionType(@safe void(ref MsgRange r, char[] e)) * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * Final function type: void ({ i64, i8* }, %std.experimental.logger.core.MsgRange*) * * * * * * * * * * * doing normal arguments * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * Function type: @safe void(ref MsgRange r, char[] e) * * * * * * * * * * * DtoArgument * * * * * * * * * * * * VarExp::toElem: w @ MsgRange * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'MsgRange') * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * type: MsgRange * * * * * * * * * * * DtoArgument * * * * * * * * * * * * VarExp::toElem: digits @ char[] * * * * * * * * * * * * * DtoSymbolAddress ('digits' of type 'char[]') * * * * * * * * * * * * * * a normal variable * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1572) * * * * * * NotExp::toElem: !leftPad @ bool * * * * * * * VarExp::toElem: leftPad @ char * * * * * * * * DtoSymbolAddress ('leftPad' of type 'char') * * * * * * * * * a normal variable * * * * * * * Casting from 'char' to 'bool' * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1572) * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1572) * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1572) * * * * * * * * * DeclarationExp::toElem: long __key3221 = 0L; | T=void * * * * * * * * * * DtoDeclarationExp: __key3221 * * * * * * * * * * * VarDeclaration * * * * * * * * * * * DtoVarDeclaration(vdtype = long) * * * * * * * * * * * * llvm value for decl: %__key3221 = alloca i64, align 8 * * * * * * * * * * * * expression initializer * * * * * * * * * * * * AssignExp::toElem: __key3221 = 0L | (long)(long = long) * * * * * * * * * * * * * VarExp::toElem: __key3221 @ long * * * * * * * * * * * * * * DtoSymbolAddress ('__key3221' of type 'long') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * IntegerExp::toElem: 0L @ long * * * * * * * * * * * * * * IntegerExp::toConstElem: 0L @ long * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * lhs: %__key3221 = alloca i64, align 8 * * * * * * * * * * * * * * rhs: i64 0 * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1572) * * * * * * * * * DeclarationExp::toElem: long __limit3222 = spacesToPrint; | T=void * * * * * * * * * * DtoDeclarationExp: __limit3222 * * * * * * * * * * * VarDeclaration * * * * * * * * * * * DtoVarDeclaration(vdtype = long) * * * * * * * * * * * * llvm value for decl: %__limit3222 = alloca i64, align 8 * * * * * * * * * * * * expression initializer * * * * * * * * * * * * AssignExp::toElem: __limit3222 = spacesToPrint | (long)(long = long) * * * * * * * * * * * * * VarExp::toElem: __limit3222 @ long * * * * * * * * * * * * * * DtoSymbolAddress ('__limit3222' of type 'long') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * VarExp::toElem: spacesToPrint @ long * * * * * * * * * * * * * * DtoSymbolAddress ('spacesToPrint' of type 'long') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * lhs: %__limit3222 = alloca i64, align 8 * * * * * * * * * * * * * * rhs: %162 = load i64, i64* %spacesToPrint * * * * * * * * ForStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1572) * * * * * * * * * CmpExp::toElem: __key3221 < __limit3222 @ bool * * * * * * * * * * VarExp::toElem: __key3221 @ long * * * * * * * * * * * DtoSymbolAddress ('__key3221' of type 'long') * * * * * * * * * * * * a normal variable * * * * * * * * * * VarExp::toElem: __limit3222 @ long * * * * * * * * * * * DtoSymbolAddress ('__limit3222' of type 'long') * * * * * * * * * * * * a normal variable * * * * * * * * * * type 1: %163 = load i64, i64* %__key3221 * * * * * * * * * * type 2: %164 = load i64, i64* %__limit3222 * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1572) * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1572) * * * * * * * * * * * DeclarationExp::toElem: long i = __key3221; | T=void * * * * * * * * * * * * DtoDeclarationExp: i * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * DtoVarDeclaration(vdtype = long) * * * * * * * * * * * * * * llvm value for decl: %i100 = alloca i64, align 8 * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * AssignExp::toElem: i = __key3221 | (long)(long = long) * * * * * * * * * * * * * * * VarExp::toElem: i @ long * * * * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'long') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * VarExp::toElem: __key3221 @ long * * * * * * * * * * * * * * * * DtoSymbolAddress ('__key3221' of type 'long') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * lhs: %i100 = alloca i64, align 8 * * * * * * * * * * * * * * * * rhs: %166 = load i64, i64* %__key3221 * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1572) * * * * * * * * * * * CallExp::toElem: put(w, ' ') @ void * * * * * * * * * * * * VarExp::toElem: put @ @safe void(ref MsgRange r, char e) * * * * * * * * * * * * * DtoSymbolAddress ('put' of type '@safe void(ref MsgRange r, char e)') * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * Function type: @safe void(ref MsgRange r, char e) * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * VarExp::toElem: w @ MsgRange * * * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'MsgRange') * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * type: MsgRange * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * IntegerExp::toElem: ' ' @ char * * * * * * * * * * * * * * * IntegerExp::toConstElem: ' ' @ char * * * * * * * * * * * * * * * * value = i8 32 * * * * * * * * * AddAssignExp::toElem: __key3221 += 1L @ long * * * * * * * * * * Caching l-value of __key3221 += 1L => __key3221 * * * * * * * * * * * VarExp::toElem: __key3221 @ long * * * * * * * * * * * * DtoSymbolAddress ('__key3221' of type 'long') * * * * * * * * * * * * * a normal variable * * * * * * * * * * AddExp::toElem: __key3221 + 1L @ long * * * * * * * * * * * VarExp::toElem: __key3221 @ long * * * * * * * * * * * IntegerExp::toElem: 1L @ long * * * * * * * * * * * * IntegerExp::toConstElem: 1L @ long * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %__key3221 = alloca i64, align 8 * * * * * * * * * * * rhs: %168 = add i64 %167, 1 * TemplateInstance::codegen: 'std.range.primitives.put!(MsgRange, char[])' * * DtoDefineFunction(std.range.primitives.put!(MsgRange, char[]).put): /usr/include/dlang/ldc/std/range/primitives.d(277) * * * Doing function body for: put * * * DtoCreateNestedContext for put * * * * DtoCreateNestedContextType for std.range.primitives.put!(MsgRange, char[]).put * * * CompoundStatement::toIR(): * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/range/primitives.d(282) * * * * * CallExp::toElem: doPut(r, e) @ void * * * * * * VarExp::toElem: doPut @ @safe void(ref MsgRange r, auto ref char[] e) * * * * * * * DtoSymbolAddress ('doPut' of type '@safe void(ref MsgRange r, auto ref char[] e)') * * * * * * * * FuncDeclaration * * * * * * * * DtoFunctionType(@safe void(ref MsgRange r, auto ref char[] e)) * * * * * * * * * Building type: char[]* * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * Final function type: void ({ i64, i8* }*, %std.experimental.logger.core.MsgRange*) * * * * * * * * DtoResolveFunction(std.range.primitives.doPut!(MsgRange, char[]).doPut): /usr/include/dlang/ldc/std/range/primitives.d(182) * * * * * * * * * DtoDeclareFunction(std.range.primitives.doPut!(MsgRange, char[]).doPut): /usr/include/dlang/ldc/std/range/primitives.d(182) * * * * * * * * * * DtoFunctionType(@safe void(ref MsgRange r, auto ref char[] e)) * * * * * * * * * * func = declare void @_D3std5range10primitives54__T5doPutTS3std12experimental6logger4core8MsgRangeTAaZ5doPutFNfKS3std12experimental6logger4core8MsgRangeKAaZv({ i64, i8* }*, %std.experimental.logger.core.MsgRange*) * * * * * * DtoCallFunction() * * * * * * * Building type: @safe void(ref MsgRange r, auto ref char[] e) * * * * * * * * DtoFunctionType(@safe void(ref MsgRange r, auto ref char[] e)) * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * Final function type: void ({ i64, i8* }*, %std.experimental.logger.core.MsgRange*) * * * * * * * doing normal arguments * * * * * * * Arguments so far: (0) * * * * * * * Function type: @safe void(ref MsgRange r, auto ref char[] e) * * * * * * * DtoArgument * * * * * * * * VarExp::toElem: r @ MsgRange * * * * * * * * * DtoSymbolAddress ('r' of type 'MsgRange') * * * * * * * * * * function param * * * * * * * * * * type: MsgRange * * * * * * * DtoArgument * * * * * * * * VarExp::toElem: e @ char[] * * * * * * * * * DtoSymbolAddress ('e' of type 'char[]') * * * * * * * * * * function param * * * * * * * * * * type: char[] * TemplateInstance::codegen: 'std.range.primitives.doPut!(MsgRange, char[])' * * DtoDefineFunction(std.range.primitives.doPut!(MsgRange, char[]).doPut): /usr/include/dlang/ldc/std/range/primitives.d(182) * * * Doing function body for: doPut * * * DtoCreateNestedContext for doPut * * * * DtoCreateNestedContextType for std.range.primitives.doPut!(MsgRange, char[]).doPut * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/range/primitives.d(183) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/range/primitives.d(187) * * * * * * DeclarationExp::toElem: enum bool usingPut = true; | T=void * * * * * * * DtoDeclarationExp: usingPut * * * * * * * * VarDeclaration * * * * * * * * Manifest constant, nothing to do. * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/range/primitives.d(193) * * * * * * CallExp::toElem: r.put(e) @ void * * * * * * * DotVarExp::toElem: r.put @ @safe void(char[] msg) * * * * * * * * VarExp::toElem: r @ MsgRange * * * * * * * * * DtoSymbolAddress ('r' of type 'MsgRange') * * * * * * * * * * function param * * * * * * * * * * type: MsgRange * * * * * * * * isMember = this is: MsgRange * * * * * * * * DtoFunctionType(@safe void(char[] msg)) * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * Final function type: void (%std.experimental.logger.core.MsgRange*, { i64, i8* }) * * * * * * * * DtoResolveFunction(std.experimental.logger.core.MsgRange.put!(char[]).put): /usr/include/dlang/ldc/std/experimental/logger/core.d(665) * * * * * * * * * DtoDeclareFunction(std.experimental.logger.core.MsgRange.put!(char[]).put): /usr/include/dlang/ldc/std/experimental/logger/core.d(665) * * * * * * * * * * isMember = this is: MsgRange * * * * * * * * * * DtoFunctionType(@safe void(char[] msg)) * * * * * * * * * * func = declare void @_D3std12experimental6logger4core8MsgRange11__T3putTAaZ3putMFNfAaZv(%std.experimental.logger.core.MsgRange*, { i64, i8* }) * * * * * * * DtoCallFunction() * * * * * * * * Building type: @safe void(char[] msg) * * * * * * * * * DtoFunctionType(@safe void(char[] msg)) * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: void ({ i64, i8* }) * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (1) * * * * * * * * * %std.experimental.logger.core.MsgRange* %r_arg * * * * * * * * Function type: @safe void(char[] msg) * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: e @ char[] * * * * * * * * * * DtoSymbolAddress ('e' of type 'char[]') * * * * * * * * * * * function param * * * * * * * * * * * type: char[] * TemplateInstance::codegen: 'std.format.FormatSpec!char.FormatSpec.writeUpToNextSpec!(MsgRange)' * * DtoDefineFunction(std.format.FormatSpec!char.FormatSpec.writeUpToNextSpec!(MsgRange).writeUpToNextSpec): /usr/include/dlang/ldc/std/format.d(783) * * * Doing function body for: writeUpToNextSpec * * * DtoCreateNestedContext for writeUpToNextSpec * * * * DtoCreateNestedContextType for std.format.FormatSpec!char.FormatSpec.writeUpToNextSpec!(MsgRange).writeUpToNextSpec * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(784) * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(785) * * * * * * CallExp::toElem: empty(this.trailing) @ bool * * * * * * * VarExp::toElem: empty @ pure nothrow @nogc @property @safe bool(const(char[]) a) * * * * * * * * DtoSymbolAddress ('empty' of type 'pure nothrow @nogc @property @safe bool(const(char[]) a)') * * * * * * * * * FuncDeclaration * * * * * * * DtoCallFunction() * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (0) * * * * * * * * Function type: pure nothrow @nogc @property @safe bool(const(char[]) a) * * * * * * * * DtoArgument * * * * * * * * * DotVarExp::toElem: this.trailing @ const(char[]) * * * * * * * * * * ThisExp::toElem: this @ FormatSpec!char * * * * * * * * * * * normal this exp * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.trailing: * * * * * * * * * * * Value: %1 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %.this_arg, i32 0, i32 9 * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/format.d(786) * * * * * * * IntegerExp::toElem: false @ bool * * * * * * * * IntegerExp::toConstElem: false @ bool * * * * * * * * * value = i1 false * * * * * * * return value is '0x120e69a0' * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(787) * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(787) * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(787) * * * * * * * * DeclarationExp::toElem: ulong i = 0LU; | T=void * * * * * * * * * DtoDeclarationExp: i * * * * * * * * * * VarDeclaration * * * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * * * llvm value for decl: %i = alloca i64, align 8 * * * * * * * * * * * expression initializer * * * * * * * * * * * AssignExp::toElem: i = 0LU | (ulong)(ulong = ulong) * * * * * * * * * * * * VarExp::toElem: i @ ulong * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'ulong') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * lhs: %i = alloca i64, align 8 * * * * * * * * * * * * * rhs: i64 0 * * * * * * * ForStatement::toIR(): /usr/include/dlang/ldc/std/format.d(787) * * * * * * * * CmpExp::toElem: i < this.trailing.length @ bool * * * * * * * * * VarExp::toElem: i @ ulong * * * * * * * * * * DtoSymbolAddress ('i' of type 'ulong') * * * * * * * * * * * a normal variable * * * * * * * * * ArrayLengthExp::toElem: this.trailing.length @ ulong * * * * * * * * * * DotVarExp::toElem: this.trailing @ const(char)[] * * * * * * * * * * * ThisExp::toElem: this @ FormatSpec!char * * * * * * * * * * * * normal this exp * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.trailing: * * * * * * * * * * * * Value: %4 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %.this_arg, i32 0, i32 9 * * * * * * * * * * DtoArrayLen * * * * * * * * * type 1: %6 = load i64, i64* %i * * * * * * * * * type 2: %.len = load i64, i64* %5 * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(788) * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(788) * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(789) * * * * * * * * * * * EqualExp::toElem: cast(int)this.trailing[i] != 37 @ bool * * * * * * * * * * * * CastExp::toElem: cast(int)this.trailing[i] @ int * * * * * * * * * * * * * IndexExp::toElem: this.trailing[i] @ const(char) * * * * * * * * * * * * * * DotVarExp::toElem: this.trailing @ const(char)[] * * * * * * * * * * * * * * * ThisExp::toElem: this @ FormatSpec!char * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.trailing: * * * * * * * * * * * * * * * * Value: %8 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %.this_arg, i32 0, i32 9 * * * * * * * * * * * * * * VarExp::toElem: i @ ulong * * * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'ulong') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * Casting from 'const(char)' to 'int' * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * IntegerExp::toElem: 37 @ int * * * * * * * * * * * * * IntegerExp::toConstElem: 37 @ int * * * * * * * * * * * * * * value = i32 37 * * * * * * * * * * * * integral or pointer or interface * * * * * * * * * * * * lv: %15 = zext i8 %14 to i32 * * * * * * * * * * * * rv: i32 37 * * * * * * * * * * * ContinueStatement::toIR(): /usr/include/dlang/ldc/std/format.d(789) * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(790) * * * * * * * * * * * CallExp::toElem: put(writer, this.trailing[0..i]) @ void * * * * * * * * * * * * VarExp::toElem: put @ @safe void(ref MsgRange r, const(char)[] e) * * * * * * * * * * * * * DtoSymbolAddress ('put' of type '@safe void(ref MsgRange r, const(char)[] e)') * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * Function type: @safe void(ref MsgRange r, const(char)[] e) * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * VarExp::toElem: writer @ MsgRange * * * * * * * * * * * * * * * DtoSymbolAddress ('writer' of type 'MsgRange') * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * type: MsgRange * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * SliceExp::toElem: this.trailing[0..i] @ const(char)[] * * * * * * * * * * * * * * * DotVarExp::toElem: this.trailing @ const(char)[] * * * * * * * * * * * * * * * * ThisExp::toElem: this @ FormatSpec!char * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.trailing: * * * * * * * * * * * * * * * * * Value: %17 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %.this_arg, i32 0, i32 9 * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * * * VarExp::toElem: i @ ulong * * * * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'ulong') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(791) * * * * * * * * * * * AssignExp::toElem: this.trailing = this.trailing[i..__dollar] | (const(char)[])(const(char)[] = const(char)[]) * * * * * * * * * * * * DotVarExp::toElem: this.trailing @ const(char)[] * * * * * * * * * * * * * ThisExp::toElem: this @ FormatSpec!char * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.trailing: * * * * * * * * * * * * * * Value: %24 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %.this_arg, i32 0, i32 9 * * * * * * * * * * * * SliceExp::toElem: this.trailing[i..__dollar] @ const(char)[] * * * * * * * * * * * * * DotVarExp::toElem: this.trailing @ const(char)[] * * * * * * * * * * * * * * ThisExp::toElem: this @ FormatSpec!char * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.trailing: * * * * * * * * * * * * * * * Value: %25 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %.this_arg, i32 0, i32 9 * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * VarExp::toElem: i @ ulong * * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'ulong') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * VarExp::toElem: __dollar @ ulong * * * * * * * * * * * * * * DtoSymbolAddress ('__dollar' of type 'ulong') * * * * * * * * * * * * * * * Id::dollar * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * SetArray * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(792) * * * * * * * * * * * CallExp::toElem: enforceEx(this.trailing.length >= 2LU, delegate string() => "Unterminated format specifier: \"%\"", "/usr/include/dlang/ldc/std/format.d", 792LU) @ bool * * * * * * * * * * * * VarExp::toElem: enforceEx @ pure @safe bool(bool value, lazy string msg = "", string file = __FILE__, ulong line = cast(ulong)__LINE__) * * * * * * * * * * * * * DtoSymbolAddress ('enforceEx' of type 'pure @safe bool(bool value, lazy string msg = "", string file = __FILE__, ulong line = cast(ulong)__LINE__)') * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * Function type: pure @safe bool(bool value, lazy string msg = "", string file = __FILE__, ulong line = cast(ulong)__LINE__) * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * CmpExp::toElem: this.trailing.length >= 2LU @ bool * * * * * * * * * * * * * * * ArrayLengthExp::toElem: this.trailing.length @ ulong * * * * * * * * * * * * * * * * DotVarExp::toElem: this.trailing @ const(char)[] * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ FormatSpec!char * * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.trailing: * * * * * * * * * * * * * * * * * * Value: %34 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %.this_arg, i32 0, i32 9 * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * IntegerExp::toElem: 2LU @ ulong * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 2LU @ ulong * * * * * * * * * * * * * * * * * value = i64 2 * * * * * * * * * * * * * * * type 1: %.len15 = load i64, i64* %35 * * * * * * * * * * * * * * * type 2: i64 2 * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * FuncExp::toElem: __dgliteral2 @ string delegate() pure nothrow @nogc @safe * * * * * * * * * * * * * * * nested * * * * * * * * * * * * * * * kind = delegate * * * * * * * * * * * * * * * DtoDefineFunction(std.format.FormatSpec!char.FormatSpec.writeUpToNextSpec!(MsgRange).writeUpToNextSpec.__dgliteral2): /usr/include/dlang/ldc/std/format.d(792) * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe string()) * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * Final function type: { i64, i8* } (i8*) * * * * * * * * * * * * * * * * DtoResolveFunction(std.format.FormatSpec!char.FormatSpec.writeUpToNextSpec!(MsgRange).writeUpToNextSpec.__dgliteral2): /usr/include/dlang/ldc/std/format.d(792) * * * * * * * * * * * * * * * * * DtoDeclareFunction(std.format.FormatSpec!char.FormatSpec.writeUpToNextSpec!(MsgRange).writeUpToNextSpec.__dgliteral2): /usr/include/dlang/ldc/std/format.d(792) * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe string()) * * * * * * * * * * * * * * * * * * func = declare { i64, i8* } @_D3std6format18__T10FormatSpecTaZ10FormatSpec64__T17writeUpToNextSpecTS3std12experimental6logger4core8MsgRangeZ17writeUpToNextSpecMFS3std12experimental6logger4core8MsgRangeZ12__dgliteral2MFNaNbNiNfZAya(i8*) * * * * * * * * * * * * * * * * Doing function body for: __dgliteral2 * * * * * * * * * * * * * * * * DtoCreateNestedContext for __dgliteral2 * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for std.format.FormatSpec!char.FormatSpec.writeUpToNextSpec!(MsgRange).writeUpToNextSpec.__dgliteral2 * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for std.format.FormatSpec!char.FormatSpec.writeUpToNextSpec!(MsgRange).writeUpToNextSpec * * * * * * * * * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * * * * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/format.d(792) * * * * * * * * * * * * * * * * * * StringExp::toElem: "Unterminated format specifier: \"%\"" @ string * * * * * * * * * * * * * * * * * * * type: [35 x i8] * * * * * * * * * * * * * * * * * * * init: [35 x i8] c"Unterminated format specifier: \22%\22\00" * * * * * * * * * * * * * * * * * * return value is '0x126b8cf0' * * * * * * * * * * * * * * * Building type: string delegate() pure nothrow @nogc @safe * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe string()) * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * Final function type: { i64, i8* } (i8*) * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * StringExp::toElem: "/usr/include/dlang/ldc/std/format.d" @ string * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * IntegerExp::toElem: 792LU @ ulong * * * * * * * * * * * * * * * IntegerExp::toConstElem: 792LU @ ulong * * * * * * * * * * * * * * * * value = i64 792 * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(793) * * * * * * * * * * * AssignExp::toElem: this.trailing = this.trailing[1..__dollar] | (const(char)[])(const(char)[] = const(char)[]) * * * * * * * * * * * * DotVarExp::toElem: this.trailing @ const(char)[] * * * * * * * * * * * * * ThisExp::toElem: this @ FormatSpec!char * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.trailing: * * * * * * * * * * * * * * Value: %38 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %.this_arg, i32 0, i32 9 * * * * * * * * * * * * SliceExp::toElem: this.trailing[1..__dollar] @ const(char)[] * * * * * * * * * * * * * DotVarExp::toElem: this.trailing @ const(char)[] * * * * * * * * * * * * * * ThisExp::toElem: this @ FormatSpec!char * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.trailing: * * * * * * * * * * * * * * * Value: %39 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %.this_arg, i32 0, i32 9 * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * VarExp::toElem: __dollar @ ulong * * * * * * * * * * * * * * DtoSymbolAddress ('__dollar' of type 'ulong') * * * * * * * * * * * * * * * Id::dollar * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * SetArray * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(795) * * * * * * * * * * * EqualExp::toElem: cast(int)this.trailing[0] != 37 @ bool * * * * * * * * * * * * CastExp::toElem: cast(int)this.trailing[0] @ int * * * * * * * * * * * * * IndexExp::toElem: this.trailing[0] @ const(char) * * * * * * * * * * * * * * DotVarExp::toElem: this.trailing @ const(char)[] * * * * * * * * * * * * * * * ThisExp::toElem: this @ FormatSpec!char * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.trailing: * * * * * * * * * * * * * * * * Value: %47 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %.this_arg, i32 0, i32 9 * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * Casting from 'const(char)' to 'int' * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * IntegerExp::toElem: 37 @ int * * * * * * * * * * * * * IntegerExp::toConstElem: 37 @ int * * * * * * * * * * * * * * value = i32 37 * * * * * * * * * * * * integral or pointer or interface * * * * * * * * * * * * lv: %52 = zext i8 %51 to i32 * * * * * * * * * * * * rv: i32 37 * * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(796) * * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(796) * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(798) * * * * * * * * * * * * * * CallExp::toElem: this.fillUp() @ void * * * * * * * * * * * * * * * DotVarExp::toElem: this.fillUp @ pure @safe void() * * * * * * * * * * * * * * * * ThisExp::toElem: this @ FormatSpec!char * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * isMember = this is: FormatSpec!char * * * * * * * * * * * * * * * * DtoFunctionType(pure @safe void()) * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * Final function type: void (%"std.format.FormatSpec!char.FormatSpec"*) * * * * * * * * * * * * * * * * DtoResolveFunction(std.format.FormatSpec!char.FormatSpec.fillUp): /usr/include/dlang/ldc/std/format.d(844) * * * * * * * * * * * * * * * * * DtoDeclareFunction(std.format.FormatSpec!char.FormatSpec.fillUp): /usr/include/dlang/ldc/std/format.d(844) * * * * * * * * * * * * * * * * * * isMember = this is: FormatSpec!char * * * * * * * * * * * * * * * * * * DtoFunctionType(pure @safe void()) * * * * * * * * * * * * * * * * * * func = declare void @_D3std6format18__T10FormatSpecTaZ10FormatSpec6fillUpMFNaNfZv(%"std.format.FormatSpec!char.FormatSpec"*) * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * Building type: pure @safe void() * * * * * * * * * * * * * * * * * DtoFunctionType(pure @safe void()) * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * Final function type: void () * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * %"std.format.FormatSpec!char.FormatSpec"* %.this_arg * * * * * * * * * * * * * * * * Function type: pure @safe void() * * * * * * * * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/format.d(799) * * * * * * * * * * * * * * IntegerExp::toElem: true @ bool * * * * * * * * * * * * * * * IntegerExp::toConstElem: true @ bool * * * * * * * * * * * * * * * * value = i1 true * * * * * * * * * * * * * * return value is '0x12188b90' * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(802) * * * * * * * * * * * AssignExp::toElem: i = 0LU | (ulong)(ulong = ulong) * * * * * * * * * * * * VarExp::toElem: i @ ulong * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'ulong') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * lhs: %i = alloca i64, align 8 * * * * * * * * * * * * * rhs: i64 0 * * * * * * * * AddAssignExp::toElem: i += 1LU @ ulong * * * * * * * * * Caching l-value of i += 1LU => i * * * * * * * * * * VarExp::toElem: i @ ulong * * * * * * * * * * * DtoSymbolAddress ('i' of type 'ulong') * * * * * * * * * * * * a normal variable * * * * * * * * * AddExp::toElem: i + 1LU @ ulong * * * * * * * * * * VarExp::toElem: i @ ulong * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * value = i64 1 * * * * * * * * * DtoAssign() * * * * * * * * * * lhs: %i = alloca i64, align 8 * * * * * * * * * * rhs: %12 = add i64 %11, 1 * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(805) * * * * * * CallExp::toElem: put(writer, this.trailing) @ void * * * * * * * VarExp::toElem: put @ @safe void(ref MsgRange r, const(char)[] e) * * * * * * * * DtoSymbolAddress ('put' of type '@safe void(ref MsgRange r, const(char)[] e)') * * * * * * * * * FuncDeclaration * * * * * * * DtoCallFunction() * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (0) * * * * * * * * Function type: @safe void(ref MsgRange r, const(char)[] e) * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: writer @ MsgRange * * * * * * * * * * DtoSymbolAddress ('writer' of type 'MsgRange') * * * * * * * * * * * function param * * * * * * * * * * * type: MsgRange * * * * * * * * DtoArgument * * * * * * * * * DotVarExp::toElem: this.trailing @ const(char)[] * * * * * * * * * * ThisExp::toElem: this @ FormatSpec!char * * * * * * * * * * * normal this exp * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.trailing: * * * * * * * * * * * Value: %13 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %.this_arg, i32 0, i32 9 * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(806) * * * * * * AssignExp::toElem: this.trailing = null | (const(char)[])(const(char)[] = const(char)[]) * * * * * * * DotVarExp::toElem: this.trailing @ const(char)[] * * * * * * * * ThisExp::toElem: this @ FormatSpec!char * * * * * * * * * normal this exp * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.trailing: * * * * * * * * * Value: %15 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %.this_arg, i32 0, i32 9 * * * * * * * NullExp::toElem(type=const(char)[]): null * * * * * * * * NullExp::toConstElem(type=const(char)[]): null * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * DtoAssign() * * * * * * * * DtoArrayAssign * * * * * * * * * DtoSetArrayToNull * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/format.d(807) * * * * * * IntegerExp::toElem: false @ bool * * * * * * * IntegerExp::toConstElem: false @ bool * * * * * * * * value = i1 false * * * * * * return value is '0x120e69a0' * TemplateInstance::codegen: 'std.range.primitives.put!(MsgRange, const(char)[])' * * DtoDefineFunction(std.range.primitives.put!(MsgRange, const(char)[]).put): /usr/include/dlang/ldc/std/range/primitives.d(277) * * * Doing function body for: put * * * DtoCreateNestedContext for put * * * * DtoCreateNestedContextType for std.range.primitives.put!(MsgRange, const(char)[]).put * * * CompoundStatement::toIR(): * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/range/primitives.d(282) * * * * * CallExp::toElem: doPut(r, e) @ void * * * * * * VarExp::toElem: doPut @ @safe void(ref MsgRange r, auto ref const(char)[] e) * * * * * * * DtoSymbolAddress ('doPut' of type '@safe void(ref MsgRange r, auto ref const(char)[] e)') * * * * * * * * FuncDeclaration * * * * * * * * DtoFunctionType(@safe void(ref MsgRange r, auto ref const(char)[] e)) * * * * * * * * * Building type: const(char)[]* * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * Final function type: void ({ i64, i8* }*, %std.experimental.logger.core.MsgRange*) * * * * * * * * DtoResolveFunction(std.range.primitives.doPut!(MsgRange, const(char)[]).doPut): /usr/include/dlang/ldc/std/range/primitives.d(182) * * * * * * * * * DtoDeclareFunction(std.range.primitives.doPut!(MsgRange, const(char)[]).doPut): /usr/include/dlang/ldc/std/range/primitives.d(182) * * * * * * * * * * DtoFunctionType(@safe void(ref MsgRange r, auto ref const(char)[] e)) * * * * * * * * * * func = declare void @_D3std5range10primitives55__T5doPutTS3std12experimental6logger4core8MsgRangeTAxaZ5doPutFNfKS3std12experimental6logger4core8MsgRangeKAxaZv({ i64, i8* }*, %std.experimental.logger.core.MsgRange*) * * * * * * DtoCallFunction() * * * * * * * Building type: @safe void(ref MsgRange r, auto ref const(char)[] e) * * * * * * * * DtoFunctionType(@safe void(ref MsgRange r, auto ref const(char)[] e)) * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * Final function type: void ({ i64, i8* }*, %std.experimental.logger.core.MsgRange*) * * * * * * * doing normal arguments * * * * * * * Arguments so far: (0) * * * * * * * Function type: @safe void(ref MsgRange r, auto ref const(char)[] e) * * * * * * * DtoArgument * * * * * * * * VarExp::toElem: r @ MsgRange * * * * * * * * * DtoSymbolAddress ('r' of type 'MsgRange') * * * * * * * * * * function param * * * * * * * * * * type: MsgRange * * * * * * * DtoArgument * * * * * * * * VarExp::toElem: e @ const(char)[] * * * * * * * * * DtoSymbolAddress ('e' of type 'const(char)[]') * * * * * * * * * * function param * * * * * * * * * * type: const(char)[] * TemplateInstance::codegen: 'std.range.primitives.doPut!(MsgRange, const(char)[])' * * DtoDefineFunction(std.range.primitives.doPut!(MsgRange, const(char)[]).doPut): /usr/include/dlang/ldc/std/range/primitives.d(182) * * * Doing function body for: doPut * * * DtoCreateNestedContext for doPut * * * * DtoCreateNestedContextType for std.range.primitives.doPut!(MsgRange, const(char)[]).doPut * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/range/primitives.d(183) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/range/primitives.d(187) * * * * * * DeclarationExp::toElem: enum bool usingPut = true; | T=void * * * * * * * DtoDeclarationExp: usingPut * * * * * * * * VarDeclaration * * * * * * * * Manifest constant, nothing to do. * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/range/primitives.d(193) * * * * * * CallExp::toElem: r.put(e) @ void * * * * * * * DotVarExp::toElem: r.put @ @safe void(const(char)[] msg) * * * * * * * * VarExp::toElem: r @ MsgRange * * * * * * * * * DtoSymbolAddress ('r' of type 'MsgRange') * * * * * * * * * * function param * * * * * * * * * * type: MsgRange * * * * * * * * isMember = this is: MsgRange * * * * * * * * DtoFunctionType(@safe void(const(char)[] msg)) * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * Final function type: void (%std.experimental.logger.core.MsgRange*, { i64, i8* }) * * * * * * * * DtoResolveFunction(std.experimental.logger.core.MsgRange.put!(const(char)[]).put): /usr/include/dlang/ldc/std/experimental/logger/core.d(665) * * * * * * * * * DtoDeclareFunction(std.experimental.logger.core.MsgRange.put!(const(char)[]).put): /usr/include/dlang/ldc/std/experimental/logger/core.d(665) * * * * * * * * * * isMember = this is: MsgRange * * * * * * * * * * DtoFunctionType(@safe void(const(char)[] msg)) * * * * * * * * * * func = declare void @_D3std12experimental6logger4core8MsgRange12__T3putTAxaZ3putMFNfAxaZv(%std.experimental.logger.core.MsgRange*, { i64, i8* }) * * * * * * * DtoCallFunction() * * * * * * * * Building type: @safe void(const(char)[] msg) * * * * * * * * * DtoFunctionType(@safe void(const(char)[] msg)) * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: void ({ i64, i8* }) * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (1) * * * * * * * * * %std.experimental.logger.core.MsgRange* %r_arg * * * * * * * * Function type: @safe void(const(char)[] msg) * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: e @ const(char)[] * * * * * * * * * * DtoSymbolAddress ('e' of type 'const(char)[]') * * * * * * * * * * * function param * * * * * * * * * * * type: const(char)[] * TemplateInstance::codegen: 'std.format.formatValue!(MsgRange, dchar, char)' * * DtoDefineFunction(std.format.formatValue!(MsgRange, dchar, char).formatValue): /usr/include/dlang/ldc/std/format.d(1905) * * * Doing function body for: formatValue * * * DtoCreateNestedContext for formatValue * * * * DtoCreateNestedContextType for std.format.formatValue!(MsgRange, dchar, char).formatValue * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1907) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1908) * * * * * * DeclarationExp::toElem: dchar val = obj; | T=void * * * * * * * DtoDeclarationExp: val * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = dchar) * * * * * * * * * llvm value for decl: %val = alloca i32, align 4 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: val = obj | (dchar)(dchar = dchar) * * * * * * * * * * VarExp::toElem: val @ dchar * * * * * * * * * * * DtoSymbolAddress ('val' of type 'dchar') * * * * * * * * * * * * a normal variable * * * * * * * * * * VarExp::toElem: obj @ dchar * * * * * * * * * * * DtoSymbolAddress ('obj' of type 'dchar') * * * * * * * * * * * * function param * * * * * * * * * * * * type: dchar * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %val = alloca i32, align 4 * * * * * * * * * * * rhs: %1 = load i32, i32* %obj * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1910) * * * * * * OrOrExp::toElem: cast(int)f.spec == 115 || cast(int)f.spec == 99 @ bool * * * * * * * EqualExp::toElem: cast(int)f.spec == 115 @ bool * * * * * * * * CastExp::toElem: cast(int)f.spec @ int * * * * * * * * * DotVarExp::toElem: f.spec @ char * * * * * * * * * * VarExp::toElem: f @ FormatSpec!char * * * * * * * * * * * DtoSymbolAddress ('f' of type 'FormatSpec!char') * * * * * * * * * * * * function param * * * * * * * * * * * * type: FormatSpec!char * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.spec: * * * * * * * * * * * Value: %2 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %f_arg, i32 0, i32 2 * * * * * * * * * Casting from 'char' to 'int' * * * * * * * * * * cast to: i32 * * * * * * * * IntegerExp::toElem: 115 @ int * * * * * * * * * IntegerExp::toConstElem: 115 @ int * * * * * * * * * * value = i32 115 * * * * * * * * integral or pointer or interface * * * * * * * * lv: %4 = zext i8 %3 to i32 * * * * * * * * rv: i32 115 * * * * * * * EqualExp::toElem: cast(int)f.spec == 99 @ bool * * * * * * * * CastExp::toElem: cast(int)f.spec @ int * * * * * * * * * DotVarExp::toElem: f.spec @ char * * * * * * * * * * VarExp::toElem: f @ FormatSpec!char * * * * * * * * * * * DtoSymbolAddress ('f' of type 'FormatSpec!char') * * * * * * * * * * * * function param * * * * * * * * * * * * type: FormatSpec!char * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.spec: * * * * * * * * * * * Value: %6 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %f_arg, i32 0, i32 2 * * * * * * * * * Casting from 'char' to 'int' * * * * * * * * * * cast to: i32 * * * * * * * * IntegerExp::toElem: 99 @ int * * * * * * * * * IntegerExp::toConstElem: 99 @ int * * * * * * * * * * value = i32 99 * * * * * * * * integral or pointer or interface * * * * * * * * lv: %8 = zext i8 %7 to i32 * * * * * * * * rv: i32 99 * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1911) * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1912) * * * * * * * * CallExp::toElem: put(w, val) @ void * * * * * * * * * VarExp::toElem: put @ @safe void(ref MsgRange r, dchar e) * * * * * * * * * * DtoSymbolAddress ('put' of type '@safe void(ref MsgRange r, dchar e)') * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * DtoFunctionType(@safe void(ref MsgRange r, dchar e)) * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * Final function type: void (i32, %std.experimental.logger.core.MsgRange*) * * * * * * * * * * * DtoResolveFunction(std.range.primitives.put!(MsgRange, dchar).put): /usr/include/dlang/ldc/std/range/primitives.d(277) * * * * * * * * * * * * DtoDeclareFunction(std.range.primitives.put!(MsgRange, dchar).put): /usr/include/dlang/ldc/std/range/primitives.d(277) * * * * * * * * * * * * * DtoFunctionType(@safe void(ref MsgRange r, dchar e)) * * * * * * * * * * * * * func = declare void @_D3std5range10primitives51__T3putTS3std12experimental6logger4core8MsgRangeTwZ3putFNfKS3std12experimental6logger4core8MsgRangewZv(i32, %std.experimental.logger.core.MsgRange*) * * * * * * * * * DtoCallFunction() * * * * * * * * * * Building type: @safe void(ref MsgRange r, dchar e) * * * * * * * * * * * DtoFunctionType(@safe void(ref MsgRange r, dchar e)) * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * Final function type: void (i32, %std.experimental.logger.core.MsgRange*) * * * * * * * * * * doing normal arguments * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * Function type: @safe void(ref MsgRange r, dchar e) * * * * * * * * * * DtoArgument * * * * * * * * * * * VarExp::toElem: w @ MsgRange * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'MsgRange') * * * * * * * * * * * * * function param * * * * * * * * * * * * * type: MsgRange * * * * * * * * * * DtoArgument * * * * * * * * * * * VarExp::toElem: val @ dchar * * * * * * * * * * * * DtoSymbolAddress ('val' of type 'dchar') * * * * * * * * * * * * * a normal variable * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1915) * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1915) * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1916) * * * * * * * * * DeclarationExp::toElem: alias U = uint; | T=void * * * * * * * * * * DtoDeclarationExp: U * * * * * * * * * * * Ignoring Symbol: alias * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1917) * * * * * * * * * CallExp::toElem: formatValue(w, cast(uint)val, f) @ void * * * * * * * * * * VarExp::toElem: formatValue @ @safe void(MsgRange w, uint obj, ref FormatSpec!char f) * * * * * * * * * * * DtoSymbolAddress ('formatValue' of type '@safe void(MsgRange w, uint obj, ref FormatSpec!char f)') * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * DtoFunctionType(@safe void(MsgRange w, uint obj, ref FormatSpec!char f)) * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * Final function type: void (%"std.format.FormatSpec!char.FormatSpec"*, i32, %std.experimental.logger.core.MsgRange*) * * * * * * * * * * * * DtoResolveFunction(std.format.formatValue!(MsgRange, uint, char).formatValue): /usr/include/dlang/ldc/std/format.d(1397) * * * * * * * * * * * * * DtoDeclareFunction(std.format.formatValue!(MsgRange, uint, char).formatValue): /usr/include/dlang/ldc/std/format.d(1397) * * * * * * * * * * * * * * DtoFunctionType(@safe void(MsgRange w, uint obj, ref FormatSpec!char f)) * * * * * * * * * * * * * * func = declare void @_D3std6format62__T11formatValueTS3std12experimental6logger4core8MsgRangeTkTaZ11formatValueFNfS3std12experimental6logger4core8MsgRangekKS3std6format18__T10FormatSpecTaZ10FormatSpecZv(%"std.format.FormatSpec!char.FormatSpec"*, i32, %std.experimental.logger.core.MsgRange*) * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * Building type: @safe void(MsgRange w, uint obj, ref FormatSpec!char f) * * * * * * * * * * * * DtoFunctionType(@safe void(MsgRange w, uint obj, ref FormatSpec!char f)) * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * Final function type: void (%"std.format.FormatSpec!char.FormatSpec"*, i32, %std.experimental.logger.core.MsgRange*) * * * * * * * * * * * doing normal arguments * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * Function type: @safe void(MsgRange w, uint obj, ref FormatSpec!char f) * * * * * * * * * * * DtoArgument * * * * * * * * * * * * VarExp::toElem: w @ MsgRange * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'MsgRange') * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * type: MsgRange * * * * * * * * * * * DtoArgument * * * * * * * * * * * * CastExp::toElem: cast(uint)val @ uint * * * * * * * * * * * * * VarExp::toElem: val @ dchar * * * * * * * * * * * * * * DtoSymbolAddress ('val' of type 'dchar') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * Casting from 'dchar' to 'uint' * * * * * * * * * * * DtoArgument * * * * * * * * * * * * VarExp::toElem: f @ FormatSpec!char * * * * * * * * * * * * * DtoSymbolAddress ('f' of type 'FormatSpec!char') * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * type: FormatSpec!char * TemplateInstance::codegen: 'std.range.primitives.put!(MsgRange, dchar)' * * DtoDefineFunction(std.range.primitives.put!(MsgRange, dchar).put): /usr/include/dlang/ldc/std/range/primitives.d(277) * * * Doing function body for: put * * * DtoCreateNestedContext for put * * * * DtoCreateNestedContextType for std.range.primitives.put!(MsgRange, dchar).put * * * CompoundStatement::toIR(): * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/range/primitives.d(282) * * * * * CallExp::toElem: doPut(r, e) @ void * * * * * * VarExp::toElem: doPut @ @safe void(ref MsgRange r, auto ref dchar e) * * * * * * * DtoSymbolAddress ('doPut' of type '@safe void(ref MsgRange r, auto ref dchar e)') * * * * * * * * FuncDeclaration * * * * * * * * DtoFunctionType(@safe void(ref MsgRange r, auto ref dchar e)) * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * Final function type: void (i32*, %std.experimental.logger.core.MsgRange*) * * * * * * * * DtoResolveFunction(std.range.primitives.doPut!(MsgRange, dchar).doPut): /usr/include/dlang/ldc/std/range/primitives.d(182) * * * * * * * * * DtoDeclareFunction(std.range.primitives.doPut!(MsgRange, dchar).doPut): /usr/include/dlang/ldc/std/range/primitives.d(182) * * * * * * * * * * DtoFunctionType(@safe void(ref MsgRange r, auto ref dchar e)) * * * * * * * * * * func = declare void @_D3std5range10primitives53__T5doPutTS3std12experimental6logger4core8MsgRangeTwZ5doPutFNfKS3std12experimental6logger4core8MsgRangeKwZv(i32*, %std.experimental.logger.core.MsgRange*) * * * * * * DtoCallFunction() * * * * * * * Building type: @safe void(ref MsgRange r, auto ref dchar e) * * * * * * * * DtoFunctionType(@safe void(ref MsgRange r, auto ref dchar e)) * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * Final function type: void (i32*, %std.experimental.logger.core.MsgRange*) * * * * * * * doing normal arguments * * * * * * * Arguments so far: (0) * * * * * * * Function type: @safe void(ref MsgRange r, auto ref dchar e) * * * * * * * DtoArgument * * * * * * * * VarExp::toElem: r @ MsgRange * * * * * * * * * DtoSymbolAddress ('r' of type 'MsgRange') * * * * * * * * * * function param * * * * * * * * * * type: MsgRange * * * * * * * DtoArgument * * * * * * * * VarExp::toElem: e @ dchar * * * * * * * * * DtoSymbolAddress ('e' of type 'dchar') * * * * * * * * * * function param * * * * * * * * * * type: dchar * TemplateInstance::codegen: 'std.range.primitives.doPut!(MsgRange, dchar)' * * DtoDefineFunction(std.range.primitives.doPut!(MsgRange, dchar).doPut): /usr/include/dlang/ldc/std/range/primitives.d(182) * * * Doing function body for: doPut * * * DtoCreateNestedContext for doPut * * * * DtoCreateNestedContextType for std.range.primitives.doPut!(MsgRange, dchar).doPut * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/range/primitives.d(183) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/range/primitives.d(187) * * * * * * DeclarationExp::toElem: enum bool usingPut = true; | T=void * * * * * * * DtoDeclarationExp: usingPut * * * * * * * * VarDeclaration * * * * * * * * Manifest constant, nothing to do. * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/range/primitives.d(193) * * * * * * CallExp::toElem: r.put(e) @ void * * * * * * * DotVarExp::toElem: r.put @ @safe void(dchar elem) * * * * * * * * VarExp::toElem: r @ MsgRange * * * * * * * * * DtoSymbolAddress ('r' of type 'MsgRange') * * * * * * * * * * function param * * * * * * * * * * type: MsgRange * * * * * * * DtoCallFunction() * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (1) * * * * * * * * * %std.experimental.logger.core.MsgRange* %r_arg * * * * * * * * Function type: @safe void(dchar elem) * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: e @ dchar * * * * * * * * * * DtoSymbolAddress ('e' of type 'dchar') * * * * * * * * * * * function param * * * * * * * * * * * type: dchar * TemplateInstance::codegen: 'std.format.formatValue!(MsgRange, uint, char)' * * DtoDefineFunction(std.format.formatValue!(MsgRange, uint, char).formatValue): /usr/include/dlang/ldc/std/format.d(1397) * * * Doing function body for: formatValue * * * DtoCreateNestedContext for formatValue * * * * DtoCreateNestedContextType for std.format.formatValue!(MsgRange, uint, char).formatValue * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1399) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1401) * * * * * * DeclarationExp::toElem: alias U = uint; | T=void * * * * * * * DtoDeclarationExp: U * * * * * * * * Ignoring Symbol: alias * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1402) * * * * * * DeclarationExp::toElem: uint val = obj; | T=void * * * * * * * DtoDeclarationExp: val * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = uint) * * * * * * * * * llvm value for decl: %val = alloca i32, align 4 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: val = obj | (uint)(uint = uint) * * * * * * * * * * VarExp::toElem: val @ uint * * * * * * * * * * * DtoSymbolAddress ('val' of type 'uint') * * * * * * * * * * * * a normal variable * * * * * * * * * * VarExp::toElem: obj @ uint * * * * * * * * * * * DtoSymbolAddress ('obj' of type 'uint') * * * * * * * * * * * * function param * * * * * * * * * * * * type: uint * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %val = alloca i32, align 4 * * * * * * * * * * * rhs: %1 = load i32, i32* %obj * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1404) * * * * * * EqualExp::toElem: cast(int)f.spec == 114 @ bool * * * * * * * CastExp::toElem: cast(int)f.spec @ int * * * * * * * * DotVarExp::toElem: f.spec @ char * * * * * * * * * VarExp::toElem: f @ FormatSpec!char * * * * * * * * * * DtoSymbolAddress ('f' of type 'FormatSpec!char') * * * * * * * * * * * function param * * * * * * * * * * * type: FormatSpec!char * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.spec: * * * * * * * * * * Value: %2 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %f_arg, i32 0, i32 2 * * * * * * * * Casting from 'char' to 'int' * * * * * * * * * cast to: i32 * * * * * * * IntegerExp::toElem: 114 @ int * * * * * * * * IntegerExp::toConstElem: 114 @ int * * * * * * * * * value = i32 114 * * * * * * * integral or pointer or interface * * * * * * * lv: %4 = zext i8 %3 to i32 * * * * * * * rv: i32 114 * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1405) * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1405) * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1407) * * * * * * * * * DeclarationExp::toElem: const(char)[] raw = (*(ref uint val) => (cast(const(char*))&val)[0..4])(val); | T=void * * * * * * * * * * DtoDeclarationExp: raw * * * * * * * * * * * VarDeclaration * * * * * * * * * * * DtoVarDeclaration(vdtype = const(char)[]) * * * * * * * * * * * * llvm value for decl: %raw = alloca { i64, i8* }, align 8 * * * * * * * * * * * * expression initializer * * * * * * * * * * * * AssignExp::toElem: raw = (*(ref uint val) => (cast(const(char*))&val)[0..4])(val) | (const(char)[])(const(char)[] = const(char)[]) * * * * * * * * * * * * * VarExp::toElem: raw @ const(char)[] * * * * * * * * * * * * * * DtoSymbolAddress ('raw' of type 'const(char)[]') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * CallExp::toElem: (*(ref uint val) => (cast(const(char*))&val)[0..4])(val) @ const(char)[] * * * * * * * * * * * * * * PtrExp::toElem: *(ref uint val) => (cast(const(char*))&val)[0..4] @ pure nothrow @nogc @trusted const(char)[](ref uint val) * * * * * * * * * * * * * * * FuncExp::toElem: __lambda4 @ const(char)[] function(ref uint val) pure nothrow @nogc @trusted * * * * * * * * * * * * * * * * kind = function * * * * * * * * * * * * * * * * DtoDefineFunction(std.format.formatValue!(MsgRange, uint, char).formatValue.__lambda4): /usr/include/dlang/ldc/std/format.d(1407) * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted const(char)[](ref uint val)) * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * Final function type: { i64, i8* } (i32*) * * * * * * * * * * * * * * * * * DtoResolveFunction(std.format.formatValue!(MsgRange, uint, char).formatValue.__lambda4): /usr/include/dlang/ldc/std/format.d(1407) * * * * * * * * * * * * * * * * * * DtoDeclareFunction(std.format.formatValue!(MsgRange, uint, char).formatValue.__lambda4): /usr/include/dlang/ldc/std/format.d(1407) * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted const(char)[](ref uint val)) * * * * * * * * * * * * * * * * * * * func = declare { i64, i8* } @_D3std6format62__T11formatValueTS3std12experimental6logger4core8MsgRangeTkTaZ11formatValueFS3std12experimental6logger4core8MsgRangekKS3std6format18__T10FormatSpecTaZ10FormatSpecZ16__T9__lambda4TkZ9__lambda4FNaNbNiNeKkZAxa(i32*) * * * * * * * * * * * * * * * * * Doing function body for: __lambda4 * * * * * * * * * * * * * * * * * DtoCreateNestedContext for __lambda4 * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for std.format.formatValue!(MsgRange, uint, char).formatValue.__lambda4 * * * * * * * * * * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * * * * * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1408) * * * * * * * * * * * * * * * * * * * SliceExp::toElem: (cast(const(char*))&val)[0..4] @ const(char)[] * * * * * * * * * * * * * * * * * * * * CastExp::toElem: cast(const(char*))&val @ const(char*) * * * * * * * * * * * * * * * * * * * * * AddrExp::toElem: &val @ uint* * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: val @ uint * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('val' of type 'uint') * * * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * * * type: uint * * * * * * * * * * * * * * * * * * * * * * is nothing special * * * * * * * * * * * * * * * * * * * * * * lval: i32* %val_arg * * * * * * * * * * * * * * * * * * * * * Casting from 'uint*' to 'const(char*)' * * * * * * * * * * * * * * * * * * * * * * src: i32* %val_arg * * * * * * * * * * * * * * * * * * * * * * to type: i8* * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 4LU @ ulong * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 4LU @ ulong * * * * * * * * * * * * * * * * * * * * * * value = i64 4 * * * * * * * * * * * * * * * * * * * return value is '0x126d2160' * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * Building type: pure nothrow @nogc @trusted const(char)[](ref uint val) * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted const(char)[](ref uint val)) * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * Final function type: { i64, i8* } (i32*) * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @trusted const(char)[](ref uint val) * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * VarExp::toElem: val @ uint * * * * * * * * * * * * * * * * * DtoSymbolAddress ('val' of type 'uint') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * SetArray * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1410) * * * * * * * * * OrOrExp::toElem: !!f.flPlus() || false @ bool * * * * * * * * * * BoolExp::toElem: !!f.flPlus() @ bool * * * * * * * * * * * CallExp::toElem: f.flPlus() @ bool * * * * * * * * * * * * DotVarExp::toElem: f.flPlus @ const pure nothrow @nogc @property @safe bool() * * * * * * * * * * * * * VarExp::toElem: f @ FormatSpec!char * * * * * * * * * * * * * * DtoSymbolAddress ('f' of type 'FormatSpec!char') * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * type: FormatSpec!char * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * %"std.format.FormatSpec!char.FormatSpec"* %f_arg * * * * * * * * * * * * * Function type: const pure nothrow @nogc @property @safe bool() * * * * * * * * * * IntegerExp::toElem: false @ bool * * * * * * * * * * * IntegerExp::toConstElem: false @ bool * * * * * * * * * * * * value = i1 false * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1412) * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1414) * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1414) * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1414) * * * * * * * * * * * * * DeclarationExp::toElem: const(char)[] __aggr3229 = raw[]; | T=void * * * * * * * * * * * * * * DtoDeclarationExp: __aggr3229 * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = const(char)[]) * * * * * * * * * * * * * * * * llvm value for decl: %__aggr3229 = alloca { i64, i8* }, align 8 * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * AssignExp::toElem: __aggr3229 = raw[] | (const(char)[])(const(char)[] = const(char)[]) * * * * * * * * * * * * * * * * * VarExp::toElem: __aggr3229 @ const(char)[] * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__aggr3229' of type 'const(char)[]') * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * SliceExp::toElem: raw[] @ const(char)[] * * * * * * * * * * * * * * * * * * VarExp::toElem: raw @ const(char)[] * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('raw' of type 'const(char)[]') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * * SetArray * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1414) * * * * * * * * * * * * * DeclarationExp::toElem: ulong __key3230 = __aggr3229.length; | T=void * * * * * * * * * * * * * * DtoDeclarationExp: __key3230 * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * * * * * * * * llvm value for decl: %__key3230 = alloca i64, align 8 * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * AssignExp::toElem: __key3230 = __aggr3229.length | (ulong)(ulong = ulong) * * * * * * * * * * * * * * * * * VarExp::toElem: __key3230 @ ulong * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__key3230' of type 'ulong') * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * ArrayLengthExp::toElem: __aggr3229.length @ ulong * * * * * * * * * * * * * * * * * * VarExp::toElem: __aggr3229 @ const(char)[] * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__aggr3229' of type 'const(char)[]') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * lhs: %__key3230 = alloca i64, align 8 * * * * * * * * * * * * * * * * * * rhs: %.len5 = load i64, i64* %14 * * * * * * * * * * * * ForStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1414) * * * * * * * * * * * * * PostExp::toElem: __key3230-- @ ulong * * * * * * * * * * * * * * VarExp::toElem: __key3230 @ ulong * * * * * * * * * * * * * * * DtoSymbolAddress ('__key3230' of type 'ulong') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * Casting from 'ulong' to 'bool' * * * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1414) * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1414) * * * * * * * * * * * * * * * DeclarationExp::toElem: const const(char) c = __aggr3229[__key3230]; | T=void * * * * * * * * * * * * * * * * DtoDeclarationExp: c * * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = const(char)) * * * * * * * * * * * * * * * * * * llvm value for decl: %c = alloca i8, align 1 * * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * * AssignExp::toElem: c = __aggr3229[__key3230] | (const(char))(const(char) = const(char)) * * * * * * * * * * * * * * * * * * * VarExp::toElem: c @ const(char) * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('c' of type 'const(char)') * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * IndexExp::toElem: __aggr3229[__key3230] @ const(char) * * * * * * * * * * * * * * * * * * * * VarExp::toElem: __aggr3229 @ const(char)[] * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__aggr3229' of type 'const(char)[]') * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * VarExp::toElem: __key3230 @ ulong * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__key3230' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * lhs: %c = alloca i8, align 1 * * * * * * * * * * * * * * * * * * * * rhs: %23 = load i8, i8* %22 * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1415) * * * * * * * * * * * * * * * CallExp::toElem: put(w, c) @ void * * * * * * * * * * * * * * * * VarExp::toElem: put @ @safe void(ref MsgRange r, const(char) e) * * * * * * * * * * * * * * * * * DtoSymbolAddress ('put' of type '@safe void(ref MsgRange r, const(char) e)') * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * Function type: @safe void(ref MsgRange r, const(char) e) * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * VarExp::toElem: w @ MsgRange * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'MsgRange') * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * type: MsgRange * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * VarExp::toElem: c @ const(char) * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('c' of type 'const(char)') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1418) * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1419) * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1419) * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1419) * * * * * * * * * * * * * DeclarationExp::toElem: const(char)[] __aggr3231 = raw[]; | T=void * * * * * * * * * * * * * * DtoDeclarationExp: __aggr3231 * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = const(char)[]) * * * * * * * * * * * * * * * * llvm value for decl: %__aggr3231 = alloca { i64, i8* }, align 8 * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * AssignExp::toElem: __aggr3231 = raw[] | (const(char)[])(const(char)[] = const(char)[]) * * * * * * * * * * * * * * * * * VarExp::toElem: __aggr3231 @ const(char)[] * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__aggr3231' of type 'const(char)[]') * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * SliceExp::toElem: raw[] @ const(char)[] * * * * * * * * * * * * * * * * * * VarExp::toElem: raw @ const(char)[] * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('raw' of type 'const(char)[]') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * * SetArray * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1419) * * * * * * * * * * * * * DeclarationExp::toElem: ulong __key3232 = 0LU; | T=void * * * * * * * * * * * * * * DtoDeclarationExp: __key3232 * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * * * * * * * * llvm value for decl: %__key3232 = alloca i64, align 8 * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * AssignExp::toElem: __key3232 = 0LU | (ulong)(ulong = ulong) * * * * * * * * * * * * * * * * * VarExp::toElem: __key3232 @ ulong * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__key3232' of type 'ulong') * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * lhs: %__key3232 = alloca i64, align 8 * * * * * * * * * * * * * * * * * * rhs: i64 0 * * * * * * * * * * * * ForStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1419) * * * * * * * * * * * * * CmpExp::toElem: __key3232 < __aggr3231.length @ bool * * * * * * * * * * * * * * VarExp::toElem: __key3232 @ ulong * * * * * * * * * * * * * * * DtoSymbolAddress ('__key3232' of type 'ulong') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * ArrayLengthExp::toElem: __aggr3231.length @ ulong * * * * * * * * * * * * * * * VarExp::toElem: __aggr3231 @ const(char)[] * * * * * * * * * * * * * * * * DtoSymbolAddress ('__aggr3231' of type 'const(char)[]') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * type 1: %30 = load i64, i64* %__key3232 * * * * * * * * * * * * * * type 2: %.len14 = load i64, i64* %29 * * * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1419) * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1419) * * * * * * * * * * * * * * * DeclarationExp::toElem: const const(char) c = __aggr3231[__key3232]; | T=void * * * * * * * * * * * * * * * * DtoDeclarationExp: c * * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = const(char)) * * * * * * * * * * * * * * * * * * llvm value for decl: %c15 = alloca i8, align 1 * * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * * AssignExp::toElem: c = __aggr3231[__key3232] | (const(char))(const(char) = const(char)) * * * * * * * * * * * * * * * * * * * VarExp::toElem: c @ const(char) * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('c' of type 'const(char)') * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * IndexExp::toElem: __aggr3231[__key3232] @ const(char) * * * * * * * * * * * * * * * * * * * * VarExp::toElem: __aggr3231 @ const(char)[] * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__aggr3231' of type 'const(char)[]') * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * VarExp::toElem: __key3232 @ ulong * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__key3232' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * lhs: %c15 = alloca i8, align 1 * * * * * * * * * * * * * * * * * * * * rhs: %37 = load i8, i8* %36 * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1420) * * * * * * * * * * * * * * * CallExp::toElem: put(w, c) @ void * * * * * * * * * * * * * * * * VarExp::toElem: put @ @safe void(ref MsgRange r, const(char) e) * * * * * * * * * * * * * * * * * DtoSymbolAddress ('put' of type '@safe void(ref MsgRange r, const(char) e)') * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * Function type: @safe void(ref MsgRange r, const(char) e) * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * VarExp::toElem: w @ MsgRange * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'MsgRange') * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * type: MsgRange * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * VarExp::toElem: c @ const(char) * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('c' of type 'const(char)') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * AddAssignExp::toElem: __key3232 += 1LU @ ulong * * * * * * * * * * * * * * Caching l-value of __key3232 += 1LU => __key3232 * * * * * * * * * * * * * * * VarExp::toElem: __key3232 @ ulong * * * * * * * * * * * * * * * * DtoSymbolAddress ('__key3232' of type 'ulong') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * AddExp::toElem: __key3232 + 1LU @ ulong * * * * * * * * * * * * * * * VarExp::toElem: __key3232 @ ulong * * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * lhs: %__key3232 = alloca i64, align 8 * * * * * * * * * * * * * * * rhs: %35 = add i64 %34, 1 * * * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1422) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1425) * * * * * * DeclarationExp::toElem: uint base = cast(int)f.spec == 120 || cast(int)f.spec == 88 ? 16u : cast(int)f.spec == 111 ? 8u : cast(int)f.spec == 98 ? 2u : cast(int)f.spec == 115 || cast(int)f.spec == 100 || cast(int)f.spec == 117 ? 10u : 0u; | T=void * * * * * * * DtoDeclarationExp: base * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = uint) * * * * * * * * * llvm value for decl: %base = alloca i32, align 4 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: base = cast(int)f.spec == 120 || cast(int)f.spec == 88 ? 16u : cast(int)f.spec == 111 ? 8u : cast(int)f.spec == 98 ? 2u : cast(int)f.spec == 115 || cast(int)f.spec == 100 || cast(int)f.spec == 117 ? 10u : 0u | (uint)(uint = uint) * * * * * * * * * * VarExp::toElem: base @ uint * * * * * * * * * * * DtoSymbolAddress ('base' of type 'uint') * * * * * * * * * * * * a normal variable * * * * * * * * * * CondExp::toElem: cast(int)f.spec == 120 || cast(int)f.spec == 88 ? 16u : cast(int)f.spec == 111 ? 8u : cast(int)f.spec == 98 ? 2u : cast(int)f.spec == 115 || cast(int)f.spec == 100 || cast(int)f.spec == 117 ? 10u : 0u @ uint * * * * * * * * * * * OrOrExp::toElem: cast(int)f.spec == 120 || cast(int)f.spec == 88 @ bool * * * * * * * * * * * * EqualExp::toElem: cast(int)f.spec == 120 @ bool * * * * * * * * * * * * * CastExp::toElem: cast(int)f.spec @ int * * * * * * * * * * * * * * DotVarExp::toElem: f.spec @ char * * * * * * * * * * * * * * * VarExp::toElem: f @ FormatSpec!char * * * * * * * * * * * * * * * * DtoSymbolAddress ('f' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * type: FormatSpec!char * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.spec: * * * * * * * * * * * * * * * * Value: %10 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %f_arg, i32 0, i32 2 * * * * * * * * * * * * * * Casting from 'char' to 'int' * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * * IntegerExp::toElem: 120 @ int * * * * * * * * * * * * * * IntegerExp::toConstElem: 120 @ int * * * * * * * * * * * * * * * value = i32 120 * * * * * * * * * * * * * integral or pointer or interface * * * * * * * * * * * * * lv: %12 = zext i8 %11 to i32 * * * * * * * * * * * * * rv: i32 120 * * * * * * * * * * * * EqualExp::toElem: cast(int)f.spec == 88 @ bool * * * * * * * * * * * * * CastExp::toElem: cast(int)f.spec @ int * * * * * * * * * * * * * * DotVarExp::toElem: f.spec @ char * * * * * * * * * * * * * * * VarExp::toElem: f @ FormatSpec!char * * * * * * * * * * * * * * * * DtoSymbolAddress ('f' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * type: FormatSpec!char * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.spec: * * * * * * * * * * * * * * * * Value: %45 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %f_arg, i32 0, i32 2 * * * * * * * * * * * * * * Casting from 'char' to 'int' * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * * IntegerExp::toElem: 88 @ int * * * * * * * * * * * * * * IntegerExp::toConstElem: 88 @ int * * * * * * * * * * * * * * * value = i32 88 * * * * * * * * * * * * * integral or pointer or interface * * * * * * * * * * * * * lv: %47 = zext i8 %46 to i32 * * * * * * * * * * * * * rv: i32 88 * * * * * * * * * * * IntegerExp::toElem: 16u @ uint * * * * * * * * * * * * IntegerExp::toConstElem: 16u @ uint * * * * * * * * * * * * * value = i32 16 * * * * * * * * * * * CondExp::toElem: cast(int)f.spec == 111 ? 8u : cast(int)f.spec == 98 ? 2u : cast(int)f.spec == 115 || cast(int)f.spec == 100 || cast(int)f.spec == 117 ? 10u : 0u @ uint * * * * * * * * * * * * EqualExp::toElem: cast(int)f.spec == 111 @ bool * * * * * * * * * * * * * CastExp::toElem: cast(int)f.spec @ int * * * * * * * * * * * * * * DotVarExp::toElem: f.spec @ char * * * * * * * * * * * * * * * VarExp::toElem: f @ FormatSpec!char * * * * * * * * * * * * * * * * DtoSymbolAddress ('f' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * type: FormatSpec!char * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.spec: * * * * * * * * * * * * * * * * Value: %45 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %f_arg, i32 0, i32 2 * * * * * * * * * * * * * * Casting from 'char' to 'int' * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * * IntegerExp::toElem: 111 @ int * * * * * * * * * * * * * * IntegerExp::toConstElem: 111 @ int * * * * * * * * * * * * * * * value = i32 111 * * * * * * * * * * * * * integral or pointer or interface * * * * * * * * * * * * * lv: %47 = zext i8 %46 to i32 * * * * * * * * * * * * * rv: i32 111 * * * * * * * * * * * * IntegerExp::toElem: 8u @ uint * * * * * * * * * * * * * IntegerExp::toConstElem: 8u @ uint * * * * * * * * * * * * * * value = i32 8 * * * * * * * * * * * * CondExp::toElem: cast(int)f.spec == 98 ? 2u : cast(int)f.spec == 115 || cast(int)f.spec == 100 || cast(int)f.spec == 117 ? 10u : 0u @ uint * * * * * * * * * * * * * EqualExp::toElem: cast(int)f.spec == 98 @ bool * * * * * * * * * * * * * * CastExp::toElem: cast(int)f.spec @ int * * * * * * * * * * * * * * * DotVarExp::toElem: f.spec @ char * * * * * * * * * * * * * * * * VarExp::toElem: f @ FormatSpec!char * * * * * * * * * * * * * * * * * DtoSymbolAddress ('f' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * type: FormatSpec!char * * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.spec: * * * * * * * * * * * * * * * * * Value: %53 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %f_arg, i32 0, i32 2 * * * * * * * * * * * * * * * Casting from 'char' to 'int' * * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * * * IntegerExp::toElem: 98 @ int * * * * * * * * * * * * * * * IntegerExp::toConstElem: 98 @ int * * * * * * * * * * * * * * * * value = i32 98 * * * * * * * * * * * * * * integral or pointer or interface * * * * * * * * * * * * * * lv: %55 = zext i8 %54 to i32 * * * * * * * * * * * * * * rv: i32 98 * * * * * * * * * * * * * IntegerExp::toElem: 2u @ uint * * * * * * * * * * * * * * IntegerExp::toConstElem: 2u @ uint * * * * * * * * * * * * * * * value = i32 2 * * * * * * * * * * * * * CondExp::toElem: cast(int)f.spec == 115 || cast(int)f.spec == 100 || cast(int)f.spec == 117 ? 10u : 0u @ uint * * * * * * * * * * * * * * OrOrExp::toElem: cast(int)f.spec == 115 || cast(int)f.spec == 100 || cast(int)f.spec == 117 @ bool * * * * * * * * * * * * * * * OrOrExp::toElem: cast(int)f.spec == 115 || cast(int)f.spec == 100 @ bool * * * * * * * * * * * * * * * * EqualExp::toElem: cast(int)f.spec == 115 @ bool * * * * * * * * * * * * * * * * * CastExp::toElem: cast(int)f.spec @ int * * * * * * * * * * * * * * * * * * DotVarExp::toElem: f.spec @ char * * * * * * * * * * * * * * * * * * * VarExp::toElem: f @ FormatSpec!char * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('f' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * type: FormatSpec!char * * * * * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.spec: * * * * * * * * * * * * * * * * * * * * Value: %57 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %f_arg, i32 0, i32 2 * * * * * * * * * * * * * * * * * * Casting from 'char' to 'int' * * * * * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * * * * * * IntegerExp::toElem: 115 @ int * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 115 @ int * * * * * * * * * * * * * * * * * * * value = i32 115 * * * * * * * * * * * * * * * * * integral or pointer or interface * * * * * * * * * * * * * * * * * lv: %59 = zext i8 %58 to i32 * * * * * * * * * * * * * * * * * rv: i32 115 * * * * * * * * * * * * * * * * EqualExp::toElem: cast(int)f.spec == 100 @ bool * * * * * * * * * * * * * * * * * CastExp::toElem: cast(int)f.spec @ int * * * * * * * * * * * * * * * * * * DotVarExp::toElem: f.spec @ char * * * * * * * * * * * * * * * * * * * VarExp::toElem: f @ FormatSpec!char * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('f' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * type: FormatSpec!char * * * * * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.spec: * * * * * * * * * * * * * * * * * * * * Value: %61 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %f_arg, i32 0, i32 2 * * * * * * * * * * * * * * * * * * Casting from 'char' to 'int' * * * * * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * * * * * * IntegerExp::toElem: 100 @ int * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 100 @ int * * * * * * * * * * * * * * * * * * * value = i32 100 * * * * * * * * * * * * * * * * * integral or pointer or interface * * * * * * * * * * * * * * * * * lv: %63 = zext i8 %62 to i32 * * * * * * * * * * * * * * * * * rv: i32 100 * * * * * * * * * * * * * * * EqualExp::toElem: cast(int)f.spec == 117 @ bool * * * * * * * * * * * * * * * * CastExp::toElem: cast(int)f.spec @ int * * * * * * * * * * * * * * * * * DotVarExp::toElem: f.spec @ char * * * * * * * * * * * * * * * * * * VarExp::toElem: f @ FormatSpec!char * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('f' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * type: FormatSpec!char * * * * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.spec: * * * * * * * * * * * * * * * * * * * Value: %65 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %f_arg, i32 0, i32 2 * * * * * * * * * * * * * * * * * Casting from 'char' to 'int' * * * * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * * * * * IntegerExp::toElem: 117 @ int * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 117 @ int * * * * * * * * * * * * * * * * * * value = i32 117 * * * * * * * * * * * * * * * * integral or pointer or interface * * * * * * * * * * * * * * * * lv: %67 = zext i8 %66 to i32 * * * * * * * * * * * * * * * * rv: i32 117 * * * * * * * * * * * * * * IntegerExp::toElem: 10u @ uint * * * * * * * * * * * * * * * IntegerExp::toConstElem: 10u @ uint * * * * * * * * * * * * * * * * value = i32 10 * * * * * * * * * * * * * * IntegerExp::toElem: 0u @ uint * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0u @ uint * * * * * * * * * * * * * * * * value = i32 0 * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %base = alloca i32, align 4 * * * * * * * * * * * rhs: %50 = load i32, i32* %49 * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1431) * * * * * * CallExp::toElem: enforceEx(base > 0u, delegate string() => "integral", "/usr/include/dlang/ldc/std/format.d", 1431LU) @ bool * * * * * * * VarExp::toElem: enforceEx @ pure @safe bool(bool value, lazy string msg = "", string file = __FILE__, ulong line = cast(ulong)__LINE__) * * * * * * * * DtoSymbolAddress ('enforceEx' of type 'pure @safe bool(bool value, lazy string msg = "", string file = __FILE__, ulong line = cast(ulong)__LINE__)') * * * * * * * * * FuncDeclaration * * * * * * * DtoCallFunction() * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (0) * * * * * * * * Function type: pure @safe bool(bool value, lazy string msg = "", string file = __FILE__, ulong line = cast(ulong)__LINE__) * * * * * * * * DtoArgument * * * * * * * * * CmpExp::toElem: base > 0u @ bool * * * * * * * * * * VarExp::toElem: base @ uint * * * * * * * * * * * DtoSymbolAddress ('base' of type 'uint') * * * * * * * * * * * * a normal variable * * * * * * * * * * IntegerExp::toElem: 0u @ uint * * * * * * * * * * * IntegerExp::toConstElem: 0u @ uint * * * * * * * * * * * * value = i32 0 * * * * * * * * * * type 1: %51 = load i32, i32* %base * * * * * * * * * * type 2: i32 0 * * * * * * * * DtoArgument * * * * * * * * * FuncExp::toElem: __dgliteral5 @ string delegate() pure nothrow @nogc @safe * * * * * * * * * * nested * * * * * * * * * * kind = delegate * * * * * * * * * * DtoDefineFunction(std.format.formatValue!(MsgRange, uint, char).formatValue.__dgliteral5): /usr/include/dlang/ldc/std/format.d(1432) * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe string()) * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * Final function type: { i64, i8* } (i8*) * * * * * * * * * * * DtoResolveFunction(std.format.formatValue!(MsgRange, uint, char).formatValue.__dgliteral5): /usr/include/dlang/ldc/std/format.d(1432) * * * * * * * * * * * * DtoDeclareFunction(std.format.formatValue!(MsgRange, uint, char).formatValue.__dgliteral5): /usr/include/dlang/ldc/std/format.d(1432) * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe string()) * * * * * * * * * * * * * func = declare { i64, i8* } @_D3std6format62__T11formatValueTS3std12experimental6logger4core8MsgRangeTkTaZ11formatValueFS3std12experimental6logger4core8MsgRangekKS3std6format18__T10FormatSpecTaZ10FormatSpecZ12__dgliteral5MFNaNbNiNfZAya(i8*) * * * * * * * * * * * Doing function body for: __dgliteral5 * * * * * * * * * * * DtoCreateNestedContext for __dgliteral5 * * * * * * * * * * * * DtoCreateNestedContextType for std.format.formatValue!(MsgRange, uint, char).formatValue.__dgliteral5 * * * * * * * * * * * * * DtoCreateNestedContextType for std.format.formatValue!(MsgRange, uint, char).formatValue * * * * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1432) * * * * * * * * * * * * * StringExp::toElem: "integral" @ string * * * * * * * * * * * * * return value is '0x123bb390' * * * * * * * * * * Building type: string delegate() pure nothrow @nogc @safe * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe string()) * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * Final function type: { i64, i8* } (i8*) * * * * * * * * DtoArgument * * * * * * * * * StringExp::toElem: "/usr/include/dlang/ldc/std/format.d" @ string * * * * * * * * DtoArgument * * * * * * * * * IntegerExp::toElem: 1431LU @ ulong * * * * * * * * * * IntegerExp::toConstElem: 1431LU @ ulong * * * * * * * * * * * value = i64 1431 * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1441) * * * * * * DeclarationExp::toElem: alias C = ulong; | T=void * * * * * * * DtoDeclarationExp: C * * * * * * * * Ignoring Symbol: alias * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1442) * * * * * * CallExp::toElem: formatIntegral(w, cast(ulong)val, f, base, 4294967295LU) @ void * * * * * * * VarExp::toElem: formatIntegral @ @safe void(MsgRange w, const(ulong) val, ref FormatSpec!char f, uint base, ulong mask) * * * * * * * * DtoSymbolAddress ('formatIntegral' of type '@safe void(MsgRange w, const(ulong) val, ref FormatSpec!char f, uint base, ulong mask)') * * * * * * * * * FuncDeclaration * * * * * * * DtoCallFunction() * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (0) * * * * * * * * Function type: @safe void(MsgRange w, const(ulong) val, ref FormatSpec!char f, uint base, ulong mask) * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: w @ MsgRange * * * * * * * * * * DtoSymbolAddress ('w' of type 'MsgRange') * * * * * * * * * * * function param * * * * * * * * * * * type: MsgRange * * * * * * * * DtoArgument * * * * * * * * * CastExp::toElem: cast(ulong)val @ const(ulong) * * * * * * * * * * VarExp::toElem: val @ uint * * * * * * * * * * * DtoSymbolAddress ('val' of type 'uint') * * * * * * * * * * * * a normal variable * * * * * * * * * * Casting from 'uint' to 'ulong' * * * * * * * * * * * cast to: i64 * * * * * * * * * * repainting from 'ulong' to 'const(ulong)' * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: f @ FormatSpec!char * * * * * * * * * * DtoSymbolAddress ('f' of type 'FormatSpec!char') * * * * * * * * * * * function param * * * * * * * * * * * type: FormatSpec!char * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: base @ uint * * * * * * * * * * DtoSymbolAddress ('base' of type 'uint') * * * * * * * * * * * a normal variable * * * * * * * * DtoArgument * * * * * * * * * IntegerExp::toElem: 4294967295LU @ ulong * * * * * * * * * * IntegerExp::toConstElem: 4294967295LU @ ulong * * * * * * * * * * * value = i64 4294967295 * TemplateInstance::codegen: 'std.format.formatValue!(MsgRange, uint, char).formatValue.__lambda4!uint' * * DtoDefineFunction(std.format.formatValue!(MsgRange, uint, char).formatValue.__lambda4): /usr/include/dlang/ldc/std/format.d(1407) * TemplateInstance::codegen: 'std.format.formatElement!(MsgRange, dchar, char)' * * DtoDefineFunction(std.format.formatElement!(MsgRange, dchar, char).formatElement): /usr/include/dlang/ldc/std/format.d(2596) * * * Doing function body for: formatElement * * * DtoCreateNestedContext for formatElement * * * * DtoCreateNestedContextType for std.format.formatElement!(MsgRange, dchar, char).formatElement * * * CompoundStatement::toIR(): * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2599) * * * * * EqualExp::toElem: cast(int)f.spec == 115 @ bool * * * * * * CastExp::toElem: cast(int)f.spec @ int * * * * * * * DotVarExp::toElem: f.spec @ char * * * * * * * * VarExp::toElem: f @ FormatSpec!char * * * * * * * * * DtoSymbolAddress ('f' of type 'FormatSpec!char') * * * * * * * * * * function param * * * * * * * * * * type: FormatSpec!char * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.spec: * * * * * * * * * Value: %1 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %f_arg, i32 0, i32 2 * * * * * * * Casting from 'char' to 'int' * * * * * * * * cast to: i32 * * * * * * IntegerExp::toElem: 115 @ int * * * * * * * IntegerExp::toConstElem: 115 @ int * * * * * * * * value = i32 115 * * * * * * integral or pointer or interface * * * * * * lv: %3 = zext i8 %2 to i32 * * * * * * rv: i32 115 * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2600) * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2600) * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2601) * * * * * * * * CallExp::toElem: put(w, '\'') @ void * * * * * * * * * VarExp::toElem: put @ @safe void(ref MsgRange r, char e) * * * * * * * * * * DtoSymbolAddress ('put' of type '@safe void(ref MsgRange r, char e)') * * * * * * * * * * * FuncDeclaration * * * * * * * * * DtoCallFunction() * * * * * * * * * * doing normal arguments * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * Function type: @safe void(ref MsgRange r, char e) * * * * * * * * * * DtoArgument * * * * * * * * * * * VarExp::toElem: w @ MsgRange * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'MsgRange') * * * * * * * * * * * * * function param * * * * * * * * * * * * * type: MsgRange * * * * * * * * * * DtoArgument * * * * * * * * * * * IntegerExp::toElem: '\'' @ char * * * * * * * * * * * * IntegerExp::toConstElem: '\'' @ char * * * * * * * * * * * * * value = i8 39 * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2602) * * * * * * * * CallExp::toElem: formatChar(w, val, '\'') @ void * * * * * * * * * VarExp::toElem: formatChar @ @safe void(MsgRange w, const(dchar) c, const(char) quote) * * * * * * * * * * DtoSymbolAddress ('formatChar' of type '@safe void(MsgRange w, const(dchar) c, const(char) quote)') * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * DtoFunctionType(@safe void(MsgRange w, const(dchar) c, const(char) quote)) * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * Final function type: void (i8, i32, %std.experimental.logger.core.MsgRange*) * * * * * * * * * * * DtoResolveFunction(std.format.formatChar!(MsgRange).formatChar): /usr/include/dlang/ldc/std/format.d(2474) * * * * * * * * * * * * DtoDeclareFunction(std.format.formatChar!(MsgRange).formatChar): /usr/include/dlang/ldc/std/format.d(2474) * * * * * * * * * * * * * DtoFunctionType(@safe void(MsgRange w, const(dchar) c, const(char) quote)) * * * * * * * * * * * * * func = declare void @_D3std6format57__T10formatCharTS3std12experimental6logger4core8MsgRangeZ10formatCharFNfS3std12experimental6logger4core8MsgRangexwxaZv(i8, i32, %std.experimental.logger.core.MsgRange*) * * * * * * * * * DtoCallFunction() * * * * * * * * * * Building type: @safe void(MsgRange w, const(dchar) c, const(char) quote) * * * * * * * * * * * DtoFunctionType(@safe void(MsgRange w, const(dchar) c, const(char) quote)) * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * Final function type: void (i8, i32, %std.experimental.logger.core.MsgRange*) * * * * * * * * * * doing normal arguments * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * Function type: @safe void(MsgRange w, const(dchar) c, const(char) quote) * * * * * * * * * * DtoArgument * * * * * * * * * * * VarExp::toElem: w @ MsgRange * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'MsgRange') * * * * * * * * * * * * * function param * * * * * * * * * * * * * type: MsgRange * * * * * * * * * * DtoArgument * * * * * * * * * * * VarExp::toElem: val @ const(dchar) * * * * * * * * * * * * DtoSymbolAddress ('val' of type 'dchar') * * * * * * * * * * * * * function param * * * * * * * * * * * * * type: dchar * * * * * * * * * * DtoArgument * * * * * * * * * * * IntegerExp::toElem: '\'' @ const(char) * * * * * * * * * * * * IntegerExp::toConstElem: '\'' @ const(char) * * * * * * * * * * * * * value = i8 39 * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2603) * * * * * * * * CallExp::toElem: put(w, '\'') @ void * * * * * * * * * VarExp::toElem: put @ @safe void(ref MsgRange r, char e) * * * * * * * * * * DtoSymbolAddress ('put' of type '@safe void(ref MsgRange r, char e)') * * * * * * * * * * * FuncDeclaration * * * * * * * * * DtoCallFunction() * * * * * * * * * * doing normal arguments * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * Function type: @safe void(ref MsgRange r, char e) * * * * * * * * * * DtoArgument * * * * * * * * * * * VarExp::toElem: w @ MsgRange * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'MsgRange') * * * * * * * * * * * * * function param * * * * * * * * * * * * * type: MsgRange * * * * * * * * * * DtoArgument * * * * * * * * * * * IntegerExp::toElem: '\'' @ char * * * * * * * * * * * * IntegerExp::toConstElem: '\'' @ char * * * * * * * * * * * * * value = i8 39 * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2606) * * * * * * CallExp::toElem: formatValue(w, val, f) @ void * * * * * * * VarExp::toElem: formatValue @ @safe void(MsgRange w, dchar obj, ref FormatSpec!char f) * * * * * * * * DtoSymbolAddress ('formatValue' of type '@safe void(MsgRange w, dchar obj, ref FormatSpec!char f)') * * * * * * * * * FuncDeclaration * * * * * * * DtoCallFunction() * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (0) * * * * * * * * Function type: @safe void(MsgRange w, dchar obj, ref FormatSpec!char f) * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: w @ MsgRange * * * * * * * * * * DtoSymbolAddress ('w' of type 'MsgRange') * * * * * * * * * * * function param * * * * * * * * * * * type: MsgRange * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: val @ dchar * * * * * * * * * * DtoSymbolAddress ('val' of type 'dchar') * * * * * * * * * * * function param * * * * * * * * * * * type: dchar * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: f @ FormatSpec!char * * * * * * * * * * DtoSymbolAddress ('f' of type 'FormatSpec!char') * * * * * * * * * * * function param * * * * * * * * * * * type: FormatSpec!char * TemplateInstance::codegen: 'std.format.formatChar!(MsgRange)' * * DtoDefineFunction(std.format.formatChar!(MsgRange).formatChar): /usr/include/dlang/ldc/std/format.d(2474) * * * Doing function body for: formatChar * * * DtoCreateNestedContext for formatChar * * * * DtoCreateNestedContextType for std.format.formatChar!(MsgRange).formatChar * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2475) * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2478) * * * * * * CallExp::toElem: isGraphical(c) @ bool * * * * * * * VarExp::toElem: isGraphical @ pure nothrow @nogc @safe bool(dchar c) * * * * * * * * DtoSymbolAddress ('isGraphical' of type 'pure nothrow @nogc @safe bool(dchar c)') * * * * * * * * * FuncDeclaration * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe bool(dchar c)) * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: i1 (i32) * * * * * * * * * DtoResolveFunction(std.uni.isGraphical): /usr/include/dlang/ldc/std/uni.d(8901) * * * * * * * * * * DtoDeclareFunction(std.uni.isGraphical): /usr/include/dlang/ldc/std/uni.d(8901) * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe bool(dchar c)) * * * * * * * * * * * func = declare i1 @_D3std3uni11isGraphicalFNaNbNiNfwZb(i32) * * * * * * * DtoCallFunction() * * * * * * * * Building type: pure nothrow @nogc @safe bool(dchar c) * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe bool(dchar c)) * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: i1 (i32) * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (0) * * * * * * * * Function type: pure nothrow @nogc @safe bool(dchar c) * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: c @ dchar * * * * * * * * * * DtoSymbolAddress ('c' of type 'const(dchar)') * * * * * * * * * * * function param * * * * * * * * * * * type: const(dchar) * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2479) * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2480) * * * * * * * * OrOrExp::toElem: cast(uint)c == cast(uint)cast(int)quote || cast(uint)c == 92u @ bool * * * * * * * * * EqualExp::toElem: cast(uint)c == cast(uint)cast(int)quote @ bool * * * * * * * * * * CastExp::toElem: cast(uint)c @ uint * * * * * * * * * * * VarExp::toElem: c @ const(dchar) * * * * * * * * * * * * DtoSymbolAddress ('c' of type 'const(dchar)') * * * * * * * * * * * * * function param * * * * * * * * * * * * * type: const(dchar) * * * * * * * * * * * Casting from 'const(dchar)' to 'uint' * * * * * * * * * * CastExp::toElem: cast(uint)cast(int)quote @ uint * * * * * * * * * * * CastExp::toElem: cast(int)quote @ int * * * * * * * * * * * * VarExp::toElem: quote @ const(char) * * * * * * * * * * * * * DtoSymbolAddress ('quote' of type 'const(char)') * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * type: const(char) * * * * * * * * * * * * Casting from 'const(char)' to 'int' * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * Casting from 'int' to 'uint' * * * * * * * * * * integral or pointer or interface * * * * * * * * * * lv: %3 = load i32, i32* %c * * * * * * * * * * rv: %5 = zext i8 %4 to i32 * * * * * * * * * EqualExp::toElem: cast(uint)c == 92u @ bool * * * * * * * * * * CastExp::toElem: cast(uint)c @ uint * * * * * * * * * * * VarExp::toElem: c @ const(dchar) * * * * * * * * * * * * DtoSymbolAddress ('c' of type 'const(dchar)') * * * * * * * * * * * * * function param * * * * * * * * * * * * * type: const(dchar) * * * * * * * * * * * Casting from 'const(dchar)' to 'uint' * * * * * * * * * * IntegerExp::toElem: 92u @ uint * * * * * * * * * * * IntegerExp::toConstElem: 92u @ uint * * * * * * * * * * * * value = i32 92 * * * * * * * * * * integral or pointer or interface * * * * * * * * * * lv: %7 = load i32, i32* %c * * * * * * * * * * rv: i32 92 * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2481) * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2481) * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2482) * * * * * * * * * * * CallExp::toElem: put(w, '\x5c') @ void * * * * * * * * * * * * VarExp::toElem: put @ @safe void(ref MsgRange r, char e) * * * * * * * * * * * * * DtoSymbolAddress ('put' of type '@safe void(ref MsgRange r, char e)') * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * Function type: @safe void(ref MsgRange r, char e) * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * VarExp::toElem: w @ MsgRange * * * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'MsgRange') * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * type: MsgRange * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * IntegerExp::toElem: '\x5c' @ char * * * * * * * * * * * * * * * IntegerExp::toConstElem: '\x5c' @ char * * * * * * * * * * * * * * * * value = i8 92 * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2483) * * * * * * * * * * * CallExp::toElem: put(w, c) @ void * * * * * * * * * * * * VarExp::toElem: put @ @safe void(ref MsgRange r, const(dchar) e) * * * * * * * * * * * * * DtoSymbolAddress ('put' of type '@safe void(ref MsgRange r, const(dchar) e)') * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * DtoFunctionType(@safe void(ref MsgRange r, const(dchar) e)) * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * Final function type: void (i32, %std.experimental.logger.core.MsgRange*) * * * * * * * * * * * * * * DtoResolveFunction(std.range.primitives.put!(MsgRange, const(dchar)).put): /usr/include/dlang/ldc/std/range/primitives.d(277) * * * * * * * * * * * * * * * DtoDeclareFunction(std.range.primitives.put!(MsgRange, const(dchar)).put): /usr/include/dlang/ldc/std/range/primitives.d(277) * * * * * * * * * * * * * * * * DtoFunctionType(@safe void(ref MsgRange r, const(dchar) e)) * * * * * * * * * * * * * * * * func = declare void @_D3std5range10primitives52__T3putTS3std12experimental6logger4core8MsgRangeTxwZ3putFNfKS3std12experimental6logger4core8MsgRangexwZv(i32, %std.experimental.logger.core.MsgRange*) * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * Building type: @safe void(ref MsgRange r, const(dchar) e) * * * * * * * * * * * * * * DtoFunctionType(@safe void(ref MsgRange r, const(dchar) e)) * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * Final function type: void (i32, %std.experimental.logger.core.MsgRange*) * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * Function type: @safe void(ref MsgRange r, const(dchar) e) * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * VarExp::toElem: w @ MsgRange * * * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'MsgRange') * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * type: MsgRange * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * VarExp::toElem: c @ const(dchar) * * * * * * * * * * * * * * * DtoSymbolAddress ('c' of type 'const(dchar)') * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * type: const(dchar) * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2486) * * * * * * * * * CallExp::toElem: put(w, c) @ void * * * * * * * * * * VarExp::toElem: put @ @safe void(ref MsgRange r, const(dchar) e) * * * * * * * * * * * DtoSymbolAddress ('put' of type '@safe void(ref MsgRange r, const(dchar) e)') * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * doing normal arguments * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * Function type: @safe void(ref MsgRange r, const(dchar) e) * * * * * * * * * * * DtoArgument * * * * * * * * * * * * VarExp::toElem: w @ MsgRange * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'MsgRange') * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * type: MsgRange * * * * * * * * * * * DtoArgument * * * * * * * * * * * * VarExp::toElem: c @ const(dchar) * * * * * * * * * * * * * DtoSymbolAddress ('c' of type 'const(dchar)') * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * type: const(dchar) * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2488) * * * * * * * CmpExp::toElem: cast(uint)c <= 255u @ bool * * * * * * * * CastExp::toElem: cast(uint)c @ uint * * * * * * * * * VarExp::toElem: c @ const(dchar) * * * * * * * * * * DtoSymbolAddress ('c' of type 'const(dchar)') * * * * * * * * * * * function param * * * * * * * * * * * type: const(dchar) * * * * * * * * * Casting from 'const(dchar)' to 'uint' * * * * * * * * IntegerExp::toElem: 255u @ uint * * * * * * * * * IntegerExp::toConstElem: 255u @ uint * * * * * * * * * * value = i32 255 * * * * * * * * type 1: %7 = load i32, i32* %c * * * * * * * * type 2: i32 255 * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2489) * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2489) * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2490) * * * * * * * * * * CallExp::toElem: put(w, '\x5c') @ void * * * * * * * * * * * VarExp::toElem: put @ @safe void(ref MsgRange r, char e) * * * * * * * * * * * * DtoSymbolAddress ('put' of type '@safe void(ref MsgRange r, char e)') * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * Function type: @safe void(ref MsgRange r, char e) * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * VarExp::toElem: w @ MsgRange * * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'MsgRange') * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * type: MsgRange * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * IntegerExp::toElem: '\x5c' @ char * * * * * * * * * * * * * * IntegerExp::toConstElem: '\x5c' @ char * * * * * * * * * * * * * * * value = i8 92 * * * * * * * * * SwitchStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2491) * * * * * * * * * * has default * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2492) * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2492) * * * * * * * * * * * * CaseStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2493) * * * * * * * * * * * * * IntegerExp::toConstElem: 0u @ uint * * * * * * * * * * * * * * value = i32 0 * * * * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2493) * * * * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2493) * * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2493) * * * * * * * * * * * * * * * * CallExp::toElem: put(w, '0') @ void * * * * * * * * * * * * * * * * * VarExp::toElem: put @ @safe void(ref MsgRange r, char e) * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('put' of type '@safe void(ref MsgRange r, char e)') * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * Function type: @safe void(ref MsgRange r, char e) * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * VarExp::toElem: w @ MsgRange * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'MsgRange') * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * type: MsgRange * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: '0' @ char * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: '0' @ char * * * * * * * * * * * * * * * * * * * * * value = i8 48 * * * * * * * * * * * * * * * BreakStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2493) * * * * * * * * * * * * CaseStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2494) * * * * * * * * * * * * * IntegerExp::toConstElem: 7u @ uint * * * * * * * * * * * * * * value = i32 7 * * * * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2494) * * * * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2494) * * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2494) * * * * * * * * * * * * * * * * CallExp::toElem: put(w, 'a') @ void * * * * * * * * * * * * * * * * * VarExp::toElem: put @ @safe void(ref MsgRange r, char e) * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('put' of type '@safe void(ref MsgRange r, char e)') * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * Function type: @safe void(ref MsgRange r, char e) * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * VarExp::toElem: w @ MsgRange * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'MsgRange') * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * type: MsgRange * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 'a' @ char * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 'a' @ char * * * * * * * * * * * * * * * * * * * * * value = i8 97 * * * * * * * * * * * * * * * BreakStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2494) * * * * * * * * * * * * CaseStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2495) * * * * * * * * * * * * * IntegerExp::toConstElem: 8u @ uint * * * * * * * * * * * * * * value = i32 8 * * * * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2495) * * * * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2495) * * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2495) * * * * * * * * * * * * * * * * CallExp::toElem: put(w, 'b') @ void * * * * * * * * * * * * * * * * * VarExp::toElem: put @ @safe void(ref MsgRange r, char e) * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('put' of type '@safe void(ref MsgRange r, char e)') * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * Function type: @safe void(ref MsgRange r, char e) * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * VarExp::toElem: w @ MsgRange * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'MsgRange') * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * type: MsgRange * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 'b' @ char * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 'b' @ char * * * * * * * * * * * * * * * * * * * * * value = i8 98 * * * * * * * * * * * * * * * BreakStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2495) * * * * * * * * * * * * CaseStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2496) * * * * * * * * * * * * * IntegerExp::toConstElem: 12u @ uint * * * * * * * * * * * * * * value = i32 12 * * * * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2496) * * * * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2496) * * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2496) * * * * * * * * * * * * * * * * CallExp::toElem: put(w, 'f') @ void * * * * * * * * * * * * * * * * * VarExp::toElem: put @ @safe void(ref MsgRange r, char e) * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('put' of type '@safe void(ref MsgRange r, char e)') * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * Function type: @safe void(ref MsgRange r, char e) * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * VarExp::toElem: w @ MsgRange * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'MsgRange') * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * type: MsgRange * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 'f' @ char * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 'f' @ char * * * * * * * * * * * * * * * * * * * * * value = i8 102 * * * * * * * * * * * * * * * BreakStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2496) * * * * * * * * * * * * CaseStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2497) * * * * * * * * * * * * * IntegerExp::toConstElem: 10u @ uint * * * * * * * * * * * * * * value = i32 10 * * * * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2497) * * * * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2497) * * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2497) * * * * * * * * * * * * * * * * CallExp::toElem: put(w, 'n') @ void * * * * * * * * * * * * * * * * * VarExp::toElem: put @ @safe void(ref MsgRange r, char e) * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('put' of type '@safe void(ref MsgRange r, char e)') * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * Function type: @safe void(ref MsgRange r, char e) * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * VarExp::toElem: w @ MsgRange * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'MsgRange') * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * type: MsgRange * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 'n' @ char * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 'n' @ char * * * * * * * * * * * * * * * * * * * * * value = i8 110 * * * * * * * * * * * * * * * BreakStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2497) * * * * * * * * * * * * CaseStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2498) * * * * * * * * * * * * * IntegerExp::toConstElem: 13u @ uint * * * * * * * * * * * * * * value = i32 13 * * * * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2498) * * * * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2498) * * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2498) * * * * * * * * * * * * * * * * CallExp::toElem: put(w, 'r') @ void * * * * * * * * * * * * * * * * * VarExp::toElem: put @ @safe void(ref MsgRange r, char e) * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('put' of type '@safe void(ref MsgRange r, char e)') * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * Function type: @safe void(ref MsgRange r, char e) * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * VarExp::toElem: w @ MsgRange * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'MsgRange') * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * type: MsgRange * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 'r' @ char * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 'r' @ char * * * * * * * * * * * * * * * * * * * * * value = i8 114 * * * * * * * * * * * * * * * BreakStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2498) * * * * * * * * * * * * CaseStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2499) * * * * * * * * * * * * * IntegerExp::toConstElem: 9u @ uint * * * * * * * * * * * * * * value = i32 9 * * * * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2499) * * * * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2499) * * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2499) * * * * * * * * * * * * * * * * CallExp::toElem: put(w, 't') @ void * * * * * * * * * * * * * * * * * VarExp::toElem: put @ @safe void(ref MsgRange r, char e) * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('put' of type '@safe void(ref MsgRange r, char e)') * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * Function type: @safe void(ref MsgRange r, char e) * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * VarExp::toElem: w @ MsgRange * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'MsgRange') * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * type: MsgRange * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 't' @ char * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 't' @ char * * * * * * * * * * * * * * * * * * * * * value = i8 116 * * * * * * * * * * * * * * * BreakStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2499) * * * * * * * * * * * * CaseStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2500) * * * * * * * * * * * * * IntegerExp::toConstElem: 11u @ uint * * * * * * * * * * * * * * value = i32 11 * * * * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2500) * * * * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2500) * * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2500) * * * * * * * * * * * * * * * * CallExp::toElem: put(w, 'v') @ void * * * * * * * * * * * * * * * * * VarExp::toElem: put @ @safe void(ref MsgRange r, char e) * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('put' of type '@safe void(ref MsgRange r, char e)') * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * Function type: @safe void(ref MsgRange r, char e) * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * VarExp::toElem: w @ MsgRange * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'MsgRange') * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * type: MsgRange * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 'v' @ char * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 'v' @ char * * * * * * * * * * * * * * * * * * * * * value = i8 118 * * * * * * * * * * * * * * * BreakStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2500) * * * * * * * * * * * * DefaultStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2501) * * * * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2501) * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2502) * * * * * * * * * * * * * * * CallExp::toElem: formattedWrite(w, "x%02X", cast(uint)c) @ uint * * * * * * * * * * * * * * * * VarExp::toElem: formattedWrite @ @safe uint(MsgRange w, const(char[]) fmt, uint _param_2) * * * * * * * * * * * * * * * * * DtoSymbolAddress ('formattedWrite' of type '@safe uint(MsgRange w, const(char[]) fmt, uint _param_2)') * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * DtoFunctionType(@safe uint(MsgRange w, const(char[]) fmt, uint _param_2)) * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * Final function type: i32 (i32, { i64, i8* }, %std.experimental.logger.core.MsgRange*) * * * * * * * * * * * * * * * * * * DtoResolveFunction(std.format.formattedWrite!(MsgRange, char, uint).formattedWrite): /usr/include/dlang/ldc/std/format.d(420) * * * * * * * * * * * * * * * * * * * DtoDeclareFunction(std.format.formattedWrite!(MsgRange, char, uint).formattedWrite): /usr/include/dlang/ldc/std/format.d(420) * * * * * * * * * * * * * * * * * * * * DtoFunctionType(@safe uint(MsgRange w, const(char[]) fmt, uint _param_2)) * * * * * * * * * * * * * * * * * * * * func = declare i32 @_D3std6format65__T14formattedWriteTS3std12experimental6logger4core8MsgRangeTaTkZ14formattedWriteFNfS3std12experimental6logger4core8MsgRangexAakZk(i32, { i64, i8* }, %std.experimental.logger.core.MsgRange*) * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * Building type: @safe uint(MsgRange w, const(char[]) fmt, uint _param_2) * * * * * * * * * * * * * * * * * * DtoFunctionType(@safe uint(MsgRange w, const(char[]) fmt, uint _param_2)) * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * Final function type: i32 (i32, { i64, i8* }, %std.experimental.logger.core.MsgRange*) * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * Function type: @safe uint(MsgRange w, const(char[]) fmt, uint _param_2) * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * VarExp::toElem: w @ MsgRange * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'MsgRange') * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * type: MsgRange * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * StringExp::toElem: "x%02X" @ const(char[]) * * * * * * * * * * * * * * * * * * * type: [6 x i8] * * * * * * * * * * * * * * * * * * * init: [6 x i8] c"x%02X\00" * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * CastExp::toElem: cast(uint)c @ uint * * * * * * * * * * * * * * * * * * * VarExp::toElem: c @ const(dchar) * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('c' of type 'const(dchar)') * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * type: const(dchar) * * * * * * * * * * * * * * * * * * * Casting from 'const(dchar)' to 'uint' * * * * * * * * * * CastExp::toElem: cast(uint)c @ uint * * * * * * * * * * * VarExp::toElem: c @ const(dchar) * * * * * * * * * * * * DtoSymbolAddress ('c' of type 'const(dchar)') * * * * * * * * * * * * * function param * * * * * * * * * * * * * type: const(dchar) * * * * * * * * * * * Casting from 'const(dchar)' to 'uint' * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2505) * * * * * * * * CmpExp::toElem: cast(uint)c <= 65535u @ bool * * * * * * * * * CastExp::toElem: cast(uint)c @ uint * * * * * * * * * * VarExp::toElem: c @ const(dchar) * * * * * * * * * * * DtoSymbolAddress ('c' of type 'const(dchar)') * * * * * * * * * * * * function param * * * * * * * * * * * * type: const(dchar) * * * * * * * * * * Casting from 'const(dchar)' to 'uint' * * * * * * * * * IntegerExp::toElem: 65535u @ uint * * * * * * * * * * IntegerExp::toConstElem: 65535u @ uint * * * * * * * * * * * value = i32 65535 * * * * * * * * * type 1: %14 = load i32, i32* %c * * * * * * * * * type 2: i32 65535 * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2506) * * * * * * * * * CallExp::toElem: formattedWrite(w, "\\u%04X", cast(uint)c) @ uint * * * * * * * * * * VarExp::toElem: formattedWrite @ @safe uint(MsgRange w, const(char[]) fmt, uint _param_2) * * * * * * * * * * * DtoSymbolAddress ('formattedWrite' of type '@safe uint(MsgRange w, const(char[]) fmt, uint _param_2)') * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * doing normal arguments * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * Function type: @safe uint(MsgRange w, const(char[]) fmt, uint _param_2) * * * * * * * * * * * DtoArgument * * * * * * * * * * * * VarExp::toElem: w @ MsgRange * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'MsgRange') * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * type: MsgRange * * * * * * * * * * * DtoArgument * * * * * * * * * * * * StringExp::toElem: "\\u%04X" @ const(char[]) * * * * * * * * * * * * * type: [7 x i8] * * * * * * * * * * * * * init: [7 x i8] c"\5Cu%04X\00" * * * * * * * * * * * DtoArgument * * * * * * * * * * * * CastExp::toElem: cast(uint)c @ uint * * * * * * * * * * * * * VarExp::toElem: c @ const(dchar) * * * * * * * * * * * * * * DtoSymbolAddress ('c' of type 'const(dchar)') * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * type: const(dchar) * * * * * * * * * * * * * Casting from 'const(dchar)' to 'uint' * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2508) * * * * * * * * * CallExp::toElem: formattedWrite(w, "\\U%08X", cast(uint)c) @ uint * * * * * * * * * * VarExp::toElem: formattedWrite @ @safe uint(MsgRange w, const(char[]) fmt, uint _param_2) * * * * * * * * * * * DtoSymbolAddress ('formattedWrite' of type '@safe uint(MsgRange w, const(char[]) fmt, uint _param_2)') * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * doing normal arguments * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * Function type: @safe uint(MsgRange w, const(char[]) fmt, uint _param_2) * * * * * * * * * * * DtoArgument * * * * * * * * * * * * VarExp::toElem: w @ MsgRange * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'MsgRange') * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * type: MsgRange * * * * * * * * * * * DtoArgument * * * * * * * * * * * * StringExp::toElem: "\\U%08X" @ const(char[]) * * * * * * * * * * * * * type: [7 x i8] * * * * * * * * * * * * * init: [7 x i8] c"\5CU%08X\00" * * * * * * * * * * * DtoArgument * * * * * * * * * * * * CastExp::toElem: cast(uint)c @ uint * * * * * * * * * * * * * VarExp::toElem: c @ const(dchar) * * * * * * * * * * * * * * DtoSymbolAddress ('c' of type 'const(dchar)') * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * type: const(dchar) * * * * * * * * * * * * * Casting from 'const(dchar)' to 'uint' * TemplateInstance::codegen: 'std.range.primitives.put!(MsgRange, const(dchar))' * * DtoDefineFunction(std.range.primitives.put!(MsgRange, const(dchar)).put): /usr/include/dlang/ldc/std/range/primitives.d(277) * * * Doing function body for: put * * * DtoCreateNestedContext for put * * * * DtoCreateNestedContextType for std.range.primitives.put!(MsgRange, const(dchar)).put * * * CompoundStatement::toIR(): * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/range/primitives.d(282) * * * * * CallExp::toElem: doPut(r, e) @ void * * * * * * VarExp::toElem: doPut @ @safe void(ref MsgRange r, auto ref const(dchar) e) * * * * * * * DtoSymbolAddress ('doPut' of type '@safe void(ref MsgRange r, auto ref const(dchar) e)') * * * * * * * * FuncDeclaration * * * * * * * * DtoFunctionType(@safe void(ref MsgRange r, auto ref const(dchar) e)) * * * * * * * * * Building type: const(dchar)* * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * Final function type: void (i32*, %std.experimental.logger.core.MsgRange*) * * * * * * * * DtoResolveFunction(std.range.primitives.doPut!(MsgRange, const(dchar)).doPut): /usr/include/dlang/ldc/std/range/primitives.d(182) * * * * * * * * * DtoDeclareFunction(std.range.primitives.doPut!(MsgRange, const(dchar)).doPut): /usr/include/dlang/ldc/std/range/primitives.d(182) * * * * * * * * * * DtoFunctionType(@safe void(ref MsgRange r, auto ref const(dchar) e)) * * * * * * * * * * func = declare void @_D3std5range10primitives54__T5doPutTS3std12experimental6logger4core8MsgRangeTxwZ5doPutFNfKS3std12experimental6logger4core8MsgRangeKxwZv(i32*, %std.experimental.logger.core.MsgRange*) * * * * * * DtoCallFunction() * * * * * * * Building type: @safe void(ref MsgRange r, auto ref const(dchar) e) * * * * * * * * DtoFunctionType(@safe void(ref MsgRange r, auto ref const(dchar) e)) * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * Final function type: void (i32*, %std.experimental.logger.core.MsgRange*) * * * * * * * doing normal arguments * * * * * * * Arguments so far: (0) * * * * * * * Function type: @safe void(ref MsgRange r, auto ref const(dchar) e) * * * * * * * DtoArgument * * * * * * * * VarExp::toElem: r @ MsgRange * * * * * * * * * DtoSymbolAddress ('r' of type 'MsgRange') * * * * * * * * * * function param * * * * * * * * * * type: MsgRange * * * * * * * DtoArgument * * * * * * * * VarExp::toElem: e @ const(dchar) * * * * * * * * * DtoSymbolAddress ('e' of type 'const(dchar)') * * * * * * * * * * function param * * * * * * * * * * type: const(dchar) * TemplateInstance::codegen: 'std.range.primitives.doPut!(MsgRange, const(dchar))' * * DtoDefineFunction(std.range.primitives.doPut!(MsgRange, const(dchar)).doPut): /usr/include/dlang/ldc/std/range/primitives.d(182) * * * Doing function body for: doPut * * * DtoCreateNestedContext for doPut * * * * DtoCreateNestedContextType for std.range.primitives.doPut!(MsgRange, const(dchar)).doPut * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/range/primitives.d(183) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/range/primitives.d(187) * * * * * * DeclarationExp::toElem: enum bool usingPut = true; | T=void * * * * * * * DtoDeclarationExp: usingPut * * * * * * * * VarDeclaration * * * * * * * * Manifest constant, nothing to do. * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/range/primitives.d(193) * * * * * * CallExp::toElem: r.put(e) @ void * * * * * * * DotVarExp::toElem: r.put @ @safe void(dchar elem) * * * * * * * * VarExp::toElem: r @ MsgRange * * * * * * * * * DtoSymbolAddress ('r' of type 'MsgRange') * * * * * * * * * * function param * * * * * * * * * * type: MsgRange * * * * * * * DtoCallFunction() * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (1) * * * * * * * * * %std.experimental.logger.core.MsgRange* %r_arg * * * * * * * * Function type: @safe void(dchar elem) * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: e @ dchar * * * * * * * * * * DtoSymbolAddress ('e' of type 'const(dchar)') * * * * * * * * * * * function param * * * * * * * * * * * type: const(dchar) * TemplateInstance::codegen: 'std.traits.isSomeString!(const(dchar))' * TemplateInstance::codegen: 'std.traits.isStaticArray!(const(dchar))' * TemplateInstance::codegen: 'std.format.formattedWrite!(MsgRange, char, uint)' * * DtoDefineFunction(std.format.formattedWrite!(MsgRange, char, uint).formattedWrite): /usr/include/dlang/ldc/std/format.d(420) * * * Doing function body for: formattedWrite * * * DtoCreateNestedContext for formattedWrite * * * * DtoCreateNestedContextType for std.format.formattedWrite!(MsgRange, char, uint).formattedWrite * * * * * has nested frame * * * * * Function formattedWrite has depth 0 * * * * * Nested var 'spec' of type %"std.format.FormatSpec!char.FormatSpec" = type { i32, i32, i8, i8, i8, i8, [4 x i8], { i64, i8* }, { i64, i8* }, { i64, i8* } } * * * * * frameType = %nest.formattedWrite.2 = type { %"std.format.FormatSpec!char.FormatSpec" } * * * * nested var: spec * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(421) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(424) * * * * * * DeclarationExp::toElem: alias FPfmt = void function(MsgRange, const(void)*, ref FormatSpec!char) pure nothrow @safe; | T=void * * * * * * * DtoDeclarationExp: FPfmt * * * * * * * * Ignoring Symbol: alias * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(426) * * * * * * DeclarationExp::toElem: FormatSpec!char spec = spec = FormatSpec , spec.this(fmt); | T=void * * * * * * * DtoDeclarationExp: spec * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = FormatSpec!char) * * * * * * * * * has nestedref set (referenced by nested function/delegate) * * * * * * * * * llvm value for decl: %spec = getelementptr %nest.formattedWrite.2, %nest.formattedWrite.2* %.frame, i32 0, i32 0 * * * * * * * * * expression initializer * * * * * * * * * CommaExp::toElem: spec = FormatSpec , spec.this(fmt) @ FormatSpec!char * * * * * * * * * * AssignExp::toElem: spec = FormatSpec | (FormatSpec!char)(FormatSpec!char = FormatSpec!char) * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(426) * * * * * * * * * * * VarExp::toElem: FormatSpec @ FormatSpec!char * * * * * * * * * * * * DtoSymbolAddress ('FormatSpec' of type 'FormatSpec!char') * * * * * * * * * * * * * Sym: type=FormatSpec!char * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * DtoAssign() * * * * * * * * * * CallExp::toElem: spec.this(fmt) @ FormatSpec!char * * * * * * * * * * * DotVarExp::toElem: spec.this @ pure nothrow @nogc ref @safe FormatSpec!char(const(char[]) fmt) * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(426) * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * %spec = getelementptr %nest.formattedWrite.2, %nest.formattedWrite.2* %.frame, i32 0, i32 0 * * * * * * * * * * * * Function type: pure nothrow @nogc ref @safe FormatSpec!char(const(char[]) fmt) * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * VarExp::toElem: fmt @ const(char[]) * * * * * * * * * * * * * * DtoSymbolAddress ('fmt' of type 'const(char[])') * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * type: const(char[]) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(428) * * * * * * DeclarationExp::toElem: void function(MsgRange, const(void)*, ref FormatSpec!char) pure nothrow @safe[1] funs = null; | T=void * * * * * * * DtoDeclarationExp: funs * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = void function(MsgRange, const(void)*, ref FormatSpec!char) pure nothrow @safe[1]) * * * * * * * * * llvm value for decl: %funs = alloca [1 x void (%"std.format.FormatSpec!char.FormatSpec"*, i8*, %std.experimental.logger.core.MsgRange*)*], align 8 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: funs[] = null | (void function(MsgRange, const(void)*, ref FormatSpec!char) pure nothrow @safe[])(void function(MsgRange, const(void)*, ref FormatSpec!char) pure nothrow @safe[] = void function(MsgRange, const(void)*, ref FormatSpec!char) pure nothrow @safe) * * * * * * * * * * performing static array literal assignment * * * * * * * * * * SliceExp::toElem: funs[] @ void function(MsgRange, const(void)*, ref FormatSpec!char) pure nothrow @safe[] * * * * * * * * * * * VarExp::toElem: funs @ void function(MsgRange, const(void)*, ref FormatSpec!char) pure nothrow @safe[1] * * * * * * * * * * * * DtoSymbolAddress ('funs' of type 'void function(MsgRange, const(void)*, ref FormatSpec!char) pure nothrow @safe[1]') * * * * * * * * * * * * * a normal variable * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * NullExp::toElem(type=void function(MsgRange, const(void)*, ref FormatSpec!char) pure nothrow @safe): null * * * * * * * * * * * NullExp::toConstElem(type=void function(MsgRange, const(void)*, ref FormatSpec!char) pure nothrow @safe): null * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * DtoArrayInit * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(429) * * * * * * DeclarationExp::toElem: const(void)*[1] argsAddresses = null; | T=void * * * * * * * DtoDeclarationExp: argsAddresses * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = const(void)*[1]) * * * * * * * * * llvm value for decl: %argsAddresses = alloca [1 x i8*], align 8 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: argsAddresses[] = null | (const(void)*[])(const(void)*[] = const(void)*) * * * * * * * * * * performing static array literal assignment * * * * * * * * * * SliceExp::toElem: argsAddresses[] @ const(void)*[] * * * * * * * * * * * VarExp::toElem: argsAddresses @ const(void)*[1] * * * * * * * * * * * * DtoSymbolAddress ('argsAddresses' of type 'const(void)*[1]') * * * * * * * * * * * * * a normal variable * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * NullExp::toElem(type=const(void)*): null * * * * * * * * * * * NullExp::toConstElem(type=const(void)*): null * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * DtoArrayInit * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(430) * * * * * * NotExp::toElem: !__ctfe @ bool * * * * * * * VarExp::toElem: __ctfe @ bool * * * * * * * * DtoSymbolAddress ('__ctfe' of type 'bool') * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(431) * * * * * * * UnrolledLoopStatement::toIR(): /usr/include/dlang/ldc/std/format.d(432) * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(432) * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(432) * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(432) * * * * * * * * * * * DeclarationExp::toElem: enum ulong i = 0LU; | T=void * * * * * * * * * * * * DtoDeclarationExp: i * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * Manifest constant, nothing to do. * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(432) * * * * * * * * * * * DeclarationExp::toElem: alias Arg = uint; | T=void * * * * * * * * * * * * DtoDeclarationExp: Arg * * * * * * * * * * * * * Ignoring Symbol: alias * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(434) * * * * * * * * * * * AssignExp::toElem: funs[0] = (*() => & formatGeneric)() | (void function(MsgRange, const(void)*, ref FormatSpec!char) pure nothrow @safe)(void function(MsgRange, const(void)*, ref FormatSpec!char) pure nothrow @safe = void function(MsgRange, const(void)*, ref FormatSpec!char) pure nothrow @safe) * * * * * * * * * * * * IndexExp::toElem: funs[0] @ void function(MsgRange, const(void)*, ref FormatSpec!char) pure nothrow @safe * * * * * * * * * * * * * VarExp::toElem: funs @ void function(MsgRange, const(void)*, ref FormatSpec!char) pure nothrow @safe[1] * * * * * * * * * * * * * * DtoSymbolAddress ('funs' of type 'void function(MsgRange, const(void)*, ref FormatSpec!char) pure nothrow @safe[1]') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * CallExp::toElem: (*() => & formatGeneric)() @ void function(MsgRange, const(void)*, ref FormatSpec!char) pure nothrow @safe * * * * * * * * * * * * * PtrExp::toElem: *() => & formatGeneric @ pure nothrow @nogc @trusted void function(MsgRange, const(void)*, ref FormatSpec!char) pure nothrow @safe() * * * * * * * * * * * * * * FuncExp::toElem: __lambda5 @ void function(MsgRange, const(void)*, ref FormatSpec!char) pure nothrow @safe function() pure nothrow @nogc @trusted * * * * * * * * * * * * * * * kind = function * * * * * * * * * * * * * * * DtoDefineFunction(std.format.formattedWrite!(MsgRange, char, uint).formattedWrite.__lambda5): /usr/include/dlang/ldc/std/format.d(434) * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted void function(MsgRange, const(void)*, ref FormatSpec!char) pure nothrow @safe()) * * * * * * * * * * * * * * * * * Building type: void function(MsgRange, const(void)*, ref FormatSpec!char) pure nothrow @safe * * * * * * * * * * * * * * * * * * Building type: pure nothrow @safe void(MsgRange, const(void)*, ref FormatSpec!char) * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @safe void(MsgRange, const(void)*, ref FormatSpec!char)) * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * Final function type: void (%"std.format.FormatSpec!char.FormatSpec"*, i8*, %std.experimental.logger.core.MsgRange*) * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * Final function type: void (%"std.format.FormatSpec!char.FormatSpec"*, i8*, %std.experimental.logger.core.MsgRange*)* () * * * * * * * * * * * * * * * * DtoResolveFunction(std.format.formattedWrite!(MsgRange, char, uint).formattedWrite.__lambda5): /usr/include/dlang/ldc/std/format.d(434) * * * * * * * * * * * * * * * * * DtoDeclareFunction(std.format.formattedWrite!(MsgRange, char, uint).formattedWrite.__lambda5): /usr/include/dlang/ldc/std/format.d(434) * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted void function(MsgRange, const(void)*, ref FormatSpec!char) pure nothrow @safe()) * * * * * * * * * * * * * * * * * * func = declare void (%"std.format.FormatSpec!char.FormatSpec"*, i8*, %std.experimental.logger.core.MsgRange*)* @_D3std6format65__T14formattedWriteTS3std12experimental6logger4core8MsgRangeTaTkZ14formattedWriteFS3std12experimental6logger4core8MsgRangexAakZ9__lambda5FNaNbNiNeZPFNaNbNfS3std12experimental6logger4core8MsgRangePxvKS3std6format18__T10FormatSpecTaZ10FormatSpecZv() * * * * * * * * * * * * * * * * Doing function body for: __lambda5 * * * * * * * * * * * * * * * * DtoCreateNestedContext for __lambda5 * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for std.format.formattedWrite!(MsgRange, char, uint).formattedWrite.__lambda5 * * * * * * * * * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * * * * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/format.d(434) * * * * * * * * * * * * * * * * * * SymOffExp::toElem: & formatGeneric @ void function(MsgRange, const(void)*, ref FormatSpec!char) pure nothrow @safe * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('formatGeneric' of type '@system void(MsgRange w, const(void)* arg, ref FormatSpec!char f)') * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * * DtoFunctionType(@system void(MsgRange w, const(void)* arg, ref FormatSpec!char f)) * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * * Final function type: void (%"std.format.FormatSpec!char.FormatSpec"*, i8*, %std.experimental.logger.core.MsgRange*) * * * * * * * * * * * * * * * * * * * * DtoResolveFunction(std.format.formatGeneric!(MsgRange, uint, char).formatGeneric): /usr/include/dlang/ldc/std/format.d(3455) * * * * * * * * * * * * * * * * * * * * * DtoDeclareFunction(std.format.formatGeneric!(MsgRange, uint, char).formatGeneric): /usr/include/dlang/ldc/std/format.d(3455) * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(@system void(MsgRange w, const(void)* arg, ref FormatSpec!char f)) * * * * * * * * * * * * * * * * * * * * * * func = declare void @_D3std6format64__T13formatGenericTS3std12experimental6logger4core8MsgRangeTkTaZ13formatGenericFS3std12experimental6logger4core8MsgRangePxvKS3std6format18__T10FormatSpecTaZ10FormatSpecZv(%"std.format.FormatSpec!char.FormatSpec"*, i8*, %std.experimental.logger.core.MsgRange*) * * * * * * * * * * * * * * * * * * * Casting from 'void function(MsgRange w, const(void)* arg, ref FormatSpec!char f) @system' to 'void function(MsgRange, const(void)*, ref FormatSpec!char) pure nothrow @safe' * * * * * * * * * * * * * * * * * * * * src: declare void @_D3std6format64__T13formatGenericTS3std12experimental6logger4core8MsgRangeTkTaZ13formatGenericFS3std12experimental6logger4core8MsgRangePxvKS3std6format18__T10FormatSpecTaZ10FormatSpecZv(%"std.format.FormatSpec!char.FormatSpec"*, i8*, %std.experimental.logger.core.MsgRange* byval) * * * * * * * * * * * * * * * * * * * * to type: void (%"std.format.FormatSpec!char.FormatSpec"*, i8*, %std.experimental.logger.core.MsgRange*)* * * * * * * * * * * * * * * * * * * return value is '0x1270ea48' * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * Building type: pure nothrow @nogc @trusted void function(MsgRange, const(void)*, ref FormatSpec!char) pure nothrow @safe() * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted void function(MsgRange, const(void)*, ref FormatSpec!char) pure nothrow @safe()) * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * Final function type: void (%"std.format.FormatSpec!char.FormatSpec"*, i8*, %std.experimental.logger.core.MsgRange*)* () * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * Function type: pure nothrow @nogc @trusted void function(MsgRange, const(void)*, ref FormatSpec!char) pure nothrow @safe() * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * lhs: %10 = getelementptr [1 x void (%"std.format.FormatSpec!char.FormatSpec"*, i8*, %std.experimental.logger.core.MsgRange*)*], [1 x void (%"std.format.FormatSpec!char.FormatSpec"*, i8*, %std.experimental.logger.core.MsgRange*)*]* %funs, i32 0, i64 0 * * * * * * * * * * * * * rhs: %11 = call void (%"std.format.FormatSpec!char.FormatSpec"*, i8*, %std.experimental.logger.core.MsgRange*)* @_D3std6format65__T14formattedWriteTS3std12experimental6logger4core8MsgRangeTaTkZ14formattedWriteFS3std12experimental6logger4core8MsgRangexAakZ9__lambda5FNaNbNiNeZPFNaNbNfS3std12experimental6logger4core8MsgRangePxvKS3std6format18__T10FormatSpecTaZ10FormatSpecZv() * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(437) * * * * * * * * * * * AssignExp::toElem: argsAddresses[0] = (*(ref uint arg) => cast(const(void*))&arg)(_param_2) | (const(void)*)(const(void)* = const(void)*) * * * * * * * * * * * * IndexExp::toElem: argsAddresses[0] @ const(void)* * * * * * * * * * * * * * VarExp::toElem: argsAddresses @ const(void)*[1] * * * * * * * * * * * * * * DtoSymbolAddress ('argsAddresses' of type 'const(void)*[1]') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * CallExp::toElem: (*(ref uint arg) => cast(const(void*))&arg)(_param_2) @ const(void)* * * * * * * * * * * * * * PtrExp::toElem: *(ref uint arg) => cast(const(void*))&arg @ pure nothrow @nogc @trusted const(void*)(ref uint arg) * * * * * * * * * * * * * * FuncExp::toElem: __lambda6 @ const(void*) function(ref uint arg) pure nothrow @nogc @trusted * * * * * * * * * * * * * * * kind = function * * * * * * * * * * * * * * * DtoDefineFunction(std.format.formattedWrite!(MsgRange, char, uint).formattedWrite.__lambda6): /usr/include/dlang/ldc/std/format.d(437) * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted const(void*)(ref uint arg)) * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * Final function type: i8* (i32*) * * * * * * * * * * * * * * * * DtoResolveFunction(std.format.formattedWrite!(MsgRange, char, uint).formattedWrite.__lambda6): /usr/include/dlang/ldc/std/format.d(437) * * * * * * * * * * * * * * * * * DtoDeclareFunction(std.format.formattedWrite!(MsgRange, char, uint).formattedWrite.__lambda6): /usr/include/dlang/ldc/std/format.d(437) * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted const(void*)(ref uint arg)) * * * * * * * * * * * * * * * * * * func = declare i8* @_D3std6format65__T14formattedWriteTS3std12experimental6logger4core8MsgRangeTaTkZ14formattedWriteFS3std12experimental6logger4core8MsgRangexAakZ16__T9__lambda6TkZ9__lambda6FNaNbNiNeKkZxPv(i32*) * * * * * * * * * * * * * * * * Doing function body for: __lambda6 * * * * * * * * * * * * * * * * DtoCreateNestedContext for __lambda6 * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for std.format.formattedWrite!(MsgRange, char, uint).formattedWrite.__lambda6 * * * * * * * * * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * * * * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/format.d(437) * * * * * * * * * * * * * * * * * * CastExp::toElem: cast(const(void*))&arg @ const(void*) * * * * * * * * * * * * * * * * * * * AddrExp::toElem: &arg @ uint* * * * * * * * * * * * * * * * * * * * * VarExp::toElem: arg @ uint * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('arg' of type 'uint') * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * type: uint * * * * * * * * * * * * * * * * * * * * is nothing special * * * * * * * * * * * * * * * * * * * * lval: i32* %arg_arg * * * * * * * * * * * * * * * * * * * Casting from 'uint*' to 'const(void*)' * * * * * * * * * * * * * * * * * * * * src: i32* %arg_arg * * * * * * * * * * * * * * * * * * * * to type: i8* * * * * * * * * * * * * * * * * * * return value is '0x12715888' * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * Building type: pure nothrow @nogc @trusted const(void*)(ref uint arg) * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted const(void*)(ref uint arg)) * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * Final function type: i8* (i32*) * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * Function type: pure nothrow @nogc @trusted const(void*)(ref uint arg) * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * VarExp::toElem: _param_2 @ uint * * * * * * * * * * * * * * * * DtoSymbolAddress ('_param_2' of type 'uint') * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * type: uint * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * lhs: %12 = getelementptr [1 x i8*], [1 x i8*]* %argsAddresses, i32 0, i64 0 * * * * * * * * * * * * * rhs: %13 = call i8* @_D3std6format65__T14formattedWriteTS3std12experimental6logger4core8MsgRangeTaTkZ14formattedWriteFS3std12experimental6logger4core8MsgRangexAakZ16__T9__lambda6TkZ9__lambda6FNaNbNiNeKkZxPv(i32* %_param_2) * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(440) * * * * * * * * * * * IntegerExp::toElem: 0 @ int * * * * * * * * * * * * IntegerExp::toConstElem: 0 @ int * * * * * * * * * * * * * value = i32 0 * * * * * * * * * * * if conditional: i32 0 * * * * * * * * * * * Casting from 'int' to 'bool' * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(440) * * * * * * * * * * * * CallExp::toElem: formatValue(w, _param_2, spec) @ void * * * * * * * * * * * * * VarExp::toElem: formatValue @ @safe void(MsgRange w, uint obj, ref FormatSpec!char f) * * * * * * * * * * * * * * DtoSymbolAddress ('formatValue' of type '@safe void(MsgRange w, uint obj, ref FormatSpec!char f)') * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * Function type: @safe void(MsgRange w, uint obj, ref FormatSpec!char f) * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * VarExp::toElem: w @ MsgRange * * * * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'MsgRange') * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * type: MsgRange * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * VarExp::toElem: _param_2 @ uint * * * * * * * * * * * * * * * * DtoSymbolAddress ('_param_2' of type 'uint') * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * type: uint * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(440) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(445) * * * * * * DeclarationExp::toElem: uint currentArg = 0u; | T=void * * * * * * * DtoDeclarationExp: currentArg * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = uint) * * * * * * * * * llvm value for decl: %currentArg = alloca i32, align 4 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: currentArg = 0u | (uint)(uint = uint) * * * * * * * * * * VarExp::toElem: currentArg @ uint * * * * * * * * * * * DtoSymbolAddress ('currentArg' of type 'uint') * * * * * * * * * * * * a normal variable * * * * * * * * * * IntegerExp::toElem: 0u @ uint * * * * * * * * * * * IntegerExp::toConstElem: 0u @ uint * * * * * * * * * * * * value = i32 0 * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %currentArg = alloca i32, align 4 * * * * * * * * * * * rhs: i32 0 * * * * * ForStatement::toIR(): /usr/include/dlang/ldc/std/format.d(446) * * * * * * CallExp::toElem: spec.writeUpToNextSpec(w) @ bool * * * * * * * DotVarExp::toElem: spec.writeUpToNextSpec @ @safe bool(MsgRange writer) * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * nested variable * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(446) * * * * * * * DtoCallFunction() * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (1) * * * * * * * * * %spec = getelementptr %nest.formattedWrite.2, %nest.formattedWrite.2* %.frame, i32 0, i32 0 * * * * * * * * Function type: @safe bool(MsgRange writer) * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: w @ MsgRange * * * * * * * * * * DtoSymbolAddress ('w' of type 'MsgRange') * * * * * * * * * * * function param * * * * * * * * * * * type: MsgRange * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(447) * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(447) * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(448) * * * * * * * * * AndAndExp::toElem: cast(ulong)currentArg == 1LU && !spec.indexStart @ bool * * * * * * * * * * EqualExp::toElem: cast(ulong)currentArg == 1LU @ bool * * * * * * * * * * * CastExp::toElem: cast(ulong)currentArg @ ulong * * * * * * * * * * * * VarExp::toElem: currentArg @ uint * * * * * * * * * * * * * DtoSymbolAddress ('currentArg' of type 'uint') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * Casting from 'uint' to 'ulong' * * * * * * * * * * * * * cast to: i64 * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * integral or pointer or interface * * * * * * * * * * * lv: %17 = zext i32 %16 to i64 * * * * * * * * * * * rv: i64 1 * * * * * * * * * * NotExp::toElem: !spec.indexStart @ bool * * * * * * * * * * * DotVarExp::toElem: spec.indexStart @ ubyte * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(448) * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.indexStart: * * * * * * * * * * * * * Value: %19 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 3 * * * * * * * * * * * Casting from 'ubyte' to 'bool' * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(449) * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(449) * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(451) * * * * * * * * * * * * CallExp::toElem: enforceEx(fmt.length == 0LU, delegate string() => text("Orphan format specifier: %", spec.spec), "/usr/include/dlang/ldc/std/format.d", 451LU) @ bool * * * * * * * * * * * * * VarExp::toElem: enforceEx @ pure @safe bool(bool value, lazy string msg = "", string file = __FILE__, ulong line = cast(ulong)__LINE__) * * * * * * * * * * * * * * DtoSymbolAddress ('enforceEx' of type 'pure @safe bool(bool value, lazy string msg = "", string file = __FILE__, ulong line = cast(ulong)__LINE__)') * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * Function type: pure @safe bool(bool value, lazy string msg = "", string file = __FILE__, ulong line = cast(ulong)__LINE__) * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * EqualExp::toElem: fmt.length == 0LU @ bool * * * * * * * * * * * * * * * * ArrayLengthExp::toElem: fmt.length @ ulong * * * * * * * * * * * * * * * * * VarExp::toElem: fmt @ const(char[]) * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('fmt' of type 'const(char[])') * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * type: const(char[]) * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * * * * integral or pointer or interface * * * * * * * * * * * * * * * * lv: %.len = load i64, i64* %23 * * * * * * * * * * * * * * * * rv: i64 0 * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * FuncExp::toElem: __dgliteral7 @ string delegate() pure @nogc @safe * * * * * * * * * * * * * * * * nested * * * * * * * * * * * * * * * * kind = delegate * * * * * * * * * * * * * * * * DtoDefineFunction(std.format.formattedWrite!(MsgRange, char, uint).formattedWrite.__dgliteral7): /usr/include/dlang/ldc/std/format.d(452) * * * * * * * * * * * * * * * * * DtoFunctionType(pure @nogc @safe string()) * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * Final function type: { i64, i8* } (i8*) * * * * * * * * * * * * * * * * * DtoResolveFunction(std.format.formattedWrite!(MsgRange, char, uint).formattedWrite.__dgliteral7): /usr/include/dlang/ldc/std/format.d(452) * * * * * * * * * * * * * * * * * * DtoDeclareFunction(std.format.formattedWrite!(MsgRange, char, uint).formattedWrite.__dgliteral7): /usr/include/dlang/ldc/std/format.d(452) * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure @nogc @safe string()) * * * * * * * * * * * * * * * * * * * func = declare { i64, i8* } @_D3std6format65__T14formattedWriteTS3std12experimental6logger4core8MsgRangeTaTkZ14formattedWriteFS3std12experimental6logger4core8MsgRangexAakZ12__dgliteral7MFNaNiNfZAya(i8*) * * * * * * * * * * * * * * * * * Doing function body for: __dgliteral7 * * * * * * * * * * * * * * * * * DtoCreateNestedContext for __dgliteral7 * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for std.format.formattedWrite!(MsgRange, char, uint).formattedWrite.__dgliteral7 * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for std.format.formattedWrite!(MsgRange, char, uint).formattedWrite * * * * * * * * * * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * * * * * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/format.d(452) * * * * * * * * * * * * * * * * * * * CallExp::toElem: text("Orphan format specifier: %", spec.spec) @ string * * * * * * * * * * * * * * * * * * * * VarExp::toElem: text @ pure @safe string(string _param_0, char _param_1) * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('text' of type 'pure @safe string(string _param_0, char _param_1)') * * * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * * * Function type: pure @safe string(string _param_0, char _param_1) * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * StringExp::toElem: "Orphan format specifier: %" @ string * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: spec.spec @ char * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(452) * * * * * * * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for std.format.formattedWrite!(MsgRange, char, uint).formattedWrite * * * * * * * * * * * * * * * * * * * * * * * * * * Context: %2 = bitcast i8* %1 to %nest.formattedWrite.2* * * * * * * * * * * * * * * * * * * * * * * * * * * of type: %nest.formattedWrite.2 = type { %"std.format.FormatSpec!char.FormatSpec" } * * * * * * * * * * * * * * * * * * * * * * * * * * Variable: spec * * * * * * * * * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * * * * * * * * * Function: __dgliteral7 * * * * * * * * * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * * * * * * * * * Addr: %spec = getelementptr %nest.formattedWrite.2, %nest.formattedWrite.2* %2, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * * * * * * * * of type: %"std.format.FormatSpec!char.FormatSpec"* * * * * * * * * * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.spec: * * * * * * * * * * * * * * * * * * * * * * * * Value: %3 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 2 * * * * * * * * * * * * * * * * * * * return value is '0x12719178' * * * * * * * * * * * * * * * * Building type: string delegate() pure @nogc @safe * * * * * * * * * * * * * * * * * DtoFunctionType(pure @nogc @safe string()) * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * Final function type: { i64, i8* } (i8*) * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * StringExp::toElem: "/usr/include/dlang/ldc/std/format.d" @ string * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * IntegerExp::toElem: 451LU @ ulong * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 451LU @ ulong * * * * * * * * * * * * * * * * * value = i64 451 * * * * * * * * * * * BreakStatement::toIR(): /usr/include/dlang/ldc/std/format.d(453) * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(455) * * * * * * * * * EqualExp::toElem: spec.width == 2147483647 @ bool * * * * * * * * * * DotVarExp::toElem: spec.width @ int * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(455) * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.width: * * * * * * * * * * * * Value: %28 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 0 * * * * * * * * * * IntegerExp::toElem: 2147483647 @ int * * * * * * * * * * * IntegerExp::toConstElem: 2147483647 @ int * * * * * * * * * * * * value = i32 2147483647 * * * * * * * * * * integral or pointer or interface * * * * * * * * * * lv: %29 = load i32, i32* %28 * * * * * * * * * * rv: i32 2147483647 * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(456) * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(456) * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(457) * * * * * * * * * * * * DeclarationExp::toElem: int width = to(getNthInt(currentArg, _param_2)); | T=void * * * * * * * * * * * * * DtoDeclarationExp: width * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = int) * * * * * * * * * * * * * * * llvm value for decl: %width = alloca i32, align 4 * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * AssignExp::toElem: width = to(getNthInt(currentArg, _param_2)) | (int)(int = int) * * * * * * * * * * * * * * * * VarExp::toElem: width @ int * * * * * * * * * * * * * * * * * DtoSymbolAddress ('width' of type 'int') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * CallExp::toElem: to(getNthInt(currentArg, _param_2)) @ int * * * * * * * * * * * * * * * * * VarExp::toElem: to @ pure nothrow @nogc @safe int(int _param_0) * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('to' of type 'pure nothrow @nogc @safe int(int _param_0)') * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @safe int(int _param_0) * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * CallExp::toElem: getNthInt(currentArg, _param_2) @ int * * * * * * * * * * * * * * * * * * * * VarExp::toElem: getNthInt @ pure @safe int(uint index, uint _param_1) * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('getNthInt' of type 'pure @safe int(uint index, uint _param_1)') * * * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure @safe int(uint index, uint _param_1)) * * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * * * * Final function type: i32 (i32, i32) * * * * * * * * * * * * * * * * * * * * * * DtoResolveFunction(std.format.getNthInt!(uint).getNthInt): /usr/include/dlang/ldc/std/format.d(3501) * * * * * * * * * * * * * * * * * * * * * * * DtoDeclareFunction(std.format.getNthInt!(uint).getNthInt): /usr/include/dlang/ldc/std/format.d(3501) * * * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure @safe int(uint index, uint _param_1)) * * * * * * * * * * * * * * * * * * * * * * * * func = declare i32 @_D3std6format16__T9getNthIntTkZ9getNthIntFNaNfkkZi(i32, i32) * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * Building type: pure @safe int(uint index, uint _param_1) * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure @safe int(uint index, uint _param_1)) * * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * * * * Final function type: i32 (i32, i32) * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * * * Function type: pure @safe int(uint index, uint _param_1) * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: currentArg @ uint * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('currentArg' of type 'uint') * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: _param_2 @ uint * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('_param_2' of type 'uint') * * * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * * * type: uint * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * lhs: %width = alloca i32, align 4 * * * * * * * * * * * * * * * * * rhs: %34 = call i32 @_D3std4conv9__T2toTiZ9__T2toTiZ2toFNaNbNiNfiZi(i32 %33) * * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(458) * * * * * * * * * * * * CmpExp::toElem: width < 0 @ bool * * * * * * * * * * * * * VarExp::toElem: width @ int * * * * * * * * * * * * * * DtoSymbolAddress ('width' of type 'int') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * IntegerExp::toElem: 0 @ int * * * * * * * * * * * * * * IntegerExp::toConstElem: 0 @ int * * * * * * * * * * * * * * * value = i32 0 * * * * * * * * * * * * * type 1: %35 = load i32, i32* %width * * * * * * * * * * * * * type 2: i32 0 * * * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(459) * * * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(459) * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(460) * * * * * * * * * * * * * * * CallExp::toElem: spec.flDash(true) @ void * * * * * * * * * * * * * * * * DotVarExp::toElem: spec.flDash @ pure nothrow @nogc @property @safe void(bool v) * * * * * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(460) * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * %spec = getelementptr %nest.formattedWrite.2, %nest.formattedWrite.2* %.frame, i32 0, i32 0 * * * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @property @safe void(bool v) * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * IntegerExp::toElem: true @ bool * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: true @ bool * * * * * * * * * * * * * * * * * * * * value = i1 true * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(461) * * * * * * * * * * * * * * * AssignExp::toElem: width = -width | (int)(int = int) * * * * * * * * * * * * * * * * VarExp::toElem: width @ int * * * * * * * * * * * * * * * * * DtoSymbolAddress ('width' of type 'int') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * NegExp::toElem: -width @ int * * * * * * * * * * * * * * * * * VarExp::toElem: width @ int * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('width' of type 'int') * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * lhs: %width = alloca i32, align 4 * * * * * * * * * * * * * * * * * rhs: %negval = sub i32 0, %37 * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(463) * * * * * * * * * * * * AssignExp::toElem: spec.width = width | (int)(int = int) * * * * * * * * * * * * * DotVarExp::toElem: spec.width @ int * * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(463) * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.width: * * * * * * * * * * * * * * * Value: %38 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 0 * * * * * * * * * * * * * VarExp::toElem: width @ int * * * * * * * * * * * * * * DtoSymbolAddress ('width' of type 'int') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * lhs: %38 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 0 * * * * * * * * * * * * * * rhs: %39 = load i32, i32* %width * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(464) * * * * * * * * * * * * AddAssignExp::toElem: currentArg += 1u @ uint * * * * * * * * * * * * * Caching l-value of currentArg += 1u => currentArg * * * * * * * * * * * * * * VarExp::toElem: currentArg @ uint * * * * * * * * * * * * * * * DtoSymbolAddress ('currentArg' of type 'uint') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * AddExp::toElem: currentArg + 1u @ uint * * * * * * * * * * * * * * VarExp::toElem: currentArg @ uint * * * * * * * * * * * * * * IntegerExp::toElem: 1u @ uint * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1u @ uint * * * * * * * * * * * * * * * * value = i32 1 * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * lhs: %currentArg = alloca i32, align 4 * * * * * * * * * * * * * * rhs: %41 = add i32 %40, 1 * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(466) * * * * * * * * * * CmpExp::toElem: spec.width < 0 @ bool * * * * * * * * * * * DotVarExp::toElem: spec.width @ int * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(466) * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.width: * * * * * * * * * * * * * Value: %37 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 0 * * * * * * * * * * * IntegerExp::toElem: 0 @ int * * * * * * * * * * * * IntegerExp::toConstElem: 0 @ int * * * * * * * * * * * * * value = i32 0 * * * * * * * * * * * type 1: %38 = load i32, i32* %37 * * * * * * * * * * * type 2: i32 0 * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(467) * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(467) * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(469) * * * * * * * * * * * * * DeclarationExp::toElem: uint index = cast(uint)-spec.width; | T=void * * * * * * * * * * * * * * DtoDeclarationExp: index * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = uint) * * * * * * * * * * * * * * * * llvm value for decl: %index = alloca i32, align 4 * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * AssignExp::toElem: index = cast(uint)-spec.width | (uint)(uint = uint) * * * * * * * * * * * * * * * * * VarExp::toElem: index @ uint * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('index' of type 'uint') * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * CastExp::toElem: cast(uint)-spec.width @ uint * * * * * * * * * * * * * * * * * * NegExp::toElem: -spec.width @ int * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: spec.width @ int * * * * * * * * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(469) * * * * * * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.width: * * * * * * * * * * * * * * * * * * * * * Value: %45 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 0 * * * * * * * * * * * * * * * * * * Casting from 'int' to 'uint' * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * lhs: %index = alloca i32, align 4 * * * * * * * * * * * * * * * * * * rhs: %negval12 = sub i32 0, %46 * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(470) * * * * * * * * * * * * * AssertExp::toElem: assert(index > 0u) * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(471) * * * * * * * * * * * * * DeclarationExp::toElem: int width = to(getNthInt(index - 1u, _param_2)); | T=void * * * * * * * * * * * * * * DtoDeclarationExp: width * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = int) * * * * * * * * * * * * * * * * llvm value for decl: %width13 = alloca i32, align 4 * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * AssignExp::toElem: width = to(getNthInt(index - 1u, _param_2)) | (int)(int = int) * * * * * * * * * * * * * * * * * VarExp::toElem: width @ int * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('width' of type 'int') * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * CallExp::toElem: to(getNthInt(index - 1u, _param_2)) @ int * * * * * * * * * * * * * * * * * * VarExp::toElem: to @ pure nothrow @nogc @safe int(int _param_0) * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('to' of type 'pure nothrow @nogc @safe int(int _param_0)') * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @safe int(int _param_0) * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * CallExp::toElem: getNthInt(index - 1u, _param_2) @ int * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: getNthInt @ pure @safe int(uint index, uint _param_1) * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('getNthInt' of type 'pure @safe int(uint index, uint _param_1)') * * * * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * * * * Function type: pure @safe int(uint index, uint _param_1) * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * MinExp::toElem: index - 1u @ uint * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: index @ uint * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('index' of type 'uint') * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 1u @ uint * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1u @ uint * * * * * * * * * * * * * * * * * * * * * * * * * * value = i32 1 * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: _param_2 @ uint * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('_param_2' of type 'uint') * * * * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * * * * type: uint * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * lhs: %width13 = alloca i32, align 4 * * * * * * * * * * * * * * * * * * rhs: %51 = call i32 @_D3std4conv9__T2toTiZ9__T2toTiZ2toFNaNbNiNfiZi(i32 %50) * * * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(472) * * * * * * * * * * * * * CmpExp::toElem: currentArg < index @ bool * * * * * * * * * * * * * * VarExp::toElem: currentArg @ uint * * * * * * * * * * * * * * * DtoSymbolAddress ('currentArg' of type 'uint') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * VarExp::toElem: index @ uint * * * * * * * * * * * * * * * DtoSymbolAddress ('index' of type 'uint') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * type 1: %52 = load i32, i32* %currentArg * * * * * * * * * * * * * * type 2: %53 = load i32, i32* %index * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(472) * * * * * * * * * * * * * * AssignExp::toElem: currentArg = index | (uint)(uint = uint) * * * * * * * * * * * * * * * VarExp::toElem: currentArg @ uint * * * * * * * * * * * * * * * * DtoSymbolAddress ('currentArg' of type 'uint') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * VarExp::toElem: index @ uint * * * * * * * * * * * * * * * * DtoSymbolAddress ('index' of type 'uint') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * lhs: %currentArg = alloca i32, align 4 * * * * * * * * * * * * * * * * rhs: %55 = load i32, i32* %index * * * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(473) * * * * * * * * * * * * * CmpExp::toElem: width < 0 @ bool * * * * * * * * * * * * * * VarExp::toElem: width @ int * * * * * * * * * * * * * * * DtoSymbolAddress ('width' of type 'int') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * IntegerExp::toElem: 0 @ int * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0 @ int * * * * * * * * * * * * * * * * value = i32 0 * * * * * * * * * * * * * * type 1: %56 = load i32, i32* %width13 * * * * * * * * * * * * * * type 2: i32 0 * * * * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(474) * * * * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(474) * * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(475) * * * * * * * * * * * * * * * * CallExp::toElem: spec.flDash(true) @ void * * * * * * * * * * * * * * * * * DotVarExp::toElem: spec.flDash @ pure nothrow @nogc @property @safe void(bool v) * * * * * * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(475) * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * * %spec = getelementptr %nest.formattedWrite.2, %nest.formattedWrite.2* %.frame, i32 0, i32 0 * * * * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @property @safe void(bool v) * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: true @ bool * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: true @ bool * * * * * * * * * * * * * * * * * * * * * value = i1 true * * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(476) * * * * * * * * * * * * * * * * AssignExp::toElem: width = -width | (int)(int = int) * * * * * * * * * * * * * * * * * VarExp::toElem: width @ int * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('width' of type 'int') * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * NegExp::toElem: -width @ int * * * * * * * * * * * * * * * * * * VarExp::toElem: width @ int * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('width' of type 'int') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * lhs: %width13 = alloca i32, align 4 * * * * * * * * * * * * * * * * * * rhs: %negval18 = sub i32 0, %58 * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(478) * * * * * * * * * * * * * AssignExp::toElem: spec.width = width | (int)(int = int) * * * * * * * * * * * * * * DotVarExp::toElem: spec.width @ int * * * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(478) * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.width: * * * * * * * * * * * * * * * * Value: %59 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 0 * * * * * * * * * * * * * * VarExp::toElem: width @ int * * * * * * * * * * * * * * * DtoSymbolAddress ('width' of type 'int') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * lhs: %59 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 0 * * * * * * * * * * * * * * * rhs: %60 = load i32, i32* %width13 * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(480) * * * * * * * * * EqualExp::toElem: spec.precision == 2147483647 @ bool * * * * * * * * * * DotVarExp::toElem: spec.precision @ int * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(480) * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.precision: * * * * * * * * * * * * Value: %40 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 1 * * * * * * * * * * IntegerExp::toElem: 2147483647 @ int * * * * * * * * * * * IntegerExp::toConstElem: 2147483647 @ int * * * * * * * * * * * * value = i32 2147483647 * * * * * * * * * * integral or pointer or interface * * * * * * * * * * lv: %41 = load i32, i32* %40 * * * * * * * * * * rv: i32 2147483647 * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(481) * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(481) * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(482) * * * * * * * * * * * * DeclarationExp::toElem: int precision = to(getNthInt(currentArg, _param_2)); | T=void * * * * * * * * * * * * * DtoDeclarationExp: precision * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = int) * * * * * * * * * * * * * * * llvm value for decl: %precision = alloca i32, align 4 * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * AssignExp::toElem: precision = to(getNthInt(currentArg, _param_2)) | (int)(int = int) * * * * * * * * * * * * * * * * VarExp::toElem: precision @ int * * * * * * * * * * * * * * * * * DtoSymbolAddress ('precision' of type 'int') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * CallExp::toElem: to(getNthInt(currentArg, _param_2)) @ int * * * * * * * * * * * * * * * * * VarExp::toElem: to @ pure nothrow @nogc @safe int(int _param_0) * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('to' of type 'pure nothrow @nogc @safe int(int _param_0)') * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @safe int(int _param_0) * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * CallExp::toElem: getNthInt(currentArg, _param_2) @ int * * * * * * * * * * * * * * * * * * * * VarExp::toElem: getNthInt @ pure @safe int(uint index, uint _param_1) * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('getNthInt' of type 'pure @safe int(uint index, uint _param_1)') * * * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * * * Function type: pure @safe int(uint index, uint _param_1) * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: currentArg @ uint * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('currentArg' of type 'uint') * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: _param_2 @ uint * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('_param_2' of type 'uint') * * * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * * * type: uint * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * lhs: %precision = alloca i32, align 4 * * * * * * * * * * * * * * * * * rhs: %67 = call i32 @_D3std4conv9__T2toTiZ9__T2toTiZ2toFNaNbNiNfiZi(i32 %66) * * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(484) * * * * * * * * * * * * CmpExp::toElem: precision >= 0 @ bool * * * * * * * * * * * * * VarExp::toElem: precision @ int * * * * * * * * * * * * * * DtoSymbolAddress ('precision' of type 'int') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * IntegerExp::toElem: 0 @ int * * * * * * * * * * * * * * IntegerExp::toConstElem: 0 @ int * * * * * * * * * * * * * * * value = i32 0 * * * * * * * * * * * * * type 1: %68 = load i32, i32* %precision * * * * * * * * * * * * * type 2: i32 0 * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(484) * * * * * * * * * * * * * AssignExp::toElem: spec.precision = precision | (int)(int = int) * * * * * * * * * * * * * * DotVarExp::toElem: spec.precision @ int * * * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(484) * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.precision: * * * * * * * * * * * * * * * * Value: %70 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 1 * * * * * * * * * * * * * * VarExp::toElem: precision @ int * * * * * * * * * * * * * * * DtoSymbolAddress ('precision' of type 'int') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * lhs: %70 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 1 * * * * * * * * * * * * * * * rhs: %71 = load i32, i32* %precision * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(486) * * * * * * * * * * * * * AssignExp::toElem: spec.precision = 2147483646 | (int)(int = int) * * * * * * * * * * * * * * DotVarExp::toElem: spec.precision @ int * * * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(486) * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.precision: * * * * * * * * * * * * * * * * Value: %72 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 1 * * * * * * * * * * * * * * IntegerExp::toElem: 2147483646 @ int * * * * * * * * * * * * * * * IntegerExp::toConstElem: 2147483646 @ int * * * * * * * * * * * * * * * * value = i32 2147483646 * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * lhs: %72 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 1 * * * * * * * * * * * * * * * rhs: i32 2147483646 * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(487) * * * * * * * * * * * * AddAssignExp::toElem: currentArg += 1u @ uint * * * * * * * * * * * * * Caching l-value of currentArg += 1u => currentArg * * * * * * * * * * * * * * VarExp::toElem: currentArg @ uint * * * * * * * * * * * * * * * DtoSymbolAddress ('currentArg' of type 'uint') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * AddExp::toElem: currentArg + 1u @ uint * * * * * * * * * * * * * * VarExp::toElem: currentArg @ uint * * * * * * * * * * * * * * IntegerExp::toElem: 1u @ uint * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1u @ uint * * * * * * * * * * * * * * * * value = i32 1 * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * lhs: %currentArg = alloca i32, align 4 * * * * * * * * * * * * * * rhs: %74 = add i32 %73, 1 * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(489) * * * * * * * * * * CmpExp::toElem: spec.precision < 0 @ bool * * * * * * * * * * * DotVarExp::toElem: spec.precision @ int * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(489) * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.precision: * * * * * * * * * * * * * Value: %70 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 1 * * * * * * * * * * * IntegerExp::toElem: 0 @ int * * * * * * * * * * * * IntegerExp::toConstElem: 0 @ int * * * * * * * * * * * * * value = i32 0 * * * * * * * * * * * type 1: %71 = load i32, i32* %70 * * * * * * * * * * * type 2: i32 0 * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(490) * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(490) * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(492) * * * * * * * * * * * * * DeclarationExp::toElem: uint index = cast(uint)-spec.precision; | T=void * * * * * * * * * * * * * * DtoDeclarationExp: index * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = uint) * * * * * * * * * * * * * * * * llvm value for decl: %index27 = alloca i32, align 4 * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * AssignExp::toElem: index = cast(uint)-spec.precision | (uint)(uint = uint) * * * * * * * * * * * * * * * * * VarExp::toElem: index @ uint * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('index' of type 'uint') * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * CastExp::toElem: cast(uint)-spec.precision @ uint * * * * * * * * * * * * * * * * * * NegExp::toElem: -spec.precision @ int * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: spec.precision @ int * * * * * * * * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(492) * * * * * * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.precision: * * * * * * * * * * * * * * * * * * * * * Value: %78 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 1 * * * * * * * * * * * * * * * * * * Casting from 'int' to 'uint' * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * lhs: %index27 = alloca i32, align 4 * * * * * * * * * * * * * * * * * * rhs: %negval28 = sub i32 0, %79 * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(493) * * * * * * * * * * * * * AssertExp::toElem: assert(index > 0u) * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(494) * * * * * * * * * * * * * DeclarationExp::toElem: int precision = to(getNthInt(index - 1u, _param_2)); | T=void * * * * * * * * * * * * * * DtoDeclarationExp: precision * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = int) * * * * * * * * * * * * * * * * llvm value for decl: %precision29 = alloca i32, align 4 * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * AssignExp::toElem: precision = to(getNthInt(index - 1u, _param_2)) | (int)(int = int) * * * * * * * * * * * * * * * * * VarExp::toElem: precision @ int * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('precision' of type 'int') * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * CallExp::toElem: to(getNthInt(index - 1u, _param_2)) @ int * * * * * * * * * * * * * * * * * * VarExp::toElem: to @ pure nothrow @nogc @safe int(int _param_0) * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('to' of type 'pure nothrow @nogc @safe int(int _param_0)') * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @safe int(int _param_0) * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * CallExp::toElem: getNthInt(index - 1u, _param_2) @ int * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: getNthInt @ pure @safe int(uint index, uint _param_1) * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('getNthInt' of type 'pure @safe int(uint index, uint _param_1)') * * * * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * * * * Function type: pure @safe int(uint index, uint _param_1) * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * MinExp::toElem: index - 1u @ uint * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: index @ uint * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('index' of type 'uint') * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 1u @ uint * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1u @ uint * * * * * * * * * * * * * * * * * * * * * * * * * * value = i32 1 * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: _param_2 @ uint * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('_param_2' of type 'uint') * * * * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * * * * type: uint * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * lhs: %precision29 = alloca i32, align 4 * * * * * * * * * * * * * * * * * * rhs: %84 = call i32 @_D3std4conv9__T2toTiZ9__T2toTiZ2toFNaNbNiNfiZi(i32 %83) * * * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(496) * * * * * * * * * * * * * CmpExp::toElem: currentArg < index @ bool * * * * * * * * * * * * * * VarExp::toElem: currentArg @ uint * * * * * * * * * * * * * * * DtoSymbolAddress ('currentArg' of type 'uint') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * VarExp::toElem: index @ uint * * * * * * * * * * * * * * * DtoSymbolAddress ('index' of type 'uint') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * type 1: %85 = load i32, i32* %currentArg * * * * * * * * * * * * * * type 2: %86 = load i32, i32* %index27 * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(496) * * * * * * * * * * * * * * AssignExp::toElem: currentArg = index | (uint)(uint = uint) * * * * * * * * * * * * * * * VarExp::toElem: currentArg @ uint * * * * * * * * * * * * * * * * DtoSymbolAddress ('currentArg' of type 'uint') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * VarExp::toElem: index @ uint * * * * * * * * * * * * * * * * DtoSymbolAddress ('index' of type 'uint') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * lhs: %currentArg = alloca i32, align 4 * * * * * * * * * * * * * * * * rhs: %88 = load i32, i32* %index27 * * * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(497) * * * * * * * * * * * * * CmpExp::toElem: precision >= 0 @ bool * * * * * * * * * * * * * * VarExp::toElem: precision @ int * * * * * * * * * * * * * * * DtoSymbolAddress ('precision' of type 'int') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * IntegerExp::toElem: 0 @ int * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0 @ int * * * * * * * * * * * * * * * * value = i32 0 * * * * * * * * * * * * * * type 1: %89 = load i32, i32* %precision29 * * * * * * * * * * * * * * type 2: i32 0 * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(497) * * * * * * * * * * * * * * AssignExp::toElem: spec.precision = precision | (int)(int = int) * * * * * * * * * * * * * * * DotVarExp::toElem: spec.precision @ int * * * * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(497) * * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.precision: * * * * * * * * * * * * * * * * * Value: %91 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 1 * * * * * * * * * * * * * * * VarExp::toElem: precision @ int * * * * * * * * * * * * * * * * DtoSymbolAddress ('precision' of type 'int') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * lhs: %91 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 1 * * * * * * * * * * * * * * * * rhs: %92 = load i32, i32* %precision29 * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(499) * * * * * * * * * * * * * * AssignExp::toElem: spec.precision = 2147483646 | (int)(int = int) * * * * * * * * * * * * * * * DotVarExp::toElem: spec.precision @ int * * * * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(499) * * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.precision: * * * * * * * * * * * * * * * * * Value: %93 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 1 * * * * * * * * * * * * * * * IntegerExp::toElem: 2147483646 @ int * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 2147483646 @ int * * * * * * * * * * * * * * * * * value = i32 2147483646 * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * lhs: %93 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 1 * * * * * * * * * * * * * * * * rhs: i32 2147483646 * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(502) * * * * * * * * * CmpExp::toElem: cast(int)spec.indexStart > 0 @ bool * * * * * * * * * * CastExp::toElem: cast(int)spec.indexStart @ int * * * * * * * * * * * DotVarExp::toElem: spec.indexStart @ ubyte * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(502) * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.indexStart: * * * * * * * * * * * * * Value: %73 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 3 * * * * * * * * * * * Casting from 'ubyte' to 'int' * * * * * * * * * * * * cast to: i32 * * * * * * * * * * IntegerExp::toElem: 0 @ int * * * * * * * * * * * IntegerExp::toConstElem: 0 @ int * * * * * * * * * * * * value = i32 0 * * * * * * * * * * type 1: %75 = zext i8 %74 to i32 * * * * * * * * * * type 2: i32 0 * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(503) * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(503) * * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(505) * * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(505) * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(505) * * * * * * * * * * * * * * DeclarationExp::toElem: int __key3240 = cast(int)spec.indexStart - 1; | T=void * * * * * * * * * * * * * * * DtoDeclarationExp: __key3240 * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = int) * * * * * * * * * * * * * * * * * llvm value for decl: %__key3240 = alloca i32, align 4 * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * AssignExp::toElem: __key3240 = cast(int)spec.indexStart - 1 | (int)(int = int) * * * * * * * * * * * * * * * * * * VarExp::toElem: __key3240 @ int * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__key3240' of type 'int') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * MinExp::toElem: cast(int)spec.indexStart - 1 @ int * * * * * * * * * * * * * * * * * * * CastExp::toElem: cast(int)spec.indexStart @ int * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: spec.indexStart @ ubyte * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(505) * * * * * * * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.indexStart: * * * * * * * * * * * * * * * * * * * * * * Value: %98 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 3 * * * * * * * * * * * * * * * * * * * * Casting from 'ubyte' to 'int' * * * * * * * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 1 @ int * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1 @ int * * * * * * * * * * * * * * * * * * * * * value = i32 1 * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * lhs: %__key3240 = alloca i32, align 4 * * * * * * * * * * * * * * * * * * * rhs: %101 = sub i32 %100, 1 * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(505) * * * * * * * * * * * * * * DeclarationExp::toElem: int __limit3241 = cast(int)spec.indexEnd; | T=void * * * * * * * * * * * * * * * DtoDeclarationExp: __limit3241 * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = int) * * * * * * * * * * * * * * * * * llvm value for decl: %__limit3241 = alloca i32, align 4 * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * AssignExp::toElem: __limit3241 = cast(int)spec.indexEnd | (int)(int = int) * * * * * * * * * * * * * * * * * * VarExp::toElem: __limit3241 @ int * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__limit3241' of type 'int') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * CastExp::toElem: cast(int)spec.indexEnd @ int * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: spec.indexEnd @ ubyte * * * * * * * * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(505) * * * * * * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.indexEnd: * * * * * * * * * * * * * * * * * * * * * Value: %102 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 4 * * * * * * * * * * * * * * * * * * * Casting from 'ubyte' to 'int' * * * * * * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * lhs: %__limit3241 = alloca i32, align 4 * * * * * * * * * * * * * * * * * * * rhs: %104 = zext i8 %103 to i32 * * * * * * * * * * * * * ForStatement::toIR(): /usr/include/dlang/ldc/std/format.d(505) * * * * * * * * * * * * * * CmpExp::toElem: __key3240 < __limit3241 @ bool * * * * * * * * * * * * * * * VarExp::toElem: __key3240 @ int * * * * * * * * * * * * * * * * DtoSymbolAddress ('__key3240' of type 'int') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * VarExp::toElem: __limit3241 @ int * * * * * * * * * * * * * * * * DtoSymbolAddress ('__limit3241' of type 'int') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * type 1: %105 = load i32, i32* %__key3240 * * * * * * * * * * * * * * * type 2: %106 = load i32, i32* %__limit3241 * * * * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(505) * * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(505) * * * * * * * * * * * * * * * * DeclarationExp::toElem: int i = __key3240; | T=void * * * * * * * * * * * * * * * * * DtoDeclarationExp: i * * * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = int) * * * * * * * * * * * * * * * * * * * llvm value for decl: %i = alloca i32, align 4 * * * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * * * AssignExp::toElem: i = __key3240 | (int)(int = int) * * * * * * * * * * * * * * * * * * * * VarExp::toElem: i @ int * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'int') * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * VarExp::toElem: __key3240 @ int * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__key3240' of type 'int') * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * * lhs: %i = alloca i32, align 4 * * * * * * * * * * * * * * * * * * * * * rhs: %108 = load i32, i32* %__key3240 * * * * * * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(507) * * * * * * * * * * * * * * * * CmpExp::toElem: 1LU <= cast(ulong)i @ bool * * * * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * * * * * CastExp::toElem: cast(ulong)i @ ulong * * * * * * * * * * * * * * * * * * VarExp::toElem: i @ int * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'int') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * Casting from 'int' to 'ulong' * * * * * * * * * * * * * * * * * * * cast to: i64 * * * * * * * * * * * * * * * * * type 1: i64 1 * * * * * * * * * * * * * * * * * type 2: %110 = sext i32 %109 to i64 * * * * * * * * * * * * * * * * BreakStatement::toIR(): /usr/include/dlang/ldc/std/format.d(507) * * * * * * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(508) * * * * * * * * * * * * * * * * VarExp::toElem: __ctfe @ bool * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__ctfe' of type 'bool') * * * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(509) * * * * * * * * * * * * * * * * * CallExp::toElem: formatNth(w, spec, cast(ulong)i, _param_2) @ void * * * * * * * * * * * * * * * * * * VarExp::toElem: formatNth @ @safe void(MsgRange w, ref FormatSpec!char f, ulong index, uint _param_3) * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('formatNth' of type '@safe void(MsgRange w, ref FormatSpec!char f, ulong index, uint _param_3)') * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * * DtoFunctionType(@safe void(MsgRange w, ref FormatSpec!char f, ulong index, uint _param_3)) * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * * Final function type: void (i32, i64, %"std.format.FormatSpec!char.FormatSpec"*, %std.experimental.logger.core.MsgRange*) * * * * * * * * * * * * * * * * * * * * DtoResolveFunction(std.format.formatNth!(MsgRange, char, uint).formatNth): /usr/include/dlang/ldc/std/format.d(3460) * * * * * * * * * * * * * * * * * * * * * DtoDeclareFunction(std.format.formatNth!(MsgRange, char, uint).formatNth): /usr/include/dlang/ldc/std/format.d(3460) * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(@safe void(MsgRange w, ref FormatSpec!char f, ulong index, uint _param_3)) * * * * * * * * * * * * * * * * * * * * * * func = declare void @_D3std6format59__T9formatNthTS3std12experimental6logger4core8MsgRangeTaTkZ9formatNthFNfS3std12experimental6logger4core8MsgRangeKS3std6format18__T10FormatSpecTaZ10FormatSpecmkZv(i32, i64, %"std.format.FormatSpec!char.FormatSpec"*, %std.experimental.logger.core.MsgRange*) * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * Building type: @safe void(MsgRange w, ref FormatSpec!char f, ulong index, uint _param_3) * * * * * * * * * * * * * * * * * * * * DtoFunctionType(@safe void(MsgRange w, ref FormatSpec!char f, ulong index, uint _param_3)) * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * * Final function type: void (i32, i64, %"std.format.FormatSpec!char.FormatSpec"*, %std.experimental.logger.core.MsgRange*) * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * Function type: @safe void(MsgRange w, ref FormatSpec!char f, ulong index, uint _param_3) * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * VarExp::toElem: w @ MsgRange * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'MsgRange') * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * type: MsgRange * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(509) * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * CastExp::toElem: cast(ulong)i @ ulong * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: i @ int * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'int') * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * Casting from 'int' to 'ulong' * * * * * * * * * * * * * * * * * * * * * * cast to: i64 * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * VarExp::toElem: _param_2 @ uint * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('_param_2' of type 'uint') * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * type: uint * * * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(511) * * * * * * * * * * * * * * * * * CallExp::toElem: (*funs[cast(ulong)i])(w, argsAddresses[cast(ulong)i], spec) @ void * * * * * * * * * * * * * * * * * * PtrExp::toElem: *funs[cast(ulong)i] @ pure nothrow @safe void(MsgRange, const(void)*, ref FormatSpec!char) * * * * * * * * * * * * * * * * * * * IndexExp::toElem: funs[cast(ulong)i] @ void function(MsgRange, const(void)*, ref FormatSpec!char) pure nothrow @safe * * * * * * * * * * * * * * * * * * * * VarExp::toElem: funs @ void function(MsgRange, const(void)*, ref FormatSpec!char) pure nothrow @safe[1] * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('funs' of type 'void function(MsgRange, const(void)*, ref FormatSpec!char) pure nothrow @safe[1]') * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * CastExp::toElem: cast(ulong)i @ ulong * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: i @ int * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'int') * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * Casting from 'int' to 'ulong' * * * * * * * * * * * * * * * * * * * * * * cast to: i64 * * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * Function type: pure nothrow @safe void(MsgRange, const(void)*, ref FormatSpec!char) * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * VarExp::toElem: w @ MsgRange * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'MsgRange') * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * type: MsgRange * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * IndexExp::toElem: argsAddresses[cast(ulong)i] @ const(void)* * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: argsAddresses @ const(void)*[1] * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('argsAddresses' of type 'const(void)*[1]') * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * CastExp::toElem: cast(ulong)i @ ulong * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: i @ int * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'int') * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * Casting from 'int' to 'ulong' * * * * * * * * * * * * * * * * * * * * * * * cast to: i64 * * * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(511) * * * * * * * * * * * * * * AddAssignExp::toElem: __key3240 += 1 @ int * * * * * * * * * * * * * * * Caching l-value of __key3240 += 1 => __key3240 * * * * * * * * * * * * * * * * VarExp::toElem: __key3240 @ int * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__key3240' of type 'int') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * AddExp::toElem: __key3240 + 1 @ int * * * * * * * * * * * * * * * * VarExp::toElem: __key3240 @ int * * * * * * * * * * * * * * * * IntegerExp::toElem: 1 @ int * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1 @ int * * * * * * * * * * * * * * * * * * value = i32 1 * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * lhs: %__key3240 = alloca i32, align 4 * * * * * * * * * * * * * * * * rhs: %113 = add i32 %112, 1 * * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(513) * * * * * * * * * * * * CmpExp::toElem: currentArg < cast(uint)cast(int)spec.indexEnd @ bool * * * * * * * * * * * * * VarExp::toElem: currentArg @ uint * * * * * * * * * * * * * * DtoSymbolAddress ('currentArg' of type 'uint') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * CastExp::toElem: cast(uint)cast(int)spec.indexEnd @ uint * * * * * * * * * * * * * * CastExp::toElem: cast(int)spec.indexEnd @ int * * * * * * * * * * * * * * * DotVarExp::toElem: spec.indexEnd @ ubyte * * * * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(513) * * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.indexEnd: * * * * * * * * * * * * * * * * * Value: %114 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 4 * * * * * * * * * * * * * * * Casting from 'ubyte' to 'int' * * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * * * Casting from 'int' to 'uint' * * * * * * * * * * * * * type 1: %117 = load i32, i32* %currentArg * * * * * * * * * * * * * type 2: %116 = zext i8 %115 to i32 * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(513) * * * * * * * * * * * * * AssignExp::toElem: currentArg = cast(uint)spec.indexEnd | (uint)(uint = uint) * * * * * * * * * * * * * * VarExp::toElem: currentArg @ uint * * * * * * * * * * * * * * * DtoSymbolAddress ('currentArg' of type 'uint') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * CastExp::toElem: cast(uint)spec.indexEnd @ uint * * * * * * * * * * * * * * * DotVarExp::toElem: spec.indexEnd @ ubyte * * * * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(513) * * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.indexEnd: * * * * * * * * * * * * * * * * * Value: %130 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 4 * * * * * * * * * * * * * * * Casting from 'ubyte' to 'uint' * * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * lhs: %currentArg = alloca i32, align 4 * * * * * * * * * * * * * * * rhs: %132 = zext i8 %131 to i32 * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(516) * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(516) * * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(517) * * * * * * * * * * * * VarExp::toElem: __ctfe @ bool * * * * * * * * * * * * * DtoSymbolAddress ('__ctfe' of type 'bool') * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(518) * * * * * * * * * * * * * CallExp::toElem: formatNth(w, spec, cast(ulong)currentArg, _param_2) @ void * * * * * * * * * * * * * * VarExp::toElem: formatNth @ @safe void(MsgRange w, ref FormatSpec!char f, ulong index, uint _param_3) * * * * * * * * * * * * * * * DtoSymbolAddress ('formatNth' of type '@safe void(MsgRange w, ref FormatSpec!char f, ulong index, uint _param_3)') * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * Function type: @safe void(MsgRange w, ref FormatSpec!char f, ulong index, uint _param_3) * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * VarExp::toElem: w @ MsgRange * * * * * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'MsgRange') * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * type: MsgRange * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(518) * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * CastExp::toElem: cast(ulong)currentArg @ ulong * * * * * * * * * * * * * * * * * VarExp::toElem: currentArg @ uint * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('currentArg' of type 'uint') * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * Casting from 'uint' to 'ulong' * * * * * * * * * * * * * * * * * * cast to: i64 * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * VarExp::toElem: _param_2 @ uint * * * * * * * * * * * * * * * * * DtoSymbolAddress ('_param_2' of type 'uint') * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * type: uint * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(520) * * * * * * * * * * * * * CallExp::toElem: (*funs[cast(ulong)currentArg])(w, argsAddresses[cast(ulong)currentArg], spec) @ void * * * * * * * * * * * * * * PtrExp::toElem: *funs[cast(ulong)currentArg] @ pure nothrow @safe void(MsgRange, const(void)*, ref FormatSpec!char) * * * * * * * * * * * * * * * IndexExp::toElem: funs[cast(ulong)currentArg] @ void function(MsgRange, const(void)*, ref FormatSpec!char) pure nothrow @safe * * * * * * * * * * * * * * * * VarExp::toElem: funs @ void function(MsgRange, const(void)*, ref FormatSpec!char) pure nothrow @safe[1] * * * * * * * * * * * * * * * * * DtoSymbolAddress ('funs' of type 'void function(MsgRange, const(void)*, ref FormatSpec!char) pure nothrow @safe[1]') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * CastExp::toElem: cast(ulong)currentArg @ ulong * * * * * * * * * * * * * * * * * VarExp::toElem: currentArg @ uint * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('currentArg' of type 'uint') * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * Casting from 'uint' to 'ulong' * * * * * * * * * * * * * * * * * * cast to: i64 * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * Function type: pure nothrow @safe void(MsgRange, const(void)*, ref FormatSpec!char) * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * VarExp::toElem: w @ MsgRange * * * * * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'MsgRange') * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * type: MsgRange * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * IndexExp::toElem: argsAddresses[cast(ulong)currentArg] @ const(void)* * * * * * * * * * * * * * * * * * VarExp::toElem: argsAddresses @ const(void)*[1] * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('argsAddresses' of type 'const(void)*[1]') * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * CastExp::toElem: cast(ulong)currentArg @ ulong * * * * * * * * * * * * * * * * * * VarExp::toElem: currentArg @ uint * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('currentArg' of type 'uint') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * Casting from 'uint' to 'ulong' * * * * * * * * * * * * * * * * * * * cast to: i64 * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(520) * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(521) * * * * * * * * * * * * AddAssignExp::toElem: currentArg += 1u @ uint * * * * * * * * * * * * * Caching l-value of currentArg += 1u => currentArg * * * * * * * * * * * * * * VarExp::toElem: currentArg @ uint * * * * * * * * * * * * * * * DtoSymbolAddress ('currentArg' of type 'uint') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * AddExp::toElem: currentArg + 1u @ uint * * * * * * * * * * * * * * VarExp::toElem: currentArg @ uint * * * * * * * * * * * * * * IntegerExp::toElem: 1u @ uint * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1u @ uint * * * * * * * * * * * * * * * * value = i32 1 * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * lhs: %currentArg = alloca i32, align 4 * * * * * * * * * * * * * * rhs: %139 = add i32 %138, 1 * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/format.d(524) * * * * * * VarExp::toElem: currentArg @ uint * * * * * * * DtoSymbolAddress ('currentArg' of type 'uint') * * * * * * * * a normal variable * * * * * * return value is '0x1273eca8' * TemplateInstance::codegen: 'std.format.formatGeneric!(MsgRange, uint, char)' * * DtoDefineFunction(std.format.formatGeneric!(MsgRange, uint, char).formatGeneric): /usr/include/dlang/ldc/std/format.d(3455) * * * Doing function body for: formatGeneric * * * DtoCreateNestedContext for formatGeneric * * * * DtoCreateNestedContextType for std.format.formatGeneric!(MsgRange, uint, char).formatGeneric * * * CompoundStatement::toIR(): * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3457) * * * * * CallExp::toElem: formatValue(w, *cast(uint*)arg, f) @ void * * * * * * VarExp::toElem: formatValue @ @safe void(MsgRange w, uint obj, ref FormatSpec!char f) * * * * * * * DtoSymbolAddress ('formatValue' of type '@safe void(MsgRange w, uint obj, ref FormatSpec!char f)') * * * * * * * * FuncDeclaration * * * * * * DtoCallFunction() * * * * * * * doing normal arguments * * * * * * * Arguments so far: (0) * * * * * * * Function type: @safe void(MsgRange w, uint obj, ref FormatSpec!char f) * * * * * * * DtoArgument * * * * * * * * VarExp::toElem: w @ MsgRange * * * * * * * * * DtoSymbolAddress ('w' of type 'MsgRange') * * * * * * * * * * function param * * * * * * * * * * type: MsgRange * * * * * * * DtoArgument * * * * * * * * PtrExp::toElem: *cast(uint*)arg @ uint * * * * * * * * * CastExp::toElem: cast(uint*)arg @ uint* * * * * * * * * * * VarExp::toElem: arg @ const(void)* * * * * * * * * * * * DtoSymbolAddress ('arg' of type 'const(void)*') * * * * * * * * * * * * function param * * * * * * * * * * * * type: const(void)* * * * * * * * * * * Casting from 'const(void)*' to 'uint*' * * * * * * * * * * * src: %1 = load i8*, i8** %arg * * * * * * * * * * * to type: i32* * * * * * * * DtoArgument * * * * * * * * VarExp::toElem: f @ FormatSpec!char * * * * * * * * * DtoSymbolAddress ('f' of type 'FormatSpec!char') * * * * * * * * * * function param * * * * * * * * * * type: FormatSpec!char * TemplateInstance::codegen: 'std.format.formattedWrite!(MsgRange, char, uint).formattedWrite.__lambda6!uint' * * DtoDefineFunction(std.format.formattedWrite!(MsgRange, char, uint).formattedWrite.__lambda6): /usr/include/dlang/ldc/std/format.d(437) * TemplateInstance::codegen: 'std.format.formatNth!(MsgRange, char, uint)' * * DtoDefineFunction(std.format.formatNth!(MsgRange, char, uint).formatNth): /usr/include/dlang/ldc/std/format.d(3460) * * * Doing function body for: formatNth * * * DtoCreateNestedContext for formatNth * * * * DtoCreateNestedContextType for std.format.formatNth!(MsgRange, char, uint).formatNth * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3461) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3463) * * * * * * DeclarationExp::toElem: static template gencode(ulong count) | T=void * * * * * * * DtoDeclarationExp: __anonymous * * * * * * * * AttribDeclaration * * * * * * * * DtoDeclarationExp: gencode(ulong count)() * * * * * * * * * Ignoring Symbol: template * * * * * SwitchStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3477) * * * * * * has default * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3478) * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3478) * * * * * * * * CaseStatement::toIR(): /usr/include/dlang/ldc/std/format.d-mixin-3479(3479) * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * value = i64 0 * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d-mixin-3479(3479) * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d-mixin-3479(3479) * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d-mixin-3479(3479) * * * * * * * * * * * * CallExp::toElem: formatValue(w, _param_3, f) @ void * * * * * * * * * * * * * VarExp::toElem: formatValue @ @safe void(MsgRange w, uint obj, ref FormatSpec!char f) * * * * * * * * * * * * * * DtoSymbolAddress ('formatValue' of type '@safe void(MsgRange w, uint obj, ref FormatSpec!char f)') * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * Function type: @safe void(MsgRange w, uint obj, ref FormatSpec!char f) * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * VarExp::toElem: w @ MsgRange * * * * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'MsgRange') * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * type: MsgRange * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * VarExp::toElem: _param_3 @ uint * * * * * * * * * * * * * * * * DtoSymbolAddress ('_param_3' of type 'uint') * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * type: uint * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * VarExp::toElem: f @ FormatSpec!char * * * * * * * * * * * * * * * * DtoSymbolAddress ('f' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * type: FormatSpec!char * * * * * * * * * * * BreakStatement::toIR(): /usr/include/dlang/ldc/std/format.d-mixin-3479(3479) * * * * * * * * DefaultStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3481) * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3481) * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3482) * * * * * * * * * * * HaltExp::toElem: halt * * * * * * VarExp::toElem: index @ ulong * * * * * * * DtoSymbolAddress ('index' of type 'ulong') * * * * * * * * function param * * * * * * * * type: ulong * TemplateInstance::codegen: 'std.format.formatNth!(MsgRange, char, uint).formatNth.gencode!1LU' * * DtoDefineFunction(std.format.formatNth!(MsgRange, char, uint).formatNth.gencode!1LU.gencode): /usr/include/dlang/ldc/std/format.d(3463) * * * DtoFunctionType(pure nothrow @safe string()) * * * * x86-64 ABI: Transforming return type * * * * x86-64 ABI: Transforming argument types * * * * Final function type: { i64, i8* } () * * * DtoResolveFunction(std.format.formatNth!(MsgRange, char, uint).formatNth.gencode!1LU.gencode): /usr/include/dlang/ldc/std/format.d(3463) * * * * DtoDeclareFunction(std.format.formatNth!(MsgRange, char, uint).formatNth.gencode!1LU.gencode): /usr/include/dlang/ldc/std/format.d(3463) * * * * * DtoFunctionType(pure nothrow @safe string()) * * * * * func = declare { i64, i8* } @_D3std6format59__T9formatNthTS3std12experimental6logger4core8MsgRangeTaTkZ9formatNthFS3std12experimental6logger4core8MsgRangeKS3std6format18__T10FormatSpecTaZ10FormatSpecmkZ16__T7gencodeVmi1Z7gencodeFNaNbNfZAya() * * * Doing function body for: gencode * * * DtoCreateNestedContext for gencode * * * * DtoCreateNestedContextType for std.format.formatNth!(MsgRange, char, uint).formatNth.gencode!1LU.gencode * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3464) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3465) * * * * * * DeclarationExp::toElem: string result = null; | T=void * * * * * * * DtoDeclarationExp: result * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = string) * * * * * * * * * llvm value for decl: %result = alloca { i64, i8* }, align 8 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: result = null | (string)(string = string) * * * * * * * * * * VarExp::toElem: result @ string * * * * * * * * * * * DtoSymbolAddress ('result' of type 'string') * * * * * * * * * * * * a normal variable * * * * * * * * * * NullExp::toElem(type=string): null * * * * * * * * * * * NullExp::toConstElem(type=string): null * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * DtoSetArrayToNull * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3466) * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3466) * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3466) * * * * * * * * DeclarationExp::toElem: ulong __key3242 = 0LU; | T=void * * * * * * * * * DtoDeclarationExp: __key3242 * * * * * * * * * * VarDeclaration * * * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * * * llvm value for decl: %__key3242 = alloca i64, align 8 * * * * * * * * * * * expression initializer * * * * * * * * * * * AssignExp::toElem: __key3242 = 0LU | (ulong)(ulong = ulong) * * * * * * * * * * * * VarExp::toElem: __key3242 @ ulong * * * * * * * * * * * * * DtoSymbolAddress ('__key3242' of type 'ulong') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * lhs: %__key3242 = alloca i64, align 8 * * * * * * * * * * * * * rhs: i64 0 * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3466) * * * * * * * * DeclarationExp::toElem: ulong __limit3243 = 1LU; | T=void * * * * * * * * * DtoDeclarationExp: __limit3243 * * * * * * * * * * VarDeclaration * * * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * * * llvm value for decl: %__limit3243 = alloca i64, align 8 * * * * * * * * * * * expression initializer * * * * * * * * * * * AssignExp::toElem: __limit3243 = 1LU | (ulong)(ulong = ulong) * * * * * * * * * * * * VarExp::toElem: __limit3243 @ ulong * * * * * * * * * * * * * DtoSymbolAddress ('__limit3243' of type 'ulong') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * lhs: %__limit3243 = alloca i64, align 8 * * * * * * * * * * * * * rhs: i64 1 * * * * * * * ForStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3466) * * * * * * * * CmpExp::toElem: __key3242 < __limit3243 @ bool * * * * * * * * * VarExp::toElem: __key3242 @ ulong * * * * * * * * * * DtoSymbolAddress ('__key3242' of type 'ulong') * * * * * * * * * * * a normal variable * * * * * * * * * VarExp::toElem: __limit3243 @ ulong * * * * * * * * * * DtoSymbolAddress ('__limit3243' of type 'ulong') * * * * * * * * * * * a normal variable * * * * * * * * * type 1: %1 = load i64, i64* %__key3242 * * * * * * * * * type 2: %2 = load i64, i64* %__limit3243 * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3466) * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3466) * * * * * * * * * * DeclarationExp::toElem: ulong n = __key3242; | T=void * * * * * * * * * * * DtoDeclarationExp: n * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * * * * * llvm value for decl: %n = alloca i64, align 8 * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * AssignExp::toElem: n = __key3242 | (ulong)(ulong = ulong) * * * * * * * * * * * * * * VarExp::toElem: n @ ulong * * * * * * * * * * * * * * * DtoSymbolAddress ('n' of type 'ulong') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * VarExp::toElem: __key3242 @ ulong * * * * * * * * * * * * * * * DtoSymbolAddress ('__key3242' of type 'ulong') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * lhs: %n = alloca i64, align 8 * * * * * * * * * * * * * * * rhs: %4 = load i64, i64* %__key3242 * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3468) * * * * * * * * * * DeclarationExp::toElem: string num = to(n); | T=void * * * * * * * * * * * DtoDeclarationExp: num * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * DtoVarDeclaration(vdtype = string) * * * * * * * * * * * * * llvm value for decl: %num = alloca { i64, i8* }, align 8 * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * AssignExp::toElem: num = to(n) | (string)(string = string) * * * * * * * * * * * * * * VarExp::toElem: num @ string * * * * * * * * * * * * * * * DtoSymbolAddress ('num' of type 'string') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * CallExp::toElem: to(n) @ string * * * * * * * * * * * * * * * VarExp::toElem: to @ pure nothrow @safe string(ulong _param_0) * * * * * * * * * * * * * * * * DtoSymbolAddress ('to' of type 'pure nothrow @safe string(ulong _param_0)') * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @safe string(ulong _param_0)) * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * Final function type: { i64, i8* } (i64) * * * * * * * * * * * * * * * * * DtoResolveFunction(std.conv.to!string.to!(ulong).to): /usr/include/dlang/ldc/std/conv.d(292) * * * * * * * * * * * * * * * * * * DtoDeclareFunction(std.conv.to!string.to!(ulong).to): /usr/include/dlang/ldc/std/conv.d(292) * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @safe string(ulong _param_0)) * * * * * * * * * * * * * * * * * * * func = declare { i64, i8* } @_D3std4conv11__T2toTAyaZ9__T2toTmZ2toFNaNbNfmZAya(i64) * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * Building type: pure nothrow @safe string(ulong _param_0) * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @safe string(ulong _param_0)) * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * Final function type: { i64, i8* } (i64) * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * Function type: pure nothrow @safe string(ulong _param_0) * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * VarExp::toElem: n @ ulong * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('n' of type 'ulong') * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * SetArray * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3469) * * * * * * * * * * CatAssignExp::toElem: result ~= "case " ~ num ~ ": formatValue(w, args[" ~ num ~ "], f); break;" @ string * * * * * * * * * * * VarExp::toElem: result @ string * * * * * * * * * * * * DtoSymbolAddress ('result' of type 'string') * * * * * * * * * * * * * a normal variable * * * * * * * * * * * DtoCatAssignArray * * * * * * * * * * * * CatExp::toElem: "case " ~ num ~ ": formatValue(w, args[" ~ num ~ "], f); break;" @ string * * * * * * * * * * * * * DtoCatAssignArray * * * * * * * * * * * * * * StringExp::toElem: "], f); break;" @ string * * * * * * * * * * * * * * * type: [17 x i8] * * * * * * * * * * * * * * * init: [17 x i8] c"], f); break;\00" * * * * * * * * * * * * * * VarExp::toElem: num @ string * * * * * * * * * * * * * * * DtoSymbolAddress ('num' of type 'string') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * StringExp::toElem: ": formatValue(w, args[" @ string * * * * * * * * * * * * * * * type: [26 x i8] * * * * * * * * * * * * * * * init: [26 x i8] c": formatValue(w, args[\00" * * * * * * * * * * * * * * VarExp::toElem: num @ string * * * * * * * * * * * * * * * DtoSymbolAddress ('num' of type 'string') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * StringExp::toElem: "case " @ string * * * * * * * * * * * * * * * type: [6 x i8] * * * * * * * * * * * * * * * init: [6 x i8] c"case \00" * * * * * * * * * * * * * * DtoTypeInfoOf(type = 'string', base='1') * * * * * * * * * * * * * * * Type::getTypeInfo(): string * * * * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(string)) * * * * * * * * * * * * DtoTypeInfoOf(type = 'string', base='1') * * * * * * * * * * * * * Type::getTypeInfo(): string * * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(string)) * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * SetArray * * * * * * * * AddAssignExp::toElem: __key3242 += 1LU @ ulong * * * * * * * * * Caching l-value of __key3242 += 1LU => __key3242 * * * * * * * * * * VarExp::toElem: __key3242 @ ulong * * * * * * * * * * * DtoSymbolAddress ('__key3242' of type 'ulong') * * * * * * * * * * * * a normal variable * * * * * * * * * AddExp::toElem: __key3242 + 1LU @ ulong * * * * * * * * * * VarExp::toElem: __key3242 @ ulong * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * value = i64 1 * * * * * * * * * DtoAssign() * * * * * * * * * * lhs: %__key3242 = alloca i64, align 8 * * * * * * * * * * rhs: %21 = add i64 %20, 1 * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3474) * * * * * * VarExp::toElem: result @ string * * * * * * * DtoSymbolAddress ('result' of type 'string') * * * * * * * * a normal variable * * * * * * return value is '0x1274d568' * TemplateInstance::codegen: 'std.format.formattedWrite!(MsgRange, char, string).formattedWrite.__lambda6!string' * * DtoDefineFunction(std.format.formattedWrite!(MsgRange, char, string).formattedWrite.__lambda6): /usr/include/dlang/ldc/std/format.d(437) * TemplateInstance::codegen: 'std.format.formatNth!(MsgRange, char, string)' * * DtoDefineFunction(std.format.formatNth!(MsgRange, char, string).formatNth): /usr/include/dlang/ldc/std/format.d(3460) * * * Doing function body for: formatNth * * * DtoCreateNestedContext for formatNth * * * * DtoCreateNestedContextType for std.format.formatNth!(MsgRange, char, string).formatNth * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3461) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3463) * * * * * * DeclarationExp::toElem: static template gencode(ulong count) | T=void * * * * * * * DtoDeclarationExp: __anonymous * * * * * * * * AttribDeclaration * * * * * * * * DtoDeclarationExp: gencode(ulong count)() * * * * * * * * * Ignoring Symbol: template * * * * * SwitchStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3477) * * * * * * has default * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3478) * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3478) * * * * * * * * CaseStatement::toIR(): /usr/include/dlang/ldc/std/format.d-mixin-3479(3479) * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * value = i64 0 * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d-mixin-3479(3479) * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d-mixin-3479(3479) * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d-mixin-3479(3479) * * * * * * * * * * * * CallExp::toElem: formatValue(w, _param_3, f) @ void * * * * * * * * * * * * * VarExp::toElem: formatValue @ @safe void(MsgRange w, string obj, ref FormatSpec!char f) * * * * * * * * * * * * * * DtoSymbolAddress ('formatValue' of type '@safe void(MsgRange w, string obj, ref FormatSpec!char f)') * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * Function type: @safe void(MsgRange w, string obj, ref FormatSpec!char f) * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * VarExp::toElem: w @ MsgRange * * * * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'MsgRange') * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * type: MsgRange * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * VarExp::toElem: _param_3 @ string * * * * * * * * * * * * * * * * DtoSymbolAddress ('_param_3' of type 'string') * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * type: string * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * VarExp::toElem: f @ FormatSpec!char * * * * * * * * * * * * * * * * DtoSymbolAddress ('f' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * type: FormatSpec!char * * * * * * * * * * * BreakStatement::toIR(): /usr/include/dlang/ldc/std/format.d-mixin-3479(3479) * * * * * * * * DefaultStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3481) * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3481) * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3482) * * * * * * * * * * * HaltExp::toElem: halt * * * * * * VarExp::toElem: index @ ulong * * * * * * * DtoSymbolAddress ('index' of type 'ulong') * * * * * * * * function param * * * * * * * * type: ulong * TemplateInstance::codegen: 'std.format.formatNth!(MsgRange, char, string).formatNth.gencode!1LU' * * DtoDefineFunction(std.format.formatNth!(MsgRange, char, string).formatNth.gencode!1LU.gencode): /usr/include/dlang/ldc/std/format.d(3463) * * * DtoFunctionType(pure nothrow @safe string()) * * * * x86-64 ABI: Transforming return type * * * * x86-64 ABI: Transforming argument types * * * * Final function type: { i64, i8* } () * * * DtoResolveFunction(std.format.formatNth!(MsgRange, char, string).formatNth.gencode!1LU.gencode): /usr/include/dlang/ldc/std/format.d(3463) * * * * DtoDeclareFunction(std.format.formatNth!(MsgRange, char, string).formatNth.gencode!1LU.gencode): /usr/include/dlang/ldc/std/format.d(3463) * * * * * DtoFunctionType(pure nothrow @safe string()) * * * * * func = declare { i64, i8* } @_D3std6format61__T9formatNthTS3std12experimental6logger4core8MsgRangeTaTAyaZ9formatNthFS3std12experimental6logger4core8MsgRangeKS3std6format18__T10FormatSpecTaZ10FormatSpecmAyaZ16__T7gencodeVmi1Z7gencodeFNaNbNfZAya() * * * Doing function body for: gencode * * * DtoCreateNestedContext for gencode * * * * DtoCreateNestedContextType for std.format.formatNth!(MsgRange, char, string).formatNth.gencode!1LU.gencode * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3464) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3465) * * * * * * DeclarationExp::toElem: string result = null; | T=void * * * * * * * DtoDeclarationExp: result * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = string) * * * * * * * * * llvm value for decl: %result = alloca { i64, i8* }, align 8 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: result = null | (string)(string = string) * * * * * * * * * * VarExp::toElem: result @ string * * * * * * * * * * * DtoSymbolAddress ('result' of type 'string') * * * * * * * * * * * * a normal variable * * * * * * * * * * NullExp::toElem(type=string): null * * * * * * * * * * * NullExp::toConstElem(type=string): null * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * DtoSetArrayToNull * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3466) * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3466) * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3466) * * * * * * * * DeclarationExp::toElem: ulong __key3253 = 0LU; | T=void * * * * * * * * * DtoDeclarationExp: __key3253 * * * * * * * * * * VarDeclaration * * * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * * * llvm value for decl: %__key3253 = alloca i64, align 8 * * * * * * * * * * * expression initializer * * * * * * * * * * * AssignExp::toElem: __key3253 = 0LU | (ulong)(ulong = ulong) * * * * * * * * * * * * VarExp::toElem: __key3253 @ ulong * * * * * * * * * * * * * DtoSymbolAddress ('__key3253' of type 'ulong') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * lhs: %__key3253 = alloca i64, align 8 * * * * * * * * * * * * * rhs: i64 0 * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3466) * * * * * * * * DeclarationExp::toElem: ulong __limit3254 = 1LU; | T=void * * * * * * * * * DtoDeclarationExp: __limit3254 * * * * * * * * * * VarDeclaration * * * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * * * llvm value for decl: %__limit3254 = alloca i64, align 8 * * * * * * * * * * * expression initializer * * * * * * * * * * * AssignExp::toElem: __limit3254 = 1LU | (ulong)(ulong = ulong) * * * * * * * * * * * * VarExp::toElem: __limit3254 @ ulong * * * * * * * * * * * * * DtoSymbolAddress ('__limit3254' of type 'ulong') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * lhs: %__limit3254 = alloca i64, align 8 * * * * * * * * * * * * * rhs: i64 1 * * * * * * * ForStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3466) * * * * * * * * CmpExp::toElem: __key3253 < __limit3254 @ bool * * * * * * * * * VarExp::toElem: __key3253 @ ulong * * * * * * * * * * DtoSymbolAddress ('__key3253' of type 'ulong') * * * * * * * * * * * a normal variable * * * * * * * * * VarExp::toElem: __limit3254 @ ulong * * * * * * * * * * DtoSymbolAddress ('__limit3254' of type 'ulong') * * * * * * * * * * * a normal variable * * * * * * * * * type 1: %1 = load i64, i64* %__key3253 * * * * * * * * * type 2: %2 = load i64, i64* %__limit3254 * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3466) * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3466) * * * * * * * * * * DeclarationExp::toElem: ulong n = __key3253; | T=void * * * * * * * * * * * DtoDeclarationExp: n * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * * * * * llvm value for decl: %n = alloca i64, align 8 * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * AssignExp::toElem: n = __key3253 | (ulong)(ulong = ulong) * * * * * * * * * * * * * * VarExp::toElem: n @ ulong * * * * * * * * * * * * * * * DtoSymbolAddress ('n' of type 'ulong') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * VarExp::toElem: __key3253 @ ulong * * * * * * * * * * * * * * * DtoSymbolAddress ('__key3253' of type 'ulong') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * lhs: %n = alloca i64, align 8 * * * * * * * * * * * * * * * rhs: %4 = load i64, i64* %__key3253 * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3468) * * * * * * * * * * DeclarationExp::toElem: string num = to(n); | T=void * * * * * * * * * * * DtoDeclarationExp: num * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * DtoVarDeclaration(vdtype = string) * * * * * * * * * * * * * llvm value for decl: %num = alloca { i64, i8* }, align 8 * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * AssignExp::toElem: num = to(n) | (string)(string = string) * * * * * * * * * * * * * * VarExp::toElem: num @ string * * * * * * * * * * * * * * * DtoSymbolAddress ('num' of type 'string') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * CallExp::toElem: to(n) @ string * * * * * * * * * * * * * * * VarExp::toElem: to @ pure nothrow @safe string(ulong _param_0) * * * * * * * * * * * * * * * * DtoSymbolAddress ('to' of type 'pure nothrow @safe string(ulong _param_0)') * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * Function type: pure nothrow @safe string(ulong _param_0) * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * VarExp::toElem: n @ ulong * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('n' of type 'ulong') * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * SetArray * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3469) * * * * * * * * * * CatAssignExp::toElem: result ~= "case " ~ num ~ ": formatValue(w, args[" ~ num ~ "], f); break;" @ string * * * * * * * * * * * VarExp::toElem: result @ string * * * * * * * * * * * * DtoSymbolAddress ('result' of type 'string') * * * * * * * * * * * * * a normal variable * * * * * * * * * * * DtoCatAssignArray * * * * * * * * * * * * CatExp::toElem: "case " ~ num ~ ": formatValue(w, args[" ~ num ~ "], f); break;" @ string * * * * * * * * * * * * * DtoCatAssignArray * * * * * * * * * * * * * * StringExp::toElem: "], f); break;" @ string * * * * * * * * * * * * * * VarExp::toElem: num @ string * * * * * * * * * * * * * * * DtoSymbolAddress ('num' of type 'string') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * StringExp::toElem: ": formatValue(w, args[" @ string * * * * * * * * * * * * * * VarExp::toElem: num @ string * * * * * * * * * * * * * * * DtoSymbolAddress ('num' of type 'string') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * StringExp::toElem: "case " @ string * * * * * * * * * * * * * * DtoTypeInfoOf(type = 'string', base='1') * * * * * * * * * * * * * * * Type::getTypeInfo(): string * * * * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(string)) * * * * * * * * * * * * DtoTypeInfoOf(type = 'string', base='1') * * * * * * * * * * * * * Type::getTypeInfo(): string * * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(string)) * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * SetArray * * * * * * * * AddAssignExp::toElem: __key3253 += 1LU @ ulong * * * * * * * * * Caching l-value of __key3253 += 1LU => __key3253 * * * * * * * * * * VarExp::toElem: __key3253 @ ulong * * * * * * * * * * * DtoSymbolAddress ('__key3253' of type 'ulong') * * * * * * * * * * * * a normal variable * * * * * * * * * AddExp::toElem: __key3253 + 1LU @ ulong * * * * * * * * * * VarExp::toElem: __key3253 @ ulong * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * value = i64 1 * * * * * * * * * DtoAssign() * * * * * * * * * * lhs: %__key3253 = alloca i64, align 8 * * * * * * * * * * rhs: %21 = add i64 %20, 1 * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3474) * * * * * * VarExp::toElem: result @ string * * * * * * * DtoSymbolAddress ('result' of type 'string') * * * * * * * * a normal variable * * * * * * return value is '0x124bd3e8' * TemplateInstance::codegen: 'std.range.primitives.put!(LockingTextWriter, string)' * * DtoDefineFunction(std.range.primitives.put!(LockingTextWriter, string).put): /usr/include/dlang/ldc/std/range/primitives.d(277) * * * DtoFunctionType(@safe void(ref LockingTextWriter r, string e)) * * * * Building type: LockingTextWriter* * * * * * Building type: LockingTextWriter * * * * * * Building struct type std.stdio.File.LockingTextWriter @ /usr/include/dlang/ldc/std/stdio.d(2370) * * * * * * * adding default initializer for struct field fps_ * * * * * * * adding default initializer for struct field handle_ * * * * * * * adding default initializer for struct field orientation_ * * * * * * * Building type: shared(_IO_FILE)* * * * * * * * * Building type: _IO_FILE * * * * * * * * * Building struct type core.stdc.stdio._IO_FILE @ /usr/include/dlang/ldc/core/stdc/stdio.d(279) * * * * * * * * * * adding default initializer for struct field _flags * * * * * * * * * * adding default initializer for struct field _read_ptr * * * * * * * * * * adding default initializer for struct field _read_end * * * * * * * * * * adding default initializer for struct field _read_base * * * * * * * * * * adding default initializer for struct field _write_base * * * * * * * * * * adding default initializer for struct field _write_ptr * * * * * * * * * * adding default initializer for struct field _write_end * * * * * * * * * * adding default initializer for struct field _buf_base * * * * * * * * * * adding default initializer for struct field _buf_end * * * * * * * * * * adding default initializer for struct field _save_base * * * * * * * * * * adding default initializer for struct field _backup_base * * * * * * * * * * adding default initializer for struct field _save_end * * * * * * * * * * adding default initializer for struct field _markers * * * * * * * * * * adding default initializer for struct field _chain * * * * * * * * * * adding default initializer for struct field _fileno * * * * * * * * * * adding default initializer for struct field _blksize * * * * * * * * * * adding default initializer for struct field _old_offset * * * * * * * * * * adding default initializer for struct field _cur_column * * * * * * * * * * adding default initializer for struct field _vtable_offset * * * * * * * * * * adding default initializer for struct field _shortbuf * * * * * * * * * * adding default initializer for struct field _lock * * * * * * * * * * Building type: _IO_FILE* * * * * * * * * * * Building type: char[1] * * * * * * * * * * final struct type: %core.stdc.stdio._IO_FILE = type { i32, [4 x i8], i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, i8*, %core.stdc.stdio._IO_FILE*, i32, i32, i32, i16, i8, [1 x i8], i8* } * * * * * * * final struct type: %std.stdio.File.LockingTextWriter = type { %core.stdc.stdio._IO_FILE*, %core.stdc.stdio._IO_FILE*, i32, [4 x i8] } * * * * x86-64 ABI: Transforming argument types * * * * Final function type: void ({ i64, i8* }, %std.stdio.File.LockingTextWriter*) * * * DtoResolveFunction(std.range.primitives.put!(LockingTextWriter, string).put): /usr/include/dlang/ldc/std/range/primitives.d(277) * * * * DtoDeclareFunction(std.range.primitives.put!(LockingTextWriter, string).put): /usr/include/dlang/ldc/std/range/primitives.d(277) * * * * * DtoFunctionType(@safe void(ref LockingTextWriter r, string e)) * * * * * func = declare void @_D3std5range10primitives48__T3putTS3std5stdio4File17LockingTextWriterTAyaZ3putFNfKS3std5stdio4File17LockingTextWriterAyaZv({ i64, i8* }, %std.stdio.File.LockingTextWriter*) * * * Doing function body for: put * * * DtoCreateNestedContext for put * * * * DtoCreateNestedContextType for std.range.primitives.put!(LockingTextWriter, string).put * * * CompoundStatement::toIR(): * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/range/primitives.d(282) * * * * * CallExp::toElem: doPut(r, e) @ void * * * * * * VarExp::toElem: doPut @ @safe void(ref LockingTextWriter r, auto ref string e) * * * * * * * DtoSymbolAddress ('doPut' of type '@safe void(ref LockingTextWriter r, auto ref string e)') * * * * * * * * FuncDeclaration * * * * * * * * DtoFunctionType(@safe void(ref LockingTextWriter r, auto ref string e)) * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * Final function type: void ({ i64, i8* }*, %std.stdio.File.LockingTextWriter*) * * * * * * * * DtoResolveFunction(std.range.primitives.doPut!(LockingTextWriter, string).doPut): /usr/include/dlang/ldc/std/range/primitives.d(182) * * * * * * * * * DtoDeclareFunction(std.range.primitives.doPut!(LockingTextWriter, string).doPut): /usr/include/dlang/ldc/std/range/primitives.d(182) * * * * * * * * * * DtoFunctionType(@safe void(ref LockingTextWriter r, auto ref string e)) * * * * * * * * * * func = declare void @_D3std5range10primitives50__T5doPutTS3std5stdio4File17LockingTextWriterTAyaZ5doPutFNfKS3std5stdio4File17LockingTextWriterKAyaZv({ i64, i8* }*, %std.stdio.File.LockingTextWriter*) * * * * * * DtoCallFunction() * * * * * * * Building type: @safe void(ref LockingTextWriter r, auto ref string e) * * * * * * * * DtoFunctionType(@safe void(ref LockingTextWriter r, auto ref string e)) * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * Final function type: void ({ i64, i8* }*, %std.stdio.File.LockingTextWriter*) * * * * * * * doing normal arguments * * * * * * * Arguments so far: (0) * * * * * * * Function type: @safe void(ref LockingTextWriter r, auto ref string e) * * * * * * * DtoArgument * * * * * * * * VarExp::toElem: r @ LockingTextWriter * * * * * * * * * DtoSymbolAddress ('r' of type 'LockingTextWriter') * * * * * * * * * * function param * * * * * * * * * * type: LockingTextWriter * * * * * * * DtoArgument * * * * * * * * VarExp::toElem: e @ string * * * * * * * * * DtoSymbolAddress ('e' of type 'string') * * * * * * * * * * function param * * * * * * * * * * type: string * TemplateInstance::codegen: 'std.range.primitives.doPut!(LockingTextWriter, string)' * * DtoDefineFunction(std.range.primitives.doPut!(LockingTextWriter, string).doPut): /usr/include/dlang/ldc/std/range/primitives.d(182) * * * Doing function body for: doPut * * * DtoCreateNestedContext for doPut * * * * DtoCreateNestedContextType for std.range.primitives.doPut!(LockingTextWriter, string).doPut * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/range/primitives.d(183) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/range/primitives.d(187) * * * * * * DeclarationExp::toElem: enum bool usingPut = true; | T=void * * * * * * * DtoDeclarationExp: usingPut * * * * * * * * VarDeclaration * * * * * * * * Manifest constant, nothing to do. * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/range/primitives.d(193) * * * * * * CallExp::toElem: r.put(e) @ void * * * * * * * DotVarExp::toElem: r.put @ @safe void(string writeme) * * * * * * * * VarExp::toElem: r @ LockingTextWriter * * * * * * * * * DtoSymbolAddress ('r' of type 'LockingTextWriter') * * * * * * * * * * function param * * * * * * * * * * type: LockingTextWriter * * * * * * * * isMember = this is: LockingTextWriter * * * * * * * * DtoFunctionType(@safe void(string writeme)) * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * Final function type: void (%std.stdio.File.LockingTextWriter*, { i64, i8* }) * * * * * * * * DtoResolveFunction(std.stdio.File.LockingTextWriter.put!string.put): /usr/include/dlang/ldc/std/stdio.d(2416) * * * * * * * * * DtoDeclareFunction(std.stdio.File.LockingTextWriter.put!string.put): /usr/include/dlang/ldc/std/stdio.d(2416) * * * * * * * * * * isMember = this is: LockingTextWriter * * * * * * * * * * DtoFunctionType(@safe void(string writeme)) * * * * * * * * * * func = declare void @_D3std5stdio4File17LockingTextWriter12__T3putTAyaZ3putMFNfAyaZv(%std.stdio.File.LockingTextWriter*, { i64, i8* }) * * * * * * * DtoCallFunction() * * * * * * * * Building type: @safe void(string writeme) * * * * * * * * * DtoFunctionType(@safe void(string writeme)) * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: void ({ i64, i8* }) * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (1) * * * * * * * * * %std.stdio.File.LockingTextWriter* %r_arg * * * * * * * * Function type: @safe void(string writeme) * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: e @ string * * * * * * * * * * DtoSymbolAddress ('e' of type 'string') * * * * * * * * * * * function param * * * * * * * * * * * type: string * TemplateInstance::codegen: 'std.traits.hasMember!(LockingTextWriter, "put")' * * VarDeclaration::codegen(): 'std.traits.hasMember!(LockingTextWriter, "put").hasMember' * * * DtoResolveVariable(std.traits.hasMember!(LockingTextWriter, "put").hasMember) * TemplateInstance::codegen: 'std.typetuple.staticIndexOf!("put", "fps_", "handle_", "orientation_", "fps", "handle", "orientation", "__ctor", "__dtor", "__postblit", "put", "opAssign")' * * VarDeclaration::codegen(): 'std.typetuple.staticIndexOf!("put", "fps_", "handle_", "orientation_", "fps", "handle", "orientation", "__ctor", "__dtor", "__postblit", "put", "opAssign").staticIndexOf' * * * DtoResolveVariable(std.typetuple.staticIndexOf!("put", "fps_", "handle_", "orientation_", "fps", "handle", "orientation", "__ctor", "__dtor", "__postblit", "put", "opAssign").staticIndexOf) * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("put", "fps_", "handle_", "orientation_", "fps", "handle", "orientation", "__ctor", "__dtor", "__postblit", "put", "opAssign")' * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!("put", "fps_", "handle_", "orientation_", "fps", "handle", "orientation", "__ctor", "__dtor", "__postblit", "put", "opAssign").e * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!("put", "fps_", "handle_", "orientation_", "fps", "handle", "orientation", "__ctor", "__dtor", "__postblit", "put", "opAssign").tuple * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!("put", "fps_", "handle_", "orientation_", "fps", "handle", "orientation", "__ctor", "__dtor", "__postblit", "put", "opAssign").head * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!("put", "fps_", "handle_", "orientation_", "fps", "handle", "orientation", "__ctor", "__dtor", "__postblit", "put", "opAssign").tail * * VarDeclaration::codegen(): 'std.typetuple.genericIndexOf!("put", "fps_", "handle_", "orientation_", "fps", "handle", "orientation", "__ctor", "__dtor", "__postblit", "put", "opAssign").next' * * * DtoResolveVariable(std.typetuple.genericIndexOf!("put", "fps_", "handle_", "orientation_", "fps", "handle", "orientation", "__ctor", "__dtor", "__postblit", "put", "opAssign").next) * * VarDeclaration::codegen(): 'std.typetuple.genericIndexOf!("put", "fps_", "handle_", "orientation_", "fps", "handle", "orientation", "__ctor", "__dtor", "__postblit", "put", "opAssign").index' * * * DtoResolveVariable(std.typetuple.genericIndexOf!("put", "fps_", "handle_", "orientation_", "fps", "handle", "orientation", "__ctor", "__dtor", "__postblit", "put", "opAssign").index) * TemplateInstance::codegen: 'std.typetuple.Alias!"fps_"' * * Ignoring Dsymbol::codegen for std.typetuple.Alias!"fps_".Alias * TemplateInstance::codegen: 'std.typetuple.isSame!("put", "fps_")' * * VarDeclaration::codegen(): 'std.typetuple.isSame!("put", "fps_").isSame' * * * DtoResolveVariable(std.typetuple.isSame!("put", "fps_").isSame) * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("put", "handle_", "orientation_", "fps", "handle", "orientation", "__ctor", "__dtor", "__postblit", "put", "opAssign")' * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!("put", "handle_", "orientation_", "fps", "handle", "orientation", "__ctor", "__dtor", "__postblit", "put", "opAssign").e * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!("put", "handle_", "orientation_", "fps", "handle", "orientation", "__ctor", "__dtor", "__postblit", "put", "opAssign").tuple * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!("put", "handle_", "orientation_", "fps", "handle", "orientation", "__ctor", "__dtor", "__postblit", "put", "opAssign").head * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!("put", "handle_", "orientation_", "fps", "handle", "orientation", "__ctor", "__dtor", "__postblit", "put", "opAssign").tail * * VarDeclaration::codegen(): 'std.typetuple.genericIndexOf!("put", "handle_", "orientation_", "fps", "handle", "orientation", "__ctor", "__dtor", "__postblit", "put", "opAssign").next' * * * DtoResolveVariable(std.typetuple.genericIndexOf!("put", "handle_", "orientation_", "fps", "handle", "orientation", "__ctor", "__dtor", "__postblit", "put", "opAssign").next) * * VarDeclaration::codegen(): 'std.typetuple.genericIndexOf!("put", "handle_", "orientation_", "fps", "handle", "orientation", "__ctor", "__dtor", "__postblit", "put", "opAssign").index' * * * DtoResolveVariable(std.typetuple.genericIndexOf!("put", "handle_", "orientation_", "fps", "handle", "orientation", "__ctor", "__dtor", "__postblit", "put", "opAssign").index) * TemplateInstance::codegen: 'std.typetuple.Alias!"handle_"' * * Ignoring Dsymbol::codegen for std.typetuple.Alias!"handle_".Alias * TemplateInstance::codegen: 'std.typetuple.isSame!("put", "handle_")' * * VarDeclaration::codegen(): 'std.typetuple.isSame!("put", "handle_").isSame' * * * DtoResolveVariable(std.typetuple.isSame!("put", "handle_").isSame) * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("put", "orientation_", "fps", "handle", "orientation", "__ctor", "__dtor", "__postblit", "put", "opAssign")' * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!("put", "orientation_", "fps", "handle", "orientation", "__ctor", "__dtor", "__postblit", "put", "opAssign").e * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!("put", "orientation_", "fps", "handle", "orientation", "__ctor", "__dtor", "__postblit", "put", "opAssign").tuple * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!("put", "orientation_", "fps", "handle", "orientation", "__ctor", "__dtor", "__postblit", "put", "opAssign").head * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!("put", "orientation_", "fps", "handle", "orientation", "__ctor", "__dtor", "__postblit", "put", "opAssign").tail * * VarDeclaration::codegen(): 'std.typetuple.genericIndexOf!("put", "orientation_", "fps", "handle", "orientation", "__ctor", "__dtor", "__postblit", "put", "opAssign").next' * * * DtoResolveVariable(std.typetuple.genericIndexOf!("put", "orientation_", "fps", "handle", "orientation", "__ctor", "__dtor", "__postblit", "put", "opAssign").next) * * VarDeclaration::codegen(): 'std.typetuple.genericIndexOf!("put", "orientation_", "fps", "handle", "orientation", "__ctor", "__dtor", "__postblit", "put", "opAssign").index' * * * DtoResolveVariable(std.typetuple.genericIndexOf!("put", "orientation_", "fps", "handle", "orientation", "__ctor", "__dtor", "__postblit", "put", "opAssign").index) * TemplateInstance::codegen: 'std.typetuple.Alias!"orientation_"' * * Ignoring Dsymbol::codegen for std.typetuple.Alias!"orientation_".Alias * TemplateInstance::codegen: 'std.typetuple.isSame!("put", "orientation_")' * * VarDeclaration::codegen(): 'std.typetuple.isSame!("put", "orientation_").isSame' * * * DtoResolveVariable(std.typetuple.isSame!("put", "orientation_").isSame) * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("put", "fps", "handle", "orientation", "__ctor", "__dtor", "__postblit", "put", "opAssign")' * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!("put", "fps", "handle", "orientation", "__ctor", "__dtor", "__postblit", "put", "opAssign").e * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!("put", "fps", "handle", "orientation", "__ctor", "__dtor", "__postblit", "put", "opAssign").tuple * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!("put", "fps", "handle", "orientation", "__ctor", "__dtor", "__postblit", "put", "opAssign").head * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!("put", "fps", "handle", "orientation", "__ctor", "__dtor", "__postblit", "put", "opAssign").tail * * VarDeclaration::codegen(): 'std.typetuple.genericIndexOf!("put", "fps", "handle", "orientation", "__ctor", "__dtor", "__postblit", "put", "opAssign").next' * * * DtoResolveVariable(std.typetuple.genericIndexOf!("put", "fps", "handle", "orientation", "__ctor", "__dtor", "__postblit", "put", "opAssign").next) * * VarDeclaration::codegen(): 'std.typetuple.genericIndexOf!("put", "fps", "handle", "orientation", "__ctor", "__dtor", "__postblit", "put", "opAssign").index' * * * DtoResolveVariable(std.typetuple.genericIndexOf!("put", "fps", "handle", "orientation", "__ctor", "__dtor", "__postblit", "put", "opAssign").index) * TemplateInstance::codegen: 'std.typetuple.Alias!"fps"' * * Ignoring Dsymbol::codegen for std.typetuple.Alias!"fps".Alias * TemplateInstance::codegen: 'std.typetuple.isSame!("put", "fps")' * * VarDeclaration::codegen(): 'std.typetuple.isSame!("put", "fps").isSame' * * * DtoResolveVariable(std.typetuple.isSame!("put", "fps").isSame) * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("put", "handle", "orientation", "__ctor", "__dtor", "__postblit", "put", "opAssign")' * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!("put", "handle", "orientation", "__ctor", "__dtor", "__postblit", "put", "opAssign").e * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!("put", "handle", "orientation", "__ctor", "__dtor", "__postblit", "put", "opAssign").tuple * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!("put", "handle", "orientation", "__ctor", "__dtor", "__postblit", "put", "opAssign").head * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!("put", "handle", "orientation", "__ctor", "__dtor", "__postblit", "put", "opAssign").tail * * VarDeclaration::codegen(): 'std.typetuple.genericIndexOf!("put", "handle", "orientation", "__ctor", "__dtor", "__postblit", "put", "opAssign").next' * * * DtoResolveVariable(std.typetuple.genericIndexOf!("put", "handle", "orientation", "__ctor", "__dtor", "__postblit", "put", "opAssign").next) * * VarDeclaration::codegen(): 'std.typetuple.genericIndexOf!("put", "handle", "orientation", "__ctor", "__dtor", "__postblit", "put", "opAssign").index' * * * DtoResolveVariable(std.typetuple.genericIndexOf!("put", "handle", "orientation", "__ctor", "__dtor", "__postblit", "put", "opAssign").index) * TemplateInstance::codegen: 'std.typetuple.Alias!"handle"' * * Ignoring Dsymbol::codegen for std.typetuple.Alias!"handle".Alias * TemplateInstance::codegen: 'std.typetuple.isSame!("put", "handle")' * * VarDeclaration::codegen(): 'std.typetuple.isSame!("put", "handle").isSame' * * * DtoResolveVariable(std.typetuple.isSame!("put", "handle").isSame) * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("put", "orientation", "__ctor", "__dtor", "__postblit", "put", "opAssign")' * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!("put", "orientation", "__ctor", "__dtor", "__postblit", "put", "opAssign").e * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!("put", "orientation", "__ctor", "__dtor", "__postblit", "put", "opAssign").tuple * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!("put", "orientation", "__ctor", "__dtor", "__postblit", "put", "opAssign").head * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!("put", "orientation", "__ctor", "__dtor", "__postblit", "put", "opAssign").tail * * VarDeclaration::codegen(): 'std.typetuple.genericIndexOf!("put", "orientation", "__ctor", "__dtor", "__postblit", "put", "opAssign").next' * * * DtoResolveVariable(std.typetuple.genericIndexOf!("put", "orientation", "__ctor", "__dtor", "__postblit", "put", "opAssign").next) * * VarDeclaration::codegen(): 'std.typetuple.genericIndexOf!("put", "orientation", "__ctor", "__dtor", "__postblit", "put", "opAssign").index' * * * DtoResolveVariable(std.typetuple.genericIndexOf!("put", "orientation", "__ctor", "__dtor", "__postblit", "put", "opAssign").index) * TemplateInstance::codegen: 'std.typetuple.Alias!"orientation"' * * Ignoring Dsymbol::codegen for std.typetuple.Alias!"orientation".Alias * TemplateInstance::codegen: 'std.typetuple.isSame!("put", "orientation")' * * VarDeclaration::codegen(): 'std.typetuple.isSame!("put", "orientation").isSame' * * * DtoResolveVariable(std.typetuple.isSame!("put", "orientation").isSame) * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("put", "__ctor", "__dtor", "__postblit", "put", "opAssign")' * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!("put", "__ctor", "__dtor", "__postblit", "put", "opAssign").e * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!("put", "__ctor", "__dtor", "__postblit", "put", "opAssign").tuple * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!("put", "__ctor", "__dtor", "__postblit", "put", "opAssign").head * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!("put", "__ctor", "__dtor", "__postblit", "put", "opAssign").tail * * VarDeclaration::codegen(): 'std.typetuple.genericIndexOf!("put", "__ctor", "__dtor", "__postblit", "put", "opAssign").next' * * * DtoResolveVariable(std.typetuple.genericIndexOf!("put", "__ctor", "__dtor", "__postblit", "put", "opAssign").next) * * VarDeclaration::codegen(): 'std.typetuple.genericIndexOf!("put", "__ctor", "__dtor", "__postblit", "put", "opAssign").index' * * * DtoResolveVariable(std.typetuple.genericIndexOf!("put", "__ctor", "__dtor", "__postblit", "put", "opAssign").index) * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("put", "__dtor", "__postblit", "put", "opAssign")' * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!("put", "__dtor", "__postblit", "put", "opAssign").e * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!("put", "__dtor", "__postblit", "put", "opAssign").tuple * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!("put", "__dtor", "__postblit", "put", "opAssign").head * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!("put", "__dtor", "__postblit", "put", "opAssign").tail * * VarDeclaration::codegen(): 'std.typetuple.genericIndexOf!("put", "__dtor", "__postblit", "put", "opAssign").next' * * * DtoResolveVariable(std.typetuple.genericIndexOf!("put", "__dtor", "__postblit", "put", "opAssign").next) * * VarDeclaration::codegen(): 'std.typetuple.genericIndexOf!("put", "__dtor", "__postblit", "put", "opAssign").index' * * * DtoResolveVariable(std.typetuple.genericIndexOf!("put", "__dtor", "__postblit", "put", "opAssign").index) * TemplateInstance::codegen: 'std.typetuple.isSame!("put", "__dtor")' * * VarDeclaration::codegen(): 'std.typetuple.isSame!("put", "__dtor").isSame' * * * DtoResolveVariable(std.typetuple.isSame!("put", "__dtor").isSame) * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("put", "__postblit", "put", "opAssign")' * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!("put", "__postblit", "put", "opAssign").e * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!("put", "__postblit", "put", "opAssign").tuple * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!("put", "__postblit", "put", "opAssign").head * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!("put", "__postblit", "put", "opAssign").tail * * VarDeclaration::codegen(): 'std.typetuple.genericIndexOf!("put", "__postblit", "put", "opAssign").next' * * * DtoResolveVariable(std.typetuple.genericIndexOf!("put", "__postblit", "put", "opAssign").next) * * VarDeclaration::codegen(): 'std.typetuple.genericIndexOf!("put", "__postblit", "put", "opAssign").index' * * * DtoResolveVariable(std.typetuple.genericIndexOf!("put", "__postblit", "put", "opAssign").index) * TemplateInstance::codegen: 'std.typetuple.isSame!("put", "__postblit")' * * VarDeclaration::codegen(): 'std.typetuple.isSame!("put", "__postblit").isSame' * * * DtoResolveVariable(std.typetuple.isSame!("put", "__postblit").isSame) * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!("put", "put", "opAssign")' * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!("put", "put", "opAssign").e * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!("put", "put", "opAssign").tuple * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!("put", "put", "opAssign").head * * Ignoring Dsymbol::codegen for std.typetuple.genericIndexOf!("put", "put", "opAssign").tail * * VarDeclaration::codegen(): 'std.typetuple.genericIndexOf!("put", "put", "opAssign").index' * * * DtoResolveVariable(std.typetuple.genericIndexOf!("put", "put", "opAssign").index) * TemplateInstance::codegen: 'std.traits.Identity!(put)' * TemplateInstance::codegen: 'std.exception.errnoEnforce!(int, "/usr/include/dlang/ldc/std/stdio.d", 2437LU)' * * DtoDefineFunction(std.exception.errnoEnforce!(int, "/usr/include/dlang/ldc/std/stdio.d", 2437LU).errnoEnforce): /usr/include/dlang/ldc/std/exception.d(546) * * * DtoFunctionType(@safe int(int value, lazy string msg = null)) * * * * lazy param * * * * Building type: string delegate() * * * * * DtoFunctionType(string()) * * * * * * x86-64 ABI: Transforming return type * * * * * * x86-64 ABI: Transforming argument types * * * * * * Final function type: { i64, i8* } (i8*) * * * * x86-64 ABI: Transforming return type * * * * x86-64 ABI: Transforming argument types * * * * Final function type: i32 ({ i8*, { i64, i8* } (i8*)* }, i32) * * * DtoResolveFunction(std.exception.errnoEnforce!(int, "/usr/include/dlang/ldc/std/stdio.d", 2437LU).errnoEnforce): /usr/include/dlang/ldc/std/exception.d(546) * * * * DtoDeclareFunction(std.exception.errnoEnforce!(int, "/usr/include/dlang/ldc/std/stdio.d", 2437LU).errnoEnforce): /usr/include/dlang/ldc/std/exception.d(546) * * * * * DtoFunctionType(@safe int(int value, lazy string msg = null)) * * * * * func = declare i32 @_D3std9exception103__T12errnoEnforceTiVAyaa34_2f7573722f696e636c7564652f646c616e672f6c64632f7374642f737464696f2e64Vmi2437Z12errnoEnforceFNfiLAyaZi({ i8*, { i64, i8* } (i8*)* }, i32) * * * Doing function body for: errnoEnforce * * * DtoCreateNestedContext for errnoEnforce * * * * DtoCreateNestedContextType for std.exception.errnoEnforce!(int, "/usr/include/dlang/ldc/std/stdio.d", 2437LU).errnoEnforce * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/exception.d(548) * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/exception.d(549) * * * * * * NotExp::toElem: !value @ bool * * * * * * * VarExp::toElem: value @ int * * * * * * * * DtoSymbolAddress ('value' of type 'int') * * * * * * * * * function param * * * * * * * * * type: int * * * * * * * Casting from 'int' to 'bool' * * * * * * ThrowStatement::toIR(): /usr/include/dlang/ldc/std/exception.d(549) * * * * * * * NewExp::toElem: new ErrnoException(msg(), "/usr/include/dlang/ldc/std/stdio.d", 2437LU) @ std.exception.ErrnoException * * * * * * * * new class * * * * * * * * DtoResolveClass(std.exception.ErrnoException): /usr/include/dlang/ldc/std/exception.d(1414) * * * * * * * * * Building type: std.exception.ErrnoException * * * * * * * * * * Building class type std.exception.ErrnoException @ /usr/include/dlang/ldc/std/exception.d(1414) * * * * * * * * * * * Instance size: 76 * * * * * * * * * * * adding default initializer for struct field msg * * * * * * * * * * * adding default initializer for struct field file * * * * * * * * * * * adding default initializer for struct field line * * * * * * * * * * * adding default initializer for struct field info * * * * * * * * * * * adding default initializer for struct field next * * * * * * * * * * * adding default initializer for struct field _errno * * * * * * * * * * * Building vtbl type for class std.exception.ErrnoException * * * * * * * * * * * * Adding type of object.Throwable.toString * * * * * * * * * * * * isMember = this is: object.Throwable * * * * * * * * * * * * DtoFunctionType(string()) * * * * * * * * * * * * Adding type of object.Object.toHash * * * * * * * * * * * * isMember = this is: object.Object * * * * * * * * * * * * DtoFunctionType(nothrow @trusted ulong()) * * * * * * * * * * * * Adding type of object.Object.opCmp * * * * * * * * * * * * isMember = this is: object.Object * * * * * * * * * * * * DtoFunctionType(int(Object o)) * * * * * * * * * * * * Adding type of object.Object.opEquals * * * * * * * * * * * * isMember = this is: object.Object * * * * * * * * * * * * DtoFunctionType(bool(Object o)) * * * * * * * * * * * * Adding type of object.Throwable.toString * * * * * * * * * * * * isMember = this is: object.Throwable * * * * * * * * * * * * DtoFunctionType(const void(scope void delegate(const(char[])) sink)) * * * * * * * * * * * class type: %std.exception.ErrnoException = type { %std.exception.ErrnoException.__vtbl*, i8*, { i64, i8* }, { i64, i8* }, i64, %object.Throwable.TraceInfo*, %object.Throwable*, i32 } * * * * * * * * Calling constructor * * * * * * * * isMember = this is: std.exception.ErrnoException * * * * * * * * DtoFunctionType(@trusted ErrnoException(string msg, string file = null, ulong line = 0LU)) * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * Final function type: %std.exception.ErrnoException* (%std.exception.ErrnoException*, i64, { i64, i8* }, { i64, i8* }) * * * * * * * * DtoResolveFunction(std.exception.ErrnoException.this): /usr/include/dlang/ldc/std/exception.d(1418) * * * * * * * * * DtoDeclareFunction(std.exception.ErrnoException.this): /usr/include/dlang/ldc/std/exception.d(1418) * * * * * * * * * * isMember = this is: std.exception.ErrnoException * * * * * * * * * * DtoFunctionType(@trusted ErrnoException(string msg, string file = null, ulong line = 0LU)) * * * * * * * * * * func = declare %std.exception.ErrnoException* @_D3std9exception14ErrnoException6__ctorMFNeAyaAyamZC3std9exception14ErrnoException(%std.exception.ErrnoException*, i64, { i64, i8* }, { i64, i8* }) * * * * * * * * DtoCallFunction() * * * * * * * * * Building type: @trusted ErrnoException(string msg, string file = null, ulong line = 0LU) * * * * * * * * * * DtoFunctionType(@trusted ErrnoException(string msg, string file = null, ulong line = 0LU)) * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * Final function type: %std.exception.ErrnoException* (i64, { i64, i8* }, { i64, i8* }) * * * * * * * * * doing normal arguments * * * * * * * * * Arguments so far: (1) * * * * * * * * * * %.newclass_gc = bitcast %object.Object* %.newclass_gc_alloc to %std.exception.ErrnoException* * * * * * * * * * Function type: @trusted ErrnoException(string msg, string file = null, ulong line = 0LU) * * * * * * * * * DtoArgument * * * * * * * * * * CallExp::toElem: msg() @ string * * * * * * * * * * * VarExp::toElem: msg @ string delegate() pure @safe * * * * * * * * * * * * DtoSymbolAddress ('msg' of type 'string') * * * * * * * * * * * * * function param * * * * * * * * * * * * * type: string * * * * * * * * * * * * * lazy parameter * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * Building type: string delegate() pure @safe * * * * * * * * * * * * * DtoFunctionType(pure @safe string()) * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * Final function type: { i64, i8* } (i8*) * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * %.ptr = load i8*, i8** %9 * * * * * * * * * * * * Function type: pure @safe string() * * * * * * * * * DtoArgument * * * * * * * * * * StringExp::toElem: "/usr/include/dlang/ldc/std/stdio.d" @ string * * * * * * * * * * * type: [35 x i8] * * * * * * * * * * * init: [35 x i8] c"/usr/include/dlang/ldc/std/stdio.d\00" * * * * * * * * * DtoArgument * * * * * * * * * * IntegerExp::toElem: 2437LU @ ulong * * * * * * * * * * * IntegerExp::toConstElem: 2437LU @ ulong * * * * * * * * * * * * value = i64 2437 * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/exception.d(550) * * * * * * VarExp::toElem: value @ int * * * * * * * DtoSymbolAddress ('value' of type 'int') * * * * * * * * function param * * * * * * * * type: int * * * * * * return value is '0x127893b8' * TemplateInstance::codegen: 'std.range.primitives.ElementType!dchar' * TemplateInstance::codegen: 'std.traits.isCallable!(fputwc_unlocked)' * TemplateInstance::codegen: 'std.traits.isSomeFunction!(fputwc_unlocked)' * TemplateInstance::codegen: 'std.traits.ParameterTypeTuple!(fputwc_unlocked)' * * Ignoring Dsymbol::codegen for std.traits.ParameterTypeTuple!(fputwc_unlocked).ParameterTypeTuple * TemplateInstance::codegen: 'std.traits.FunctionTypeOf!(fputwc_unlocked)' * TemplateInstance::codegen: 'std.range.primitives.ElementType!char' * TemplateInstance::codegen: 'object.RTInfo!(MapResult!(__lambda4, string[]))' * * VarDeclaration::codegen(): 'object.RTInfo!(MapResult!(__lambda4, string[])).RTInfo' * * * DtoResolveVariable(object.RTInfo!(MapResult!(__lambda4, string[])).RTInfo) * TemplateInstance::codegen: 'std.traits.isIterable!(MapResult!(__lambda4, string[]))' * TemplateInstance::codegen: 'std.traits.isNarrowString!(MapResult!(__lambda4, string[]))' * * VarDeclaration::codegen(): 'std.traits.isNarrowString!(MapResult!(__lambda4, string[])).isNarrowString' * * * DtoResolveVariable(std.traits.isNarrowString!(MapResult!(__lambda4, string[])).isNarrowString) * TemplateInstance::codegen: 'std.traits.isAggregateType!(MapResult!(__lambda4, string[]))' * * VarDeclaration::codegen(): 'std.traits.isAggregateType!(MapResult!(__lambda4, string[])).isAggregateType' * * * DtoResolveVariable(std.traits.isAggregateType!(MapResult!(__lambda4, string[])).isAggregateType) * TemplateInstance::codegen: 'std.traits.isStaticArray!(MapResult!(__lambda4, string[]))' * * VarDeclaration::codegen(): 'std.traits.isStaticArray!(MapResult!(__lambda4, string[])).isStaticArray' * * * DtoResolveVariable(std.traits.isStaticArray!(MapResult!(__lambda4, string[])).isStaticArray) * TemplateInstance::codegen: 'std.traits.OriginalType!(MapResult!(__lambda4, string[]))' * TemplateInstance::codegen: 'std.traits.ModifyTypePreservingSTC!(Impl, MapResult!(__lambda4, string[]))' * TemplateInstance::codegen: 'std.traits.OriginalType!(MapResult!(__lambda4, string[])).Modifier!(MapResult!(__lambda4, string[]))' * TemplateInstance::codegen: 'std.range.primitives.isInfinite!(MapResult!(__lambda4, string[]))' * TemplateInstance::codegen: 'std.range.primitives.isInputRange!(MapResult!(__lambda4, string[]))' * TemplateInstance::codegen: 'std.array.array!(MapResult!(__lambda4, string[]))' * * DtoDefineFunction(std.array.array!(MapResult!(__lambda4, string[])).array): /usr/include/dlang/ldc/std/array.d(87) * * * DtoFunctionType(pure @safe string[](MapResult!(__lambda4, string[]) r)) * * * * Building type: MapResult!(__lambda4, string[])* * * * * * Building type: MapResult!(__lambda4, string[]) * * * * * * Building struct type client.client.main.MapResult!(__lambda4, string[]).MapResult @ /usr/include/dlang/ldc/std/algorithm/iteration.d(504) * * * * * * * adding default initializer for struct field _input * * * * * * * adding default initializer for struct field this * * * * * * * final struct type: %"client.client.main.MapResult!(__lambda4, string[]).MapResult" = type { { i64, { i64, i8* }* }, i8* } * * * * x86-64 ABI: Transforming return type * * * * x86-64 ABI: Transforming argument types * * * * Final function type: { i64, { i64, i8* }* } (%"client.client.main.MapResult!(__lambda4, string[]).MapResult"*) * * * DtoResolveFunction(std.array.array!(MapResult!(__lambda4, string[])).array): /usr/include/dlang/ldc/std/array.d(87) * * * * DtoDeclareFunction(std.array.array!(MapResult!(__lambda4, string[])).array): /usr/include/dlang/ldc/std/array.d(87) * * * * * DtoFunctionType(pure @safe string[](MapResult!(__lambda4, string[]) r)) * * * * * func = declare { i64, { i64, i8* }* } @_D3std5array105__T5arrayTS3std9algorithm9iteration57__T9MapResultS356client6client4mainFAAyaZ9__lambda4TAAyaZ9MapResultZ5arrayFNaNfS3std9algorithm9iteration57__T9MapResultS356client6client4mainFAAyaZ9__lambda4TAAyaZ9MapResultZAAya(%"client.client.main.MapResult!(__lambda4, string[]).MapResult"*) * * * Doing function body for: array * * * DtoCreateNestedContext for array * * * * DtoCreateNestedContextType for std.array.array!(MapResult!(__lambda4, string[])).array * * * * * has nested frame * * * * * Function array has depth 0 * * * * * Nested var 'length' of type i64 * * * * * Nested var 'result' of type { i64, { i64, i8* }* } * * * * * frameType = %nest.array = type { i64, { i64, { i64, i8* }* } } * * * * nested var: length * * * * nested var: result * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/array.d(89) * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/array.d(90) * * * * * * VarExp::toElem: __ctfe @ bool * * * * * * * DtoSymbolAddress ('__ctfe' of type 'bool') * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/array.d(91) * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/array.d(91) * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/array.d(94) * * * * * * * * * DeclarationExp::toElem: string[] result = null; | T=void * * * * * * * * * * DtoDeclarationExp: result * * * * * * * * * * * VarDeclaration * * * * * * * * * * * DtoVarDeclaration(vdtype = string[]) * * * * * * * * * * * * llvm value for decl: %result1 = alloca { i64, { i64, i8* }* }, align 8 * * * * * * * * * * * * expression initializer * * * * * * * * * * * * AssignExp::toElem: result = null | (string[])(string[] = string[]) * * * * * * * * * * * * * VarExp::toElem: result @ string[] * * * * * * * * * * * * * * DtoSymbolAddress ('result' of type 'string[]') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * NullExp::toElem(type=string[]): null * * * * * * * * * * * * * * NullExp::toConstElem(type=string[]): null * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * DtoSetArrayToNull * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/array.d(95) * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/array.d(95) * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/array.d(95) * * * * * * * * * * * DeclarationExp::toElem: MapResult!(__lambda4, string[]) __r3264 = r; | T=void * * * * * * * * * * * * DtoDeclarationExp: __r3264 * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * DtoVarDeclaration(vdtype = MapResult!(__lambda4, string[])) * * * * * * * * * * * * * * llvm value for decl: %__r3264 = alloca %"client.client.main.MapResult!(__lambda4, string[]).MapResult", align 8 * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * AssignExp::toElem: __r3264 = r | (MapResult!(__lambda4, string[]))(MapResult!(__lambda4, string[]) = MapResult!(__lambda4, string[])) * * * * * * * * * * * * * * * VarExp::toElem: __r3264 @ MapResult!(__lambda4, string[]) * * * * * * * * * * * * * * * * DtoSymbolAddress ('__r3264' of type 'MapResult!(__lambda4, string[])') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * VarExp::toElem: r @ MapResult!(__lambda4, string[]) * * * * * * * * * * * * * * * * DtoSymbolAddress ('r' of type 'MapResult!(__lambda4, string[])') * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * type: MapResult!(__lambda4, string[]) * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * ForStatement::toIR(): /usr/include/dlang/ldc/std/array.d(95) * * * * * * * * * * * NotExp::toElem: !__r3264.empty() @ bool * * * * * * * * * * * * CallExp::toElem: __r3264.empty() @ bool * * * * * * * * * * * * * DotVarExp::toElem: __r3264.empty @ pure nothrow @nogc @property @safe bool() * * * * * * * * * * * * * * VarExp::toElem: __r3264 @ MapResult!(__lambda4, string[]) * * * * * * * * * * * * * * * DtoSymbolAddress ('__r3264' of type 'MapResult!(__lambda4, string[])') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * isMember = this is: MapResult!(__lambda4, string[]) * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @property @safe bool()) * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * Final function type: i1 (%"client.client.main.MapResult!(__lambda4, string[]).MapResult"*) * * * * * * * * * * * * * * DtoResolveFunction(client.client.main.MapResult!(__lambda4, string[]).MapResult.empty): /usr/include/dlang/ldc/std/algorithm/iteration.d(534) * * * * * * * * * * * * * * * DtoDeclareFunction(client.client.main.MapResult!(__lambda4, string[]).MapResult.empty): /usr/include/dlang/ldc/std/algorithm/iteration.d(534) * * * * * * * * * * * * * * * * isMember = this is: MapResult!(__lambda4, string[]) * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @property @safe bool()) * * * * * * * * * * * * * * * * func = declare i1 @_D3std9algorithm9iteration57__T9MapResultS356client6client4mainFAAyaZ9__lambda4TAAyaZ9MapResult5emptyMFNaNbNdNiNfZb(%"client.client.main.MapResult!(__lambda4, string[]).MapResult"*) * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * Building type: pure nothrow @nogc @property @safe bool() * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @property @safe bool()) * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * Final function type: i1 () * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * %__r3264 = alloca %"client.client.main.MapResult!(__lambda4, string[]).MapResult", align 8 * * * * * * * * * * * * * * Function type: pure nothrow @nogc @property @safe bool() * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/array.d(95) * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/array.d(95) * * * * * * * * * * * * * DeclarationExp::toElem: string e = __r3264.front(); | T=void * * * * * * * * * * * * * * DtoDeclarationExp: e * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = string) * * * * * * * * * * * * * * * * llvm value for decl: %e = alloca { i64, i8* }, align 8 * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * AssignExp::toElem: e = __r3264.front() | (string)(string = string) * * * * * * * * * * * * * * * * * VarExp::toElem: e @ string * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('e' of type 'string') * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * CallExp::toElem: __r3264.front() @ string * * * * * * * * * * * * * * * * * * DotVarExp::toElem: __r3264.front @ pure @property @safe string() * * * * * * * * * * * * * * * * * * * VarExp::toElem: __r3264 @ MapResult!(__lambda4, string[]) * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__r3264' of type 'MapResult!(__lambda4, string[])') * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * isMember = this is: MapResult!(__lambda4, string[]) * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure @property @safe string()) * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * Final function type: { i64, i8* } (%"client.client.main.MapResult!(__lambda4, string[]).MapResult"*) * * * * * * * * * * * * * * * * * * * DtoResolveFunction(client.client.main.MapResult!(__lambda4, string[]).MapResult.front): /usr/include/dlang/ldc/std/algorithm/iteration.d(545) * * * * * * * * * * * * * * * * * * * * DtoDeclareFunction(client.client.main.MapResult!(__lambda4, string[]).MapResult.front): /usr/include/dlang/ldc/std/algorithm/iteration.d(545) * * * * * * * * * * * * * * * * * * * * * isMember = this is: MapResult!(__lambda4, string[]) * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure @property @safe string()) * * * * * * * * * * * * * * * * * * * * * func = declare { i64, i8* } @_D3std9algorithm9iteration57__T9MapResultS356client6client4mainFAAyaZ9__lambda4TAAyaZ9MapResult5frontMFNaNdNfZAya(%"client.client.main.MapResult!(__lambda4, string[]).MapResult"*) * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * Building type: pure @property @safe string() * * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure @property @safe string()) * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * * Final function type: { i64, i8* } () * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * * * %__r3264 = alloca %"client.client.main.MapResult!(__lambda4, string[]).MapResult", align 8 * * * * * * * * * * * * * * * * * * * Function type: pure @property @safe string() * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * * SetArray * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/array.d(96) * * * * * * * * * * * * * CatAssignExp::toElem: result ~= e @ string[] * * * * * * * * * * * * * * VarExp::toElem: result @ string[] * * * * * * * * * * * * * * * DtoSymbolAddress ('result' of type 'string[]') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * DtoCatAssignElement * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * VarExp::toElem: e @ string * * * * * * * * * * * * * * * * DtoSymbolAddress ('e' of type 'string') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * DtoTypeInfoOf(type = 'string[]', base='1') * * * * * * * * * * * * * * * * Type::getTypeInfo(): string[] * * * * * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(string[])) * * * * * * * * * * * * * * * * * type = 'string[]' * * * * * * * * * * * * * * * * * typeinfo mangle: _D13TypeInfo_AAya6__initZ * * * * * * * * * * * * * * * * * TypeInfoArrayDeclaration::llvmDefine() typeid(string[]) * * * * * * * * * * * * * * * * * * DtoTypeInfoOf(type = 'string', base='1') * * * * * * * * * * * * * * * * * * * Type::getTypeInfo(): string * * * * * * * * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(string)) * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * SetArray * * * * * * * * * * * CallExp::toElem: __r3264.popFront() @ void * * * * * * * * * * * * DotVarExp::toElem: __r3264.popFront @ pure nothrow @nogc @safe void() * * * * * * * * * * * * * VarExp::toElem: __r3264 @ MapResult!(__lambda4, string[]) * * * * * * * * * * * * * * DtoSymbolAddress ('__r3264' of type 'MapResult!(__lambda4, string[])') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * isMember = this is: MapResult!(__lambda4, string[]) * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe void()) * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * Final function type: void (%"client.client.main.MapResult!(__lambda4, string[]).MapResult"*) * * * * * * * * * * * * * DtoResolveFunction(client.client.main.MapResult!(__lambda4, string[]).MapResult.popFront): /usr/include/dlang/ldc/std/algorithm/iteration.d(540) * * * * * * * * * * * * * * DtoDeclareFunction(client.client.main.MapResult!(__lambda4, string[]).MapResult.popFront): /usr/include/dlang/ldc/std/algorithm/iteration.d(540) * * * * * * * * * * * * * * * isMember = this is: MapResult!(__lambda4, string[]) * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe void()) * * * * * * * * * * * * * * * func = declare void @_D3std9algorithm9iteration57__T9MapResultS356client6client4mainFAAyaZ9__lambda4TAAyaZ9MapResult8popFrontMFNaNbNiNfZv(%"client.client.main.MapResult!(__lambda4, string[]).MapResult"*) * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * Building type: pure nothrow @nogc @safe void() * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe void()) * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * Final function type: void () * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * %__r3264 = alloca %"client.client.main.MapResult!(__lambda4, string[]).MapResult", align 8 * * * * * * * * * * * * * Function type: pure nothrow @nogc @safe void() * * * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/array.d(97) * * * * * * * * * VarExp::toElem: result @ string[] * * * * * * * * * * DtoSymbolAddress ('result' of type 'string[]') * * * * * * * * * * * a normal variable * * * * * * * * * return value is '0x12795c98' * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/array.d(100) * * * * * * DeclarationExp::toElem: alias E = string; | T=void * * * * * * * DtoDeclarationExp: E * * * * * * * * Ignoring Symbol: alias * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/array.d(103) * * * * * * DeclarationExp::toElem: ulong length = r.length(); | T=void * * * * * * * DtoDeclarationExp: length * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * has nestedref set (referenced by nested function/delegate) * * * * * * * * * llvm value for decl: %length = getelementptr %nest.array, %nest.array* %.frame, i32 0, i32 0 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: length = r.length() | (ulong)(ulong = ulong) * * * * * * * * * * VarExp::toElem: length @ ulong * * * * * * * * * * * DtoSymbolAddress ('length' of type 'ulong') * * * * * * * * * * * * nested variable * * * * * * * * * * * * DtoNestedVariable for length @ /usr/include/dlang/ldc/std/array.d(103) * * * * * * * * * * CallExp::toElem: r.length() @ ulong * * * * * * * * * * * DotVarExp::toElem: r.length @ pure nothrow @nogc @property @safe ulong() * * * * * * * * * * * * VarExp::toElem: r @ MapResult!(__lambda4, string[]) * * * * * * * * * * * * * DtoSymbolAddress ('r' of type 'MapResult!(__lambda4, string[])') * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * type: MapResult!(__lambda4, string[]) * * * * * * * * * * * * isMember = this is: MapResult!(__lambda4, string[]) * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @property @safe ulong()) * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * Final function type: i64 (%"client.client.main.MapResult!(__lambda4, string[]).MapResult"*) * * * * * * * * * * * * DtoResolveFunction(client.client.main.MapResult!(__lambda4, string[]).MapResult.length): /usr/include/dlang/ldc/std/algorithm/iteration.d(565) * * * * * * * * * * * * * DtoDeclareFunction(client.client.main.MapResult!(__lambda4, string[]).MapResult.length): /usr/include/dlang/ldc/std/algorithm/iteration.d(565) * * * * * * * * * * * * * * isMember = this is: MapResult!(__lambda4, string[]) * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @property @safe ulong()) * * * * * * * * * * * * * * func = declare i64 @_D3std9algorithm9iteration57__T9MapResultS356client6client4mainFAAyaZ9__lambda4TAAyaZ9MapResult6lengthMFNaNbNdNiNfZm(%"client.client.main.MapResult!(__lambda4, string[]).MapResult"*) * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * Building type: pure nothrow @nogc @property @safe ulong() * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @property @safe ulong()) * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * Final function type: i64 () * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * %"client.client.main.MapResult!(__lambda4, string[]).MapResult"* %r_arg * * * * * * * * * * * * Function type: pure nothrow @nogc @property @safe ulong() * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %length = getelementptr %nest.array, %nest.array* %.frame, i32 0, i32 0 * * * * * * * * * * * rhs: %3 = call i64 @_D3std9algorithm9iteration57__T9MapResultS356client6client4mainFAAyaZ9__lambda4TAAyaZ9MapResult6lengthMFNaNbNdNiNfZm(%"client.client.main.MapResult!(__lambda4, string[]).MapResult"* %r_arg) * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/array.d(104) * * * * * * EqualExp::toElem: length == 0LU @ bool * * * * * * * VarExp::toElem: length @ ulong * * * * * * * * DtoSymbolAddress ('length' of type 'ulong') * * * * * * * * * nested variable * * * * * * * * * DtoNestedVariable for length @ /usr/include/dlang/ldc/std/array.d(104) * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * value = i64 0 * * * * * * * integral or pointer or interface * * * * * * * lv: %4 = load i64, i64* %length * * * * * * * rv: i64 0 * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/array.d(105) * * * * * * * NullExp::toElem(type=string[]): null * * * * * * * * NullExp::toConstElem(type=string[]): null * * * * * * * return value is '0x120de890' * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/array.d(109) * * * * * * DeclarationExp::toElem: string[] result = delegate () => uninitializedArray(length)(); | T=void * * * * * * * DtoDeclarationExp: result * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = string[]) * * * * * * * * * has nestedref set (referenced by nested function/delegate) * * * * * * * * * llvm value for decl: %result = getelementptr %nest.array, %nest.array* %.frame, i32 0, i32 1 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: result = delegate () => uninitializedArray(length)() | (string[])(string[] = string[]) * * * * * * * * * * VarExp::toElem: result @ string[] * * * * * * * * * * * DtoSymbolAddress ('result' of type 'string[]') * * * * * * * * * * * * nested variable * * * * * * * * * * * * DtoNestedVariable for result @ /usr/include/dlang/ldc/std/array.d(109) * * * * * * * * * * CallExp::toElem: delegate () => uninitializedArray(length)() @ string[] * * * * * * * * * * * FuncExp::toElem: __lambda2 @ string[] delegate() pure nothrow @trusted * * * * * * * * * * * * nested * * * * * * * * * * * * kind = delegate * * * * * * * * * * * * DtoDefineFunction(std.array.array!(MapResult!(__lambda4, string[])).array.__lambda2): /usr/include/dlang/ldc/std/array.d(109) * * * * * * * * * * * * * DtoFunctionType(pure nothrow @trusted string[]()) * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * Final function type: { i64, { i64, i8* }* } (i8*) * * * * * * * * * * * * * DtoResolveFunction(std.array.array!(MapResult!(__lambda4, string[])).array.__lambda2): /usr/include/dlang/ldc/std/array.d(109) * * * * * * * * * * * * * * DtoDeclareFunction(std.array.array!(MapResult!(__lambda4, string[])).array.__lambda2): /usr/include/dlang/ldc/std/array.d(109) * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @trusted string[]()) * * * * * * * * * * * * * * * func = declare { i64, { i64, i8* }* } @_D3std5array105__T5arrayTS3std9algorithm9iteration57__T9MapResultS356client6client4mainFAAyaZ9__lambda4TAAyaZ9MapResultZ5arrayFS3std9algorithm9iteration57__T9MapResultS356client6client4mainFAAyaZ9__lambda4TAAyaZ9MapResultZ9__lambda2MFNaNbNeZAAya(i8*) * * * * * * * * * * * * * Doing function body for: __lambda2 * * * * * * * * * * * * * DtoCreateNestedContext for __lambda2 * * * * * * * * * * * * * * DtoCreateNestedContextType for std.array.array!(MapResult!(__lambda4, string[])).array.__lambda2 * * * * * * * * * * * * * * * DtoCreateNestedContextType for std.array.array!(MapResult!(__lambda4, string[])).array * * * * * * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/array.d(109) * * * * * * * * * * * * * * * CallExp::toElem: uninitializedArray(length) @ string[] * * * * * * * * * * * * * * * * VarExp::toElem: uninitializedArray @ pure nothrow @system string[](ulong _param_0) * * * * * * * * * * * * * * * * * DtoSymbolAddress ('uninitializedArray' of type 'pure nothrow @system string[](ulong _param_0)') * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @system string[](ulong _param_0)) * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * Final function type: { i64, { i64, i8* }* } (i64) * * * * * * * * * * * * * * * * * * DtoResolveFunction(std.array.uninitializedArray!(string[], ulong).uninitializedArray): /usr/include/dlang/ldc/std/array.d(493) * * * * * * * * * * * * * * * * * * * DtoDeclareFunction(std.array.uninitializedArray!(string[], ulong).uninitializedArray): /usr/include/dlang/ldc/std/array.d(493) * * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @system string[](ulong _param_0)) * * * * * * * * * * * * * * * * * * * * func = declare { i64, { i64, i8* }* } @_D3std5array31__T18uninitializedArrayTAAyaTmZ18uninitializedArrayFNaNbmZAAya(i64) * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * Building type: pure nothrow @system string[](ulong _param_0) * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @system string[](ulong _param_0)) * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * Final function type: { i64, { i64, i8* }* } (i64) * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * Function type: pure nothrow @system string[](ulong _param_0) * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * VarExp::toElem: length @ ulong * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('length' of type 'ulong') * * * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for length @ /usr/include/dlang/ldc/std/array.d(109) * * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for std.array.array!(MapResult!(__lambda4, string[])).array * * * * * * * * * * * * * * * * * * * * * Context: %2 = bitcast i8* %1 to %nest.array* * * * * * * * * * * * * * * * * * * * * * of type: %nest.array = type { i64, { i64, { i64, i8* }* } } * * * * * * * * * * * * * * * * * * * * * Variable: length * * * * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * * * * Function: __lambda2 * * * * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * * * * Addr: %length = getelementptr %nest.array, %nest.array* %2, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * * * of type: i64* * * * * * * * * * * * * * * * return value is '0x12799cb0' * * * * * * * * * * * * Building type: string[] delegate() pure nothrow @trusted * * * * * * * * * * * * * DtoFunctionType(pure nothrow @trusted string[]()) * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * Final function type: { i64, { i64, i8* }* } (i8*) * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * %.ptr9 = extractvalue { i8*, { i64, { i64, i8* }* } (i8*)* } %.func, 0 * * * * * * * * * * * * Function type: pure nothrow @trusted string[]() * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * SetArray * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/array.d(112) * * * * * * DeclarationExp::toElem: ulong i = 0LU; | T=void * * * * * * * DtoDeclarationExp: i * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * llvm value for decl: %i = alloca i64, align 8 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: i = 0LU | (ulong)(ulong = ulong) * * * * * * * * * * VarExp::toElem: i @ ulong * * * * * * * * * * * DtoSymbolAddress ('i' of type 'ulong') * * * * * * * * * * * * a normal variable * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * value = i64 0 * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %i = alloca i64, align 8 * * * * * * * * * * * rhs: i64 0 * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/array.d(113) * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/array.d(113) * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/array.d(113) * * * * * * * * DeclarationExp::toElem: MapResult!(__lambda4, string[]) __r3265 = r; | T=void * * * * * * * * * DtoDeclarationExp: __r3265 * * * * * * * * * * VarDeclaration * * * * * * * * * * DtoVarDeclaration(vdtype = MapResult!(__lambda4, string[])) * * * * * * * * * * * llvm value for decl: %__r3265 = alloca %"client.client.main.MapResult!(__lambda4, string[]).MapResult", align 8 * * * * * * * * * * * expression initializer * * * * * * * * * * * AssignExp::toElem: __r3265 = r | (MapResult!(__lambda4, string[]))(MapResult!(__lambda4, string[]) = MapResult!(__lambda4, string[])) * * * * * * * * * * * * VarExp::toElem: __r3265 @ MapResult!(__lambda4, string[]) * * * * * * * * * * * * * DtoSymbolAddress ('__r3265' of type 'MapResult!(__lambda4, string[])') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * VarExp::toElem: r @ MapResult!(__lambda4, string[]) * * * * * * * * * * * * * DtoSymbolAddress ('r' of type 'MapResult!(__lambda4, string[])') * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * type: MapResult!(__lambda4, string[]) * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * DtoAssign() * * * * * * * ForStatement::toIR(): /usr/include/dlang/ldc/std/array.d(113) * * * * * * * * NotExp::toElem: !__r3265.empty() @ bool * * * * * * * * * CallExp::toElem: __r3265.empty() @ bool * * * * * * * * * * DotVarExp::toElem: __r3265.empty @ pure nothrow @nogc @property @safe bool() * * * * * * * * * * * VarExp::toElem: __r3265 @ MapResult!(__lambda4, string[]) * * * * * * * * * * * * DtoSymbolAddress ('__r3265' of type 'MapResult!(__lambda4, string[])') * * * * * * * * * * * * * a normal variable * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * doing normal arguments * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * %__r3265 = alloca %"client.client.main.MapResult!(__lambda4, string[]).MapResult", align 8 * * * * * * * * * * * Function type: pure nothrow @nogc @property @safe bool() * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/array.d(113) * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/array.d(113) * * * * * * * * * * DeclarationExp::toElem: string e = __r3265.front(); | T=void * * * * * * * * * * * DtoDeclarationExp: e * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * DtoVarDeclaration(vdtype = string) * * * * * * * * * * * * * llvm value for decl: %e16 = alloca { i64, i8* }, align 8 * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * AssignExp::toElem: e = __r3265.front() | (string)(string = string) * * * * * * * * * * * * * * VarExp::toElem: e @ string * * * * * * * * * * * * * * * DtoSymbolAddress ('e' of type 'string') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * CallExp::toElem: __r3265.front() @ string * * * * * * * * * * * * * * * DotVarExp::toElem: __r3265.front @ pure @property @safe string() * * * * * * * * * * * * * * * * VarExp::toElem: __r3265 @ MapResult!(__lambda4, string[]) * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__r3265' of type 'MapResult!(__lambda4, string[])') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * %__r3265 = alloca %"client.client.main.MapResult!(__lambda4, string[]).MapResult", align 8 * * * * * * * * * * * * * * * * Function type: pure @property @safe string() * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * SetArray * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/array.d(115) * * * * * * * * * * CallExp::toElem: emplaceRef(result[i], e) @ string * * * * * * * * * * * VarExp::toElem: emplaceRef @ pure nothrow @nogc ref @safe string(ref string chunk, auto ref string _param_1) * * * * * * * * * * * * DtoSymbolAddress ('emplaceRef' of type 'pure nothrow @nogc ref @safe string(ref string chunk, auto ref string _param_1)') * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc ref @safe string(ref string chunk, auto ref string _param_1)) * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * Final function type: { i64, i8* }* ({ i64, i8* }*, { i64, i8* }*) * * * * * * * * * * * * * DtoResolveFunction(std.conv.emplaceRef!(string, string).emplaceRef): /usr/include/dlang/ldc/std/conv.d(3929) * * * * * * * * * * * * * * DtoDeclareFunction(std.conv.emplaceRef!(string, string).emplaceRef): /usr/include/dlang/ldc/std/conv.d(3929) * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc ref @safe string(ref string chunk, auto ref string _param_1)) * * * * * * * * * * * * * * * func = declare { i64, i8* }* @_D3std4conv24__T10emplaceRefTAyaTAyaZ10emplaceRefFNaNbNcNiNfKAyaKAyaZAya({ i64, i8* }*, { i64, i8* }*) * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * Building type: pure nothrow @nogc ref @safe string(ref string chunk, auto ref string _param_1) * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc ref @safe string(ref string chunk, auto ref string _param_1)) * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * Final function type: { i64, i8* }* ({ i64, i8* }*, { i64, i8* }*) * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * Function type: pure nothrow @nogc ref @safe string(ref string chunk, auto ref string _param_1) * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * IndexExp::toElem: result[i] @ string * * * * * * * * * * * * * * VarExp::toElem: result @ string[] * * * * * * * * * * * * * * * DtoSymbolAddress ('result' of type 'string[]') * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * DtoNestedVariable for result @ /usr/include/dlang/ldc/std/array.d(115) * * * * * * * * * * * * * * VarExp::toElem: i @ ulong * * * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'ulong') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * VarExp::toElem: e @ string * * * * * * * * * * * * * * DtoSymbolAddress ('e' of type 'string') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/array.d(116) * * * * * * * * * * AddAssignExp::toElem: i += 1LU @ ulong * * * * * * * * * * * Caching l-value of i += 1LU => i * * * * * * * * * * * * VarExp::toElem: i @ ulong * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'ulong') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * AddExp::toElem: i + 1LU @ ulong * * * * * * * * * * * * VarExp::toElem: i @ ulong * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * lhs: %i = alloca i64, align 8 * * * * * * * * * * * * rhs: %44 = add i64 %43, 1 * * * * * * * * CallExp::toElem: __r3265.popFront() @ void * * * * * * * * * DotVarExp::toElem: __r3265.popFront @ pure nothrow @nogc @safe void() * * * * * * * * * * VarExp::toElem: __r3265 @ MapResult!(__lambda4, string[]) * * * * * * * * * * * DtoSymbolAddress ('__r3265' of type 'MapResult!(__lambda4, string[])') * * * * * * * * * * * * a normal variable * * * * * * * * * DtoCallFunction() * * * * * * * * * * doing normal arguments * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * %__r3265 = alloca %"client.client.main.MapResult!(__lambda4, string[]).MapResult", align 8 * * * * * * * * * * Function type: pure nothrow @nogc @safe void() * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/array.d(118) * * * * * * CallExp::toElem: delegate () => result() @ string[] * * * * * * * FuncExp::toElem: __lambda3 @ string[] delegate() pure nothrow @nogc @trusted * * * * * * * * nested * * * * * * * * kind = delegate * * * * * * * * DtoDefineFunction(std.array.array!(MapResult!(__lambda4, string[])).array.__lambda3): /usr/include/dlang/ldc/std/array.d(118) * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted string[]()) * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: { i64, { i64, i8* }* } (i8*) * * * * * * * * * DtoResolveFunction(std.array.array!(MapResult!(__lambda4, string[])).array.__lambda3): /usr/include/dlang/ldc/std/array.d(118) * * * * * * * * * * DtoDeclareFunction(std.array.array!(MapResult!(__lambda4, string[])).array.__lambda3): /usr/include/dlang/ldc/std/array.d(118) * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted string[]()) * * * * * * * * * * * func = declare { i64, { i64, i8* }* } @_D3std5array105__T5arrayTS3std9algorithm9iteration57__T9MapResultS356client6client4mainFAAyaZ9__lambda4TAAyaZ9MapResultZ5arrayFS3std9algorithm9iteration57__T9MapResultS356client6client4mainFAAyaZ9__lambda4TAAyaZ9MapResultZ9__lambda3MFNaNbNiNeZAAya(i8*) * * * * * * * * * Doing function body for: __lambda3 * * * * * * * * * DtoCreateNestedContext for __lambda3 * * * * * * * * * * DtoCreateNestedContextType for std.array.array!(MapResult!(__lambda4, string[])).array.__lambda3 * * * * * * * * * * * DtoCreateNestedContextType for std.array.array!(MapResult!(__lambda4, string[])).array * * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/array.d(118) * * * * * * * * * * * VarExp::toElem: result @ string[] * * * * * * * * * * * * DtoSymbolAddress ('result' of type 'string[]') * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * DtoNestedVariable for result @ /usr/include/dlang/ldc/std/array.d(118) * * * * * * * * * * * * * * DtoCreateNestedContextType for std.array.array!(MapResult!(__lambda4, string[])).array * * * * * * * * * * * * * * Context: %2 = bitcast i8* %1 to %nest.array* * * * * * * * * * * * * * * of type: %nest.array = type { i64, { i64, { i64, i8* }* } } * * * * * * * * * * * * * * Variable: result * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * Function: __lambda3 * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * Addr: %result = getelementptr %nest.array, %nest.array* %2, i32 0, i32 1 * * * * * * * * * * * * * * of type: { i64, { i64, i8* }* }* * * * * * * * * * * * return value is '0x127a4b08' * * * * * * * * Building type: string[] delegate() pure nothrow @nogc @trusted * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted string[]()) * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: { i64, { i64, i8* }* } (i8*) * * * * * * * DtoCallFunction() * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (1) * * * * * * * * * %.ptr23 = extractvalue { i8*, { i64, { i64, i8* }* } (i8*)* } %.func21, 0 * * * * * * * * Function type: pure nothrow @nogc @trusted string[]() * * * * * * return value is '0x127a5310' * TemplateInstance::codegen: 'std.traits.ForeachType!(MapResult!(__lambda4, string[]))' * * Ignoring Dsymbol::codegen for std.traits.ForeachType!(MapResult!(__lambda4, string[])).ForeachType * TemplateInstance::codegen: 'std.traits.isCallable!(string function(inout(int)) pure @safe)' * TemplateInstance::codegen: 'std.traits.isSomeFunction!(string function(inout(int)) pure @safe)' * TemplateInstance::codegen: 'std.traits.ReturnType!(string function(inout(int)) pure @safe)' * * Ignoring Dsymbol::codegen for std.traits.ReturnType!(string function(inout(int)) pure @safe).ReturnType * TemplateInstance::codegen: 'std.traits.FunctionTypeOf!(string function(inout(int)) pure @safe)' * TemplateInstance::codegen: 'std.range.primitives.hasLength!(MapResult!(__lambda4, string[]))' * * VarDeclaration::codegen(): 'std.range.primitives.hasLength!(MapResult!(__lambda4, string[])).hasLength' * * * DtoResolveVariable(std.range.primitives.hasLength!(MapResult!(__lambda4, string[])).hasLength) * TemplateInstance::codegen: 'std.array.uninitializedArray!(string[], ulong)' * * DtoDefineFunction(std.array.uninitializedArray!(string[], ulong).uninitializedArray): /usr/include/dlang/ldc/std/array.d(493) * * * Doing function body for: uninitializedArray * * * DtoCreateNestedContext for uninitializedArray * * * * DtoCreateNestedContextType for std.array.uninitializedArray!(string[], ulong).uninitializedArray * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/array.d(495) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/array.d(496) * * * * * * DeclarationExp::toElem: template isSize_t(E) | T=void * * * * * * * DtoDeclarationExp: isSize_t(E) * * * * * * * * Ignoring Symbol: template * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/array.d(497) * * * * * * DeclarationExp::toElem: template toSize_t(E) | T=void * * * * * * * DtoDeclarationExp: toSize_t(E) * * * * * * * * Ignoring Symbol: template * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/array.d(504) * * * * * * DeclarationExp::toElem: alias ST = (ulong); | T=void * * * * * * * DtoDeclarationExp: ST * * * * * * * * Ignoring Symbol: alias * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/array.d(506) * * * * * * CallExp::toElem: arrayAllocImpl(_param_0) @ string[] * * * * * * * VarExp::toElem: arrayAllocImpl @ pure nothrow @system string[](ulong _param_0) * * * * * * * * DtoSymbolAddress ('arrayAllocImpl' of type 'pure nothrow @system string[](ulong _param_0)') * * * * * * * * * FuncDeclaration * * * * * * * * * DtoFunctionType(pure nothrow @system string[](ulong _param_0)) * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: { i64, { i64, i8* }* } (i64) * * * * * * * * * DtoResolveFunction(std.array.arrayAllocImpl!(false, string[], ulong).arrayAllocImpl): /usr/include/dlang/ldc/std/array.d(577) * * * * * * * * * * DtoDeclareFunction(std.array.arrayAllocImpl!(false, string[], ulong).arrayAllocImpl): /usr/include/dlang/ldc/std/array.d(577) * * * * * * * * * * * DtoFunctionType(pure nothrow @system string[](ulong _param_0)) * * * * * * * * * * * func = declare { i64, { i64, i8* }* } @_D3std5array31__T14arrayAllocImplVbi0TAAyaTmZ14arrayAllocImplFNaNbmZAAya(i64) * * * * * * * DtoCallFunction() * * * * * * * * Building type: pure nothrow @system string[](ulong _param_0) * * * * * * * * * DtoFunctionType(pure nothrow @system string[](ulong _param_0)) * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: { i64, { i64, i8* }* } (i64) * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (0) * * * * * * * * Function type: pure nothrow @system string[](ulong _param_0) * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_0 @ ulong * * * * * * * * * * DtoSymbolAddress ('_param_0' of type 'ulong') * * * * * * * * * * * function param * * * * * * * * * * * type: ulong * * * * * * return value is '0x127a8de0' * TemplateInstance::codegen: 'std.typetuple.allSatisfy!(isSize_t, ulong)' * TemplateInstance::codegen: 'std.array.uninitializedArray!(string[], ulong).uninitializedArray.F!ulong' * TemplateInstance::codegen: 'std.typetuple.staticMap!(toSize_t, ulong)' * * Ignoring Dsymbol::codegen for std.typetuple.staticMap!(toSize_t, ulong).staticMap * TemplateInstance::codegen: 'std.array.uninitializedArray!(string[], ulong).uninitializedArray.F!ulong' * * Ignoring Dsymbol::codegen for std.array.uninitializedArray!(string[], ulong).uninitializedArray.F!ulong.toSize_t * TemplateInstance::codegen: 'std.array.arrayAllocImpl!(false, string[], ulong)' * * DtoDefineFunction(std.array.arrayAllocImpl!(false, string[], ulong).arrayAllocImpl): /usr/include/dlang/ldc/std/array.d(577) * * * Doing function body for: arrayAllocImpl * * * DtoCreateNestedContext for arrayAllocImpl * * * * DtoCreateNestedContextType for std.array.arrayAllocImpl!(false, string[], ulong).arrayAllocImpl * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/array.d(578) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/array.d(582) * * * * * * DeclarationExp::toElem: alias E = string; | T=void * * * * * * * DtoDeclarationExp: E * * * * * * * * Ignoring Symbol: alias * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/array.d(584) * * * * * * DeclarationExp::toElem: string[] ret = null; | T=void * * * * * * * DtoDeclarationExp: ret * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = string[]) * * * * * * * * * llvm value for decl: %ret = alloca { i64, { i64, i8* }* }, align 8 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: ret = null | (string[])(string[] = string[]) * * * * * * * * * * VarExp::toElem: ret @ string[] * * * * * * * * * * * DtoSymbolAddress ('ret' of type 'string[]') * * * * * * * * * * * * a normal variable * * * * * * * * * * NullExp::toElem(type=string[]): null * * * * * * * * * * * NullExp::toConstElem(type=string[]): null * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * DtoSetArrayToNull * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/array.d(589) * * * * * * DeclarationExp::toElem: alias size = ulong _param_0; ; | T=void * * * * * * * DtoDeclarationExp: size * * * * * * * * Ignoring Symbol: alias * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/array.d(594) * * * * * * VarExp::toElem: __ctfe @ bool * * * * * * * DtoSymbolAddress ('__ctfe' of type 'bool') * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/array.d(595) * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/array.d(597) * * * * * * * * AssignExp::toElem: ret = new string[](_param_0) | (string[])(string[] = string[]) * * * * * * * * * VarExp::toElem: ret @ string[] * * * * * * * * * * DtoSymbolAddress ('ret' of type 'string[]') * * * * * * * * * * * a normal variable * * * * * * * * * NewExp::toElem: new string[](_param_0) @ string[] * * * * * * * * * * new dynamic array: string[] * * * * * * * * * * VarExp::toElem: _param_0 @ ulong * * * * * * * * * * * DtoSymbolAddress ('_param_0' of type 'ulong') * * * * * * * * * * * * function param * * * * * * * * * * * * type: ulong * * * * * * * * * * DtoNewDynArray : string[] * * * * * * * * * * * DtoTypeInfoOf(type = 'string[]', base='1') * * * * * * * * * * * * Type::getTypeInfo(): string[] * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(string[])) * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * DtoAssign() * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * SetArray * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/array.d(615) * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/array.d(615) * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/array.d(618) * * * * * * * * * DeclarationExp::toElem: string* ptr = cast(string*)malloc(_param_0 * 16LU, 0u, null); | T=void * * * * * * * * * * DtoDeclarationExp: ptr * * * * * * * * * * * VarDeclaration * * * * * * * * * * * DtoVarDeclaration(vdtype = string*) * * * * * * * * * * * * llvm value for decl: %ptr = alloca { i64, i8* }*, align 8 * * * * * * * * * * * * expression initializer * * * * * * * * * * * * AssignExp::toElem: ptr = cast(string*)malloc(_param_0 * 16LU, 0u, null) | (string*)(string* = string*) * * * * * * * * * * * * * VarExp::toElem: ptr @ string* * * * * * * * * * * * * * * DtoSymbolAddress ('ptr' of type 'string*') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * CastExp::toElem: cast(string*)malloc(_param_0 * 16LU, 0u, null) @ string* * * * * * * * * * * * * * * CallExp::toElem: malloc(_param_0 * 16LU, 0u, null) @ void* * * * * * * * * * * * * * * * VarExp::toElem: malloc @ pure nothrow void*(ulong sz, uint ba = 0u, const(TypeInfo) ti = null) * * * * * * * * * * * * * * * * DtoSymbolAddress ('malloc' of type 'pure nothrow void*(ulong sz, uint ba = 0u, const(TypeInfo) ti = null)') * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow void*(ulong sz, uint ba = 0u, const(TypeInfo) ti = null)) * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * Final function type: i8* (%object.TypeInfo*, i32, i64) * * * * * * * * * * * * * * * * * DtoResolveFunction(core.memory.GC.malloc): /usr/include/dlang/ldc/core/memory.d(340) * * * * * * * * * * * * * * * * * * DtoDeclareFunction(core.memory.GC.malloc): /usr/include/dlang/ldc/core/memory.d(340) * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow void*(ulong sz, uint ba = 0u, const(TypeInfo) ti = null)) * * * * * * * * * * * * * * * * * * * func = declare i8* @_D4core6memory2GC6mallocFNaNbmkxC8TypeInfoZPv(%object.TypeInfo*, i32, i64) * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * Building type: pure nothrow void*(ulong sz, uint ba = 0u, const(TypeInfo) ti = null) * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow void*(ulong sz, uint ba = 0u, const(TypeInfo) ti = null)) * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * Final function type: i8* (%object.TypeInfo*, i32, i64) * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * Function type: pure nothrow void*(ulong sz, uint ba = 0u, const(TypeInfo) ti = null) * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * MulExp::toElem: _param_0 * 16LU @ ulong * * * * * * * * * * * * * * * * * * VarExp::toElem: _param_0 @ ulong * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('_param_0' of type 'ulong') * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * type: ulong * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 16LU @ ulong * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 16LU @ ulong * * * * * * * * * * * * * * * * * * * * value = i64 16 * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * IntegerExp::toElem: 0u @ uint * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0u @ uint * * * * * * * * * * * * * * * * * * * value = i32 0 * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * NullExp::toElem(type=const(TypeInfo)): null * * * * * * * * * * * * * * * * * * NullExp::toConstElem(type=const(TypeInfo)): null * * * * * * * * * * * * * * Casting from 'void*' to 'string*' * * * * * * * * * * * * * * * src: %6 = call i8* @_D4core6memory2GC6mallocFNaNbmkxC8TypeInfoZPv(%object.TypeInfo* null, i32 0, i64 %5) * * * * * * * * * * * * * * * to type: { i64, i8* }* * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * lhs: %ptr = alloca { i64, i8* }*, align 8 * * * * * * * * * * * * * * rhs: %7 = bitcast i8* %6 to { i64, i8* }* * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/array.d(621) * * * * * * * * * AssignExp::toElem: ret = ptr[0.._param_0] | (string[])(string[] = string[]) * * * * * * * * * * VarExp::toElem: ret @ string[] * * * * * * * * * * * DtoSymbolAddress ('ret' of type 'string[]') * * * * * * * * * * * * a normal variable * * * * * * * * * * SliceExp::toElem: ptr[0.._param_0] @ string[] * * * * * * * * * * * VarExp::toElem: ptr @ string* * * * * * * * * * * * * DtoSymbolAddress ('ptr' of type 'string*') * * * * * * * * * * * * * a normal variable * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * VarExp::toElem: _param_0 @ ulong * * * * * * * * * * * * DtoSymbolAddress ('_param_0' of type 'ulong') * * * * * * * * * * * * * function param * * * * * * * * * * * * * type: ulong * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * DtoAssign() * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * SetArray * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/array.d(631) * * * * * * VarExp::toElem: ret @ string[] * * * * * * * DtoSymbolAddress ('ret' of type 'string[]') * * * * * * * * a normal variable * * * * * * return value is '0x127afe88' * TemplateInstance::codegen: 'std.array.nDimensions!(string[])' * TemplateInstance::codegen: 'std.array.nDimensions!string' * TemplateInstance::codegen: 'std.array.nDimensions!(immutable(char))' * TemplateInstance::codegen: 'std.traits.isArray!(immutable(char))' * TemplateInstance::codegen: 'std.array.blockAttribute!string' * * Ignoring Dsymbol::codegen for std.array.blockAttribute!string.core * * VarDeclaration::codegen(): 'std.array.blockAttribute!string.blockAttribute' * * * DtoResolveVariable(std.array.blockAttribute!string.blockAttribute) * TemplateInstance::codegen: 'std.conv.emplaceRef!(string, string)' * * DtoDefineFunction(std.conv.emplaceRef!(string, string).emplaceRef): /usr/include/dlang/ldc/std/conv.d(3929) * * * Doing function body for: emplaceRef * * * DtoCreateNestedContext for emplaceRef * * * * DtoCreateNestedContextType for std.conv.emplaceRef!(string, string).emplaceRef * * * CompoundStatement::toIR(): * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(3932) * * * * * AddrExp::toElem: &emplaceImpl(chunk, _param_1) @ string* * * * * * * CallExp::toElem: emplaceImpl(chunk, _param_1) @ string * * * * * * * VarExp::toElem: emplaceImpl @ pure nothrow @nogc ref @safe string(ref string chunk, auto ref string arg) * * * * * * * * DtoSymbolAddress ('emplaceImpl' of type 'pure nothrow @nogc ref @safe string(ref string chunk, auto ref string arg)') * * * * * * * * * FuncDeclaration * * * * * * * * * DtoFunctionType(pure nothrow @nogc ref @safe string(ref string chunk, auto ref string arg)) * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: { i64, i8* }* ({ i64, i8* }*, { i64, i8* }*) * * * * * * * * * DtoResolveFunction(std.conv.emplaceImpl!string.emplaceImpl!string.emplaceImpl): /usr/include/dlang/ldc/std/conv.d(3955) * * * * * * * * * * DtoDeclareFunction(std.conv.emplaceImpl!string.emplaceImpl!string.emplaceImpl): /usr/include/dlang/ldc/std/conv.d(3955) * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc ref @safe string(ref string chunk, auto ref string arg)) * * * * * * * * * * * func = declare { i64, i8* }* @_D3std4conv21__T11emplaceImplTAyaZ21__T11emplaceImplTAyaZ11emplaceImplFNaNbNcNiNfKAyaKAyaZAya({ i64, i8* }*, { i64, i8* }*) * * * * * * * DtoCallFunction() * * * * * * * * Building type: pure nothrow @nogc ref @safe string(ref string chunk, auto ref string arg) * * * * * * * * * DtoFunctionType(pure nothrow @nogc ref @safe string(ref string chunk, auto ref string arg)) * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: { i64, i8* }* ({ i64, i8* }*, { i64, i8* }*) * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (0) * * * * * * * * Function type: pure nothrow @nogc ref @safe string(ref string chunk, auto ref string arg) * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: chunk @ string * * * * * * * * * * DtoSymbolAddress ('chunk' of type 'string') * * * * * * * * * * * function param * * * * * * * * * * * type: string * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_1 @ string * * * * * * * * * * DtoSymbolAddress ('_param_1' of type 'string') * * * * * * * * * * * function param * * * * * * * * * * * type: string * * * * * * is nothing special * * * * * * lval: %1 = call { i64, i8* }* @_D3std4conv21__T11emplaceImplTAyaZ21__T11emplaceImplTAyaZ11emplaceImplFNaNbNcNiNfKAyaKAyaZAya({ i64, i8* }* %_param_1_arg, { i64, i8* }* %chunk_arg) * * * * * return value is '0x127b2358' * TemplateInstance::codegen: 'std.conv.emplaceImpl!string' * * Ignoring Dsymbol::codegen for std.conv.emplaceImpl!string.UT * * Ignoring Dsymbol::codegen for std.conv.emplaceImpl!string.emplaceImpl()(ref UT chunk) * * Ignoring Dsymbol::codegen for std.conv.emplaceImpl!string.emplaceImpl(Arg)(ref UT chunk, auto ref Arg arg) * TemplateInstance::codegen: 'std.conv.emplaceImpl!string.emplaceImpl!string' * * DtoDefineFunction(std.conv.emplaceImpl!string.emplaceImpl!string.emplaceImpl): /usr/include/dlang/ldc/std/conv.d(3955) * * * Doing function body for: emplaceImpl * * * DtoCreateNestedContext for emplaceImpl * * * * DtoCreateNestedContextType for std.conv.emplaceImpl!string.emplaceImpl!string.emplaceImpl * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(3956) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(4035) * * * * * * AssignExp::toElem: chunk = arg | (string)(string = string) * * * * * * * VarExp::toElem: chunk @ string * * * * * * * * DtoSymbolAddress ('chunk' of type 'string') * * * * * * * * * function param * * * * * * * * * type: string * * * * * * * VarExp::toElem: arg @ string * * * * * * * * DtoSymbolAddress ('arg' of type 'string') * * * * * * * * * nested variable * * * * * * * * * DtoNestedVariable for arg @ /usr/include/dlang/ldc/std/conv.d(4035) * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * DtoAssign() * * * * * * * * DtoArrayAssign * * * * * * * * * DtoArrayPtr * * * * * * * * * DtoArrayLen * * * * * * * * * SetArray * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(4036) * * * * * * AddrExp::toElem: &chunk @ string* * * * * * * * VarExp::toElem: chunk @ string * * * * * * * * DtoSymbolAddress ('chunk' of type 'string') * * * * * * * * * function param * * * * * * * * * type: string * * * * * * * is nothing special * * * * * * * lval: { i64, i8* }* %chunk_arg * * * * * * return value is '0x127b81f0' * TemplateInstance::codegen: 'std.format.formattedWrite!(LockingTextWriter, char, string)' * * DtoDefineFunction(std.format.formattedWrite!(LockingTextWriter, char, string).formattedWrite): /usr/include/dlang/ldc/std/format.d(420) * * * DtoFunctionType(@safe uint(LockingTextWriter w, const(char[]) fmt, string _param_2)) * * * * x86-64 ABI: Transforming return type * * * * x86-64 ABI: Transforming argument types * * * * Final function type: i32 ({ i64, i8* }, { i64, i8* }, %std.stdio.File.LockingTextWriter*) * * * DtoResolveFunction(std.format.formattedWrite!(LockingTextWriter, char, string).formattedWrite): /usr/include/dlang/ldc/std/format.d(420) * * * * DtoDeclareFunction(std.format.formattedWrite!(LockingTextWriter, char, string).formattedWrite): /usr/include/dlang/ldc/std/format.d(420) * * * * * DtoFunctionType(@safe uint(LockingTextWriter w, const(char[]) fmt, string _param_2)) * * * * * func = declare i32 @_D3std6format62__T14formattedWriteTS3std5stdio4File17LockingTextWriterTaTAyaZ14formattedWriteFNfS3std5stdio4File17LockingTextWriterxAaAyaZk({ i64, i8* }, { i64, i8* }, %std.stdio.File.LockingTextWriter*) * * * Doing function body for: formattedWrite * * * DtoCreateNestedContext for formattedWrite * * * * DtoCreateNestedContextType for std.format.formattedWrite!(LockingTextWriter, char, string).formattedWrite * * * * * has nested frame * * * * * Function formattedWrite has depth 0 * * * * * Nested var 'spec' of type %"std.format.FormatSpec!char.FormatSpec" = type { i32, i32, i8, i8, i8, i8, [4 x i8], { i64, i8* }, { i64, i8* }, { i64, i8* } } * * * * * frameType = %nest.formattedWrite.3 = type { %"std.format.FormatSpec!char.FormatSpec" } * * * * nested var: spec * * * TryFinallyStatement::toIR(): * * * * ExpStatement::toIR(): * * * * * CallExp::toElem: w.~this() @ void * * * * * * DotVarExp::toElem: w.~this @ @trusted void() * * * * * * * VarExp::toElem: w @ LockingTextWriter * * * * * * * * DtoSymbolAddress ('w' of type 'LockingTextWriter') * * * * * * * * * function param * * * * * * * * * type: LockingTextWriter * * * * * * * isMember = this is: LockingTextWriter * * * * * * * DtoFunctionType(@trusted void()) * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * Final function type: void (%std.stdio.File.LockingTextWriter*) * * * * * * * DtoResolveFunction(std.stdio.File.LockingTextWriter.~this): /usr/include/dlang/ldc/std/stdio.d(2397) * * * * * * * * DtoDeclareFunction(std.stdio.File.LockingTextWriter.~this): /usr/include/dlang/ldc/std/stdio.d(2397) * * * * * * * * * isMember = this is: LockingTextWriter * * * * * * * * * DtoFunctionType(@trusted void()) * * * * * * * * * func = declare void @_D3std5stdio4File17LockingTextWriter6__dtorMFNeZv(%std.stdio.File.LockingTextWriter*) * * * * * * DtoCallFunction() * * * * * * * Building type: @trusted void() * * * * * * * * DtoFunctionType(@trusted void()) * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * Final function type: void () * * * * * * * doing normal arguments * * * * * * * Arguments so far: (1) * * * * * * * * %std.stdio.File.LockingTextWriter* %w_arg * * * * * * * Function type: @trusted void() * * * * CompoundStatement::toIR(): * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(421) * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(424) * * * * * * * DeclarationExp::toElem: alias FPfmt = void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe; | T=void * * * * * * * * DtoDeclarationExp: FPfmt * * * * * * * * * Ignoring Symbol: alias * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(426) * * * * * * * DeclarationExp::toElem: FormatSpec!char spec = spec = FormatSpec , spec.this(fmt); | T=void * * * * * * * * DtoDeclarationExp: spec * * * * * * * * * VarDeclaration * * * * * * * * * DtoVarDeclaration(vdtype = FormatSpec!char) * * * * * * * * * * has nestedref set (referenced by nested function/delegate) * * * * * * * * * * llvm value for decl: %spec = getelementptr %nest.formattedWrite.3, %nest.formattedWrite.3* %.frame, i32 0, i32 0 * * * * * * * * * * expression initializer * * * * * * * * * * CommaExp::toElem: spec = FormatSpec , spec.this(fmt) @ FormatSpec!char * * * * * * * * * * * AssignExp::toElem: spec = FormatSpec | (FormatSpec!char)(FormatSpec!char = FormatSpec!char) * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(426) * * * * * * * * * * * * VarExp::toElem: FormatSpec @ FormatSpec!char * * * * * * * * * * * * * DtoSymbolAddress ('FormatSpec' of type 'FormatSpec!char') * * * * * * * * * * * * * * Sym: type=FormatSpec!char * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * CallExp::toElem: spec.this(fmt) @ FormatSpec!char * * * * * * * * * * * * DotVarExp::toElem: spec.this @ pure nothrow @nogc ref @safe FormatSpec!char(const(char[]) fmt) * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(426) * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * %spec = getelementptr %nest.formattedWrite.3, %nest.formattedWrite.3* %.frame, i32 0, i32 0 * * * * * * * * * * * * * Function type: pure nothrow @nogc ref @safe FormatSpec!char(const(char[]) fmt) * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * VarExp::toElem: fmt @ const(char[]) * * * * * * * * * * * * * * * DtoSymbolAddress ('fmt' of type 'const(char[])') * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * type: const(char[]) * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(428) * * * * * * * DeclarationExp::toElem: void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe[1] funs = null; | T=void * * * * * * * * DtoDeclarationExp: funs * * * * * * * * * VarDeclaration * * * * * * * * * DtoVarDeclaration(vdtype = void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe[1]) * * * * * * * * * * Building type: void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe[1] * * * * * * * * * * * Building type: void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe * * * * * * * * * * * * Building type: pure nothrow @safe void(LockingTextWriter, const(void)*, ref FormatSpec!char) * * * * * * * * * * * * * DtoFunctionType(pure nothrow @safe void(LockingTextWriter, const(void)*, ref FormatSpec!char)) * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * Final function type: void (%"std.format.FormatSpec!char.FormatSpec"*, i8*, %std.stdio.File.LockingTextWriter*) * * * * * * * * * * llvm value for decl: %funs = alloca [1 x void (%"std.format.FormatSpec!char.FormatSpec"*, i8*, %std.stdio.File.LockingTextWriter*)*], align 8 * * * * * * * * * * expression initializer * * * * * * * * * * AssignExp::toElem: funs[] = null | (void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe[])(void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe[] = void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe) * * * * * * * * * * * performing static array literal assignment * * * * * * * * * * * SliceExp::toElem: funs[] @ void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe[] * * * * * * * * * * * * VarExp::toElem: funs @ void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe[1] * * * * * * * * * * * * * DtoSymbolAddress ('funs' of type 'void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe[1]') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * Building type: void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe* * * * * * * * * * * * NullExp::toElem(type=void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe): null * * * * * * * * * * * * NullExp::toConstElem(type=void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe): null * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * DtoArrayInit * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(429) * * * * * * * DeclarationExp::toElem: const(void)*[1] argsAddresses = null; | T=void * * * * * * * * DtoDeclarationExp: argsAddresses * * * * * * * * * VarDeclaration * * * * * * * * * DtoVarDeclaration(vdtype = const(void)*[1]) * * * * * * * * * * llvm value for decl: %argsAddresses = alloca [1 x i8*], align 8 * * * * * * * * * * expression initializer * * * * * * * * * * AssignExp::toElem: argsAddresses[] = null | (const(void)*[])(const(void)*[] = const(void)*) * * * * * * * * * * * performing static array literal assignment * * * * * * * * * * * SliceExp::toElem: argsAddresses[] @ const(void)*[] * * * * * * * * * * * * VarExp::toElem: argsAddresses @ const(void)*[1] * * * * * * * * * * * * * DtoSymbolAddress ('argsAddresses' of type 'const(void)*[1]') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * NullExp::toElem(type=const(void)*): null * * * * * * * * * * * * NullExp::toConstElem(type=const(void)*): null * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * DtoArrayInit * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(430) * * * * * * * NotExp::toElem: !__ctfe @ bool * * * * * * * * VarExp::toElem: __ctfe @ bool * * * * * * * * * DtoSymbolAddress ('__ctfe' of type 'bool') * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(431) * * * * * * * * UnrolledLoopStatement::toIR(): /usr/include/dlang/ldc/std/format.d(432) * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(432) * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(432) * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(432) * * * * * * * * * * * * DeclarationExp::toElem: enum ulong i = 0LU; | T=void * * * * * * * * * * * * * DtoDeclarationExp: i * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * Manifest constant, nothing to do. * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(432) * * * * * * * * * * * * DeclarationExp::toElem: alias Arg = string; | T=void * * * * * * * * * * * * * DtoDeclarationExp: Arg * * * * * * * * * * * * * * Ignoring Symbol: alias * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(434) * * * * * * * * * * * * AssignExp::toElem: funs[0] = (*() => & formatGeneric)() | (void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe)(void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe = void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe) * * * * * * * * * * * * * IndexExp::toElem: funs[0] @ void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe * * * * * * * * * * * * * * VarExp::toElem: funs @ void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe[1] * * * * * * * * * * * * * * * DtoSymbolAddress ('funs' of type 'void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe[1]') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * CallExp::toElem: (*() => & formatGeneric)() @ void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe * * * * * * * * * * * * * * PtrExp::toElem: *() => & formatGeneric @ pure nothrow @nogc @trusted void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe() * * * * * * * * * * * * * * * FuncExp::toElem: __lambda5 @ void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe function() pure nothrow @nogc @trusted * * * * * * * * * * * * * * * * kind = function * * * * * * * * * * * * * * * * DtoDefineFunction(std.format.formattedWrite!(LockingTextWriter, char, string).formattedWrite.__lambda5): /usr/include/dlang/ldc/std/format.d(434) * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe()) * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * Final function type: void (%"std.format.FormatSpec!char.FormatSpec"*, i8*, %std.stdio.File.LockingTextWriter*)* () * * * * * * * * * * * * * * * * * DtoResolveFunction(std.format.formattedWrite!(LockingTextWriter, char, string).formattedWrite.__lambda5): /usr/include/dlang/ldc/std/format.d(434) * * * * * * * * * * * * * * * * * * DtoDeclareFunction(std.format.formattedWrite!(LockingTextWriter, char, string).formattedWrite.__lambda5): /usr/include/dlang/ldc/std/format.d(434) * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe()) * * * * * * * * * * * * * * * * * * * func = declare void (%"std.format.FormatSpec!char.FormatSpec"*, i8*, %std.stdio.File.LockingTextWriter*)* @_D3std6format62__T14formattedWriteTS3std5stdio4File17LockingTextWriterTaTAyaZ14formattedWriteFS3std5stdio4File17LockingTextWriterxAaAyaZ9__lambda5FNaNbNiNeZPFNaNbNfS3std5stdio4File17LockingTextWriterPxvKS3std6format18__T10FormatSpecTaZ10FormatSpecZv() * * * * * * * * * * * * * * * * * Doing function body for: __lambda5 * * * * * * * * * * * * * * * * * DtoCreateNestedContext for __lambda5 * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for std.format.formattedWrite!(LockingTextWriter, char, string).formattedWrite.__lambda5 * * * * * * * * * * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * * * * * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/format.d(434) * * * * * * * * * * * * * * * * * * * SymOffExp::toElem: & formatGeneric @ void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('formatGeneric' of type '@system void(LockingTextWriter w, const(void)* arg, ref FormatSpec!char f)') * * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(@system void(LockingTextWriter w, const(void)* arg, ref FormatSpec!char f)) * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * * * Final function type: void (%"std.format.FormatSpec!char.FormatSpec"*, i8*, %std.stdio.File.LockingTextWriter*) * * * * * * * * * * * * * * * * * * * * * DtoResolveFunction(std.format.formatGeneric!(LockingTextWriter, string, char).formatGeneric): /usr/include/dlang/ldc/std/format.d(3455) * * * * * * * * * * * * * * * * * * * * * * DtoDeclareFunction(std.format.formatGeneric!(LockingTextWriter, string, char).formatGeneric): /usr/include/dlang/ldc/std/format.d(3455) * * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(@system void(LockingTextWriter w, const(void)* arg, ref FormatSpec!char f)) * * * * * * * * * * * * * * * * * * * * * * * func = declare void @_D3std6format61__T13formatGenericTS3std5stdio4File17LockingTextWriterTAyaTaZ13formatGenericFS3std5stdio4File17LockingTextWriterPxvKS3std6format18__T10FormatSpecTaZ10FormatSpecZv(%"std.format.FormatSpec!char.FormatSpec"*, i8*, %std.stdio.File.LockingTextWriter*) * * * * * * * * * * * * * * * * * * * * Casting from 'void function(LockingTextWriter w, const(void)* arg, ref FormatSpec!char f) @system' to 'void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe' * * * * * * * * * * * * * * * * * * * * * src: declare void @_D3std6format61__T13formatGenericTS3std5stdio4File17LockingTextWriterTAyaTaZ13formatGenericFS3std5stdio4File17LockingTextWriterPxvKS3std6format18__T10FormatSpecTaZ10FormatSpecZv(%"std.format.FormatSpec!char.FormatSpec"*, i8*, %std.stdio.File.LockingTextWriter* byval) * * * * * * * * * * * * * * * * * * * * * to type: void (%"std.format.FormatSpec!char.FormatSpec"*, i8*, %std.stdio.File.LockingTextWriter*)* * * * * * * * * * * * * * * * * * * * return value is '0x127c0f18' * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * Building type: pure nothrow @nogc @trusted void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe() * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe()) * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * Final function type: void (%"std.format.FormatSpec!char.FormatSpec"*, i8*, %std.stdio.File.LockingTextWriter*)* () * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @trusted void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe() * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * lhs: %14 = getelementptr [1 x void (%"std.format.FormatSpec!char.FormatSpec"*, i8*, %std.stdio.File.LockingTextWriter*)*], [1 x void (%"std.format.FormatSpec!char.FormatSpec"*, i8*, %std.stdio.File.LockingTextWriter*)*]* %funs, i32 0, i64 0 * * * * * * * * * * * * * * rhs: %15 = invoke void (%"std.format.FormatSpec!char.FormatSpec"*, i8*, %std.stdio.File.LockingTextWriter*)* @_D3std6format62__T14formattedWriteTS3std5stdio4File17LockingTextWriterTaTAyaZ14formattedWriteFS3std5stdio4File17LockingTextWriterxAaAyaZ9__lambda5FNaNbNiNeZPFNaNbNfS3std5stdio4File17LockingTextWriterPxvKS3std6format18__T10FormatSpecTaZ10FormatSpecZv() to label %postinvoke2 unwind label %landingPad * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(437) * * * * * * * * * * * * AssignExp::toElem: argsAddresses[0] = (*(ref string arg) => cast(const(void*))&arg)(_param_2) | (const(void)*)(const(void)* = const(void)*) * * * * * * * * * * * * * IndexExp::toElem: argsAddresses[0] @ const(void)* * * * * * * * * * * * * * * VarExp::toElem: argsAddresses @ const(void)*[1] * * * * * * * * * * * * * * * DtoSymbolAddress ('argsAddresses' of type 'const(void)*[1]') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * CallExp::toElem: (*(ref string arg) => cast(const(void*))&arg)(_param_2) @ const(void)* * * * * * * * * * * * * * * PtrExp::toElem: *(ref string arg) => cast(const(void*))&arg @ pure nothrow @nogc @trusted const(void*)(ref string arg) * * * * * * * * * * * * * * * FuncExp::toElem: __lambda6 @ const(void*) function(ref string arg) pure nothrow @nogc @trusted * * * * * * * * * * * * * * * * kind = function * * * * * * * * * * * * * * * * DtoDefineFunction(std.format.formattedWrite!(LockingTextWriter, char, string).formattedWrite.__lambda6): /usr/include/dlang/ldc/std/format.d(437) * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted const(void*)(ref string arg)) * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * Final function type: i8* ({ i64, i8* }*) * * * * * * * * * * * * * * * * * DtoResolveFunction(std.format.formattedWrite!(LockingTextWriter, char, string).formattedWrite.__lambda6): /usr/include/dlang/ldc/std/format.d(437) * * * * * * * * * * * * * * * * * * DtoDeclareFunction(std.format.formattedWrite!(LockingTextWriter, char, string).formattedWrite.__lambda6): /usr/include/dlang/ldc/std/format.d(437) * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted const(void*)(ref string arg)) * * * * * * * * * * * * * * * * * * * func = declare i8* @_D3std6format62__T14formattedWriteTS3std5stdio4File17LockingTextWriterTaTAyaZ14formattedWriteFS3std5stdio4File17LockingTextWriterxAaAyaZ18__T9__lambda6TAyaZ9__lambda6FNaNbNiNeKAyaZxPv({ i64, i8* }*) * * * * * * * * * * * * * * * * * Doing function body for: __lambda6 * * * * * * * * * * * * * * * * * DtoCreateNestedContext for __lambda6 * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for std.format.formattedWrite!(LockingTextWriter, char, string).formattedWrite.__lambda6 * * * * * * * * * * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * * * * * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/format.d(437) * * * * * * * * * * * * * * * * * * * CastExp::toElem: cast(const(void*))&arg @ const(void*) * * * * * * * * * * * * * * * * * * * * AddrExp::toElem: &arg @ string* * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: arg @ string * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('arg' of type 'string') * * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * * type: string * * * * * * * * * * * * * * * * * * * * * is nothing special * * * * * * * * * * * * * * * * * * * * * lval: { i64, i8* }* %arg_arg * * * * * * * * * * * * * * * * * * * * Casting from 'string*' to 'const(void*)' * * * * * * * * * * * * * * * * * * * * * src: { i64, i8* }* %arg_arg * * * * * * * * * * * * * * * * * * * * * to type: i8* * * * * * * * * * * * * * * * * * * * return value is '0x127c4168' * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * Building type: pure nothrow @nogc @trusted const(void*)(ref string arg) * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted const(void*)(ref string arg)) * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * Final function type: i8* ({ i64, i8* }*) * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @trusted const(void*)(ref string arg) * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * VarExp::toElem: _param_2 @ string * * * * * * * * * * * * * * * * * DtoSymbolAddress ('_param_2' of type 'string') * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * type: string * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * lhs: %10 = getelementptr [1 x i8*], [1 x i8*]* %argsAddresses, i32 0, i64 0 * * * * * * * * * * * * * * rhs: %11 = invoke i8* @_D3std6format62__T14formattedWriteTS3std5stdio4File17LockingTextWriterTaTAyaZ14formattedWriteFS3std5stdio4File17LockingTextWriterxAaAyaZ18__T9__lambda6TAyaZ9__lambda6FNaNbNiNeKAyaZxPv({ i64, i8* }* %_param_2) to label %postinvoke3 unwind label %landingPad * * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(440) * * * * * * * * * * * * IntegerExp::toElem: 0 @ int * * * * * * * * * * * * * IntegerExp::toConstElem: 0 @ int * * * * * * * * * * * * * * value = i32 0 * * * * * * * * * * * * if conditional: i32 0 * * * * * * * * * * * * Casting from 'int' to 'bool' * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(440) * * * * * * * * * * * * * CallExp::toElem: formatValue((LockingTextWriter __copytmp3345 = (__copytmp3345 = w).__postblit(); , __copytmp3345), _param_2, spec) @ void * * * * * * * * * * * * * * VarExp::toElem: formatValue @ @safe void(LockingTextWriter w, string obj, ref FormatSpec!char f) * * * * * * * * * * * * * * * DtoSymbolAddress ('formatValue' of type '@safe void(LockingTextWriter w, string obj, ref FormatSpec!char f)') * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * DtoFunctionType(@safe void(LockingTextWriter w, string obj, ref FormatSpec!char f)) * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * Final function type: void (%"std.format.FormatSpec!char.FormatSpec"*, { i64, i8* }, %std.stdio.File.LockingTextWriter*) * * * * * * * * * * * * * * * * DtoResolveFunction(std.format.formatValue!(LockingTextWriter, string, char).formatValue): /usr/include/dlang/ldc/std/format.d(1978) * * * * * * * * * * * * * * * * * DtoDeclareFunction(std.format.formatValue!(LockingTextWriter, string, char).formatValue): /usr/include/dlang/ldc/std/format.d(1978) * * * * * * * * * * * * * * * * * * DtoFunctionType(@safe void(LockingTextWriter w, string obj, ref FormatSpec!char f)) * * * * * * * * * * * * * * * * * * func = declare void @_D3std6format59__T11formatValueTS3std5stdio4File17LockingTextWriterTAyaTaZ11formatValueFNfS3std5stdio4File17LockingTextWriterAyaKS3std6format18__T10FormatSpecTaZ10FormatSpecZv(%"std.format.FormatSpec!char.FormatSpec"*, { i64, i8* }, %std.stdio.File.LockingTextWriter*) * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * Building type: @safe void(LockingTextWriter w, string obj, ref FormatSpec!char f) * * * * * * * * * * * * * * * * DtoFunctionType(@safe void(LockingTextWriter w, string obj, ref FormatSpec!char f)) * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * Final function type: void (%"std.format.FormatSpec!char.FormatSpec"*, { i64, i8* }, %std.stdio.File.LockingTextWriter*) * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * Function type: @safe void(LockingTextWriter w, string obj, ref FormatSpec!char f) * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * CommaExp::toElem: LockingTextWriter __copytmp3345 = (__copytmp3345 = w).__postblit(); , __copytmp3345 @ LockingTextWriter * * * * * * * * * * * * * * * * * DeclarationExp::toElem: LockingTextWriter __copytmp3345 = (__copytmp3345 = w).__postblit(); | T=void * * * * * * * * * * * * * * * * * * DtoDeclarationExp: __copytmp3345 * * * * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = LockingTextWriter) * * * * * * * * * * * * * * * * * * * * llvm value for decl: %__copytmp3345 = alloca %std.stdio.File.LockingTextWriter, align 8 * * * * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * * * * CallExp::toElem: (__copytmp3345 = w).__postblit() @ void * * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: (__copytmp3345 = w).__postblit @ @trusted void() * * * * * * * * * * * * * * * * * * * * * * AssignExp::toElem: __copytmp3345 = w | (LockingTextWriter)(LockingTextWriter = LockingTextWriter) * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: __copytmp3345 @ LockingTextWriter * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__copytmp3345' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: w @ LockingTextWriter * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * * * * type: LockingTextWriter * * * * * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * * * isMember = this is: LockingTextWriter * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(@trusted void()) * * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * * * * Final function type: void (%std.stdio.File.LockingTextWriter*) * * * * * * * * * * * * * * * * * * * * * * DtoResolveFunction(std.stdio.File.LockingTextWriter.__postblit): /usr/include/dlang/ldc/std/stdio.d(2407) * * * * * * * * * * * * * * * * * * * * * * * DtoDeclareFunction(std.stdio.File.LockingTextWriter.__postblit): /usr/include/dlang/ldc/std/stdio.d(2407) * * * * * * * * * * * * * * * * * * * * * * * * isMember = this is: LockingTextWriter * * * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(@trusted void()) * * * * * * * * * * * * * * * * * * * * * * * * func = declare void @_D3std5stdio4File17LockingTextWriter10__postblitMFNeZv(%std.stdio.File.LockingTextWriter*) * * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * * Building type: @trusted void() * * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(@trusted void()) * * * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * * * * * Final function type: void () * * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * * * * * * %__copytmp3345 = alloca %std.stdio.File.LockingTextWriter, align 8 * * * * * * * * * * * * * * * * * * * * * * Function type: @trusted void() * * * * * * * * * * * * * * * * * VarExp::toElem: __copytmp3345 @ LockingTextWriter * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__copytmp3345' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * VarExp::toElem: _param_2 @ string * * * * * * * * * * * * * * * * * DtoSymbolAddress ('_param_2' of type 'string') * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * type: string * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(440) * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(445) * * * * * * * DeclarationExp::toElem: uint currentArg = 0u; | T=void * * * * * * * * DtoDeclarationExp: currentArg * * * * * * * * * VarDeclaration * * * * * * * * * DtoVarDeclaration(vdtype = uint) * * * * * * * * * * llvm value for decl: %currentArg = alloca i32, align 4 * * * * * * * * * * expression initializer * * * * * * * * * * AssignExp::toElem: currentArg = 0u | (uint)(uint = uint) * * * * * * * * * * * VarExp::toElem: currentArg @ uint * * * * * * * * * * * * DtoSymbolAddress ('currentArg' of type 'uint') * * * * * * * * * * * * * a normal variable * * * * * * * * * * * IntegerExp::toElem: 0u @ uint * * * * * * * * * * * * IntegerExp::toConstElem: 0u @ uint * * * * * * * * * * * * * value = i32 0 * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * lhs: %currentArg = alloca i32, align 4 * * * * * * * * * * * * rhs: i32 0 * * * * * * ForStatement::toIR(): /usr/include/dlang/ldc/std/format.d(446) * * * * * * * CallExp::toElem: spec.writeUpToNextSpec((LockingTextWriter __copytmp3346 = (__copytmp3346 = w).__postblit(); , __copytmp3346)) @ bool * * * * * * * * DotVarExp::toElem: spec.writeUpToNextSpec @ @safe bool(LockingTextWriter writer) * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * nested variable * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(446) * * * * * * * * * isMember = this is: FormatSpec!char * * * * * * * * * DtoFunctionType(@safe bool(LockingTextWriter writer)) * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: i1 (%"std.format.FormatSpec!char.FormatSpec"*, %std.stdio.File.LockingTextWriter*) * * * * * * * * * DtoResolveFunction(std.format.FormatSpec!char.FormatSpec.writeUpToNextSpec!(LockingTextWriter).writeUpToNextSpec): /usr/include/dlang/ldc/std/format.d(783) * * * * * * * * * * DtoDeclareFunction(std.format.FormatSpec!char.FormatSpec.writeUpToNextSpec!(LockingTextWriter).writeUpToNextSpec): /usr/include/dlang/ldc/std/format.d(783) * * * * * * * * * * * isMember = this is: FormatSpec!char * * * * * * * * * * * DtoFunctionType(@safe bool(LockingTextWriter writer)) * * * * * * * * * * * func = declare i1 @_D3std6format18__T10FormatSpecTaZ10FormatSpec59__T17writeUpToNextSpecTS3std5stdio4File17LockingTextWriterZ17writeUpToNextSpecMFNfS3std5stdio4File17LockingTextWriterZb(%"std.format.FormatSpec!char.FormatSpec"*, %std.stdio.File.LockingTextWriter*) * * * * * * * * DtoCallFunction() * * * * * * * * * Building type: @safe bool(LockingTextWriter writer) * * * * * * * * * * DtoFunctionType(@safe bool(LockingTextWriter writer)) * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * Final function type: i1 (%std.stdio.File.LockingTextWriter*) * * * * * * * * * doing normal arguments * * * * * * * * * Arguments so far: (1) * * * * * * * * * * %spec = getelementptr %nest.formattedWrite.3, %nest.formattedWrite.3* %.frame, i32 0, i32 0 * * * * * * * * * Function type: @safe bool(LockingTextWriter writer) * * * * * * * * * DtoArgument * * * * * * * * * * CommaExp::toElem: LockingTextWriter __copytmp3346 = (__copytmp3346 = w).__postblit(); , __copytmp3346 @ LockingTextWriter * * * * * * * * * * * DeclarationExp::toElem: LockingTextWriter __copytmp3346 = (__copytmp3346 = w).__postblit(); | T=void * * * * * * * * * * * * DtoDeclarationExp: __copytmp3346 * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * DtoVarDeclaration(vdtype = LockingTextWriter) * * * * * * * * * * * * * * llvm value for decl: %__copytmp3346 = alloca %std.stdio.File.LockingTextWriter, align 8 * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * CallExp::toElem: (__copytmp3346 = w).__postblit() @ void * * * * * * * * * * * * * * * DotVarExp::toElem: (__copytmp3346 = w).__postblit @ @trusted void() * * * * * * * * * * * * * * * * AssignExp::toElem: __copytmp3346 = w | (LockingTextWriter)(LockingTextWriter = LockingTextWriter) * * * * * * * * * * * * * * * * * VarExp::toElem: __copytmp3346 @ LockingTextWriter * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__copytmp3346' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * VarExp::toElem: w @ LockingTextWriter * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * type: LockingTextWriter * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * %__copytmp3346 = alloca %std.stdio.File.LockingTextWriter, align 8 * * * * * * * * * * * * * * * * Function type: @trusted void() * * * * * * * * * * * VarExp::toElem: __copytmp3346 @ LockingTextWriter * * * * * * * * * * * * DtoSymbolAddress ('__copytmp3346' of type 'LockingTextWriter') * * * * * * * * * * * * * a normal variable * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(447) * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(447) * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(448) * * * * * * * * * * AndAndExp::toElem: cast(ulong)currentArg == 1LU && !spec.indexStart @ bool * * * * * * * * * * * EqualExp::toElem: cast(ulong)currentArg == 1LU @ bool * * * * * * * * * * * * CastExp::toElem: cast(ulong)currentArg @ ulong * * * * * * * * * * * * * VarExp::toElem: currentArg @ uint * * * * * * * * * * * * * * DtoSymbolAddress ('currentArg' of type 'uint') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * Casting from 'uint' to 'ulong' * * * * * * * * * * * * * * cast to: i64 * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * integral or pointer or interface * * * * * * * * * * * * lv: %25 = zext i32 %24 to i64 * * * * * * * * * * * * rv: i64 1 * * * * * * * * * * * NotExp::toElem: !spec.indexStart @ bool * * * * * * * * * * * * DotVarExp::toElem: spec.indexStart @ ubyte * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(448) * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.indexStart: * * * * * * * * * * * * * * Value: %27 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 3 * * * * * * * * * * * * Casting from 'ubyte' to 'bool' * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(449) * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(449) * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(451) * * * * * * * * * * * * * CallExp::toElem: enforceEx(fmt.length == 0LU, delegate string() => text("Orphan format specifier: %", spec.spec), "/usr/include/dlang/ldc/std/format.d", 451LU) @ bool * * * * * * * * * * * * * * VarExp::toElem: enforceEx @ pure @safe bool(bool value, lazy string msg = "", string file = __FILE__, ulong line = cast(ulong)__LINE__) * * * * * * * * * * * * * * * DtoSymbolAddress ('enforceEx' of type 'pure @safe bool(bool value, lazy string msg = "", string file = __FILE__, ulong line = cast(ulong)__LINE__)') * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * Function type: pure @safe bool(bool value, lazy string msg = "", string file = __FILE__, ulong line = cast(ulong)__LINE__) * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * EqualExp::toElem: fmt.length == 0LU @ bool * * * * * * * * * * * * * * * * * ArrayLengthExp::toElem: fmt.length @ ulong * * * * * * * * * * * * * * * * * * VarExp::toElem: fmt @ const(char[]) * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('fmt' of type 'const(char[])') * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * type: const(char[]) * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * * * * * integral or pointer or interface * * * * * * * * * * * * * * * * * lv: %.len = load i64, i64* %31 * * * * * * * * * * * * * * * * * rv: i64 0 * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * FuncExp::toElem: __dgliteral7 @ string delegate() pure @nogc @safe * * * * * * * * * * * * * * * * * nested * * * * * * * * * * * * * * * * * kind = delegate * * * * * * * * * * * * * * * * * DtoDefineFunction(std.format.formattedWrite!(LockingTextWriter, char, string).formattedWrite.__dgliteral7): /usr/include/dlang/ldc/std/format.d(452) * * * * * * * * * * * * * * * * * * DtoFunctionType(pure @nogc @safe string()) * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * Final function type: { i64, i8* } (i8*) * * * * * * * * * * * * * * * * * * DtoResolveFunction(std.format.formattedWrite!(LockingTextWriter, char, string).formattedWrite.__dgliteral7): /usr/include/dlang/ldc/std/format.d(452) * * * * * * * * * * * * * * * * * * * DtoDeclareFunction(std.format.formattedWrite!(LockingTextWriter, char, string).formattedWrite.__dgliteral7): /usr/include/dlang/ldc/std/format.d(452) * * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure @nogc @safe string()) * * * * * * * * * * * * * * * * * * * * func = declare { i64, i8* } @_D3std6format62__T14formattedWriteTS3std5stdio4File17LockingTextWriterTaTAyaZ14formattedWriteFS3std5stdio4File17LockingTextWriterxAaAyaZ12__dgliteral7MFNaNiNfZAya(i8*) * * * * * * * * * * * * * * * * * * Doing function body for: __dgliteral7 * * * * * * * * * * * * * * * * * * DtoCreateNestedContext for __dgliteral7 * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for std.format.formattedWrite!(LockingTextWriter, char, string).formattedWrite.__dgliteral7 * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for std.format.formattedWrite!(LockingTextWriter, char, string).formattedWrite * * * * * * * * * * * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * * * * * * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/format.d(452) * * * * * * * * * * * * * * * * * * * * CallExp::toElem: text("Orphan format specifier: %", spec.spec) @ string * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: text @ pure @safe string(string _param_0, char _param_1) * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('text' of type 'pure @safe string(string _param_0, char _param_1)') * * * * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * * * * Function type: pure @safe string(string _param_0, char _param_1) * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * StringExp::toElem: "Orphan format specifier: %" @ string * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: spec.spec @ char * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(452) * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for std.format.formattedWrite!(LockingTextWriter, char, string).formattedWrite * * * * * * * * * * * * * * * * * * * * * * * * * * * Context: %2 = bitcast i8* %1 to %nest.formattedWrite.3* * * * * * * * * * * * * * * * * * * * * * * * * * * * of type: %nest.formattedWrite.3 = type { %"std.format.FormatSpec!char.FormatSpec" } * * * * * * * * * * * * * * * * * * * * * * * * * * * Variable: spec * * * * * * * * * * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * * * * * * * * * * Function: __dgliteral7 * * * * * * * * * * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * * * * * * * * * * Addr: %spec = getelementptr %nest.formattedWrite.3, %nest.formattedWrite.3* %2, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * * * * * * * * * of type: %"std.format.FormatSpec!char.FormatSpec"* * * * * * * * * * * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.spec: * * * * * * * * * * * * * * * * * * * * * * * * * Value: %3 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 2 * * * * * * * * * * * * * * * * * * * * return value is '0x127d0d18' * * * * * * * * * * * * * * * * * Building type: string delegate() pure @nogc @safe * * * * * * * * * * * * * * * * * * DtoFunctionType(pure @nogc @safe string()) * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * Final function type: { i64, i8* } (i8*) * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * StringExp::toElem: "/usr/include/dlang/ldc/std/format.d" @ string * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * IntegerExp::toElem: 451LU @ ulong * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 451LU @ ulong * * * * * * * * * * * * * * * * * * value = i64 451 * * * * * * * * * * * * BreakStatement::toIR(): /usr/include/dlang/ldc/std/format.d(453) * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(455) * * * * * * * * * * EqualExp::toElem: spec.width == 2147483647 @ bool * * * * * * * * * * * DotVarExp::toElem: spec.width @ int * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(455) * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.width: * * * * * * * * * * * * * Value: %36 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 0 * * * * * * * * * * * IntegerExp::toElem: 2147483647 @ int * * * * * * * * * * * * IntegerExp::toConstElem: 2147483647 @ int * * * * * * * * * * * * * value = i32 2147483647 * * * * * * * * * * * integral or pointer or interface * * * * * * * * * * * lv: %37 = load i32, i32* %36 * * * * * * * * * * * rv: i32 2147483647 * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(456) * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(456) * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(457) * * * * * * * * * * * * * DeclarationExp::toElem: int width = to(getNthInt(currentArg, _param_2)); | T=void * * * * * * * * * * * * * * DtoDeclarationExp: width * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = int) * * * * * * * * * * * * * * * * llvm value for decl: %width = alloca i32, align 4 * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * AssignExp::toElem: width = to(getNthInt(currentArg, _param_2)) | (int)(int = int) * * * * * * * * * * * * * * * * * VarExp::toElem: width @ int * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('width' of type 'int') * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * CallExp::toElem: to(getNthInt(currentArg, _param_2)) @ int * * * * * * * * * * * * * * * * * * VarExp::toElem: to @ pure nothrow @nogc @safe int(int _param_0) * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('to' of type 'pure nothrow @nogc @safe int(int _param_0)') * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @safe int(int _param_0) * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * CallExp::toElem: getNthInt(currentArg, _param_2) @ int * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: getNthInt @ pure @safe int(uint index, string _param_1) * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('getNthInt' of type 'pure @safe int(uint index, string _param_1)') * * * * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * * * * Function type: pure @safe int(uint index, string _param_1) * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: currentArg @ uint * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('currentArg' of type 'uint') * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: _param_2 @ string * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('_param_2' of type 'string') * * * * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * * * * type: string * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * lhs: %width = alloca i32, align 4 * * * * * * * * * * * * * * * * * * rhs: %14 = invoke i32 @_D3std4conv9__T2toTiZ9__T2toTiZ2toFNaNbNiNfiZi(i32 %42) to label %postinvoke16 unwind label %landingPad * * * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(458) * * * * * * * * * * * * * CmpExp::toElem: width < 0 @ bool * * * * * * * * * * * * * * VarExp::toElem: width @ int * * * * * * * * * * * * * * * DtoSymbolAddress ('width' of type 'int') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * IntegerExp::toElem: 0 @ int * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0 @ int * * * * * * * * * * * * * * * * value = i32 0 * * * * * * * * * * * * * * type 1: %15 = load i32, i32* %width * * * * * * * * * * * * * * type 2: i32 0 * * * * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(459) * * * * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(459) * * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(460) * * * * * * * * * * * * * * * * CallExp::toElem: spec.flDash(true) @ void * * * * * * * * * * * * * * * * * DotVarExp::toElem: spec.flDash @ pure nothrow @nogc @property @safe void(bool v) * * * * * * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(460) * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * * %spec = getelementptr %nest.formattedWrite.3, %nest.formattedWrite.3* %.frame, i32 0, i32 0 * * * * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @property @safe void(bool v) * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: true @ bool * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: true @ bool * * * * * * * * * * * * * * * * * * * * * value = i1 true * * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(461) * * * * * * * * * * * * * * * * AssignExp::toElem: width = -width | (int)(int = int) * * * * * * * * * * * * * * * * * VarExp::toElem: width @ int * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('width' of type 'int') * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * NegExp::toElem: -width @ int * * * * * * * * * * * * * * * * * * VarExp::toElem: width @ int * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('width' of type 'int') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * lhs: %width = alloca i32, align 4 * * * * * * * * * * * * * * * * * * rhs: %negval = sub i32 0, %17 * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(463) * * * * * * * * * * * * * AssignExp::toElem: spec.width = width | (int)(int = int) * * * * * * * * * * * * * * DotVarExp::toElem: spec.width @ int * * * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(463) * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.width: * * * * * * * * * * * * * * * * Value: %46 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 0 * * * * * * * * * * * * * * VarExp::toElem: width @ int * * * * * * * * * * * * * * * DtoSymbolAddress ('width' of type 'int') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * lhs: %46 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 0 * * * * * * * * * * * * * * * rhs: %47 = load i32, i32* %width * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(464) * * * * * * * * * * * * * AddAssignExp::toElem: currentArg += 1u @ uint * * * * * * * * * * * * * * Caching l-value of currentArg += 1u => currentArg * * * * * * * * * * * * * * * VarExp::toElem: currentArg @ uint * * * * * * * * * * * * * * * * DtoSymbolAddress ('currentArg' of type 'uint') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * AddExp::toElem: currentArg + 1u @ uint * * * * * * * * * * * * * * * VarExp::toElem: currentArg @ uint * * * * * * * * * * * * * * * IntegerExp::toElem: 1u @ uint * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1u @ uint * * * * * * * * * * * * * * * * * value = i32 1 * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * lhs: %currentArg = alloca i32, align 4 * * * * * * * * * * * * * * * rhs: %49 = add i32 %48, 1 * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(466) * * * * * * * * * * * CmpExp::toElem: spec.width < 0 @ bool * * * * * * * * * * * * DotVarExp::toElem: spec.width @ int * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(466) * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.width: * * * * * * * * * * * * * * Value: %46 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 0 * * * * * * * * * * * * IntegerExp::toElem: 0 @ int * * * * * * * * * * * * * IntegerExp::toConstElem: 0 @ int * * * * * * * * * * * * * * value = i32 0 * * * * * * * * * * * * type 1: %47 = load i32, i32* %46 * * * * * * * * * * * * type 2: i32 0 * * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(467) * * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(467) * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(469) * * * * * * * * * * * * * * DeclarationExp::toElem: uint index = cast(uint)-spec.width; | T=void * * * * * * * * * * * * * * * DtoDeclarationExp: index * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = uint) * * * * * * * * * * * * * * * * * llvm value for decl: %index = alloca i32, align 4 * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * AssignExp::toElem: index = cast(uint)-spec.width | (uint)(uint = uint) * * * * * * * * * * * * * * * * * * VarExp::toElem: index @ uint * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('index' of type 'uint') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * CastExp::toElem: cast(uint)-spec.width @ uint * * * * * * * * * * * * * * * * * * * NegExp::toElem: -spec.width @ int * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: spec.width @ int * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(469) * * * * * * * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.width: * * * * * * * * * * * * * * * * * * * * * * Value: %53 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * Casting from 'int' to 'uint' * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * lhs: %index = alloca i32, align 4 * * * * * * * * * * * * * * * * * * * rhs: %negval22 = sub i32 0, %54 * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(470) * * * * * * * * * * * * * * AssertExp::toElem: assert(index > 0u) * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(471) * * * * * * * * * * * * * * DeclarationExp::toElem: int width = to(getNthInt(index - 1u, _param_2)); | T=void * * * * * * * * * * * * * * * DtoDeclarationExp: width * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = int) * * * * * * * * * * * * * * * * * llvm value for decl: %width23 = alloca i32, align 4 * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * AssignExp::toElem: width = to(getNthInt(index - 1u, _param_2)) | (int)(int = int) * * * * * * * * * * * * * * * * * * VarExp::toElem: width @ int * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('width' of type 'int') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * CallExp::toElem: to(getNthInt(index - 1u, _param_2)) @ int * * * * * * * * * * * * * * * * * * * VarExp::toElem: to @ pure nothrow @nogc @safe int(int _param_0) * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('to' of type 'pure nothrow @nogc @safe int(int _param_0)') * * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @safe int(int _param_0) * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * CallExp::toElem: getNthInt(index - 1u, _param_2) @ int * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: getNthInt @ pure @safe int(uint index, string _param_1) * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('getNthInt' of type 'pure @safe int(uint index, string _param_1)') * * * * * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * * * * * Function type: pure @safe int(uint index, string _param_1) * * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * * MinExp::toElem: index - 1u @ uint * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: index @ uint * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('index' of type 'uint') * * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 1u @ uint * * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1u @ uint * * * * * * * * * * * * * * * * * * * * * * * * * * * value = i32 1 * * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: _param_2 @ string * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('_param_2' of type 'string') * * * * * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * * * * * type: string * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * lhs: %width23 = alloca i32, align 4 * * * * * * * * * * * * * * * * * * * rhs: %18 = invoke i32 @_D3std4conv9__T2toTiZ9__T2toTiZ2toFNaNbNiNfiZi(i32 %59) to label %postinvoke25 unwind label %landingPad * * * * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(472) * * * * * * * * * * * * * * CmpExp::toElem: currentArg < index @ bool * * * * * * * * * * * * * * * VarExp::toElem: currentArg @ uint * * * * * * * * * * * * * * * * DtoSymbolAddress ('currentArg' of type 'uint') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * VarExp::toElem: index @ uint * * * * * * * * * * * * * * * * DtoSymbolAddress ('index' of type 'uint') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * type 1: %19 = load i32, i32* %currentArg * * * * * * * * * * * * * * * type 2: %20 = load i32, i32* %index * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(472) * * * * * * * * * * * * * * * AssignExp::toElem: currentArg = index | (uint)(uint = uint) * * * * * * * * * * * * * * * * VarExp::toElem: currentArg @ uint * * * * * * * * * * * * * * * * * DtoSymbolAddress ('currentArg' of type 'uint') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * VarExp::toElem: index @ uint * * * * * * * * * * * * * * * * * DtoSymbolAddress ('index' of type 'uint') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * lhs: %currentArg = alloca i32, align 4 * * * * * * * * * * * * * * * * * rhs: %63 = load i32, i32* %index * * * * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(473) * * * * * * * * * * * * * * CmpExp::toElem: width < 0 @ bool * * * * * * * * * * * * * * * VarExp::toElem: width @ int * * * * * * * * * * * * * * * * DtoSymbolAddress ('width' of type 'int') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * IntegerExp::toElem: 0 @ int * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0 @ int * * * * * * * * * * * * * * * * * value = i32 0 * * * * * * * * * * * * * * * type 1: %64 = load i32, i32* %width23 * * * * * * * * * * * * * * * type 2: i32 0 * * * * * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(474) * * * * * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(474) * * * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(475) * * * * * * * * * * * * * * * * * CallExp::toElem: spec.flDash(true) @ void * * * * * * * * * * * * * * * * * * DotVarExp::toElem: spec.flDash @ pure nothrow @nogc @property @safe void(bool v) * * * * * * * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(475) * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * * * %spec = getelementptr %nest.formattedWrite.3, %nest.formattedWrite.3* %.frame, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @property @safe void(bool v) * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: true @ bool * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: true @ bool * * * * * * * * * * * * * * * * * * * * * * value = i1 true * * * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(476) * * * * * * * * * * * * * * * * * AssignExp::toElem: width = -width | (int)(int = int) * * * * * * * * * * * * * * * * * * VarExp::toElem: width @ int * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('width' of type 'int') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * NegExp::toElem: -width @ int * * * * * * * * * * * * * * * * * * * VarExp::toElem: width @ int * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('width' of type 'int') * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * lhs: %width23 = alloca i32, align 4 * * * * * * * * * * * * * * * * * * * rhs: %negval31 = sub i32 0, %22 * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(478) * * * * * * * * * * * * * * AssignExp::toElem: spec.width = width | (int)(int = int) * * * * * * * * * * * * * * * DotVarExp::toElem: spec.width @ int * * * * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(478) * * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.width: * * * * * * * * * * * * * * * * * Value: %67 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 0 * * * * * * * * * * * * * * * VarExp::toElem: width @ int * * * * * * * * * * * * * * * * DtoSymbolAddress ('width' of type 'int') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * lhs: %67 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 0 * * * * * * * * * * * * * * * * rhs: %68 = load i32, i32* %width23 * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(480) * * * * * * * * * * EqualExp::toElem: spec.precision == 2147483647 @ bool * * * * * * * * * * * DotVarExp::toElem: spec.precision @ int * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(480) * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.precision: * * * * * * * * * * * * * Value: %54 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 1 * * * * * * * * * * * IntegerExp::toElem: 2147483647 @ int * * * * * * * * * * * * IntegerExp::toConstElem: 2147483647 @ int * * * * * * * * * * * * * value = i32 2147483647 * * * * * * * * * * * integral or pointer or interface * * * * * * * * * * * lv: %55 = load i32, i32* %54 * * * * * * * * * * * rv: i32 2147483647 * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(481) * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(481) * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(482) * * * * * * * * * * * * * DeclarationExp::toElem: int precision = to(getNthInt(currentArg, _param_2)); | T=void * * * * * * * * * * * * * * DtoDeclarationExp: precision * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = int) * * * * * * * * * * * * * * * * llvm value for decl: %precision = alloca i32, align 4 * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * AssignExp::toElem: precision = to(getNthInt(currentArg, _param_2)) | (int)(int = int) * * * * * * * * * * * * * * * * * VarExp::toElem: precision @ int * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('precision' of type 'int') * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * CallExp::toElem: to(getNthInt(currentArg, _param_2)) @ int * * * * * * * * * * * * * * * * * * VarExp::toElem: to @ pure nothrow @nogc @safe int(int _param_0) * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('to' of type 'pure nothrow @nogc @safe int(int _param_0)') * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @safe int(int _param_0) * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * CallExp::toElem: getNthInt(currentArg, _param_2) @ int * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: getNthInt @ pure @safe int(uint index, string _param_1) * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('getNthInt' of type 'pure @safe int(uint index, string _param_1)') * * * * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * * * * Function type: pure @safe int(uint index, string _param_1) * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: currentArg @ uint * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('currentArg' of type 'uint') * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: _param_2 @ string * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('_param_2' of type 'string') * * * * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * * * * type: string * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * lhs: %precision = alloca i32, align 4 * * * * * * * * * * * * * * * * * * rhs: %23 = invoke i32 @_D3std4conv9__T2toTiZ9__T2toTiZ2toFNaNbNiNfiZi(i32 %75) to label %postinvoke36 unwind label %landingPad * * * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(484) * * * * * * * * * * * * * CmpExp::toElem: precision >= 0 @ bool * * * * * * * * * * * * * * VarExp::toElem: precision @ int * * * * * * * * * * * * * * * DtoSymbolAddress ('precision' of type 'int') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * IntegerExp::toElem: 0 @ int * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0 @ int * * * * * * * * * * * * * * * * value = i32 0 * * * * * * * * * * * * * * type 1: %24 = load i32, i32* %precision * * * * * * * * * * * * * * type 2: i32 0 * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(484) * * * * * * * * * * * * * * AssignExp::toElem: spec.precision = precision | (int)(int = int) * * * * * * * * * * * * * * * DotVarExp::toElem: spec.precision @ int * * * * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(484) * * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.precision: * * * * * * * * * * * * * * * * * Value: %78 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 1 * * * * * * * * * * * * * * * VarExp::toElem: precision @ int * * * * * * * * * * * * * * * * DtoSymbolAddress ('precision' of type 'int') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * lhs: %78 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 1 * * * * * * * * * * * * * * * * rhs: %79 = load i32, i32* %precision * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(486) * * * * * * * * * * * * * * AssignExp::toElem: spec.precision = 2147483646 | (int)(int = int) * * * * * * * * * * * * * * * DotVarExp::toElem: spec.precision @ int * * * * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(486) * * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.precision: * * * * * * * * * * * * * * * * * Value: %80 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 1 * * * * * * * * * * * * * * * IntegerExp::toElem: 2147483646 @ int * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 2147483646 @ int * * * * * * * * * * * * * * * * * value = i32 2147483646 * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * lhs: %80 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 1 * * * * * * * * * * * * * * * * rhs: i32 2147483646 * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(487) * * * * * * * * * * * * * AddAssignExp::toElem: currentArg += 1u @ uint * * * * * * * * * * * * * * Caching l-value of currentArg += 1u => currentArg * * * * * * * * * * * * * * * VarExp::toElem: currentArg @ uint * * * * * * * * * * * * * * * * DtoSymbolAddress ('currentArg' of type 'uint') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * AddExp::toElem: currentArg + 1u @ uint * * * * * * * * * * * * * * * VarExp::toElem: currentArg @ uint * * * * * * * * * * * * * * * IntegerExp::toElem: 1u @ uint * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1u @ uint * * * * * * * * * * * * * * * * * value = i32 1 * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * lhs: %currentArg = alloca i32, align 4 * * * * * * * * * * * * * * * rhs: %82 = add i32 %81, 1 * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(489) * * * * * * * * * * * CmpExp::toElem: spec.precision < 0 @ bool * * * * * * * * * * * * DotVarExp::toElem: spec.precision @ int * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(489) * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.precision: * * * * * * * * * * * * * * Value: %78 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 1 * * * * * * * * * * * * IntegerExp::toElem: 0 @ int * * * * * * * * * * * * * IntegerExp::toConstElem: 0 @ int * * * * * * * * * * * * * * value = i32 0 * * * * * * * * * * * * type 1: %79 = load i32, i32* %78 * * * * * * * * * * * * type 2: i32 0 * * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(490) * * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(490) * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(492) * * * * * * * * * * * * * * DeclarationExp::toElem: uint index = cast(uint)-spec.precision; | T=void * * * * * * * * * * * * * * * DtoDeclarationExp: index * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = uint) * * * * * * * * * * * * * * * * * llvm value for decl: %index42 = alloca i32, align 4 * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * AssignExp::toElem: index = cast(uint)-spec.precision | (uint)(uint = uint) * * * * * * * * * * * * * * * * * * VarExp::toElem: index @ uint * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('index' of type 'uint') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * CastExp::toElem: cast(uint)-spec.precision @ uint * * * * * * * * * * * * * * * * * * * NegExp::toElem: -spec.precision @ int * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: spec.precision @ int * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(492) * * * * * * * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.precision: * * * * * * * * * * * * * * * * * * * * * * Value: %86 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 1 * * * * * * * * * * * * * * * * * * * Casting from 'int' to 'uint' * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * lhs: %index42 = alloca i32, align 4 * * * * * * * * * * * * * * * * * * * rhs: %negval43 = sub i32 0, %87 * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(493) * * * * * * * * * * * * * * AssertExp::toElem: assert(index > 0u) * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(494) * * * * * * * * * * * * * * DeclarationExp::toElem: int precision = to(getNthInt(index - 1u, _param_2)); | T=void * * * * * * * * * * * * * * * DtoDeclarationExp: precision * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = int) * * * * * * * * * * * * * * * * * llvm value for decl: %precision44 = alloca i32, align 4 * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * AssignExp::toElem: precision = to(getNthInt(index - 1u, _param_2)) | (int)(int = int) * * * * * * * * * * * * * * * * * * VarExp::toElem: precision @ int * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('precision' of type 'int') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * CallExp::toElem: to(getNthInt(index - 1u, _param_2)) @ int * * * * * * * * * * * * * * * * * * * VarExp::toElem: to @ pure nothrow @nogc @safe int(int _param_0) * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('to' of type 'pure nothrow @nogc @safe int(int _param_0)') * * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @safe int(int _param_0) * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * CallExp::toElem: getNthInt(index - 1u, _param_2) @ int * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: getNthInt @ pure @safe int(uint index, string _param_1) * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('getNthInt' of type 'pure @safe int(uint index, string _param_1)') * * * * * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * * * * * Function type: pure @safe int(uint index, string _param_1) * * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * * MinExp::toElem: index - 1u @ uint * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: index @ uint * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('index' of type 'uint') * * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 1u @ uint * * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1u @ uint * * * * * * * * * * * * * * * * * * * * * * * * * * * value = i32 1 * * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: _param_2 @ string * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('_param_2' of type 'string') * * * * * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * * * * * type: string * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * lhs: %precision44 = alloca i32, align 4 * * * * * * * * * * * * * * * * * * * rhs: %26 = invoke i32 @_D3std4conv9__T2toTiZ9__T2toTiZ2toFNaNbNiNfiZi(i32 %92) to label %postinvoke46 unwind label %landingPad * * * * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(496) * * * * * * * * * * * * * * CmpExp::toElem: currentArg < index @ bool * * * * * * * * * * * * * * * VarExp::toElem: currentArg @ uint * * * * * * * * * * * * * * * * DtoSymbolAddress ('currentArg' of type 'uint') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * VarExp::toElem: index @ uint * * * * * * * * * * * * * * * * DtoSymbolAddress ('index' of type 'uint') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * type 1: %27 = load i32, i32* %currentArg * * * * * * * * * * * * * * * type 2: %28 = load i32, i32* %index42 * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(496) * * * * * * * * * * * * * * * AssignExp::toElem: currentArg = index | (uint)(uint = uint) * * * * * * * * * * * * * * * * VarExp::toElem: currentArg @ uint * * * * * * * * * * * * * * * * * DtoSymbolAddress ('currentArg' of type 'uint') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * VarExp::toElem: index @ uint * * * * * * * * * * * * * * * * * DtoSymbolAddress ('index' of type 'uint') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * lhs: %currentArg = alloca i32, align 4 * * * * * * * * * * * * * * * * * rhs: %96 = load i32, i32* %index42 * * * * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(497) * * * * * * * * * * * * * * CmpExp::toElem: precision >= 0 @ bool * * * * * * * * * * * * * * * VarExp::toElem: precision @ int * * * * * * * * * * * * * * * * DtoSymbolAddress ('precision' of type 'int') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * IntegerExp::toElem: 0 @ int * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0 @ int * * * * * * * * * * * * * * * * * value = i32 0 * * * * * * * * * * * * * * * type 1: %97 = load i32, i32* %precision44 * * * * * * * * * * * * * * * type 2: i32 0 * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(497) * * * * * * * * * * * * * * * AssignExp::toElem: spec.precision = precision | (int)(int = int) * * * * * * * * * * * * * * * * DotVarExp::toElem: spec.precision @ int * * * * * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(497) * * * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.precision: * * * * * * * * * * * * * * * * * * Value: %99 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 1 * * * * * * * * * * * * * * * * VarExp::toElem: precision @ int * * * * * * * * * * * * * * * * * DtoSymbolAddress ('precision' of type 'int') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * lhs: %99 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 1 * * * * * * * * * * * * * * * * * rhs: %100 = load i32, i32* %precision44 * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(499) * * * * * * * * * * * * * * * AssignExp::toElem: spec.precision = 2147483646 | (int)(int = int) * * * * * * * * * * * * * * * * DotVarExp::toElem: spec.precision @ int * * * * * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(499) * * * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.precision: * * * * * * * * * * * * * * * * * * Value: %101 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 1 * * * * * * * * * * * * * * * * IntegerExp::toElem: 2147483646 @ int * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 2147483646 @ int * * * * * * * * * * * * * * * * * * value = i32 2147483646 * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * lhs: %101 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 1 * * * * * * * * * * * * * * * * * rhs: i32 2147483646 * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(502) * * * * * * * * * * CmpExp::toElem: cast(int)spec.indexStart > 0 @ bool * * * * * * * * * * * CastExp::toElem: cast(int)spec.indexStart @ int * * * * * * * * * * * * DotVarExp::toElem: spec.indexStart @ ubyte * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(502) * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.indexStart: * * * * * * * * * * * * * * Value: %85 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 3 * * * * * * * * * * * * Casting from 'ubyte' to 'int' * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * IntegerExp::toElem: 0 @ int * * * * * * * * * * * * IntegerExp::toConstElem: 0 @ int * * * * * * * * * * * * * value = i32 0 * * * * * * * * * * * type 1: %87 = zext i8 %86 to i32 * * * * * * * * * * * type 2: i32 0 * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(503) * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(503) * * * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(505) * * * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(505) * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(505) * * * * * * * * * * * * * * * DeclarationExp::toElem: int __key3347 = cast(int)spec.indexStart - 1; | T=void * * * * * * * * * * * * * * * * DtoDeclarationExp: __key3347 * * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = int) * * * * * * * * * * * * * * * * * * llvm value for decl: %__key3347 = alloca i32, align 4 * * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * * AssignExp::toElem: __key3347 = cast(int)spec.indexStart - 1 | (int)(int = int) * * * * * * * * * * * * * * * * * * * VarExp::toElem: __key3347 @ int * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__key3347' of type 'int') * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * MinExp::toElem: cast(int)spec.indexStart - 1 @ int * * * * * * * * * * * * * * * * * * * * CastExp::toElem: cast(int)spec.indexStart @ int * * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: spec.indexStart @ ubyte * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(505) * * * * * * * * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.indexStart: * * * * * * * * * * * * * * * * * * * * * * * Value: %106 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 3 * * * * * * * * * * * * * * * * * * * * * Casting from 'ubyte' to 'int' * * * * * * * * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 1 @ int * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1 @ int * * * * * * * * * * * * * * * * * * * * * * value = i32 1 * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * lhs: %__key3347 = alloca i32, align 4 * * * * * * * * * * * * * * * * * * * * rhs: %109 = sub i32 %108, 1 * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(505) * * * * * * * * * * * * * * * DeclarationExp::toElem: int __limit3348 = cast(int)spec.indexEnd; | T=void * * * * * * * * * * * * * * * * DtoDeclarationExp: __limit3348 * * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = int) * * * * * * * * * * * * * * * * * * llvm value for decl: %__limit3348 = alloca i32, align 4 * * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * * AssignExp::toElem: __limit3348 = cast(int)spec.indexEnd | (int)(int = int) * * * * * * * * * * * * * * * * * * * VarExp::toElem: __limit3348 @ int * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__limit3348' of type 'int') * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * CastExp::toElem: cast(int)spec.indexEnd @ int * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: spec.indexEnd @ ubyte * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(505) * * * * * * * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.indexEnd: * * * * * * * * * * * * * * * * * * * * * * Value: %110 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 4 * * * * * * * * * * * * * * * * * * * * Casting from 'ubyte' to 'int' * * * * * * * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * lhs: %__limit3348 = alloca i32, align 4 * * * * * * * * * * * * * * * * * * * * rhs: %112 = zext i8 %111 to i32 * * * * * * * * * * * * * * ForStatement::toIR(): /usr/include/dlang/ldc/std/format.d(505) * * * * * * * * * * * * * * * CmpExp::toElem: __key3347 < __limit3348 @ bool * * * * * * * * * * * * * * * * VarExp::toElem: __key3347 @ int * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__key3347' of type 'int') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * VarExp::toElem: __limit3348 @ int * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__limit3348' of type 'int') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * type 1: %113 = load i32, i32* %__key3347 * * * * * * * * * * * * * * * * type 2: %114 = load i32, i32* %__limit3348 * * * * * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(505) * * * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(505) * * * * * * * * * * * * * * * * * DeclarationExp::toElem: int i = __key3347; | T=void * * * * * * * * * * * * * * * * * * DtoDeclarationExp: i * * * * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = int) * * * * * * * * * * * * * * * * * * * * llvm value for decl: %i = alloca i32, align 4 * * * * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * * * * AssignExp::toElem: i = __key3347 | (int)(int = int) * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: i @ int * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'int') * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: __key3347 @ int * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__key3347' of type 'int') * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * * * lhs: %i = alloca i32, align 4 * * * * * * * * * * * * * * * * * * * * * * rhs: %116 = load i32, i32* %__key3347 * * * * * * * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(507) * * * * * * * * * * * * * * * * * CmpExp::toElem: 1LU <= cast(ulong)i @ bool * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * * * * * * CastExp::toElem: cast(ulong)i @ ulong * * * * * * * * * * * * * * * * * * * VarExp::toElem: i @ int * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'int') * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * Casting from 'int' to 'ulong' * * * * * * * * * * * * * * * * * * * * cast to: i64 * * * * * * * * * * * * * * * * * * type 1: i64 1 * * * * * * * * * * * * * * * * * * type 2: %118 = sext i32 %117 to i64 * * * * * * * * * * * * * * * * * BreakStatement::toIR(): /usr/include/dlang/ldc/std/format.d(507) * * * * * * * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(508) * * * * * * * * * * * * * * * * * VarExp::toElem: __ctfe @ bool * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__ctfe' of type 'bool') * * * * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(509) * * * * * * * * * * * * * * * * * * CallExp::toElem: formatNth((LockingTextWriter __copytmp3353 = (__copytmp3353 = w).__postblit(); , __copytmp3353), spec, cast(ulong)i, _param_2) @ void * * * * * * * * * * * * * * * * * * * VarExp::toElem: formatNth @ @safe void(LockingTextWriter w, ref FormatSpec!char f, ulong index, string _param_3) * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('formatNth' of type '@safe void(LockingTextWriter w, ref FormatSpec!char f, ulong index, string _param_3)') * * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(@safe void(LockingTextWriter w, ref FormatSpec!char f, ulong index, string _param_3)) * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * * * Final function type: void ({ i64, i8* }, i64, %"std.format.FormatSpec!char.FormatSpec"*, %std.stdio.File.LockingTextWriter*) * * * * * * * * * * * * * * * * * * * * * DtoResolveFunction(std.format.formatNth!(LockingTextWriter, char, string).formatNth): /usr/include/dlang/ldc/std/format.d(3460) * * * * * * * * * * * * * * * * * * * * * * DtoDeclareFunction(std.format.formatNth!(LockingTextWriter, char, string).formatNth): /usr/include/dlang/ldc/std/format.d(3460) * * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(@safe void(LockingTextWriter w, ref FormatSpec!char f, ulong index, string _param_3)) * * * * * * * * * * * * * * * * * * * * * * * func = declare void @_D3std6format56__T9formatNthTS3std5stdio4File17LockingTextWriterTaTAyaZ9formatNthFNfS3std5stdio4File17LockingTextWriterKS3std6format18__T10FormatSpecTaZ10FormatSpecmAyaZv({ i64, i8* }, i64, %"std.format.FormatSpec!char.FormatSpec"*, %std.stdio.File.LockingTextWriter*) * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * Building type: @safe void(LockingTextWriter w, ref FormatSpec!char f, ulong index, string _param_3) * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(@safe void(LockingTextWriter w, ref FormatSpec!char f, ulong index, string _param_3)) * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * * * Final function type: void ({ i64, i8* }, i64, %"std.format.FormatSpec!char.FormatSpec"*, %std.stdio.File.LockingTextWriter*) * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * * Function type: @safe void(LockingTextWriter w, ref FormatSpec!char f, ulong index, string _param_3) * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * CommaExp::toElem: LockingTextWriter __copytmp3353 = (__copytmp3353 = w).__postblit(); , __copytmp3353 @ LockingTextWriter * * * * * * * * * * * * * * * * * * * * * * DeclarationExp::toElem: LockingTextWriter __copytmp3353 = (__copytmp3353 = w).__postblit(); | T=void * * * * * * * * * * * * * * * * * * * * * * * DtoDeclarationExp: __copytmp3353 * * * * * * * * * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = LockingTextWriter) * * * * * * * * * * * * * * * * * * * * * * * * * llvm value for decl: %__copytmp3353 = alloca %std.stdio.File.LockingTextWriter, align 8 * * * * * * * * * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * * * * * * * * * CallExp::toElem: (__copytmp3353 = w).__postblit() @ void * * * * * * * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: (__copytmp3353 = w).__postblit @ @trusted void() * * * * * * * * * * * * * * * * * * * * * * * * * * * AssignExp::toElem: __copytmp3353 = w | (LockingTextWriter)(LockingTextWriter = LockingTextWriter) * * * * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: __copytmp3353 @ LockingTextWriter * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__copytmp3353' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: w @ LockingTextWriter * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * type: LockingTextWriter * * * * * * * * * * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * * * * * * * * * * * %__copytmp3353 = alloca %std.stdio.File.LockingTextWriter, align 8 * * * * * * * * * * * * * * * * * * * * * * * * * * * Function type: @trusted void() * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: __copytmp3353 @ LockingTextWriter * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__copytmp3353' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(509) * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * CastExp::toElem: cast(ulong)i @ ulong * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: i @ int * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'int') * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * Casting from 'int' to 'ulong' * * * * * * * * * * * * * * * * * * * * * * * cast to: i64 * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: _param_2 @ string * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('_param_2' of type 'string') * * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * * type: string * * * * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(511) * * * * * * * * * * * * * * * * * * CallExp::toElem: (*funs[cast(ulong)i])((LockingTextWriter __copytmp3354 = (__copytmp3354 = w).__postblit(); , __copytmp3354), argsAddresses[cast(ulong)i], spec) @ void * * * * * * * * * * * * * * * * * * * PtrExp::toElem: *funs[cast(ulong)i] @ pure nothrow @safe void(LockingTextWriter, const(void)*, ref FormatSpec!char) * * * * * * * * * * * * * * * * * * * * IndexExp::toElem: funs[cast(ulong)i] @ void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: funs @ void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe[1] * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('funs' of type 'void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe[1]') * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * CastExp::toElem: cast(ulong)i @ ulong * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: i @ int * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'int') * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * Casting from 'int' to 'ulong' * * * * * * * * * * * * * * * * * * * * * * * cast to: i64 * * * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * * Function type: pure nothrow @safe void(LockingTextWriter, const(void)*, ref FormatSpec!char) * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * CommaExp::toElem: LockingTextWriter __copytmp3354 = (__copytmp3354 = w).__postblit(); , __copytmp3354 @ LockingTextWriter * * * * * * * * * * * * * * * * * * * * * * DeclarationExp::toElem: LockingTextWriter __copytmp3354 = (__copytmp3354 = w).__postblit(); | T=void * * * * * * * * * * * * * * * * * * * * * * * DtoDeclarationExp: __copytmp3354 * * * * * * * * * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = LockingTextWriter) * * * * * * * * * * * * * * * * * * * * * * * * * llvm value for decl: %__copytmp3354 = alloca %std.stdio.File.LockingTextWriter, align 8 * * * * * * * * * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * * * * * * * * * CallExp::toElem: (__copytmp3354 = w).__postblit() @ void * * * * * * * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: (__copytmp3354 = w).__postblit @ @trusted void() * * * * * * * * * * * * * * * * * * * * * * * * * * * AssignExp::toElem: __copytmp3354 = w | (LockingTextWriter)(LockingTextWriter = LockingTextWriter) * * * * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: __copytmp3354 @ LockingTextWriter * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__copytmp3354' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: w @ LockingTextWriter * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * type: LockingTextWriter * * * * * * * * * * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * * * * * * * * * * * %__copytmp3354 = alloca %std.stdio.File.LockingTextWriter, align 8 * * * * * * * * * * * * * * * * * * * * * * * * * * * Function type: @trusted void() * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: __copytmp3354 @ LockingTextWriter * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__copytmp3354' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * IndexExp::toElem: argsAddresses[cast(ulong)i] @ const(void)* * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: argsAddresses @ const(void)*[1] * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('argsAddresses' of type 'const(void)*[1]') * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * CastExp::toElem: cast(ulong)i @ ulong * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: i @ int * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'int') * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * Casting from 'int' to 'ulong' * * * * * * * * * * * * * * * * * * * * * * * * cast to: i64 * * * * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(511) * * * * * * * * * * * * * * * AddAssignExp::toElem: __key3347 += 1 @ int * * * * * * * * * * * * * * * * Caching l-value of __key3347 += 1 => __key3347 * * * * * * * * * * * * * * * * * VarExp::toElem: __key3347 @ int * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__key3347' of type 'int') * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * AddExp::toElem: __key3347 + 1 @ int * * * * * * * * * * * * * * * * * VarExp::toElem: __key3347 @ int * * * * * * * * * * * * * * * * * IntegerExp::toElem: 1 @ int * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1 @ int * * * * * * * * * * * * * * * * * * * value = i32 1 * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * lhs: %__key3347 = alloca i32, align 4 * * * * * * * * * * * * * * * * * rhs: %126 = add i32 %125, 1 * * * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(513) * * * * * * * * * * * * * CmpExp::toElem: currentArg < cast(uint)cast(int)spec.indexEnd @ bool * * * * * * * * * * * * * * VarExp::toElem: currentArg @ uint * * * * * * * * * * * * * * * DtoSymbolAddress ('currentArg' of type 'uint') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * CastExp::toElem: cast(uint)cast(int)spec.indexEnd @ uint * * * * * * * * * * * * * * * CastExp::toElem: cast(int)spec.indexEnd @ int * * * * * * * * * * * * * * * * DotVarExp::toElem: spec.indexEnd @ ubyte * * * * * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(513) * * * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.indexEnd: * * * * * * * * * * * * * * * * * * Value: %127 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 4 * * * * * * * * * * * * * * * * Casting from 'ubyte' to 'int' * * * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * * * * Casting from 'int' to 'uint' * * * * * * * * * * * * * * type 1: %130 = load i32, i32* %currentArg * * * * * * * * * * * * * * type 2: %129 = zext i8 %128 to i32 * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(513) * * * * * * * * * * * * * * AssignExp::toElem: currentArg = cast(uint)spec.indexEnd | (uint)(uint = uint) * * * * * * * * * * * * * * * VarExp::toElem: currentArg @ uint * * * * * * * * * * * * * * * * DtoSymbolAddress ('currentArg' of type 'uint') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * CastExp::toElem: cast(uint)spec.indexEnd @ uint * * * * * * * * * * * * * * * * DotVarExp::toElem: spec.indexEnd @ ubyte * * * * * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(513) * * * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.indexEnd: * * * * * * * * * * * * * * * * * * Value: %142 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 4 * * * * * * * * * * * * * * * * Casting from 'ubyte' to 'uint' * * * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * lhs: %currentArg = alloca i32, align 4 * * * * * * * * * * * * * * * * rhs: %144 = zext i8 %143 to i32 * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(516) * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(516) * * * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(517) * * * * * * * * * * * * * VarExp::toElem: __ctfe @ bool * * * * * * * * * * * * * * DtoSymbolAddress ('__ctfe' of type 'bool') * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(518) * * * * * * * * * * * * * * CallExp::toElem: formatNth((LockingTextWriter __copytmp3355 = (__copytmp3355 = w).__postblit(); , __copytmp3355), spec, cast(ulong)currentArg, _param_2) @ void * * * * * * * * * * * * * * * VarExp::toElem: formatNth @ @safe void(LockingTextWriter w, ref FormatSpec!char f, ulong index, string _param_3) * * * * * * * * * * * * * * * * DtoSymbolAddress ('formatNth' of type '@safe void(LockingTextWriter w, ref FormatSpec!char f, ulong index, string _param_3)') * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * Function type: @safe void(LockingTextWriter w, ref FormatSpec!char f, ulong index, string _param_3) * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * CommaExp::toElem: LockingTextWriter __copytmp3355 = (__copytmp3355 = w).__postblit(); , __copytmp3355 @ LockingTextWriter * * * * * * * * * * * * * * * * * * DeclarationExp::toElem: LockingTextWriter __copytmp3355 = (__copytmp3355 = w).__postblit(); | T=void * * * * * * * * * * * * * * * * * * * DtoDeclarationExp: __copytmp3355 * * * * * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = LockingTextWriter) * * * * * * * * * * * * * * * * * * * * * llvm value for decl: %__copytmp3355 = alloca %std.stdio.File.LockingTextWriter, align 8 * * * * * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * * * * * CallExp::toElem: (__copytmp3355 = w).__postblit() @ void * * * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: (__copytmp3355 = w).__postblit @ @trusted void() * * * * * * * * * * * * * * * * * * * * * * * AssignExp::toElem: __copytmp3355 = w | (LockingTextWriter)(LockingTextWriter = LockingTextWriter) * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: __copytmp3355 @ LockingTextWriter * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__copytmp3355' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: w @ LockingTextWriter * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * * * * * type: LockingTextWriter * * * * * * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * * * * * * * %__copytmp3355 = alloca %std.stdio.File.LockingTextWriter, align 8 * * * * * * * * * * * * * * * * * * * * * * * Function type: @trusted void() * * * * * * * * * * * * * * * * * * VarExp::toElem: __copytmp3355 @ LockingTextWriter * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__copytmp3355' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(518) * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * CastExp::toElem: cast(ulong)currentArg @ ulong * * * * * * * * * * * * * * * * * * VarExp::toElem: currentArg @ uint * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('currentArg' of type 'uint') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * Casting from 'uint' to 'ulong' * * * * * * * * * * * * * * * * * * * cast to: i64 * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * VarExp::toElem: _param_2 @ string * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('_param_2' of type 'string') * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * type: string * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(520) * * * * * * * * * * * * * * CallExp::toElem: (*funs[cast(ulong)currentArg])((LockingTextWriter __copytmp3356 = (__copytmp3356 = w).__postblit(); , __copytmp3356), argsAddresses[cast(ulong)currentArg], spec) @ void * * * * * * * * * * * * * * * PtrExp::toElem: *funs[cast(ulong)currentArg] @ pure nothrow @safe void(LockingTextWriter, const(void)*, ref FormatSpec!char) * * * * * * * * * * * * * * * * IndexExp::toElem: funs[cast(ulong)currentArg] @ void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe * * * * * * * * * * * * * * * * * VarExp::toElem: funs @ void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe[1] * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('funs' of type 'void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe[1]') * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * CastExp::toElem: cast(ulong)currentArg @ ulong * * * * * * * * * * * * * * * * * * VarExp::toElem: currentArg @ uint * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('currentArg' of type 'uint') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * Casting from 'uint' to 'ulong' * * * * * * * * * * * * * * * * * * * cast to: i64 * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * Function type: pure nothrow @safe void(LockingTextWriter, const(void)*, ref FormatSpec!char) * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * CommaExp::toElem: LockingTextWriter __copytmp3356 = (__copytmp3356 = w).__postblit(); , __copytmp3356 @ LockingTextWriter * * * * * * * * * * * * * * * * * * DeclarationExp::toElem: LockingTextWriter __copytmp3356 = (__copytmp3356 = w).__postblit(); | T=void * * * * * * * * * * * * * * * * * * * DtoDeclarationExp: __copytmp3356 * * * * * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = LockingTextWriter) * * * * * * * * * * * * * * * * * * * * * llvm value for decl: %__copytmp3356 = alloca %std.stdio.File.LockingTextWriter, align 8 * * * * * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * * * * * CallExp::toElem: (__copytmp3356 = w).__postblit() @ void * * * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: (__copytmp3356 = w).__postblit @ @trusted void() * * * * * * * * * * * * * * * * * * * * * * * AssignExp::toElem: __copytmp3356 = w | (LockingTextWriter)(LockingTextWriter = LockingTextWriter) * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: __copytmp3356 @ LockingTextWriter * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__copytmp3356' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: w @ LockingTextWriter * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * * * * * type: LockingTextWriter * * * * * * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * * * * * * * %__copytmp3356 = alloca %std.stdio.File.LockingTextWriter, align 8 * * * * * * * * * * * * * * * * * * * * * * * Function type: @trusted void() * * * * * * * * * * * * * * * * * * VarExp::toElem: __copytmp3356 @ LockingTextWriter * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__copytmp3356' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * IndexExp::toElem: argsAddresses[cast(ulong)currentArg] @ const(void)* * * * * * * * * * * * * * * * * * * VarExp::toElem: argsAddresses @ const(void)*[1] * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('argsAddresses' of type 'const(void)*[1]') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * CastExp::toElem: cast(ulong)currentArg @ ulong * * * * * * * * * * * * * * * * * * * VarExp::toElem: currentArg @ uint * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('currentArg' of type 'uint') * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * Casting from 'uint' to 'ulong' * * * * * * * * * * * * * * * * * * * * cast to: i64 * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(520) * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(521) * * * * * * * * * * * * * AddAssignExp::toElem: currentArg += 1u @ uint * * * * * * * * * * * * * * Caching l-value of currentArg += 1u => currentArg * * * * * * * * * * * * * * * VarExp::toElem: currentArg @ uint * * * * * * * * * * * * * * * * DtoSymbolAddress ('currentArg' of type 'uint') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * AddExp::toElem: currentArg + 1u @ uint * * * * * * * * * * * * * * * VarExp::toElem: currentArg @ uint * * * * * * * * * * * * * * * IntegerExp::toElem: 1u @ uint * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1u @ uint * * * * * * * * * * * * * * * * * value = i32 1 * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * lhs: %currentArg = alloca i32, align 4 * * * * * * * * * * * * * * * rhs: %155 = add i32 %154, 1 * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/format.d(524) * * * * * * * VarExp::toElem: currentArg @ uint * * * * * * * * DtoSymbolAddress ('currentArg' of type 'uint') * * * * * * * * * a normal variable * * * * * * * return value is '0x127f89e8' * TemplateInstance::codegen: 'std.format.formatGeneric!(LockingTextWriter, string, char)' * * DtoDefineFunction(std.format.formatGeneric!(LockingTextWriter, string, char).formatGeneric): /usr/include/dlang/ldc/std/format.d(3455) * * * Doing function body for: formatGeneric * * * DtoCreateNestedContext for formatGeneric * * * * DtoCreateNestedContextType for std.format.formatGeneric!(LockingTextWriter, string, char).formatGeneric * * * TryFinallyStatement::toIR(): * * * * ExpStatement::toIR(): * * * * * CallExp::toElem: w.~this() @ void * * * * * * DotVarExp::toElem: w.~this @ @trusted void() * * * * * * * VarExp::toElem: w @ LockingTextWriter * * * * * * * * DtoSymbolAddress ('w' of type 'LockingTextWriter') * * * * * * * * * function param * * * * * * * * * type: LockingTextWriter * * * * * * DtoCallFunction() * * * * * * * doing normal arguments * * * * * * * Arguments so far: (1) * * * * * * * * %std.stdio.File.LockingTextWriter* %w_arg * * * * * * * Function type: @trusted void() * * * * CompoundStatement::toIR(): * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3457) * * * * * * CallExp::toElem: formatValue((LockingTextWriter __copytmp3343 = (__copytmp3343 = w).__postblit(); , __copytmp3343), *cast(string*)arg, f) @ void * * * * * * * VarExp::toElem: formatValue @ @safe void(LockingTextWriter w, string obj, ref FormatSpec!char f) * * * * * * * * DtoSymbolAddress ('formatValue' of type '@safe void(LockingTextWriter w, string obj, ref FormatSpec!char f)') * * * * * * * * * FuncDeclaration * * * * * * * DtoCallFunction() * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (0) * * * * * * * * Function type: @safe void(LockingTextWriter w, string obj, ref FormatSpec!char f) * * * * * * * * DtoArgument * * * * * * * * * CommaExp::toElem: LockingTextWriter __copytmp3343 = (__copytmp3343 = w).__postblit(); , __copytmp3343 @ LockingTextWriter * * * * * * * * * * DeclarationExp::toElem: LockingTextWriter __copytmp3343 = (__copytmp3343 = w).__postblit(); | T=void * * * * * * * * * * * DtoDeclarationExp: __copytmp3343 * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * DtoVarDeclaration(vdtype = LockingTextWriter) * * * * * * * * * * * * * llvm value for decl: %__copytmp3343 = alloca %std.stdio.File.LockingTextWriter, align 8 * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * CallExp::toElem: (__copytmp3343 = w).__postblit() @ void * * * * * * * * * * * * * * DotVarExp::toElem: (__copytmp3343 = w).__postblit @ @trusted void() * * * * * * * * * * * * * * * AssignExp::toElem: __copytmp3343 = w | (LockingTextWriter)(LockingTextWriter = LockingTextWriter) * * * * * * * * * * * * * * * * VarExp::toElem: __copytmp3343 @ LockingTextWriter * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__copytmp3343' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * VarExp::toElem: w @ LockingTextWriter * * * * * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * type: LockingTextWriter * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * %__copytmp3343 = alloca %std.stdio.File.LockingTextWriter, align 8 * * * * * * * * * * * * * * * Function type: @trusted void() * * * * * * * * * * VarExp::toElem: __copytmp3343 @ LockingTextWriter * * * * * * * * * * * DtoSymbolAddress ('__copytmp3343' of type 'LockingTextWriter') * * * * * * * * * * * * a normal variable * * * * * * * * DtoArgument * * * * * * * * * PtrExp::toElem: *cast(string*)arg @ string * * * * * * * * * * CastExp::toElem: cast(string*)arg @ string* * * * * * * * * * * * VarExp::toElem: arg @ const(void)* * * * * * * * * * * * * DtoSymbolAddress ('arg' of type 'const(void)*') * * * * * * * * * * * * * function param * * * * * * * * * * * * * type: const(void)* * * * * * * * * * * * Casting from 'const(void)*' to 'string*' * * * * * * * * * * * * src: %3 = load i8*, i8** %arg * * * * * * * * * * * * to type: { i64, i8* }* * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: f @ FormatSpec!char * * * * * * * * * * DtoSymbolAddress ('f' of type 'FormatSpec!char') * * * * * * * * * * * function param * * * * * * * * * * * type: FormatSpec!char * TemplateInstance::codegen: 'std.format.formatValue!(LockingTextWriter, string, char)' * * DtoDefineFunction(std.format.formatValue!(LockingTextWriter, string, char).formatValue): /usr/include/dlang/ldc/std/format.d(1978) * * * Doing function body for: formatValue * * * DtoCreateNestedContext for formatValue * * * * DtoCreateNestedContextType for std.format.formatValue!(LockingTextWriter, string, char).formatValue * * * TryFinallyStatement::toIR(): * * * * ExpStatement::toIR(): * * * * * CallExp::toElem: w.~this() @ void * * * * * * DotVarExp::toElem: w.~this @ @trusted void() * * * * * * * VarExp::toElem: w @ LockingTextWriter * * * * * * * * DtoSymbolAddress ('w' of type 'LockingTextWriter') * * * * * * * * * function param * * * * * * * * * type: LockingTextWriter * * * * * * DtoCallFunction() * * * * * * * doing normal arguments * * * * * * * Arguments so far: (1) * * * * * * * * %std.stdio.File.LockingTextWriter* %w_arg * * * * * * * Function type: @trusted void() * * * * CompoundStatement::toIR(): * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1980) * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1981) * * * * * * * DeclarationExp::toElem: string val = obj; | T=void * * * * * * * * DtoDeclarationExp: val * * * * * * * * * VarDeclaration * * * * * * * * * DtoVarDeclaration(vdtype = string) * * * * * * * * * * llvm value for decl: %val = alloca { i64, i8* }, align 8 * * * * * * * * * * expression initializer * * * * * * * * * * AssignExp::toElem: val = obj | (string)(string = string) * * * * * * * * * * * VarExp::toElem: val @ string * * * * * * * * * * * * DtoSymbolAddress ('val' of type 'string') * * * * * * * * * * * * * a normal variable * * * * * * * * * * * VarExp::toElem: obj @ string * * * * * * * * * * * * DtoSymbolAddress ('obj' of type 'string') * * * * * * * * * * * * * function param * * * * * * * * * * * * * type: string * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * SetArray * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1982) * * * * * * * CallExp::toElem: formatRange(w, val, f) @ void * * * * * * * * VarExp::toElem: formatRange @ @safe void(ref LockingTextWriter w, ref string val, ref FormatSpec!char f) * * * * * * * * * DtoSymbolAddress ('formatRange' of type '@safe void(ref LockingTextWriter w, ref string val, ref FormatSpec!char f)') * * * * * * * * * * FuncDeclaration * * * * * * * * * * DtoFunctionType(@safe void(ref LockingTextWriter w, ref string val, ref FormatSpec!char f)) * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * Final function type: void (%"std.format.FormatSpec!char.FormatSpec"*, { i64, i8* }*, %std.stdio.File.LockingTextWriter*) * * * * * * * * * * DtoResolveFunction(std.format.formatRange!(LockingTextWriter, string, char).formatRange): /usr/include/dlang/ldc/std/format.d(2310) * * * * * * * * * * * DtoDeclareFunction(std.format.formatRange!(LockingTextWriter, string, char).formatRange): /usr/include/dlang/ldc/std/format.d(2310) * * * * * * * * * * * * DtoFunctionType(@safe void(ref LockingTextWriter w, ref string val, ref FormatSpec!char f)) * * * * * * * * * * * * func = declare void @_D3std6format59__T11formatRangeTS3std5stdio4File17LockingTextWriterTAyaTaZ11formatRangeFNfKS3std5stdio4File17LockingTextWriterKAyaKS3std6format18__T10FormatSpecTaZ10FormatSpecZv(%"std.format.FormatSpec!char.FormatSpec"*, { i64, i8* }*, %std.stdio.File.LockingTextWriter*) * * * * * * * * DtoCallFunction() * * * * * * * * * Building type: @safe void(ref LockingTextWriter w, ref string val, ref FormatSpec!char f) * * * * * * * * * * DtoFunctionType(@safe void(ref LockingTextWriter w, ref string val, ref FormatSpec!char f)) * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * Final function type: void (%"std.format.FormatSpec!char.FormatSpec"*, { i64, i8* }*, %std.stdio.File.LockingTextWriter*) * * * * * * * * * doing normal arguments * * * * * * * * * Arguments so far: (0) * * * * * * * * * Function type: @safe void(ref LockingTextWriter w, ref string val, ref FormatSpec!char f) * * * * * * * * * DtoArgument * * * * * * * * * * VarExp::toElem: w @ LockingTextWriter * * * * * * * * * * * DtoSymbolAddress ('w' of type 'LockingTextWriter') * * * * * * * * * * * * function param * * * * * * * * * * * * type: LockingTextWriter * * * * * * * * * DtoArgument * * * * * * * * * * VarExp::toElem: val @ string * * * * * * * * * * * DtoSymbolAddress ('val' of type 'string') * * * * * * * * * * * * a normal variable * * * * * * * * * DtoArgument * * * * * * * * * * VarExp::toElem: f @ FormatSpec!char * * * * * * * * * * * DtoSymbolAddress ('f' of type 'FormatSpec!char') * * * * * * * * * * * * function param * * * * * * * * * * * * type: FormatSpec!char * TemplateInstance::codegen: 'std.format.formatRange!(LockingTextWriter, string, char)' * * DtoDefineFunction(std.format.formatRange!(LockingTextWriter, string, char).formatRange): /usr/include/dlang/ldc/std/format.d(2310) * * * Doing function body for: formatRange * * * DtoCreateNestedContext for formatRange * * * * DtoCreateNestedContextType for std.format.formatRange!(LockingTextWriter, string, char).formatRange * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2312) * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2316) * * * * * * EqualExp::toElem: cast(int)f.spec == 115 @ bool * * * * * * * CastExp::toElem: cast(int)f.spec @ int * * * * * * * * DotVarExp::toElem: f.spec @ char * * * * * * * * * VarExp::toElem: f @ FormatSpec!char * * * * * * * * * * DtoSymbolAddress ('f' of type 'FormatSpec!char') * * * * * * * * * * * function param * * * * * * * * * * * type: FormatSpec!char * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.spec: * * * * * * * * * * Value: %1 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %f_arg, i32 0, i32 2 * * * * * * * * Casting from 'char' to 'int' * * * * * * * * * cast to: i32 * * * * * * * IntegerExp::toElem: 115 @ int * * * * * * * * IntegerExp::toConstElem: 115 @ int * * * * * * * * * value = i32 115 * * * * * * * integral or pointer or interface * * * * * * * lv: %3 = zext i8 %2 to i32 * * * * * * * rv: i32 115 * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2317) * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2317) * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2318) * * * * * * * * * DeclarationExp::toElem: alias E = dchar; | T=void * * * * * * * * * * DtoDeclarationExp: E * * * * * * * * * * * Ignoring Symbol: alias * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2324) * * * * * * * * * DeclarationExp::toElem: string s = val[0..cast(ulong)f.precision < __dollar ? cast(ulong)f.precision : __dollar]; | T=void * * * * * * * * * * DtoDeclarationExp: s * * * * * * * * * * * VarDeclaration * * * * * * * * * * * DtoVarDeclaration(vdtype = string) * * * * * * * * * * * * llvm value for decl: %s = alloca { i64, i8* }, align 8 * * * * * * * * * * * * expression initializer * * * * * * * * * * * * AssignExp::toElem: s = val[0..cast(ulong)f.precision < __dollar ? cast(ulong)f.precision : __dollar] | (string)(string = string) * * * * * * * * * * * * * VarExp::toElem: s @ string * * * * * * * * * * * * * * DtoSymbolAddress ('s' of type 'string') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * SliceExp::toElem: val[0..cast(ulong)f.precision < __dollar ? cast(ulong)f.precision : __dollar] @ string * * * * * * * * * * * * * * VarExp::toElem: val @ string * * * * * * * * * * * * * * * DtoSymbolAddress ('val' of type 'string') * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * type: string * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * * CondExp::toElem: cast(ulong)f.precision < __dollar ? cast(ulong)f.precision : __dollar @ ulong * * * * * * * * * * * * * * * CmpExp::toElem: cast(ulong)f.precision < __dollar @ bool * * * * * * * * * * * * * * * * CastExp::toElem: cast(ulong)f.precision @ ulong * * * * * * * * * * * * * * * * * DotVarExp::toElem: f.precision @ int * * * * * * * * * * * * * * * * * * VarExp::toElem: f @ FormatSpec!char * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('f' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * type: FormatSpec!char * * * * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.precision: * * * * * * * * * * * * * * * * * * * Value: %6 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %f_arg, i32 0, i32 1 * * * * * * * * * * * * * * * * * Casting from 'int' to 'ulong' * * * * * * * * * * * * * * * * * * cast to: i64 * * * * * * * * * * * * * * * * VarExp::toElem: __dollar @ ulong * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__dollar' of type 'ulong') * * * * * * * * * * * * * * * * * * Id::dollar * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * type 1: %8 = sext i32 %7 to i64 * * * * * * * * * * * * * * * * type 2: %.len = load i64, i64* %9 * * * * * * * * * * * * * * * CastExp::toElem: cast(ulong)f.precision @ ulong * * * * * * * * * * * * * * * * DotVarExp::toElem: f.precision @ int * * * * * * * * * * * * * * * * * VarExp::toElem: f @ FormatSpec!char * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('f' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * type: FormatSpec!char * * * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.precision: * * * * * * * * * * * * * * * * * * Value: %11 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %f_arg, i32 0, i32 1 * * * * * * * * * * * * * * * * Casting from 'int' to 'ulong' * * * * * * * * * * * * * * * * * cast to: i64 * * * * * * * * * * * * * * * VarExp::toElem: __dollar @ ulong * * * * * * * * * * * * * * * * DtoSymbolAddress ('__dollar' of type 'ulong') * * * * * * * * * * * * * * * * * Id::dollar * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * SetArray * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2325) * * * * * * * * * NotExp::toElem: !f.flDash() @ bool * * * * * * * * * * CallExp::toElem: f.flDash() @ bool * * * * * * * * * * * DotVarExp::toElem: f.flDash @ const pure nothrow @nogc @property @safe bool() * * * * * * * * * * * * VarExp::toElem: f @ FormatSpec!char * * * * * * * * * * * * * DtoSymbolAddress ('f' of type 'FormatSpec!char') * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * type: FormatSpec!char * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * %"std.format.FormatSpec!char.FormatSpec"* %f_arg * * * * * * * * * * * * Function type: const pure nothrow @nogc @property @safe bool() * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2326) * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2326) * * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2328) * * * * * * * * * * * * CmpExp::toElem: cast(ulong)f.width > s.length @ bool * * * * * * * * * * * * * CastExp::toElem: cast(ulong)f.width @ ulong * * * * * * * * * * * * * * DotVarExp::toElem: f.width @ int * * * * * * * * * * * * * * * VarExp::toElem: f @ FormatSpec!char * * * * * * * * * * * * * * * * DtoSymbolAddress ('f' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * type: FormatSpec!char * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.width: * * * * * * * * * * * * * * * * Value: %23 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %f_arg, i32 0, i32 0 * * * * * * * * * * * * * * Casting from 'int' to 'ulong' * * * * * * * * * * * * * * * cast to: i64 * * * * * * * * * * * * * ArrayLengthExp::toElem: s.length @ ulong * * * * * * * * * * * * * * VarExp::toElem: s @ string * * * * * * * * * * * * * * * DtoSymbolAddress ('s' of type 'string') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * type 1: %25 = sext i32 %24 to i64 * * * * * * * * * * * * * type 2: %.len7 = load i64, i64* %26 * * * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2329) * * * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2329) * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2329) * * * * * * * * * * * * * * * DeclarationExp::toElem: ulong __key3267 = 0LU; | T=void * * * * * * * * * * * * * * * * DtoDeclarationExp: __key3267 * * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * * * * * * * * * * llvm value for decl: %__key3267 = alloca i64, align 8 * * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * * AssignExp::toElem: __key3267 = 0LU | (ulong)(ulong = ulong) * * * * * * * * * * * * * * * * * * * VarExp::toElem: __key3267 @ ulong * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__key3267' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * lhs: %__key3267 = alloca i64, align 8 * * * * * * * * * * * * * * * * * * * * rhs: i64 0 * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2329) * * * * * * * * * * * * * * * DeclarationExp::toElem: ulong __limit3268 = cast(ulong)f.width - s.length; | T=void * * * * * * * * * * * * * * * * DtoDeclarationExp: __limit3268 * * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * * * * * * * * * * llvm value for decl: %__limit3268 = alloca i64, align 8 * * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * * AssignExp::toElem: __limit3268 = cast(ulong)f.width - s.length | (ulong)(ulong = ulong) * * * * * * * * * * * * * * * * * * * VarExp::toElem: __limit3268 @ ulong * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__limit3268' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * MinExp::toElem: cast(ulong)f.width - s.length @ ulong * * * * * * * * * * * * * * * * * * * * CastExp::toElem: cast(ulong)f.width @ ulong * * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: f.width @ int * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: f @ FormatSpec!char * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('f' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * * * type: FormatSpec!char * * * * * * * * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.width: * * * * * * * * * * * * * * * * * * * * * * * Value: %28 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %f_arg, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * * * Casting from 'int' to 'ulong' * * * * * * * * * * * * * * * * * * * * * * cast to: i64 * * * * * * * * * * * * * * * * * * * * ArrayLengthExp::toElem: s.length @ ulong * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: s @ string * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('s' of type 'string') * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * lhs: %__limit3268 = alloca i64, align 8 * * * * * * * * * * * * * * * * * * * * rhs: %32 = sub i64 %30, %.len10 * * * * * * * * * * * * * * ForStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2329) * * * * * * * * * * * * * * * CmpExp::toElem: __key3267 < __limit3268 @ bool * * * * * * * * * * * * * * * * VarExp::toElem: __key3267 @ ulong * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__key3267' of type 'ulong') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * VarExp::toElem: __limit3268 @ ulong * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__limit3268' of type 'ulong') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * type 1: %33 = load i64, i64* %__key3267 * * * * * * * * * * * * * * * * type 2: %34 = load i64, i64* %__limit3268 * * * * * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2329) * * * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2329) * * * * * * * * * * * * * * * * * DeclarationExp::toElem: ulong i = __key3267; | T=void * * * * * * * * * * * * * * * * * * DtoDeclarationExp: i * * * * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * * * * * * * * * * * * llvm value for decl: %i = alloca i64, align 8 * * * * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * * * * AssignExp::toElem: i = __key3267 | (ulong)(ulong = ulong) * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: i @ ulong * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: __key3267 @ ulong * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__key3267' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * * * lhs: %i = alloca i64, align 8 * * * * * * * * * * * * * * * * * * * * * * rhs: %36 = load i64, i64* %__key3267 * * * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2329) * * * * * * * * * * * * * * * * * CallExp::toElem: put(w, ' ') @ void * * * * * * * * * * * * * * * * * * VarExp::toElem: put @ nothrow @nogc @safe void(ref LockingTextWriter r, char e) * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('put' of type 'nothrow @nogc @safe void(ref LockingTextWriter r, char e)') * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * * DtoFunctionType(nothrow @nogc @safe void(ref LockingTextWriter r, char e)) * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * * Final function type: void (i8, %std.stdio.File.LockingTextWriter*) * * * * * * * * * * * * * * * * * * * * DtoResolveFunction(std.range.primitives.put!(LockingTextWriter, char).put): /usr/include/dlang/ldc/std/range/primitives.d(277) * * * * * * * * * * * * * * * * * * * * * DtoDeclareFunction(std.range.primitives.put!(LockingTextWriter, char).put): /usr/include/dlang/ldc/std/range/primitives.d(277) * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(nothrow @nogc @safe void(ref LockingTextWriter r, char e)) * * * * * * * * * * * * * * * * * * * * * * func = declare void @_D3std5range10primitives46__T3putTS3std5stdio4File17LockingTextWriterTaZ3putFNbNiNfKS3std5stdio4File17LockingTextWriteraZv(i8, %std.stdio.File.LockingTextWriter*) * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * Building type: nothrow @nogc @safe void(ref LockingTextWriter r, char e) * * * * * * * * * * * * * * * * * * * * DtoFunctionType(nothrow @nogc @safe void(ref LockingTextWriter r, char e)) * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * * Final function type: void (i8, %std.stdio.File.LockingTextWriter*) * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * Function type: nothrow @nogc @safe void(ref LockingTextWriter r, char e) * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * VarExp::toElem: w @ LockingTextWriter * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * type: LockingTextWriter * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: ' ' @ char * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: ' ' @ char * * * * * * * * * * * * * * * * * * * * * * value = i8 32 * * * * * * * * * * * * * * * AddAssignExp::toElem: __key3267 += 1LU @ ulong * * * * * * * * * * * * * * * * Caching l-value of __key3267 += 1LU => __key3267 * * * * * * * * * * * * * * * * * VarExp::toElem: __key3267 @ ulong * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__key3267' of type 'ulong') * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * AddExp::toElem: __key3267 + 1LU @ ulong * * * * * * * * * * * * * * * * * VarExp::toElem: __key3267 @ ulong * * * * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * lhs: %__key3267 = alloca i64, align 8 * * * * * * * * * * * * * * * * * rhs: %38 = add i64 %37, 1 * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2330) * * * * * * * * * * * * CallExp::toElem: put(w, s) @ void * * * * * * * * * * * * * VarExp::toElem: put @ @safe void(ref LockingTextWriter r, string e) * * * * * * * * * * * * * * DtoSymbolAddress ('put' of type '@safe void(ref LockingTextWriter r, string e)') * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * Building type: @safe void(ref LockingTextWriter r, string e) * * * * * * * * * * * * * * * DtoFunctionType(@safe void(ref LockingTextWriter r, string e)) * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * Final function type: void ({ i64, i8* }, %std.stdio.File.LockingTextWriter*) * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * Function type: @safe void(ref LockingTextWriter r, string e) * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * VarExp::toElem: w @ LockingTextWriter * * * * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * type: LockingTextWriter * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * VarExp::toElem: s @ string * * * * * * * * * * * * * * * * DtoSymbolAddress ('s' of type 'string') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2333) * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2333) * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2335) * * * * * * * * * * * * CallExp::toElem: put(w, s) @ void * * * * * * * * * * * * * VarExp::toElem: put @ @safe void(ref LockingTextWriter r, string e) * * * * * * * * * * * * * * DtoSymbolAddress ('put' of type '@safe void(ref LockingTextWriter r, string e)') * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * Function type: @safe void(ref LockingTextWriter r, string e) * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * VarExp::toElem: w @ LockingTextWriter * * * * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * type: LockingTextWriter * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * VarExp::toElem: s @ string * * * * * * * * * * * * * * * * DtoSymbolAddress ('s' of type 'string') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2336) * * * * * * * * * * * * CmpExp::toElem: cast(ulong)f.width > s.length @ bool * * * * * * * * * * * * * CastExp::toElem: cast(ulong)f.width @ ulong * * * * * * * * * * * * * * DotVarExp::toElem: f.width @ int * * * * * * * * * * * * * * * VarExp::toElem: f @ FormatSpec!char * * * * * * * * * * * * * * * * DtoSymbolAddress ('f' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * type: FormatSpec!char * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.width: * * * * * * * * * * * * * * * * Value: %29 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %f_arg, i32 0, i32 0 * * * * * * * * * * * * * * Casting from 'int' to 'ulong' * * * * * * * * * * * * * * * cast to: i64 * * * * * * * * * * * * * ArrayLengthExp::toElem: s.length @ ulong * * * * * * * * * * * * * * VarExp::toElem: s @ string * * * * * * * * * * * * * * * DtoSymbolAddress ('s' of type 'string') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * type 1: %31 = sext i32 %30 to i64 * * * * * * * * * * * * * type 2: %.len11 = load i64, i64* %32 * * * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2337) * * * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2337) * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2337) * * * * * * * * * * * * * * * DeclarationExp::toElem: ulong __key3269 = 0LU; | T=void * * * * * * * * * * * * * * * * DtoDeclarationExp: __key3269 * * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * * * * * * * * * * llvm value for decl: %__key3269 = alloca i64, align 8 * * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * * AssignExp::toElem: __key3269 = 0LU | (ulong)(ulong = ulong) * * * * * * * * * * * * * * * * * * * VarExp::toElem: __key3269 @ ulong * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__key3269' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * lhs: %__key3269 = alloca i64, align 8 * * * * * * * * * * * * * * * * * * * * rhs: i64 0 * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2337) * * * * * * * * * * * * * * * DeclarationExp::toElem: ulong __limit3270 = cast(ulong)f.width - s.length; | T=void * * * * * * * * * * * * * * * * DtoDeclarationExp: __limit3270 * * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * * * * * * * * * * llvm value for decl: %__limit3270 = alloca i64, align 8 * * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * * AssignExp::toElem: __limit3270 = cast(ulong)f.width - s.length | (ulong)(ulong = ulong) * * * * * * * * * * * * * * * * * * * VarExp::toElem: __limit3270 @ ulong * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__limit3270' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * MinExp::toElem: cast(ulong)f.width - s.length @ ulong * * * * * * * * * * * * * * * * * * * * CastExp::toElem: cast(ulong)f.width @ ulong * * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: f.width @ int * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: f @ FormatSpec!char * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('f' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * * * type: FormatSpec!char * * * * * * * * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.width: * * * * * * * * * * * * * * * * * * * * * * * Value: %46 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %f_arg, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * * * Casting from 'int' to 'ulong' * * * * * * * * * * * * * * * * * * * * * * cast to: i64 * * * * * * * * * * * * * * * * * * * * ArrayLengthExp::toElem: s.length @ ulong * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: s @ string * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('s' of type 'string') * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * lhs: %__limit3270 = alloca i64, align 8 * * * * * * * * * * * * * * * * * * * * rhs: %50 = sub i64 %48, %.len14 * * * * * * * * * * * * * * ForStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2337) * * * * * * * * * * * * * * * CmpExp::toElem: __key3269 < __limit3270 @ bool * * * * * * * * * * * * * * * * VarExp::toElem: __key3269 @ ulong * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__key3269' of type 'ulong') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * VarExp::toElem: __limit3270 @ ulong * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__limit3270' of type 'ulong') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * type 1: %51 = load i64, i64* %__key3269 * * * * * * * * * * * * * * * * type 2: %52 = load i64, i64* %__limit3270 * * * * * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2337) * * * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2337) * * * * * * * * * * * * * * * * * DeclarationExp::toElem: ulong i = __key3269; | T=void * * * * * * * * * * * * * * * * * * DtoDeclarationExp: i * * * * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * * * * * * * * * * * * llvm value for decl: %i19 = alloca i64, align 8 * * * * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * * * * AssignExp::toElem: i = __key3269 | (ulong)(ulong = ulong) * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: i @ ulong * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: __key3269 @ ulong * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__key3269' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * * * lhs: %i19 = alloca i64, align 8 * * * * * * * * * * * * * * * * * * * * * * rhs: %54 = load i64, i64* %__key3269 * * * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2337) * * * * * * * * * * * * * * * * * CallExp::toElem: put(w, ' ') @ void * * * * * * * * * * * * * * * * * * VarExp::toElem: put @ nothrow @nogc @safe void(ref LockingTextWriter r, char e) * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('put' of type 'nothrow @nogc @safe void(ref LockingTextWriter r, char e)') * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * Function type: nothrow @nogc @safe void(ref LockingTextWriter r, char e) * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * VarExp::toElem: w @ LockingTextWriter * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * type: LockingTextWriter * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: ' ' @ char * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: ' ' @ char * * * * * * * * * * * * * * * * * * * * * * value = i8 32 * * * * * * * * * * * * * * * AddAssignExp::toElem: __key3269 += 1LU @ ulong * * * * * * * * * * * * * * * * Caching l-value of __key3269 += 1LU => __key3269 * * * * * * * * * * * * * * * * * VarExp::toElem: __key3269 @ ulong * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__key3269' of type 'ulong') * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * AddExp::toElem: __key3269 + 1LU @ ulong * * * * * * * * * * * * * * * * * VarExp::toElem: __key3269 @ ulong * * * * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * lhs: %__key3269 = alloca i64, align 8 * * * * * * * * * * * * * * * * * rhs: %56 = add i64 %55, 1 * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2421) * * * * * * * EqualExp::toElem: cast(int)f.spec == 114 @ bool * * * * * * * * CastExp::toElem: cast(int)f.spec @ int * * * * * * * * * DotVarExp::toElem: f.spec @ char * * * * * * * * * * VarExp::toElem: f @ FormatSpec!char * * * * * * * * * * * DtoSymbolAddress ('f' of type 'FormatSpec!char') * * * * * * * * * * * * function param * * * * * * * * * * * * type: FormatSpec!char * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.spec: * * * * * * * * * * * Value: %11 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %f_arg, i32 0, i32 2 * * * * * * * * * Casting from 'char' to 'int' * * * * * * * * * * cast to: i32 * * * * * * * * IntegerExp::toElem: 114 @ int * * * * * * * * * IntegerExp::toConstElem: 114 @ int * * * * * * * * * * value = i32 114 * * * * * * * * integral or pointer or interface * * * * * * * * lv: %13 = zext i8 %12 to i32 * * * * * * * * rv: i32 114 * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2422) * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2422) * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2425) * * * * * * * * * * DeclarationExp::toElem: alias ARR = string; | T=void * * * * * * * * * * * DtoDeclarationExp: ARR * * * * * * * * * * * * Ignoring Symbol: alias * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2426) * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2426) * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2426) * * * * * * * * * * * * DeclarationExp::toElem: string __aggr3271 = val[]; | T=void * * * * * * * * * * * * * DtoDeclarationExp: __aggr3271 * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = string) * * * * * * * * * * * * * * * llvm value for decl: %__aggr3271 = alloca { i64, i8* }, align 8 * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * AssignExp::toElem: __aggr3271 = val[] | (string)(string = string) * * * * * * * * * * * * * * * * VarExp::toElem: __aggr3271 @ string * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__aggr3271' of type 'string') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * SliceExp::toElem: val[] @ string * * * * * * * * * * * * * * * * * VarExp::toElem: val @ string * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('val' of type 'string') * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * type: string * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * SetArray * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2426) * * * * * * * * * * * * DeclarationExp::toElem: ulong __key3272 = 0LU; | T=void * * * * * * * * * * * * * DtoDeclarationExp: __key3272 * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * * * * * * * llvm value for decl: %__key3272 = alloca i64, align 8 * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * AssignExp::toElem: __key3272 = 0LU | (ulong)(ulong = ulong) * * * * * * * * * * * * * * * * VarExp::toElem: __key3272 @ ulong * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__key3272' of type 'ulong') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * lhs: %__key3272 = alloca i64, align 8 * * * * * * * * * * * * * * * * * rhs: i64 0 * * * * * * * * * * * ForStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2426) * * * * * * * * * * * * CmpExp::toElem: __key3272 < __aggr3271.length @ bool * * * * * * * * * * * * * VarExp::toElem: __key3272 @ ulong * * * * * * * * * * * * * * DtoSymbolAddress ('__key3272' of type 'ulong') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * ArrayLengthExp::toElem: __aggr3271.length @ ulong * * * * * * * * * * * * * * VarExp::toElem: __aggr3271 @ string * * * * * * * * * * * * * * * DtoSymbolAddress ('__aggr3271' of type 'string') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * type 1: %66 = load i64, i64* %__key3272 * * * * * * * * * * * * * type 2: %.len29 = load i64, i64* %65 * * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2426) * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2426) * * * * * * * * * * * * * * DeclarationExp::toElem: immutable immutable(char) e = __aggr3271[__key3272]; | T=void * * * * * * * * * * * * * * * DtoDeclarationExp: e * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = immutable(char)) * * * * * * * * * * * * * * * * * llvm value for decl: %e = alloca i8, align 1 * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * AssignExp::toElem: e = __aggr3271[__key3272] | (immutable(char))(immutable(char) = immutable(char)) * * * * * * * * * * * * * * * * * * VarExp::toElem: e @ immutable(char) * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('e' of type 'immutable(char)') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * IndexExp::toElem: __aggr3271[__key3272] @ immutable(char) * * * * * * * * * * * * * * * * * * * VarExp::toElem: __aggr3271 @ string * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__aggr3271' of type 'string') * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * VarExp::toElem: __key3272 @ ulong * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__key3272' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * lhs: %e = alloca i8, align 1 * * * * * * * * * * * * * * * * * * * rhs: %73 = load i8, i8* %72 * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2428) * * * * * * * * * * * * * * CallExp::toElem: formatValue((LockingTextWriter __copytmp3292 = (__copytmp3292 = w).__postblit(); , __copytmp3292), e, f) @ void * * * * * * * * * * * * * * * VarExp::toElem: formatValue @ @safe void(LockingTextWriter w, immutable(char) obj, ref FormatSpec!char f) * * * * * * * * * * * * * * * * DtoSymbolAddress ('formatValue' of type '@safe void(LockingTextWriter w, immutable(char) obj, ref FormatSpec!char f)') * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * DtoFunctionType(@safe void(LockingTextWriter w, immutable(char) obj, ref FormatSpec!char f)) * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * Final function type: void (%"std.format.FormatSpec!char.FormatSpec"*, i8, %std.stdio.File.LockingTextWriter*) * * * * * * * * * * * * * * * * * DtoResolveFunction(std.format.formatValue!(LockingTextWriter, immutable(char), char).formatValue): /usr/include/dlang/ldc/std/format.d(1905) * * * * * * * * * * * * * * * * * * DtoDeclareFunction(std.format.formatValue!(LockingTextWriter, immutable(char), char).formatValue): /usr/include/dlang/ldc/std/format.d(1905) * * * * * * * * * * * * * * * * * * * DtoFunctionType(@safe void(LockingTextWriter w, immutable(char) obj, ref FormatSpec!char f)) * * * * * * * * * * * * * * * * * * * func = declare void @_D3std6format58__T11formatValueTS3std5stdio4File17LockingTextWriterTyaTaZ11formatValueFNfS3std5stdio4File17LockingTextWriteryaKS3std6format18__T10FormatSpecTaZ10FormatSpecZv(%"std.format.FormatSpec!char.FormatSpec"*, i8, %std.stdio.File.LockingTextWriter*) * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * Building type: @safe void(LockingTextWriter w, immutable(char) obj, ref FormatSpec!char f) * * * * * * * * * * * * * * * * * DtoFunctionType(@safe void(LockingTextWriter w, immutable(char) obj, ref FormatSpec!char f)) * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * Final function type: void (%"std.format.FormatSpec!char.FormatSpec"*, i8, %std.stdio.File.LockingTextWriter*) * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * Function type: @safe void(LockingTextWriter w, immutable(char) obj, ref FormatSpec!char f) * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * CommaExp::toElem: LockingTextWriter __copytmp3292 = (__copytmp3292 = w).__postblit(); , __copytmp3292 @ LockingTextWriter * * * * * * * * * * * * * * * * * * DeclarationExp::toElem: LockingTextWriter __copytmp3292 = (__copytmp3292 = w).__postblit(); | T=void * * * * * * * * * * * * * * * * * * * DtoDeclarationExp: __copytmp3292 * * * * * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = LockingTextWriter) * * * * * * * * * * * * * * * * * * * * * llvm value for decl: %__copytmp3292 = alloca %std.stdio.File.LockingTextWriter, align 8 * * * * * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * * * * * CallExp::toElem: (__copytmp3292 = w).__postblit() @ void * * * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: (__copytmp3292 = w).__postblit @ @trusted void() * * * * * * * * * * * * * * * * * * * * * * * AssignExp::toElem: __copytmp3292 = w | (LockingTextWriter)(LockingTextWriter = LockingTextWriter) * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: __copytmp3292 @ LockingTextWriter * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__copytmp3292' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: w @ LockingTextWriter * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * * * * * type: LockingTextWriter * * * * * * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * * * * * * * %__copytmp3292 = alloca %std.stdio.File.LockingTextWriter, align 8 * * * * * * * * * * * * * * * * * * * * * * * Function type: @trusted void() * * * * * * * * * * * * * * * * * * VarExp::toElem: __copytmp3292 @ LockingTextWriter * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__copytmp3292' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * VarExp::toElem: e @ immutable(char) * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('e' of type 'immutable(char)') * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * VarExp::toElem: f @ FormatSpec!char * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('f' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * type: FormatSpec!char * * * * * * * * * * * * AddAssignExp::toElem: __key3272 += 1LU @ ulong * * * * * * * * * * * * * Caching l-value of __key3272 += 1LU => __key3272 * * * * * * * * * * * * * * VarExp::toElem: __key3272 @ ulong * * * * * * * * * * * * * * * DtoSymbolAddress ('__key3272' of type 'ulong') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * AddExp::toElem: __key3272 + 1LU @ ulong * * * * * * * * * * * * * * VarExp::toElem: __key3272 @ ulong * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * lhs: %__key3272 = alloca i64, align 8 * * * * * * * * * * * * * * rhs: %71 = add i64 %70, 1 * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2439) * * * * * * * * EqualExp::toElem: cast(int)f.spec == 40 @ bool * * * * * * * * * CastExp::toElem: cast(int)f.spec @ int * * * * * * * * * * DotVarExp::toElem: f.spec @ char * * * * * * * * * * * VarExp::toElem: f @ FormatSpec!char * * * * * * * * * * * * DtoSymbolAddress ('f' of type 'FormatSpec!char') * * * * * * * * * * * * * function param * * * * * * * * * * * * * type: FormatSpec!char * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.spec: * * * * * * * * * * * * Value: %65 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %f_arg, i32 0, i32 2 * * * * * * * * * * Casting from 'char' to 'int' * * * * * * * * * * * cast to: i32 * * * * * * * * * IntegerExp::toElem: 40 @ int * * * * * * * * * * IntegerExp::toConstElem: 40 @ int * * * * * * * * * * * value = i32 40 * * * * * * * * * integral or pointer or interface * * * * * * * * * lv: %67 = zext i8 %66 to i32 * * * * * * * * * rv: i32 40 * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2440) * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2440) * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2441) * * * * * * * * * * * CallExp::toElem: empty(val) @ bool * * * * * * * * * * * * VarExp::toElem: empty @ pure nothrow @nogc @property @safe bool(const(char[]) a) * * * * * * * * * * * * * DtoSymbolAddress ('empty' of type 'pure nothrow @nogc @property @safe bool(const(char[]) a)') * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * Function type: pure nothrow @nogc @property @safe bool(const(char[]) a) * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * VarExp::toElem: val @ const(char[]) * * * * * * * * * * * * * * * DtoSymbolAddress ('val' of type 'string') * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * type: string * * * * * * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2442) * * * * * * * * * * ForStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2444) * * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2445) * * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2445) * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2446) * * * * * * * * * * * * * * DeclarationExp::toElem: FormatSpec!char fmt = fmt = FormatSpec , fmt.this(f.nested); | T=void * * * * * * * * * * * * * * * DtoDeclarationExp: fmt * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = FormatSpec!char) * * * * * * * * * * * * * * * * * llvm value for decl: %fmt = alloca %"std.format.FormatSpec!char.FormatSpec", align 8 * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * CommaExp::toElem: fmt = FormatSpec , fmt.this(f.nested) @ FormatSpec!char * * * * * * * * * * * * * * * * * * AssignExp::toElem: fmt = FormatSpec | (FormatSpec!char)(FormatSpec!char = FormatSpec!char) * * * * * * * * * * * * * * * * * * * VarExp::toElem: fmt @ FormatSpec!char * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('fmt' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * VarExp::toElem: FormatSpec @ FormatSpec!char * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('FormatSpec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * * * * Sym: type=FormatSpec!char * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * CallExp::toElem: fmt.this(f.nested) @ FormatSpec!char * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: fmt.this @ pure nothrow @nogc ref @safe FormatSpec!char(const(char[]) fmt) * * * * * * * * * * * * * * * * * * * * VarExp::toElem: fmt @ FormatSpec!char * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('fmt' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * * * * %fmt = alloca %"std.format.FormatSpec!char.FormatSpec", align 8 * * * * * * * * * * * * * * * * * * * * Function type: pure nothrow @nogc ref @safe FormatSpec!char(const(char[]) fmt) * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: f.nested @ const(char[]) * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: f @ FormatSpec!char * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('f' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * * * type: FormatSpec!char * * * * * * * * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.nested: * * * * * * * * * * * * * * * * * * * * * * * Value: %86 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %f_arg, i32 0, i32 7 * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2447) * * * * * * * * * * * * * * CallExp::toElem: fmt.writeUpToNextSpec((LockingTextWriter __copytmp3293 = (__copytmp3293 = w).__postblit(); , __copytmp3293)) @ bool * * * * * * * * * * * * * * * DotVarExp::toElem: fmt.writeUpToNextSpec @ @safe bool(LockingTextWriter writer) * * * * * * * * * * * * * * * * VarExp::toElem: fmt @ FormatSpec!char * * * * * * * * * * * * * * * * * DtoSymbolAddress ('fmt' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * %fmt = alloca %"std.format.FormatSpec!char.FormatSpec", align 8 * * * * * * * * * * * * * * * * Function type: @safe bool(LockingTextWriter writer) * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * CommaExp::toElem: LockingTextWriter __copytmp3293 = (__copytmp3293 = w).__postblit(); , __copytmp3293 @ LockingTextWriter * * * * * * * * * * * * * * * * * * DeclarationExp::toElem: LockingTextWriter __copytmp3293 = (__copytmp3293 = w).__postblit(); | T=void * * * * * * * * * * * * * * * * * * * DtoDeclarationExp: __copytmp3293 * * * * * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = LockingTextWriter) * * * * * * * * * * * * * * * * * * * * * llvm value for decl: %__copytmp3293 = alloca %std.stdio.File.LockingTextWriter, align 8 * * * * * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * * * * * CallExp::toElem: (__copytmp3293 = w).__postblit() @ void * * * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: (__copytmp3293 = w).__postblit @ @trusted void() * * * * * * * * * * * * * * * * * * * * * * * AssignExp::toElem: __copytmp3293 = w | (LockingTextWriter)(LockingTextWriter = LockingTextWriter) * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: __copytmp3293 @ LockingTextWriter * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__copytmp3293' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: w @ LockingTextWriter * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * * * * * type: LockingTextWriter * * * * * * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * * * * * * * %__copytmp3293 = alloca %std.stdio.File.LockingTextWriter, align 8 * * * * * * * * * * * * * * * * * * * * * * * Function type: @trusted void() * * * * * * * * * * * * * * * * * * VarExp::toElem: __copytmp3293 @ LockingTextWriter * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__copytmp3293' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2448) * * * * * * * * * * * * * * CallExp::toElem: f.flDash() @ bool * * * * * * * * * * * * * * * DotVarExp::toElem: f.flDash @ const pure nothrow @nogc @property @safe bool() * * * * * * * * * * * * * * * * VarExp::toElem: f @ FormatSpec!char * * * * * * * * * * * * * * * * * DtoSymbolAddress ('f' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * type: FormatSpec!char * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * %"std.format.FormatSpec!char.FormatSpec"* %f_arg * * * * * * * * * * * * * * * * Function type: const pure nothrow @nogc @property @safe bool() * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2449) * * * * * * * * * * * * * * * CommaExp::toElem: bool __gate3306 = false; , (LockingTextWriter __pfx3307 = (__pfx3307 = w).__postblit(); ) , (dchar __pfy3308 = front(val); ) , __gate3306 = true , formatValue(__pfx3307, __pfy3308, fmt) @ void * * * * * * * * * * * * * * * * CommaExp::toElem: bool __gate3306 = false; , (LockingTextWriter __pfx3307 = (__pfx3307 = w).__postblit(); ) , (dchar __pfy3308 = front(val); ) , __gate3306 = true @ bool * * * * * * * * * * * * * * * * * CommaExp::toElem: bool __gate3306 = false; , (LockingTextWriter __pfx3307 = (__pfx3307 = w).__postblit(); ) , (dchar __pfy3308 = front(val); ) @ void * * * * * * * * * * * * * * * * * * CommaExp::toElem: bool __gate3306 = false; , (LockingTextWriter __pfx3307 = (__pfx3307 = w).__postblit(); ) @ void * * * * * * * * * * * * * * * * * * * DeclarationExp::toElem: bool __gate3306 = false; | T=void * * * * * * * * * * * * * * * * * * * * DtoDeclarationExp: __gate3306 * * * * * * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = bool) * * * * * * * * * * * * * * * * * * * * * * llvm value for decl: %__gate3306 = alloca i8, align 1 * * * * * * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * * * * * * AssignExp::toElem: __gate3306 = false | (bool)(bool = bool) * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: __gate3306 @ bool * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__gate3306' of type 'bool') * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: false @ bool * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: false @ bool * * * * * * * * * * * * * * * * * * * * * * * * * value = i1 false * * * * * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * DeclarationExp::toElem: LockingTextWriter __pfx3307 = (__pfx3307 = w).__postblit(); | T=void * * * * * * * * * * * * * * * * * * * * DtoDeclarationExp: __pfx3307 * * * * * * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = LockingTextWriter) * * * * * * * * * * * * * * * * * * * * * * llvm value for decl: %__pfx3307 = alloca %std.stdio.File.LockingTextWriter, align 8 * * * * * * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * * * * * * CallExp::toElem: (__pfx3307 = w).__postblit() @ void * * * * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: (__pfx3307 = w).__postblit @ @trusted void() * * * * * * * * * * * * * * * * * * * * * * * * AssignExp::toElem: __pfx3307 = w | (LockingTextWriter)(LockingTextWriter = LockingTextWriter) * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: __pfx3307 @ LockingTextWriter * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__pfx3307' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: w @ LockingTextWriter * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * * * * * * type: LockingTextWriter * * * * * * * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * * * * * * * * %__pfx3307 = alloca %std.stdio.File.LockingTextWriter, align 8 * * * * * * * * * * * * * * * * * * * * * * * * Function type: @trusted void() * * * * * * * * * * * * * * * * * * * * OrOrExp::toElem: __gate3306 || __pfx3307.~this() @ void * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: __gate3306 @ bool * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__gate3306' of type 'bool') * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * CallExp::toElem: __pfx3307.~this() @ void * * * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: __pfx3307.~this @ @trusted void() * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: __pfx3307 @ LockingTextWriter * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__pfx3307' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * * * * * * * %__pfx3307 = alloca %std.stdio.File.LockingTextWriter, align 8 * * * * * * * * * * * * * * * * * * * * * * * Function type: @trusted void() * * * * * * * * * * * * * * * * * * DeclarationExp::toElem: dchar __pfy3308 = front(val); | T=void * * * * * * * * * * * * * * * * * * * DtoDeclarationExp: __pfy3308 * * * * * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = dchar) * * * * * * * * * * * * * * * * * * * * * llvm value for decl: %__pfy3308 = alloca i32, align 4 * * * * * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * * * * * AssignExp::toElem: __pfy3308 = front(val) | (dchar)(dchar = dchar) * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: __pfy3308 @ dchar * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__pfy3308' of type 'dchar') * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * CallExp::toElem: front(val) @ dchar * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: front @ pure @property @safe dchar(string a) * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('front' of type 'pure @property @safe dchar(string a)') * * * * * * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * * * * * * Function type: pure @property @safe dchar(string a) * * * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: val @ string * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('val' of type 'string') * * * * * * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * * * * * * type: string * * * * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * * * * lhs: %__pfy3308 = alloca i32, align 4 * * * * * * * * * * * * * * * * * * * * * * * rhs: %96 = invoke i32 @_D3std5range10primitives13__T5frontTyaZ5frontFNaNdNfAyaZw({ i64, i8* } %95) to label %postinvoke unwind label %landingPad * * * * * * * * * * * * * * * * * AssignExp::toElem: __gate3306 = true | (bool)(bool = bool) * * * * * * * * * * * * * * * * * * VarExp::toElem: __gate3306 @ bool * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__gate3306' of type 'bool') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * IntegerExp::toElem: true @ bool * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: true @ bool * * * * * * * * * * * * * * * * * * * * value = i1 true * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * CallExp::toElem: formatValue(__pfx3307, __pfy3308, fmt) @ void * * * * * * * * * * * * * * * * * VarExp::toElem: formatValue @ @safe void(LockingTextWriter w, dchar obj, ref FormatSpec!char f) * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('formatValue' of type '@safe void(LockingTextWriter w, dchar obj, ref FormatSpec!char f)') * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * DtoFunctionType(@safe void(LockingTextWriter w, dchar obj, ref FormatSpec!char f)) * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * Final function type: void (%"std.format.FormatSpec!char.FormatSpec"*, i32, %std.stdio.File.LockingTextWriter*) * * * * * * * * * * * * * * * * * * * DtoResolveFunction(std.format.formatValue!(LockingTextWriter, dchar, char).formatValue): /usr/include/dlang/ldc/std/format.d(1905) * * * * * * * * * * * * * * * * * * * * DtoDeclareFunction(std.format.formatValue!(LockingTextWriter, dchar, char).formatValue): /usr/include/dlang/ldc/std/format.d(1905) * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(@safe void(LockingTextWriter w, dchar obj, ref FormatSpec!char f)) * * * * * * * * * * * * * * * * * * * * * func = declare void @_D3std6format57__T11formatValueTS3std5stdio4File17LockingTextWriterTwTaZ11formatValueFNfS3std5stdio4File17LockingTextWriterwKS3std6format18__T10FormatSpecTaZ10FormatSpecZv(%"std.format.FormatSpec!char.FormatSpec"*, i32, %std.stdio.File.LockingTextWriter*) * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * Building type: @safe void(LockingTextWriter w, dchar obj, ref FormatSpec!char f) * * * * * * * * * * * * * * * * * * * DtoFunctionType(@safe void(LockingTextWriter w, dchar obj, ref FormatSpec!char f)) * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * Final function type: void (%"std.format.FormatSpec!char.FormatSpec"*, i32, %std.stdio.File.LockingTextWriter*) * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * Function type: @safe void(LockingTextWriter w, dchar obj, ref FormatSpec!char f) * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * VarExp::toElem: __pfx3307 @ LockingTextWriter * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__pfx3307' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * VarExp::toElem: __pfy3308 @ dchar * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__pfy3308' of type 'dchar') * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * VarExp::toElem: fmt @ FormatSpec!char * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('fmt' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2451) * * * * * * * * * * * * * * * CommaExp::toElem: bool __gate3340 = false; , (LockingTextWriter __pfx3341 = (__pfx3341 = w).__postblit(); ) , (dchar __pfy3342 = front(val); ) , __gate3340 = true , formatElement(__pfx3341, __pfy3342, fmt) @ void * * * * * * * * * * * * * * * * CommaExp::toElem: bool __gate3340 = false; , (LockingTextWriter __pfx3341 = (__pfx3341 = w).__postblit(); ) , (dchar __pfy3342 = front(val); ) , __gate3340 = true @ bool * * * * * * * * * * * * * * * * * CommaExp::toElem: bool __gate3340 = false; , (LockingTextWriter __pfx3341 = (__pfx3341 = w).__postblit(); ) , (dchar __pfy3342 = front(val); ) @ void * * * * * * * * * * * * * * * * * * CommaExp::toElem: bool __gate3340 = false; , (LockingTextWriter __pfx3341 = (__pfx3341 = w).__postblit(); ) @ void * * * * * * * * * * * * * * * * * * * DeclarationExp::toElem: bool __gate3340 = false; | T=void * * * * * * * * * * * * * * * * * * * * DtoDeclarationExp: __gate3340 * * * * * * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = bool) * * * * * * * * * * * * * * * * * * * * * * llvm value for decl: %__gate3340 = alloca i8, align 1 * * * * * * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * * * * * * AssignExp::toElem: __gate3340 = false | (bool)(bool = bool) * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: __gate3340 @ bool * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__gate3340' of type 'bool') * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: false @ bool * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: false @ bool * * * * * * * * * * * * * * * * * * * * * * * * * value = i1 false * * * * * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * DeclarationExp::toElem: LockingTextWriter __pfx3341 = (__pfx3341 = w).__postblit(); | T=void * * * * * * * * * * * * * * * * * * * * DtoDeclarationExp: __pfx3341 * * * * * * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = LockingTextWriter) * * * * * * * * * * * * * * * * * * * * * * llvm value for decl: %__pfx3341 = alloca %std.stdio.File.LockingTextWriter, align 8 * * * * * * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * * * * * * CallExp::toElem: (__pfx3341 = w).__postblit() @ void * * * * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: (__pfx3341 = w).__postblit @ @trusted void() * * * * * * * * * * * * * * * * * * * * * * * * AssignExp::toElem: __pfx3341 = w | (LockingTextWriter)(LockingTextWriter = LockingTextWriter) * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: __pfx3341 @ LockingTextWriter * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__pfx3341' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: w @ LockingTextWriter * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * * * * * * type: LockingTextWriter * * * * * * * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * * * * * * * * %__pfx3341 = alloca %std.stdio.File.LockingTextWriter, align 8 * * * * * * * * * * * * * * * * * * * * * * * * Function type: @trusted void() * * * * * * * * * * * * * * * * * * * * OrOrExp::toElem: __gate3340 || __pfx3341.~this() @ void * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: __gate3340 @ bool * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__gate3340' of type 'bool') * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * CallExp::toElem: __pfx3341.~this() @ void * * * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: __pfx3341.~this @ @trusted void() * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: __pfx3341 @ LockingTextWriter * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__pfx3341' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * * * * * * * %__pfx3341 = alloca %std.stdio.File.LockingTextWriter, align 8 * * * * * * * * * * * * * * * * * * * * * * * Function type: @trusted void() * * * * * * * * * * * * * * * * * * DeclarationExp::toElem: dchar __pfy3342 = front(val); | T=void * * * * * * * * * * * * * * * * * * * DtoDeclarationExp: __pfy3342 * * * * * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = dchar) * * * * * * * * * * * * * * * * * * * * * llvm value for decl: %__pfy3342 = alloca i32, align 4 * * * * * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * * * * * AssignExp::toElem: __pfy3342 = front(val) | (dchar)(dchar = dchar) * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: __pfy3342 @ dchar * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__pfy3342' of type 'dchar') * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * CallExp::toElem: front(val) @ dchar * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: front @ pure @property @safe dchar(string a) * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('front' of type 'pure @property @safe dchar(string a)') * * * * * * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * * * * * * Function type: pure @property @safe dchar(string a) * * * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: val @ string * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('val' of type 'string') * * * * * * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * * * * * * type: string * * * * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * * * * lhs: %__pfy3342 = alloca i32, align 4 * * * * * * * * * * * * * * * * * * * * * * * rhs: %100 = invoke i32 @_D3std5range10primitives13__T5frontTyaZ5frontFNaNdNfAyaZw({ i64, i8* } %99) to label %postinvoke50 unwind label %landingPad49 * * * * * * * * * * * * * * * * * AssignExp::toElem: __gate3340 = true | (bool)(bool = bool) * * * * * * * * * * * * * * * * * * VarExp::toElem: __gate3340 @ bool * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__gate3340' of type 'bool') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * IntegerExp::toElem: true @ bool * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: true @ bool * * * * * * * * * * * * * * * * * * * * value = i1 true * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * CallExp::toElem: formatElement(__pfx3341, __pfy3342, fmt) @ void * * * * * * * * * * * * * * * * * VarExp::toElem: formatElement @ @safe void(LockingTextWriter w, dchar val, ref FormatSpec!char f) * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('formatElement' of type '@safe void(LockingTextWriter w, dchar val, ref FormatSpec!char f)') * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * DtoFunctionType(@safe void(LockingTextWriter w, dchar val, ref FormatSpec!char f)) * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * Final function type: void (%"std.format.FormatSpec!char.FormatSpec"*, i32, %std.stdio.File.LockingTextWriter*) * * * * * * * * * * * * * * * * * * * DtoResolveFunction(std.format.formatElement!(LockingTextWriter, dchar, char).formatElement): /usr/include/dlang/ldc/std/format.d(2596) * * * * * * * * * * * * * * * * * * * * DtoDeclareFunction(std.format.formatElement!(LockingTextWriter, dchar, char).formatElement): /usr/include/dlang/ldc/std/format.d(2596) * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(@safe void(LockingTextWriter w, dchar val, ref FormatSpec!char f)) * * * * * * * * * * * * * * * * * * * * * func = declare void @_D3std6format59__T13formatElementTS3std5stdio4File17LockingTextWriterTwTaZ13formatElementFNfS3std5stdio4File17LockingTextWriterwKS3std6format18__T10FormatSpecTaZ10FormatSpecZv(%"std.format.FormatSpec!char.FormatSpec"*, i32, %std.stdio.File.LockingTextWriter*) * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * Building type: @safe void(LockingTextWriter w, dchar val, ref FormatSpec!char f) * * * * * * * * * * * * * * * * * * * DtoFunctionType(@safe void(LockingTextWriter w, dchar val, ref FormatSpec!char f)) * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * Final function type: void (%"std.format.FormatSpec!char.FormatSpec"*, i32, %std.stdio.File.LockingTextWriter*) * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * Function type: @safe void(LockingTextWriter w, dchar val, ref FormatSpec!char f) * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * VarExp::toElem: __pfx3341 @ LockingTextWriter * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__pfx3341' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * VarExp::toElem: __pfy3342 @ dchar * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__pfy3342' of type 'dchar') * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * VarExp::toElem: fmt @ FormatSpec!char * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('fmt' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2452) * * * * * * * * * * * * * * CastExp::toElem: cast(const(char)*)f.sep @ const(char)* * * * * * * * * * * * * * * * DotVarExp::toElem: f.sep @ const(char)[] * * * * * * * * * * * * * * * * VarExp::toElem: f @ FormatSpec!char * * * * * * * * * * * * * * * * * DtoSymbolAddress ('f' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * type: FormatSpec!char * * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.sep: * * * * * * * * * * * * * * * * * Value: %101 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %f_arg, i32 0, i32 8 * * * * * * * * * * * * * * * Casting from 'const(char)[]' to 'const(char)*' * * * * * * * * * * * * * * * * DtoCastArray * * * * * * * * * * * * * * * * * from array or sarray * * * * * * * * * * * * * * * * * to pointer * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * if conditional: %.ptr53 = load i8*, i8** %102 * * * * * * * * * * * * * * Casting from 'const(char)*' to 'bool' * * * * * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2453) * * * * * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2453) * * * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2454) * * * * * * * * * * * * * * * * * CallExp::toElem: put(w, fmt.trailing) @ void * * * * * * * * * * * * * * * * * * VarExp::toElem: put @ @safe void(ref LockingTextWriter r, const(char)[] e) * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('put' of type '@safe void(ref LockingTextWriter r, const(char)[] e)') * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * * DtoFunctionType(@safe void(ref LockingTextWriter r, const(char)[] e)) * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * * Final function type: void ({ i64, i8* }, %std.stdio.File.LockingTextWriter*) * * * * * * * * * * * * * * * * * * * * DtoResolveFunction(std.range.primitives.put!(LockingTextWriter, const(char)[]).put): /usr/include/dlang/ldc/std/range/primitives.d(277) * * * * * * * * * * * * * * * * * * * * * DtoDeclareFunction(std.range.primitives.put!(LockingTextWriter, const(char)[]).put): /usr/include/dlang/ldc/std/range/primitives.d(277) * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(@safe void(ref LockingTextWriter r, const(char)[] e)) * * * * * * * * * * * * * * * * * * * * * * func = declare void @_D3std5range10primitives48__T3putTS3std5stdio4File17LockingTextWriterTAxaZ3putFNfKS3std5stdio4File17LockingTextWriterAxaZv({ i64, i8* }, %std.stdio.File.LockingTextWriter*) * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * Building type: @safe void(ref LockingTextWriter r, const(char)[] e) * * * * * * * * * * * * * * * * * * * * DtoFunctionType(@safe void(ref LockingTextWriter r, const(char)[] e)) * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * * Final function type: void ({ i64, i8* }, %std.stdio.File.LockingTextWriter*) * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * Function type: @safe void(ref LockingTextWriter r, const(char)[] e) * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * VarExp::toElem: w @ LockingTextWriter * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * type: LockingTextWriter * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: fmt.trailing @ const(char)[] * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: fmt @ FormatSpec!char * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('fmt' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.trailing: * * * * * * * * * * * * * * * * * * * * * * Value: %119 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %fmt, i32 0, i32 9 * * * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2455) * * * * * * * * * * * * * * * * * CallExp::toElem: popFront(val) @ void * * * * * * * * * * * * * * * * * * VarExp::toElem: popFront @ pure nothrow @nogc @trusted void(ref string str) * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('popFront' of type 'pure nothrow @nogc @trusted void(ref string str)') * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @trusted void(ref string str) * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * VarExp::toElem: val @ string * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('val' of type 'string') * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * type: string * * * * * * * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2456) * * * * * * * * * * * * * * * * * CallExp::toElem: empty(val) @ bool * * * * * * * * * * * * * * * * * * VarExp::toElem: empty @ pure nothrow @nogc @property @safe bool(const(char[]) a) * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('empty' of type 'pure nothrow @nogc @property @safe bool(const(char[]) a)') * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @property @safe bool(const(char[]) a) * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * VarExp::toElem: val @ const(char[]) * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('val' of type 'string') * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * type: string * * * * * * * * * * * * * * * * * BreakStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2457) * * * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2458) * * * * * * * * * * * * * * * * * CallExp::toElem: put(w, f.sep) @ void * * * * * * * * * * * * * * * * * * VarExp::toElem: put @ @safe void(ref LockingTextWriter r, const(char)[] e) * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('put' of type '@safe void(ref LockingTextWriter r, const(char)[] e)') * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * Function type: @safe void(ref LockingTextWriter r, const(char)[] e) * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * VarExp::toElem: w @ LockingTextWriter * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * type: LockingTextWriter * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: f.sep @ const(char)[] * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: f @ FormatSpec!char * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('f' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * * type: FormatSpec!char * * * * * * * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.sep: * * * * * * * * * * * * * * * * * * * * * * Value: %123 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %f_arg, i32 0, i32 8 * * * * * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2461) * * * * * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2461) * * * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2462) * * * * * * * * * * * * * * * * * CallExp::toElem: popFront(val) @ void * * * * * * * * * * * * * * * * * * VarExp::toElem: popFront @ pure nothrow @nogc @trusted void(ref string str) * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('popFront' of type 'pure nothrow @nogc @trusted void(ref string str)') * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @trusted void(ref string str) * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * VarExp::toElem: val @ string * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('val' of type 'string') * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * type: string * * * * * * * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2463) * * * * * * * * * * * * * * * * * CallExp::toElem: empty(val) @ bool * * * * * * * * * * * * * * * * * * VarExp::toElem: empty @ pure nothrow @nogc @property @safe bool(const(char[]) a) * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('empty' of type 'pure nothrow @nogc @property @safe bool(const(char[]) a)') * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @property @safe bool(const(char[]) a) * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * VarExp::toElem: val @ const(char[]) * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('val' of type 'string') * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * type: string * * * * * * * * * * * * * * * * * BreakStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2464) * * * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2465) * * * * * * * * * * * * * * * * * CallExp::toElem: put(w, fmt.trailing) @ void * * * * * * * * * * * * * * * * * * VarExp::toElem: put @ @safe void(ref LockingTextWriter r, const(char)[] e) * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('put' of type '@safe void(ref LockingTextWriter r, const(char)[] e)') * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * Function type: @safe void(ref LockingTextWriter r, const(char)[] e) * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * VarExp::toElem: w @ LockingTextWriter * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * type: LockingTextWriter * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: fmt.trailing @ const(char)[] * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: fmt @ FormatSpec!char * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('fmt' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.trailing: * * * * * * * * * * * * * * * * * * * * * * Value: %127 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %fmt, i32 0, i32 9 * * * * * * * * ThrowStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2470) * * * * * * * * * NewExp::toElem: new Exception(text("Incorrect format specifier for range: %", f.spec), "/usr/include/dlang/ldc/std/format.d", 2470LU, null) @ object.Exception * * * * * * * * * * new class * * * * * * * * * * Calling constructor * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * doing normal arguments * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * %.newclass_gc = bitcast %object.Object* %.newclass_gc_alloc to %object.Exception* * * * * * * * * * * * Function type: pure nothrow @safe Exception(string msg, string file = __FILE__, ulong line = cast(ulong)__LINE__, Throwable next = null) * * * * * * * * * * * DtoArgument * * * * * * * * * * * * CallExp::toElem: text("Incorrect format specifier for range: %", f.spec) @ string * * * * * * * * * * * * * VarExp::toElem: text @ pure @safe string(string _param_0, char _param_1) * * * * * * * * * * * * * * DtoSymbolAddress ('text' of type 'pure @safe string(string _param_0, char _param_1)') * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * Function type: pure @safe string(string _param_0, char _param_1) * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * StringExp::toElem: "Incorrect format specifier for range: %" @ string * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * DotVarExp::toElem: f.spec @ char * * * * * * * * * * * * * * * * VarExp::toElem: f @ FormatSpec!char * * * * * * * * * * * * * * * * * DtoSymbolAddress ('f' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * type: FormatSpec!char * * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.spec: * * * * * * * * * * * * * * * * * Value: %89 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %f_arg, i32 0, i32 2 * * * * * * * * * * * DtoArgument * * * * * * * * * * * * StringExp::toElem: "/usr/include/dlang/ldc/std/format.d" @ string * * * * * * * * * * * DtoArgument * * * * * * * * * * * * IntegerExp::toElem: 2470LU @ ulong * * * * * * * * * * * * * IntegerExp::toConstElem: 2470LU @ ulong * * * * * * * * * * * * * * value = i64 2470 * * * * * * * * * * * DtoArgument * * * * * * * * * * * * NullExp::toElem(type=object.Throwable): null * * * * * * * * * * * * * NullExp::toConstElem(type=object.Throwable): null * * * * * * * * * * * Rewrite: putParam * TemplateInstance::codegen: 'std.range.primitives.put!(LockingTextWriter, char)' * * DtoDefineFunction(std.range.primitives.put!(LockingTextWriter, char).put): /usr/include/dlang/ldc/std/range/primitives.d(277) * * * Doing function body for: put * * * DtoCreateNestedContext for put * * * * DtoCreateNestedContextType for std.range.primitives.put!(LockingTextWriter, char).put * * * CompoundStatement::toIR(): * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/range/primitives.d(282) * * * * * CallExp::toElem: doPut(r, e) @ void * * * * * * VarExp::toElem: doPut @ nothrow @nogc @safe void(ref LockingTextWriter r, auto ref char e) * * * * * * * DtoSymbolAddress ('doPut' of type 'nothrow @nogc @safe void(ref LockingTextWriter r, auto ref char e)') * * * * * * * * FuncDeclaration * * * * * * * * DtoFunctionType(nothrow @nogc @safe void(ref LockingTextWriter r, auto ref char e)) * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * Final function type: void (i8*, %std.stdio.File.LockingTextWriter*) * * * * * * * * DtoResolveFunction(std.range.primitives.doPut!(LockingTextWriter, char).doPut): /usr/include/dlang/ldc/std/range/primitives.d(182) * * * * * * * * * DtoDeclareFunction(std.range.primitives.doPut!(LockingTextWriter, char).doPut): /usr/include/dlang/ldc/std/range/primitives.d(182) * * * * * * * * * * DtoFunctionType(nothrow @nogc @safe void(ref LockingTextWriter r, auto ref char e)) * * * * * * * * * * func = declare void @_D3std5range10primitives48__T5doPutTS3std5stdio4File17LockingTextWriterTaZ5doPutFNbNiNfKS3std5stdio4File17LockingTextWriterKaZv(i8*, %std.stdio.File.LockingTextWriter*) * * * * * * DtoCallFunction() * * * * * * * Building type: nothrow @nogc @safe void(ref LockingTextWriter r, auto ref char e) * * * * * * * * DtoFunctionType(nothrow @nogc @safe void(ref LockingTextWriter r, auto ref char e)) * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * Final function type: void (i8*, %std.stdio.File.LockingTextWriter*) * * * * * * * doing normal arguments * * * * * * * Arguments so far: (0) * * * * * * * Function type: nothrow @nogc @safe void(ref LockingTextWriter r, auto ref char e) * * * * * * * DtoArgument * * * * * * * * VarExp::toElem: r @ LockingTextWriter * * * * * * * * * DtoSymbolAddress ('r' of type 'LockingTextWriter') * * * * * * * * * * function param * * * * * * * * * * type: LockingTextWriter * * * * * * * DtoArgument * * * * * * * * VarExp::toElem: e @ char * * * * * * * * * DtoSymbolAddress ('e' of type 'char') * * * * * * * * * * function param * * * * * * * * * * type: char * TemplateInstance::codegen: 'std.range.primitives.doPut!(LockingTextWriter, char)' * * DtoDefineFunction(std.range.primitives.doPut!(LockingTextWriter, char).doPut): /usr/include/dlang/ldc/std/range/primitives.d(182) * * * Doing function body for: doPut * * * DtoCreateNestedContext for doPut * * * * DtoCreateNestedContextType for std.range.primitives.doPut!(LockingTextWriter, char).doPut * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/range/primitives.d(183) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/range/primitives.d(187) * * * * * * DeclarationExp::toElem: enum bool usingPut = true; | T=void * * * * * * * DtoDeclarationExp: usingPut * * * * * * * * VarDeclaration * * * * * * * * Manifest constant, nothing to do. * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/range/primitives.d(193) * * * * * * CallExp::toElem: r.put(e) @ void * * * * * * * DotVarExp::toElem: r.put @ nothrow @nogc @safe void(char c) * * * * * * * * VarExp::toElem: r @ LockingTextWriter * * * * * * * * * DtoSymbolAddress ('r' of type 'LockingTextWriter') * * * * * * * * * * function param * * * * * * * * * * type: LockingTextWriter * * * * * * * * isMember = this is: LockingTextWriter * * * * * * * * DtoFunctionType(nothrow @nogc @safe void(char c)) * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * Final function type: void (%std.stdio.File.LockingTextWriter*, i8) * * * * * * * * DtoResolveFunction(std.stdio.File.LockingTextWriter.put!char.put): /usr/include/dlang/ldc/std/stdio.d(2452) * * * * * * * * * DtoDeclareFunction(std.stdio.File.LockingTextWriter.put!char.put): /usr/include/dlang/ldc/std/stdio.d(2452) * * * * * * * * * * isMember = this is: LockingTextWriter * * * * * * * * * * DtoFunctionType(nothrow @nogc @safe void(char c)) * * * * * * * * * * func = declare void @_D3std5stdio4File17LockingTextWriter10__T3putTaZ3putMFNbNiNfaZv(%std.stdio.File.LockingTextWriter*, i8) * * * * * * * DtoCallFunction() * * * * * * * * Building type: nothrow @nogc @safe void(char c) * * * * * * * * * DtoFunctionType(nothrow @nogc @safe void(char c)) * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: void (i8) * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (1) * * * * * * * * * %std.stdio.File.LockingTextWriter* %r_arg * * * * * * * * Function type: nothrow @nogc @safe void(char c) * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: e @ char * * * * * * * * * * DtoSymbolAddress ('e' of type 'char') * * * * * * * * * * * function param * * * * * * * * * * * type: char * TemplateInstance::codegen: 'std.format.formatValue!(LockingTextWriter, immutable(char), char)' * * DtoDefineFunction(std.format.formatValue!(LockingTextWriter, immutable(char), char).formatValue): /usr/include/dlang/ldc/std/format.d(1905) * * * Doing function body for: formatValue * * * DtoCreateNestedContext for formatValue * * * * DtoCreateNestedContextType for std.format.formatValue!(LockingTextWriter, immutable(char), char).formatValue * * * TryFinallyStatement::toIR(): * * * * ExpStatement::toIR(): * * * * * CallExp::toElem: w.~this() @ void * * * * * * DotVarExp::toElem: w.~this @ @trusted void() * * * * * * * VarExp::toElem: w @ LockingTextWriter * * * * * * * * DtoSymbolAddress ('w' of type 'LockingTextWriter') * * * * * * * * * function param * * * * * * * * * type: LockingTextWriter * * * * * * DtoCallFunction() * * * * * * * doing normal arguments * * * * * * * Arguments so far: (1) * * * * * * * * %std.stdio.File.LockingTextWriter* %w_arg * * * * * * * Function type: @trusted void() * * * * CompoundStatement::toIR(): * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1907) * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1908) * * * * * * * DeclarationExp::toElem: immutable immutable(char) val = obj; | T=void * * * * * * * * DtoDeclarationExp: val * * * * * * * * * VarDeclaration * * * * * * * * * DtoVarDeclaration(vdtype = immutable(char)) * * * * * * * * * * llvm value for decl: %val = alloca i8, align 1 * * * * * * * * * * expression initializer * * * * * * * * * * AssignExp::toElem: val = obj | (immutable(char))(immutable(char) = immutable(char)) * * * * * * * * * * * VarExp::toElem: val @ immutable(char) * * * * * * * * * * * * DtoSymbolAddress ('val' of type 'immutable(char)') * * * * * * * * * * * * * a normal variable * * * * * * * * * * * VarExp::toElem: obj @ immutable(char) * * * * * * * * * * * * DtoSymbolAddress ('obj' of type 'immutable(char)') * * * * * * * * * * * * * function param * * * * * * * * * * * * * type: immutable(char) * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * lhs: %val = alloca i8, align 1 * * * * * * * * * * * * rhs: %1 = load i8, i8* %obj * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1910) * * * * * * * OrOrExp::toElem: cast(int)f.spec == 115 || cast(int)f.spec == 99 @ bool * * * * * * * * EqualExp::toElem: cast(int)f.spec == 115 @ bool * * * * * * * * * CastExp::toElem: cast(int)f.spec @ int * * * * * * * * * * DotVarExp::toElem: f.spec @ char * * * * * * * * * * * VarExp::toElem: f @ FormatSpec!char * * * * * * * * * * * * DtoSymbolAddress ('f' of type 'FormatSpec!char') * * * * * * * * * * * * * function param * * * * * * * * * * * * * type: FormatSpec!char * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.spec: * * * * * * * * * * * * Value: %2 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %f_arg, i32 0, i32 2 * * * * * * * * * * Casting from 'char' to 'int' * * * * * * * * * * * cast to: i32 * * * * * * * * * IntegerExp::toElem: 115 @ int * * * * * * * * * * IntegerExp::toConstElem: 115 @ int * * * * * * * * * * * value = i32 115 * * * * * * * * * integral or pointer or interface * * * * * * * * * lv: %4 = zext i8 %3 to i32 * * * * * * * * * rv: i32 115 * * * * * * * * EqualExp::toElem: cast(int)f.spec == 99 @ bool * * * * * * * * * CastExp::toElem: cast(int)f.spec @ int * * * * * * * * * * DotVarExp::toElem: f.spec @ char * * * * * * * * * * * VarExp::toElem: f @ FormatSpec!char * * * * * * * * * * * * DtoSymbolAddress ('f' of type 'FormatSpec!char') * * * * * * * * * * * * * function param * * * * * * * * * * * * * type: FormatSpec!char * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.spec: * * * * * * * * * * * * Value: %6 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %f_arg, i32 0, i32 2 * * * * * * * * * * Casting from 'char' to 'int' * * * * * * * * * * * cast to: i32 * * * * * * * * * IntegerExp::toElem: 99 @ int * * * * * * * * * * IntegerExp::toConstElem: 99 @ int * * * * * * * * * * * value = i32 99 * * * * * * * * * integral or pointer or interface * * * * * * * * * lv: %8 = zext i8 %7 to i32 * * * * * * * * * rv: i32 99 * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1911) * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1912) * * * * * * * * * CallExp::toElem: put(w, val) @ void * * * * * * * * * * VarExp::toElem: put @ nothrow @nogc @safe void(ref LockingTextWriter r, immutable(char) e) * * * * * * * * * * * DtoSymbolAddress ('put' of type 'nothrow @nogc @safe void(ref LockingTextWriter r, immutable(char) e)') * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * DtoFunctionType(nothrow @nogc @safe void(ref LockingTextWriter r, immutable(char) e)) * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * Final function type: void (i8, %std.stdio.File.LockingTextWriter*) * * * * * * * * * * * * DtoResolveFunction(std.range.primitives.put!(LockingTextWriter, immutable(char)).put): /usr/include/dlang/ldc/std/range/primitives.d(277) * * * * * * * * * * * * * DtoDeclareFunction(std.range.primitives.put!(LockingTextWriter, immutable(char)).put): /usr/include/dlang/ldc/std/range/primitives.d(277) * * * * * * * * * * * * * * DtoFunctionType(nothrow @nogc @safe void(ref LockingTextWriter r, immutable(char) e)) * * * * * * * * * * * * * * func = declare void @_D3std5range10primitives47__T3putTS3std5stdio4File17LockingTextWriterTyaZ3putFNbNiNfKS3std5stdio4File17LockingTextWriteryaZv(i8, %std.stdio.File.LockingTextWriter*) * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * Building type: nothrow @nogc @safe void(ref LockingTextWriter r, immutable(char) e) * * * * * * * * * * * * DtoFunctionType(nothrow @nogc @safe void(ref LockingTextWriter r, immutable(char) e)) * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * Final function type: void (i8, %std.stdio.File.LockingTextWriter*) * * * * * * * * * * * doing normal arguments * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * Function type: nothrow @nogc @safe void(ref LockingTextWriter r, immutable(char) e) * * * * * * * * * * * DtoArgument * * * * * * * * * * * * VarExp::toElem: w @ LockingTextWriter * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'LockingTextWriter') * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * type: LockingTextWriter * * * * * * * * * * * DtoArgument * * * * * * * * * * * * VarExp::toElem: val @ immutable(char) * * * * * * * * * * * * * DtoSymbolAddress ('val' of type 'immutable(char)') * * * * * * * * * * * * * * a normal variable * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1915) * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1915) * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1916) * * * * * * * * * * DeclarationExp::toElem: alias U = ubyte; | T=void * * * * * * * * * * * DtoDeclarationExp: U * * * * * * * * * * * * Ignoring Symbol: alias * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1917) * * * * * * * * * * CallExp::toElem: formatValue((LockingTextWriter __copytmp3291 = (__copytmp3291 = w).__postblit(); , __copytmp3291), cast(ubyte)val, f) @ void * * * * * * * * * * * VarExp::toElem: formatValue @ @safe void(LockingTextWriter w, ubyte obj, ref FormatSpec!char f) * * * * * * * * * * * * DtoSymbolAddress ('formatValue' of type '@safe void(LockingTextWriter w, ubyte obj, ref FormatSpec!char f)') * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * DtoFunctionType(@safe void(LockingTextWriter w, ubyte obj, ref FormatSpec!char f)) * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * Final function type: void (%"std.format.FormatSpec!char.FormatSpec"*, i8, %std.stdio.File.LockingTextWriter*) * * * * * * * * * * * * * DtoResolveFunction(std.format.formatValue!(LockingTextWriter, ubyte, char).formatValue): /usr/include/dlang/ldc/std/format.d(1397) * * * * * * * * * * * * * * DtoDeclareFunction(std.format.formatValue!(LockingTextWriter, ubyte, char).formatValue): /usr/include/dlang/ldc/std/format.d(1397) * * * * * * * * * * * * * * * DtoFunctionType(@safe void(LockingTextWriter w, ubyte obj, ref FormatSpec!char f)) * * * * * * * * * * * * * * * func = declare void @_D3std6format57__T11formatValueTS3std5stdio4File17LockingTextWriterThTaZ11formatValueFNfS3std5stdio4File17LockingTextWriterhKS3std6format18__T10FormatSpecTaZ10FormatSpecZv(%"std.format.FormatSpec!char.FormatSpec"*, i8, %std.stdio.File.LockingTextWriter*) * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * Building type: @safe void(LockingTextWriter w, ubyte obj, ref FormatSpec!char f) * * * * * * * * * * * * * DtoFunctionType(@safe void(LockingTextWriter w, ubyte obj, ref FormatSpec!char f)) * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * Final function type: void (%"std.format.FormatSpec!char.FormatSpec"*, i8, %std.stdio.File.LockingTextWriter*) * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * Function type: @safe void(LockingTextWriter w, ubyte obj, ref FormatSpec!char f) * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * CommaExp::toElem: LockingTextWriter __copytmp3291 = (__copytmp3291 = w).__postblit(); , __copytmp3291 @ LockingTextWriter * * * * * * * * * * * * * * DeclarationExp::toElem: LockingTextWriter __copytmp3291 = (__copytmp3291 = w).__postblit(); | T=void * * * * * * * * * * * * * * * DtoDeclarationExp: __copytmp3291 * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = LockingTextWriter) * * * * * * * * * * * * * * * * * llvm value for decl: %__copytmp3291 = alloca %std.stdio.File.LockingTextWriter, align 8 * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * CallExp::toElem: (__copytmp3291 = w).__postblit() @ void * * * * * * * * * * * * * * * * * * DotVarExp::toElem: (__copytmp3291 = w).__postblit @ @trusted void() * * * * * * * * * * * * * * * * * * * AssignExp::toElem: __copytmp3291 = w | (LockingTextWriter)(LockingTextWriter = LockingTextWriter) * * * * * * * * * * * * * * * * * * * * VarExp::toElem: __copytmp3291 @ LockingTextWriter * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__copytmp3291' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * VarExp::toElem: w @ LockingTextWriter * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * type: LockingTextWriter * * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * * * %__copytmp3291 = alloca %std.stdio.File.LockingTextWriter, align 8 * * * * * * * * * * * * * * * * * * * Function type: @trusted void() * * * * * * * * * * * * * * VarExp::toElem: __copytmp3291 @ LockingTextWriter * * * * * * * * * * * * * * * DtoSymbolAddress ('__copytmp3291' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * CastExp::toElem: cast(ubyte)val @ ubyte * * * * * * * * * * * * * * VarExp::toElem: val @ immutable(char) * * * * * * * * * * * * * * * DtoSymbolAddress ('val' of type 'immutable(char)') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * Casting from 'immutable(char)' to 'ubyte' * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * VarExp::toElem: f @ FormatSpec!char * * * * * * * * * * * * * * DtoSymbolAddress ('f' of type 'FormatSpec!char') * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * type: FormatSpec!char * TemplateInstance::codegen: 'std.range.primitives.put!(LockingTextWriter, immutable(char))' * * DtoDefineFunction(std.range.primitives.put!(LockingTextWriter, immutable(char)).put): /usr/include/dlang/ldc/std/range/primitives.d(277) * * * Doing function body for: put * * * DtoCreateNestedContext for put * * * * DtoCreateNestedContextType for std.range.primitives.put!(LockingTextWriter, immutable(char)).put * * * CompoundStatement::toIR(): * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/range/primitives.d(282) * * * * * CallExp::toElem: doPut(r, e) @ void * * * * * * VarExp::toElem: doPut @ nothrow @nogc @safe void(ref LockingTextWriter r, auto ref immutable(char) e) * * * * * * * DtoSymbolAddress ('doPut' of type 'nothrow @nogc @safe void(ref LockingTextWriter r, auto ref immutable(char) e)') * * * * * * * * FuncDeclaration * * * * * * * * DtoFunctionType(nothrow @nogc @safe void(ref LockingTextWriter r, auto ref immutable(char) e)) * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * Final function type: void (i8*, %std.stdio.File.LockingTextWriter*) * * * * * * * * DtoResolveFunction(std.range.primitives.doPut!(LockingTextWriter, immutable(char)).doPut): /usr/include/dlang/ldc/std/range/primitives.d(182) * * * * * * * * * DtoDeclareFunction(std.range.primitives.doPut!(LockingTextWriter, immutable(char)).doPut): /usr/include/dlang/ldc/std/range/primitives.d(182) * * * * * * * * * * DtoFunctionType(nothrow @nogc @safe void(ref LockingTextWriter r, auto ref immutable(char) e)) * * * * * * * * * * func = declare void @_D3std5range10primitives49__T5doPutTS3std5stdio4File17LockingTextWriterTyaZ5doPutFNbNiNfKS3std5stdio4File17LockingTextWriterKyaZv(i8*, %std.stdio.File.LockingTextWriter*) * * * * * * DtoCallFunction() * * * * * * * Building type: nothrow @nogc @safe void(ref LockingTextWriter r, auto ref immutable(char) e) * * * * * * * * DtoFunctionType(nothrow @nogc @safe void(ref LockingTextWriter r, auto ref immutable(char) e)) * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * Final function type: void (i8*, %std.stdio.File.LockingTextWriter*) * * * * * * * doing normal arguments * * * * * * * Arguments so far: (0) * * * * * * * Function type: nothrow @nogc @safe void(ref LockingTextWriter r, auto ref immutable(char) e) * * * * * * * DtoArgument * * * * * * * * VarExp::toElem: r @ LockingTextWriter * * * * * * * * * DtoSymbolAddress ('r' of type 'LockingTextWriter') * * * * * * * * * * function param * * * * * * * * * * type: LockingTextWriter * * * * * * * DtoArgument * * * * * * * * VarExp::toElem: e @ immutable(char) * * * * * * * * * DtoSymbolAddress ('e' of type 'immutable(char)') * * * * * * * * * * function param * * * * * * * * * * type: immutable(char) * TemplateInstance::codegen: 'std.range.primitives.doPut!(LockingTextWriter, immutable(char))' * * DtoDefineFunction(std.range.primitives.doPut!(LockingTextWriter, immutable(char)).doPut): /usr/include/dlang/ldc/std/range/primitives.d(182) * * * Doing function body for: doPut * * * DtoCreateNestedContext for doPut * * * * DtoCreateNestedContextType for std.range.primitives.doPut!(LockingTextWriter, immutable(char)).doPut * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/range/primitives.d(183) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/range/primitives.d(187) * * * * * * DeclarationExp::toElem: enum bool usingPut = true; | T=void * * * * * * * DtoDeclarationExp: usingPut * * * * * * * * VarDeclaration * * * * * * * * Manifest constant, nothing to do. * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/range/primitives.d(193) * * * * * * CallExp::toElem: r.put(e) @ void * * * * * * * DotVarExp::toElem: r.put @ nothrow @nogc @safe void(immutable(char) c) * * * * * * * * VarExp::toElem: r @ LockingTextWriter * * * * * * * * * DtoSymbolAddress ('r' of type 'LockingTextWriter') * * * * * * * * * * function param * * * * * * * * * * type: LockingTextWriter * * * * * * * * isMember = this is: LockingTextWriter * * * * * * * * DtoFunctionType(nothrow @nogc @safe void(immutable(char) c)) * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * Final function type: void (%std.stdio.File.LockingTextWriter*, i8) * * * * * * * * DtoResolveFunction(std.stdio.File.LockingTextWriter.put!(immutable(char)).put): /usr/include/dlang/ldc/std/stdio.d(2452) * * * * * * * * * DtoDeclareFunction(std.stdio.File.LockingTextWriter.put!(immutable(char)).put): /usr/include/dlang/ldc/std/stdio.d(2452) * * * * * * * * * * isMember = this is: LockingTextWriter * * * * * * * * * * DtoFunctionType(nothrow @nogc @safe void(immutable(char) c)) * * * * * * * * * * func = declare void @_D3std5stdio4File17LockingTextWriter11__T3putTyaZ3putMFNbNiNfyaZv(%std.stdio.File.LockingTextWriter*, i8) * * * * * * * DtoCallFunction() * * * * * * * * Building type: nothrow @nogc @safe void(immutable(char) c) * * * * * * * * * DtoFunctionType(nothrow @nogc @safe void(immutable(char) c)) * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: void (i8) * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (1) * * * * * * * * * %std.stdio.File.LockingTextWriter* %r_arg * * * * * * * * Function type: nothrow @nogc @safe void(immutable(char) c) * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: e @ immutable(char) * * * * * * * * * * DtoSymbolAddress ('e' of type 'immutable(char)') * * * * * * * * * * * function param * * * * * * * * * * * type: immutable(char) * TemplateInstance::codegen: 'std.range.primitives.ElementType!(immutable(char))' * TemplateInstance::codegen: 'std.format.formatValue!(LockingTextWriter, ubyte, char)' * * DtoDefineFunction(std.format.formatValue!(LockingTextWriter, ubyte, char).formatValue): /usr/include/dlang/ldc/std/format.d(1397) * * * Doing function body for: formatValue * * * DtoCreateNestedContext for formatValue * * * * DtoCreateNestedContextType for std.format.formatValue!(LockingTextWriter, ubyte, char).formatValue * * * TryFinallyStatement::toIR(): * * * * ExpStatement::toIR(): * * * * * CallExp::toElem: w.~this() @ void * * * * * * DotVarExp::toElem: w.~this @ @trusted void() * * * * * * * VarExp::toElem: w @ LockingTextWriter * * * * * * * * DtoSymbolAddress ('w' of type 'LockingTextWriter') * * * * * * * * * function param * * * * * * * * * type: LockingTextWriter * * * * * * DtoCallFunction() * * * * * * * doing normal arguments * * * * * * * Arguments so far: (1) * * * * * * * * %std.stdio.File.LockingTextWriter* %w_arg * * * * * * * Function type: @trusted void() * * * * CompoundStatement::toIR(): * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1399) * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1401) * * * * * * * DeclarationExp::toElem: alias U = ubyte; | T=void * * * * * * * * DtoDeclarationExp: U * * * * * * * * * Ignoring Symbol: alias * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1402) * * * * * * * DeclarationExp::toElem: ubyte val = obj; | T=void * * * * * * * * DtoDeclarationExp: val * * * * * * * * * VarDeclaration * * * * * * * * * DtoVarDeclaration(vdtype = ubyte) * * * * * * * * * * llvm value for decl: %val = alloca i8, align 1 * * * * * * * * * * expression initializer * * * * * * * * * * AssignExp::toElem: val = obj | (ubyte)(ubyte = ubyte) * * * * * * * * * * * VarExp::toElem: val @ ubyte * * * * * * * * * * * * DtoSymbolAddress ('val' of type 'ubyte') * * * * * * * * * * * * * a normal variable * * * * * * * * * * * VarExp::toElem: obj @ ubyte * * * * * * * * * * * * DtoSymbolAddress ('obj' of type 'ubyte') * * * * * * * * * * * * * function param * * * * * * * * * * * * * type: ubyte * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * lhs: %val = alloca i8, align 1 * * * * * * * * * * * * rhs: %1 = load i8, i8* %obj * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1404) * * * * * * * EqualExp::toElem: cast(int)f.spec == 114 @ bool * * * * * * * * CastExp::toElem: cast(int)f.spec @ int * * * * * * * * * DotVarExp::toElem: f.spec @ char * * * * * * * * * * VarExp::toElem: f @ FormatSpec!char * * * * * * * * * * * DtoSymbolAddress ('f' of type 'FormatSpec!char') * * * * * * * * * * * * function param * * * * * * * * * * * * type: FormatSpec!char * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.spec: * * * * * * * * * * * Value: %2 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %f_arg, i32 0, i32 2 * * * * * * * * * Casting from 'char' to 'int' * * * * * * * * * * cast to: i32 * * * * * * * * IntegerExp::toElem: 114 @ int * * * * * * * * * IntegerExp::toConstElem: 114 @ int * * * * * * * * * * value = i32 114 * * * * * * * * integral or pointer or interface * * * * * * * * lv: %4 = zext i8 %3 to i32 * * * * * * * * rv: i32 114 * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1405) * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1405) * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1407) * * * * * * * * * * DeclarationExp::toElem: const(char)[] raw = (*(ref ubyte val) => (cast(const(char*))&val)[0..1])(val); | T=void * * * * * * * * * * * DtoDeclarationExp: raw * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * DtoVarDeclaration(vdtype = const(char)[]) * * * * * * * * * * * * * llvm value for decl: %raw = alloca { i64, i8* }, align 8 * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * AssignExp::toElem: raw = (*(ref ubyte val) => (cast(const(char*))&val)[0..1])(val) | (const(char)[])(const(char)[] = const(char)[]) * * * * * * * * * * * * * * VarExp::toElem: raw @ const(char)[] * * * * * * * * * * * * * * * DtoSymbolAddress ('raw' of type 'const(char)[]') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * CallExp::toElem: (*(ref ubyte val) => (cast(const(char*))&val)[0..1])(val) @ const(char)[] * * * * * * * * * * * * * * * PtrExp::toElem: *(ref ubyte val) => (cast(const(char*))&val)[0..1] @ pure nothrow @nogc @trusted const(char)[](ref ubyte val) * * * * * * * * * * * * * * * * FuncExp::toElem: __lambda4 @ const(char)[] function(ref ubyte val) pure nothrow @nogc @trusted * * * * * * * * * * * * * * * * * kind = function * * * * * * * * * * * * * * * * * DtoDefineFunction(std.format.formatValue!(LockingTextWriter, ubyte, char).formatValue.__lambda4): /usr/include/dlang/ldc/std/format.d(1407) * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted const(char)[](ref ubyte val)) * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * Final function type: { i64, i8* } (i8*) * * * * * * * * * * * * * * * * * * DtoResolveFunction(std.format.formatValue!(LockingTextWriter, ubyte, char).formatValue.__lambda4): /usr/include/dlang/ldc/std/format.d(1407) * * * * * * * * * * * * * * * * * * * DtoDeclareFunction(std.format.formatValue!(LockingTextWriter, ubyte, char).formatValue.__lambda4): /usr/include/dlang/ldc/std/format.d(1407) * * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted const(char)[](ref ubyte val)) * * * * * * * * * * * * * * * * * * * * func = declare { i64, i8* } @_D3std6format57__T11formatValueTS3std5stdio4File17LockingTextWriterThTaZ11formatValueFS3std5stdio4File17LockingTextWriterhKS3std6format18__T10FormatSpecTaZ10FormatSpecZ16__T9__lambda4ThZ9__lambda4FNaNbNiNeKhZAxa(i8*) * * * * * * * * * * * * * * * * * * Doing function body for: __lambda4 * * * * * * * * * * * * * * * * * * DtoCreateNestedContext for __lambda4 * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for std.format.formatValue!(LockingTextWriter, ubyte, char).formatValue.__lambda4 * * * * * * * * * * * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * * * * * * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1408) * * * * * * * * * * * * * * * * * * * * SliceExp::toElem: (cast(const(char*))&val)[0..1] @ const(char)[] * * * * * * * * * * * * * * * * * * * * * CastExp::toElem: cast(const(char*))&val @ const(char*) * * * * * * * * * * * * * * * * * * * * * * AddrExp::toElem: &val @ ubyte* * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: val @ ubyte * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('val' of type 'ubyte') * * * * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * * * * type: ubyte * * * * * * * * * * * * * * * * * * * * * * * is nothing special * * * * * * * * * * * * * * * * * * * * * * * lval: i8* %val_arg * * * * * * * * * * * * * * * * * * * * * * Casting from 'ubyte*' to 'const(char*)' * * * * * * * * * * * * * * * * * * * * * * * src: i8* %val_arg * * * * * * * * * * * * * * * * * * * * * * * to type: i8* * * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * * * * * * * * return value is '0x12845440' * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * Building type: pure nothrow @nogc @trusted const(char)[](ref ubyte val) * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted const(char)[](ref ubyte val)) * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * Final function type: { i64, i8* } (i8*) * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @trusted const(char)[](ref ubyte val) * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * VarExp::toElem: val @ ubyte * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('val' of type 'ubyte') * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * SetArray * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1410) * * * * * * * * * * OrOrExp::toElem: !!f.flPlus() || false @ bool * * * * * * * * * * * BoolExp::toElem: !!f.flPlus() @ bool * * * * * * * * * * * * CallExp::toElem: f.flPlus() @ bool * * * * * * * * * * * * * DotVarExp::toElem: f.flPlus @ const pure nothrow @nogc @property @safe bool() * * * * * * * * * * * * * * VarExp::toElem: f @ FormatSpec!char * * * * * * * * * * * * * * * DtoSymbolAddress ('f' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * type: FormatSpec!char * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * %"std.format.FormatSpec!char.FormatSpec"* %f_arg * * * * * * * * * * * * * * Function type: const pure nothrow @nogc @property @safe bool() * * * * * * * * * * * IntegerExp::toElem: false @ bool * * * * * * * * * * * * IntegerExp::toConstElem: false @ bool * * * * * * * * * * * * * value = i1 false * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1412) * * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1414) * * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1414) * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1414) * * * * * * * * * * * * * * DeclarationExp::toElem: const(char)[] __aggr3279 = raw[]; | T=void * * * * * * * * * * * * * * * DtoDeclarationExp: __aggr3279 * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = const(char)[]) * * * * * * * * * * * * * * * * * llvm value for decl: %__aggr3279 = alloca { i64, i8* }, align 8 * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * AssignExp::toElem: __aggr3279 = raw[] | (const(char)[])(const(char)[] = const(char)[]) * * * * * * * * * * * * * * * * * * VarExp::toElem: __aggr3279 @ const(char)[] * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__aggr3279' of type 'const(char)[]') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * SliceExp::toElem: raw[] @ const(char)[] * * * * * * * * * * * * * * * * * * * VarExp::toElem: raw @ const(char)[] * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('raw' of type 'const(char)[]') * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * * * SetArray * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1414) * * * * * * * * * * * * * * DeclarationExp::toElem: ulong __key3280 = __aggr3279.length; | T=void * * * * * * * * * * * * * * * DtoDeclarationExp: __key3280 * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * * * * * * * * * llvm value for decl: %__key3280 = alloca i64, align 8 * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * AssignExp::toElem: __key3280 = __aggr3279.length | (ulong)(ulong = ulong) * * * * * * * * * * * * * * * * * * VarExp::toElem: __key3280 @ ulong * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__key3280' of type 'ulong') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * ArrayLengthExp::toElem: __aggr3279.length @ ulong * * * * * * * * * * * * * * * * * * * VarExp::toElem: __aggr3279 @ const(char)[] * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__aggr3279' of type 'const(char)[]') * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * lhs: %__key3280 = alloca i64, align 8 * * * * * * * * * * * * * * * * * * * rhs: %.len6 = load i64, i64* %18 * * * * * * * * * * * * * ForStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1414) * * * * * * * * * * * * * * PostExp::toElem: __key3280-- @ ulong * * * * * * * * * * * * * * * VarExp::toElem: __key3280 @ ulong * * * * * * * * * * * * * * * * DtoSymbolAddress ('__key3280' of type 'ulong') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * * Casting from 'ulong' to 'bool' * * * * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1414) * * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1414) * * * * * * * * * * * * * * * * DeclarationExp::toElem: const const(char) c = __aggr3279[__key3280]; | T=void * * * * * * * * * * * * * * * * * DtoDeclarationExp: c * * * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = const(char)) * * * * * * * * * * * * * * * * * * * llvm value for decl: %c = alloca i8, align 1 * * * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * * * AssignExp::toElem: c = __aggr3279[__key3280] | (const(char))(const(char) = const(char)) * * * * * * * * * * * * * * * * * * * * VarExp::toElem: c @ const(char) * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('c' of type 'const(char)') * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * IndexExp::toElem: __aggr3279[__key3280] @ const(char) * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: __aggr3279 @ const(char)[] * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__aggr3279' of type 'const(char)[]') * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: __key3280 @ ulong * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__key3280' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * * lhs: %c = alloca i8, align 1 * * * * * * * * * * * * * * * * * * * * * rhs: %27 = load i8, i8* %26 * * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1415) * * * * * * * * * * * * * * * * CallExp::toElem: put(w, c) @ void * * * * * * * * * * * * * * * * * VarExp::toElem: put @ nothrow @nogc @safe void(ref LockingTextWriter r, const(char) e) * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('put' of type 'nothrow @nogc @safe void(ref LockingTextWriter r, const(char) e)') * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * DtoFunctionType(nothrow @nogc @safe void(ref LockingTextWriter r, const(char) e)) * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * Final function type: void (i8, %std.stdio.File.LockingTextWriter*) * * * * * * * * * * * * * * * * * * * DtoResolveFunction(std.range.primitives.put!(LockingTextWriter, const(char)).put): /usr/include/dlang/ldc/std/range/primitives.d(277) * * * * * * * * * * * * * * * * * * * * DtoDeclareFunction(std.range.primitives.put!(LockingTextWriter, const(char)).put): /usr/include/dlang/ldc/std/range/primitives.d(277) * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(nothrow @nogc @safe void(ref LockingTextWriter r, const(char) e)) * * * * * * * * * * * * * * * * * * * * * func = declare void @_D3std5range10primitives47__T3putTS3std5stdio4File17LockingTextWriterTxaZ3putFNbNiNfKS3std5stdio4File17LockingTextWriterxaZv(i8, %std.stdio.File.LockingTextWriter*) * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * Building type: nothrow @nogc @safe void(ref LockingTextWriter r, const(char) e) * * * * * * * * * * * * * * * * * * * DtoFunctionType(nothrow @nogc @safe void(ref LockingTextWriter r, const(char) e)) * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * Final function type: void (i8, %std.stdio.File.LockingTextWriter*) * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * Function type: nothrow @nogc @safe void(ref LockingTextWriter r, const(char) e) * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * VarExp::toElem: w @ LockingTextWriter * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * type: LockingTextWriter * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * VarExp::toElem: c @ const(char) * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('c' of type 'const(char)') * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1418) * * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1419) * * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1419) * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1419) * * * * * * * * * * * * * * DeclarationExp::toElem: const(char)[] __aggr3281 = raw[]; | T=void * * * * * * * * * * * * * * * DtoDeclarationExp: __aggr3281 * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = const(char)[]) * * * * * * * * * * * * * * * * * llvm value for decl: %__aggr3281 = alloca { i64, i8* }, align 8 * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * AssignExp::toElem: __aggr3281 = raw[] | (const(char)[])(const(char)[] = const(char)[]) * * * * * * * * * * * * * * * * * * VarExp::toElem: __aggr3281 @ const(char)[] * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__aggr3281' of type 'const(char)[]') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * SliceExp::toElem: raw[] @ const(char)[] * * * * * * * * * * * * * * * * * * * VarExp::toElem: raw @ const(char)[] * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('raw' of type 'const(char)[]') * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * * * SetArray * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1419) * * * * * * * * * * * * * * DeclarationExp::toElem: ulong __key3282 = 0LU; | T=void * * * * * * * * * * * * * * * DtoDeclarationExp: __key3282 * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * * * * * * * * * llvm value for decl: %__key3282 = alloca i64, align 8 * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * AssignExp::toElem: __key3282 = 0LU | (ulong)(ulong = ulong) * * * * * * * * * * * * * * * * * * VarExp::toElem: __key3282 @ ulong * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__key3282' of type 'ulong') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * lhs: %__key3282 = alloca i64, align 8 * * * * * * * * * * * * * * * * * * * rhs: i64 0 * * * * * * * * * * * * * ForStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1419) * * * * * * * * * * * * * * CmpExp::toElem: __key3282 < __aggr3281.length @ bool * * * * * * * * * * * * * * * VarExp::toElem: __key3282 @ ulong * * * * * * * * * * * * * * * * DtoSymbolAddress ('__key3282' of type 'ulong') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * ArrayLengthExp::toElem: __aggr3281.length @ ulong * * * * * * * * * * * * * * * * VarExp::toElem: __aggr3281 @ const(char)[] * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__aggr3281' of type 'const(char)[]') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * type 1: %34 = load i64, i64* %__key3282 * * * * * * * * * * * * * * * type 2: %.len17 = load i64, i64* %33 * * * * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1419) * * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1419) * * * * * * * * * * * * * * * * DeclarationExp::toElem: const const(char) c = __aggr3281[__key3282]; | T=void * * * * * * * * * * * * * * * * * DtoDeclarationExp: c * * * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = const(char)) * * * * * * * * * * * * * * * * * * * llvm value for decl: %c18 = alloca i8, align 1 * * * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * * * AssignExp::toElem: c = __aggr3281[__key3282] | (const(char))(const(char) = const(char)) * * * * * * * * * * * * * * * * * * * * VarExp::toElem: c @ const(char) * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('c' of type 'const(char)') * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * IndexExp::toElem: __aggr3281[__key3282] @ const(char) * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: __aggr3281 @ const(char)[] * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__aggr3281' of type 'const(char)[]') * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: __key3282 @ ulong * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__key3282' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * * lhs: %c18 = alloca i8, align 1 * * * * * * * * * * * * * * * * * * * * * rhs: %41 = load i8, i8* %40 * * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1420) * * * * * * * * * * * * * * * * CallExp::toElem: put(w, c) @ void * * * * * * * * * * * * * * * * * VarExp::toElem: put @ nothrow @nogc @safe void(ref LockingTextWriter r, const(char) e) * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('put' of type 'nothrow @nogc @safe void(ref LockingTextWriter r, const(char) e)') * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * Function type: nothrow @nogc @safe void(ref LockingTextWriter r, const(char) e) * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * VarExp::toElem: w @ LockingTextWriter * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * type: LockingTextWriter * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * VarExp::toElem: c @ const(char) * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('c' of type 'const(char)') * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * AddAssignExp::toElem: __key3282 += 1LU @ ulong * * * * * * * * * * * * * * * Caching l-value of __key3282 += 1LU => __key3282 * * * * * * * * * * * * * * * * VarExp::toElem: __key3282 @ ulong * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__key3282' of type 'ulong') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * AddExp::toElem: __key3282 + 1LU @ ulong * * * * * * * * * * * * * * * * VarExp::toElem: __key3282 @ ulong * * * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * lhs: %__key3282 = alloca i64, align 8 * * * * * * * * * * * * * * * * rhs: %39 = add i64 %38, 1 * * * * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1422) * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1425) * * * * * * * DeclarationExp::toElem: uint base = cast(int)f.spec == 120 || cast(int)f.spec == 88 ? 16u : cast(int)f.spec == 111 ? 8u : cast(int)f.spec == 98 ? 2u : cast(int)f.spec == 115 || cast(int)f.spec == 100 || cast(int)f.spec == 117 ? 10u : 0u; | T=void * * * * * * * * DtoDeclarationExp: base * * * * * * * * * VarDeclaration * * * * * * * * * DtoVarDeclaration(vdtype = uint) * * * * * * * * * * llvm value for decl: %base = alloca i32, align 4 * * * * * * * * * * expression initializer * * * * * * * * * * AssignExp::toElem: base = cast(int)f.spec == 120 || cast(int)f.spec == 88 ? 16u : cast(int)f.spec == 111 ? 8u : cast(int)f.spec == 98 ? 2u : cast(int)f.spec == 115 || cast(int)f.spec == 100 || cast(int)f.spec == 117 ? 10u : 0u | (uint)(uint = uint) * * * * * * * * * * * VarExp::toElem: base @ uint * * * * * * * * * * * * DtoSymbolAddress ('base' of type 'uint') * * * * * * * * * * * * * a normal variable * * * * * * * * * * * CondExp::toElem: cast(int)f.spec == 120 || cast(int)f.spec == 88 ? 16u : cast(int)f.spec == 111 ? 8u : cast(int)f.spec == 98 ? 2u : cast(int)f.spec == 115 || cast(int)f.spec == 100 || cast(int)f.spec == 117 ? 10u : 0u @ uint * * * * * * * * * * * * OrOrExp::toElem: cast(int)f.spec == 120 || cast(int)f.spec == 88 @ bool * * * * * * * * * * * * * EqualExp::toElem: cast(int)f.spec == 120 @ bool * * * * * * * * * * * * * * CastExp::toElem: cast(int)f.spec @ int * * * * * * * * * * * * * * * DotVarExp::toElem: f.spec @ char * * * * * * * * * * * * * * * * VarExp::toElem: f @ FormatSpec!char * * * * * * * * * * * * * * * * * DtoSymbolAddress ('f' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * type: FormatSpec!char * * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.spec: * * * * * * * * * * * * * * * * * Value: %8 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %f_arg, i32 0, i32 2 * * * * * * * * * * * * * * * Casting from 'char' to 'int' * * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * * * IntegerExp::toElem: 120 @ int * * * * * * * * * * * * * * * IntegerExp::toConstElem: 120 @ int * * * * * * * * * * * * * * * * value = i32 120 * * * * * * * * * * * * * * integral or pointer or interface * * * * * * * * * * * * * * lv: %10 = zext i8 %9 to i32 * * * * * * * * * * * * * * rv: i32 120 * * * * * * * * * * * * * EqualExp::toElem: cast(int)f.spec == 88 @ bool * * * * * * * * * * * * * * CastExp::toElem: cast(int)f.spec @ int * * * * * * * * * * * * * * * DotVarExp::toElem: f.spec @ char * * * * * * * * * * * * * * * * VarExp::toElem: f @ FormatSpec!char * * * * * * * * * * * * * * * * * DtoSymbolAddress ('f' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * type: FormatSpec!char * * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.spec: * * * * * * * * * * * * * * * * * Value: %50 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %f_arg, i32 0, i32 2 * * * * * * * * * * * * * * * Casting from 'char' to 'int' * * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * * * IntegerExp::toElem: 88 @ int * * * * * * * * * * * * * * * IntegerExp::toConstElem: 88 @ int * * * * * * * * * * * * * * * * value = i32 88 * * * * * * * * * * * * * * integral or pointer or interface * * * * * * * * * * * * * * lv: %52 = zext i8 %51 to i32 * * * * * * * * * * * * * * rv: i32 88 * * * * * * * * * * * * IntegerExp::toElem: 16u @ uint * * * * * * * * * * * * * IntegerExp::toConstElem: 16u @ uint * * * * * * * * * * * * * * value = i32 16 * * * * * * * * * * * * CondExp::toElem: cast(int)f.spec == 111 ? 8u : cast(int)f.spec == 98 ? 2u : cast(int)f.spec == 115 || cast(int)f.spec == 100 || cast(int)f.spec == 117 ? 10u : 0u @ uint * * * * * * * * * * * * * EqualExp::toElem: cast(int)f.spec == 111 @ bool * * * * * * * * * * * * * * CastExp::toElem: cast(int)f.spec @ int * * * * * * * * * * * * * * * DotVarExp::toElem: f.spec @ char * * * * * * * * * * * * * * * * VarExp::toElem: f @ FormatSpec!char * * * * * * * * * * * * * * * * * DtoSymbolAddress ('f' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * type: FormatSpec!char * * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.spec: * * * * * * * * * * * * * * * * * Value: %50 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %f_arg, i32 0, i32 2 * * * * * * * * * * * * * * * Casting from 'char' to 'int' * * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * * * IntegerExp::toElem: 111 @ int * * * * * * * * * * * * * * * IntegerExp::toConstElem: 111 @ int * * * * * * * * * * * * * * * * value = i32 111 * * * * * * * * * * * * * * integral or pointer or interface * * * * * * * * * * * * * * lv: %52 = zext i8 %51 to i32 * * * * * * * * * * * * * * rv: i32 111 * * * * * * * * * * * * * IntegerExp::toElem: 8u @ uint * * * * * * * * * * * * * * IntegerExp::toConstElem: 8u @ uint * * * * * * * * * * * * * * * value = i32 8 * * * * * * * * * * * * * CondExp::toElem: cast(int)f.spec == 98 ? 2u : cast(int)f.spec == 115 || cast(int)f.spec == 100 || cast(int)f.spec == 117 ? 10u : 0u @ uint * * * * * * * * * * * * * * EqualExp::toElem: cast(int)f.spec == 98 @ bool * * * * * * * * * * * * * * * CastExp::toElem: cast(int)f.spec @ int * * * * * * * * * * * * * * * * DotVarExp::toElem: f.spec @ char * * * * * * * * * * * * * * * * * VarExp::toElem: f @ FormatSpec!char * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('f' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * type: FormatSpec!char * * * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.spec: * * * * * * * * * * * * * * * * * * Value: %58 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %f_arg, i32 0, i32 2 * * * * * * * * * * * * * * * * Casting from 'char' to 'int' * * * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * * * * IntegerExp::toElem: 98 @ int * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 98 @ int * * * * * * * * * * * * * * * * * value = i32 98 * * * * * * * * * * * * * * * integral or pointer or interface * * * * * * * * * * * * * * * lv: %60 = zext i8 %59 to i32 * * * * * * * * * * * * * * * rv: i32 98 * * * * * * * * * * * * * * IntegerExp::toElem: 2u @ uint * * * * * * * * * * * * * * * IntegerExp::toConstElem: 2u @ uint * * * * * * * * * * * * * * * * value = i32 2 * * * * * * * * * * * * * * CondExp::toElem: cast(int)f.spec == 115 || cast(int)f.spec == 100 || cast(int)f.spec == 117 ? 10u : 0u @ uint * * * * * * * * * * * * * * * OrOrExp::toElem: cast(int)f.spec == 115 || cast(int)f.spec == 100 || cast(int)f.spec == 117 @ bool * * * * * * * * * * * * * * * * OrOrExp::toElem: cast(int)f.spec == 115 || cast(int)f.spec == 100 @ bool * * * * * * * * * * * * * * * * * EqualExp::toElem: cast(int)f.spec == 115 @ bool * * * * * * * * * * * * * * * * * * CastExp::toElem: cast(int)f.spec @ int * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: f.spec @ char * * * * * * * * * * * * * * * * * * * * VarExp::toElem: f @ FormatSpec!char * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('f' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * type: FormatSpec!char * * * * * * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.spec: * * * * * * * * * * * * * * * * * * * * * Value: %62 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %f_arg, i32 0, i32 2 * * * * * * * * * * * * * * * * * * * Casting from 'char' to 'int' * * * * * * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 115 @ int * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 115 @ int * * * * * * * * * * * * * * * * * * * * value = i32 115 * * * * * * * * * * * * * * * * * * integral or pointer or interface * * * * * * * * * * * * * * * * * * lv: %64 = zext i8 %63 to i32 * * * * * * * * * * * * * * * * * * rv: i32 115 * * * * * * * * * * * * * * * * * EqualExp::toElem: cast(int)f.spec == 100 @ bool * * * * * * * * * * * * * * * * * * CastExp::toElem: cast(int)f.spec @ int * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: f.spec @ char * * * * * * * * * * * * * * * * * * * * VarExp::toElem: f @ FormatSpec!char * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('f' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * type: FormatSpec!char * * * * * * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.spec: * * * * * * * * * * * * * * * * * * * * * Value: %66 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %f_arg, i32 0, i32 2 * * * * * * * * * * * * * * * * * * * Casting from 'char' to 'int' * * * * * * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 100 @ int * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 100 @ int * * * * * * * * * * * * * * * * * * * * value = i32 100 * * * * * * * * * * * * * * * * * * integral or pointer or interface * * * * * * * * * * * * * * * * * * lv: %68 = zext i8 %67 to i32 * * * * * * * * * * * * * * * * * * rv: i32 100 * * * * * * * * * * * * * * * * EqualExp::toElem: cast(int)f.spec == 117 @ bool * * * * * * * * * * * * * * * * * CastExp::toElem: cast(int)f.spec @ int * * * * * * * * * * * * * * * * * * DotVarExp::toElem: f.spec @ char * * * * * * * * * * * * * * * * * * * VarExp::toElem: f @ FormatSpec!char * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('f' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * type: FormatSpec!char * * * * * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.spec: * * * * * * * * * * * * * * * * * * * * Value: %70 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %f_arg, i32 0, i32 2 * * * * * * * * * * * * * * * * * * Casting from 'char' to 'int' * * * * * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * * * * * * IntegerExp::toElem: 117 @ int * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 117 @ int * * * * * * * * * * * * * * * * * * * value = i32 117 * * * * * * * * * * * * * * * * * integral or pointer or interface * * * * * * * * * * * * * * * * * lv: %72 = zext i8 %71 to i32 * * * * * * * * * * * * * * * * * rv: i32 117 * * * * * * * * * * * * * * * IntegerExp::toElem: 10u @ uint * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 10u @ uint * * * * * * * * * * * * * * * * * value = i32 10 * * * * * * * * * * * * * * * IntegerExp::toElem: 0u @ uint * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0u @ uint * * * * * * * * * * * * * * * * * value = i32 0 * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * lhs: %base = alloca i32, align 4 * * * * * * * * * * * * rhs: %55 = load i32, i32* %54 * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1431) * * * * * * * CallExp::toElem: enforceEx(base > 0u, delegate string() => "integral", "/usr/include/dlang/ldc/std/format.d", 1431LU) @ bool * * * * * * * * VarExp::toElem: enforceEx @ pure @safe bool(bool value, lazy string msg = "", string file = __FILE__, ulong line = cast(ulong)__LINE__) * * * * * * * * * DtoSymbolAddress ('enforceEx' of type 'pure @safe bool(bool value, lazy string msg = "", string file = __FILE__, ulong line = cast(ulong)__LINE__)') * * * * * * * * * * FuncDeclaration * * * * * * * * DtoCallFunction() * * * * * * * * * doing normal arguments * * * * * * * * * Arguments so far: (0) * * * * * * * * * Function type: pure @safe bool(bool value, lazy string msg = "", string file = __FILE__, ulong line = cast(ulong)__LINE__) * * * * * * * * * DtoArgument * * * * * * * * * * CmpExp::toElem: base > 0u @ bool * * * * * * * * * * * VarExp::toElem: base @ uint * * * * * * * * * * * * DtoSymbolAddress ('base' of type 'uint') * * * * * * * * * * * * * a normal variable * * * * * * * * * * * IntegerExp::toElem: 0u @ uint * * * * * * * * * * * * IntegerExp::toConstElem: 0u @ uint * * * * * * * * * * * * * value = i32 0 * * * * * * * * * * * type 1: %56 = load i32, i32* %base * * * * * * * * * * * type 2: i32 0 * * * * * * * * * DtoArgument * * * * * * * * * * FuncExp::toElem: __dgliteral5 @ string delegate() pure nothrow @nogc @safe * * * * * * * * * * * nested * * * * * * * * * * * kind = delegate * * * * * * * * * * * DtoDefineFunction(std.format.formatValue!(LockingTextWriter, ubyte, char).formatValue.__dgliteral5): /usr/include/dlang/ldc/std/format.d(1432) * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe string()) * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * Final function type: { i64, i8* } (i8*) * * * * * * * * * * * * DtoResolveFunction(std.format.formatValue!(LockingTextWriter, ubyte, char).formatValue.__dgliteral5): /usr/include/dlang/ldc/std/format.d(1432) * * * * * * * * * * * * * DtoDeclareFunction(std.format.formatValue!(LockingTextWriter, ubyte, char).formatValue.__dgliteral5): /usr/include/dlang/ldc/std/format.d(1432) * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe string()) * * * * * * * * * * * * * * func = declare { i64, i8* } @_D3std6format57__T11formatValueTS3std5stdio4File17LockingTextWriterThTaZ11formatValueFS3std5stdio4File17LockingTextWriterhKS3std6format18__T10FormatSpecTaZ10FormatSpecZ12__dgliteral5MFNaNbNiNfZAya(i8*) * * * * * * * * * * * * Doing function body for: __dgliteral5 * * * * * * * * * * * * DtoCreateNestedContext for __dgliteral5 * * * * * * * * * * * * * DtoCreateNestedContextType for std.format.formatValue!(LockingTextWriter, ubyte, char).formatValue.__dgliteral5 * * * * * * * * * * * * * * DtoCreateNestedContextType for std.format.formatValue!(LockingTextWriter, ubyte, char).formatValue * * * * * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1432) * * * * * * * * * * * * * * StringExp::toElem: "integral" @ string * * * * * * * * * * * * * * return value is '0x123bb390' * * * * * * * * * * * Building type: string delegate() pure nothrow @nogc @safe * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe string()) * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * Final function type: { i64, i8* } (i8*) * * * * * * * * * DtoArgument * * * * * * * * * * StringExp::toElem: "/usr/include/dlang/ldc/std/format.d" @ string * * * * * * * * * DtoArgument * * * * * * * * * * IntegerExp::toElem: 1431LU @ ulong * * * * * * * * * * * IntegerExp::toConstElem: 1431LU @ ulong * * * * * * * * * * * * value = i64 1431 * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1441) * * * * * * * DeclarationExp::toElem: alias C = ulong; | T=void * * * * * * * * DtoDeclarationExp: C * * * * * * * * * Ignoring Symbol: alias * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1442) * * * * * * * CallExp::toElem: formatIntegral((LockingTextWriter __copytmp3290 = (__copytmp3290 = w).__postblit(); , __copytmp3290), cast(ulong)val, f, base, 255LU) @ void * * * * * * * * VarExp::toElem: formatIntegral @ @safe void(LockingTextWriter w, const(ulong) val, ref FormatSpec!char f, uint base, ulong mask) * * * * * * * * * DtoSymbolAddress ('formatIntegral' of type '@safe void(LockingTextWriter w, const(ulong) val, ref FormatSpec!char f, uint base, ulong mask)') * * * * * * * * * * FuncDeclaration * * * * * * * * * * DtoFunctionType(@safe void(LockingTextWriter w, const(ulong) val, ref FormatSpec!char f, uint base, ulong mask)) * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * Final function type: void (i64, i32, %"std.format.FormatSpec!char.FormatSpec"*, i64, %std.stdio.File.LockingTextWriter*) * * * * * * * * * * DtoResolveFunction(std.format.formatIntegral!(LockingTextWriter, ulong, char).formatIntegral): /usr/include/dlang/ldc/std/format.d(1456) * * * * * * * * * * * DtoDeclareFunction(std.format.formatIntegral!(LockingTextWriter, ulong, char).formatIntegral): /usr/include/dlang/ldc/std/format.d(1456) * * * * * * * * * * * * DtoFunctionType(@safe void(LockingTextWriter w, const(ulong) val, ref FormatSpec!char f, uint base, ulong mask)) * * * * * * * * * * * * func = declare void @_D3std6format60__T14formatIntegralTS3std5stdio4File17LockingTextWriterTmTaZ14formatIntegralFNfS3std5stdio4File17LockingTextWriterxmKS3std6format18__T10FormatSpecTaZ10FormatSpeckmZv(i64, i32, %"std.format.FormatSpec!char.FormatSpec"*, i64, %std.stdio.File.LockingTextWriter*) * * * * * * * * DtoCallFunction() * * * * * * * * * Building type: @safe void(LockingTextWriter w, const(ulong) val, ref FormatSpec!char f, uint base, ulong mask) * * * * * * * * * * DtoFunctionType(@safe void(LockingTextWriter w, const(ulong) val, ref FormatSpec!char f, uint base, ulong mask)) * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * Final function type: void (i64, i32, %"std.format.FormatSpec!char.FormatSpec"*, i64, %std.stdio.File.LockingTextWriter*) * * * * * * * * * doing normal arguments * * * * * * * * * Arguments so far: (0) * * * * * * * * * Function type: @safe void(LockingTextWriter w, const(ulong) val, ref FormatSpec!char f, uint base, ulong mask) * * * * * * * * * DtoArgument * * * * * * * * * * CommaExp::toElem: LockingTextWriter __copytmp3290 = (__copytmp3290 = w).__postblit(); , __copytmp3290 @ LockingTextWriter * * * * * * * * * * * DeclarationExp::toElem: LockingTextWriter __copytmp3290 = (__copytmp3290 = w).__postblit(); | T=void * * * * * * * * * * * * DtoDeclarationExp: __copytmp3290 * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * DtoVarDeclaration(vdtype = LockingTextWriter) * * * * * * * * * * * * * * llvm value for decl: %__copytmp3290 = alloca %std.stdio.File.LockingTextWriter, align 8 * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * CallExp::toElem: (__copytmp3290 = w).__postblit() @ void * * * * * * * * * * * * * * * DotVarExp::toElem: (__copytmp3290 = w).__postblit @ @trusted void() * * * * * * * * * * * * * * * * AssignExp::toElem: __copytmp3290 = w | (LockingTextWriter)(LockingTextWriter = LockingTextWriter) * * * * * * * * * * * * * * * * * VarExp::toElem: __copytmp3290 @ LockingTextWriter * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__copytmp3290' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * VarExp::toElem: w @ LockingTextWriter * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * type: LockingTextWriter * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * %__copytmp3290 = alloca %std.stdio.File.LockingTextWriter, align 8 * * * * * * * * * * * * * * * * Function type: @trusted void() * * * * * * * * * * * VarExp::toElem: __copytmp3290 @ LockingTextWriter * * * * * * * * * * * * DtoSymbolAddress ('__copytmp3290' of type 'LockingTextWriter') * * * * * * * * * * * * * a normal variable * * * * * * * * * DtoArgument * * * * * * * * * * CastExp::toElem: cast(ulong)val @ const(ulong) * * * * * * * * * * * VarExp::toElem: val @ ubyte * * * * * * * * * * * * DtoSymbolAddress ('val' of type 'ubyte') * * * * * * * * * * * * * a normal variable * * * * * * * * * * * Casting from 'ubyte' to 'ulong' * * * * * * * * * * * * cast to: i64 * * * * * * * * * * * repainting from 'ulong' to 'const(ulong)' * * * * * * * * * DtoArgument * * * * * * * * * * VarExp::toElem: f @ FormatSpec!char * * * * * * * * * * * DtoSymbolAddress ('f' of type 'FormatSpec!char') * * * * * * * * * * * * function param * * * * * * * * * * * * type: FormatSpec!char * * * * * * * * * DtoArgument * * * * * * * * * * VarExp::toElem: base @ uint * * * * * * * * * * * DtoSymbolAddress ('base' of type 'uint') * * * * * * * * * * * * a normal variable * * * * * * * * * DtoArgument * * * * * * * * * * IntegerExp::toElem: 255LU @ ulong * * * * * * * * * * * IntegerExp::toConstElem: 255LU @ ulong * * * * * * * * * * * * value = i64 255 * TemplateInstance::codegen: 'std.format.formatValue!(LockingTextWriter, ubyte, char).formatValue.__lambda4!ubyte' * * DtoDefineFunction(std.format.formatValue!(LockingTextWriter, ubyte, char).formatValue.__lambda4): /usr/include/dlang/ldc/std/format.d(1407) * TemplateInstance::codegen: 'std.range.primitives.put!(LockingTextWriter, const(char))' * * DtoDefineFunction(std.range.primitives.put!(LockingTextWriter, const(char)).put): /usr/include/dlang/ldc/std/range/primitives.d(277) * * * Doing function body for: put * * * DtoCreateNestedContext for put * * * * DtoCreateNestedContextType for std.range.primitives.put!(LockingTextWriter, const(char)).put * * * CompoundStatement::toIR(): * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/range/primitives.d(282) * * * * * CallExp::toElem: doPut(r, e) @ void * * * * * * VarExp::toElem: doPut @ nothrow @nogc @safe void(ref LockingTextWriter r, auto ref const(char) e) * * * * * * * DtoSymbolAddress ('doPut' of type 'nothrow @nogc @safe void(ref LockingTextWriter r, auto ref const(char) e)') * * * * * * * * FuncDeclaration * * * * * * * * DtoFunctionType(nothrow @nogc @safe void(ref LockingTextWriter r, auto ref const(char) e)) * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * Final function type: void (i8*, %std.stdio.File.LockingTextWriter*) * * * * * * * * DtoResolveFunction(std.range.primitives.doPut!(LockingTextWriter, const(char)).doPut): /usr/include/dlang/ldc/std/range/primitives.d(182) * * * * * * * * * DtoDeclareFunction(std.range.primitives.doPut!(LockingTextWriter, const(char)).doPut): /usr/include/dlang/ldc/std/range/primitives.d(182) * * * * * * * * * * DtoFunctionType(nothrow @nogc @safe void(ref LockingTextWriter r, auto ref const(char) e)) * * * * * * * * * * func = declare void @_D3std5range10primitives49__T5doPutTS3std5stdio4File17LockingTextWriterTxaZ5doPutFNbNiNfKS3std5stdio4File17LockingTextWriterKxaZv(i8*, %std.stdio.File.LockingTextWriter*) * * * * * * DtoCallFunction() * * * * * * * Building type: nothrow @nogc @safe void(ref LockingTextWriter r, auto ref const(char) e) * * * * * * * * DtoFunctionType(nothrow @nogc @safe void(ref LockingTextWriter r, auto ref const(char) e)) * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * Final function type: void (i8*, %std.stdio.File.LockingTextWriter*) * * * * * * * doing normal arguments * * * * * * * Arguments so far: (0) * * * * * * * Function type: nothrow @nogc @safe void(ref LockingTextWriter r, auto ref const(char) e) * * * * * * * DtoArgument * * * * * * * * VarExp::toElem: r @ LockingTextWriter * * * * * * * * * DtoSymbolAddress ('r' of type 'LockingTextWriter') * * * * * * * * * * function param * * * * * * * * * * type: LockingTextWriter * * * * * * * DtoArgument * * * * * * * * VarExp::toElem: e @ const(char) * * * * * * * * * DtoSymbolAddress ('e' of type 'const(char)') * * * * * * * * * * function param * * * * * * * * * * type: const(char) * TemplateInstance::codegen: 'std.range.primitives.doPut!(LockingTextWriter, const(char))' * * DtoDefineFunction(std.range.primitives.doPut!(LockingTextWriter, const(char)).doPut): /usr/include/dlang/ldc/std/range/primitives.d(182) * * * Doing function body for: doPut * * * DtoCreateNestedContext for doPut * * * * DtoCreateNestedContextType for std.range.primitives.doPut!(LockingTextWriter, const(char)).doPut * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/range/primitives.d(183) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/range/primitives.d(187) * * * * * * DeclarationExp::toElem: enum bool usingPut = true; | T=void * * * * * * * DtoDeclarationExp: usingPut * * * * * * * * VarDeclaration * * * * * * * * Manifest constant, nothing to do. * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/range/primitives.d(193) * * * * * * CallExp::toElem: r.put(e) @ void * * * * * * * DotVarExp::toElem: r.put @ nothrow @nogc @safe void(const(char) c) * * * * * * * * VarExp::toElem: r @ LockingTextWriter * * * * * * * * * DtoSymbolAddress ('r' of type 'LockingTextWriter') * * * * * * * * * * function param * * * * * * * * * * type: LockingTextWriter * * * * * * * * isMember = this is: LockingTextWriter * * * * * * * * DtoFunctionType(nothrow @nogc @safe void(const(char) c)) * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * Final function type: void (%std.stdio.File.LockingTextWriter*, i8) * * * * * * * * DtoResolveFunction(std.stdio.File.LockingTextWriter.put!(const(char)).put): /usr/include/dlang/ldc/std/stdio.d(2452) * * * * * * * * * DtoDeclareFunction(std.stdio.File.LockingTextWriter.put!(const(char)).put): /usr/include/dlang/ldc/std/stdio.d(2452) * * * * * * * * * * isMember = this is: LockingTextWriter * * * * * * * * * * DtoFunctionType(nothrow @nogc @safe void(const(char) c)) * * * * * * * * * * func = declare void @_D3std5stdio4File17LockingTextWriter11__T3putTxaZ3putMFNbNiNfxaZv(%std.stdio.File.LockingTextWriter*, i8) * * * * * * * DtoCallFunction() * * * * * * * * Building type: nothrow @nogc @safe void(const(char) c) * * * * * * * * * DtoFunctionType(nothrow @nogc @safe void(const(char) c)) * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: void (i8) * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (1) * * * * * * * * * %std.stdio.File.LockingTextWriter* %r_arg * * * * * * * * Function type: nothrow @nogc @safe void(const(char) c) * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: e @ const(char) * * * * * * * * * * DtoSymbolAddress ('e' of type 'const(char)') * * * * * * * * * * * function param * * * * * * * * * * * type: const(char) * TemplateInstance::codegen: 'std.range.primitives.ElementType!(const(char))' * TemplateInstance::codegen: 'std.format.formatIntegral!(LockingTextWriter, ulong, char)' * * DtoDefineFunction(std.format.formatIntegral!(LockingTextWriter, ulong, char).formatIntegral): /usr/include/dlang/ldc/std/format.d(1456) * * * Doing function body for: formatIntegral * * * DtoCreateNestedContext for formatIntegral * * * * DtoCreateNestedContextType for std.format.formatIntegral!(LockingTextWriter, ulong, char).formatIntegral * * * TryFinallyStatement::toIR(): * * * * ExpStatement::toIR(): * * * * * CallExp::toElem: w.~this() @ void * * * * * * DotVarExp::toElem: w.~this @ @trusted void() * * * * * * * VarExp::toElem: w @ LockingTextWriter * * * * * * * * DtoSymbolAddress ('w' of type 'LockingTextWriter') * * * * * * * * * function param * * * * * * * * * type: LockingTextWriter * * * * * * DtoCallFunction() * * * * * * * doing normal arguments * * * * * * * Arguments so far: (1) * * * * * * * * %std.stdio.File.LockingTextWriter* %w_arg * * * * * * * Function type: @trusted void() * * * * CompoundStatement::toIR(): * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1457) * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1458) * * * * * * * DeclarationExp::toElem: FormatSpec!char fs = f; | T=void * * * * * * * * DtoDeclarationExp: fs * * * * * * * * * VarDeclaration * * * * * * * * * DtoVarDeclaration(vdtype = FormatSpec!char) * * * * * * * * * * llvm value for decl: %fs = alloca %"std.format.FormatSpec!char.FormatSpec", align 8 * * * * * * * * * * expression initializer * * * * * * * * * * AssignExp::toElem: fs = f | (FormatSpec!char)(FormatSpec!char = FormatSpec!char) * * * * * * * * * * * VarExp::toElem: fs @ FormatSpec!char * * * * * * * * * * * * DtoSymbolAddress ('fs' of type 'FormatSpec!char') * * * * * * * * * * * * * a normal variable * * * * * * * * * * * VarExp::toElem: f @ FormatSpec!char * * * * * * * * * * * * DtoSymbolAddress ('f' of type 'FormatSpec!char') * * * * * * * * * * * * * function param * * * * * * * * * * * * * type: FormatSpec!char * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * DtoAssign() * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1459) * * * * * * * DeclarationExp::toElem: ulong arg = val; | T=void * * * * * * * * DtoDeclarationExp: arg * * * * * * * * * VarDeclaration * * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * * llvm value for decl: %arg = alloca i64, align 8 * * * * * * * * * * expression initializer * * * * * * * * * * AssignExp::toElem: arg = val | (ulong)(ulong = ulong) * * * * * * * * * * * VarExp::toElem: arg @ ulong * * * * * * * * * * * * DtoSymbolAddress ('arg' of type 'ulong') * * * * * * * * * * * * * a normal variable * * * * * * * * * * * VarExp::toElem: val @ ulong * * * * * * * * * * * * DtoSymbolAddress ('val' of type 'const(ulong)') * * * * * * * * * * * * * function param * * * * * * * * * * * * * type: const(ulong) * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * lhs: %arg = alloca i64, align 8 * * * * * * * * * * * * rhs: %3 = load i64, i64* %val * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1461) * * * * * * * DeclarationExp::toElem: bool negative = base == 10u && arg < 0LU; | T=void * * * * * * * * DtoDeclarationExp: negative * * * * * * * * * VarDeclaration * * * * * * * * * DtoVarDeclaration(vdtype = bool) * * * * * * * * * * llvm value for decl: %negative = alloca i8, align 1 * * * * * * * * * * expression initializer * * * * * * * * * * AssignExp::toElem: negative = base == 10u && arg < 0LU | (bool)(bool = bool) * * * * * * * * * * * VarExp::toElem: negative @ bool * * * * * * * * * * * * DtoSymbolAddress ('negative' of type 'bool') * * * * * * * * * * * * * a normal variable * * * * * * * * * * * AndAndExp::toElem: base == 10u && arg < 0LU @ bool * * * * * * * * * * * * EqualExp::toElem: base == 10u @ bool * * * * * * * * * * * * * VarExp::toElem: base @ uint * * * * * * * * * * * * * * DtoSymbolAddress ('base' of type 'uint') * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * type: uint * * * * * * * * * * * * * IntegerExp::toElem: 10u @ uint * * * * * * * * * * * * * * IntegerExp::toConstElem: 10u @ uint * * * * * * * * * * * * * * * value = i32 10 * * * * * * * * * * * * * integral or pointer or interface * * * * * * * * * * * * * lv: %4 = load i32, i32* %base * * * * * * * * * * * * * rv: i32 10 * * * * * * * * * * * * CmpExp::toElem: arg < 0LU @ bool * * * * * * * * * * * * * VarExp::toElem: arg @ ulong * * * * * * * * * * * * * * DtoSymbolAddress ('arg' of type 'ulong') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * type 1: %6 = load i64, i64* %arg * * * * * * * * * * * * * type 2: i64 0 * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * DtoAssign() * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1462) * * * * * * * VarExp::toElem: negative @ bool * * * * * * * * DtoSymbolAddress ('negative' of type 'bool') * * * * * * * * * a normal variable * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1463) * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1464) * * * * * * * * * AssignExp::toElem: arg = -arg | (ulong)(ulong = ulong) * * * * * * * * * * VarExp::toElem: arg @ ulong * * * * * * * * * * * DtoSymbolAddress ('arg' of type 'ulong') * * * * * * * * * * * * a normal variable * * * * * * * * * * NegExp::toElem: -arg @ ulong * * * * * * * * * * * VarExp::toElem: arg @ ulong * * * * * * * * * * * * DtoSymbolAddress ('arg' of type 'ulong') * * * * * * * * * * * * * a normal variable * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %arg = alloca i64, align 8 * * * * * * * * * * * rhs: %negval = sub i64 0, %11 * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1471) * * * * * * * CallExp::toElem: formatUnsigned((LockingTextWriter __copytmp3289 = (__copytmp3289 = w).__postblit(); , __copytmp3289), arg & mask, fs, base, negative) @ void * * * * * * * * VarExp::toElem: formatUnsigned @ @safe void(LockingTextWriter w, ulong arg, ref FormatSpec!char fs, uint base, bool negative) * * * * * * * * * DtoSymbolAddress ('formatUnsigned' of type '@safe void(LockingTextWriter w, ulong arg, ref FormatSpec!char fs, uint base, bool negative)') * * * * * * * * * * FuncDeclaration * * * * * * * * * * DtoFunctionType(@safe void(LockingTextWriter w, ulong arg, ref FormatSpec!char fs, uint base, bool negative)) * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * Final function type: void (i1, i32, %"std.format.FormatSpec!char.FormatSpec"*, i64, %std.stdio.File.LockingTextWriter*) * * * * * * * * * * DtoResolveFunction(std.format.formatUnsigned!(LockingTextWriter, ulong, char).formatUnsigned): /usr/include/dlang/ldc/std/format.d(1474) * * * * * * * * * * * DtoDeclareFunction(std.format.formatUnsigned!(LockingTextWriter, ulong, char).formatUnsigned): /usr/include/dlang/ldc/std/format.d(1474) * * * * * * * * * * * * DtoFunctionType(@safe void(LockingTextWriter w, ulong arg, ref FormatSpec!char fs, uint base, bool negative)) * * * * * * * * * * * * func = declare void @_D3std6format60__T14formatUnsignedTS3std5stdio4File17LockingTextWriterTmTaZ14formatUnsignedFNfS3std5stdio4File17LockingTextWritermKS3std6format18__T10FormatSpecTaZ10FormatSpeckbZv(i1, i32, %"std.format.FormatSpec!char.FormatSpec"*, i64, %std.stdio.File.LockingTextWriter*) * * * * * * * * DtoCallFunction() * * * * * * * * * Building type: @safe void(LockingTextWriter w, ulong arg, ref FormatSpec!char fs, uint base, bool negative) * * * * * * * * * * DtoFunctionType(@safe void(LockingTextWriter w, ulong arg, ref FormatSpec!char fs, uint base, bool negative)) * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * Final function type: void (i1, i32, %"std.format.FormatSpec!char.FormatSpec"*, i64, %std.stdio.File.LockingTextWriter*) * * * * * * * * * doing normal arguments * * * * * * * * * Arguments so far: (0) * * * * * * * * * Function type: @safe void(LockingTextWriter w, ulong arg, ref FormatSpec!char fs, uint base, bool negative) * * * * * * * * * DtoArgument * * * * * * * * * * CommaExp::toElem: LockingTextWriter __copytmp3289 = (__copytmp3289 = w).__postblit(); , __copytmp3289 @ LockingTextWriter * * * * * * * * * * * DeclarationExp::toElem: LockingTextWriter __copytmp3289 = (__copytmp3289 = w).__postblit(); | T=void * * * * * * * * * * * * DtoDeclarationExp: __copytmp3289 * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * DtoVarDeclaration(vdtype = LockingTextWriter) * * * * * * * * * * * * * * llvm value for decl: %__copytmp3289 = alloca %std.stdio.File.LockingTextWriter, align 8 * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * CallExp::toElem: (__copytmp3289 = w).__postblit() @ void * * * * * * * * * * * * * * * DotVarExp::toElem: (__copytmp3289 = w).__postblit @ @trusted void() * * * * * * * * * * * * * * * * AssignExp::toElem: __copytmp3289 = w | (LockingTextWriter)(LockingTextWriter = LockingTextWriter) * * * * * * * * * * * * * * * * * VarExp::toElem: __copytmp3289 @ LockingTextWriter * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__copytmp3289' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * VarExp::toElem: w @ LockingTextWriter * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * type: LockingTextWriter * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * %__copytmp3289 = alloca %std.stdio.File.LockingTextWriter, align 8 * * * * * * * * * * * * * * * * Function type: @trusted void() * * * * * * * * * * * VarExp::toElem: __copytmp3289 @ LockingTextWriter * * * * * * * * * * * * DtoSymbolAddress ('__copytmp3289' of type 'LockingTextWriter') * * * * * * * * * * * * * a normal variable * * * * * * * * * DtoArgument * * * * * * * * * * AndExp::toElem: arg & mask @ ulong * * * * * * * * * * * VarExp::toElem: arg @ ulong * * * * * * * * * * * * DtoSymbolAddress ('arg' of type 'ulong') * * * * * * * * * * * * * a normal variable * * * * * * * * * * * VarExp::toElem: mask @ ulong * * * * * * * * * * * * DtoSymbolAddress ('mask' of type 'ulong') * * * * * * * * * * * * * function param * * * * * * * * * * * * * type: ulong * * * * * * * * * DtoArgument * * * * * * * * * * VarExp::toElem: fs @ FormatSpec!char * * * * * * * * * * * DtoSymbolAddress ('fs' of type 'FormatSpec!char') * * * * * * * * * * * * a normal variable * * * * * * * * * DtoArgument * * * * * * * * * * VarExp::toElem: base @ uint * * * * * * * * * * * DtoSymbolAddress ('base' of type 'uint') * * * * * * * * * * * * function param * * * * * * * * * * * * type: uint * * * * * * * * * DtoArgument * * * * * * * * * * VarExp::toElem: negative @ bool * * * * * * * * * * * DtoSymbolAddress ('negative' of type 'bool') * * * * * * * * * * * * a normal variable * TemplateInstance::codegen: 'std.format.formatUnsigned!(LockingTextWriter, ulong, char)' * * DtoDefineFunction(std.format.formatUnsigned!(LockingTextWriter, ulong, char).formatUnsigned): /usr/include/dlang/ldc/std/format.d(1474) * * * Doing function body for: formatUnsigned * * * DtoCreateNestedContext for formatUnsigned * * * * DtoCreateNestedContextType for std.format.formatUnsigned!(LockingTextWriter, ulong, char).formatUnsigned * * * TryFinallyStatement::toIR(): * * * * ExpStatement::toIR(): * * * * * CallExp::toElem: w.~this() @ void * * * * * * DotVarExp::toElem: w.~this @ @trusted void() * * * * * * * VarExp::toElem: w @ LockingTextWriter * * * * * * * * DtoSymbolAddress ('w' of type 'LockingTextWriter') * * * * * * * * * function param * * * * * * * * * type: LockingTextWriter * * * * * * DtoCallFunction() * * * * * * * doing normal arguments * * * * * * * Arguments so far: (1) * * * * * * * * %std.stdio.File.LockingTextWriter* %w_arg * * * * * * * Function type: @trusted void() * * * * CompoundStatement::toIR(): * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1475) * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1476) * * * * * * * EqualExp::toElem: fs.precision == 2147483646 @ bool * * * * * * * * DotVarExp::toElem: fs.precision @ int * * * * * * * * * VarExp::toElem: fs @ FormatSpec!char * * * * * * * * * * DtoSymbolAddress ('fs' of type 'FormatSpec!char') * * * * * * * * * * * function param * * * * * * * * * * * type: FormatSpec!char * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.precision: * * * * * * * * * * Value: %2 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %fs_arg, i32 0, i32 1 * * * * * * * * IntegerExp::toElem: 2147483646 @ int * * * * * * * * * IntegerExp::toConstElem: 2147483646 @ int * * * * * * * * * * value = i32 2147483646 * * * * * * * * integral or pointer or interface * * * * * * * * lv: %3 = load i32, i32* %2 * * * * * * * * rv: i32 2147483646 * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1477) * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1479) * * * * * * * * * AssignExp::toElem: fs.precision = 1 | (int)(int = int) * * * * * * * * * * DotVarExp::toElem: fs.precision @ int * * * * * * * * * * * VarExp::toElem: fs @ FormatSpec!char * * * * * * * * * * * * DtoSymbolAddress ('fs' of type 'FormatSpec!char') * * * * * * * * * * * * * function param * * * * * * * * * * * * * type: FormatSpec!char * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.precision: * * * * * * * * * * * * Value: %5 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %fs_arg, i32 0, i32 1 * * * * * * * * * * IntegerExp::toElem: 1 @ int * * * * * * * * * * * IntegerExp::toConstElem: 1 @ int * * * * * * * * * * * * value = i32 1 * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %5 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %fs_arg, i32 0, i32 1 * * * * * * * * * * * rhs: i32 1 * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1482) * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1484) * * * * * * * * * CallExp::toElem: fs.flZero(false) @ void * * * * * * * * * * DotVarExp::toElem: fs.flZero @ pure nothrow @nogc @property @safe void(bool v) * * * * * * * * * * * VarExp::toElem: fs @ FormatSpec!char * * * * * * * * * * * * DtoSymbolAddress ('fs' of type 'FormatSpec!char') * * * * * * * * * * * * * function param * * * * * * * * * * * * * type: FormatSpec!char * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * doing normal arguments * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * %"std.format.FormatSpec!char.FormatSpec"* %fs_arg * * * * * * * * * * * Function type: pure nothrow @nogc @property @safe void(bool v) * * * * * * * * * * * DtoArgument * * * * * * * * * * * * IntegerExp::toElem: false @ bool * * * * * * * * * * * * * IntegerExp::toConstElem: false @ bool * * * * * * * * * * * * * * value = i1 false * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1487) * * * * * * * DeclarationExp::toElem: char leftPad = void; | T=void * * * * * * * * DtoDeclarationExp: leftPad * * * * * * * * * VarDeclaration * * * * * * * * * DtoVarDeclaration(vdtype = char) * * * * * * * * * * llvm value for decl: %leftPad = alloca i8, align 1 * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1488) * * * * * * * AndAndExp::toElem: !fs.flDash() && !fs.flZero() @ bool * * * * * * * * NotExp::toElem: !fs.flDash() @ bool * * * * * * * * * CallExp::toElem: fs.flDash() @ bool * * * * * * * * * * DotVarExp::toElem: fs.flDash @ const pure nothrow @nogc @property @safe bool() * * * * * * * * * * * VarExp::toElem: fs @ FormatSpec!char * * * * * * * * * * * * DtoSymbolAddress ('fs' of type 'FormatSpec!char') * * * * * * * * * * * * * function param * * * * * * * * * * * * * type: FormatSpec!char * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * doing normal arguments * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * %"std.format.FormatSpec!char.FormatSpec"* %fs_arg * * * * * * * * * * * Function type: const pure nothrow @nogc @property @safe bool() * * * * * * * * NotExp::toElem: !fs.flZero() @ bool * * * * * * * * * CallExp::toElem: fs.flZero() @ bool * * * * * * * * * * DotVarExp::toElem: fs.flZero @ const pure nothrow @nogc @property @safe bool() * * * * * * * * * * * VarExp::toElem: fs @ FormatSpec!char * * * * * * * * * * * * DtoSymbolAddress ('fs' of type 'FormatSpec!char') * * * * * * * * * * * * * function param * * * * * * * * * * * * * type: FormatSpec!char * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * doing normal arguments * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * %"std.format.FormatSpec!char.FormatSpec"* %fs_arg * * * * * * * * * * * Function type: const pure nothrow @nogc @property @safe bool() * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1489) * * * * * * * * AssignExp::toElem: leftPad = ' ' | (char)(char = char) * * * * * * * * * VarExp::toElem: leftPad @ char * * * * * * * * * * DtoSymbolAddress ('leftPad' of type 'char') * * * * * * * * * * * a normal variable * * * * * * * * * IntegerExp::toElem: ' ' @ char * * * * * * * * * * IntegerExp::toConstElem: ' ' @ char * * * * * * * * * * * value = i8 32 * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * DtoAssign() * * * * * * * * * * lhs: %leftPad = alloca i8, align 1 * * * * * * * * * * rhs: i8 32 * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1490) * * * * * * * * AndAndExp::toElem: !fs.flDash() && fs.flZero() @ bool * * * * * * * * * NotExp::toElem: !fs.flDash() @ bool * * * * * * * * * * CallExp::toElem: fs.flDash() @ bool * * * * * * * * * * * DotVarExp::toElem: fs.flDash @ const pure nothrow @nogc @property @safe bool() * * * * * * * * * * * * VarExp::toElem: fs @ FormatSpec!char * * * * * * * * * * * * * DtoSymbolAddress ('fs' of type 'FormatSpec!char') * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * type: FormatSpec!char * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * %"std.format.FormatSpec!char.FormatSpec"* %fs_arg * * * * * * * * * * * * Function type: const pure nothrow @nogc @property @safe bool() * * * * * * * * * CallExp::toElem: fs.flZero() @ bool * * * * * * * * * * DotVarExp::toElem: fs.flZero @ const pure nothrow @nogc @property @safe bool() * * * * * * * * * * * VarExp::toElem: fs @ FormatSpec!char * * * * * * * * * * * * DtoSymbolAddress ('fs' of type 'FormatSpec!char') * * * * * * * * * * * * * function param * * * * * * * * * * * * * type: FormatSpec!char * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * doing normal arguments * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * %"std.format.FormatSpec!char.FormatSpec"* %fs_arg * * * * * * * * * * * Function type: const pure nothrow @nogc @property @safe bool() * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1491) * * * * * * * * * AssignExp::toElem: leftPad = '0' | (char)(char = char) * * * * * * * * * * VarExp::toElem: leftPad @ char * * * * * * * * * * * DtoSymbolAddress ('leftPad' of type 'char') * * * * * * * * * * * * a normal variable * * * * * * * * * * IntegerExp::toElem: '0' @ char * * * * * * * * * * * IntegerExp::toConstElem: '0' @ char * * * * * * * * * * * * value = i8 48 * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %leftPad = alloca i8, align 1 * * * * * * * * * * * rhs: i8 48 * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1493) * * * * * * * * * AssignExp::toElem: leftPad = '\x00' | (char)(char = char) * * * * * * * * * * VarExp::toElem: leftPad @ char * * * * * * * * * * * DtoSymbolAddress ('leftPad' of type 'char') * * * * * * * * * * * * a normal variable * * * * * * * * * * IntegerExp::toElem: '\x00' @ char * * * * * * * * * * * IntegerExp::toConstElem: '\x00' @ char * * * * * * * * * * * * value = i8 0 * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %leftPad = alloca i8, align 1 * * * * * * * * * * * rhs: i8 0 * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1496) * * * * * * * DeclarationExp::toElem: char forcedPrefix = void; | T=void * * * * * * * * DtoDeclarationExp: forcedPrefix * * * * * * * * * VarDeclaration * * * * * * * * * DtoVarDeclaration(vdtype = char) * * * * * * * * * * llvm value for decl: %forcedPrefix = alloca i8, align 1 * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1497) * * * * * * * CallExp::toElem: fs.flPlus() @ bool * * * * * * * * DotVarExp::toElem: fs.flPlus @ const pure nothrow @nogc @property @safe bool() * * * * * * * * * VarExp::toElem: fs @ FormatSpec!char * * * * * * * * * * DtoSymbolAddress ('fs' of type 'FormatSpec!char') * * * * * * * * * * * function param * * * * * * * * * * * type: FormatSpec!char * * * * * * * * DtoCallFunction() * * * * * * * * * doing normal arguments * * * * * * * * * Arguments so far: (1) * * * * * * * * * * %"std.format.FormatSpec!char.FormatSpec"* %fs_arg * * * * * * * * * Function type: const pure nothrow @nogc @property @safe bool() * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1497) * * * * * * * * AssignExp::toElem: forcedPrefix = '+' | (char)(char = char) * * * * * * * * * VarExp::toElem: forcedPrefix @ char * * * * * * * * * * DtoSymbolAddress ('forcedPrefix' of type 'char') * * * * * * * * * * * a normal variable * * * * * * * * * IntegerExp::toElem: '+' @ char * * * * * * * * * * IntegerExp::toConstElem: '+' @ char * * * * * * * * * * * value = i8 43 * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * DtoAssign() * * * * * * * * * * lhs: %forcedPrefix = alloca i8, align 1 * * * * * * * * * * rhs: i8 43 * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1498) * * * * * * * * CallExp::toElem: fs.flSpace() @ bool * * * * * * * * * DotVarExp::toElem: fs.flSpace @ const pure nothrow @nogc @property @safe bool() * * * * * * * * * * VarExp::toElem: fs @ FormatSpec!char * * * * * * * * * * * DtoSymbolAddress ('fs' of type 'FormatSpec!char') * * * * * * * * * * * * function param * * * * * * * * * * * * type: FormatSpec!char * * * * * * * * * DtoCallFunction() * * * * * * * * * * doing normal arguments * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * %"std.format.FormatSpec!char.FormatSpec"* %fs_arg * * * * * * * * * * Function type: const pure nothrow @nogc @property @safe bool() * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1498) * * * * * * * * * AssignExp::toElem: forcedPrefix = ' ' | (char)(char = char) * * * * * * * * * * VarExp::toElem: forcedPrefix @ char * * * * * * * * * * * DtoSymbolAddress ('forcedPrefix' of type 'char') * * * * * * * * * * * * a normal variable * * * * * * * * * * IntegerExp::toElem: ' ' @ char * * * * * * * * * * * IntegerExp::toConstElem: ' ' @ char * * * * * * * * * * * * value = i8 32 * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %forcedPrefix = alloca i8, align 1 * * * * * * * * * * * rhs: i8 32 * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1499) * * * * * * * * * AssignExp::toElem: forcedPrefix = '\x00' | (char)(char = char) * * * * * * * * * * VarExp::toElem: forcedPrefix @ char * * * * * * * * * * * DtoSymbolAddress ('forcedPrefix' of type 'char') * * * * * * * * * * * * a normal variable * * * * * * * * * * IntegerExp::toElem: '\x00' @ char * * * * * * * * * * * IntegerExp::toConstElem: '\x00' @ char * * * * * * * * * * * * value = i8 0 * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %forcedPrefix = alloca i8, align 1 * * * * * * * * * * * rhs: i8 0 * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1500) * * * * * * * EqualExp::toElem: base != 10u @ bool * * * * * * * * VarExp::toElem: base @ uint * * * * * * * * * DtoSymbolAddress ('base' of type 'uint') * * * * * * * * * * function param * * * * * * * * * * type: uint * * * * * * * * IntegerExp::toElem: 10u @ uint * * * * * * * * * IntegerExp::toConstElem: 10u @ uint * * * * * * * * * * value = i32 10 * * * * * * * * integral or pointer or interface * * * * * * * * lv: %19 = load i32, i32* %base * * * * * * * * rv: i32 10 * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1501) * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1503) * * * * * * * * * AssignExp::toElem: forcedPrefix = '\x00' | (char)(char = char) * * * * * * * * * * VarExp::toElem: forcedPrefix @ char * * * * * * * * * * * DtoSymbolAddress ('forcedPrefix' of type 'char') * * * * * * * * * * * * a normal variable * * * * * * * * * * IntegerExp::toElem: '\x00' @ char * * * * * * * * * * * IntegerExp::toConstElem: '\x00' @ char * * * * * * * * * * * * value = i8 0 * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %forcedPrefix = alloca i8, align 1 * * * * * * * * * * * rhs: i8 0 * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1505) * * * * * * * * VarExp::toElem: negative @ bool * * * * * * * * * DtoSymbolAddress ('negative' of type 'bool') * * * * * * * * * * function param * * * * * * * * * * type: bool * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1506) * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1508) * * * * * * * * * * AssignExp::toElem: forcedPrefix = '-' | (char)(char = char) * * * * * * * * * * * VarExp::toElem: forcedPrefix @ char * * * * * * * * * * * * DtoSymbolAddress ('forcedPrefix' of type 'char') * * * * * * * * * * * * * a normal variable * * * * * * * * * * * IntegerExp::toElem: '-' @ char * * * * * * * * * * * * IntegerExp::toConstElem: '-' @ char * * * * * * * * * * * * * value = i8 45 * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * lhs: %forcedPrefix = alloca i8, align 1 * * * * * * * * * * * * rhs: i8 45 * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1511) * * * * * * * DeclarationExp::toElem: char[64] buffer = '\xff'; | T=void * * * * * * * * DtoDeclarationExp: buffer * * * * * * * * * VarDeclaration * * * * * * * * * DtoVarDeclaration(vdtype = char[64]) * * * * * * * * * * llvm value for decl: %buffer = alloca [64 x i8], align 1 * * * * * * * * * * expression initializer * * * * * * * * * * AssignExp::toElem: buffer[] = '\xff' | (char[])(char[] = char) * * * * * * * * * * * performing static array literal assignment * * * * * * * * * * * SliceExp::toElem: buffer[] @ char[] * * * * * * * * * * * * VarExp::toElem: buffer @ char[64] * * * * * * * * * * * * * DtoSymbolAddress ('buffer' of type 'char[64]') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * IntegerExp::toElem: '\xff' @ char * * * * * * * * * * * * IntegerExp::toConstElem: '\xff' @ char * * * * * * * * * * * * * value = i8 -1 * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * DtoArrayInit * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1512) * * * * * * * DeclarationExp::toElem: char[] digits = null; | T=void * * * * * * * * DtoDeclarationExp: digits * * * * * * * * * VarDeclaration * * * * * * * * * DtoVarDeclaration(vdtype = char[]) * * * * * * * * * * llvm value for decl: %digits = alloca { i64, i8* }, align 8 * * * * * * * * * * expression initializer * * * * * * * * * * AssignExp::toElem: digits = null | (char[])(char[] = char[]) * * * * * * * * * * * VarExp::toElem: digits @ char[] * * * * * * * * * * * * DtoSymbolAddress ('digits' of type 'char[]') * * * * * * * * * * * * * a normal variable * * * * * * * * * * * NullExp::toElem(type=char[]): null * * * * * * * * * * * * NullExp::toConstElem(type=char[]): null * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * DtoSetArrayToNull * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1513) * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1513) * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1514) * * * * * * * * * DeclarationExp::toElem: uint i = 64u; | T=void * * * * * * * * * * DtoDeclarationExp: i * * * * * * * * * * * VarDeclaration * * * * * * * * * * * DtoVarDeclaration(vdtype = uint) * * * * * * * * * * * * llvm value for decl: %i = alloca i32, align 4 * * * * * * * * * * * * expression initializer * * * * * * * * * * * * AssignExp::toElem: i = 64u | (uint)(uint = uint) * * * * * * * * * * * * * VarExp::toElem: i @ uint * * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'uint') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * IntegerExp::toElem: 64u @ uint * * * * * * * * * * * * * * IntegerExp::toConstElem: 64u @ uint * * * * * * * * * * * * * * * value = i32 64 * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * lhs: %i = alloca i32, align 4 * * * * * * * * * * * * * * rhs: i32 64 * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1515) * * * * * * * * * DeclarationExp::toElem: ulong n = arg; | T=void * * * * * * * * * * DtoDeclarationExp: n * * * * * * * * * * * VarDeclaration * * * * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * * * * llvm value for decl: %n = alloca i64, align 8 * * * * * * * * * * * * expression initializer * * * * * * * * * * * * AssignExp::toElem: n = arg | (ulong)(ulong = ulong) * * * * * * * * * * * * * VarExp::toElem: n @ ulong * * * * * * * * * * * * * * DtoSymbolAddress ('n' of type 'ulong') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * VarExp::toElem: arg @ ulong * * * * * * * * * * * * * * DtoSymbolAddress ('arg' of type 'ulong') * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * type: ulong * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * lhs: %n = alloca i64, align 8 * * * * * * * * * * * * * * rhs: %23 = load i64, i64* %arg * * * * * * * * DoStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1516) * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1517) * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1517) * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1518) * * * * * * * * * * * * MinAssignExp::toElem: i -= 1u @ uint * * * * * * * * * * * * * Caching l-value of i -= 1u => i * * * * * * * * * * * * * * VarExp::toElem: i @ uint * * * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'uint') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * MinExp::toElem: i - 1u @ uint * * * * * * * * * * * * * * VarExp::toElem: i @ uint * * * * * * * * * * * * * * IntegerExp::toElem: 1u @ uint * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1u @ uint * * * * * * * * * * * * * * * * value = i32 1 * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * lhs: %i = alloca i32, align 4 * * * * * * * * * * * * * * rhs: %25 = sub i32 %24, 1 * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1519) * * * * * * * * * * * * AssignExp::toElem: buffer[cast(ulong)i] = cast(char)(n % cast(ulong)base) | (char)(char = char) * * * * * * * * * * * * * IndexExp::toElem: buffer[cast(ulong)i] @ char * * * * * * * * * * * * * * VarExp::toElem: buffer @ char[64] * * * * * * * * * * * * * * * DtoSymbolAddress ('buffer' of type 'char[64]') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * CastExp::toElem: cast(ulong)i @ ulong * * * * * * * * * * * * * * * VarExp::toElem: i @ uint * * * * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'uint') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * Casting from 'uint' to 'ulong' * * * * * * * * * * * * * * * * cast to: i64 * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * CastExp::toElem: cast(char)(n % cast(ulong)base) @ char * * * * * * * * * * * * * * ModExp::toElem: n % cast(ulong)base @ ulong * * * * * * * * * * * * * * * VarExp::toElem: n @ ulong * * * * * * * * * * * * * * * * DtoSymbolAddress ('n' of type 'ulong') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * CastExp::toElem: cast(ulong)base @ ulong * * * * * * * * * * * * * * * * VarExp::toElem: base @ uint * * * * * * * * * * * * * * * * * DtoSymbolAddress ('base' of type 'uint') * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * type: uint * * * * * * * * * * * * * * * * Casting from 'uint' to 'ulong' * * * * * * * * * * * * * * * * * cast to: i64 * * * * * * * * * * * * * * Casting from 'ulong' to 'char' * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * lhs: %28 = getelementptr [64 x i8], [64 x i8]* %buffer, i32 0, i64 %27 * * * * * * * * * * * * * * rhs: %33 = trunc i64 %32 to i8 * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1520) * * * * * * * * * * * * DivAssignExp::toElem: n /= cast(ulong)base @ ulong * * * * * * * * * * * * * Caching l-value of n /= cast(ulong)base => n * * * * * * * * * * * * * * VarExp::toElem: n @ ulong * * * * * * * * * * * * * * * DtoSymbolAddress ('n' of type 'ulong') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * DivExp::toElem: n / cast(ulong)base @ ulong * * * * * * * * * * * * * * VarExp::toElem: n @ ulong * * * * * * * * * * * * * * CastExp::toElem: cast(ulong)base @ ulong * * * * * * * * * * * * * * * VarExp::toElem: base @ uint * * * * * * * * * * * * * * * * DtoSymbolAddress ('base' of type 'uint') * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * type: uint * * * * * * * * * * * * * * * Casting from 'uint' to 'ulong' * * * * * * * * * * * * * * * * cast to: i64 * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * lhs: %n = alloca i64, align 8 * * * * * * * * * * * * * * rhs: %37 = udiv i64 %36, %35 * * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1521) * * * * * * * * * * * * CmpExp::toElem: cast(int)buffer[cast(ulong)i] < 10 @ bool * * * * * * * * * * * * * CastExp::toElem: cast(int)buffer[cast(ulong)i] @ int * * * * * * * * * * * * * * IndexExp::toElem: buffer[cast(ulong)i] @ char * * * * * * * * * * * * * * * VarExp::toElem: buffer @ char[64] * * * * * * * * * * * * * * * * DtoSymbolAddress ('buffer' of type 'char[64]') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * CastExp::toElem: cast(ulong)i @ ulong * * * * * * * * * * * * * * * * VarExp::toElem: i @ uint * * * * * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'uint') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * Casting from 'uint' to 'ulong' * * * * * * * * * * * * * * * * * cast to: i64 * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * Casting from 'char' to 'int' * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * * IntegerExp::toElem: 10 @ int * * * * * * * * * * * * * * IntegerExp::toConstElem: 10 @ int * * * * * * * * * * * * * * * value = i32 10 * * * * * * * * * * * * * type 1: %42 = zext i8 %41 to i32 * * * * * * * * * * * * * type 2: i32 10 * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1521) * * * * * * * * * * * * * AddAssignExp::toElem: cast(int)buffer[cast(ulong)i] += 48 @ char * * * * * * * * * * * * * * Caching l-value of cast(int)buffer[cast(ulong)i] += 48 => buffer[cast(ulong)i] * * * * * * * * * * * * * * * IndexExp::toElem: buffer[cast(ulong)i] @ char * * * * * * * * * * * * * * * * VarExp::toElem: buffer @ char[64] * * * * * * * * * * * * * * * * * DtoSymbolAddress ('buffer' of type 'char[64]') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * CastExp::toElem: cast(ulong)i @ ulong * * * * * * * * * * * * * * * * * VarExp::toElem: i @ uint * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'uint') * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * Casting from 'uint' to 'ulong' * * * * * * * * * * * * * * * * * * cast to: i64 * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * AddExp::toElem: cast(int)buffer[cast(ulong)i] + 48 @ int * * * * * * * * * * * * * * * CastExp::toElem: cast(int)buffer[cast(ulong)i] @ int * * * * * * * * * * * * * * * * IndexExp::toElem: buffer[cast(ulong)i] @ char * * * * * * * * * * * * * * * * Casting from 'char' to 'int' * * * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * * * * IntegerExp::toElem: 48 @ int * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 48 @ int * * * * * * * * * * * * * * * * * value = i32 48 * * * * * * * * * * * * * * Casting from 'int' to 'char' * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * lhs: %46 = getelementptr [64 x i8], [64 x i8]* %buffer, i32 0, i64 %45 * * * * * * * * * * * * * * * rhs: %50 = trunc i32 %49 to i8 * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1522) * * * * * * * * * * * * * AddAssignExp::toElem: cast(int)buffer[cast(ulong)i] += (cast(int)fs.spec == 120 ? 97 : 65) - 10 @ char * * * * * * * * * * * * * * Caching l-value of cast(int)buffer[cast(ulong)i] += (cast(int)fs.spec == 120 ? 97 : 65) - 10 => buffer[cast(ulong)i] * * * * * * * * * * * * * * * IndexExp::toElem: buffer[cast(ulong)i] @ char * * * * * * * * * * * * * * * * VarExp::toElem: buffer @ char[64] * * * * * * * * * * * * * * * * * DtoSymbolAddress ('buffer' of type 'char[64]') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * CastExp::toElem: cast(ulong)i @ ulong * * * * * * * * * * * * * * * * * VarExp::toElem: i @ uint * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'uint') * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * Casting from 'uint' to 'ulong' * * * * * * * * * * * * * * * * * * cast to: i64 * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * AddExp::toElem: cast(int)buffer[cast(ulong)i] + ((cast(int)fs.spec == 120 ? 97 : 65) - 10) @ int * * * * * * * * * * * * * * * CastExp::toElem: cast(int)buffer[cast(ulong)i] @ int * * * * * * * * * * * * * * * * IndexExp::toElem: buffer[cast(ulong)i] @ char * * * * * * * * * * * * * * * * Casting from 'char' to 'int' * * * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * * * * MinExp::toElem: (cast(int)fs.spec == 120 ? 97 : 65) - 10 @ int * * * * * * * * * * * * * * * * CondExp::toElem: cast(int)fs.spec == 120 ? 97 : 65 @ int * * * * * * * * * * * * * * * * * EqualExp::toElem: cast(int)fs.spec == 120 @ bool * * * * * * * * * * * * * * * * * * CastExp::toElem: cast(int)fs.spec @ int * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: fs.spec @ char * * * * * * * * * * * * * * * * * * * * VarExp::toElem: fs @ FormatSpec!char * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('fs' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * type: FormatSpec!char * * * * * * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.spec: * * * * * * * * * * * * * * * * * * * * * Value: %56 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %fs_arg, i32 0, i32 2 * * * * * * * * * * * * * * * * * * * Casting from 'char' to 'int' * * * * * * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 120 @ int * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 120 @ int * * * * * * * * * * * * * * * * * * * * value = i32 120 * * * * * * * * * * * * * * * * * * integral or pointer or interface * * * * * * * * * * * * * * * * * * lv: %58 = zext i8 %57 to i32 * * * * * * * * * * * * * * * * * * rv: i32 120 * * * * * * * * * * * * * * * * * IntegerExp::toElem: 97 @ int * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 97 @ int * * * * * * * * * * * * * * * * * * * value = i32 97 * * * * * * * * * * * * * * * * * IntegerExp::toElem: 65 @ int * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 65 @ int * * * * * * * * * * * * * * * * * * * value = i32 65 * * * * * * * * * * * * * * * * IntegerExp::toElem: 10 @ int * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 10 @ int * * * * * * * * * * * * * * * * * * value = i32 10 * * * * * * * * * * * * * * Casting from 'int' to 'char' * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * lhs: %53 = getelementptr [64 x i8], [64 x i8]* %buffer, i32 0, i64 %47 * * * * * * * * * * * * * * * rhs: %64 = trunc i32 %63 to i8 * * * * * * * * * VarExp::toElem: n @ ulong * * * * * * * * * * DtoSymbolAddress ('n' of type 'ulong') * * * * * * * * * * * a normal variable * * * * * * * * * Casting from 'ulong' to 'bool' * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1524) * * * * * * * * * AssignExp::toElem: digits = buffer[cast(ulong)i..64] | (char[])(char[] = char[]) * * * * * * * * * * VarExp::toElem: digits @ char[] * * * * * * * * * * * DtoSymbolAddress ('digits' of type 'char[]') * * * * * * * * * * * * a normal variable * * * * * * * * * * SliceExp::toElem: buffer[cast(ulong)i..64] @ char[] * * * * * * * * * * * VarExp::toElem: buffer @ char[64] * * * * * * * * * * * * DtoSymbolAddress ('buffer' of type 'char[64]') * * * * * * * * * * * * * a normal variable * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * CastExp::toElem: cast(ulong)i @ ulong * * * * * * * * * * * * VarExp::toElem: i @ uint * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'uint') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * Casting from 'uint' to 'ulong' * * * * * * * * * * * * * cast to: i64 * * * * * * * * * * * IntegerExp::toElem: 64LU @ ulong * * * * * * * * * * * * IntegerExp::toConstElem: 64LU @ ulong * * * * * * * * * * * * * value = i64 64 * * * * * * * * * * * DtoArrayLen * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * DtoAssign() * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * SetArray * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1527) * * * * * * * AndAndExp::toElem: base == 8u && fs.flHash() && cast(ulong)fs.precision <= digits.length @ bool * * * * * * * * AndAndExp::toElem: base == 8u && fs.flHash() @ bool * * * * * * * * * EqualExp::toElem: base == 8u @ bool * * * * * * * * * * VarExp::toElem: base @ uint * * * * * * * * * * * DtoSymbolAddress ('base' of type 'uint') * * * * * * * * * * * * function param * * * * * * * * * * * * type: uint * * * * * * * * * * IntegerExp::toElem: 8u @ uint * * * * * * * * * * * IntegerExp::toConstElem: 8u @ uint * * * * * * * * * * * * value = i32 8 * * * * * * * * * * integral or pointer or interface * * * * * * * * * * lv: %73 = load i32, i32* %base * * * * * * * * * * rv: i32 8 * * * * * * * * * CallExp::toElem: fs.flHash() @ bool * * * * * * * * * * DotVarExp::toElem: fs.flHash @ const pure nothrow @nogc @property @safe bool() * * * * * * * * * * * VarExp::toElem: fs @ FormatSpec!char * * * * * * * * * * * * DtoSymbolAddress ('fs' of type 'FormatSpec!char') * * * * * * * * * * * * * function param * * * * * * * * * * * * * type: FormatSpec!char * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * doing normal arguments * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * %"std.format.FormatSpec!char.FormatSpec"* %fs_arg * * * * * * * * * * * Function type: const pure nothrow @nogc @property @safe bool() * * * * * * * * CmpExp::toElem: cast(ulong)fs.precision <= digits.length @ bool * * * * * * * * * CastExp::toElem: cast(ulong)fs.precision @ ulong * * * * * * * * * * DotVarExp::toElem: fs.precision @ int * * * * * * * * * * * VarExp::toElem: fs @ FormatSpec!char * * * * * * * * * * * * DtoSymbolAddress ('fs' of type 'FormatSpec!char') * * * * * * * * * * * * * function param * * * * * * * * * * * * * type: FormatSpec!char * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.precision: * * * * * * * * * * * * Value: %76 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %fs_arg, i32 0, i32 1 * * * * * * * * * * Casting from 'int' to 'ulong' * * * * * * * * * * * cast to: i64 * * * * * * * * * ArrayLengthExp::toElem: digits.length @ ulong * * * * * * * * * * VarExp::toElem: digits @ char[] * * * * * * * * * * * DtoSymbolAddress ('digits' of type 'char[]') * * * * * * * * * * * * a normal variable * * * * * * * * * * DtoArrayLen * * * * * * * * * type 1: %78 = sext i32 %77 to i64 * * * * * * * * * type 2: %.len = load i64, i64* %79 * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1529) * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1531) * * * * * * * * * AssignExp::toElem: forcedPrefix = '0' | (char)(char = char) * * * * * * * * * * VarExp::toElem: forcedPrefix @ char * * * * * * * * * * * DtoSymbolAddress ('forcedPrefix' of type 'char') * * * * * * * * * * * * a normal variable * * * * * * * * * * IntegerExp::toElem: '0' @ char * * * * * * * * * * * IntegerExp::toConstElem: '0' @ char * * * * * * * * * * * * value = i8 48 * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %forcedPrefix = alloca i8, align 1 * * * * * * * * * * * rhs: i8 48 * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1536) * * * * * * * DeclarationExp::toElem: long spacesToPrint = cast(long)(cast(ulong)fs.width - digits.length - cast(ulong)cast(int)(cast(int)forcedPrefix != 0) - (base == 16u && fs.flHash() && arg ? 2LU : 0LU)); | T=void * * * * * * * * DtoDeclarationExp: spacesToPrint * * * * * * * * * VarDeclaration * * * * * * * * * DtoVarDeclaration(vdtype = long) * * * * * * * * * * llvm value for decl: %spacesToPrint = alloca i64, align 8 * * * * * * * * * * expression initializer * * * * * * * * * * AssignExp::toElem: spacesToPrint = cast(long)(cast(ulong)fs.width - digits.length - cast(ulong)cast(int)(cast(int)forcedPrefix != 0) - (base == 16u && fs.flHash() && arg ? 2LU : 0LU)) | (long)(long = long) * * * * * * * * * * * VarExp::toElem: spacesToPrint @ long * * * * * * * * * * * * DtoSymbolAddress ('spacesToPrint' of type 'long') * * * * * * * * * * * * * a normal variable * * * * * * * * * * * CastExp::toElem: cast(long)(cast(ulong)fs.width - digits.length - cast(ulong)cast(int)(cast(int)forcedPrefix != 0) - (base == 16u && fs.flHash() && arg ? 2LU : 0LU)) @ long * * * * * * * * * * * * MinExp::toElem: cast(ulong)fs.width - digits.length - cast(ulong)cast(int)(cast(int)forcedPrefix != 0) - (base == 16u && fs.flHash() && arg ? 2LU : 0LU) @ ulong * * * * * * * * * * * * * MinExp::toElem: cast(ulong)fs.width - digits.length - cast(ulong)cast(int)(cast(int)forcedPrefix != 0) @ ulong * * * * * * * * * * * * * * MinExp::toElem: cast(ulong)fs.width - digits.length @ ulong * * * * * * * * * * * * * * * CastExp::toElem: cast(ulong)fs.width @ ulong * * * * * * * * * * * * * * * * DotVarExp::toElem: fs.width @ int * * * * * * * * * * * * * * * * * VarExp::toElem: fs @ FormatSpec!char * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('fs' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * type: FormatSpec!char * * * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.width: * * * * * * * * * * * * * * * * * * Value: %81 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %fs_arg, i32 0, i32 0 * * * * * * * * * * * * * * * * Casting from 'int' to 'ulong' * * * * * * * * * * * * * * * * * cast to: i64 * * * * * * * * * * * * * * * ArrayLengthExp::toElem: digits.length @ ulong * * * * * * * * * * * * * * * * VarExp::toElem: digits @ char[] * * * * * * * * * * * * * * * * * DtoSymbolAddress ('digits' of type 'char[]') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * CastExp::toElem: cast(ulong)cast(int)(cast(int)forcedPrefix != 0) @ ulong * * * * * * * * * * * * * * * CastExp::toElem: cast(int)(cast(int)forcedPrefix != 0) @ int * * * * * * * * * * * * * * * * EqualExp::toElem: cast(int)forcedPrefix != 0 @ bool * * * * * * * * * * * * * * * * * CastExp::toElem: cast(int)forcedPrefix @ int * * * * * * * * * * * * * * * * * * VarExp::toElem: forcedPrefix @ char * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('forcedPrefix' of type 'char') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * Casting from 'char' to 'int' * * * * * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * * * * * * IntegerExp::toElem: 0 @ int * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0 @ int * * * * * * * * * * * * * * * * * * * value = i32 0 * * * * * * * * * * * * * * * * * integral or pointer or interface * * * * * * * * * * * * * * * * * lv: %87 = zext i8 %86 to i32 * * * * * * * * * * * * * * * * * rv: i32 0 * * * * * * * * * * * * * * * * Casting from 'bool' to 'int' * * * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * * * * Casting from 'int' to 'ulong' * * * * * * * * * * * * * * * * cast to: i64 * * * * * * * * * * * * * CondExp::toElem: base == 16u && fs.flHash() && arg ? 2LU : 0LU @ ulong * * * * * * * * * * * * * * AndAndExp::toElem: base == 16u && fs.flHash() && arg @ bool * * * * * * * * * * * * * * * AndAndExp::toElem: base == 16u && fs.flHash() @ bool * * * * * * * * * * * * * * * * EqualExp::toElem: base == 16u @ bool * * * * * * * * * * * * * * * * * VarExp::toElem: base @ uint * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('base' of type 'uint') * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * type: uint * * * * * * * * * * * * * * * * * IntegerExp::toElem: 16u @ uint * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 16u @ uint * * * * * * * * * * * * * * * * * * * value = i32 16 * * * * * * * * * * * * * * * * * integral or pointer or interface * * * * * * * * * * * * * * * * * lv: %92 = load i32, i32* %base * * * * * * * * * * * * * * * * * rv: i32 16 * * * * * * * * * * * * * * * * CallExp::toElem: fs.flHash() @ bool * * * * * * * * * * * * * * * * * DotVarExp::toElem: fs.flHash @ const pure nothrow @nogc @property @safe bool() * * * * * * * * * * * * * * * * * * VarExp::toElem: fs @ FormatSpec!char * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('fs' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * type: FormatSpec!char * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * * %"std.format.FormatSpec!char.FormatSpec"* %fs_arg * * * * * * * * * * * * * * * * * * Function type: const pure nothrow @nogc @property @safe bool() * * * * * * * * * * * * * * * VarExp::toElem: arg @ ulong * * * * * * * * * * * * * * * * DtoSymbolAddress ('arg' of type 'ulong') * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * type: ulong * * * * * * * * * * * * * * * Casting from 'ulong' to 'bool' * * * * * * * * * * * * * * IntegerExp::toElem: 2LU @ ulong * * * * * * * * * * * * * * * IntegerExp::toConstElem: 2LU @ ulong * * * * * * * * * * * * * * * * value = i64 2 * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * Casting from 'ulong' to 'long' * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * lhs: %spacesToPrint = alloca i64, align 8 * * * * * * * * * * * * rhs: %96 = sub i64 %91, %95 * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1541) * * * * * * * DeclarationExp::toElem: const const(long) delta = cast(const(long))(cast(ulong)fs.precision - digits.length); | T=void * * * * * * * * DtoDeclarationExp: delta * * * * * * * * * VarDeclaration * * * * * * * * * DtoVarDeclaration(vdtype = const(long)) * * * * * * * * * * llvm value for decl: %delta = alloca i64, align 8 * * * * * * * * * * expression initializer * * * * * * * * * * AssignExp::toElem: delta = cast(const(long))(cast(ulong)fs.precision - digits.length) | (const(long))(const(long) = const(long)) * * * * * * * * * * * VarExp::toElem: delta @ const(long) * * * * * * * * * * * * DtoSymbolAddress ('delta' of type 'const(long)') * * * * * * * * * * * * * a normal variable * * * * * * * * * * * CastExp::toElem: cast(const(long))(cast(ulong)fs.precision - digits.length) @ const(long) * * * * * * * * * * * * MinExp::toElem: cast(ulong)fs.precision - digits.length @ ulong * * * * * * * * * * * * * CastExp::toElem: cast(ulong)fs.precision @ ulong * * * * * * * * * * * * * * DotVarExp::toElem: fs.precision @ int * * * * * * * * * * * * * * * VarExp::toElem: fs @ FormatSpec!char * * * * * * * * * * * * * * * * DtoSymbolAddress ('fs' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * type: FormatSpec!char * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.precision: * * * * * * * * * * * * * * * * Value: %97 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %fs_arg, i32 0, i32 1 * * * * * * * * * * * * * * Casting from 'int' to 'ulong' * * * * * * * * * * * * * * * cast to: i64 * * * * * * * * * * * * * ArrayLengthExp::toElem: digits.length @ ulong * * * * * * * * * * * * * * VarExp::toElem: digits @ char[] * * * * * * * * * * * * * * * DtoSymbolAddress ('digits' of type 'char[]') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * Casting from 'ulong' to 'const(long)' * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * lhs: %delta = alloca i64, align 8 * * * * * * * * * * * * rhs: %101 = sub i64 %99, %.len71 * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1542) * * * * * * * CmpExp::toElem: delta > 0L @ bool * * * * * * * * VarExp::toElem: delta @ long * * * * * * * * * DtoSymbolAddress ('delta' of type 'const(long)') * * * * * * * * * * a normal variable * * * * * * * * IntegerExp::toElem: 0L @ long * * * * * * * * * IntegerExp::toConstElem: 0L @ long * * * * * * * * * * value = i64 0 * * * * * * * * type 1: %102 = load i64, i64* %delta * * * * * * * * type 2: i64 0 * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1542) * * * * * * * * MinAssignExp::toElem: spacesToPrint -= delta @ long * * * * * * * * * Caching l-value of spacesToPrint -= delta => spacesToPrint * * * * * * * * * * VarExp::toElem: spacesToPrint @ long * * * * * * * * * * * DtoSymbolAddress ('spacesToPrint' of type 'long') * * * * * * * * * * * * a normal variable * * * * * * * * * MinExp::toElem: spacesToPrint - delta @ long * * * * * * * * * * VarExp::toElem: spacesToPrint @ long * * * * * * * * * * VarExp::toElem: delta @ long * * * * * * * * * * * DtoSymbolAddress ('delta' of type 'const(long)') * * * * * * * * * * * * a normal variable * * * * * * * * * DtoAssign() * * * * * * * * * * lhs: %spacesToPrint = alloca i64, align 8 * * * * * * * * * * rhs: %109 = sub i64 %107, %108 * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1543) * * * * * * * CmpExp::toElem: spacesToPrint > 0L @ bool * * * * * * * * VarExp::toElem: spacesToPrint @ long * * * * * * * * * DtoSymbolAddress ('spacesToPrint' of type 'long') * * * * * * * * * * a normal variable * * * * * * * * IntegerExp::toElem: 0L @ long * * * * * * * * * IntegerExp::toConstElem: 0L @ long * * * * * * * * * * value = i64 0 * * * * * * * * type 1: %110 = load i64, i64* %spacesToPrint * * * * * * * * type 2: i64 0 * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1544) * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1545) * * * * * * * * * EqualExp::toElem: cast(int)leftPad == 48 @ bool * * * * * * * * * * CastExp::toElem: cast(int)leftPad @ int * * * * * * * * * * * VarExp::toElem: leftPad @ char * * * * * * * * * * * * DtoSymbolAddress ('leftPad' of type 'char') * * * * * * * * * * * * * a normal variable * * * * * * * * * * * Casting from 'char' to 'int' * * * * * * * * * * * * cast to: i32 * * * * * * * * * * IntegerExp::toElem: 48 @ int * * * * * * * * * * * IntegerExp::toConstElem: 48 @ int * * * * * * * * * * * * value = i32 48 * * * * * * * * * * integral or pointer or interface * * * * * * * * * * lv: %113 = zext i8 %112 to i32 * * * * * * * * * * rv: i32 48 * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1546) * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1549) * * * * * * * * * * * AssignExp::toElem: fs.precision = cast(int)(cast(ulong)spacesToPrint + digits.length) | (int)(int = int) * * * * * * * * * * * * DotVarExp::toElem: fs.precision @ int * * * * * * * * * * * * * VarExp::toElem: fs @ FormatSpec!char * * * * * * * * * * * * * * DtoSymbolAddress ('fs' of type 'FormatSpec!char') * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * type: FormatSpec!char * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.precision: * * * * * * * * * * * * * * Value: %115 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %fs_arg, i32 0, i32 1 * * * * * * * * * * * * CastExp::toElem: cast(int)(cast(ulong)spacesToPrint + digits.length) @ int * * * * * * * * * * * * * AddExp::toElem: cast(ulong)spacesToPrint + digits.length @ ulong * * * * * * * * * * * * * * CastExp::toElem: cast(ulong)spacesToPrint @ ulong * * * * * * * * * * * * * * * VarExp::toElem: spacesToPrint @ long * * * * * * * * * * * * * * * * DtoSymbolAddress ('spacesToPrint' of type 'long') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * Casting from 'long' to 'ulong' * * * * * * * * * * * * * * ArrayLengthExp::toElem: digits.length @ ulong * * * * * * * * * * * * * * * VarExp::toElem: digits @ char[] * * * * * * * * * * * * * * * * DtoSymbolAddress ('digits' of type 'char[]') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * Casting from 'ulong' to 'int' * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * lhs: %115 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %fs_arg, i32 0, i32 1 * * * * * * * * * * * * * rhs: %119 = trunc i64 %118 to i32 * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1553) * * * * * * * * * * VarExp::toElem: leftPad @ char * * * * * * * * * * * DtoSymbolAddress ('leftPad' of type 'char') * * * * * * * * * * * * a normal variable * * * * * * * * * * if conditional: %120 = load i8, i8* %leftPad * * * * * * * * * * Casting from 'char' to 'bool' * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1553) * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1553) * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1553) * * * * * * * * * * * * * DeclarationExp::toElem: long __key3283 = 0L; | T=void * * * * * * * * * * * * * * DtoDeclarationExp: __key3283 * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = long) * * * * * * * * * * * * * * * * llvm value for decl: %__key3283 = alloca i64, align 8 * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * AssignExp::toElem: __key3283 = 0L | (long)(long = long) * * * * * * * * * * * * * * * * * VarExp::toElem: __key3283 @ long * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__key3283' of type 'long') * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * IntegerExp::toElem: 0L @ long * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0L @ long * * * * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * lhs: %__key3283 = alloca i64, align 8 * * * * * * * * * * * * * * * * * * rhs: i64 0 * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1553) * * * * * * * * * * * * * DeclarationExp::toElem: long __limit3284 = spacesToPrint; | T=void * * * * * * * * * * * * * * DtoDeclarationExp: __limit3284 * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = long) * * * * * * * * * * * * * * * * llvm value for decl: %__limit3284 = alloca i64, align 8 * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * AssignExp::toElem: __limit3284 = spacesToPrint | (long)(long = long) * * * * * * * * * * * * * * * * * VarExp::toElem: __limit3284 @ long * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__limit3284' of type 'long') * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * VarExp::toElem: spacesToPrint @ long * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('spacesToPrint' of type 'long') * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * lhs: %__limit3284 = alloca i64, align 8 * * * * * * * * * * * * * * * * * * rhs: %123 = load i64, i64* %spacesToPrint * * * * * * * * * * * * ForStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1553) * * * * * * * * * * * * * CmpExp::toElem: __key3283 < __limit3284 @ bool * * * * * * * * * * * * * * VarExp::toElem: __key3283 @ long * * * * * * * * * * * * * * * DtoSymbolAddress ('__key3283' of type 'long') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * VarExp::toElem: __limit3284 @ long * * * * * * * * * * * * * * * DtoSymbolAddress ('__limit3284' of type 'long') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * type 1: %124 = load i64, i64* %__key3283 * * * * * * * * * * * * * * type 2: %125 = load i64, i64* %__limit3284 * * * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1553) * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1553) * * * * * * * * * * * * * * * DeclarationExp::toElem: long i = __key3283; | T=void * * * * * * * * * * * * * * * * DtoDeclarationExp: i * * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = long) * * * * * * * * * * * * * * * * * * llvm value for decl: %i82 = alloca i64, align 8 * * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * * AssignExp::toElem: i = __key3283 | (long)(long = long) * * * * * * * * * * * * * * * * * * * VarExp::toElem: i @ long * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'long') * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * VarExp::toElem: __key3283 @ long * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__key3283' of type 'long') * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * lhs: %i82 = alloca i64, align 8 * * * * * * * * * * * * * * * * * * * * rhs: %127 = load i64, i64* %__key3283 * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1553) * * * * * * * * * * * * * * * CallExp::toElem: put(w, ' ') @ void * * * * * * * * * * * * * * * * VarExp::toElem: put @ nothrow @nogc @safe void(ref LockingTextWriter r, char e) * * * * * * * * * * * * * * * * * DtoSymbolAddress ('put' of type 'nothrow @nogc @safe void(ref LockingTextWriter r, char e)') * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * Function type: nothrow @nogc @safe void(ref LockingTextWriter r, char e) * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * VarExp::toElem: w @ LockingTextWriter * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * type: LockingTextWriter * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * IntegerExp::toElem: ' ' @ char * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: ' ' @ char * * * * * * * * * * * * * * * * * * * * value = i8 32 * * * * * * * * * * * * * AddAssignExp::toElem: __key3283 += 1L @ long * * * * * * * * * * * * * * Caching l-value of __key3283 += 1L => __key3283 * * * * * * * * * * * * * * * VarExp::toElem: __key3283 @ long * * * * * * * * * * * * * * * * DtoSymbolAddress ('__key3283' of type 'long') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * AddExp::toElem: __key3283 + 1L @ long * * * * * * * * * * * * * * * VarExp::toElem: __key3283 @ long * * * * * * * * * * * * * * * IntegerExp::toElem: 1L @ long * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1L @ long * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * lhs: %__key3283 = alloca i64, align 8 * * * * * * * * * * * * * * * rhs: %129 = add i64 %128, 1 * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1556) * * * * * * * VarExp::toElem: forcedPrefix @ char * * * * * * * * DtoSymbolAddress ('forcedPrefix' of type 'char') * * * * * * * * * a normal variable * * * * * * * if conditional: %115 = load i8, i8* %forcedPrefix * * * * * * * Casting from 'char' to 'bool' * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1556) * * * * * * * * CallExp::toElem: put(w, forcedPrefix) @ void * * * * * * * * * VarExp::toElem: put @ nothrow @nogc @safe void(ref LockingTextWriter r, char e) * * * * * * * * * * DtoSymbolAddress ('put' of type 'nothrow @nogc @safe void(ref LockingTextWriter r, char e)') * * * * * * * * * * * FuncDeclaration * * * * * * * * * DtoCallFunction() * * * * * * * * * * doing normal arguments * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * Function type: nothrow @nogc @safe void(ref LockingTextWriter r, char e) * * * * * * * * * * DtoArgument * * * * * * * * * * * VarExp::toElem: w @ LockingTextWriter * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'LockingTextWriter') * * * * * * * * * * * * * function param * * * * * * * * * * * * * type: LockingTextWriter * * * * * * * * * * DtoArgument * * * * * * * * * * * VarExp::toElem: forcedPrefix @ char * * * * * * * * * * * * DtoSymbolAddress ('forcedPrefix' of type 'char') * * * * * * * * * * * * * a normal variable * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1558) * * * * * * * AndAndExp::toElem: base == 16u && fs.flHash() && arg @ bool * * * * * * * * AndAndExp::toElem: base == 16u && fs.flHash() @ bool * * * * * * * * * EqualExp::toElem: base == 16u @ bool * * * * * * * * * * VarExp::toElem: base @ uint * * * * * * * * * * * DtoSymbolAddress ('base' of type 'uint') * * * * * * * * * * * * function param * * * * * * * * * * * * type: uint * * * * * * * * * * IntegerExp::toElem: 16u @ uint * * * * * * * * * * * IntegerExp::toConstElem: 16u @ uint * * * * * * * * * * * * value = i32 16 * * * * * * * * * * integral or pointer or interface * * * * * * * * * * lv: %134 = load i32, i32* %base * * * * * * * * * * rv: i32 16 * * * * * * * * * CallExp::toElem: fs.flHash() @ bool * * * * * * * * * * DotVarExp::toElem: fs.flHash @ const pure nothrow @nogc @property @safe bool() * * * * * * * * * * * VarExp::toElem: fs @ FormatSpec!char * * * * * * * * * * * * DtoSymbolAddress ('fs' of type 'FormatSpec!char') * * * * * * * * * * * * * function param * * * * * * * * * * * * * type: FormatSpec!char * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * doing normal arguments * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * %"std.format.FormatSpec!char.FormatSpec"* %fs_arg * * * * * * * * * * * Function type: const pure nothrow @nogc @property @safe bool() * * * * * * * * VarExp::toElem: arg @ ulong * * * * * * * * * DtoSymbolAddress ('arg' of type 'ulong') * * * * * * * * * * function param * * * * * * * * * * type: ulong * * * * * * * * Casting from 'ulong' to 'bool' * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1558) * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1558) * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1561) * * * * * * * * * * CallExp::toElem: put(w, '0') @ void * * * * * * * * * * * VarExp::toElem: put @ nothrow @nogc @safe void(ref LockingTextWriter r, char e) * * * * * * * * * * * * DtoSymbolAddress ('put' of type 'nothrow @nogc @safe void(ref LockingTextWriter r, char e)') * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * Function type: nothrow @nogc @safe void(ref LockingTextWriter r, char e) * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * VarExp::toElem: w @ LockingTextWriter * * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'LockingTextWriter') * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * type: LockingTextWriter * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * IntegerExp::toElem: '0' @ char * * * * * * * * * * * * * * IntegerExp::toConstElem: '0' @ char * * * * * * * * * * * * * * * value = i8 48 * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1562) * * * * * * * * * * CallExp::toElem: put(w, cast(int)fs.spec == 120 ? 'x' : 'X') @ void * * * * * * * * * * * VarExp::toElem: put @ nothrow @nogc @safe void(ref LockingTextWriter r, char e) * * * * * * * * * * * * DtoSymbolAddress ('put' of type 'nothrow @nogc @safe void(ref LockingTextWriter r, char e)') * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * Function type: nothrow @nogc @safe void(ref LockingTextWriter r, char e) * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * VarExp::toElem: w @ LockingTextWriter * * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'LockingTextWriter') * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * type: LockingTextWriter * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * CondExp::toElem: cast(int)fs.spec == 120 ? 'x' : 'X' @ char * * * * * * * * * * * * * * EqualExp::toElem: cast(int)fs.spec == 120 @ bool * * * * * * * * * * * * * * * CastExp::toElem: cast(int)fs.spec @ int * * * * * * * * * * * * * * * * DotVarExp::toElem: fs.spec @ char * * * * * * * * * * * * * * * * * VarExp::toElem: fs @ FormatSpec!char * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('fs' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * type: FormatSpec!char * * * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.spec: * * * * * * * * * * * * * * * * * * Value: %10 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %fs_arg, i32 0, i32 2 * * * * * * * * * * * * * * * * Casting from 'char' to 'int' * * * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * * * * IntegerExp::toElem: 120 @ int * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 120 @ int * * * * * * * * * * * * * * * * * value = i32 120 * * * * * * * * * * * * * * * integral or pointer or interface * * * * * * * * * * * * * * * lv: %12 = zext i8 %11 to i32 * * * * * * * * * * * * * * * rv: i32 120 * * * * * * * * * * * * * * IntegerExp::toElem: 'x' @ char * * * * * * * * * * * * * * * IntegerExp::toConstElem: 'x' @ char * * * * * * * * * * * * * * * * value = i8 120 * * * * * * * * * * * * * * IntegerExp::toElem: 'X' @ char * * * * * * * * * * * * * * * IntegerExp::toConstElem: 'X' @ char * * * * * * * * * * * * * * * * value = i8 88 * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1565) * * * * * * * OrOrExp::toElem: arg || fs.precision @ bool * * * * * * * * VarExp::toElem: arg @ ulong * * * * * * * * * DtoSymbolAddress ('arg' of type 'ulong') * * * * * * * * * * function param * * * * * * * * * * type: ulong * * * * * * * * Casting from 'ulong' to 'bool' * * * * * * * * DotVarExp::toElem: fs.precision @ int * * * * * * * * * VarExp::toElem: fs @ FormatSpec!char * * * * * * * * * * DtoSymbolAddress ('fs' of type 'FormatSpec!char') * * * * * * * * * * * function param * * * * * * * * * * * type: FormatSpec!char * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.precision: * * * * * * * * * * Value: %147 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %fs_arg, i32 0, i32 1 * * * * * * * * Casting from 'int' to 'bool' * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1566) * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1566) * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1567) * * * * * * * * * * DeclarationExp::toElem: long zerosToPrint = cast(long)(cast(ulong)fs.precision - digits.length); | T=void * * * * * * * * * * * DtoDeclarationExp: zerosToPrint * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * DtoVarDeclaration(vdtype = long) * * * * * * * * * * * * * llvm value for decl: %zerosToPrint = alloca i64, align 8 * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * AssignExp::toElem: zerosToPrint = cast(long)(cast(ulong)fs.precision - digits.length) | (long)(long = long) * * * * * * * * * * * * * * VarExp::toElem: zerosToPrint @ long * * * * * * * * * * * * * * * DtoSymbolAddress ('zerosToPrint' of type 'long') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * CastExp::toElem: cast(long)(cast(ulong)fs.precision - digits.length) @ long * * * * * * * * * * * * * * * MinExp::toElem: cast(ulong)fs.precision - digits.length @ ulong * * * * * * * * * * * * * * * * CastExp::toElem: cast(ulong)fs.precision @ ulong * * * * * * * * * * * * * * * * * DotVarExp::toElem: fs.precision @ int * * * * * * * * * * * * * * * * * * VarExp::toElem: fs @ FormatSpec!char * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('fs' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * type: FormatSpec!char * * * * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.precision: * * * * * * * * * * * * * * * * * * * Value: %150 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %fs_arg, i32 0, i32 1 * * * * * * * * * * * * * * * * * Casting from 'int' to 'ulong' * * * * * * * * * * * * * * * * * * cast to: i64 * * * * * * * * * * * * * * * * ArrayLengthExp::toElem: digits.length @ ulong * * * * * * * * * * * * * * * * * VarExp::toElem: digits @ char[] * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('digits' of type 'char[]') * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * Casting from 'ulong' to 'long' * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * lhs: %zerosToPrint = alloca i64, align 8 * * * * * * * * * * * * * * * rhs: %154 = sub i64 %152, %.len106 * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1568) * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1568) * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1568) * * * * * * * * * * * * DeclarationExp::toElem: long __key3285 = 0L; | T=void * * * * * * * * * * * * * DtoDeclarationExp: __key3285 * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = long) * * * * * * * * * * * * * * * llvm value for decl: %__key3285 = alloca i64, align 8 * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * AssignExp::toElem: __key3285 = 0L | (long)(long = long) * * * * * * * * * * * * * * * * VarExp::toElem: __key3285 @ long * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__key3285' of type 'long') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * IntegerExp::toElem: 0L @ long * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0L @ long * * * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * lhs: %__key3285 = alloca i64, align 8 * * * * * * * * * * * * * * * * * rhs: i64 0 * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1568) * * * * * * * * * * * * DeclarationExp::toElem: long __limit3286 = zerosToPrint; | T=void * * * * * * * * * * * * * DtoDeclarationExp: __limit3286 * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = long) * * * * * * * * * * * * * * * llvm value for decl: %__limit3286 = alloca i64, align 8 * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * AssignExp::toElem: __limit3286 = zerosToPrint | (long)(long = long) * * * * * * * * * * * * * * * * VarExp::toElem: __limit3286 @ long * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__limit3286' of type 'long') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * VarExp::toElem: zerosToPrint @ long * * * * * * * * * * * * * * * * * DtoSymbolAddress ('zerosToPrint' of type 'long') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * lhs: %__limit3286 = alloca i64, align 8 * * * * * * * * * * * * * * * * * rhs: %155 = load i64, i64* %zerosToPrint * * * * * * * * * * * ForStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1568) * * * * * * * * * * * * CmpExp::toElem: __key3285 < __limit3286 @ bool * * * * * * * * * * * * * VarExp::toElem: __key3285 @ long * * * * * * * * * * * * * * DtoSymbolAddress ('__key3285' of type 'long') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * VarExp::toElem: __limit3286 @ long * * * * * * * * * * * * * * DtoSymbolAddress ('__limit3286' of type 'long') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * type 1: %156 = load i64, i64* %__key3285 * * * * * * * * * * * * * type 2: %157 = load i64, i64* %__limit3286 * * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1568) * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1568) * * * * * * * * * * * * * * DeclarationExp::toElem: long i = __key3285; | T=void * * * * * * * * * * * * * * * DtoDeclarationExp: i * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = long) * * * * * * * * * * * * * * * * * llvm value for decl: %i111 = alloca i64, align 8 * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * AssignExp::toElem: i = __key3285 | (long)(long = long) * * * * * * * * * * * * * * * * * * VarExp::toElem: i @ long * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'long') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * VarExp::toElem: __key3285 @ long * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__key3285' of type 'long') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * lhs: %i111 = alloca i64, align 8 * * * * * * * * * * * * * * * * * * * rhs: %159 = load i64, i64* %__key3285 * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1568) * * * * * * * * * * * * * * CallExp::toElem: put(w, '0') @ void * * * * * * * * * * * * * * * VarExp::toElem: put @ nothrow @nogc @safe void(ref LockingTextWriter r, char e) * * * * * * * * * * * * * * * * DtoSymbolAddress ('put' of type 'nothrow @nogc @safe void(ref LockingTextWriter r, char e)') * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * Function type: nothrow @nogc @safe void(ref LockingTextWriter r, char e) * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * VarExp::toElem: w @ LockingTextWriter * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * type: LockingTextWriter * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * IntegerExp::toElem: '0' @ char * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: '0' @ char * * * * * * * * * * * * * * * * * * * value = i8 48 * * * * * * * * * * * * AddAssignExp::toElem: __key3285 += 1L @ long * * * * * * * * * * * * * Caching l-value of __key3285 += 1L => __key3285 * * * * * * * * * * * * * * VarExp::toElem: __key3285 @ long * * * * * * * * * * * * * * * DtoSymbolAddress ('__key3285' of type 'long') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * AddExp::toElem: __key3285 + 1L @ long * * * * * * * * * * * * * * VarExp::toElem: __key3285 @ long * * * * * * * * * * * * * * IntegerExp::toElem: 1L @ long * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1L @ long * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * lhs: %__key3285 = alloca i64, align 8 * * * * * * * * * * * * * * rhs: %161 = add i64 %160, 1 * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1569) * * * * * * * * * * CallExp::toElem: put(w, digits) @ void * * * * * * * * * * * VarExp::toElem: put @ @safe void(ref LockingTextWriter r, char[] e) * * * * * * * * * * * * DtoSymbolAddress ('put' of type '@safe void(ref LockingTextWriter r, char[] e)') * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * DtoFunctionType(@safe void(ref LockingTextWriter r, char[] e)) * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * Final function type: void ({ i64, i8* }, %std.stdio.File.LockingTextWriter*) * * * * * * * * * * * * * DtoResolveFunction(std.range.primitives.put!(LockingTextWriter, char[]).put): /usr/include/dlang/ldc/std/range/primitives.d(277) * * * * * * * * * * * * * * DtoDeclareFunction(std.range.primitives.put!(LockingTextWriter, char[]).put): /usr/include/dlang/ldc/std/range/primitives.d(277) * * * * * * * * * * * * * * * DtoFunctionType(@safe void(ref LockingTextWriter r, char[] e)) * * * * * * * * * * * * * * * func = declare void @_D3std5range10primitives47__T3putTS3std5stdio4File17LockingTextWriterTAaZ3putFNfKS3std5stdio4File17LockingTextWriterAaZv({ i64, i8* }, %std.stdio.File.LockingTextWriter*) * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * Building type: @safe void(ref LockingTextWriter r, char[] e) * * * * * * * * * * * * * DtoFunctionType(@safe void(ref LockingTextWriter r, char[] e)) * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * Final function type: void ({ i64, i8* }, %std.stdio.File.LockingTextWriter*) * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * Function type: @safe void(ref LockingTextWriter r, char[] e) * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * VarExp::toElem: w @ LockingTextWriter * * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'LockingTextWriter') * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * type: LockingTextWriter * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * VarExp::toElem: digits @ char[] * * * * * * * * * * * * * * DtoSymbolAddress ('digits' of type 'char[]') * * * * * * * * * * * * * * * a normal variable * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1572) * * * * * * * NotExp::toElem: !leftPad @ bool * * * * * * * * VarExp::toElem: leftPad @ char * * * * * * * * * DtoSymbolAddress ('leftPad' of type 'char') * * * * * * * * * * a normal variable * * * * * * * * Casting from 'char' to 'bool' * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1572) * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1572) * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1572) * * * * * * * * * * DeclarationExp::toElem: long __key3287 = 0L; | T=void * * * * * * * * * * * DtoDeclarationExp: __key3287 * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * DtoVarDeclaration(vdtype = long) * * * * * * * * * * * * * llvm value for decl: %__key3287 = alloca i64, align 8 * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * AssignExp::toElem: __key3287 = 0L | (long)(long = long) * * * * * * * * * * * * * * VarExp::toElem: __key3287 @ long * * * * * * * * * * * * * * * DtoSymbolAddress ('__key3287' of type 'long') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * IntegerExp::toElem: 0L @ long * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0L @ long * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * lhs: %__key3287 = alloca i64, align 8 * * * * * * * * * * * * * * * rhs: i64 0 * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1572) * * * * * * * * * * DeclarationExp::toElem: long __limit3288 = spacesToPrint; | T=void * * * * * * * * * * * DtoDeclarationExp: __limit3288 * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * DtoVarDeclaration(vdtype = long) * * * * * * * * * * * * * llvm value for decl: %__limit3288 = alloca i64, align 8 * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * AssignExp::toElem: __limit3288 = spacesToPrint | (long)(long = long) * * * * * * * * * * * * * * VarExp::toElem: __limit3288 @ long * * * * * * * * * * * * * * * DtoSymbolAddress ('__limit3288' of type 'long') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * VarExp::toElem: spacesToPrint @ long * * * * * * * * * * * * * * * DtoSymbolAddress ('spacesToPrint' of type 'long') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * lhs: %__limit3288 = alloca i64, align 8 * * * * * * * * * * * * * * * rhs: %166 = load i64, i64* %spacesToPrint * * * * * * * * * ForStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1572) * * * * * * * * * * CmpExp::toElem: __key3287 < __limit3288 @ bool * * * * * * * * * * * VarExp::toElem: __key3287 @ long * * * * * * * * * * * * DtoSymbolAddress ('__key3287' of type 'long') * * * * * * * * * * * * * a normal variable * * * * * * * * * * * VarExp::toElem: __limit3288 @ long * * * * * * * * * * * * DtoSymbolAddress ('__limit3288' of type 'long') * * * * * * * * * * * * * a normal variable * * * * * * * * * * * type 1: %167 = load i64, i64* %__key3287 * * * * * * * * * * * type 2: %168 = load i64, i64* %__limit3288 * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1572) * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1572) * * * * * * * * * * * * DeclarationExp::toElem: long i = __key3287; | T=void * * * * * * * * * * * * * DtoDeclarationExp: i * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = long) * * * * * * * * * * * * * * * llvm value for decl: %i120 = alloca i64, align 8 * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * AssignExp::toElem: i = __key3287 | (long)(long = long) * * * * * * * * * * * * * * * * VarExp::toElem: i @ long * * * * * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'long') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * VarExp::toElem: __key3287 @ long * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__key3287' of type 'long') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * lhs: %i120 = alloca i64, align 8 * * * * * * * * * * * * * * * * * rhs: %170 = load i64, i64* %__key3287 * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1572) * * * * * * * * * * * * CallExp::toElem: put(w, ' ') @ void * * * * * * * * * * * * * VarExp::toElem: put @ nothrow @nogc @safe void(ref LockingTextWriter r, char e) * * * * * * * * * * * * * * DtoSymbolAddress ('put' of type 'nothrow @nogc @safe void(ref LockingTextWriter r, char e)') * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * Function type: nothrow @nogc @safe void(ref LockingTextWriter r, char e) * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * VarExp::toElem: w @ LockingTextWriter * * * * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * type: LockingTextWriter * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * IntegerExp::toElem: ' ' @ char * * * * * * * * * * * * * * * * IntegerExp::toConstElem: ' ' @ char * * * * * * * * * * * * * * * * * value = i8 32 * * * * * * * * * * AddAssignExp::toElem: __key3287 += 1L @ long * * * * * * * * * * * Caching l-value of __key3287 += 1L => __key3287 * * * * * * * * * * * * VarExp::toElem: __key3287 @ long * * * * * * * * * * * * * DtoSymbolAddress ('__key3287' of type 'long') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * AddExp::toElem: __key3287 + 1L @ long * * * * * * * * * * * * VarExp::toElem: __key3287 @ long * * * * * * * * * * * * IntegerExp::toElem: 1L @ long * * * * * * * * * * * * * IntegerExp::toConstElem: 1L @ long * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * lhs: %__key3287 = alloca i64, align 8 * * * * * * * * * * * * rhs: %172 = add i64 %171, 1 * TemplateInstance::codegen: 'std.range.primitives.put!(LockingTextWriter, char[])' * * DtoDefineFunction(std.range.primitives.put!(LockingTextWriter, char[]).put): /usr/include/dlang/ldc/std/range/primitives.d(277) * * * Doing function body for: put * * * DtoCreateNestedContext for put * * * * DtoCreateNestedContextType for std.range.primitives.put!(LockingTextWriter, char[]).put * * * CompoundStatement::toIR(): * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/range/primitives.d(282) * * * * * CallExp::toElem: doPut(r, e) @ void * * * * * * VarExp::toElem: doPut @ @safe void(ref LockingTextWriter r, auto ref char[] e) * * * * * * * DtoSymbolAddress ('doPut' of type '@safe void(ref LockingTextWriter r, auto ref char[] e)') * * * * * * * * FuncDeclaration * * * * * * * * DtoFunctionType(@safe void(ref LockingTextWriter r, auto ref char[] e)) * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * Final function type: void ({ i64, i8* }*, %std.stdio.File.LockingTextWriter*) * * * * * * * * DtoResolveFunction(std.range.primitives.doPut!(LockingTextWriter, char[]).doPut): /usr/include/dlang/ldc/std/range/primitives.d(182) * * * * * * * * * DtoDeclareFunction(std.range.primitives.doPut!(LockingTextWriter, char[]).doPut): /usr/include/dlang/ldc/std/range/primitives.d(182) * * * * * * * * * * DtoFunctionType(@safe void(ref LockingTextWriter r, auto ref char[] e)) * * * * * * * * * * func = declare void @_D3std5range10primitives49__T5doPutTS3std5stdio4File17LockingTextWriterTAaZ5doPutFNfKS3std5stdio4File17LockingTextWriterKAaZv({ i64, i8* }*, %std.stdio.File.LockingTextWriter*) * * * * * * DtoCallFunction() * * * * * * * Building type: @safe void(ref LockingTextWriter r, auto ref char[] e) * * * * * * * * DtoFunctionType(@safe void(ref LockingTextWriter r, auto ref char[] e)) * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * Final function type: void ({ i64, i8* }*, %std.stdio.File.LockingTextWriter*) * * * * * * * doing normal arguments * * * * * * * Arguments so far: (0) * * * * * * * Function type: @safe void(ref LockingTextWriter r, auto ref char[] e) * * * * * * * DtoArgument * * * * * * * * VarExp::toElem: r @ LockingTextWriter * * * * * * * * * DtoSymbolAddress ('r' of type 'LockingTextWriter') * * * * * * * * * * function param * * * * * * * * * * type: LockingTextWriter * * * * * * * DtoArgument * * * * * * * * VarExp::toElem: e @ char[] * * * * * * * * * DtoSymbolAddress ('e' of type 'char[]') * * * * * * * * * * function param * * * * * * * * * * type: char[] * TemplateInstance::codegen: 'std.range.primitives.doPut!(LockingTextWriter, char[])' * * DtoDefineFunction(std.range.primitives.doPut!(LockingTextWriter, char[]).doPut): /usr/include/dlang/ldc/std/range/primitives.d(182) * * * Doing function body for: doPut * * * DtoCreateNestedContext for doPut * * * * DtoCreateNestedContextType for std.range.primitives.doPut!(LockingTextWriter, char[]).doPut * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/range/primitives.d(183) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/range/primitives.d(187) * * * * * * DeclarationExp::toElem: enum bool usingPut = true; | T=void * * * * * * * DtoDeclarationExp: usingPut * * * * * * * * VarDeclaration * * * * * * * * Manifest constant, nothing to do. * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/range/primitives.d(193) * * * * * * CallExp::toElem: r.put(e) @ void * * * * * * * DotVarExp::toElem: r.put @ @safe void(char[] writeme) * * * * * * * * VarExp::toElem: r @ LockingTextWriter * * * * * * * * * DtoSymbolAddress ('r' of type 'LockingTextWriter') * * * * * * * * * * function param * * * * * * * * * * type: LockingTextWriter * * * * * * * * isMember = this is: LockingTextWriter * * * * * * * * DtoFunctionType(@safe void(char[] writeme)) * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * Final function type: void (%std.stdio.File.LockingTextWriter*, { i64, i8* }) * * * * * * * * DtoResolveFunction(std.stdio.File.LockingTextWriter.put!(char[]).put): /usr/include/dlang/ldc/std/stdio.d(2416) * * * * * * * * * DtoDeclareFunction(std.stdio.File.LockingTextWriter.put!(char[]).put): /usr/include/dlang/ldc/std/stdio.d(2416) * * * * * * * * * * isMember = this is: LockingTextWriter * * * * * * * * * * DtoFunctionType(@safe void(char[] writeme)) * * * * * * * * * * func = declare void @_D3std5stdio4File17LockingTextWriter11__T3putTAaZ3putMFNfAaZv(%std.stdio.File.LockingTextWriter*, { i64, i8* }) * * * * * * * DtoCallFunction() * * * * * * * * Building type: @safe void(char[] writeme) * * * * * * * * * DtoFunctionType(@safe void(char[] writeme)) * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: void ({ i64, i8* }) * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (1) * * * * * * * * * %std.stdio.File.LockingTextWriter* %r_arg * * * * * * * * Function type: @safe void(char[] writeme) * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: e @ char[] * * * * * * * * * * DtoSymbolAddress ('e' of type 'char[]') * * * * * * * * * * * function param * * * * * * * * * * * type: char[] * TemplateInstance::codegen: 'std.format.FormatSpec!char.FormatSpec.writeUpToNextSpec!(LockingTextWriter)' * * DtoDefineFunction(std.format.FormatSpec!char.FormatSpec.writeUpToNextSpec!(LockingTextWriter).writeUpToNextSpec): /usr/include/dlang/ldc/std/format.d(783) * * * Doing function body for: writeUpToNextSpec * * * DtoCreateNestedContext for writeUpToNextSpec * * * * DtoCreateNestedContextType for std.format.FormatSpec!char.FormatSpec.writeUpToNextSpec!(LockingTextWriter).writeUpToNextSpec * * * TryFinallyStatement::toIR(): * * * * ExpStatement::toIR(): * * * * * CallExp::toElem: writer.~this() @ void * * * * * * DotVarExp::toElem: writer.~this @ @trusted void() * * * * * * * VarExp::toElem: writer @ LockingTextWriter * * * * * * * * DtoSymbolAddress ('writer' of type 'LockingTextWriter') * * * * * * * * * function param * * * * * * * * * type: LockingTextWriter * * * * * * DtoCallFunction() * * * * * * * doing normal arguments * * * * * * * Arguments so far: (1) * * * * * * * * %std.stdio.File.LockingTextWriter* %writer_arg * * * * * * * Function type: @trusted void() * * * * CompoundStatement::toIR(): * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(784) * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(785) * * * * * * * CallExp::toElem: empty(this.trailing) @ bool * * * * * * * * VarExp::toElem: empty @ pure nothrow @nogc @property @safe bool(const(char[]) a) * * * * * * * * * DtoSymbolAddress ('empty' of type 'pure nothrow @nogc @property @safe bool(const(char[]) a)') * * * * * * * * * * FuncDeclaration * * * * * * * * DtoCallFunction() * * * * * * * * * doing normal arguments * * * * * * * * * Arguments so far: (0) * * * * * * * * * Function type: pure nothrow @nogc @property @safe bool(const(char[]) a) * * * * * * * * * DtoArgument * * * * * * * * * * DotVarExp::toElem: this.trailing @ const(char[]) * * * * * * * * * * * ThisExp::toElem: this @ FormatSpec!char * * * * * * * * * * * * normal this exp * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.trailing: * * * * * * * * * * * * Value: %1 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %.this_arg, i32 0, i32 9 * * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/format.d(786) * * * * * * * * IntegerExp::toElem: false @ bool * * * * * * * * * IntegerExp::toConstElem: false @ bool * * * * * * * * * * value = i1 false * * * * * * * * return value is '0x120e69a0' * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(787) * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(787) * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(787) * * * * * * * * * DeclarationExp::toElem: ulong i = 0LU; | T=void * * * * * * * * * * DtoDeclarationExp: i * * * * * * * * * * * VarDeclaration * * * * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * * * * llvm value for decl: %i = alloca i64, align 8 * * * * * * * * * * * * expression initializer * * * * * * * * * * * * AssignExp::toElem: i = 0LU | (ulong)(ulong = ulong) * * * * * * * * * * * * * VarExp::toElem: i @ ulong * * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'ulong') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * lhs: %i = alloca i64, align 8 * * * * * * * * * * * * * * rhs: i64 0 * * * * * * * * ForStatement::toIR(): /usr/include/dlang/ldc/std/format.d(787) * * * * * * * * * CmpExp::toElem: i < this.trailing.length @ bool * * * * * * * * * * VarExp::toElem: i @ ulong * * * * * * * * * * * DtoSymbolAddress ('i' of type 'ulong') * * * * * * * * * * * * a normal variable * * * * * * * * * * ArrayLengthExp::toElem: this.trailing.length @ ulong * * * * * * * * * * * DotVarExp::toElem: this.trailing @ const(char)[] * * * * * * * * * * * * ThisExp::toElem: this @ FormatSpec!char * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.trailing: * * * * * * * * * * * * * Value: %10 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %.this_arg, i32 0, i32 9 * * * * * * * * * * * DtoArrayLen * * * * * * * * * * type 1: %12 = load i64, i64* %i * * * * * * * * * * type 2: %.len = load i64, i64* %11 * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(788) * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(788) * * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(789) * * * * * * * * * * * * EqualExp::toElem: cast(int)this.trailing[i] != 37 @ bool * * * * * * * * * * * * * CastExp::toElem: cast(int)this.trailing[i] @ int * * * * * * * * * * * * * * IndexExp::toElem: this.trailing[i] @ const(char) * * * * * * * * * * * * * * * DotVarExp::toElem: this.trailing @ const(char)[] * * * * * * * * * * * * * * * * ThisExp::toElem: this @ FormatSpec!char * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.trailing: * * * * * * * * * * * * * * * * * Value: %14 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %.this_arg, i32 0, i32 9 * * * * * * * * * * * * * * * VarExp::toElem: i @ ulong * * * * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'ulong') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * Casting from 'const(char)' to 'int' * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * * IntegerExp::toElem: 37 @ int * * * * * * * * * * * * * * IntegerExp::toConstElem: 37 @ int * * * * * * * * * * * * * * * value = i32 37 * * * * * * * * * * * * * integral or pointer or interface * * * * * * * * * * * * * lv: %21 = zext i8 %20 to i32 * * * * * * * * * * * * * rv: i32 37 * * * * * * * * * * * * ContinueStatement::toIR(): /usr/include/dlang/ldc/std/format.d(789) * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(790) * * * * * * * * * * * * CallExp::toElem: put(writer, this.trailing[0..i]) @ void * * * * * * * * * * * * * VarExp::toElem: put @ @safe void(ref LockingTextWriter r, const(char)[] e) * * * * * * * * * * * * * * DtoSymbolAddress ('put' of type '@safe void(ref LockingTextWriter r, const(char)[] e)') * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * Function type: @safe void(ref LockingTextWriter r, const(char)[] e) * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * VarExp::toElem: writer @ LockingTextWriter * * * * * * * * * * * * * * * * DtoSymbolAddress ('writer' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * type: LockingTextWriter * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * SliceExp::toElem: this.trailing[0..i] @ const(char)[] * * * * * * * * * * * * * * * * DotVarExp::toElem: this.trailing @ const(char)[] * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ FormatSpec!char * * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.trailing: * * * * * * * * * * * * * * * * * * Value: %23 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %.this_arg, i32 0, i32 9 * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * * * * VarExp::toElem: i @ ulong * * * * * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'ulong') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(791) * * * * * * * * * * * * AssignExp::toElem: this.trailing = this.trailing[i..__dollar] | (const(char)[])(const(char)[] = const(char)[]) * * * * * * * * * * * * * DotVarExp::toElem: this.trailing @ const(char)[] * * * * * * * * * * * * * * ThisExp::toElem: this @ FormatSpec!char * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.trailing: * * * * * * * * * * * * * * * Value: %5 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %.this_arg, i32 0, i32 9 * * * * * * * * * * * * * SliceExp::toElem: this.trailing[i..__dollar] @ const(char)[] * * * * * * * * * * * * * * DotVarExp::toElem: this.trailing @ const(char)[] * * * * * * * * * * * * * * * ThisExp::toElem: this @ FormatSpec!char * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.trailing: * * * * * * * * * * * * * * * * Value: %6 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %.this_arg, i32 0, i32 9 * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * VarExp::toElem: i @ ulong * * * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'ulong') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * VarExp::toElem: __dollar @ ulong * * * * * * * * * * * * * * * DtoSymbolAddress ('__dollar' of type 'ulong') * * * * * * * * * * * * * * * * Id::dollar * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * SetArray * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(792) * * * * * * * * * * * * CallExp::toElem: enforceEx(this.trailing.length >= 2LU, delegate string() => "Unterminated format specifier: \"%\"", "/usr/include/dlang/ldc/std/format.d", 792LU) @ bool * * * * * * * * * * * * * VarExp::toElem: enforceEx @ pure @safe bool(bool value, lazy string msg = "", string file = __FILE__, ulong line = cast(ulong)__LINE__) * * * * * * * * * * * * * * DtoSymbolAddress ('enforceEx' of type 'pure @safe bool(bool value, lazy string msg = "", string file = __FILE__, ulong line = cast(ulong)__LINE__)') * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * Function type: pure @safe bool(bool value, lazy string msg = "", string file = __FILE__, ulong line = cast(ulong)__LINE__) * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * CmpExp::toElem: this.trailing.length >= 2LU @ bool * * * * * * * * * * * * * * * * ArrayLengthExp::toElem: this.trailing.length @ ulong * * * * * * * * * * * * * * * * * DotVarExp::toElem: this.trailing @ const(char)[] * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ FormatSpec!char * * * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.trailing: * * * * * * * * * * * * * * * * * * * Value: %40 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %.this_arg, i32 0, i32 9 * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * IntegerExp::toElem: 2LU @ ulong * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 2LU @ ulong * * * * * * * * * * * * * * * * * * value = i64 2 * * * * * * * * * * * * * * * * type 1: %.len19 = load i64, i64* %41 * * * * * * * * * * * * * * * * type 2: i64 2 * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * FuncExp::toElem: __dgliteral2 @ string delegate() pure nothrow @nogc @safe * * * * * * * * * * * * * * * * nested * * * * * * * * * * * * * * * * kind = delegate * * * * * * * * * * * * * * * * DtoDefineFunction(std.format.FormatSpec!char.FormatSpec.writeUpToNextSpec!(LockingTextWriter).writeUpToNextSpec.__dgliteral2): /usr/include/dlang/ldc/std/format.d(792) * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe string()) * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * Final function type: { i64, i8* } (i8*) * * * * * * * * * * * * * * * * * DtoResolveFunction(std.format.FormatSpec!char.FormatSpec.writeUpToNextSpec!(LockingTextWriter).writeUpToNextSpec.__dgliteral2): /usr/include/dlang/ldc/std/format.d(792) * * * * * * * * * * * * * * * * * * DtoDeclareFunction(std.format.FormatSpec!char.FormatSpec.writeUpToNextSpec!(LockingTextWriter).writeUpToNextSpec.__dgliteral2): /usr/include/dlang/ldc/std/format.d(792) * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe string()) * * * * * * * * * * * * * * * * * * * func = declare { i64, i8* } @_D3std6format18__T10FormatSpecTaZ10FormatSpec59__T17writeUpToNextSpecTS3std5stdio4File17LockingTextWriterZ17writeUpToNextSpecMFS3std5stdio4File17LockingTextWriterZ12__dgliteral2MFNaNbNiNfZAya(i8*) * * * * * * * * * * * * * * * * * Doing function body for: __dgliteral2 * * * * * * * * * * * * * * * * * DtoCreateNestedContext for __dgliteral2 * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for std.format.FormatSpec!char.FormatSpec.writeUpToNextSpec!(LockingTextWriter).writeUpToNextSpec.__dgliteral2 * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for std.format.FormatSpec!char.FormatSpec.writeUpToNextSpec!(LockingTextWriter).writeUpToNextSpec * * * * * * * * * * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * * * * * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/format.d(792) * * * * * * * * * * * * * * * * * * * StringExp::toElem: "Unterminated format specifier: \"%\"" @ string * * * * * * * * * * * * * * * * * * * return value is '0x126b8cf0' * * * * * * * * * * * * * * * * Building type: string delegate() pure nothrow @nogc @safe * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe string()) * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * Final function type: { i64, i8* } (i8*) * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * StringExp::toElem: "/usr/include/dlang/ldc/std/format.d" @ string * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * IntegerExp::toElem: 792LU @ ulong * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 792LU @ ulong * * * * * * * * * * * * * * * * * value = i64 792 * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(793) * * * * * * * * * * * * AssignExp::toElem: this.trailing = this.trailing[1..__dollar] | (const(char)[])(const(char)[] = const(char)[]) * * * * * * * * * * * * * DotVarExp::toElem: this.trailing @ const(char)[] * * * * * * * * * * * * * * ThisExp::toElem: this @ FormatSpec!char * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.trailing: * * * * * * * * * * * * * * * Value: %12 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %.this_arg, i32 0, i32 9 * * * * * * * * * * * * * SliceExp::toElem: this.trailing[1..__dollar] @ const(char)[] * * * * * * * * * * * * * * DotVarExp::toElem: this.trailing @ const(char)[] * * * * * * * * * * * * * * * ThisExp::toElem: this @ FormatSpec!char * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.trailing: * * * * * * * * * * * * * * * * Value: %13 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %.this_arg, i32 0, i32 9 * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * * VarExp::toElem: __dollar @ ulong * * * * * * * * * * * * * * * DtoSymbolAddress ('__dollar' of type 'ulong') * * * * * * * * * * * * * * * * Id::dollar * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * SetArray * * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(795) * * * * * * * * * * * * EqualExp::toElem: cast(int)this.trailing[0] != 37 @ bool * * * * * * * * * * * * * CastExp::toElem: cast(int)this.trailing[0] @ int * * * * * * * * * * * * * * IndexExp::toElem: this.trailing[0] @ const(char) * * * * * * * * * * * * * * * DotVarExp::toElem: this.trailing @ const(char)[] * * * * * * * * * * * * * * * * ThisExp::toElem: this @ FormatSpec!char * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.trailing: * * * * * * * * * * * * * * * * * Value: %53 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %.this_arg, i32 0, i32 9 * * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * Casting from 'const(char)' to 'int' * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * * IntegerExp::toElem: 37 @ int * * * * * * * * * * * * * * IntegerExp::toConstElem: 37 @ int * * * * * * * * * * * * * * * value = i32 37 * * * * * * * * * * * * * integral or pointer or interface * * * * * * * * * * * * * lv: %58 = zext i8 %57 to i32 * * * * * * * * * * * * * rv: i32 37 * * * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(796) * * * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(796) * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(798) * * * * * * * * * * * * * * * CallExp::toElem: this.fillUp() @ void * * * * * * * * * * * * * * * * DotVarExp::toElem: this.fillUp @ pure @safe void() * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ FormatSpec!char * * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * %"std.format.FormatSpec!char.FormatSpec"* %.this_arg * * * * * * * * * * * * * * * * * Function type: pure @safe void() * * * * * * * * * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/format.d(799) * * * * * * * * * * * * * * * IntegerExp::toElem: true @ bool * * * * * * * * * * * * * * * * IntegerExp::toConstElem: true @ bool * * * * * * * * * * * * * * * * * value = i1 true * * * * * * * * * * * * * * * return value is '0x12188b90' * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(802) * * * * * * * * * * * * AssignExp::toElem: i = 0LU | (ulong)(ulong = ulong) * * * * * * * * * * * * * VarExp::toElem: i @ ulong * * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'ulong') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * lhs: %i = alloca i64, align 8 * * * * * * * * * * * * * * rhs: i64 0 * * * * * * * * * AddAssignExp::toElem: i += 1LU @ ulong * * * * * * * * * * Caching l-value of i += 1LU => i * * * * * * * * * * * VarExp::toElem: i @ ulong * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'ulong') * * * * * * * * * * * * * a normal variable * * * * * * * * * * AddExp::toElem: i + 1LU @ ulong * * * * * * * * * * * VarExp::toElem: i @ ulong * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %i = alloca i64, align 8 * * * * * * * * * * * rhs: %31 = add i64 %30, 1 * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(805) * * * * * * * CallExp::toElem: put(writer, this.trailing) @ void * * * * * * * * VarExp::toElem: put @ @safe void(ref LockingTextWriter r, const(char)[] e) * * * * * * * * * DtoSymbolAddress ('put' of type '@safe void(ref LockingTextWriter r, const(char)[] e)') * * * * * * * * * * FuncDeclaration * * * * * * * * DtoCallFunction() * * * * * * * * * doing normal arguments * * * * * * * * * Arguments so far: (0) * * * * * * * * * Function type: @safe void(ref LockingTextWriter r, const(char)[] e) * * * * * * * * * DtoArgument * * * * * * * * * * VarExp::toElem: writer @ LockingTextWriter * * * * * * * * * * * DtoSymbolAddress ('writer' of type 'LockingTextWriter') * * * * * * * * * * * * function param * * * * * * * * * * * * type: LockingTextWriter * * * * * * * * * DtoArgument * * * * * * * * * * DotVarExp::toElem: this.trailing @ const(char)[] * * * * * * * * * * * ThisExp::toElem: this @ FormatSpec!char * * * * * * * * * * * * normal this exp * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.trailing: * * * * * * * * * * * * Value: %32 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %.this_arg, i32 0, i32 9 * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(806) * * * * * * * AssignExp::toElem: this.trailing = null | (const(char)[])(const(char)[] = const(char)[]) * * * * * * * * DotVarExp::toElem: this.trailing @ const(char)[] * * * * * * * * * ThisExp::toElem: this @ FormatSpec!char * * * * * * * * * * normal this exp * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.trailing: * * * * * * * * * * Value: %18 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %.this_arg, i32 0, i32 9 * * * * * * * * NullExp::toElem(type=const(char)[]): null * * * * * * * * * NullExp::toConstElem(type=const(char)[]): null * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * DtoAssign() * * * * * * * * * DtoArrayAssign * * * * * * * * * * DtoSetArrayToNull * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/format.d(807) * * * * * * * IntegerExp::toElem: false @ bool * * * * * * * * IntegerExp::toConstElem: false @ bool * * * * * * * * * value = i1 false * * * * * * * return value is '0x120e69a0' * TemplateInstance::codegen: 'std.range.primitives.put!(LockingTextWriter, const(char)[])' * * DtoDefineFunction(std.range.primitives.put!(LockingTextWriter, const(char)[]).put): /usr/include/dlang/ldc/std/range/primitives.d(277) * * * Doing function body for: put * * * DtoCreateNestedContext for put * * * * DtoCreateNestedContextType for std.range.primitives.put!(LockingTextWriter, const(char)[]).put * * * CompoundStatement::toIR(): * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/range/primitives.d(282) * * * * * CallExp::toElem: doPut(r, e) @ void * * * * * * VarExp::toElem: doPut @ @safe void(ref LockingTextWriter r, auto ref const(char)[] e) * * * * * * * DtoSymbolAddress ('doPut' of type '@safe void(ref LockingTextWriter r, auto ref const(char)[] e)') * * * * * * * * FuncDeclaration * * * * * * * * DtoFunctionType(@safe void(ref LockingTextWriter r, auto ref const(char)[] e)) * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * Final function type: void ({ i64, i8* }*, %std.stdio.File.LockingTextWriter*) * * * * * * * * DtoResolveFunction(std.range.primitives.doPut!(LockingTextWriter, const(char)[]).doPut): /usr/include/dlang/ldc/std/range/primitives.d(182) * * * * * * * * * DtoDeclareFunction(std.range.primitives.doPut!(LockingTextWriter, const(char)[]).doPut): /usr/include/dlang/ldc/std/range/primitives.d(182) * * * * * * * * * * DtoFunctionType(@safe void(ref LockingTextWriter r, auto ref const(char)[] e)) * * * * * * * * * * func = declare void @_D3std5range10primitives50__T5doPutTS3std5stdio4File17LockingTextWriterTAxaZ5doPutFNfKS3std5stdio4File17LockingTextWriterKAxaZv({ i64, i8* }*, %std.stdio.File.LockingTextWriter*) * * * * * * DtoCallFunction() * * * * * * * Building type: @safe void(ref LockingTextWriter r, auto ref const(char)[] e) * * * * * * * * DtoFunctionType(@safe void(ref LockingTextWriter r, auto ref const(char)[] e)) * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * Final function type: void ({ i64, i8* }*, %std.stdio.File.LockingTextWriter*) * * * * * * * doing normal arguments * * * * * * * Arguments so far: (0) * * * * * * * Function type: @safe void(ref LockingTextWriter r, auto ref const(char)[] e) * * * * * * * DtoArgument * * * * * * * * VarExp::toElem: r @ LockingTextWriter * * * * * * * * * DtoSymbolAddress ('r' of type 'LockingTextWriter') * * * * * * * * * * function param * * * * * * * * * * type: LockingTextWriter * * * * * * * DtoArgument * * * * * * * * VarExp::toElem: e @ const(char)[] * * * * * * * * * DtoSymbolAddress ('e' of type 'const(char)[]') * * * * * * * * * * function param * * * * * * * * * * type: const(char)[] * TemplateInstance::codegen: 'std.range.primitives.doPut!(LockingTextWriter, const(char)[])' * * DtoDefineFunction(std.range.primitives.doPut!(LockingTextWriter, const(char)[]).doPut): /usr/include/dlang/ldc/std/range/primitives.d(182) * * * Doing function body for: doPut * * * DtoCreateNestedContext for doPut * * * * DtoCreateNestedContextType for std.range.primitives.doPut!(LockingTextWriter, const(char)[]).doPut * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/range/primitives.d(183) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/range/primitives.d(187) * * * * * * DeclarationExp::toElem: enum bool usingPut = true; | T=void * * * * * * * DtoDeclarationExp: usingPut * * * * * * * * VarDeclaration * * * * * * * * Manifest constant, nothing to do. * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/range/primitives.d(193) * * * * * * CallExp::toElem: r.put(e) @ void * * * * * * * DotVarExp::toElem: r.put @ @safe void(const(char)[] writeme) * * * * * * * * VarExp::toElem: r @ LockingTextWriter * * * * * * * * * DtoSymbolAddress ('r' of type 'LockingTextWriter') * * * * * * * * * * function param * * * * * * * * * * type: LockingTextWriter * * * * * * * * isMember = this is: LockingTextWriter * * * * * * * * DtoFunctionType(@safe void(const(char)[] writeme)) * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * Final function type: void (%std.stdio.File.LockingTextWriter*, { i64, i8* }) * * * * * * * * DtoResolveFunction(std.stdio.File.LockingTextWriter.put!(const(char)[]).put): /usr/include/dlang/ldc/std/stdio.d(2416) * * * * * * * * * DtoDeclareFunction(std.stdio.File.LockingTextWriter.put!(const(char)[]).put): /usr/include/dlang/ldc/std/stdio.d(2416) * * * * * * * * * * isMember = this is: LockingTextWriter * * * * * * * * * * DtoFunctionType(@safe void(const(char)[] writeme)) * * * * * * * * * * func = declare void @_D3std5stdio4File17LockingTextWriter12__T3putTAxaZ3putMFNfAxaZv(%std.stdio.File.LockingTextWriter*, { i64, i8* }) * * * * * * * DtoCallFunction() * * * * * * * * Building type: @safe void(const(char)[] writeme) * * * * * * * * * DtoFunctionType(@safe void(const(char)[] writeme)) * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: void ({ i64, i8* }) * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (1) * * * * * * * * * %std.stdio.File.LockingTextWriter* %r_arg * * * * * * * * Function type: @safe void(const(char)[] writeme) * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: e @ const(char)[] * * * * * * * * * * DtoSymbolAddress ('e' of type 'const(char)[]') * * * * * * * * * * * function param * * * * * * * * * * * type: const(char)[] * TemplateInstance::codegen: 'std.format.formatValue!(LockingTextWriter, dchar, char)' * * DtoDefineFunction(std.format.formatValue!(LockingTextWriter, dchar, char).formatValue): /usr/include/dlang/ldc/std/format.d(1905) * * * Doing function body for: formatValue * * * DtoCreateNestedContext for formatValue * * * * DtoCreateNestedContextType for std.format.formatValue!(LockingTextWriter, dchar, char).formatValue * * * TryFinallyStatement::toIR(): * * * * ExpStatement::toIR(): * * * * * CallExp::toElem: w.~this() @ void * * * * * * DotVarExp::toElem: w.~this @ @trusted void() * * * * * * * VarExp::toElem: w @ LockingTextWriter * * * * * * * * DtoSymbolAddress ('w' of type 'LockingTextWriter') * * * * * * * * * function param * * * * * * * * * type: LockingTextWriter * * * * * * DtoCallFunction() * * * * * * * doing normal arguments * * * * * * * Arguments so far: (1) * * * * * * * * %std.stdio.File.LockingTextWriter* %w_arg * * * * * * * Function type: @trusted void() * * * * CompoundStatement::toIR(): * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1907) * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1908) * * * * * * * DeclarationExp::toElem: dchar val = obj; | T=void * * * * * * * * DtoDeclarationExp: val * * * * * * * * * VarDeclaration * * * * * * * * * DtoVarDeclaration(vdtype = dchar) * * * * * * * * * * llvm value for decl: %val = alloca i32, align 4 * * * * * * * * * * expression initializer * * * * * * * * * * AssignExp::toElem: val = obj | (dchar)(dchar = dchar) * * * * * * * * * * * VarExp::toElem: val @ dchar * * * * * * * * * * * * DtoSymbolAddress ('val' of type 'dchar') * * * * * * * * * * * * * a normal variable * * * * * * * * * * * VarExp::toElem: obj @ dchar * * * * * * * * * * * * DtoSymbolAddress ('obj' of type 'dchar') * * * * * * * * * * * * * function param * * * * * * * * * * * * * type: dchar * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * lhs: %val = alloca i32, align 4 * * * * * * * * * * * * rhs: %1 = load i32, i32* %obj * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1910) * * * * * * * OrOrExp::toElem: cast(int)f.spec == 115 || cast(int)f.spec == 99 @ bool * * * * * * * * EqualExp::toElem: cast(int)f.spec == 115 @ bool * * * * * * * * * CastExp::toElem: cast(int)f.spec @ int * * * * * * * * * * DotVarExp::toElem: f.spec @ char * * * * * * * * * * * VarExp::toElem: f @ FormatSpec!char * * * * * * * * * * * * DtoSymbolAddress ('f' of type 'FormatSpec!char') * * * * * * * * * * * * * function param * * * * * * * * * * * * * type: FormatSpec!char * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.spec: * * * * * * * * * * * * Value: %2 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %f_arg, i32 0, i32 2 * * * * * * * * * * Casting from 'char' to 'int' * * * * * * * * * * * cast to: i32 * * * * * * * * * IntegerExp::toElem: 115 @ int * * * * * * * * * * IntegerExp::toConstElem: 115 @ int * * * * * * * * * * * value = i32 115 * * * * * * * * * integral or pointer or interface * * * * * * * * * lv: %4 = zext i8 %3 to i32 * * * * * * * * * rv: i32 115 * * * * * * * * EqualExp::toElem: cast(int)f.spec == 99 @ bool * * * * * * * * * CastExp::toElem: cast(int)f.spec @ int * * * * * * * * * * DotVarExp::toElem: f.spec @ char * * * * * * * * * * * VarExp::toElem: f @ FormatSpec!char * * * * * * * * * * * * DtoSymbolAddress ('f' of type 'FormatSpec!char') * * * * * * * * * * * * * function param * * * * * * * * * * * * * type: FormatSpec!char * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.spec: * * * * * * * * * * * * Value: %6 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %f_arg, i32 0, i32 2 * * * * * * * * * * Casting from 'char' to 'int' * * * * * * * * * * * cast to: i32 * * * * * * * * * IntegerExp::toElem: 99 @ int * * * * * * * * * * IntegerExp::toConstElem: 99 @ int * * * * * * * * * * * value = i32 99 * * * * * * * * * integral or pointer or interface * * * * * * * * * lv: %8 = zext i8 %7 to i32 * * * * * * * * * rv: i32 99 * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1911) * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1912) * * * * * * * * * CallExp::toElem: put(w, val) @ void * * * * * * * * * * VarExp::toElem: put @ nothrow @nogc @safe void(ref LockingTextWriter r, dchar e) * * * * * * * * * * * DtoSymbolAddress ('put' of type 'nothrow @nogc @safe void(ref LockingTextWriter r, dchar e)') * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * DtoFunctionType(nothrow @nogc @safe void(ref LockingTextWriter r, dchar e)) * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * Final function type: void (i32, %std.stdio.File.LockingTextWriter*) * * * * * * * * * * * * DtoResolveFunction(std.range.primitives.put!(LockingTextWriter, dchar).put): /usr/include/dlang/ldc/std/range/primitives.d(277) * * * * * * * * * * * * * DtoDeclareFunction(std.range.primitives.put!(LockingTextWriter, dchar).put): /usr/include/dlang/ldc/std/range/primitives.d(277) * * * * * * * * * * * * * * DtoFunctionType(nothrow @nogc @safe void(ref LockingTextWriter r, dchar e)) * * * * * * * * * * * * * * func = declare void @_D3std5range10primitives46__T3putTS3std5stdio4File17LockingTextWriterTwZ3putFNbNiNfKS3std5stdio4File17LockingTextWriterwZv(i32, %std.stdio.File.LockingTextWriter*) * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * Building type: nothrow @nogc @safe void(ref LockingTextWriter r, dchar e) * * * * * * * * * * * * DtoFunctionType(nothrow @nogc @safe void(ref LockingTextWriter r, dchar e)) * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * Final function type: void (i32, %std.stdio.File.LockingTextWriter*) * * * * * * * * * * * doing normal arguments * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * Function type: nothrow @nogc @safe void(ref LockingTextWriter r, dchar e) * * * * * * * * * * * DtoArgument * * * * * * * * * * * * VarExp::toElem: w @ LockingTextWriter * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'LockingTextWriter') * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * type: LockingTextWriter * * * * * * * * * * * DtoArgument * * * * * * * * * * * * VarExp::toElem: val @ dchar * * * * * * * * * * * * * DtoSymbolAddress ('val' of type 'dchar') * * * * * * * * * * * * * * a normal variable * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1915) * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1915) * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1916) * * * * * * * * * * DeclarationExp::toElem: alias U = uint; | T=void * * * * * * * * * * * DtoDeclarationExp: U * * * * * * * * * * * * Ignoring Symbol: alias * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1917) * * * * * * * * * * CallExp::toElem: formatValue((LockingTextWriter __copytmp3305 = (__copytmp3305 = w).__postblit(); , __copytmp3305), cast(uint)val, f) @ void * * * * * * * * * * * VarExp::toElem: formatValue @ @safe void(LockingTextWriter w, uint obj, ref FormatSpec!char f) * * * * * * * * * * * * DtoSymbolAddress ('formatValue' of type '@safe void(LockingTextWriter w, uint obj, ref FormatSpec!char f)') * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * DtoFunctionType(@safe void(LockingTextWriter w, uint obj, ref FormatSpec!char f)) * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * Final function type: void (%"std.format.FormatSpec!char.FormatSpec"*, i32, %std.stdio.File.LockingTextWriter*) * * * * * * * * * * * * * DtoResolveFunction(std.format.formatValue!(LockingTextWriter, uint, char).formatValue): /usr/include/dlang/ldc/std/format.d(1397) * * * * * * * * * * * * * * DtoDeclareFunction(std.format.formatValue!(LockingTextWriter, uint, char).formatValue): /usr/include/dlang/ldc/std/format.d(1397) * * * * * * * * * * * * * * * DtoFunctionType(@safe void(LockingTextWriter w, uint obj, ref FormatSpec!char f)) * * * * * * * * * * * * * * * func = declare void @_D3std6format57__T11formatValueTS3std5stdio4File17LockingTextWriterTkTaZ11formatValueFNfS3std5stdio4File17LockingTextWriterkKS3std6format18__T10FormatSpecTaZ10FormatSpecZv(%"std.format.FormatSpec!char.FormatSpec"*, i32, %std.stdio.File.LockingTextWriter*) * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * Building type: @safe void(LockingTextWriter w, uint obj, ref FormatSpec!char f) * * * * * * * * * * * * * DtoFunctionType(@safe void(LockingTextWriter w, uint obj, ref FormatSpec!char f)) * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * Final function type: void (%"std.format.FormatSpec!char.FormatSpec"*, i32, %std.stdio.File.LockingTextWriter*) * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * Function type: @safe void(LockingTextWriter w, uint obj, ref FormatSpec!char f) * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * CommaExp::toElem: LockingTextWriter __copytmp3305 = (__copytmp3305 = w).__postblit(); , __copytmp3305 @ LockingTextWriter * * * * * * * * * * * * * * DeclarationExp::toElem: LockingTextWriter __copytmp3305 = (__copytmp3305 = w).__postblit(); | T=void * * * * * * * * * * * * * * * DtoDeclarationExp: __copytmp3305 * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = LockingTextWriter) * * * * * * * * * * * * * * * * * llvm value for decl: %__copytmp3305 = alloca %std.stdio.File.LockingTextWriter, align 8 * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * CallExp::toElem: (__copytmp3305 = w).__postblit() @ void * * * * * * * * * * * * * * * * * * DotVarExp::toElem: (__copytmp3305 = w).__postblit @ @trusted void() * * * * * * * * * * * * * * * * * * * AssignExp::toElem: __copytmp3305 = w | (LockingTextWriter)(LockingTextWriter = LockingTextWriter) * * * * * * * * * * * * * * * * * * * * VarExp::toElem: __copytmp3305 @ LockingTextWriter * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__copytmp3305' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * VarExp::toElem: w @ LockingTextWriter * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * type: LockingTextWriter * * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * * * %__copytmp3305 = alloca %std.stdio.File.LockingTextWriter, align 8 * * * * * * * * * * * * * * * * * * * Function type: @trusted void() * * * * * * * * * * * * * * VarExp::toElem: __copytmp3305 @ LockingTextWriter * * * * * * * * * * * * * * * DtoSymbolAddress ('__copytmp3305' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * CastExp::toElem: cast(uint)val @ uint * * * * * * * * * * * * * * VarExp::toElem: val @ dchar * * * * * * * * * * * * * * * DtoSymbolAddress ('val' of type 'dchar') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * Casting from 'dchar' to 'uint' * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * VarExp::toElem: f @ FormatSpec!char * * * * * * * * * * * * * * DtoSymbolAddress ('f' of type 'FormatSpec!char') * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * type: FormatSpec!char * TemplateInstance::codegen: 'std.range.primitives.put!(LockingTextWriter, dchar)' * * DtoDefineFunction(std.range.primitives.put!(LockingTextWriter, dchar).put): /usr/include/dlang/ldc/std/range/primitives.d(277) * * * Doing function body for: put * * * DtoCreateNestedContext for put * * * * DtoCreateNestedContextType for std.range.primitives.put!(LockingTextWriter, dchar).put * * * CompoundStatement::toIR(): * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/range/primitives.d(282) * * * * * CallExp::toElem: doPut(r, e) @ void * * * * * * VarExp::toElem: doPut @ nothrow @nogc @safe void(ref LockingTextWriter r, auto ref dchar e) * * * * * * * DtoSymbolAddress ('doPut' of type 'nothrow @nogc @safe void(ref LockingTextWriter r, auto ref dchar e)') * * * * * * * * FuncDeclaration * * * * * * * * DtoFunctionType(nothrow @nogc @safe void(ref LockingTextWriter r, auto ref dchar e)) * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * Final function type: void (i32*, %std.stdio.File.LockingTextWriter*) * * * * * * * * DtoResolveFunction(std.range.primitives.doPut!(LockingTextWriter, dchar).doPut): /usr/include/dlang/ldc/std/range/primitives.d(182) * * * * * * * * * DtoDeclareFunction(std.range.primitives.doPut!(LockingTextWriter, dchar).doPut): /usr/include/dlang/ldc/std/range/primitives.d(182) * * * * * * * * * * DtoFunctionType(nothrow @nogc @safe void(ref LockingTextWriter r, auto ref dchar e)) * * * * * * * * * * func = declare void @_D3std5range10primitives48__T5doPutTS3std5stdio4File17LockingTextWriterTwZ5doPutFNbNiNfKS3std5stdio4File17LockingTextWriterKwZv(i32*, %std.stdio.File.LockingTextWriter*) * * * * * * DtoCallFunction() * * * * * * * Building type: nothrow @nogc @safe void(ref LockingTextWriter r, auto ref dchar e) * * * * * * * * DtoFunctionType(nothrow @nogc @safe void(ref LockingTextWriter r, auto ref dchar e)) * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * Final function type: void (i32*, %std.stdio.File.LockingTextWriter*) * * * * * * * doing normal arguments * * * * * * * Arguments so far: (0) * * * * * * * Function type: nothrow @nogc @safe void(ref LockingTextWriter r, auto ref dchar e) * * * * * * * DtoArgument * * * * * * * * VarExp::toElem: r @ LockingTextWriter * * * * * * * * * DtoSymbolAddress ('r' of type 'LockingTextWriter') * * * * * * * * * * function param * * * * * * * * * * type: LockingTextWriter * * * * * * * DtoArgument * * * * * * * * VarExp::toElem: e @ dchar * * * * * * * * * DtoSymbolAddress ('e' of type 'dchar') * * * * * * * * * * function param * * * * * * * * * * type: dchar * TemplateInstance::codegen: 'std.range.primitives.doPut!(LockingTextWriter, dchar)' * * DtoDefineFunction(std.range.primitives.doPut!(LockingTextWriter, dchar).doPut): /usr/include/dlang/ldc/std/range/primitives.d(182) * * * Doing function body for: doPut * * * DtoCreateNestedContext for doPut * * * * DtoCreateNestedContextType for std.range.primitives.doPut!(LockingTextWriter, dchar).doPut * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/range/primitives.d(183) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/range/primitives.d(187) * * * * * * DeclarationExp::toElem: enum bool usingPut = true; | T=void * * * * * * * DtoDeclarationExp: usingPut * * * * * * * * VarDeclaration * * * * * * * * Manifest constant, nothing to do. * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/range/primitives.d(193) * * * * * * CallExp::toElem: r.put(e) @ void * * * * * * * DotVarExp::toElem: r.put @ nothrow @nogc @safe void(dchar c) * * * * * * * * VarExp::toElem: r @ LockingTextWriter * * * * * * * * * DtoSymbolAddress ('r' of type 'LockingTextWriter') * * * * * * * * * * function param * * * * * * * * * * type: LockingTextWriter * * * * * * * * isMember = this is: LockingTextWriter * * * * * * * * DtoFunctionType(nothrow @nogc @safe void(dchar c)) * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * Final function type: void (%std.stdio.File.LockingTextWriter*, i32) * * * * * * * * DtoResolveFunction(std.stdio.File.LockingTextWriter.put!dchar.put): /usr/include/dlang/ldc/std/stdio.d(2452) * * * * * * * * * DtoDeclareFunction(std.stdio.File.LockingTextWriter.put!dchar.put): /usr/include/dlang/ldc/std/stdio.d(2452) * * * * * * * * * * isMember = this is: LockingTextWriter * * * * * * * * * * DtoFunctionType(nothrow @nogc @safe void(dchar c)) * * * * * * * * * * func = declare void @_D3std5stdio4File17LockingTextWriter10__T3putTwZ3putMFNbNiNfwZv(%std.stdio.File.LockingTextWriter*, i32) * * * * * * * DtoCallFunction() * * * * * * * * Building type: nothrow @nogc @safe void(dchar c) * * * * * * * * * DtoFunctionType(nothrow @nogc @safe void(dchar c)) * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: void (i32) * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (1) * * * * * * * * * %std.stdio.File.LockingTextWriter* %r_arg * * * * * * * * Function type: nothrow @nogc @safe void(dchar c) * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: e @ dchar * * * * * * * * * * DtoSymbolAddress ('e' of type 'dchar') * * * * * * * * * * * function param * * * * * * * * * * * type: dchar * TemplateInstance::codegen: 'std.format.formatValue!(LockingTextWriter, uint, char)' * * DtoDefineFunction(std.format.formatValue!(LockingTextWriter, uint, char).formatValue): /usr/include/dlang/ldc/std/format.d(1397) * * * Doing function body for: formatValue * * * DtoCreateNestedContext for formatValue * * * * DtoCreateNestedContextType for std.format.formatValue!(LockingTextWriter, uint, char).formatValue * * * TryFinallyStatement::toIR(): * * * * ExpStatement::toIR(): * * * * * CallExp::toElem: w.~this() @ void * * * * * * DotVarExp::toElem: w.~this @ @trusted void() * * * * * * * VarExp::toElem: w @ LockingTextWriter * * * * * * * * DtoSymbolAddress ('w' of type 'LockingTextWriter') * * * * * * * * * function param * * * * * * * * * type: LockingTextWriter * * * * * * DtoCallFunction() * * * * * * * doing normal arguments * * * * * * * Arguments so far: (1) * * * * * * * * %std.stdio.File.LockingTextWriter* %w_arg * * * * * * * Function type: @trusted void() * * * * CompoundStatement::toIR(): * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1399) * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1401) * * * * * * * DeclarationExp::toElem: alias U = uint; | T=void * * * * * * * * DtoDeclarationExp: U * * * * * * * * * Ignoring Symbol: alias * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1402) * * * * * * * DeclarationExp::toElem: uint val = obj; | T=void * * * * * * * * DtoDeclarationExp: val * * * * * * * * * VarDeclaration * * * * * * * * * DtoVarDeclaration(vdtype = uint) * * * * * * * * * * llvm value for decl: %val = alloca i32, align 4 * * * * * * * * * * expression initializer * * * * * * * * * * AssignExp::toElem: val = obj | (uint)(uint = uint) * * * * * * * * * * * VarExp::toElem: val @ uint * * * * * * * * * * * * DtoSymbolAddress ('val' of type 'uint') * * * * * * * * * * * * * a normal variable * * * * * * * * * * * VarExp::toElem: obj @ uint * * * * * * * * * * * * DtoSymbolAddress ('obj' of type 'uint') * * * * * * * * * * * * * function param * * * * * * * * * * * * * type: uint * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * lhs: %val = alloca i32, align 4 * * * * * * * * * * * * rhs: %1 = load i32, i32* %obj * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1404) * * * * * * * EqualExp::toElem: cast(int)f.spec == 114 @ bool * * * * * * * * CastExp::toElem: cast(int)f.spec @ int * * * * * * * * * DotVarExp::toElem: f.spec @ char * * * * * * * * * * VarExp::toElem: f @ FormatSpec!char * * * * * * * * * * * DtoSymbolAddress ('f' of type 'FormatSpec!char') * * * * * * * * * * * * function param * * * * * * * * * * * * type: FormatSpec!char * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.spec: * * * * * * * * * * * Value: %2 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %f_arg, i32 0, i32 2 * * * * * * * * * Casting from 'char' to 'int' * * * * * * * * * * cast to: i32 * * * * * * * * IntegerExp::toElem: 114 @ int * * * * * * * * * IntegerExp::toConstElem: 114 @ int * * * * * * * * * * value = i32 114 * * * * * * * * integral or pointer or interface * * * * * * * * lv: %4 = zext i8 %3 to i32 * * * * * * * * rv: i32 114 * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1405) * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1405) * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1407) * * * * * * * * * * DeclarationExp::toElem: const(char)[] raw = (*(ref uint val) => (cast(const(char*))&val)[0..4])(val); | T=void * * * * * * * * * * * DtoDeclarationExp: raw * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * DtoVarDeclaration(vdtype = const(char)[]) * * * * * * * * * * * * * llvm value for decl: %raw = alloca { i64, i8* }, align 8 * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * AssignExp::toElem: raw = (*(ref uint val) => (cast(const(char*))&val)[0..4])(val) | (const(char)[])(const(char)[] = const(char)[]) * * * * * * * * * * * * * * VarExp::toElem: raw @ const(char)[] * * * * * * * * * * * * * * * DtoSymbolAddress ('raw' of type 'const(char)[]') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * CallExp::toElem: (*(ref uint val) => (cast(const(char*))&val)[0..4])(val) @ const(char)[] * * * * * * * * * * * * * * * PtrExp::toElem: *(ref uint val) => (cast(const(char*))&val)[0..4] @ pure nothrow @nogc @trusted const(char)[](ref uint val) * * * * * * * * * * * * * * * * FuncExp::toElem: __lambda4 @ const(char)[] function(ref uint val) pure nothrow @nogc @trusted * * * * * * * * * * * * * * * * * kind = function * * * * * * * * * * * * * * * * * DtoDefineFunction(std.format.formatValue!(LockingTextWriter, uint, char).formatValue.__lambda4): /usr/include/dlang/ldc/std/format.d(1407) * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted const(char)[](ref uint val)) * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * Final function type: { i64, i8* } (i32*) * * * * * * * * * * * * * * * * * * DtoResolveFunction(std.format.formatValue!(LockingTextWriter, uint, char).formatValue.__lambda4): /usr/include/dlang/ldc/std/format.d(1407) * * * * * * * * * * * * * * * * * * * DtoDeclareFunction(std.format.formatValue!(LockingTextWriter, uint, char).formatValue.__lambda4): /usr/include/dlang/ldc/std/format.d(1407) * * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted const(char)[](ref uint val)) * * * * * * * * * * * * * * * * * * * * func = declare { i64, i8* } @_D3std6format57__T11formatValueTS3std5stdio4File17LockingTextWriterTkTaZ11formatValueFS3std5stdio4File17LockingTextWriterkKS3std6format18__T10FormatSpecTaZ10FormatSpecZ16__T9__lambda4TkZ9__lambda4FNaNbNiNeKkZAxa(i32*) * * * * * * * * * * * * * * * * * * Doing function body for: __lambda4 * * * * * * * * * * * * * * * * * * DtoCreateNestedContext for __lambda4 * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for std.format.formatValue!(LockingTextWriter, uint, char).formatValue.__lambda4 * * * * * * * * * * * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * * * * * * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1408) * * * * * * * * * * * * * * * * * * * * SliceExp::toElem: (cast(const(char*))&val)[0..4] @ const(char)[] * * * * * * * * * * * * * * * * * * * * * CastExp::toElem: cast(const(char*))&val @ const(char*) * * * * * * * * * * * * * * * * * * * * * * AddrExp::toElem: &val @ uint* * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: val @ uint * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('val' of type 'uint') * * * * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * * * * type: uint * * * * * * * * * * * * * * * * * * * * * * * is nothing special * * * * * * * * * * * * * * * * * * * * * * * lval: i32* %val_arg * * * * * * * * * * * * * * * * * * * * * * Casting from 'uint*' to 'const(char*)' * * * * * * * * * * * * * * * * * * * * * * * src: i32* %val_arg * * * * * * * * * * * * * * * * * * * * * * * to type: i8* * * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 4LU @ ulong * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 4LU @ ulong * * * * * * * * * * * * * * * * * * * * * * * value = i64 4 * * * * * * * * * * * * * * * * * * * * return value is '0x128ce080' * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * Building type: pure nothrow @nogc @trusted const(char)[](ref uint val) * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted const(char)[](ref uint val)) * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * Final function type: { i64, i8* } (i32*) * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @trusted const(char)[](ref uint val) * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * VarExp::toElem: val @ uint * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('val' of type 'uint') * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * SetArray * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1410) * * * * * * * * * * OrOrExp::toElem: !!f.flPlus() || false @ bool * * * * * * * * * * * BoolExp::toElem: !!f.flPlus() @ bool * * * * * * * * * * * * CallExp::toElem: f.flPlus() @ bool * * * * * * * * * * * * * DotVarExp::toElem: f.flPlus @ const pure nothrow @nogc @property @safe bool() * * * * * * * * * * * * * * VarExp::toElem: f @ FormatSpec!char * * * * * * * * * * * * * * * DtoSymbolAddress ('f' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * type: FormatSpec!char * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * %"std.format.FormatSpec!char.FormatSpec"* %f_arg * * * * * * * * * * * * * * Function type: const pure nothrow @nogc @property @safe bool() * * * * * * * * * * * IntegerExp::toElem: false @ bool * * * * * * * * * * * * IntegerExp::toConstElem: false @ bool * * * * * * * * * * * * * value = i1 false * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1412) * * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1414) * * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1414) * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1414) * * * * * * * * * * * * * * DeclarationExp::toElem: const(char)[] __aggr3300 = raw[]; | T=void * * * * * * * * * * * * * * * DtoDeclarationExp: __aggr3300 * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = const(char)[]) * * * * * * * * * * * * * * * * * llvm value for decl: %__aggr3300 = alloca { i64, i8* }, align 8 * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * AssignExp::toElem: __aggr3300 = raw[] | (const(char)[])(const(char)[] = const(char)[]) * * * * * * * * * * * * * * * * * * VarExp::toElem: __aggr3300 @ const(char)[] * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__aggr3300' of type 'const(char)[]') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * SliceExp::toElem: raw[] @ const(char)[] * * * * * * * * * * * * * * * * * * * VarExp::toElem: raw @ const(char)[] * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('raw' of type 'const(char)[]') * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * * * SetArray * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1414) * * * * * * * * * * * * * * DeclarationExp::toElem: ulong __key3301 = __aggr3300.length; | T=void * * * * * * * * * * * * * * * DtoDeclarationExp: __key3301 * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * * * * * * * * * llvm value for decl: %__key3301 = alloca i64, align 8 * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * AssignExp::toElem: __key3301 = __aggr3300.length | (ulong)(ulong = ulong) * * * * * * * * * * * * * * * * * * VarExp::toElem: __key3301 @ ulong * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__key3301' of type 'ulong') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * ArrayLengthExp::toElem: __aggr3300.length @ ulong * * * * * * * * * * * * * * * * * * * VarExp::toElem: __aggr3300 @ const(char)[] * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__aggr3300' of type 'const(char)[]') * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * lhs: %__key3301 = alloca i64, align 8 * * * * * * * * * * * * * * * * * * * rhs: %.len6 = load i64, i64* %18 * * * * * * * * * * * * * ForStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1414) * * * * * * * * * * * * * * PostExp::toElem: __key3301-- @ ulong * * * * * * * * * * * * * * * VarExp::toElem: __key3301 @ ulong * * * * * * * * * * * * * * * * DtoSymbolAddress ('__key3301' of type 'ulong') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * * Casting from 'ulong' to 'bool' * * * * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1414) * * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1414) * * * * * * * * * * * * * * * * DeclarationExp::toElem: const const(char) c = __aggr3300[__key3301]; | T=void * * * * * * * * * * * * * * * * * DtoDeclarationExp: c * * * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = const(char)) * * * * * * * * * * * * * * * * * * * llvm value for decl: %c = alloca i8, align 1 * * * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * * * AssignExp::toElem: c = __aggr3300[__key3301] | (const(char))(const(char) = const(char)) * * * * * * * * * * * * * * * * * * * * VarExp::toElem: c @ const(char) * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('c' of type 'const(char)') * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * IndexExp::toElem: __aggr3300[__key3301] @ const(char) * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: __aggr3300 @ const(char)[] * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__aggr3300' of type 'const(char)[]') * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: __key3301 @ ulong * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__key3301' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * * lhs: %c = alloca i8, align 1 * * * * * * * * * * * * * * * * * * * * * rhs: %27 = load i8, i8* %26 * * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1415) * * * * * * * * * * * * * * * * CallExp::toElem: put(w, c) @ void * * * * * * * * * * * * * * * * * VarExp::toElem: put @ nothrow @nogc @safe void(ref LockingTextWriter r, const(char) e) * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('put' of type 'nothrow @nogc @safe void(ref LockingTextWriter r, const(char) e)') * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * Function type: nothrow @nogc @safe void(ref LockingTextWriter r, const(char) e) * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * VarExp::toElem: w @ LockingTextWriter * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * type: LockingTextWriter * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * VarExp::toElem: c @ const(char) * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('c' of type 'const(char)') * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1418) * * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1419) * * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1419) * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1419) * * * * * * * * * * * * * * DeclarationExp::toElem: const(char)[] __aggr3302 = raw[]; | T=void * * * * * * * * * * * * * * * DtoDeclarationExp: __aggr3302 * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = const(char)[]) * * * * * * * * * * * * * * * * * llvm value for decl: %__aggr3302 = alloca { i64, i8* }, align 8 * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * AssignExp::toElem: __aggr3302 = raw[] | (const(char)[])(const(char)[] = const(char)[]) * * * * * * * * * * * * * * * * * * VarExp::toElem: __aggr3302 @ const(char)[] * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__aggr3302' of type 'const(char)[]') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * SliceExp::toElem: raw[] @ const(char)[] * * * * * * * * * * * * * * * * * * * VarExp::toElem: raw @ const(char)[] * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('raw' of type 'const(char)[]') * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * * * SetArray * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1419) * * * * * * * * * * * * * * DeclarationExp::toElem: ulong __key3303 = 0LU; | T=void * * * * * * * * * * * * * * * DtoDeclarationExp: __key3303 * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * * * * * * * * * llvm value for decl: %__key3303 = alloca i64, align 8 * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * AssignExp::toElem: __key3303 = 0LU | (ulong)(ulong = ulong) * * * * * * * * * * * * * * * * * * VarExp::toElem: __key3303 @ ulong * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__key3303' of type 'ulong') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * lhs: %__key3303 = alloca i64, align 8 * * * * * * * * * * * * * * * * * * * rhs: i64 0 * * * * * * * * * * * * * ForStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1419) * * * * * * * * * * * * * * CmpExp::toElem: __key3303 < __aggr3302.length @ bool * * * * * * * * * * * * * * * VarExp::toElem: __key3303 @ ulong * * * * * * * * * * * * * * * * DtoSymbolAddress ('__key3303' of type 'ulong') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * ArrayLengthExp::toElem: __aggr3302.length @ ulong * * * * * * * * * * * * * * * * VarExp::toElem: __aggr3302 @ const(char)[] * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__aggr3302' of type 'const(char)[]') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * type 1: %34 = load i64, i64* %__key3303 * * * * * * * * * * * * * * * type 2: %.len17 = load i64, i64* %33 * * * * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1419) * * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1419) * * * * * * * * * * * * * * * * DeclarationExp::toElem: const const(char) c = __aggr3302[__key3303]; | T=void * * * * * * * * * * * * * * * * * DtoDeclarationExp: c * * * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = const(char)) * * * * * * * * * * * * * * * * * * * llvm value for decl: %c18 = alloca i8, align 1 * * * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * * * AssignExp::toElem: c = __aggr3302[__key3303] | (const(char))(const(char) = const(char)) * * * * * * * * * * * * * * * * * * * * VarExp::toElem: c @ const(char) * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('c' of type 'const(char)') * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * IndexExp::toElem: __aggr3302[__key3303] @ const(char) * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: __aggr3302 @ const(char)[] * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__aggr3302' of type 'const(char)[]') * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: __key3303 @ ulong * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__key3303' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * * lhs: %c18 = alloca i8, align 1 * * * * * * * * * * * * * * * * * * * * * rhs: %41 = load i8, i8* %40 * * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1420) * * * * * * * * * * * * * * * * CallExp::toElem: put(w, c) @ void * * * * * * * * * * * * * * * * * VarExp::toElem: put @ nothrow @nogc @safe void(ref LockingTextWriter r, const(char) e) * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('put' of type 'nothrow @nogc @safe void(ref LockingTextWriter r, const(char) e)') * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * Function type: nothrow @nogc @safe void(ref LockingTextWriter r, const(char) e) * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * VarExp::toElem: w @ LockingTextWriter * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * type: LockingTextWriter * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * VarExp::toElem: c @ const(char) * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('c' of type 'const(char)') * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * AddAssignExp::toElem: __key3303 += 1LU @ ulong * * * * * * * * * * * * * * * Caching l-value of __key3303 += 1LU => __key3303 * * * * * * * * * * * * * * * * VarExp::toElem: __key3303 @ ulong * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__key3303' of type 'ulong') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * AddExp::toElem: __key3303 + 1LU @ ulong * * * * * * * * * * * * * * * * VarExp::toElem: __key3303 @ ulong * * * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * lhs: %__key3303 = alloca i64, align 8 * * * * * * * * * * * * * * * * rhs: %39 = add i64 %38, 1 * * * * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1422) * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1425) * * * * * * * DeclarationExp::toElem: uint base = cast(int)f.spec == 120 || cast(int)f.spec == 88 ? 16u : cast(int)f.spec == 111 ? 8u : cast(int)f.spec == 98 ? 2u : cast(int)f.spec == 115 || cast(int)f.spec == 100 || cast(int)f.spec == 117 ? 10u : 0u; | T=void * * * * * * * * DtoDeclarationExp: base * * * * * * * * * VarDeclaration * * * * * * * * * DtoVarDeclaration(vdtype = uint) * * * * * * * * * * llvm value for decl: %base = alloca i32, align 4 * * * * * * * * * * expression initializer * * * * * * * * * * AssignExp::toElem: base = cast(int)f.spec == 120 || cast(int)f.spec == 88 ? 16u : cast(int)f.spec == 111 ? 8u : cast(int)f.spec == 98 ? 2u : cast(int)f.spec == 115 || cast(int)f.spec == 100 || cast(int)f.spec == 117 ? 10u : 0u | (uint)(uint = uint) * * * * * * * * * * * VarExp::toElem: base @ uint * * * * * * * * * * * * DtoSymbolAddress ('base' of type 'uint') * * * * * * * * * * * * * a normal variable * * * * * * * * * * * CondExp::toElem: cast(int)f.spec == 120 || cast(int)f.spec == 88 ? 16u : cast(int)f.spec == 111 ? 8u : cast(int)f.spec == 98 ? 2u : cast(int)f.spec == 115 || cast(int)f.spec == 100 || cast(int)f.spec == 117 ? 10u : 0u @ uint * * * * * * * * * * * * OrOrExp::toElem: cast(int)f.spec == 120 || cast(int)f.spec == 88 @ bool * * * * * * * * * * * * * EqualExp::toElem: cast(int)f.spec == 120 @ bool * * * * * * * * * * * * * * CastExp::toElem: cast(int)f.spec @ int * * * * * * * * * * * * * * * DotVarExp::toElem: f.spec @ char * * * * * * * * * * * * * * * * VarExp::toElem: f @ FormatSpec!char * * * * * * * * * * * * * * * * * DtoSymbolAddress ('f' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * type: FormatSpec!char * * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.spec: * * * * * * * * * * * * * * * * * Value: %8 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %f_arg, i32 0, i32 2 * * * * * * * * * * * * * * * Casting from 'char' to 'int' * * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * * * IntegerExp::toElem: 120 @ int * * * * * * * * * * * * * * * IntegerExp::toConstElem: 120 @ int * * * * * * * * * * * * * * * * value = i32 120 * * * * * * * * * * * * * * integral or pointer or interface * * * * * * * * * * * * * * lv: %10 = zext i8 %9 to i32 * * * * * * * * * * * * * * rv: i32 120 * * * * * * * * * * * * * EqualExp::toElem: cast(int)f.spec == 88 @ bool * * * * * * * * * * * * * * CastExp::toElem: cast(int)f.spec @ int * * * * * * * * * * * * * * * DotVarExp::toElem: f.spec @ char * * * * * * * * * * * * * * * * VarExp::toElem: f @ FormatSpec!char * * * * * * * * * * * * * * * * * DtoSymbolAddress ('f' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * type: FormatSpec!char * * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.spec: * * * * * * * * * * * * * * * * * Value: %50 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %f_arg, i32 0, i32 2 * * * * * * * * * * * * * * * Casting from 'char' to 'int' * * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * * * IntegerExp::toElem: 88 @ int * * * * * * * * * * * * * * * IntegerExp::toConstElem: 88 @ int * * * * * * * * * * * * * * * * value = i32 88 * * * * * * * * * * * * * * integral or pointer or interface * * * * * * * * * * * * * * lv: %52 = zext i8 %51 to i32 * * * * * * * * * * * * * * rv: i32 88 * * * * * * * * * * * * IntegerExp::toElem: 16u @ uint * * * * * * * * * * * * * IntegerExp::toConstElem: 16u @ uint * * * * * * * * * * * * * * value = i32 16 * * * * * * * * * * * * CondExp::toElem: cast(int)f.spec == 111 ? 8u : cast(int)f.spec == 98 ? 2u : cast(int)f.spec == 115 || cast(int)f.spec == 100 || cast(int)f.spec == 117 ? 10u : 0u @ uint * * * * * * * * * * * * * EqualExp::toElem: cast(int)f.spec == 111 @ bool * * * * * * * * * * * * * * CastExp::toElem: cast(int)f.spec @ int * * * * * * * * * * * * * * * DotVarExp::toElem: f.spec @ char * * * * * * * * * * * * * * * * VarExp::toElem: f @ FormatSpec!char * * * * * * * * * * * * * * * * * DtoSymbolAddress ('f' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * type: FormatSpec!char * * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.spec: * * * * * * * * * * * * * * * * * Value: %50 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %f_arg, i32 0, i32 2 * * * * * * * * * * * * * * * Casting from 'char' to 'int' * * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * * * IntegerExp::toElem: 111 @ int * * * * * * * * * * * * * * * IntegerExp::toConstElem: 111 @ int * * * * * * * * * * * * * * * * value = i32 111 * * * * * * * * * * * * * * integral or pointer or interface * * * * * * * * * * * * * * lv: %52 = zext i8 %51 to i32 * * * * * * * * * * * * * * rv: i32 111 * * * * * * * * * * * * * IntegerExp::toElem: 8u @ uint * * * * * * * * * * * * * * IntegerExp::toConstElem: 8u @ uint * * * * * * * * * * * * * * * value = i32 8 * * * * * * * * * * * * * CondExp::toElem: cast(int)f.spec == 98 ? 2u : cast(int)f.spec == 115 || cast(int)f.spec == 100 || cast(int)f.spec == 117 ? 10u : 0u @ uint * * * * * * * * * * * * * * EqualExp::toElem: cast(int)f.spec == 98 @ bool * * * * * * * * * * * * * * * CastExp::toElem: cast(int)f.spec @ int * * * * * * * * * * * * * * * * DotVarExp::toElem: f.spec @ char * * * * * * * * * * * * * * * * * VarExp::toElem: f @ FormatSpec!char * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('f' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * type: FormatSpec!char * * * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.spec: * * * * * * * * * * * * * * * * * * Value: %58 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %f_arg, i32 0, i32 2 * * * * * * * * * * * * * * * * Casting from 'char' to 'int' * * * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * * * * IntegerExp::toElem: 98 @ int * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 98 @ int * * * * * * * * * * * * * * * * * value = i32 98 * * * * * * * * * * * * * * * integral or pointer or interface * * * * * * * * * * * * * * * lv: %60 = zext i8 %59 to i32 * * * * * * * * * * * * * * * rv: i32 98 * * * * * * * * * * * * * * IntegerExp::toElem: 2u @ uint * * * * * * * * * * * * * * * IntegerExp::toConstElem: 2u @ uint * * * * * * * * * * * * * * * * value = i32 2 * * * * * * * * * * * * * * CondExp::toElem: cast(int)f.spec == 115 || cast(int)f.spec == 100 || cast(int)f.spec == 117 ? 10u : 0u @ uint * * * * * * * * * * * * * * * OrOrExp::toElem: cast(int)f.spec == 115 || cast(int)f.spec == 100 || cast(int)f.spec == 117 @ bool * * * * * * * * * * * * * * * * OrOrExp::toElem: cast(int)f.spec == 115 || cast(int)f.spec == 100 @ bool * * * * * * * * * * * * * * * * * EqualExp::toElem: cast(int)f.spec == 115 @ bool * * * * * * * * * * * * * * * * * * CastExp::toElem: cast(int)f.spec @ int * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: f.spec @ char * * * * * * * * * * * * * * * * * * * * VarExp::toElem: f @ FormatSpec!char * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('f' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * type: FormatSpec!char * * * * * * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.spec: * * * * * * * * * * * * * * * * * * * * * Value: %62 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %f_arg, i32 0, i32 2 * * * * * * * * * * * * * * * * * * * Casting from 'char' to 'int' * * * * * * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 115 @ int * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 115 @ int * * * * * * * * * * * * * * * * * * * * value = i32 115 * * * * * * * * * * * * * * * * * * integral or pointer or interface * * * * * * * * * * * * * * * * * * lv: %64 = zext i8 %63 to i32 * * * * * * * * * * * * * * * * * * rv: i32 115 * * * * * * * * * * * * * * * * * EqualExp::toElem: cast(int)f.spec == 100 @ bool * * * * * * * * * * * * * * * * * * CastExp::toElem: cast(int)f.spec @ int * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: f.spec @ char * * * * * * * * * * * * * * * * * * * * VarExp::toElem: f @ FormatSpec!char * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('f' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * type: FormatSpec!char * * * * * * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.spec: * * * * * * * * * * * * * * * * * * * * * Value: %66 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %f_arg, i32 0, i32 2 * * * * * * * * * * * * * * * * * * * Casting from 'char' to 'int' * * * * * * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 100 @ int * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 100 @ int * * * * * * * * * * * * * * * * * * * * value = i32 100 * * * * * * * * * * * * * * * * * * integral or pointer or interface * * * * * * * * * * * * * * * * * * lv: %68 = zext i8 %67 to i32 * * * * * * * * * * * * * * * * * * rv: i32 100 * * * * * * * * * * * * * * * * EqualExp::toElem: cast(int)f.spec == 117 @ bool * * * * * * * * * * * * * * * * * CastExp::toElem: cast(int)f.spec @ int * * * * * * * * * * * * * * * * * * DotVarExp::toElem: f.spec @ char * * * * * * * * * * * * * * * * * * * VarExp::toElem: f @ FormatSpec!char * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('f' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * type: FormatSpec!char * * * * * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.spec: * * * * * * * * * * * * * * * * * * * * Value: %70 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %f_arg, i32 0, i32 2 * * * * * * * * * * * * * * * * * * Casting from 'char' to 'int' * * * * * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * * * * * * IntegerExp::toElem: 117 @ int * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 117 @ int * * * * * * * * * * * * * * * * * * * value = i32 117 * * * * * * * * * * * * * * * * * integral or pointer or interface * * * * * * * * * * * * * * * * * lv: %72 = zext i8 %71 to i32 * * * * * * * * * * * * * * * * * rv: i32 117 * * * * * * * * * * * * * * * IntegerExp::toElem: 10u @ uint * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 10u @ uint * * * * * * * * * * * * * * * * * value = i32 10 * * * * * * * * * * * * * * * IntegerExp::toElem: 0u @ uint * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0u @ uint * * * * * * * * * * * * * * * * * value = i32 0 * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * lhs: %base = alloca i32, align 4 * * * * * * * * * * * * rhs: %55 = load i32, i32* %54 * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1431) * * * * * * * CallExp::toElem: enforceEx(base > 0u, delegate string() => "integral", "/usr/include/dlang/ldc/std/format.d", 1431LU) @ bool * * * * * * * * VarExp::toElem: enforceEx @ pure @safe bool(bool value, lazy string msg = "", string file = __FILE__, ulong line = cast(ulong)__LINE__) * * * * * * * * * DtoSymbolAddress ('enforceEx' of type 'pure @safe bool(bool value, lazy string msg = "", string file = __FILE__, ulong line = cast(ulong)__LINE__)') * * * * * * * * * * FuncDeclaration * * * * * * * * DtoCallFunction() * * * * * * * * * doing normal arguments * * * * * * * * * Arguments so far: (0) * * * * * * * * * Function type: pure @safe bool(bool value, lazy string msg = "", string file = __FILE__, ulong line = cast(ulong)__LINE__) * * * * * * * * * DtoArgument * * * * * * * * * * CmpExp::toElem: base > 0u @ bool * * * * * * * * * * * VarExp::toElem: base @ uint * * * * * * * * * * * * DtoSymbolAddress ('base' of type 'uint') * * * * * * * * * * * * * a normal variable * * * * * * * * * * * IntegerExp::toElem: 0u @ uint * * * * * * * * * * * * IntegerExp::toConstElem: 0u @ uint * * * * * * * * * * * * * value = i32 0 * * * * * * * * * * * type 1: %56 = load i32, i32* %base * * * * * * * * * * * type 2: i32 0 * * * * * * * * * DtoArgument * * * * * * * * * * FuncExp::toElem: __dgliteral5 @ string delegate() pure nothrow @nogc @safe * * * * * * * * * * * nested * * * * * * * * * * * kind = delegate * * * * * * * * * * * DtoDefineFunction(std.format.formatValue!(LockingTextWriter, uint, char).formatValue.__dgliteral5): /usr/include/dlang/ldc/std/format.d(1432) * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe string()) * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * Final function type: { i64, i8* } (i8*) * * * * * * * * * * * * DtoResolveFunction(std.format.formatValue!(LockingTextWriter, uint, char).formatValue.__dgliteral5): /usr/include/dlang/ldc/std/format.d(1432) * * * * * * * * * * * * * DtoDeclareFunction(std.format.formatValue!(LockingTextWriter, uint, char).formatValue.__dgliteral5): /usr/include/dlang/ldc/std/format.d(1432) * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe string()) * * * * * * * * * * * * * * func = declare { i64, i8* } @_D3std6format57__T11formatValueTS3std5stdio4File17LockingTextWriterTkTaZ11formatValueFS3std5stdio4File17LockingTextWriterkKS3std6format18__T10FormatSpecTaZ10FormatSpecZ12__dgliteral5MFNaNbNiNfZAya(i8*) * * * * * * * * * * * * Doing function body for: __dgliteral5 * * * * * * * * * * * * DtoCreateNestedContext for __dgliteral5 * * * * * * * * * * * * * DtoCreateNestedContextType for std.format.formatValue!(LockingTextWriter, uint, char).formatValue.__dgliteral5 * * * * * * * * * * * * * * DtoCreateNestedContextType for std.format.formatValue!(LockingTextWriter, uint, char).formatValue * * * * * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1432) * * * * * * * * * * * * * * StringExp::toElem: "integral" @ string * * * * * * * * * * * * * * return value is '0x123bb390' * * * * * * * * * * * Building type: string delegate() pure nothrow @nogc @safe * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe string()) * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * Final function type: { i64, i8* } (i8*) * * * * * * * * * DtoArgument * * * * * * * * * * StringExp::toElem: "/usr/include/dlang/ldc/std/format.d" @ string * * * * * * * * * DtoArgument * * * * * * * * * * IntegerExp::toElem: 1431LU @ ulong * * * * * * * * * * * IntegerExp::toConstElem: 1431LU @ ulong * * * * * * * * * * * * value = i64 1431 * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1441) * * * * * * * DeclarationExp::toElem: alias C = ulong; | T=void * * * * * * * * DtoDeclarationExp: C * * * * * * * * * Ignoring Symbol: alias * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1442) * * * * * * * CallExp::toElem: formatIntegral((LockingTextWriter __copytmp3304 = (__copytmp3304 = w).__postblit(); , __copytmp3304), cast(ulong)val, f, base, 4294967295LU) @ void * * * * * * * * VarExp::toElem: formatIntegral @ @safe void(LockingTextWriter w, const(ulong) val, ref FormatSpec!char f, uint base, ulong mask) * * * * * * * * * DtoSymbolAddress ('formatIntegral' of type '@safe void(LockingTextWriter w, const(ulong) val, ref FormatSpec!char f, uint base, ulong mask)') * * * * * * * * * * FuncDeclaration * * * * * * * * DtoCallFunction() * * * * * * * * * doing normal arguments * * * * * * * * * Arguments so far: (0) * * * * * * * * * Function type: @safe void(LockingTextWriter w, const(ulong) val, ref FormatSpec!char f, uint base, ulong mask) * * * * * * * * * DtoArgument * * * * * * * * * * CommaExp::toElem: LockingTextWriter __copytmp3304 = (__copytmp3304 = w).__postblit(); , __copytmp3304 @ LockingTextWriter * * * * * * * * * * * DeclarationExp::toElem: LockingTextWriter __copytmp3304 = (__copytmp3304 = w).__postblit(); | T=void * * * * * * * * * * * * DtoDeclarationExp: __copytmp3304 * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * DtoVarDeclaration(vdtype = LockingTextWriter) * * * * * * * * * * * * * * llvm value for decl: %__copytmp3304 = alloca %std.stdio.File.LockingTextWriter, align 8 * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * CallExp::toElem: (__copytmp3304 = w).__postblit() @ void * * * * * * * * * * * * * * * DotVarExp::toElem: (__copytmp3304 = w).__postblit @ @trusted void() * * * * * * * * * * * * * * * * AssignExp::toElem: __copytmp3304 = w | (LockingTextWriter)(LockingTextWriter = LockingTextWriter) * * * * * * * * * * * * * * * * * VarExp::toElem: __copytmp3304 @ LockingTextWriter * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__copytmp3304' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * VarExp::toElem: w @ LockingTextWriter * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * type: LockingTextWriter * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * %__copytmp3304 = alloca %std.stdio.File.LockingTextWriter, align 8 * * * * * * * * * * * * * * * * Function type: @trusted void() * * * * * * * * * * * VarExp::toElem: __copytmp3304 @ LockingTextWriter * * * * * * * * * * * * DtoSymbolAddress ('__copytmp3304' of type 'LockingTextWriter') * * * * * * * * * * * * * a normal variable * * * * * * * * * DtoArgument * * * * * * * * * * CastExp::toElem: cast(ulong)val @ const(ulong) * * * * * * * * * * * VarExp::toElem: val @ uint * * * * * * * * * * * * DtoSymbolAddress ('val' of type 'uint') * * * * * * * * * * * * * a normal variable * * * * * * * * * * * Casting from 'uint' to 'ulong' * * * * * * * * * * * * cast to: i64 * * * * * * * * * * * repainting from 'ulong' to 'const(ulong)' * * * * * * * * * DtoArgument * * * * * * * * * * VarExp::toElem: f @ FormatSpec!char * * * * * * * * * * * DtoSymbolAddress ('f' of type 'FormatSpec!char') * * * * * * * * * * * * function param * * * * * * * * * * * * type: FormatSpec!char * * * * * * * * * DtoArgument * * * * * * * * * * VarExp::toElem: base @ uint * * * * * * * * * * * DtoSymbolAddress ('base' of type 'uint') * * * * * * * * * * * * a normal variable * * * * * * * * * DtoArgument * * * * * * * * * * IntegerExp::toElem: 4294967295LU @ ulong * * * * * * * * * * * IntegerExp::toConstElem: 4294967295LU @ ulong * * * * * * * * * * * * value = i64 4294967295 * TemplateInstance::codegen: 'std.format.formatValue!(LockingTextWriter, uint, char).formatValue.__lambda4!uint' * * DtoDefineFunction(std.format.formatValue!(LockingTextWriter, uint, char).formatValue.__lambda4): /usr/include/dlang/ldc/std/format.d(1407) * TemplateInstance::codegen: 'std.format.formatElement!(LockingTextWriter, dchar, char)' * * DtoDefineFunction(std.format.formatElement!(LockingTextWriter, dchar, char).formatElement): /usr/include/dlang/ldc/std/format.d(2596) * * * Doing function body for: formatElement * * * DtoCreateNestedContext for formatElement * * * * DtoCreateNestedContextType for std.format.formatElement!(LockingTextWriter, dchar, char).formatElement * * * TryFinallyStatement::toIR(): * * * * ExpStatement::toIR(): * * * * * CallExp::toElem: w.~this() @ void * * * * * * DotVarExp::toElem: w.~this @ @trusted void() * * * * * * * VarExp::toElem: w @ LockingTextWriter * * * * * * * * DtoSymbolAddress ('w' of type 'LockingTextWriter') * * * * * * * * * function param * * * * * * * * * type: LockingTextWriter * * * * * * DtoCallFunction() * * * * * * * doing normal arguments * * * * * * * Arguments so far: (1) * * * * * * * * %std.stdio.File.LockingTextWriter* %w_arg * * * * * * * Function type: @trusted void() * * * * CompoundStatement::toIR(): * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2599) * * * * * * EqualExp::toElem: cast(int)f.spec == 115 @ bool * * * * * * * CastExp::toElem: cast(int)f.spec @ int * * * * * * * * DotVarExp::toElem: f.spec @ char * * * * * * * * * VarExp::toElem: f @ FormatSpec!char * * * * * * * * * * DtoSymbolAddress ('f' of type 'FormatSpec!char') * * * * * * * * * * * function param * * * * * * * * * * * type: FormatSpec!char * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.spec: * * * * * * * * * * Value: %1 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %f_arg, i32 0, i32 2 * * * * * * * * Casting from 'char' to 'int' * * * * * * * * * cast to: i32 * * * * * * * IntegerExp::toElem: 115 @ int * * * * * * * * IntegerExp::toConstElem: 115 @ int * * * * * * * * * value = i32 115 * * * * * * * integral or pointer or interface * * * * * * * lv: %3 = zext i8 %2 to i32 * * * * * * * rv: i32 115 * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2600) * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2600) * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2601) * * * * * * * * * CallExp::toElem: put(w, '\'') @ void * * * * * * * * * * VarExp::toElem: put @ nothrow @nogc @safe void(ref LockingTextWriter r, char e) * * * * * * * * * * * DtoSymbolAddress ('put' of type 'nothrow @nogc @safe void(ref LockingTextWriter r, char e)') * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * doing normal arguments * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * Function type: nothrow @nogc @safe void(ref LockingTextWriter r, char e) * * * * * * * * * * * DtoArgument * * * * * * * * * * * * VarExp::toElem: w @ LockingTextWriter * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'LockingTextWriter') * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * type: LockingTextWriter * * * * * * * * * * * DtoArgument * * * * * * * * * * * * IntegerExp::toElem: '\'' @ char * * * * * * * * * * * * * IntegerExp::toConstElem: '\'' @ char * * * * * * * * * * * * * * value = i8 39 * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2602) * * * * * * * * * CallExp::toElem: formatChar((LockingTextWriter __copytmp3335 = (__copytmp3335 = w).__postblit(); , __copytmp3335), val, '\'') @ void * * * * * * * * * * VarExp::toElem: formatChar @ @safe void(LockingTextWriter w, const(dchar) c, const(char) quote) * * * * * * * * * * * DtoSymbolAddress ('formatChar' of type '@safe void(LockingTextWriter w, const(dchar) c, const(char) quote)') * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * DtoFunctionType(@safe void(LockingTextWriter w, const(dchar) c, const(char) quote)) * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * Final function type: void (i8, i32, %std.stdio.File.LockingTextWriter*) * * * * * * * * * * * * DtoResolveFunction(std.format.formatChar!(LockingTextWriter).formatChar): /usr/include/dlang/ldc/std/format.d(2474) * * * * * * * * * * * * * DtoDeclareFunction(std.format.formatChar!(LockingTextWriter).formatChar): /usr/include/dlang/ldc/std/format.d(2474) * * * * * * * * * * * * * * DtoFunctionType(@safe void(LockingTextWriter w, const(dchar) c, const(char) quote)) * * * * * * * * * * * * * * func = declare void @_D3std6format52__T10formatCharTS3std5stdio4File17LockingTextWriterZ10formatCharFNfS3std5stdio4File17LockingTextWriterxwxaZv(i8, i32, %std.stdio.File.LockingTextWriter*) * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * Building type: @safe void(LockingTextWriter w, const(dchar) c, const(char) quote) * * * * * * * * * * * * DtoFunctionType(@safe void(LockingTextWriter w, const(dchar) c, const(char) quote)) * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * Final function type: void (i8, i32, %std.stdio.File.LockingTextWriter*) * * * * * * * * * * * doing normal arguments * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * Function type: @safe void(LockingTextWriter w, const(dchar) c, const(char) quote) * * * * * * * * * * * DtoArgument * * * * * * * * * * * * CommaExp::toElem: LockingTextWriter __copytmp3335 = (__copytmp3335 = w).__postblit(); , __copytmp3335 @ LockingTextWriter * * * * * * * * * * * * * DeclarationExp::toElem: LockingTextWriter __copytmp3335 = (__copytmp3335 = w).__postblit(); | T=void * * * * * * * * * * * * * * DtoDeclarationExp: __copytmp3335 * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = LockingTextWriter) * * * * * * * * * * * * * * * * llvm value for decl: %__copytmp3335 = alloca %std.stdio.File.LockingTextWriter, align 8 * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * CallExp::toElem: (__copytmp3335 = w).__postblit() @ void * * * * * * * * * * * * * * * * * DotVarExp::toElem: (__copytmp3335 = w).__postblit @ @trusted void() * * * * * * * * * * * * * * * * * * AssignExp::toElem: __copytmp3335 = w | (LockingTextWriter)(LockingTextWriter = LockingTextWriter) * * * * * * * * * * * * * * * * * * * VarExp::toElem: __copytmp3335 @ LockingTextWriter * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__copytmp3335' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * VarExp::toElem: w @ LockingTextWriter * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * type: LockingTextWriter * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * * %__copytmp3335 = alloca %std.stdio.File.LockingTextWriter, align 8 * * * * * * * * * * * * * * * * * * Function type: @trusted void() * * * * * * * * * * * * * VarExp::toElem: __copytmp3335 @ LockingTextWriter * * * * * * * * * * * * * * DtoSymbolAddress ('__copytmp3335' of type 'LockingTextWriter') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * DtoArgument * * * * * * * * * * * * VarExp::toElem: val @ const(dchar) * * * * * * * * * * * * * DtoSymbolAddress ('val' of type 'dchar') * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * type: dchar * * * * * * * * * * * DtoArgument * * * * * * * * * * * * IntegerExp::toElem: '\'' @ const(char) * * * * * * * * * * * * * IntegerExp::toConstElem: '\'' @ const(char) * * * * * * * * * * * * * * value = i8 39 * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2603) * * * * * * * * * CallExp::toElem: put(w, '\'') @ void * * * * * * * * * * VarExp::toElem: put @ nothrow @nogc @safe void(ref LockingTextWriter r, char e) * * * * * * * * * * * DtoSymbolAddress ('put' of type 'nothrow @nogc @safe void(ref LockingTextWriter r, char e)') * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * doing normal arguments * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * Function type: nothrow @nogc @safe void(ref LockingTextWriter r, char e) * * * * * * * * * * * DtoArgument * * * * * * * * * * * * VarExp::toElem: w @ LockingTextWriter * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'LockingTextWriter') * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * type: LockingTextWriter * * * * * * * * * * * DtoArgument * * * * * * * * * * * * IntegerExp::toElem: '\'' @ char * * * * * * * * * * * * * IntegerExp::toConstElem: '\'' @ char * * * * * * * * * * * * * * value = i8 39 * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2606) * * * * * * * CallExp::toElem: formatValue((LockingTextWriter __copytmp3339 = (__copytmp3339 = w).__postblit(); , __copytmp3339), val, f) @ void * * * * * * * * VarExp::toElem: formatValue @ @safe void(LockingTextWriter w, dchar obj, ref FormatSpec!char f) * * * * * * * * * DtoSymbolAddress ('formatValue' of type '@safe void(LockingTextWriter w, dchar obj, ref FormatSpec!char f)') * * * * * * * * * * FuncDeclaration * * * * * * * * DtoCallFunction() * * * * * * * * * doing normal arguments * * * * * * * * * Arguments so far: (0) * * * * * * * * * Function type: @safe void(LockingTextWriter w, dchar obj, ref FormatSpec!char f) * * * * * * * * * DtoArgument * * * * * * * * * * CommaExp::toElem: LockingTextWriter __copytmp3339 = (__copytmp3339 = w).__postblit(); , __copytmp3339 @ LockingTextWriter * * * * * * * * * * * DeclarationExp::toElem: LockingTextWriter __copytmp3339 = (__copytmp3339 = w).__postblit(); | T=void * * * * * * * * * * * * DtoDeclarationExp: __copytmp3339 * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * DtoVarDeclaration(vdtype = LockingTextWriter) * * * * * * * * * * * * * * llvm value for decl: %__copytmp3339 = alloca %std.stdio.File.LockingTextWriter, align 8 * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * CallExp::toElem: (__copytmp3339 = w).__postblit() @ void * * * * * * * * * * * * * * * DotVarExp::toElem: (__copytmp3339 = w).__postblit @ @trusted void() * * * * * * * * * * * * * * * * AssignExp::toElem: __copytmp3339 = w | (LockingTextWriter)(LockingTextWriter = LockingTextWriter) * * * * * * * * * * * * * * * * * VarExp::toElem: __copytmp3339 @ LockingTextWriter * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__copytmp3339' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * VarExp::toElem: w @ LockingTextWriter * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * type: LockingTextWriter * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * %__copytmp3339 = alloca %std.stdio.File.LockingTextWriter, align 8 * * * * * * * * * * * * * * * * Function type: @trusted void() * * * * * * * * * * * VarExp::toElem: __copytmp3339 @ LockingTextWriter * * * * * * * * * * * * DtoSymbolAddress ('__copytmp3339' of type 'LockingTextWriter') * * * * * * * * * * * * * a normal variable * * * * * * * * * DtoArgument * * * * * * * * * * VarExp::toElem: val @ dchar * * * * * * * * * * * DtoSymbolAddress ('val' of type 'dchar') * * * * * * * * * * * * function param * * * * * * * * * * * * type: dchar * * * * * * * * * DtoArgument * * * * * * * * * * VarExp::toElem: f @ FormatSpec!char * * * * * * * * * * * DtoSymbolAddress ('f' of type 'FormatSpec!char') * * * * * * * * * * * * function param * * * * * * * * * * * * type: FormatSpec!char * TemplateInstance::codegen: 'std.format.formatChar!(LockingTextWriter)' * * DtoDefineFunction(std.format.formatChar!(LockingTextWriter).formatChar): /usr/include/dlang/ldc/std/format.d(2474) * * * Doing function body for: formatChar * * * DtoCreateNestedContext for formatChar * * * * DtoCreateNestedContextType for std.format.formatChar!(LockingTextWriter).formatChar * * * TryFinallyStatement::toIR(): * * * * ExpStatement::toIR(): * * * * * CallExp::toElem: w.~this() @ void * * * * * * DotVarExp::toElem: w.~this @ @trusted void() * * * * * * * VarExp::toElem: w @ LockingTextWriter * * * * * * * * DtoSymbolAddress ('w' of type 'LockingTextWriter') * * * * * * * * * function param * * * * * * * * * type: LockingTextWriter * * * * * * DtoCallFunction() * * * * * * * doing normal arguments * * * * * * * Arguments so far: (1) * * * * * * * * %std.stdio.File.LockingTextWriter* %w_arg * * * * * * * Function type: @trusted void() * * * * CompoundStatement::toIR(): * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2475) * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2478) * * * * * * * CallExp::toElem: isGraphical(c) @ bool * * * * * * * * VarExp::toElem: isGraphical @ pure nothrow @nogc @safe bool(dchar c) * * * * * * * * * DtoSymbolAddress ('isGraphical' of type 'pure nothrow @nogc @safe bool(dchar c)') * * * * * * * * * * FuncDeclaration * * * * * * * * DtoCallFunction() * * * * * * * * * doing normal arguments * * * * * * * * * Arguments so far: (0) * * * * * * * * * Function type: pure nothrow @nogc @safe bool(dchar c) * * * * * * * * * DtoArgument * * * * * * * * * * VarExp::toElem: c @ dchar * * * * * * * * * * * DtoSymbolAddress ('c' of type 'const(dchar)') * * * * * * * * * * * * function param * * * * * * * * * * * * type: const(dchar) * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2479) * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2480) * * * * * * * * * OrOrExp::toElem: cast(uint)c == cast(uint)cast(int)quote || cast(uint)c == 92u @ bool * * * * * * * * * * EqualExp::toElem: cast(uint)c == cast(uint)cast(int)quote @ bool * * * * * * * * * * * CastExp::toElem: cast(uint)c @ uint * * * * * * * * * * * * VarExp::toElem: c @ const(dchar) * * * * * * * * * * * * * DtoSymbolAddress ('c' of type 'const(dchar)') * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * type: const(dchar) * * * * * * * * * * * * Casting from 'const(dchar)' to 'uint' * * * * * * * * * * * CastExp::toElem: cast(uint)cast(int)quote @ uint * * * * * * * * * * * * CastExp::toElem: cast(int)quote @ int * * * * * * * * * * * * * VarExp::toElem: quote @ const(char) * * * * * * * * * * * * * * DtoSymbolAddress ('quote' of type 'const(char)') * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * type: const(char) * * * * * * * * * * * * * Casting from 'const(char)' to 'int' * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * Casting from 'int' to 'uint' * * * * * * * * * * * integral or pointer or interface * * * * * * * * * * * lv: %7 = load i32, i32* %c * * * * * * * * * * * rv: %9 = zext i8 %8 to i32 * * * * * * * * * * EqualExp::toElem: cast(uint)c == 92u @ bool * * * * * * * * * * * CastExp::toElem: cast(uint)c @ uint * * * * * * * * * * * * VarExp::toElem: c @ const(dchar) * * * * * * * * * * * * * DtoSymbolAddress ('c' of type 'const(dchar)') * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * type: const(dchar) * * * * * * * * * * * * Casting from 'const(dchar)' to 'uint' * * * * * * * * * * * IntegerExp::toElem: 92u @ uint * * * * * * * * * * * * IntegerExp::toConstElem: 92u @ uint * * * * * * * * * * * * * value = i32 92 * * * * * * * * * * * integral or pointer or interface * * * * * * * * * * * lv: %11 = load i32, i32* %c * * * * * * * * * * * rv: i32 92 * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2481) * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2481) * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2482) * * * * * * * * * * * * CallExp::toElem: put(w, '\x5c') @ void * * * * * * * * * * * * * VarExp::toElem: put @ nothrow @nogc @safe void(ref LockingTextWriter r, char e) * * * * * * * * * * * * * * DtoSymbolAddress ('put' of type 'nothrow @nogc @safe void(ref LockingTextWriter r, char e)') * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * Function type: nothrow @nogc @safe void(ref LockingTextWriter r, char e) * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * VarExp::toElem: w @ LockingTextWriter * * * * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * type: LockingTextWriter * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * IntegerExp::toElem: '\x5c' @ char * * * * * * * * * * * * * * * * IntegerExp::toConstElem: '\x5c' @ char * * * * * * * * * * * * * * * * * value = i8 92 * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2483) * * * * * * * * * * * * CallExp::toElem: put(w, c) @ void * * * * * * * * * * * * * VarExp::toElem: put @ nothrow @nogc @safe void(ref LockingTextWriter r, const(dchar) e) * * * * * * * * * * * * * * DtoSymbolAddress ('put' of type 'nothrow @nogc @safe void(ref LockingTextWriter r, const(dchar) e)') * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * DtoFunctionType(nothrow @nogc @safe void(ref LockingTextWriter r, const(dchar) e)) * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * Final function type: void (i32, %std.stdio.File.LockingTextWriter*) * * * * * * * * * * * * * * * DtoResolveFunction(std.range.primitives.put!(LockingTextWriter, const(dchar)).put): /usr/include/dlang/ldc/std/range/primitives.d(277) * * * * * * * * * * * * * * * * DtoDeclareFunction(std.range.primitives.put!(LockingTextWriter, const(dchar)).put): /usr/include/dlang/ldc/std/range/primitives.d(277) * * * * * * * * * * * * * * * * * DtoFunctionType(nothrow @nogc @safe void(ref LockingTextWriter r, const(dchar) e)) * * * * * * * * * * * * * * * * * func = declare void @_D3std5range10primitives47__T3putTS3std5stdio4File17LockingTextWriterTxwZ3putFNbNiNfKS3std5stdio4File17LockingTextWriterxwZv(i32, %std.stdio.File.LockingTextWriter*) * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * Building type: nothrow @nogc @safe void(ref LockingTextWriter r, const(dchar) e) * * * * * * * * * * * * * * * DtoFunctionType(nothrow @nogc @safe void(ref LockingTextWriter r, const(dchar) e)) * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * Final function type: void (i32, %std.stdio.File.LockingTextWriter*) * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * Function type: nothrow @nogc @safe void(ref LockingTextWriter r, const(dchar) e) * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * VarExp::toElem: w @ LockingTextWriter * * * * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * type: LockingTextWriter * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * VarExp::toElem: c @ const(dchar) * * * * * * * * * * * * * * * * DtoSymbolAddress ('c' of type 'const(dchar)') * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * type: const(dchar) * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2486) * * * * * * * * * * CallExp::toElem: put(w, c) @ void * * * * * * * * * * * VarExp::toElem: put @ nothrow @nogc @safe void(ref LockingTextWriter r, const(dchar) e) * * * * * * * * * * * * DtoSymbolAddress ('put' of type 'nothrow @nogc @safe void(ref LockingTextWriter r, const(dchar) e)') * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * Function type: nothrow @nogc @safe void(ref LockingTextWriter r, const(dchar) e) * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * VarExp::toElem: w @ LockingTextWriter * * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'LockingTextWriter') * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * type: LockingTextWriter * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * VarExp::toElem: c @ const(dchar) * * * * * * * * * * * * * * DtoSymbolAddress ('c' of type 'const(dchar)') * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * type: const(dchar) * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2488) * * * * * * * * CmpExp::toElem: cast(uint)c <= 255u @ bool * * * * * * * * * CastExp::toElem: cast(uint)c @ uint * * * * * * * * * * VarExp::toElem: c @ const(dchar) * * * * * * * * * * * DtoSymbolAddress ('c' of type 'const(dchar)') * * * * * * * * * * * * function param * * * * * * * * * * * * type: const(dchar) * * * * * * * * * * Casting from 'const(dchar)' to 'uint' * * * * * * * * * IntegerExp::toElem: 255u @ uint * * * * * * * * * * IntegerExp::toConstElem: 255u @ uint * * * * * * * * * * * value = i32 255 * * * * * * * * * type 1: %12 = load i32, i32* %c * * * * * * * * * type 2: i32 255 * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2489) * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2489) * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2490) * * * * * * * * * * * CallExp::toElem: put(w, '\x5c') @ void * * * * * * * * * * * * VarExp::toElem: put @ nothrow @nogc @safe void(ref LockingTextWriter r, char e) * * * * * * * * * * * * * DtoSymbolAddress ('put' of type 'nothrow @nogc @safe void(ref LockingTextWriter r, char e)') * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * Function type: nothrow @nogc @safe void(ref LockingTextWriter r, char e) * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * VarExp::toElem: w @ LockingTextWriter * * * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * type: LockingTextWriter * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * IntegerExp::toElem: '\x5c' @ char * * * * * * * * * * * * * * * IntegerExp::toConstElem: '\x5c' @ char * * * * * * * * * * * * * * * * value = i8 92 * * * * * * * * * * SwitchStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2491) * * * * * * * * * * * has default * * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2492) * * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2492) * * * * * * * * * * * * * CaseStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2493) * * * * * * * * * * * * * * IntegerExp::toConstElem: 0u @ uint * * * * * * * * * * * * * * * value = i32 0 * * * * * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2493) * * * * * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2493) * * * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2493) * * * * * * * * * * * * * * * * * CallExp::toElem: put(w, '0') @ void * * * * * * * * * * * * * * * * * * VarExp::toElem: put @ nothrow @nogc @safe void(ref LockingTextWriter r, char e) * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('put' of type 'nothrow @nogc @safe void(ref LockingTextWriter r, char e)') * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * Function type: nothrow @nogc @safe void(ref LockingTextWriter r, char e) * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * VarExp::toElem: w @ LockingTextWriter * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * type: LockingTextWriter * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: '0' @ char * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: '0' @ char * * * * * * * * * * * * * * * * * * * * * * value = i8 48 * * * * * * * * * * * * * * * * BreakStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2493) * * * * * * * * * * * * * CaseStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2494) * * * * * * * * * * * * * * IntegerExp::toConstElem: 7u @ uint * * * * * * * * * * * * * * * value = i32 7 * * * * * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2494) * * * * * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2494) * * * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2494) * * * * * * * * * * * * * * * * * CallExp::toElem: put(w, 'a') @ void * * * * * * * * * * * * * * * * * * VarExp::toElem: put @ nothrow @nogc @safe void(ref LockingTextWriter r, char e) * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('put' of type 'nothrow @nogc @safe void(ref LockingTextWriter r, char e)') * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * Function type: nothrow @nogc @safe void(ref LockingTextWriter r, char e) * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * VarExp::toElem: w @ LockingTextWriter * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * type: LockingTextWriter * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 'a' @ char * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 'a' @ char * * * * * * * * * * * * * * * * * * * * * * value = i8 97 * * * * * * * * * * * * * * * * BreakStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2494) * * * * * * * * * * * * * CaseStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2495) * * * * * * * * * * * * * * IntegerExp::toConstElem: 8u @ uint * * * * * * * * * * * * * * * value = i32 8 * * * * * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2495) * * * * * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2495) * * * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2495) * * * * * * * * * * * * * * * * * CallExp::toElem: put(w, 'b') @ void * * * * * * * * * * * * * * * * * * VarExp::toElem: put @ nothrow @nogc @safe void(ref LockingTextWriter r, char e) * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('put' of type 'nothrow @nogc @safe void(ref LockingTextWriter r, char e)') * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * Function type: nothrow @nogc @safe void(ref LockingTextWriter r, char e) * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * VarExp::toElem: w @ LockingTextWriter * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * type: LockingTextWriter * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 'b' @ char * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 'b' @ char * * * * * * * * * * * * * * * * * * * * * * value = i8 98 * * * * * * * * * * * * * * * * BreakStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2495) * * * * * * * * * * * * * CaseStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2496) * * * * * * * * * * * * * * IntegerExp::toConstElem: 12u @ uint * * * * * * * * * * * * * * * value = i32 12 * * * * * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2496) * * * * * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2496) * * * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2496) * * * * * * * * * * * * * * * * * CallExp::toElem: put(w, 'f') @ void * * * * * * * * * * * * * * * * * * VarExp::toElem: put @ nothrow @nogc @safe void(ref LockingTextWriter r, char e) * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('put' of type 'nothrow @nogc @safe void(ref LockingTextWriter r, char e)') * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * Function type: nothrow @nogc @safe void(ref LockingTextWriter r, char e) * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * VarExp::toElem: w @ LockingTextWriter * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * type: LockingTextWriter * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 'f' @ char * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 'f' @ char * * * * * * * * * * * * * * * * * * * * * * value = i8 102 * * * * * * * * * * * * * * * * BreakStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2496) * * * * * * * * * * * * * CaseStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2497) * * * * * * * * * * * * * * IntegerExp::toConstElem: 10u @ uint * * * * * * * * * * * * * * * value = i32 10 * * * * * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2497) * * * * * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2497) * * * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2497) * * * * * * * * * * * * * * * * * CallExp::toElem: put(w, 'n') @ void * * * * * * * * * * * * * * * * * * VarExp::toElem: put @ nothrow @nogc @safe void(ref LockingTextWriter r, char e) * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('put' of type 'nothrow @nogc @safe void(ref LockingTextWriter r, char e)') * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * Function type: nothrow @nogc @safe void(ref LockingTextWriter r, char e) * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * VarExp::toElem: w @ LockingTextWriter * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * type: LockingTextWriter * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 'n' @ char * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 'n' @ char * * * * * * * * * * * * * * * * * * * * * * value = i8 110 * * * * * * * * * * * * * * * * BreakStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2497) * * * * * * * * * * * * * CaseStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2498) * * * * * * * * * * * * * * IntegerExp::toConstElem: 13u @ uint * * * * * * * * * * * * * * * value = i32 13 * * * * * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2498) * * * * * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2498) * * * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2498) * * * * * * * * * * * * * * * * * CallExp::toElem: put(w, 'r') @ void * * * * * * * * * * * * * * * * * * VarExp::toElem: put @ nothrow @nogc @safe void(ref LockingTextWriter r, char e) * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('put' of type 'nothrow @nogc @safe void(ref LockingTextWriter r, char e)') * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * Function type: nothrow @nogc @safe void(ref LockingTextWriter r, char e) * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * VarExp::toElem: w @ LockingTextWriter * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * type: LockingTextWriter * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 'r' @ char * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 'r' @ char * * * * * * * * * * * * * * * * * * * * * * value = i8 114 * * * * * * * * * * * * * * * * BreakStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2498) * * * * * * * * * * * * * CaseStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2499) * * * * * * * * * * * * * * IntegerExp::toConstElem: 9u @ uint * * * * * * * * * * * * * * * value = i32 9 * * * * * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2499) * * * * * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2499) * * * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2499) * * * * * * * * * * * * * * * * * CallExp::toElem: put(w, 't') @ void * * * * * * * * * * * * * * * * * * VarExp::toElem: put @ nothrow @nogc @safe void(ref LockingTextWriter r, char e) * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('put' of type 'nothrow @nogc @safe void(ref LockingTextWriter r, char e)') * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * Function type: nothrow @nogc @safe void(ref LockingTextWriter r, char e) * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * VarExp::toElem: w @ LockingTextWriter * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * type: LockingTextWriter * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 't' @ char * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 't' @ char * * * * * * * * * * * * * * * * * * * * * * value = i8 116 * * * * * * * * * * * * * * * * BreakStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2499) * * * * * * * * * * * * * CaseStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2500) * * * * * * * * * * * * * * IntegerExp::toConstElem: 11u @ uint * * * * * * * * * * * * * * * value = i32 11 * * * * * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2500) * * * * * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2500) * * * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2500) * * * * * * * * * * * * * * * * * CallExp::toElem: put(w, 'v') @ void * * * * * * * * * * * * * * * * * * VarExp::toElem: put @ nothrow @nogc @safe void(ref LockingTextWriter r, char e) * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('put' of type 'nothrow @nogc @safe void(ref LockingTextWriter r, char e)') * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * Function type: nothrow @nogc @safe void(ref LockingTextWriter r, char e) * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * VarExp::toElem: w @ LockingTextWriter * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * type: LockingTextWriter * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 'v' @ char * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 'v' @ char * * * * * * * * * * * * * * * * * * * * * * value = i8 118 * * * * * * * * * * * * * * * * BreakStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2500) * * * * * * * * * * * * * DefaultStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2501) * * * * * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2501) * * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2502) * * * * * * * * * * * * * * * * CallExp::toElem: formattedWrite((LockingTextWriter __copytmp3332 = (__copytmp3332 = w).__postblit(); , __copytmp3332), "x%02X", cast(uint)c) @ uint * * * * * * * * * * * * * * * * * VarExp::toElem: formattedWrite @ @safe uint(LockingTextWriter w, const(char[]) fmt, uint _param_2) * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('formattedWrite' of type '@safe uint(LockingTextWriter w, const(char[]) fmt, uint _param_2)') * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * DtoFunctionType(@safe uint(LockingTextWriter w, const(char[]) fmt, uint _param_2)) * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * Final function type: i32 (i32, { i64, i8* }, %std.stdio.File.LockingTextWriter*) * * * * * * * * * * * * * * * * * * * DtoResolveFunction(std.format.formattedWrite!(LockingTextWriter, char, uint).formattedWrite): /usr/include/dlang/ldc/std/format.d(420) * * * * * * * * * * * * * * * * * * * * DtoDeclareFunction(std.format.formattedWrite!(LockingTextWriter, char, uint).formattedWrite): /usr/include/dlang/ldc/std/format.d(420) * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(@safe uint(LockingTextWriter w, const(char[]) fmt, uint _param_2)) * * * * * * * * * * * * * * * * * * * * * func = declare i32 @_D3std6format60__T14formattedWriteTS3std5stdio4File17LockingTextWriterTaTkZ14formattedWriteFNfS3std5stdio4File17LockingTextWriterxAakZk(i32, { i64, i8* }, %std.stdio.File.LockingTextWriter*) * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * Building type: @safe uint(LockingTextWriter w, const(char[]) fmt, uint _param_2) * * * * * * * * * * * * * * * * * * * DtoFunctionType(@safe uint(LockingTextWriter w, const(char[]) fmt, uint _param_2)) * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * Final function type: i32 (i32, { i64, i8* }, %std.stdio.File.LockingTextWriter*) * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * Function type: @safe uint(LockingTextWriter w, const(char[]) fmt, uint _param_2) * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * CommaExp::toElem: LockingTextWriter __copytmp3332 = (__copytmp3332 = w).__postblit(); , __copytmp3332 @ LockingTextWriter * * * * * * * * * * * * * * * * * * * * DeclarationExp::toElem: LockingTextWriter __copytmp3332 = (__copytmp3332 = w).__postblit(); | T=void * * * * * * * * * * * * * * * * * * * * * DtoDeclarationExp: __copytmp3332 * * * * * * * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = LockingTextWriter) * * * * * * * * * * * * * * * * * * * * * * * llvm value for decl: %__copytmp3332 = alloca %std.stdio.File.LockingTextWriter, align 8 * * * * * * * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * * * * * * * CallExp::toElem: (__copytmp3332 = w).__postblit() @ void * * * * * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: (__copytmp3332 = w).__postblit @ @trusted void() * * * * * * * * * * * * * * * * * * * * * * * * * AssignExp::toElem: __copytmp3332 = w | (LockingTextWriter)(LockingTextWriter = LockingTextWriter) * * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: __copytmp3332 @ LockingTextWriter * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__copytmp3332' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: w @ LockingTextWriter * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * * * * * * * type: LockingTextWriter * * * * * * * * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * * * * * * * * * %__copytmp3332 = alloca %std.stdio.File.LockingTextWriter, align 8 * * * * * * * * * * * * * * * * * * * * * * * * * Function type: @trusted void() * * * * * * * * * * * * * * * * * * * * VarExp::toElem: __copytmp3332 @ LockingTextWriter * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__copytmp3332' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * StringExp::toElem: "x%02X" @ const(char[]) * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * CastExp::toElem: cast(uint)c @ uint * * * * * * * * * * * * * * * * * * * * VarExp::toElem: c @ const(dchar) * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('c' of type 'const(dchar)') * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * type: const(dchar) * * * * * * * * * * * * * * * * * * * * Casting from 'const(dchar)' to 'uint' * * * * * * * * * * * CastExp::toElem: cast(uint)c @ uint * * * * * * * * * * * * VarExp::toElem: c @ const(dchar) * * * * * * * * * * * * * DtoSymbolAddress ('c' of type 'const(dchar)') * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * type: const(dchar) * * * * * * * * * * * * Casting from 'const(dchar)' to 'uint' * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2505) * * * * * * * * * CmpExp::toElem: cast(uint)c <= 65535u @ bool * * * * * * * * * * CastExp::toElem: cast(uint)c @ uint * * * * * * * * * * * VarExp::toElem: c @ const(dchar) * * * * * * * * * * * * DtoSymbolAddress ('c' of type 'const(dchar)') * * * * * * * * * * * * * function param * * * * * * * * * * * * * type: const(dchar) * * * * * * * * * * * Casting from 'const(dchar)' to 'uint' * * * * * * * * * * IntegerExp::toElem: 65535u @ uint * * * * * * * * * * * IntegerExp::toConstElem: 65535u @ uint * * * * * * * * * * * * value = i32 65535 * * * * * * * * * * type 1: %20 = load i32, i32* %c * * * * * * * * * * type 2: i32 65535 * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2506) * * * * * * * * * * CallExp::toElem: formattedWrite((LockingTextWriter __copytmp3333 = (__copytmp3333 = w).__postblit(); , __copytmp3333), "\\u%04X", cast(uint)c) @ uint * * * * * * * * * * * VarExp::toElem: formattedWrite @ @safe uint(LockingTextWriter w, const(char[]) fmt, uint _param_2) * * * * * * * * * * * * DtoSymbolAddress ('formattedWrite' of type '@safe uint(LockingTextWriter w, const(char[]) fmt, uint _param_2)') * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * Function type: @safe uint(LockingTextWriter w, const(char[]) fmt, uint _param_2) * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * CommaExp::toElem: LockingTextWriter __copytmp3333 = (__copytmp3333 = w).__postblit(); , __copytmp3333 @ LockingTextWriter * * * * * * * * * * * * * * DeclarationExp::toElem: LockingTextWriter __copytmp3333 = (__copytmp3333 = w).__postblit(); | T=void * * * * * * * * * * * * * * * DtoDeclarationExp: __copytmp3333 * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = LockingTextWriter) * * * * * * * * * * * * * * * * * llvm value for decl: %__copytmp3333 = alloca %std.stdio.File.LockingTextWriter, align 8 * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * CallExp::toElem: (__copytmp3333 = w).__postblit() @ void * * * * * * * * * * * * * * * * * * DotVarExp::toElem: (__copytmp3333 = w).__postblit @ @trusted void() * * * * * * * * * * * * * * * * * * * AssignExp::toElem: __copytmp3333 = w | (LockingTextWriter)(LockingTextWriter = LockingTextWriter) * * * * * * * * * * * * * * * * * * * * VarExp::toElem: __copytmp3333 @ LockingTextWriter * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__copytmp3333' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * VarExp::toElem: w @ LockingTextWriter * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * type: LockingTextWriter * * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * * * %__copytmp3333 = alloca %std.stdio.File.LockingTextWriter, align 8 * * * * * * * * * * * * * * * * * * * Function type: @trusted void() * * * * * * * * * * * * * * VarExp::toElem: __copytmp3333 @ LockingTextWriter * * * * * * * * * * * * * * * DtoSymbolAddress ('__copytmp3333' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * StringExp::toElem: "\\u%04X" @ const(char[]) * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * CastExp::toElem: cast(uint)c @ uint * * * * * * * * * * * * * * VarExp::toElem: c @ const(dchar) * * * * * * * * * * * * * * * DtoSymbolAddress ('c' of type 'const(dchar)') * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * type: const(dchar) * * * * * * * * * * * * * * Casting from 'const(dchar)' to 'uint' * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(2508) * * * * * * * * * * CallExp::toElem: formattedWrite((LockingTextWriter __copytmp3334 = (__copytmp3334 = w).__postblit(); , __copytmp3334), "\\U%08X", cast(uint)c) @ uint * * * * * * * * * * * VarExp::toElem: formattedWrite @ @safe uint(LockingTextWriter w, const(char[]) fmt, uint _param_2) * * * * * * * * * * * * DtoSymbolAddress ('formattedWrite' of type '@safe uint(LockingTextWriter w, const(char[]) fmt, uint _param_2)') * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * Function type: @safe uint(LockingTextWriter w, const(char[]) fmt, uint _param_2) * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * CommaExp::toElem: LockingTextWriter __copytmp3334 = (__copytmp3334 = w).__postblit(); , __copytmp3334 @ LockingTextWriter * * * * * * * * * * * * * * DeclarationExp::toElem: LockingTextWriter __copytmp3334 = (__copytmp3334 = w).__postblit(); | T=void * * * * * * * * * * * * * * * DtoDeclarationExp: __copytmp3334 * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = LockingTextWriter) * * * * * * * * * * * * * * * * * llvm value for decl: %__copytmp3334 = alloca %std.stdio.File.LockingTextWriter, align 8 * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * CallExp::toElem: (__copytmp3334 = w).__postblit() @ void * * * * * * * * * * * * * * * * * * DotVarExp::toElem: (__copytmp3334 = w).__postblit @ @trusted void() * * * * * * * * * * * * * * * * * * * AssignExp::toElem: __copytmp3334 = w | (LockingTextWriter)(LockingTextWriter = LockingTextWriter) * * * * * * * * * * * * * * * * * * * * VarExp::toElem: __copytmp3334 @ LockingTextWriter * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__copytmp3334' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * VarExp::toElem: w @ LockingTextWriter * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * type: LockingTextWriter * * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * * * %__copytmp3334 = alloca %std.stdio.File.LockingTextWriter, align 8 * * * * * * * * * * * * * * * * * * * Function type: @trusted void() * * * * * * * * * * * * * * VarExp::toElem: __copytmp3334 @ LockingTextWriter * * * * * * * * * * * * * * * DtoSymbolAddress ('__copytmp3334' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * StringExp::toElem: "\\U%08X" @ const(char[]) * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * CastExp::toElem: cast(uint)c @ uint * * * * * * * * * * * * * * VarExp::toElem: c @ const(dchar) * * * * * * * * * * * * * * * DtoSymbolAddress ('c' of type 'const(dchar)') * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * type: const(dchar) * * * * * * * * * * * * * * Casting from 'const(dchar)' to 'uint' * TemplateInstance::codegen: 'std.range.primitives.put!(LockingTextWriter, const(dchar))' * * DtoDefineFunction(std.range.primitives.put!(LockingTextWriter, const(dchar)).put): /usr/include/dlang/ldc/std/range/primitives.d(277) * * * Doing function body for: put * * * DtoCreateNestedContext for put * * * * DtoCreateNestedContextType for std.range.primitives.put!(LockingTextWriter, const(dchar)).put * * * CompoundStatement::toIR(): * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/range/primitives.d(282) * * * * * CallExp::toElem: doPut(r, e) @ void * * * * * * VarExp::toElem: doPut @ nothrow @nogc @safe void(ref LockingTextWriter r, auto ref const(dchar) e) * * * * * * * DtoSymbolAddress ('doPut' of type 'nothrow @nogc @safe void(ref LockingTextWriter r, auto ref const(dchar) e)') * * * * * * * * FuncDeclaration * * * * * * * * DtoFunctionType(nothrow @nogc @safe void(ref LockingTextWriter r, auto ref const(dchar) e)) * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * Final function type: void (i32*, %std.stdio.File.LockingTextWriter*) * * * * * * * * DtoResolveFunction(std.range.primitives.doPut!(LockingTextWriter, const(dchar)).doPut): /usr/include/dlang/ldc/std/range/primitives.d(182) * * * * * * * * * DtoDeclareFunction(std.range.primitives.doPut!(LockingTextWriter, const(dchar)).doPut): /usr/include/dlang/ldc/std/range/primitives.d(182) * * * * * * * * * * DtoFunctionType(nothrow @nogc @safe void(ref LockingTextWriter r, auto ref const(dchar) e)) * * * * * * * * * * func = declare void @_D3std5range10primitives49__T5doPutTS3std5stdio4File17LockingTextWriterTxwZ5doPutFNbNiNfKS3std5stdio4File17LockingTextWriterKxwZv(i32*, %std.stdio.File.LockingTextWriter*) * * * * * * DtoCallFunction() * * * * * * * Building type: nothrow @nogc @safe void(ref LockingTextWriter r, auto ref const(dchar) e) * * * * * * * * DtoFunctionType(nothrow @nogc @safe void(ref LockingTextWriter r, auto ref const(dchar) e)) * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * Final function type: void (i32*, %std.stdio.File.LockingTextWriter*) * * * * * * * doing normal arguments * * * * * * * Arguments so far: (0) * * * * * * * Function type: nothrow @nogc @safe void(ref LockingTextWriter r, auto ref const(dchar) e) * * * * * * * DtoArgument * * * * * * * * VarExp::toElem: r @ LockingTextWriter * * * * * * * * * DtoSymbolAddress ('r' of type 'LockingTextWriter') * * * * * * * * * * function param * * * * * * * * * * type: LockingTextWriter * * * * * * * DtoArgument * * * * * * * * VarExp::toElem: e @ const(dchar) * * * * * * * * * DtoSymbolAddress ('e' of type 'const(dchar)') * * * * * * * * * * function param * * * * * * * * * * type: const(dchar) * TemplateInstance::codegen: 'std.range.primitives.doPut!(LockingTextWriter, const(dchar))' * * DtoDefineFunction(std.range.primitives.doPut!(LockingTextWriter, const(dchar)).doPut): /usr/include/dlang/ldc/std/range/primitives.d(182) * * * Doing function body for: doPut * * * DtoCreateNestedContext for doPut * * * * DtoCreateNestedContextType for std.range.primitives.doPut!(LockingTextWriter, const(dchar)).doPut * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/range/primitives.d(183) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/range/primitives.d(187) * * * * * * DeclarationExp::toElem: enum bool usingPut = true; | T=void * * * * * * * DtoDeclarationExp: usingPut * * * * * * * * VarDeclaration * * * * * * * * Manifest constant, nothing to do. * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/range/primitives.d(193) * * * * * * CallExp::toElem: r.put(e) @ void * * * * * * * DotVarExp::toElem: r.put @ nothrow @nogc @safe void(const(dchar) c) * * * * * * * * VarExp::toElem: r @ LockingTextWriter * * * * * * * * * DtoSymbolAddress ('r' of type 'LockingTextWriter') * * * * * * * * * * function param * * * * * * * * * * type: LockingTextWriter * * * * * * * * isMember = this is: LockingTextWriter * * * * * * * * DtoFunctionType(nothrow @nogc @safe void(const(dchar) c)) * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * Final function type: void (%std.stdio.File.LockingTextWriter*, i32) * * * * * * * * DtoResolveFunction(std.stdio.File.LockingTextWriter.put!(const(dchar)).put): /usr/include/dlang/ldc/std/stdio.d(2452) * * * * * * * * * DtoDeclareFunction(std.stdio.File.LockingTextWriter.put!(const(dchar)).put): /usr/include/dlang/ldc/std/stdio.d(2452) * * * * * * * * * * isMember = this is: LockingTextWriter * * * * * * * * * * DtoFunctionType(nothrow @nogc @safe void(const(dchar) c)) * * * * * * * * * * func = declare void @_D3std5stdio4File17LockingTextWriter11__T3putTxwZ3putMFNbNiNfxwZv(%std.stdio.File.LockingTextWriter*, i32) * * * * * * * DtoCallFunction() * * * * * * * * Building type: nothrow @nogc @safe void(const(dchar) c) * * * * * * * * * DtoFunctionType(nothrow @nogc @safe void(const(dchar) c)) * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: void (i32) * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (1) * * * * * * * * * %std.stdio.File.LockingTextWriter* %r_arg * * * * * * * * Function type: nothrow @nogc @safe void(const(dchar) c) * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: e @ const(dchar) * * * * * * * * * * DtoSymbolAddress ('e' of type 'const(dchar)') * * * * * * * * * * * function param * * * * * * * * * * * type: const(dchar) * TemplateInstance::codegen: 'std.range.primitives.ElementType!(const(dchar))' * TemplateInstance::codegen: 'std.format.formattedWrite!(LockingTextWriter, char, uint)' * * DtoDefineFunction(std.format.formattedWrite!(LockingTextWriter, char, uint).formattedWrite): /usr/include/dlang/ldc/std/format.d(420) * * * Doing function body for: formattedWrite * * * DtoCreateNestedContext for formattedWrite * * * * DtoCreateNestedContextType for std.format.formattedWrite!(LockingTextWriter, char, uint).formattedWrite * * * * * has nested frame * * * * * Function formattedWrite has depth 0 * * * * * Nested var 'spec' of type %"std.format.FormatSpec!char.FormatSpec" = type { i32, i32, i8, i8, i8, i8, [4 x i8], { i64, i8* }, { i64, i8* }, { i64, i8* } } * * * * * frameType = %nest.formattedWrite.4 = type { %"std.format.FormatSpec!char.FormatSpec" } * * * * nested var: spec * * * TryFinallyStatement::toIR(): * * * * ExpStatement::toIR(): * * * * * CallExp::toElem: w.~this() @ void * * * * * * DotVarExp::toElem: w.~this @ @trusted void() * * * * * * * VarExp::toElem: w @ LockingTextWriter * * * * * * * * DtoSymbolAddress ('w' of type 'LockingTextWriter') * * * * * * * * * function param * * * * * * * * * type: LockingTextWriter * * * * * * DtoCallFunction() * * * * * * * doing normal arguments * * * * * * * Arguments so far: (1) * * * * * * * * %std.stdio.File.LockingTextWriter* %w_arg * * * * * * * Function type: @trusted void() * * * * CompoundStatement::toIR(): * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(421) * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(424) * * * * * * * DeclarationExp::toElem: alias FPfmt = void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe; | T=void * * * * * * * * DtoDeclarationExp: FPfmt * * * * * * * * * Ignoring Symbol: alias * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(426) * * * * * * * DeclarationExp::toElem: FormatSpec!char spec = spec = FormatSpec , spec.this(fmt); | T=void * * * * * * * * DtoDeclarationExp: spec * * * * * * * * * VarDeclaration * * * * * * * * * DtoVarDeclaration(vdtype = FormatSpec!char) * * * * * * * * * * has nestedref set (referenced by nested function/delegate) * * * * * * * * * * llvm value for decl: %spec = getelementptr %nest.formattedWrite.4, %nest.formattedWrite.4* %.frame, i32 0, i32 0 * * * * * * * * * * expression initializer * * * * * * * * * * CommaExp::toElem: spec = FormatSpec , spec.this(fmt) @ FormatSpec!char * * * * * * * * * * * AssignExp::toElem: spec = FormatSpec | (FormatSpec!char)(FormatSpec!char = FormatSpec!char) * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(426) * * * * * * * * * * * * VarExp::toElem: FormatSpec @ FormatSpec!char * * * * * * * * * * * * * DtoSymbolAddress ('FormatSpec' of type 'FormatSpec!char') * * * * * * * * * * * * * * Sym: type=FormatSpec!char * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * CallExp::toElem: spec.this(fmt) @ FormatSpec!char * * * * * * * * * * * * DotVarExp::toElem: spec.this @ pure nothrow @nogc ref @safe FormatSpec!char(const(char[]) fmt) * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(426) * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * %spec = getelementptr %nest.formattedWrite.4, %nest.formattedWrite.4* %.frame, i32 0, i32 0 * * * * * * * * * * * * * Function type: pure nothrow @nogc ref @safe FormatSpec!char(const(char[]) fmt) * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * VarExp::toElem: fmt @ const(char[]) * * * * * * * * * * * * * * * DtoSymbolAddress ('fmt' of type 'const(char[])') * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * type: const(char[]) * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(428) * * * * * * * DeclarationExp::toElem: void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe[1] funs = null; | T=void * * * * * * * * DtoDeclarationExp: funs * * * * * * * * * VarDeclaration * * * * * * * * * DtoVarDeclaration(vdtype = void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe[1]) * * * * * * * * * * llvm value for decl: %funs = alloca [1 x void (%"std.format.FormatSpec!char.FormatSpec"*, i8*, %std.stdio.File.LockingTextWriter*)*], align 8 * * * * * * * * * * expression initializer * * * * * * * * * * AssignExp::toElem: funs[] = null | (void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe[])(void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe[] = void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe) * * * * * * * * * * * performing static array literal assignment * * * * * * * * * * * SliceExp::toElem: funs[] @ void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe[] * * * * * * * * * * * * VarExp::toElem: funs @ void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe[1] * * * * * * * * * * * * * DtoSymbolAddress ('funs' of type 'void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe[1]') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * NullExp::toElem(type=void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe): null * * * * * * * * * * * * NullExp::toConstElem(type=void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe): null * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * DtoArrayInit * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(429) * * * * * * * DeclarationExp::toElem: const(void)*[1] argsAddresses = null; | T=void * * * * * * * * DtoDeclarationExp: argsAddresses * * * * * * * * * VarDeclaration * * * * * * * * * DtoVarDeclaration(vdtype = const(void)*[1]) * * * * * * * * * * llvm value for decl: %argsAddresses = alloca [1 x i8*], align 8 * * * * * * * * * * expression initializer * * * * * * * * * * AssignExp::toElem: argsAddresses[] = null | (const(void)*[])(const(void)*[] = const(void)*) * * * * * * * * * * * performing static array literal assignment * * * * * * * * * * * SliceExp::toElem: argsAddresses[] @ const(void)*[] * * * * * * * * * * * * VarExp::toElem: argsAddresses @ const(void)*[1] * * * * * * * * * * * * * DtoSymbolAddress ('argsAddresses' of type 'const(void)*[1]') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * NullExp::toElem(type=const(void)*): null * * * * * * * * * * * * NullExp::toConstElem(type=const(void)*): null * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * DtoArrayInit * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(430) * * * * * * * NotExp::toElem: !__ctfe @ bool * * * * * * * * VarExp::toElem: __ctfe @ bool * * * * * * * * * DtoSymbolAddress ('__ctfe' of type 'bool') * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(431) * * * * * * * * UnrolledLoopStatement::toIR(): /usr/include/dlang/ldc/std/format.d(432) * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(432) * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(432) * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(432) * * * * * * * * * * * * DeclarationExp::toElem: enum ulong i = 0LU; | T=void * * * * * * * * * * * * * DtoDeclarationExp: i * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * Manifest constant, nothing to do. * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(432) * * * * * * * * * * * * DeclarationExp::toElem: alias Arg = uint; | T=void * * * * * * * * * * * * * DtoDeclarationExp: Arg * * * * * * * * * * * * * * Ignoring Symbol: alias * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(434) * * * * * * * * * * * * AssignExp::toElem: funs[0] = (*() => & formatGeneric)() | (void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe)(void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe = void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe) * * * * * * * * * * * * * IndexExp::toElem: funs[0] @ void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe * * * * * * * * * * * * * * VarExp::toElem: funs @ void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe[1] * * * * * * * * * * * * * * * DtoSymbolAddress ('funs' of type 'void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe[1]') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * CallExp::toElem: (*() => & formatGeneric)() @ void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe * * * * * * * * * * * * * * PtrExp::toElem: *() => & formatGeneric @ pure nothrow @nogc @trusted void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe() * * * * * * * * * * * * * * * FuncExp::toElem: __lambda5 @ void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe function() pure nothrow @nogc @trusted * * * * * * * * * * * * * * * * kind = function * * * * * * * * * * * * * * * * DtoDefineFunction(std.format.formattedWrite!(LockingTextWriter, char, uint).formattedWrite.__lambda5): /usr/include/dlang/ldc/std/format.d(434) * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe()) * * * * * * * * * * * * * * * * * * Building type: void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe * * * * * * * * * * * * * * * * * * * Building type: pure nothrow @safe void(LockingTextWriter, const(void)*, ref FormatSpec!char) * * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @safe void(LockingTextWriter, const(void)*, ref FormatSpec!char)) * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * * Final function type: void (%"std.format.FormatSpec!char.FormatSpec"*, i8*, %std.stdio.File.LockingTextWriter*) * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * Final function type: void (%"std.format.FormatSpec!char.FormatSpec"*, i8*, %std.stdio.File.LockingTextWriter*)* () * * * * * * * * * * * * * * * * * DtoResolveFunction(std.format.formattedWrite!(LockingTextWriter, char, uint).formattedWrite.__lambda5): /usr/include/dlang/ldc/std/format.d(434) * * * * * * * * * * * * * * * * * * DtoDeclareFunction(std.format.formattedWrite!(LockingTextWriter, char, uint).formattedWrite.__lambda5): /usr/include/dlang/ldc/std/format.d(434) * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe()) * * * * * * * * * * * * * * * * * * * func = declare void (%"std.format.FormatSpec!char.FormatSpec"*, i8*, %std.stdio.File.LockingTextWriter*)* @_D3std6format60__T14formattedWriteTS3std5stdio4File17LockingTextWriterTaTkZ14formattedWriteFS3std5stdio4File17LockingTextWriterxAakZ9__lambda5FNaNbNiNeZPFNaNbNfS3std5stdio4File17LockingTextWriterPxvKS3std6format18__T10FormatSpecTaZ10FormatSpecZv() * * * * * * * * * * * * * * * * * Doing function body for: __lambda5 * * * * * * * * * * * * * * * * * DtoCreateNestedContext for __lambda5 * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for std.format.formattedWrite!(LockingTextWriter, char, uint).formattedWrite.__lambda5 * * * * * * * * * * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * * * * * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/format.d(434) * * * * * * * * * * * * * * * * * * * SymOffExp::toElem: & formatGeneric @ void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('formatGeneric' of type '@system void(LockingTextWriter w, const(void)* arg, ref FormatSpec!char f)') * * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(@system void(LockingTextWriter w, const(void)* arg, ref FormatSpec!char f)) * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * * * Final function type: void (%"std.format.FormatSpec!char.FormatSpec"*, i8*, %std.stdio.File.LockingTextWriter*) * * * * * * * * * * * * * * * * * * * * * DtoResolveFunction(std.format.formatGeneric!(LockingTextWriter, uint, char).formatGeneric): /usr/include/dlang/ldc/std/format.d(3455) * * * * * * * * * * * * * * * * * * * * * * DtoDeclareFunction(std.format.formatGeneric!(LockingTextWriter, uint, char).formatGeneric): /usr/include/dlang/ldc/std/format.d(3455) * * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(@system void(LockingTextWriter w, const(void)* arg, ref FormatSpec!char f)) * * * * * * * * * * * * * * * * * * * * * * * func = declare void @_D3std6format59__T13formatGenericTS3std5stdio4File17LockingTextWriterTkTaZ13formatGenericFS3std5stdio4File17LockingTextWriterPxvKS3std6format18__T10FormatSpecTaZ10FormatSpecZv(%"std.format.FormatSpec!char.FormatSpec"*, i8*, %std.stdio.File.LockingTextWriter*) * * * * * * * * * * * * * * * * * * * * Casting from 'void function(LockingTextWriter w, const(void)* arg, ref FormatSpec!char f) @system' to 'void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe' * * * * * * * * * * * * * * * * * * * * * src: declare void @_D3std6format59__T13formatGenericTS3std5stdio4File17LockingTextWriterTkTaZ13formatGenericFS3std5stdio4File17LockingTextWriterPxvKS3std6format18__T10FormatSpecTaZ10FormatSpecZv(%"std.format.FormatSpec!char.FormatSpec"*, i8*, %std.stdio.File.LockingTextWriter* byval) * * * * * * * * * * * * * * * * * * * * * to type: void (%"std.format.FormatSpec!char.FormatSpec"*, i8*, %std.stdio.File.LockingTextWriter*)* * * * * * * * * * * * * * * * * * * * return value is '0x12912028' * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * Building type: pure nothrow @nogc @trusted void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe() * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe()) * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * Final function type: void (%"std.format.FormatSpec!char.FormatSpec"*, i8*, %std.stdio.File.LockingTextWriter*)* () * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @trusted void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe() * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * lhs: %14 = getelementptr [1 x void (%"std.format.FormatSpec!char.FormatSpec"*, i8*, %std.stdio.File.LockingTextWriter*)*], [1 x void (%"std.format.FormatSpec!char.FormatSpec"*, i8*, %std.stdio.File.LockingTextWriter*)*]* %funs, i32 0, i64 0 * * * * * * * * * * * * * * rhs: %15 = invoke void (%"std.format.FormatSpec!char.FormatSpec"*, i8*, %std.stdio.File.LockingTextWriter*)* @_D3std6format60__T14formattedWriteTS3std5stdio4File17LockingTextWriterTaTkZ14formattedWriteFS3std5stdio4File17LockingTextWriterxAakZ9__lambda5FNaNbNiNeZPFNaNbNfS3std5stdio4File17LockingTextWriterPxvKS3std6format18__T10FormatSpecTaZ10FormatSpecZv() to label %postinvoke2 unwind label %landingPad * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(437) * * * * * * * * * * * * AssignExp::toElem: argsAddresses[0] = (*(ref uint arg) => cast(const(void*))&arg)(_param_2) | (const(void)*)(const(void)* = const(void)*) * * * * * * * * * * * * * IndexExp::toElem: argsAddresses[0] @ const(void)* * * * * * * * * * * * * * * VarExp::toElem: argsAddresses @ const(void)*[1] * * * * * * * * * * * * * * * DtoSymbolAddress ('argsAddresses' of type 'const(void)*[1]') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * CallExp::toElem: (*(ref uint arg) => cast(const(void*))&arg)(_param_2) @ const(void)* * * * * * * * * * * * * * * PtrExp::toElem: *(ref uint arg) => cast(const(void*))&arg @ pure nothrow @nogc @trusted const(void*)(ref uint arg) * * * * * * * * * * * * * * * FuncExp::toElem: __lambda6 @ const(void*) function(ref uint arg) pure nothrow @nogc @trusted * * * * * * * * * * * * * * * * kind = function * * * * * * * * * * * * * * * * DtoDefineFunction(std.format.formattedWrite!(LockingTextWriter, char, uint).formattedWrite.__lambda6): /usr/include/dlang/ldc/std/format.d(437) * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted const(void*)(ref uint arg)) * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * Final function type: i8* (i32*) * * * * * * * * * * * * * * * * * DtoResolveFunction(std.format.formattedWrite!(LockingTextWriter, char, uint).formattedWrite.__lambda6): /usr/include/dlang/ldc/std/format.d(437) * * * * * * * * * * * * * * * * * * DtoDeclareFunction(std.format.formattedWrite!(LockingTextWriter, char, uint).formattedWrite.__lambda6): /usr/include/dlang/ldc/std/format.d(437) * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted const(void*)(ref uint arg)) * * * * * * * * * * * * * * * * * * * func = declare i8* @_D3std6format60__T14formattedWriteTS3std5stdio4File17LockingTextWriterTaTkZ14formattedWriteFS3std5stdio4File17LockingTextWriterxAakZ16__T9__lambda6TkZ9__lambda6FNaNbNiNeKkZxPv(i32*) * * * * * * * * * * * * * * * * * Doing function body for: __lambda6 * * * * * * * * * * * * * * * * * DtoCreateNestedContext for __lambda6 * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for std.format.formattedWrite!(LockingTextWriter, char, uint).formattedWrite.__lambda6 * * * * * * * * * * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * * * * * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/format.d(437) * * * * * * * * * * * * * * * * * * * CastExp::toElem: cast(const(void*))&arg @ const(void*) * * * * * * * * * * * * * * * * * * * * AddrExp::toElem: &arg @ uint* * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: arg @ uint * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('arg' of type 'uint') * * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * * type: uint * * * * * * * * * * * * * * * * * * * * * is nothing special * * * * * * * * * * * * * * * * * * * * * lval: i32* %arg_arg * * * * * * * * * * * * * * * * * * * * Casting from 'uint*' to 'const(void*)' * * * * * * * * * * * * * * * * * * * * * src: i32* %arg_arg * * * * * * * * * * * * * * * * * * * * * to type: i8* * * * * * * * * * * * * * * * * * * * return value is '0x12918e58' * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * Building type: pure nothrow @nogc @trusted const(void*)(ref uint arg) * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted const(void*)(ref uint arg)) * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * Final function type: i8* (i32*) * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @trusted const(void*)(ref uint arg) * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * VarExp::toElem: _param_2 @ uint * * * * * * * * * * * * * * * * * DtoSymbolAddress ('_param_2' of type 'uint') * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * type: uint * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * lhs: %10 = getelementptr [1 x i8*], [1 x i8*]* %argsAddresses, i32 0, i64 0 * * * * * * * * * * * * * * rhs: %11 = invoke i8* @_D3std6format60__T14formattedWriteTS3std5stdio4File17LockingTextWriterTaTkZ14formattedWriteFS3std5stdio4File17LockingTextWriterxAakZ16__T9__lambda6TkZ9__lambda6FNaNbNiNeKkZxPv(i32* %_param_2) to label %postinvoke3 unwind label %landingPad * * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(440) * * * * * * * * * * * * IntegerExp::toElem: 0 @ int * * * * * * * * * * * * * IntegerExp::toConstElem: 0 @ int * * * * * * * * * * * * * * value = i32 0 * * * * * * * * * * * * if conditional: i32 0 * * * * * * * * * * * * Casting from 'int' to 'bool' * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(440) * * * * * * * * * * * * * CallExp::toElem: formatValue((LockingTextWriter __copytmp3318 = (__copytmp3318 = w).__postblit(); , __copytmp3318), _param_2, spec) @ void * * * * * * * * * * * * * * VarExp::toElem: formatValue @ @safe void(LockingTextWriter w, uint obj, ref FormatSpec!char f) * * * * * * * * * * * * * * * DtoSymbolAddress ('formatValue' of type '@safe void(LockingTextWriter w, uint obj, ref FormatSpec!char f)') * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * Function type: @safe void(LockingTextWriter w, uint obj, ref FormatSpec!char f) * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * CommaExp::toElem: LockingTextWriter __copytmp3318 = (__copytmp3318 = w).__postblit(); , __copytmp3318 @ LockingTextWriter * * * * * * * * * * * * * * * * * DeclarationExp::toElem: LockingTextWriter __copytmp3318 = (__copytmp3318 = w).__postblit(); | T=void * * * * * * * * * * * * * * * * * * DtoDeclarationExp: __copytmp3318 * * * * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = LockingTextWriter) * * * * * * * * * * * * * * * * * * * * llvm value for decl: %__copytmp3318 = alloca %std.stdio.File.LockingTextWriter, align 8 * * * * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * * * * CallExp::toElem: (__copytmp3318 = w).__postblit() @ void * * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: (__copytmp3318 = w).__postblit @ @trusted void() * * * * * * * * * * * * * * * * * * * * * * AssignExp::toElem: __copytmp3318 = w | (LockingTextWriter)(LockingTextWriter = LockingTextWriter) * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: __copytmp3318 @ LockingTextWriter * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__copytmp3318' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: w @ LockingTextWriter * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * * * * type: LockingTextWriter * * * * * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * * * * * * %__copytmp3318 = alloca %std.stdio.File.LockingTextWriter, align 8 * * * * * * * * * * * * * * * * * * * * * * Function type: @trusted void() * * * * * * * * * * * * * * * * * VarExp::toElem: __copytmp3318 @ LockingTextWriter * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__copytmp3318' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * VarExp::toElem: _param_2 @ uint * * * * * * * * * * * * * * * * * DtoSymbolAddress ('_param_2' of type 'uint') * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * type: uint * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(440) * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(445) * * * * * * * DeclarationExp::toElem: uint currentArg = 0u; | T=void * * * * * * * * DtoDeclarationExp: currentArg * * * * * * * * * VarDeclaration * * * * * * * * * DtoVarDeclaration(vdtype = uint) * * * * * * * * * * llvm value for decl: %currentArg = alloca i32, align 4 * * * * * * * * * * expression initializer * * * * * * * * * * AssignExp::toElem: currentArg = 0u | (uint)(uint = uint) * * * * * * * * * * * VarExp::toElem: currentArg @ uint * * * * * * * * * * * * DtoSymbolAddress ('currentArg' of type 'uint') * * * * * * * * * * * * * a normal variable * * * * * * * * * * * IntegerExp::toElem: 0u @ uint * * * * * * * * * * * * IntegerExp::toConstElem: 0u @ uint * * * * * * * * * * * * * value = i32 0 * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * lhs: %currentArg = alloca i32, align 4 * * * * * * * * * * * * rhs: i32 0 * * * * * * ForStatement::toIR(): /usr/include/dlang/ldc/std/format.d(446) * * * * * * * CallExp::toElem: spec.writeUpToNextSpec((LockingTextWriter __copytmp3319 = (__copytmp3319 = w).__postblit(); , __copytmp3319)) @ bool * * * * * * * * DotVarExp::toElem: spec.writeUpToNextSpec @ @safe bool(LockingTextWriter writer) * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * nested variable * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(446) * * * * * * * * DtoCallFunction() * * * * * * * * * doing normal arguments * * * * * * * * * Arguments so far: (1) * * * * * * * * * * %spec = getelementptr %nest.formattedWrite.4, %nest.formattedWrite.4* %.frame, i32 0, i32 0 * * * * * * * * * Function type: @safe bool(LockingTextWriter writer) * * * * * * * * * DtoArgument * * * * * * * * * * CommaExp::toElem: LockingTextWriter __copytmp3319 = (__copytmp3319 = w).__postblit(); , __copytmp3319 @ LockingTextWriter * * * * * * * * * * * DeclarationExp::toElem: LockingTextWriter __copytmp3319 = (__copytmp3319 = w).__postblit(); | T=void * * * * * * * * * * * * DtoDeclarationExp: __copytmp3319 * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * DtoVarDeclaration(vdtype = LockingTextWriter) * * * * * * * * * * * * * * llvm value for decl: %__copytmp3319 = alloca %std.stdio.File.LockingTextWriter, align 8 * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * CallExp::toElem: (__copytmp3319 = w).__postblit() @ void * * * * * * * * * * * * * * * DotVarExp::toElem: (__copytmp3319 = w).__postblit @ @trusted void() * * * * * * * * * * * * * * * * AssignExp::toElem: __copytmp3319 = w | (LockingTextWriter)(LockingTextWriter = LockingTextWriter) * * * * * * * * * * * * * * * * * VarExp::toElem: __copytmp3319 @ LockingTextWriter * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__copytmp3319' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * VarExp::toElem: w @ LockingTextWriter * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * type: LockingTextWriter * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * %__copytmp3319 = alloca %std.stdio.File.LockingTextWriter, align 8 * * * * * * * * * * * * * * * * Function type: @trusted void() * * * * * * * * * * * VarExp::toElem: __copytmp3319 @ LockingTextWriter * * * * * * * * * * * * DtoSymbolAddress ('__copytmp3319' of type 'LockingTextWriter') * * * * * * * * * * * * * a normal variable * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(447) * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(447) * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(448) * * * * * * * * * * AndAndExp::toElem: cast(ulong)currentArg == 1LU && !spec.indexStart @ bool * * * * * * * * * * * EqualExp::toElem: cast(ulong)currentArg == 1LU @ bool * * * * * * * * * * * * CastExp::toElem: cast(ulong)currentArg @ ulong * * * * * * * * * * * * * VarExp::toElem: currentArg @ uint * * * * * * * * * * * * * * DtoSymbolAddress ('currentArg' of type 'uint') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * Casting from 'uint' to 'ulong' * * * * * * * * * * * * * * cast to: i64 * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * integral or pointer or interface * * * * * * * * * * * * lv: %25 = zext i32 %24 to i64 * * * * * * * * * * * * rv: i64 1 * * * * * * * * * * * NotExp::toElem: !spec.indexStart @ bool * * * * * * * * * * * * DotVarExp::toElem: spec.indexStart @ ubyte * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(448) * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.indexStart: * * * * * * * * * * * * * * Value: %27 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 3 * * * * * * * * * * * * Casting from 'ubyte' to 'bool' * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(449) * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(449) * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(451) * * * * * * * * * * * * * CallExp::toElem: enforceEx(fmt.length == 0LU, delegate string() => text("Orphan format specifier: %", spec.spec), "/usr/include/dlang/ldc/std/format.d", 451LU) @ bool * * * * * * * * * * * * * * VarExp::toElem: enforceEx @ pure @safe bool(bool value, lazy string msg = "", string file = __FILE__, ulong line = cast(ulong)__LINE__) * * * * * * * * * * * * * * * DtoSymbolAddress ('enforceEx' of type 'pure @safe bool(bool value, lazy string msg = "", string file = __FILE__, ulong line = cast(ulong)__LINE__)') * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * Function type: pure @safe bool(bool value, lazy string msg = "", string file = __FILE__, ulong line = cast(ulong)__LINE__) * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * EqualExp::toElem: fmt.length == 0LU @ bool * * * * * * * * * * * * * * * * * ArrayLengthExp::toElem: fmt.length @ ulong * * * * * * * * * * * * * * * * * * VarExp::toElem: fmt @ const(char[]) * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('fmt' of type 'const(char[])') * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * type: const(char[]) * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * * * * * integral or pointer or interface * * * * * * * * * * * * * * * * * lv: %.len = load i64, i64* %31 * * * * * * * * * * * * * * * * * rv: i64 0 * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * FuncExp::toElem: __dgliteral7 @ string delegate() pure @nogc @safe * * * * * * * * * * * * * * * * * nested * * * * * * * * * * * * * * * * * kind = delegate * * * * * * * * * * * * * * * * * DtoDefineFunction(std.format.formattedWrite!(LockingTextWriter, char, uint).formattedWrite.__dgliteral7): /usr/include/dlang/ldc/std/format.d(452) * * * * * * * * * * * * * * * * * * DtoFunctionType(pure @nogc @safe string()) * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * Final function type: { i64, i8* } (i8*) * * * * * * * * * * * * * * * * * * DtoResolveFunction(std.format.formattedWrite!(LockingTextWriter, char, uint).formattedWrite.__dgliteral7): /usr/include/dlang/ldc/std/format.d(452) * * * * * * * * * * * * * * * * * * * DtoDeclareFunction(std.format.formattedWrite!(LockingTextWriter, char, uint).formattedWrite.__dgliteral7): /usr/include/dlang/ldc/std/format.d(452) * * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure @nogc @safe string()) * * * * * * * * * * * * * * * * * * * * func = declare { i64, i8* } @_D3std6format60__T14formattedWriteTS3std5stdio4File17LockingTextWriterTaTkZ14formattedWriteFS3std5stdio4File17LockingTextWriterxAakZ12__dgliteral7MFNaNiNfZAya(i8*) * * * * * * * * * * * * * * * * * * Doing function body for: __dgliteral7 * * * * * * * * * * * * * * * * * * DtoCreateNestedContext for __dgliteral7 * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for std.format.formattedWrite!(LockingTextWriter, char, uint).formattedWrite.__dgliteral7 * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for std.format.formattedWrite!(LockingTextWriter, char, uint).formattedWrite * * * * * * * * * * * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * * * * * * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/format.d(452) * * * * * * * * * * * * * * * * * * * * CallExp::toElem: text("Orphan format specifier: %", spec.spec) @ string * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: text @ pure @safe string(string _param_0, char _param_1) * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('text' of type 'pure @safe string(string _param_0, char _param_1)') * * * * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * * * * Function type: pure @safe string(string _param_0, char _param_1) * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * StringExp::toElem: "Orphan format specifier: %" @ string * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: spec.spec @ char * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(452) * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for std.format.formattedWrite!(LockingTextWriter, char, uint).formattedWrite * * * * * * * * * * * * * * * * * * * * * * * * * * * Context: %2 = bitcast i8* %1 to %nest.formattedWrite.4* * * * * * * * * * * * * * * * * * * * * * * * * * * * of type: %nest.formattedWrite.4 = type { %"std.format.FormatSpec!char.FormatSpec" } * * * * * * * * * * * * * * * * * * * * * * * * * * * Variable: spec * * * * * * * * * * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * * * * * * * * * * Function: __dgliteral7 * * * * * * * * * * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * * * * * * * * * * Addr: %spec = getelementptr %nest.formattedWrite.4, %nest.formattedWrite.4* %2, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * * * * * * * * * of type: %"std.format.FormatSpec!char.FormatSpec"* * * * * * * * * * * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.spec: * * * * * * * * * * * * * * * * * * * * * * * * * Value: %3 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 2 * * * * * * * * * * * * * * * * * * * * return value is '0x1291de68' * * * * * * * * * * * * * * * * * Building type: string delegate() pure @nogc @safe * * * * * * * * * * * * * * * * * * DtoFunctionType(pure @nogc @safe string()) * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * Final function type: { i64, i8* } (i8*) * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * StringExp::toElem: "/usr/include/dlang/ldc/std/format.d" @ string * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * IntegerExp::toElem: 451LU @ ulong * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 451LU @ ulong * * * * * * * * * * * * * * * * * * value = i64 451 * * * * * * * * * * * * BreakStatement::toIR(): /usr/include/dlang/ldc/std/format.d(453) * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(455) * * * * * * * * * * EqualExp::toElem: spec.width == 2147483647 @ bool * * * * * * * * * * * DotVarExp::toElem: spec.width @ int * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(455) * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.width: * * * * * * * * * * * * * Value: %36 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 0 * * * * * * * * * * * IntegerExp::toElem: 2147483647 @ int * * * * * * * * * * * * IntegerExp::toConstElem: 2147483647 @ int * * * * * * * * * * * * * value = i32 2147483647 * * * * * * * * * * * integral or pointer or interface * * * * * * * * * * * lv: %37 = load i32, i32* %36 * * * * * * * * * * * rv: i32 2147483647 * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(456) * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(456) * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(457) * * * * * * * * * * * * * DeclarationExp::toElem: int width = to(getNthInt(currentArg, _param_2)); | T=void * * * * * * * * * * * * * * DtoDeclarationExp: width * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = int) * * * * * * * * * * * * * * * * llvm value for decl: %width = alloca i32, align 4 * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * AssignExp::toElem: width = to(getNthInt(currentArg, _param_2)) | (int)(int = int) * * * * * * * * * * * * * * * * * VarExp::toElem: width @ int * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('width' of type 'int') * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * CallExp::toElem: to(getNthInt(currentArg, _param_2)) @ int * * * * * * * * * * * * * * * * * * VarExp::toElem: to @ pure nothrow @nogc @safe int(int _param_0) * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('to' of type 'pure nothrow @nogc @safe int(int _param_0)') * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @safe int(int _param_0) * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * CallExp::toElem: getNthInt(currentArg, _param_2) @ int * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: getNthInt @ pure @safe int(uint index, uint _param_1) * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('getNthInt' of type 'pure @safe int(uint index, uint _param_1)') * * * * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * * * * Function type: pure @safe int(uint index, uint _param_1) * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: currentArg @ uint * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('currentArg' of type 'uint') * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: _param_2 @ uint * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('_param_2' of type 'uint') * * * * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * * * * type: uint * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * lhs: %width = alloca i32, align 4 * * * * * * * * * * * * * * * * * * rhs: %14 = invoke i32 @_D3std4conv9__T2toTiZ9__T2toTiZ2toFNaNbNiNfiZi(i32 %42) to label %postinvoke16 unwind label %landingPad * * * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(458) * * * * * * * * * * * * * CmpExp::toElem: width < 0 @ bool * * * * * * * * * * * * * * VarExp::toElem: width @ int * * * * * * * * * * * * * * * DtoSymbolAddress ('width' of type 'int') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * IntegerExp::toElem: 0 @ int * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0 @ int * * * * * * * * * * * * * * * * value = i32 0 * * * * * * * * * * * * * * type 1: %15 = load i32, i32* %width * * * * * * * * * * * * * * type 2: i32 0 * * * * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(459) * * * * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(459) * * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(460) * * * * * * * * * * * * * * * * CallExp::toElem: spec.flDash(true) @ void * * * * * * * * * * * * * * * * * DotVarExp::toElem: spec.flDash @ pure nothrow @nogc @property @safe void(bool v) * * * * * * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(460) * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * * %spec = getelementptr %nest.formattedWrite.4, %nest.formattedWrite.4* %.frame, i32 0, i32 0 * * * * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @property @safe void(bool v) * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: true @ bool * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: true @ bool * * * * * * * * * * * * * * * * * * * * * value = i1 true * * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(461) * * * * * * * * * * * * * * * * AssignExp::toElem: width = -width | (int)(int = int) * * * * * * * * * * * * * * * * * VarExp::toElem: width @ int * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('width' of type 'int') * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * NegExp::toElem: -width @ int * * * * * * * * * * * * * * * * * * VarExp::toElem: width @ int * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('width' of type 'int') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * lhs: %width = alloca i32, align 4 * * * * * * * * * * * * * * * * * * rhs: %negval = sub i32 0, %17 * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(463) * * * * * * * * * * * * * AssignExp::toElem: spec.width = width | (int)(int = int) * * * * * * * * * * * * * * DotVarExp::toElem: spec.width @ int * * * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(463) * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.width: * * * * * * * * * * * * * * * * Value: %46 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 0 * * * * * * * * * * * * * * VarExp::toElem: width @ int * * * * * * * * * * * * * * * DtoSymbolAddress ('width' of type 'int') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * lhs: %46 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 0 * * * * * * * * * * * * * * * rhs: %47 = load i32, i32* %width * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(464) * * * * * * * * * * * * * AddAssignExp::toElem: currentArg += 1u @ uint * * * * * * * * * * * * * * Caching l-value of currentArg += 1u => currentArg * * * * * * * * * * * * * * * VarExp::toElem: currentArg @ uint * * * * * * * * * * * * * * * * DtoSymbolAddress ('currentArg' of type 'uint') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * AddExp::toElem: currentArg + 1u @ uint * * * * * * * * * * * * * * * VarExp::toElem: currentArg @ uint * * * * * * * * * * * * * * * IntegerExp::toElem: 1u @ uint * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1u @ uint * * * * * * * * * * * * * * * * * value = i32 1 * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * lhs: %currentArg = alloca i32, align 4 * * * * * * * * * * * * * * * rhs: %49 = add i32 %48, 1 * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(466) * * * * * * * * * * * CmpExp::toElem: spec.width < 0 @ bool * * * * * * * * * * * * DotVarExp::toElem: spec.width @ int * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(466) * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.width: * * * * * * * * * * * * * * Value: %46 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 0 * * * * * * * * * * * * IntegerExp::toElem: 0 @ int * * * * * * * * * * * * * IntegerExp::toConstElem: 0 @ int * * * * * * * * * * * * * * value = i32 0 * * * * * * * * * * * * type 1: %47 = load i32, i32* %46 * * * * * * * * * * * * type 2: i32 0 * * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(467) * * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(467) * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(469) * * * * * * * * * * * * * * DeclarationExp::toElem: uint index = cast(uint)-spec.width; | T=void * * * * * * * * * * * * * * * DtoDeclarationExp: index * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = uint) * * * * * * * * * * * * * * * * * llvm value for decl: %index = alloca i32, align 4 * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * AssignExp::toElem: index = cast(uint)-spec.width | (uint)(uint = uint) * * * * * * * * * * * * * * * * * * VarExp::toElem: index @ uint * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('index' of type 'uint') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * CastExp::toElem: cast(uint)-spec.width @ uint * * * * * * * * * * * * * * * * * * * NegExp::toElem: -spec.width @ int * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: spec.width @ int * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(469) * * * * * * * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.width: * * * * * * * * * * * * * * * * * * * * * * Value: %53 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * Casting from 'int' to 'uint' * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * lhs: %index = alloca i32, align 4 * * * * * * * * * * * * * * * * * * * rhs: %negval22 = sub i32 0, %54 * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(470) * * * * * * * * * * * * * * AssertExp::toElem: assert(index > 0u) * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(471) * * * * * * * * * * * * * * DeclarationExp::toElem: int width = to(getNthInt(index - 1u, _param_2)); | T=void * * * * * * * * * * * * * * * DtoDeclarationExp: width * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = int) * * * * * * * * * * * * * * * * * llvm value for decl: %width23 = alloca i32, align 4 * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * AssignExp::toElem: width = to(getNthInt(index - 1u, _param_2)) | (int)(int = int) * * * * * * * * * * * * * * * * * * VarExp::toElem: width @ int * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('width' of type 'int') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * CallExp::toElem: to(getNthInt(index - 1u, _param_2)) @ int * * * * * * * * * * * * * * * * * * * VarExp::toElem: to @ pure nothrow @nogc @safe int(int _param_0) * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('to' of type 'pure nothrow @nogc @safe int(int _param_0)') * * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @safe int(int _param_0) * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * CallExp::toElem: getNthInt(index - 1u, _param_2) @ int * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: getNthInt @ pure @safe int(uint index, uint _param_1) * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('getNthInt' of type 'pure @safe int(uint index, uint _param_1)') * * * * * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * * * * * Function type: pure @safe int(uint index, uint _param_1) * * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * * MinExp::toElem: index - 1u @ uint * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: index @ uint * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('index' of type 'uint') * * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 1u @ uint * * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1u @ uint * * * * * * * * * * * * * * * * * * * * * * * * * * * value = i32 1 * * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: _param_2 @ uint * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('_param_2' of type 'uint') * * * * * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * * * * * type: uint * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * lhs: %width23 = alloca i32, align 4 * * * * * * * * * * * * * * * * * * * rhs: %18 = invoke i32 @_D3std4conv9__T2toTiZ9__T2toTiZ2toFNaNbNiNfiZi(i32 %59) to label %postinvoke25 unwind label %landingPad * * * * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(472) * * * * * * * * * * * * * * CmpExp::toElem: currentArg < index @ bool * * * * * * * * * * * * * * * VarExp::toElem: currentArg @ uint * * * * * * * * * * * * * * * * DtoSymbolAddress ('currentArg' of type 'uint') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * VarExp::toElem: index @ uint * * * * * * * * * * * * * * * * DtoSymbolAddress ('index' of type 'uint') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * type 1: %19 = load i32, i32* %currentArg * * * * * * * * * * * * * * * type 2: %20 = load i32, i32* %index * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(472) * * * * * * * * * * * * * * * AssignExp::toElem: currentArg = index | (uint)(uint = uint) * * * * * * * * * * * * * * * * VarExp::toElem: currentArg @ uint * * * * * * * * * * * * * * * * * DtoSymbolAddress ('currentArg' of type 'uint') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * VarExp::toElem: index @ uint * * * * * * * * * * * * * * * * * DtoSymbolAddress ('index' of type 'uint') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * lhs: %currentArg = alloca i32, align 4 * * * * * * * * * * * * * * * * * rhs: %63 = load i32, i32* %index * * * * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(473) * * * * * * * * * * * * * * CmpExp::toElem: width < 0 @ bool * * * * * * * * * * * * * * * VarExp::toElem: width @ int * * * * * * * * * * * * * * * * DtoSymbolAddress ('width' of type 'int') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * IntegerExp::toElem: 0 @ int * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0 @ int * * * * * * * * * * * * * * * * * value = i32 0 * * * * * * * * * * * * * * * type 1: %64 = load i32, i32* %width23 * * * * * * * * * * * * * * * type 2: i32 0 * * * * * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(474) * * * * * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(474) * * * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(475) * * * * * * * * * * * * * * * * * CallExp::toElem: spec.flDash(true) @ void * * * * * * * * * * * * * * * * * * DotVarExp::toElem: spec.flDash @ pure nothrow @nogc @property @safe void(bool v) * * * * * * * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(475) * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * * * %spec = getelementptr %nest.formattedWrite.4, %nest.formattedWrite.4* %.frame, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @property @safe void(bool v) * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: true @ bool * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: true @ bool * * * * * * * * * * * * * * * * * * * * * * value = i1 true * * * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(476) * * * * * * * * * * * * * * * * * AssignExp::toElem: width = -width | (int)(int = int) * * * * * * * * * * * * * * * * * * VarExp::toElem: width @ int * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('width' of type 'int') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * NegExp::toElem: -width @ int * * * * * * * * * * * * * * * * * * * VarExp::toElem: width @ int * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('width' of type 'int') * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * lhs: %width23 = alloca i32, align 4 * * * * * * * * * * * * * * * * * * * rhs: %negval31 = sub i32 0, %22 * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(478) * * * * * * * * * * * * * * AssignExp::toElem: spec.width = width | (int)(int = int) * * * * * * * * * * * * * * * DotVarExp::toElem: spec.width @ int * * * * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(478) * * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.width: * * * * * * * * * * * * * * * * * Value: %67 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 0 * * * * * * * * * * * * * * * VarExp::toElem: width @ int * * * * * * * * * * * * * * * * DtoSymbolAddress ('width' of type 'int') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * lhs: %67 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 0 * * * * * * * * * * * * * * * * rhs: %68 = load i32, i32* %width23 * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(480) * * * * * * * * * * EqualExp::toElem: spec.precision == 2147483647 @ bool * * * * * * * * * * * DotVarExp::toElem: spec.precision @ int * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(480) * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.precision: * * * * * * * * * * * * * Value: %54 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 1 * * * * * * * * * * * IntegerExp::toElem: 2147483647 @ int * * * * * * * * * * * * IntegerExp::toConstElem: 2147483647 @ int * * * * * * * * * * * * * value = i32 2147483647 * * * * * * * * * * * integral or pointer or interface * * * * * * * * * * * lv: %55 = load i32, i32* %54 * * * * * * * * * * * rv: i32 2147483647 * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(481) * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(481) * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(482) * * * * * * * * * * * * * DeclarationExp::toElem: int precision = to(getNthInt(currentArg, _param_2)); | T=void * * * * * * * * * * * * * * DtoDeclarationExp: precision * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = int) * * * * * * * * * * * * * * * * llvm value for decl: %precision = alloca i32, align 4 * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * AssignExp::toElem: precision = to(getNthInt(currentArg, _param_2)) | (int)(int = int) * * * * * * * * * * * * * * * * * VarExp::toElem: precision @ int * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('precision' of type 'int') * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * CallExp::toElem: to(getNthInt(currentArg, _param_2)) @ int * * * * * * * * * * * * * * * * * * VarExp::toElem: to @ pure nothrow @nogc @safe int(int _param_0) * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('to' of type 'pure nothrow @nogc @safe int(int _param_0)') * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @safe int(int _param_0) * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * CallExp::toElem: getNthInt(currentArg, _param_2) @ int * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: getNthInt @ pure @safe int(uint index, uint _param_1) * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('getNthInt' of type 'pure @safe int(uint index, uint _param_1)') * * * * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * * * * Function type: pure @safe int(uint index, uint _param_1) * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: currentArg @ uint * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('currentArg' of type 'uint') * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: _param_2 @ uint * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('_param_2' of type 'uint') * * * * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * * * * type: uint * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * lhs: %precision = alloca i32, align 4 * * * * * * * * * * * * * * * * * * rhs: %23 = invoke i32 @_D3std4conv9__T2toTiZ9__T2toTiZ2toFNaNbNiNfiZi(i32 %75) to label %postinvoke36 unwind label %landingPad * * * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(484) * * * * * * * * * * * * * CmpExp::toElem: precision >= 0 @ bool * * * * * * * * * * * * * * VarExp::toElem: precision @ int * * * * * * * * * * * * * * * DtoSymbolAddress ('precision' of type 'int') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * IntegerExp::toElem: 0 @ int * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0 @ int * * * * * * * * * * * * * * * * value = i32 0 * * * * * * * * * * * * * * type 1: %24 = load i32, i32* %precision * * * * * * * * * * * * * * type 2: i32 0 * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(484) * * * * * * * * * * * * * * AssignExp::toElem: spec.precision = precision | (int)(int = int) * * * * * * * * * * * * * * * DotVarExp::toElem: spec.precision @ int * * * * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(484) * * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.precision: * * * * * * * * * * * * * * * * * Value: %78 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 1 * * * * * * * * * * * * * * * VarExp::toElem: precision @ int * * * * * * * * * * * * * * * * DtoSymbolAddress ('precision' of type 'int') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * lhs: %78 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 1 * * * * * * * * * * * * * * * * rhs: %79 = load i32, i32* %precision * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(486) * * * * * * * * * * * * * * AssignExp::toElem: spec.precision = 2147483646 | (int)(int = int) * * * * * * * * * * * * * * * DotVarExp::toElem: spec.precision @ int * * * * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(486) * * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.precision: * * * * * * * * * * * * * * * * * Value: %80 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 1 * * * * * * * * * * * * * * * IntegerExp::toElem: 2147483646 @ int * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 2147483646 @ int * * * * * * * * * * * * * * * * * value = i32 2147483646 * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * lhs: %80 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 1 * * * * * * * * * * * * * * * * rhs: i32 2147483646 * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(487) * * * * * * * * * * * * * AddAssignExp::toElem: currentArg += 1u @ uint * * * * * * * * * * * * * * Caching l-value of currentArg += 1u => currentArg * * * * * * * * * * * * * * * VarExp::toElem: currentArg @ uint * * * * * * * * * * * * * * * * DtoSymbolAddress ('currentArg' of type 'uint') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * AddExp::toElem: currentArg + 1u @ uint * * * * * * * * * * * * * * * VarExp::toElem: currentArg @ uint * * * * * * * * * * * * * * * IntegerExp::toElem: 1u @ uint * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1u @ uint * * * * * * * * * * * * * * * * * value = i32 1 * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * lhs: %currentArg = alloca i32, align 4 * * * * * * * * * * * * * * * rhs: %82 = add i32 %81, 1 * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(489) * * * * * * * * * * * CmpExp::toElem: spec.precision < 0 @ bool * * * * * * * * * * * * DotVarExp::toElem: spec.precision @ int * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(489) * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.precision: * * * * * * * * * * * * * * Value: %78 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 1 * * * * * * * * * * * * IntegerExp::toElem: 0 @ int * * * * * * * * * * * * * IntegerExp::toConstElem: 0 @ int * * * * * * * * * * * * * * value = i32 0 * * * * * * * * * * * * type 1: %79 = load i32, i32* %78 * * * * * * * * * * * * type 2: i32 0 * * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(490) * * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(490) * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(492) * * * * * * * * * * * * * * DeclarationExp::toElem: uint index = cast(uint)-spec.precision; | T=void * * * * * * * * * * * * * * * DtoDeclarationExp: index * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = uint) * * * * * * * * * * * * * * * * * llvm value for decl: %index42 = alloca i32, align 4 * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * AssignExp::toElem: index = cast(uint)-spec.precision | (uint)(uint = uint) * * * * * * * * * * * * * * * * * * VarExp::toElem: index @ uint * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('index' of type 'uint') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * CastExp::toElem: cast(uint)-spec.precision @ uint * * * * * * * * * * * * * * * * * * * NegExp::toElem: -spec.precision @ int * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: spec.precision @ int * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(492) * * * * * * * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.precision: * * * * * * * * * * * * * * * * * * * * * * Value: %86 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 1 * * * * * * * * * * * * * * * * * * * Casting from 'int' to 'uint' * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * lhs: %index42 = alloca i32, align 4 * * * * * * * * * * * * * * * * * * * rhs: %negval43 = sub i32 0, %87 * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(493) * * * * * * * * * * * * * * AssertExp::toElem: assert(index > 0u) * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(494) * * * * * * * * * * * * * * DeclarationExp::toElem: int precision = to(getNthInt(index - 1u, _param_2)); | T=void * * * * * * * * * * * * * * * DtoDeclarationExp: precision * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = int) * * * * * * * * * * * * * * * * * llvm value for decl: %precision44 = alloca i32, align 4 * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * AssignExp::toElem: precision = to(getNthInt(index - 1u, _param_2)) | (int)(int = int) * * * * * * * * * * * * * * * * * * VarExp::toElem: precision @ int * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('precision' of type 'int') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * CallExp::toElem: to(getNthInt(index - 1u, _param_2)) @ int * * * * * * * * * * * * * * * * * * * VarExp::toElem: to @ pure nothrow @nogc @safe int(int _param_0) * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('to' of type 'pure nothrow @nogc @safe int(int _param_0)') * * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @safe int(int _param_0) * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * CallExp::toElem: getNthInt(index - 1u, _param_2) @ int * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: getNthInt @ pure @safe int(uint index, uint _param_1) * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('getNthInt' of type 'pure @safe int(uint index, uint _param_1)') * * * * * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * * * * * Function type: pure @safe int(uint index, uint _param_1) * * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * * MinExp::toElem: index - 1u @ uint * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: index @ uint * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('index' of type 'uint') * * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 1u @ uint * * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1u @ uint * * * * * * * * * * * * * * * * * * * * * * * * * * * value = i32 1 * * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: _param_2 @ uint * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('_param_2' of type 'uint') * * * * * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * * * * * type: uint * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * lhs: %precision44 = alloca i32, align 4 * * * * * * * * * * * * * * * * * * * rhs: %26 = invoke i32 @_D3std4conv9__T2toTiZ9__T2toTiZ2toFNaNbNiNfiZi(i32 %92) to label %postinvoke46 unwind label %landingPad * * * * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(496) * * * * * * * * * * * * * * CmpExp::toElem: currentArg < index @ bool * * * * * * * * * * * * * * * VarExp::toElem: currentArg @ uint * * * * * * * * * * * * * * * * DtoSymbolAddress ('currentArg' of type 'uint') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * VarExp::toElem: index @ uint * * * * * * * * * * * * * * * * DtoSymbolAddress ('index' of type 'uint') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * type 1: %27 = load i32, i32* %currentArg * * * * * * * * * * * * * * * type 2: %28 = load i32, i32* %index42 * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(496) * * * * * * * * * * * * * * * AssignExp::toElem: currentArg = index | (uint)(uint = uint) * * * * * * * * * * * * * * * * VarExp::toElem: currentArg @ uint * * * * * * * * * * * * * * * * * DtoSymbolAddress ('currentArg' of type 'uint') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * VarExp::toElem: index @ uint * * * * * * * * * * * * * * * * * DtoSymbolAddress ('index' of type 'uint') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * lhs: %currentArg = alloca i32, align 4 * * * * * * * * * * * * * * * * * rhs: %96 = load i32, i32* %index42 * * * * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(497) * * * * * * * * * * * * * * CmpExp::toElem: precision >= 0 @ bool * * * * * * * * * * * * * * * VarExp::toElem: precision @ int * * * * * * * * * * * * * * * * DtoSymbolAddress ('precision' of type 'int') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * IntegerExp::toElem: 0 @ int * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0 @ int * * * * * * * * * * * * * * * * * value = i32 0 * * * * * * * * * * * * * * * type 1: %97 = load i32, i32* %precision44 * * * * * * * * * * * * * * * type 2: i32 0 * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(497) * * * * * * * * * * * * * * * AssignExp::toElem: spec.precision = precision | (int)(int = int) * * * * * * * * * * * * * * * * DotVarExp::toElem: spec.precision @ int * * * * * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(497) * * * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.precision: * * * * * * * * * * * * * * * * * * Value: %99 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 1 * * * * * * * * * * * * * * * * VarExp::toElem: precision @ int * * * * * * * * * * * * * * * * * DtoSymbolAddress ('precision' of type 'int') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * lhs: %99 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 1 * * * * * * * * * * * * * * * * * rhs: %100 = load i32, i32* %precision44 * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(499) * * * * * * * * * * * * * * * AssignExp::toElem: spec.precision = 2147483646 | (int)(int = int) * * * * * * * * * * * * * * * * DotVarExp::toElem: spec.precision @ int * * * * * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(499) * * * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.precision: * * * * * * * * * * * * * * * * * * Value: %101 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 1 * * * * * * * * * * * * * * * * IntegerExp::toElem: 2147483646 @ int * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 2147483646 @ int * * * * * * * * * * * * * * * * * * value = i32 2147483646 * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * lhs: %101 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 1 * * * * * * * * * * * * * * * * * rhs: i32 2147483646 * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(502) * * * * * * * * * * CmpExp::toElem: cast(int)spec.indexStart > 0 @ bool * * * * * * * * * * * CastExp::toElem: cast(int)spec.indexStart @ int * * * * * * * * * * * * DotVarExp::toElem: spec.indexStart @ ubyte * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(502) * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.indexStart: * * * * * * * * * * * * * * Value: %85 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 3 * * * * * * * * * * * * Casting from 'ubyte' to 'int' * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * IntegerExp::toElem: 0 @ int * * * * * * * * * * * * IntegerExp::toConstElem: 0 @ int * * * * * * * * * * * * * value = i32 0 * * * * * * * * * * * type 1: %87 = zext i8 %86 to i32 * * * * * * * * * * * type 2: i32 0 * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(503) * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(503) * * * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(505) * * * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(505) * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(505) * * * * * * * * * * * * * * * DeclarationExp::toElem: int __key3320 = cast(int)spec.indexStart - 1; | T=void * * * * * * * * * * * * * * * * DtoDeclarationExp: __key3320 * * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = int) * * * * * * * * * * * * * * * * * * llvm value for decl: %__key3320 = alloca i32, align 4 * * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * * AssignExp::toElem: __key3320 = cast(int)spec.indexStart - 1 | (int)(int = int) * * * * * * * * * * * * * * * * * * * VarExp::toElem: __key3320 @ int * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__key3320' of type 'int') * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * MinExp::toElem: cast(int)spec.indexStart - 1 @ int * * * * * * * * * * * * * * * * * * * * CastExp::toElem: cast(int)spec.indexStart @ int * * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: spec.indexStart @ ubyte * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(505) * * * * * * * * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.indexStart: * * * * * * * * * * * * * * * * * * * * * * * Value: %106 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 3 * * * * * * * * * * * * * * * * * * * * * Casting from 'ubyte' to 'int' * * * * * * * * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 1 @ int * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1 @ int * * * * * * * * * * * * * * * * * * * * * * value = i32 1 * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * lhs: %__key3320 = alloca i32, align 4 * * * * * * * * * * * * * * * * * * * * rhs: %109 = sub i32 %108, 1 * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(505) * * * * * * * * * * * * * * * DeclarationExp::toElem: int __limit3321 = cast(int)spec.indexEnd; | T=void * * * * * * * * * * * * * * * * DtoDeclarationExp: __limit3321 * * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = int) * * * * * * * * * * * * * * * * * * llvm value for decl: %__limit3321 = alloca i32, align 4 * * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * * AssignExp::toElem: __limit3321 = cast(int)spec.indexEnd | (int)(int = int) * * * * * * * * * * * * * * * * * * * VarExp::toElem: __limit3321 @ int * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__limit3321' of type 'int') * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * CastExp::toElem: cast(int)spec.indexEnd @ int * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: spec.indexEnd @ ubyte * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(505) * * * * * * * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.indexEnd: * * * * * * * * * * * * * * * * * * * * * * Value: %110 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 4 * * * * * * * * * * * * * * * * * * * * Casting from 'ubyte' to 'int' * * * * * * * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * lhs: %__limit3321 = alloca i32, align 4 * * * * * * * * * * * * * * * * * * * * rhs: %112 = zext i8 %111 to i32 * * * * * * * * * * * * * * ForStatement::toIR(): /usr/include/dlang/ldc/std/format.d(505) * * * * * * * * * * * * * * * CmpExp::toElem: __key3320 < __limit3321 @ bool * * * * * * * * * * * * * * * * VarExp::toElem: __key3320 @ int * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__key3320' of type 'int') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * VarExp::toElem: __limit3321 @ int * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__limit3321' of type 'int') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * type 1: %113 = load i32, i32* %__key3320 * * * * * * * * * * * * * * * * type 2: %114 = load i32, i32* %__limit3321 * * * * * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(505) * * * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(505) * * * * * * * * * * * * * * * * * DeclarationExp::toElem: int i = __key3320; | T=void * * * * * * * * * * * * * * * * * * DtoDeclarationExp: i * * * * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = int) * * * * * * * * * * * * * * * * * * * * llvm value for decl: %i = alloca i32, align 4 * * * * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * * * * AssignExp::toElem: i = __key3320 | (int)(int = int) * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: i @ int * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'int') * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: __key3320 @ int * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__key3320' of type 'int') * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * * * lhs: %i = alloca i32, align 4 * * * * * * * * * * * * * * * * * * * * * * rhs: %116 = load i32, i32* %__key3320 * * * * * * * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(507) * * * * * * * * * * * * * * * * * CmpExp::toElem: 1LU <= cast(ulong)i @ bool * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * * * * * * CastExp::toElem: cast(ulong)i @ ulong * * * * * * * * * * * * * * * * * * * VarExp::toElem: i @ int * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'int') * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * Casting from 'int' to 'ulong' * * * * * * * * * * * * * * * * * * * * cast to: i64 * * * * * * * * * * * * * * * * * * type 1: i64 1 * * * * * * * * * * * * * * * * * * type 2: %118 = sext i32 %117 to i64 * * * * * * * * * * * * * * * * * BreakStatement::toIR(): /usr/include/dlang/ldc/std/format.d(507) * * * * * * * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(508) * * * * * * * * * * * * * * * * * VarExp::toElem: __ctfe @ bool * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__ctfe' of type 'bool') * * * * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(509) * * * * * * * * * * * * * * * * * * CallExp::toElem: formatNth((LockingTextWriter __copytmp3328 = (__copytmp3328 = w).__postblit(); , __copytmp3328), spec, cast(ulong)i, _param_2) @ void * * * * * * * * * * * * * * * * * * * VarExp::toElem: formatNth @ @safe void(LockingTextWriter w, ref FormatSpec!char f, ulong index, uint _param_3) * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('formatNth' of type '@safe void(LockingTextWriter w, ref FormatSpec!char f, ulong index, uint _param_3)') * * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(@safe void(LockingTextWriter w, ref FormatSpec!char f, ulong index, uint _param_3)) * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * * * Final function type: void (i32, i64, %"std.format.FormatSpec!char.FormatSpec"*, %std.stdio.File.LockingTextWriter*) * * * * * * * * * * * * * * * * * * * * * DtoResolveFunction(std.format.formatNth!(LockingTextWriter, char, uint).formatNth): /usr/include/dlang/ldc/std/format.d(3460) * * * * * * * * * * * * * * * * * * * * * * DtoDeclareFunction(std.format.formatNth!(LockingTextWriter, char, uint).formatNth): /usr/include/dlang/ldc/std/format.d(3460) * * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(@safe void(LockingTextWriter w, ref FormatSpec!char f, ulong index, uint _param_3)) * * * * * * * * * * * * * * * * * * * * * * * func = declare void @_D3std6format54__T9formatNthTS3std5stdio4File17LockingTextWriterTaTkZ9formatNthFNfS3std5stdio4File17LockingTextWriterKS3std6format18__T10FormatSpecTaZ10FormatSpecmkZv(i32, i64, %"std.format.FormatSpec!char.FormatSpec"*, %std.stdio.File.LockingTextWriter*) * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * Building type: @safe void(LockingTextWriter w, ref FormatSpec!char f, ulong index, uint _param_3) * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(@safe void(LockingTextWriter w, ref FormatSpec!char f, ulong index, uint _param_3)) * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * * * Final function type: void (i32, i64, %"std.format.FormatSpec!char.FormatSpec"*, %std.stdio.File.LockingTextWriter*) * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * * Function type: @safe void(LockingTextWriter w, ref FormatSpec!char f, ulong index, uint _param_3) * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * CommaExp::toElem: LockingTextWriter __copytmp3328 = (__copytmp3328 = w).__postblit(); , __copytmp3328 @ LockingTextWriter * * * * * * * * * * * * * * * * * * * * * * DeclarationExp::toElem: LockingTextWriter __copytmp3328 = (__copytmp3328 = w).__postblit(); | T=void * * * * * * * * * * * * * * * * * * * * * * * DtoDeclarationExp: __copytmp3328 * * * * * * * * * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = LockingTextWriter) * * * * * * * * * * * * * * * * * * * * * * * * * llvm value for decl: %__copytmp3328 = alloca %std.stdio.File.LockingTextWriter, align 8 * * * * * * * * * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * * * * * * * * * CallExp::toElem: (__copytmp3328 = w).__postblit() @ void * * * * * * * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: (__copytmp3328 = w).__postblit @ @trusted void() * * * * * * * * * * * * * * * * * * * * * * * * * * * AssignExp::toElem: __copytmp3328 = w | (LockingTextWriter)(LockingTextWriter = LockingTextWriter) * * * * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: __copytmp3328 @ LockingTextWriter * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__copytmp3328' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: w @ LockingTextWriter * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * type: LockingTextWriter * * * * * * * * * * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * * * * * * * * * * * %__copytmp3328 = alloca %std.stdio.File.LockingTextWriter, align 8 * * * * * * * * * * * * * * * * * * * * * * * * * * * Function type: @trusted void() * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: __copytmp3328 @ LockingTextWriter * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__copytmp3328' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(509) * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * CastExp::toElem: cast(ulong)i @ ulong * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: i @ int * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'int') * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * Casting from 'int' to 'ulong' * * * * * * * * * * * * * * * * * * * * * * * cast to: i64 * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: _param_2 @ uint * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('_param_2' of type 'uint') * * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * * type: uint * * * * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(511) * * * * * * * * * * * * * * * * * * CallExp::toElem: (*funs[cast(ulong)i])((LockingTextWriter __copytmp3329 = (__copytmp3329 = w).__postblit(); , __copytmp3329), argsAddresses[cast(ulong)i], spec) @ void * * * * * * * * * * * * * * * * * * * PtrExp::toElem: *funs[cast(ulong)i] @ pure nothrow @safe void(LockingTextWriter, const(void)*, ref FormatSpec!char) * * * * * * * * * * * * * * * * * * * * IndexExp::toElem: funs[cast(ulong)i] @ void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: funs @ void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe[1] * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('funs' of type 'void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe[1]') * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * CastExp::toElem: cast(ulong)i @ ulong * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: i @ int * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'int') * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * Casting from 'int' to 'ulong' * * * * * * * * * * * * * * * * * * * * * * * cast to: i64 * * * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * * Function type: pure nothrow @safe void(LockingTextWriter, const(void)*, ref FormatSpec!char) * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * CommaExp::toElem: LockingTextWriter __copytmp3329 = (__copytmp3329 = w).__postblit(); , __copytmp3329 @ LockingTextWriter * * * * * * * * * * * * * * * * * * * * * * DeclarationExp::toElem: LockingTextWriter __copytmp3329 = (__copytmp3329 = w).__postblit(); | T=void * * * * * * * * * * * * * * * * * * * * * * * DtoDeclarationExp: __copytmp3329 * * * * * * * * * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = LockingTextWriter) * * * * * * * * * * * * * * * * * * * * * * * * * llvm value for decl: %__copytmp3329 = alloca %std.stdio.File.LockingTextWriter, align 8 * * * * * * * * * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * * * * * * * * * CallExp::toElem: (__copytmp3329 = w).__postblit() @ void * * * * * * * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: (__copytmp3329 = w).__postblit @ @trusted void() * * * * * * * * * * * * * * * * * * * * * * * * * * * AssignExp::toElem: __copytmp3329 = w | (LockingTextWriter)(LockingTextWriter = LockingTextWriter) * * * * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: __copytmp3329 @ LockingTextWriter * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__copytmp3329' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: w @ LockingTextWriter * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * type: LockingTextWriter * * * * * * * * * * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * * * * * * * * * * * %__copytmp3329 = alloca %std.stdio.File.LockingTextWriter, align 8 * * * * * * * * * * * * * * * * * * * * * * * * * * * Function type: @trusted void() * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: __copytmp3329 @ LockingTextWriter * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__copytmp3329' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * IndexExp::toElem: argsAddresses[cast(ulong)i] @ const(void)* * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: argsAddresses @ const(void)*[1] * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('argsAddresses' of type 'const(void)*[1]') * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * CastExp::toElem: cast(ulong)i @ ulong * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: i @ int * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'int') * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * Casting from 'int' to 'ulong' * * * * * * * * * * * * * * * * * * * * * * * * cast to: i64 * * * * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(511) * * * * * * * * * * * * * * * AddAssignExp::toElem: __key3320 += 1 @ int * * * * * * * * * * * * * * * * Caching l-value of __key3320 += 1 => __key3320 * * * * * * * * * * * * * * * * * VarExp::toElem: __key3320 @ int * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__key3320' of type 'int') * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * AddExp::toElem: __key3320 + 1 @ int * * * * * * * * * * * * * * * * * VarExp::toElem: __key3320 @ int * * * * * * * * * * * * * * * * * IntegerExp::toElem: 1 @ int * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1 @ int * * * * * * * * * * * * * * * * * * * value = i32 1 * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * lhs: %__key3320 = alloca i32, align 4 * * * * * * * * * * * * * * * * * rhs: %126 = add i32 %125, 1 * * * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(513) * * * * * * * * * * * * * CmpExp::toElem: currentArg < cast(uint)cast(int)spec.indexEnd @ bool * * * * * * * * * * * * * * VarExp::toElem: currentArg @ uint * * * * * * * * * * * * * * * DtoSymbolAddress ('currentArg' of type 'uint') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * CastExp::toElem: cast(uint)cast(int)spec.indexEnd @ uint * * * * * * * * * * * * * * * CastExp::toElem: cast(int)spec.indexEnd @ int * * * * * * * * * * * * * * * * DotVarExp::toElem: spec.indexEnd @ ubyte * * * * * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(513) * * * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.indexEnd: * * * * * * * * * * * * * * * * * * Value: %127 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 4 * * * * * * * * * * * * * * * * Casting from 'ubyte' to 'int' * * * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * * * * Casting from 'int' to 'uint' * * * * * * * * * * * * * * type 1: %130 = load i32, i32* %currentArg * * * * * * * * * * * * * * type 2: %129 = zext i8 %128 to i32 * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(513) * * * * * * * * * * * * * * AssignExp::toElem: currentArg = cast(uint)spec.indexEnd | (uint)(uint = uint) * * * * * * * * * * * * * * * VarExp::toElem: currentArg @ uint * * * * * * * * * * * * * * * * DtoSymbolAddress ('currentArg' of type 'uint') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * CastExp::toElem: cast(uint)spec.indexEnd @ uint * * * * * * * * * * * * * * * * DotVarExp::toElem: spec.indexEnd @ ubyte * * * * * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(513) * * * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.indexEnd: * * * * * * * * * * * * * * * * * * Value: %142 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 4 * * * * * * * * * * * * * * * * Casting from 'ubyte' to 'uint' * * * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * lhs: %currentArg = alloca i32, align 4 * * * * * * * * * * * * * * * * rhs: %144 = zext i8 %143 to i32 * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(516) * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(516) * * * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(517) * * * * * * * * * * * * * VarExp::toElem: __ctfe @ bool * * * * * * * * * * * * * * DtoSymbolAddress ('__ctfe' of type 'bool') * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(518) * * * * * * * * * * * * * * CallExp::toElem: formatNth((LockingTextWriter __copytmp3330 = (__copytmp3330 = w).__postblit(); , __copytmp3330), spec, cast(ulong)currentArg, _param_2) @ void * * * * * * * * * * * * * * * VarExp::toElem: formatNth @ @safe void(LockingTextWriter w, ref FormatSpec!char f, ulong index, uint _param_3) * * * * * * * * * * * * * * * * DtoSymbolAddress ('formatNth' of type '@safe void(LockingTextWriter w, ref FormatSpec!char f, ulong index, uint _param_3)') * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * Function type: @safe void(LockingTextWriter w, ref FormatSpec!char f, ulong index, uint _param_3) * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * CommaExp::toElem: LockingTextWriter __copytmp3330 = (__copytmp3330 = w).__postblit(); , __copytmp3330 @ LockingTextWriter * * * * * * * * * * * * * * * * * * DeclarationExp::toElem: LockingTextWriter __copytmp3330 = (__copytmp3330 = w).__postblit(); | T=void * * * * * * * * * * * * * * * * * * * DtoDeclarationExp: __copytmp3330 * * * * * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = LockingTextWriter) * * * * * * * * * * * * * * * * * * * * * llvm value for decl: %__copytmp3330 = alloca %std.stdio.File.LockingTextWriter, align 8 * * * * * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * * * * * CallExp::toElem: (__copytmp3330 = w).__postblit() @ void * * * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: (__copytmp3330 = w).__postblit @ @trusted void() * * * * * * * * * * * * * * * * * * * * * * * AssignExp::toElem: __copytmp3330 = w | (LockingTextWriter)(LockingTextWriter = LockingTextWriter) * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: __copytmp3330 @ LockingTextWriter * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__copytmp3330' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: w @ LockingTextWriter * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * * * * * type: LockingTextWriter * * * * * * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * * * * * * * %__copytmp3330 = alloca %std.stdio.File.LockingTextWriter, align 8 * * * * * * * * * * * * * * * * * * * * * * * Function type: @trusted void() * * * * * * * * * * * * * * * * * * VarExp::toElem: __copytmp3330 @ LockingTextWriter * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__copytmp3330' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(518) * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * CastExp::toElem: cast(ulong)currentArg @ ulong * * * * * * * * * * * * * * * * * * VarExp::toElem: currentArg @ uint * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('currentArg' of type 'uint') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * Casting from 'uint' to 'ulong' * * * * * * * * * * * * * * * * * * * cast to: i64 * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * VarExp::toElem: _param_2 @ uint * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('_param_2' of type 'uint') * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * type: uint * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(520) * * * * * * * * * * * * * * CallExp::toElem: (*funs[cast(ulong)currentArg])((LockingTextWriter __copytmp3331 = (__copytmp3331 = w).__postblit(); , __copytmp3331), argsAddresses[cast(ulong)currentArg], spec) @ void * * * * * * * * * * * * * * * PtrExp::toElem: *funs[cast(ulong)currentArg] @ pure nothrow @safe void(LockingTextWriter, const(void)*, ref FormatSpec!char) * * * * * * * * * * * * * * * * IndexExp::toElem: funs[cast(ulong)currentArg] @ void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe * * * * * * * * * * * * * * * * * VarExp::toElem: funs @ void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe[1] * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('funs' of type 'void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe[1]') * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * CastExp::toElem: cast(ulong)currentArg @ ulong * * * * * * * * * * * * * * * * * * VarExp::toElem: currentArg @ uint * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('currentArg' of type 'uint') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * Casting from 'uint' to 'ulong' * * * * * * * * * * * * * * * * * * * cast to: i64 * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * Function type: pure nothrow @safe void(LockingTextWriter, const(void)*, ref FormatSpec!char) * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * CommaExp::toElem: LockingTextWriter __copytmp3331 = (__copytmp3331 = w).__postblit(); , __copytmp3331 @ LockingTextWriter * * * * * * * * * * * * * * * * * * DeclarationExp::toElem: LockingTextWriter __copytmp3331 = (__copytmp3331 = w).__postblit(); | T=void * * * * * * * * * * * * * * * * * * * DtoDeclarationExp: __copytmp3331 * * * * * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = LockingTextWriter) * * * * * * * * * * * * * * * * * * * * * llvm value for decl: %__copytmp3331 = alloca %std.stdio.File.LockingTextWriter, align 8 * * * * * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * * * * * CallExp::toElem: (__copytmp3331 = w).__postblit() @ void * * * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: (__copytmp3331 = w).__postblit @ @trusted void() * * * * * * * * * * * * * * * * * * * * * * * AssignExp::toElem: __copytmp3331 = w | (LockingTextWriter)(LockingTextWriter = LockingTextWriter) * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: __copytmp3331 @ LockingTextWriter * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__copytmp3331' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: w @ LockingTextWriter * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * * * * * type: LockingTextWriter * * * * * * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * * * * * * * %__copytmp3331 = alloca %std.stdio.File.LockingTextWriter, align 8 * * * * * * * * * * * * * * * * * * * * * * * Function type: @trusted void() * * * * * * * * * * * * * * * * * * VarExp::toElem: __copytmp3331 @ LockingTextWriter * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__copytmp3331' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * IndexExp::toElem: argsAddresses[cast(ulong)currentArg] @ const(void)* * * * * * * * * * * * * * * * * * * VarExp::toElem: argsAddresses @ const(void)*[1] * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('argsAddresses' of type 'const(void)*[1]') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * CastExp::toElem: cast(ulong)currentArg @ ulong * * * * * * * * * * * * * * * * * * * VarExp::toElem: currentArg @ uint * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('currentArg' of type 'uint') * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * Casting from 'uint' to 'ulong' * * * * * * * * * * * * * * * * * * * * cast to: i64 * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(520) * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(521) * * * * * * * * * * * * * AddAssignExp::toElem: currentArg += 1u @ uint * * * * * * * * * * * * * * Caching l-value of currentArg += 1u => currentArg * * * * * * * * * * * * * * * VarExp::toElem: currentArg @ uint * * * * * * * * * * * * * * * * DtoSymbolAddress ('currentArg' of type 'uint') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * AddExp::toElem: currentArg + 1u @ uint * * * * * * * * * * * * * * * VarExp::toElem: currentArg @ uint * * * * * * * * * * * * * * * IntegerExp::toElem: 1u @ uint * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1u @ uint * * * * * * * * * * * * * * * * * value = i32 1 * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * lhs: %currentArg = alloca i32, align 4 * * * * * * * * * * * * * * * rhs: %155 = add i32 %154, 1 * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/format.d(524) * * * * * * * VarExp::toElem: currentArg @ uint * * * * * * * * DtoSymbolAddress ('currentArg' of type 'uint') * * * * * * * * * a normal variable * * * * * * * return value is '0x12945a48' * TemplateInstance::codegen: 'std.format.formatGeneric!(LockingTextWriter, uint, char)' * * DtoDefineFunction(std.format.formatGeneric!(LockingTextWriter, uint, char).formatGeneric): /usr/include/dlang/ldc/std/format.d(3455) * * * Doing function body for: formatGeneric * * * DtoCreateNestedContext for formatGeneric * * * * DtoCreateNestedContextType for std.format.formatGeneric!(LockingTextWriter, uint, char).formatGeneric * * * TryFinallyStatement::toIR(): * * * * ExpStatement::toIR(): * * * * * CallExp::toElem: w.~this() @ void * * * * * * DotVarExp::toElem: w.~this @ @trusted void() * * * * * * * VarExp::toElem: w @ LockingTextWriter * * * * * * * * DtoSymbolAddress ('w' of type 'LockingTextWriter') * * * * * * * * * function param * * * * * * * * * type: LockingTextWriter * * * * * * DtoCallFunction() * * * * * * * doing normal arguments * * * * * * * Arguments so far: (1) * * * * * * * * %std.stdio.File.LockingTextWriter* %w_arg * * * * * * * Function type: @trusted void() * * * * CompoundStatement::toIR(): * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3457) * * * * * * CallExp::toElem: formatValue((LockingTextWriter __copytmp3314 = (__copytmp3314 = w).__postblit(); , __copytmp3314), *cast(uint*)arg, f) @ void * * * * * * * VarExp::toElem: formatValue @ @safe void(LockingTextWriter w, uint obj, ref FormatSpec!char f) * * * * * * * * DtoSymbolAddress ('formatValue' of type '@safe void(LockingTextWriter w, uint obj, ref FormatSpec!char f)') * * * * * * * * * FuncDeclaration * * * * * * * DtoCallFunction() * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (0) * * * * * * * * Function type: @safe void(LockingTextWriter w, uint obj, ref FormatSpec!char f) * * * * * * * * DtoArgument * * * * * * * * * CommaExp::toElem: LockingTextWriter __copytmp3314 = (__copytmp3314 = w).__postblit(); , __copytmp3314 @ LockingTextWriter * * * * * * * * * * DeclarationExp::toElem: LockingTextWriter __copytmp3314 = (__copytmp3314 = w).__postblit(); | T=void * * * * * * * * * * * DtoDeclarationExp: __copytmp3314 * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * DtoVarDeclaration(vdtype = LockingTextWriter) * * * * * * * * * * * * * llvm value for decl: %__copytmp3314 = alloca %std.stdio.File.LockingTextWriter, align 8 * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * CallExp::toElem: (__copytmp3314 = w).__postblit() @ void * * * * * * * * * * * * * * DotVarExp::toElem: (__copytmp3314 = w).__postblit @ @trusted void() * * * * * * * * * * * * * * * AssignExp::toElem: __copytmp3314 = w | (LockingTextWriter)(LockingTextWriter = LockingTextWriter) * * * * * * * * * * * * * * * * VarExp::toElem: __copytmp3314 @ LockingTextWriter * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__copytmp3314' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * VarExp::toElem: w @ LockingTextWriter * * * * * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * type: LockingTextWriter * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * %__copytmp3314 = alloca %std.stdio.File.LockingTextWriter, align 8 * * * * * * * * * * * * * * * Function type: @trusted void() * * * * * * * * * * VarExp::toElem: __copytmp3314 @ LockingTextWriter * * * * * * * * * * * DtoSymbolAddress ('__copytmp3314' of type 'LockingTextWriter') * * * * * * * * * * * * a normal variable * * * * * * * * DtoArgument * * * * * * * * * PtrExp::toElem: *cast(uint*)arg @ uint * * * * * * * * * * CastExp::toElem: cast(uint*)arg @ uint* * * * * * * * * * * * VarExp::toElem: arg @ const(void)* * * * * * * * * * * * * DtoSymbolAddress ('arg' of type 'const(void)*') * * * * * * * * * * * * * function param * * * * * * * * * * * * * type: const(void)* * * * * * * * * * * * Casting from 'const(void)*' to 'uint*' * * * * * * * * * * * * src: %3 = load i8*, i8** %arg * * * * * * * * * * * * to type: i32* * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: f @ FormatSpec!char * * * * * * * * * * DtoSymbolAddress ('f' of type 'FormatSpec!char') * * * * * * * * * * * function param * * * * * * * * * * * type: FormatSpec!char * TemplateInstance::codegen: 'std.format.formattedWrite!(LockingTextWriter, char, uint).formattedWrite.__lambda6!uint' * * DtoDefineFunction(std.format.formattedWrite!(LockingTextWriter, char, uint).formattedWrite.__lambda6): /usr/include/dlang/ldc/std/format.d(437) * TemplateInstance::codegen: 'std.format.formatNth!(LockingTextWriter, char, uint)' * * DtoDefineFunction(std.format.formatNth!(LockingTextWriter, char, uint).formatNth): /usr/include/dlang/ldc/std/format.d(3460) * * * Doing function body for: formatNth * * * DtoCreateNestedContext for formatNth * * * * DtoCreateNestedContextType for std.format.formatNth!(LockingTextWriter, char, uint).formatNth * * * TryFinallyStatement::toIR(): * * * * ExpStatement::toIR(): * * * * * CallExp::toElem: w.~this() @ void * * * * * * DotVarExp::toElem: w.~this @ @trusted void() * * * * * * * VarExp::toElem: w @ LockingTextWriter * * * * * * * * DtoSymbolAddress ('w' of type 'LockingTextWriter') * * * * * * * * * function param * * * * * * * * * type: LockingTextWriter * * * * * * DtoCallFunction() * * * * * * * doing normal arguments * * * * * * * Arguments so far: (1) * * * * * * * * %std.stdio.File.LockingTextWriter* %w_arg * * * * * * * Function type: @trusted void() * * * * CompoundStatement::toIR(): * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3461) * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3463) * * * * * * * DeclarationExp::toElem: static template gencode(ulong count) | T=void * * * * * * * * DtoDeclarationExp: __anonymous * * * * * * * * * AttribDeclaration * * * * * * * * * DtoDeclarationExp: gencode(ulong count)() * * * * * * * * * * Ignoring Symbol: template * * * * * * SwitchStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3477) * * * * * * * has default * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3478) * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3478) * * * * * * * * * CaseStatement::toIR(): /usr/include/dlang/ldc/std/format.d-mixin-3479(3479) * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * value = i64 0 * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d-mixin-3479(3479) * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d-mixin-3479(3479) * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d-mixin-3479(3479) * * * * * * * * * * * * * CallExp::toElem: formatValue((LockingTextWriter __copytmp3327 = (__copytmp3327 = w).__postblit(); , __copytmp3327), _param_3, f) @ void * * * * * * * * * * * * * * VarExp::toElem: formatValue @ @safe void(LockingTextWriter w, uint obj, ref FormatSpec!char f) * * * * * * * * * * * * * * * DtoSymbolAddress ('formatValue' of type '@safe void(LockingTextWriter w, uint obj, ref FormatSpec!char f)') * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * Function type: @safe void(LockingTextWriter w, uint obj, ref FormatSpec!char f) * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * CommaExp::toElem: LockingTextWriter __copytmp3327 = (__copytmp3327 = w).__postblit(); , __copytmp3327 @ LockingTextWriter * * * * * * * * * * * * * * * * * DeclarationExp::toElem: LockingTextWriter __copytmp3327 = (__copytmp3327 = w).__postblit(); | T=void * * * * * * * * * * * * * * * * * * DtoDeclarationExp: __copytmp3327 * * * * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = LockingTextWriter) * * * * * * * * * * * * * * * * * * * * llvm value for decl: %__copytmp3327 = alloca %std.stdio.File.LockingTextWriter, align 8 * * * * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * * * * CallExp::toElem: (__copytmp3327 = w).__postblit() @ void * * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: (__copytmp3327 = w).__postblit @ @trusted void() * * * * * * * * * * * * * * * * * * * * * * AssignExp::toElem: __copytmp3327 = w | (LockingTextWriter)(LockingTextWriter = LockingTextWriter) * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: __copytmp3327 @ LockingTextWriter * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__copytmp3327' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: w @ LockingTextWriter * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * * * * type: LockingTextWriter * * * * * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * * * * * * %__copytmp3327 = alloca %std.stdio.File.LockingTextWriter, align 8 * * * * * * * * * * * * * * * * * * * * * * Function type: @trusted void() * * * * * * * * * * * * * * * * * VarExp::toElem: __copytmp3327 @ LockingTextWriter * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__copytmp3327' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * VarExp::toElem: _param_3 @ uint * * * * * * * * * * * * * * * * * DtoSymbolAddress ('_param_3' of type 'uint') * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * type: uint * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * VarExp::toElem: f @ FormatSpec!char * * * * * * * * * * * * * * * * * DtoSymbolAddress ('f' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * type: FormatSpec!char * * * * * * * * * * * * BreakStatement::toIR(): /usr/include/dlang/ldc/std/format.d-mixin-3479(3479) * * * * * * * * * DefaultStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3481) * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3481) * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3482) * * * * * * * * * * * * HaltExp::toElem: halt * * * * * * * VarExp::toElem: index @ ulong * * * * * * * * DtoSymbolAddress ('index' of type 'ulong') * * * * * * * * * function param * * * * * * * * * type: ulong * TemplateInstance::codegen: 'std.format.formatNth!(LockingTextWriter, char, uint).formatNth.gencode!1LU' * * DtoDefineFunction(std.format.formatNth!(LockingTextWriter, char, uint).formatNth.gencode!1LU.gencode): /usr/include/dlang/ldc/std/format.d(3463) * * * DtoFunctionType(pure nothrow @safe string()) * * * * x86-64 ABI: Transforming return type * * * * x86-64 ABI: Transforming argument types * * * * Final function type: { i64, i8* } () * * * DtoResolveFunction(std.format.formatNth!(LockingTextWriter, char, uint).formatNth.gencode!1LU.gencode): /usr/include/dlang/ldc/std/format.d(3463) * * * * DtoDeclareFunction(std.format.formatNth!(LockingTextWriter, char, uint).formatNth.gencode!1LU.gencode): /usr/include/dlang/ldc/std/format.d(3463) * * * * * DtoFunctionType(pure nothrow @safe string()) * * * * * func = declare { i64, i8* } @_D3std6format54__T9formatNthTS3std5stdio4File17LockingTextWriterTaTkZ9formatNthFS3std5stdio4File17LockingTextWriterKS3std6format18__T10FormatSpecTaZ10FormatSpecmkZ16__T7gencodeVmi1Z7gencodeFNaNbNfZAya() * * * Doing function body for: gencode * * * DtoCreateNestedContext for gencode * * * * DtoCreateNestedContextType for std.format.formatNth!(LockingTextWriter, char, uint).formatNth.gencode!1LU.gencode * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3464) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3465) * * * * * * DeclarationExp::toElem: string result = null; | T=void * * * * * * * DtoDeclarationExp: result * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = string) * * * * * * * * * llvm value for decl: %result = alloca { i64, i8* }, align 8 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: result = null | (string)(string = string) * * * * * * * * * * VarExp::toElem: result @ string * * * * * * * * * * * DtoSymbolAddress ('result' of type 'string') * * * * * * * * * * * * a normal variable * * * * * * * * * * NullExp::toElem(type=string): null * * * * * * * * * * * NullExp::toConstElem(type=string): null * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * DtoSetArrayToNull * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3466) * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3466) * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3466) * * * * * * * * DeclarationExp::toElem: ulong __key3322 = 0LU; | T=void * * * * * * * * * DtoDeclarationExp: __key3322 * * * * * * * * * * VarDeclaration * * * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * * * llvm value for decl: %__key3322 = alloca i64, align 8 * * * * * * * * * * * expression initializer * * * * * * * * * * * AssignExp::toElem: __key3322 = 0LU | (ulong)(ulong = ulong) * * * * * * * * * * * * VarExp::toElem: __key3322 @ ulong * * * * * * * * * * * * * DtoSymbolAddress ('__key3322' of type 'ulong') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * lhs: %__key3322 = alloca i64, align 8 * * * * * * * * * * * * * rhs: i64 0 * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3466) * * * * * * * * DeclarationExp::toElem: ulong __limit3323 = 1LU; | T=void * * * * * * * * * DtoDeclarationExp: __limit3323 * * * * * * * * * * VarDeclaration * * * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * * * llvm value for decl: %__limit3323 = alloca i64, align 8 * * * * * * * * * * * expression initializer * * * * * * * * * * * AssignExp::toElem: __limit3323 = 1LU | (ulong)(ulong = ulong) * * * * * * * * * * * * VarExp::toElem: __limit3323 @ ulong * * * * * * * * * * * * * DtoSymbolAddress ('__limit3323' of type 'ulong') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * lhs: %__limit3323 = alloca i64, align 8 * * * * * * * * * * * * * rhs: i64 1 * * * * * * * ForStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3466) * * * * * * * * CmpExp::toElem: __key3322 < __limit3323 @ bool * * * * * * * * * VarExp::toElem: __key3322 @ ulong * * * * * * * * * * DtoSymbolAddress ('__key3322' of type 'ulong') * * * * * * * * * * * a normal variable * * * * * * * * * VarExp::toElem: __limit3323 @ ulong * * * * * * * * * * DtoSymbolAddress ('__limit3323' of type 'ulong') * * * * * * * * * * * a normal variable * * * * * * * * * type 1: %1 = load i64, i64* %__key3322 * * * * * * * * * type 2: %2 = load i64, i64* %__limit3323 * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3466) * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3466) * * * * * * * * * * DeclarationExp::toElem: ulong n = __key3322; | T=void * * * * * * * * * * * DtoDeclarationExp: n * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * * * * * llvm value for decl: %n = alloca i64, align 8 * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * AssignExp::toElem: n = __key3322 | (ulong)(ulong = ulong) * * * * * * * * * * * * * * VarExp::toElem: n @ ulong * * * * * * * * * * * * * * * DtoSymbolAddress ('n' of type 'ulong') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * VarExp::toElem: __key3322 @ ulong * * * * * * * * * * * * * * * DtoSymbolAddress ('__key3322' of type 'ulong') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * lhs: %n = alloca i64, align 8 * * * * * * * * * * * * * * * rhs: %4 = load i64, i64* %__key3322 * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3468) * * * * * * * * * * DeclarationExp::toElem: string num = to(n); | T=void * * * * * * * * * * * DtoDeclarationExp: num * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * DtoVarDeclaration(vdtype = string) * * * * * * * * * * * * * llvm value for decl: %num = alloca { i64, i8* }, align 8 * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * AssignExp::toElem: num = to(n) | (string)(string = string) * * * * * * * * * * * * * * VarExp::toElem: num @ string * * * * * * * * * * * * * * * DtoSymbolAddress ('num' of type 'string') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * CallExp::toElem: to(n) @ string * * * * * * * * * * * * * * * VarExp::toElem: to @ pure nothrow @safe string(ulong _param_0) * * * * * * * * * * * * * * * * DtoSymbolAddress ('to' of type 'pure nothrow @safe string(ulong _param_0)') * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * Function type: pure nothrow @safe string(ulong _param_0) * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * VarExp::toElem: n @ ulong * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('n' of type 'ulong') * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * SetArray * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3469) * * * * * * * * * * CatAssignExp::toElem: result ~= "case " ~ num ~ ": formatValue(w, args[" ~ num ~ "], f); break;" @ string * * * * * * * * * * * VarExp::toElem: result @ string * * * * * * * * * * * * DtoSymbolAddress ('result' of type 'string') * * * * * * * * * * * * * a normal variable * * * * * * * * * * * DtoCatAssignArray * * * * * * * * * * * * CatExp::toElem: "case " ~ num ~ ": formatValue(w, args[" ~ num ~ "], f); break;" @ string * * * * * * * * * * * * * DtoCatAssignArray * * * * * * * * * * * * * * StringExp::toElem: "], f); break;" @ string * * * * * * * * * * * * * * VarExp::toElem: num @ string * * * * * * * * * * * * * * * DtoSymbolAddress ('num' of type 'string') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * StringExp::toElem: ": formatValue(w, args[" @ string * * * * * * * * * * * * * * VarExp::toElem: num @ string * * * * * * * * * * * * * * * DtoSymbolAddress ('num' of type 'string') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * StringExp::toElem: "case " @ string * * * * * * * * * * * * * * DtoTypeInfoOf(type = 'string', base='1') * * * * * * * * * * * * * * * Type::getTypeInfo(): string * * * * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(string)) * * * * * * * * * * * * DtoTypeInfoOf(type = 'string', base='1') * * * * * * * * * * * * * Type::getTypeInfo(): string * * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(string)) * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * SetArray * * * * * * * * AddAssignExp::toElem: __key3322 += 1LU @ ulong * * * * * * * * * Caching l-value of __key3322 += 1LU => __key3322 * * * * * * * * * * VarExp::toElem: __key3322 @ ulong * * * * * * * * * * * DtoSymbolAddress ('__key3322' of type 'ulong') * * * * * * * * * * * * a normal variable * * * * * * * * * AddExp::toElem: __key3322 + 1LU @ ulong * * * * * * * * * * VarExp::toElem: __key3322 @ ulong * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * value = i64 1 * * * * * * * * * DtoAssign() * * * * * * * * * * lhs: %__key3322 = alloca i64, align 8 * * * * * * * * * * rhs: %21 = add i64 %20, 1 * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3474) * * * * * * VarExp::toElem: result @ string * * * * * * * DtoSymbolAddress ('result' of type 'string') * * * * * * * * a normal variable * * * * * * return value is '0x12955a18' * TemplateInstance::codegen: 'std.format.formattedWrite!(LockingTextWriter, char, string).formattedWrite.__lambda6!string' * * DtoDefineFunction(std.format.formattedWrite!(LockingTextWriter, char, string).formattedWrite.__lambda6): /usr/include/dlang/ldc/std/format.d(437) * TemplateInstance::codegen: 'std.format.formatNth!(LockingTextWriter, char, string)' * * DtoDefineFunction(std.format.formatNth!(LockingTextWriter, char, string).formatNth): /usr/include/dlang/ldc/std/format.d(3460) * * * Doing function body for: formatNth * * * DtoCreateNestedContext for formatNth * * * * DtoCreateNestedContextType for std.format.formatNth!(LockingTextWriter, char, string).formatNth * * * TryFinallyStatement::toIR(): * * * * ExpStatement::toIR(): * * * * * CallExp::toElem: w.~this() @ void * * * * * * DotVarExp::toElem: w.~this @ @trusted void() * * * * * * * VarExp::toElem: w @ LockingTextWriter * * * * * * * * DtoSymbolAddress ('w' of type 'LockingTextWriter') * * * * * * * * * function param * * * * * * * * * type: LockingTextWriter * * * * * * DtoCallFunction() * * * * * * * doing normal arguments * * * * * * * Arguments so far: (1) * * * * * * * * %std.stdio.File.LockingTextWriter* %w_arg * * * * * * * Function type: @trusted void() * * * * CompoundStatement::toIR(): * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3461) * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3463) * * * * * * * DeclarationExp::toElem: static template gencode(ulong count) | T=void * * * * * * * * DtoDeclarationExp: __anonymous * * * * * * * * * AttribDeclaration * * * * * * * * * DtoDeclarationExp: gencode(ulong count)() * * * * * * * * * * Ignoring Symbol: template * * * * * * SwitchStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3477) * * * * * * * has default * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3478) * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3478) * * * * * * * * * CaseStatement::toIR(): /usr/include/dlang/ldc/std/format.d-mixin-3479(3479) * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * value = i64 0 * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d-mixin-3479(3479) * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d-mixin-3479(3479) * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d-mixin-3479(3479) * * * * * * * * * * * * * CallExp::toElem: formatValue((LockingTextWriter __copytmp3352 = (__copytmp3352 = w).__postblit(); , __copytmp3352), _param_3, f) @ void * * * * * * * * * * * * * * VarExp::toElem: formatValue @ @safe void(LockingTextWriter w, string obj, ref FormatSpec!char f) * * * * * * * * * * * * * * * DtoSymbolAddress ('formatValue' of type '@safe void(LockingTextWriter w, string obj, ref FormatSpec!char f)') * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * Function type: @safe void(LockingTextWriter w, string obj, ref FormatSpec!char f) * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * CommaExp::toElem: LockingTextWriter __copytmp3352 = (__copytmp3352 = w).__postblit(); , __copytmp3352 @ LockingTextWriter * * * * * * * * * * * * * * * * * DeclarationExp::toElem: LockingTextWriter __copytmp3352 = (__copytmp3352 = w).__postblit(); | T=void * * * * * * * * * * * * * * * * * * DtoDeclarationExp: __copytmp3352 * * * * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = LockingTextWriter) * * * * * * * * * * * * * * * * * * * * llvm value for decl: %__copytmp3352 = alloca %std.stdio.File.LockingTextWriter, align 8 * * * * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * * * * CallExp::toElem: (__copytmp3352 = w).__postblit() @ void * * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: (__copytmp3352 = w).__postblit @ @trusted void() * * * * * * * * * * * * * * * * * * * * * * AssignExp::toElem: __copytmp3352 = w | (LockingTextWriter)(LockingTextWriter = LockingTextWriter) * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: __copytmp3352 @ LockingTextWriter * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__copytmp3352' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: w @ LockingTextWriter * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * * * * type: LockingTextWriter * * * * * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * * * * * * %__copytmp3352 = alloca %std.stdio.File.LockingTextWriter, align 8 * * * * * * * * * * * * * * * * * * * * * * Function type: @trusted void() * * * * * * * * * * * * * * * * * VarExp::toElem: __copytmp3352 @ LockingTextWriter * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__copytmp3352' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * VarExp::toElem: _param_3 @ string * * * * * * * * * * * * * * * * * DtoSymbolAddress ('_param_3' of type 'string') * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * type: string * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * VarExp::toElem: f @ FormatSpec!char * * * * * * * * * * * * * * * * * DtoSymbolAddress ('f' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * type: FormatSpec!char * * * * * * * * * * * * BreakStatement::toIR(): /usr/include/dlang/ldc/std/format.d-mixin-3479(3479) * * * * * * * * * DefaultStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3481) * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3481) * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3482) * * * * * * * * * * * * HaltExp::toElem: halt * * * * * * * VarExp::toElem: index @ ulong * * * * * * * * DtoSymbolAddress ('index' of type 'ulong') * * * * * * * * * function param * * * * * * * * * type: ulong * TemplateInstance::codegen: 'std.format.formatNth!(LockingTextWriter, char, string).formatNth.gencode!1LU' * * DtoDefineFunction(std.format.formatNth!(LockingTextWriter, char, string).formatNth.gencode!1LU.gencode): /usr/include/dlang/ldc/std/format.d(3463) * * * DtoFunctionType(pure nothrow @safe string()) * * * * x86-64 ABI: Transforming return type * * * * x86-64 ABI: Transforming argument types * * * * Final function type: { i64, i8* } () * * * DtoResolveFunction(std.format.formatNth!(LockingTextWriter, char, string).formatNth.gencode!1LU.gencode): /usr/include/dlang/ldc/std/format.d(3463) * * * * DtoDeclareFunction(std.format.formatNth!(LockingTextWriter, char, string).formatNth.gencode!1LU.gencode): /usr/include/dlang/ldc/std/format.d(3463) * * * * * DtoFunctionType(pure nothrow @safe string()) * * * * * func = declare { i64, i8* } @_D3std6format56__T9formatNthTS3std5stdio4File17LockingTextWriterTaTAyaZ9formatNthFS3std5stdio4File17LockingTextWriterKS3std6format18__T10FormatSpecTaZ10FormatSpecmAyaZ16__T7gencodeVmi1Z7gencodeFNaNbNfZAya() * * * Doing function body for: gencode * * * DtoCreateNestedContext for gencode * * * * DtoCreateNestedContextType for std.format.formatNth!(LockingTextWriter, char, string).formatNth.gencode!1LU.gencode * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3464) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3465) * * * * * * DeclarationExp::toElem: string result = null; | T=void * * * * * * * DtoDeclarationExp: result * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = string) * * * * * * * * * llvm value for decl: %result = alloca { i64, i8* }, align 8 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: result = null | (string)(string = string) * * * * * * * * * * VarExp::toElem: result @ string * * * * * * * * * * * DtoSymbolAddress ('result' of type 'string') * * * * * * * * * * * * a normal variable * * * * * * * * * * NullExp::toElem(type=string): null * * * * * * * * * * * NullExp::toConstElem(type=string): null * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * DtoSetArrayToNull * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3466) * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3466) * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3466) * * * * * * * * DeclarationExp::toElem: ulong __key3349 = 0LU; | T=void * * * * * * * * * DtoDeclarationExp: __key3349 * * * * * * * * * * VarDeclaration * * * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * * * llvm value for decl: %__key3349 = alloca i64, align 8 * * * * * * * * * * * expression initializer * * * * * * * * * * * AssignExp::toElem: __key3349 = 0LU | (ulong)(ulong = ulong) * * * * * * * * * * * * VarExp::toElem: __key3349 @ ulong * * * * * * * * * * * * * DtoSymbolAddress ('__key3349' of type 'ulong') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * lhs: %__key3349 = alloca i64, align 8 * * * * * * * * * * * * * rhs: i64 0 * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3466) * * * * * * * * DeclarationExp::toElem: ulong __limit3350 = 1LU; | T=void * * * * * * * * * DtoDeclarationExp: __limit3350 * * * * * * * * * * VarDeclaration * * * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * * * llvm value for decl: %__limit3350 = alloca i64, align 8 * * * * * * * * * * * expression initializer * * * * * * * * * * * AssignExp::toElem: __limit3350 = 1LU | (ulong)(ulong = ulong) * * * * * * * * * * * * VarExp::toElem: __limit3350 @ ulong * * * * * * * * * * * * * DtoSymbolAddress ('__limit3350' of type 'ulong') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * lhs: %__limit3350 = alloca i64, align 8 * * * * * * * * * * * * * rhs: i64 1 * * * * * * * ForStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3466) * * * * * * * * CmpExp::toElem: __key3349 < __limit3350 @ bool * * * * * * * * * VarExp::toElem: __key3349 @ ulong * * * * * * * * * * DtoSymbolAddress ('__key3349' of type 'ulong') * * * * * * * * * * * a normal variable * * * * * * * * * VarExp::toElem: __limit3350 @ ulong * * * * * * * * * * DtoSymbolAddress ('__limit3350' of type 'ulong') * * * * * * * * * * * a normal variable * * * * * * * * * type 1: %1 = load i64, i64* %__key3349 * * * * * * * * * type 2: %2 = load i64, i64* %__limit3350 * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3466) * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3466) * * * * * * * * * * DeclarationExp::toElem: ulong n = __key3349; | T=void * * * * * * * * * * * DtoDeclarationExp: n * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * * * * * llvm value for decl: %n = alloca i64, align 8 * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * AssignExp::toElem: n = __key3349 | (ulong)(ulong = ulong) * * * * * * * * * * * * * * VarExp::toElem: n @ ulong * * * * * * * * * * * * * * * DtoSymbolAddress ('n' of type 'ulong') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * VarExp::toElem: __key3349 @ ulong * * * * * * * * * * * * * * * DtoSymbolAddress ('__key3349' of type 'ulong') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * lhs: %n = alloca i64, align 8 * * * * * * * * * * * * * * * rhs: %4 = load i64, i64* %__key3349 * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3468) * * * * * * * * * * DeclarationExp::toElem: string num = to(n); | T=void * * * * * * * * * * * DtoDeclarationExp: num * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * DtoVarDeclaration(vdtype = string) * * * * * * * * * * * * * llvm value for decl: %num = alloca { i64, i8* }, align 8 * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * AssignExp::toElem: num = to(n) | (string)(string = string) * * * * * * * * * * * * * * VarExp::toElem: num @ string * * * * * * * * * * * * * * * DtoSymbolAddress ('num' of type 'string') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * CallExp::toElem: to(n) @ string * * * * * * * * * * * * * * * VarExp::toElem: to @ pure nothrow @safe string(ulong _param_0) * * * * * * * * * * * * * * * * DtoSymbolAddress ('to' of type 'pure nothrow @safe string(ulong _param_0)') * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * Function type: pure nothrow @safe string(ulong _param_0) * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * VarExp::toElem: n @ ulong * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('n' of type 'ulong') * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * SetArray * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3469) * * * * * * * * * * CatAssignExp::toElem: result ~= "case " ~ num ~ ": formatValue(w, args[" ~ num ~ "], f); break;" @ string * * * * * * * * * * * VarExp::toElem: result @ string * * * * * * * * * * * * DtoSymbolAddress ('result' of type 'string') * * * * * * * * * * * * * a normal variable * * * * * * * * * * * DtoCatAssignArray * * * * * * * * * * * * CatExp::toElem: "case " ~ num ~ ": formatValue(w, args[" ~ num ~ "], f); break;" @ string * * * * * * * * * * * * * DtoCatAssignArray * * * * * * * * * * * * * * StringExp::toElem: "], f); break;" @ string * * * * * * * * * * * * * * VarExp::toElem: num @ string * * * * * * * * * * * * * * * DtoSymbolAddress ('num' of type 'string') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * StringExp::toElem: ": formatValue(w, args[" @ string * * * * * * * * * * * * * * VarExp::toElem: num @ string * * * * * * * * * * * * * * * DtoSymbolAddress ('num' of type 'string') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * StringExp::toElem: "case " @ string * * * * * * * * * * * * * * DtoTypeInfoOf(type = 'string', base='1') * * * * * * * * * * * * * * * Type::getTypeInfo(): string * * * * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(string)) * * * * * * * * * * * * DtoTypeInfoOf(type = 'string', base='1') * * * * * * * * * * * * * Type::getTypeInfo(): string * * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(string)) * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * SetArray * * * * * * * * AddAssignExp::toElem: __key3349 += 1LU @ ulong * * * * * * * * * Caching l-value of __key3349 += 1LU => __key3349 * * * * * * * * * * VarExp::toElem: __key3349 @ ulong * * * * * * * * * * * DtoSymbolAddress ('__key3349' of type 'ulong') * * * * * * * * * * * * a normal variable * * * * * * * * * AddExp::toElem: __key3349 + 1LU @ ulong * * * * * * * * * * VarExp::toElem: __key3349 @ ulong * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * value = i64 1 * * * * * * * * * DtoAssign() * * * * * * * * * * lhs: %__key3349 = alloca i64, align 8 * * * * * * * * * * rhs: %21 = add i64 %20, 1 * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3474) * * * * * * VarExp::toElem: result @ string * * * * * * * DtoSymbolAddress ('result' of type 'string') * * * * * * * * a normal variable * * * * * * return value is '0x129628f8' * TemplateInstance::codegen: 'std.exception.errnoEnforce!(bool, "/usr/include/dlang/ldc/std/stdio.d", 833LU)' * * DtoDefineFunction(std.exception.errnoEnforce!(bool, "/usr/include/dlang/ldc/std/stdio.d", 833LU).errnoEnforce): /usr/include/dlang/ldc/std/exception.d(546) * * * DtoFunctionType(@safe bool(bool value, lazy string msg = null)) * * * * lazy param * * * * Building type: string delegate() * * * * * DtoFunctionType(string()) * * * * * * x86-64 ABI: Transforming return type * * * * * * x86-64 ABI: Transforming argument types * * * * * * Final function type: { i64, i8* } (i8*) * * * * x86-64 ABI: Transforming return type * * * * x86-64 ABI: Transforming argument types * * * * Final function type: i1 ({ i8*, { i64, i8* } (i8*)* }, i1) * * * DtoResolveFunction(std.exception.errnoEnforce!(bool, "/usr/include/dlang/ldc/std/stdio.d", 833LU).errnoEnforce): /usr/include/dlang/ldc/std/exception.d(546) * * * * DtoDeclareFunction(std.exception.errnoEnforce!(bool, "/usr/include/dlang/ldc/std/stdio.d", 833LU).errnoEnforce): /usr/include/dlang/ldc/std/exception.d(546) * * * * * DtoFunctionType(@safe bool(bool value, lazy string msg = null)) * * * * * func = declare i1 @_D3std9exception102__T12errnoEnforceTbVAyaa34_2f7573722f696e636c7564652f646c616e672f6c64632f7374642f737464696f2e64Vmi833Z12errnoEnforceFNfbLAyaZb({ i8*, { i64, i8* } (i8*)* }, i1) * * * Doing function body for: errnoEnforce * * * DtoCreateNestedContext for errnoEnforce * * * * DtoCreateNestedContextType for std.exception.errnoEnforce!(bool, "/usr/include/dlang/ldc/std/stdio.d", 833LU).errnoEnforce * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/exception.d(548) * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/exception.d(549) * * * * * * NotExp::toElem: !value @ bool * * * * * * * VarExp::toElem: value @ bool * * * * * * * * DtoSymbolAddress ('value' of type 'bool') * * * * * * * * * function param * * * * * * * * * type: bool * * * * * * ThrowStatement::toIR(): /usr/include/dlang/ldc/std/exception.d(549) * * * * * * * NewExp::toElem: new ErrnoException(msg(), "/usr/include/dlang/ldc/std/stdio.d", 833LU) @ std.exception.ErrnoException * * * * * * * * new class * * * * * * * * Calling constructor * * * * * * * * DtoCallFunction() * * * * * * * * * doing normal arguments * * * * * * * * * Arguments so far: (1) * * * * * * * * * * %.newclass_gc = bitcast %object.Object* %.newclass_gc_alloc to %std.exception.ErrnoException* * * * * * * * * * Function type: @trusted ErrnoException(string msg, string file = null, ulong line = 0LU) * * * * * * * * * DtoArgument * * * * * * * * * * CallExp::toElem: msg() @ string * * * * * * * * * * * VarExp::toElem: msg @ string delegate() pure @safe * * * * * * * * * * * * DtoSymbolAddress ('msg' of type 'string') * * * * * * * * * * * * * function param * * * * * * * * * * * * * type: string * * * * * * * * * * * * * lazy parameter * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * Building type: string delegate() pure @safe * * * * * * * * * * * * * DtoFunctionType(pure @safe string()) * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * Final function type: { i64, i8* } (i8*) * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * %.ptr = load i8*, i8** %10 * * * * * * * * * * * * Function type: pure @safe string() * * * * * * * * * DtoArgument * * * * * * * * * * StringExp::toElem: "/usr/include/dlang/ldc/std/stdio.d" @ string * * * * * * * * * DtoArgument * * * * * * * * * * IntegerExp::toElem: 833LU @ ulong * * * * * * * * * * * IntegerExp::toConstElem: 833LU @ ulong * * * * * * * * * * * * value = i64 833 * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/exception.d(550) * * * * * * VarExp::toElem: value @ bool * * * * * * * DtoSymbolAddress ('value' of type 'bool') * * * * * * * * function param * * * * * * * * type: bool * * * * * * return value is '0x12967938' * TemplateInstance::codegen: 'std.traits.isBoolean!char' * * VarDeclaration::codegen(): 'std.traits.isBoolean!char.isBoolean' * * * DtoResolveVariable(std.traits.isBoolean!char.isBoolean) * TemplateInstance::codegen: 'std.conv.to!ulong.to!(ulong)' * * DtoDefineFunction(std.conv.to!ulong.to!(ulong).to): /usr/include/dlang/ldc/std/conv.d(292) * * * DtoFunctionType(pure nothrow @nogc @safe ulong(ulong _param_0)) * * * * x86-64 ABI: Transforming return type * * * * x86-64 ABI: Transforming argument types * * * * Final function type: i64 (i64) * * * DtoResolveFunction(std.conv.to!ulong.to!(ulong).to): /usr/include/dlang/ldc/std/conv.d(292) * * * * DtoDeclareFunction(std.conv.to!ulong.to!(ulong).to): /usr/include/dlang/ldc/std/conv.d(292) * * * * * DtoFunctionType(pure nothrow @nogc @safe ulong(ulong _param_0)) * * * * * func = declare i64 @_D3std4conv9__T2toTmZ9__T2toTmZ2toFNaNbNiNfmZm(i64) * * * Doing function body for: to * * * DtoCreateNestedContext for to * * * * DtoCreateNestedContextType for std.conv.to!ulong.to!(ulong).to * * * CompoundStatement::toIR(): * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(295) * * * * * CallExp::toElem: toImpl(_param_0) @ ulong * * * * * * VarExp::toElem: toImpl @ pure nothrow @nogc @safe ulong(ulong value) * * * * * * * DtoSymbolAddress ('toImpl' of type 'pure nothrow @nogc @safe ulong(ulong value)') * * * * * * * * FuncDeclaration * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe ulong(ulong value)) * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * Final function type: i64 (i64) * * * * * * * * DtoResolveFunction(std.conv.toImpl!(ulong, ulong).toImpl): /usr/include/dlang/ldc/std/conv.d(361) * * * * * * * * * DtoDeclareFunction(std.conv.toImpl!(ulong, ulong).toImpl): /usr/include/dlang/ldc/std/conv.d(361) * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe ulong(ulong value)) * * * * * * * * * * func = declare i64 @_D3std4conv15__T6toImplTmTmZ6toImplFNaNbNiNfmZm(i64) * * * * * * DtoCallFunction() * * * * * * * Building type: pure nothrow @nogc @safe ulong(ulong value) * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe ulong(ulong value)) * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * Final function type: i64 (i64) * * * * * * * doing normal arguments * * * * * * * Arguments so far: (0) * * * * * * * Function type: pure nothrow @nogc @safe ulong(ulong value) * * * * * * * DtoArgument * * * * * * * * VarExp::toElem: _param_0 @ ulong * * * * * * * * * DtoSymbolAddress ('_param_0' of type 'ulong') * * * * * * * * * * function param * * * * * * * * * * type: ulong * * * * * return value is '0x1296aac0' * TemplateInstance::codegen: 'std.traits.isImplicitlyConvertible!(ulong, ulong)' * TemplateInstance::codegen: 'std.conv.isEnumStrToStr!(ulong, ulong)' * TemplateInstance::codegen: 'std.conv.isNullToStr!(ulong, ulong)' * TemplateInstance::codegen: 'std.conv.toImpl!(ulong, ulong)' * * DtoDefineFunction(std.conv.toImpl!(ulong, ulong).toImpl): /usr/include/dlang/ldc/std/conv.d(361) * * * Doing function body for: toImpl * * * DtoCreateNestedContext for toImpl * * * * DtoCreateNestedContextType for std.conv.toImpl!(ulong, ulong).toImpl * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(364) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(365) * * * * * * DeclarationExp::toElem: template isSignedInt(T) | T=void * * * * * * * DtoDeclarationExp: isSignedInt(T) * * * * * * * * Ignoring Symbol: template * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(369) * * * * * * DeclarationExp::toElem: alias isUnsignedInt = template isUnsigned(T); | T=void * * * * * * * DtoDeclarationExp: isUnsignedInt * * * * * * * * Ignoring Symbol: alias * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(385) * * * * * * VarExp::toElem: value @ ulong * * * * * * * DtoSymbolAddress ('value' of type 'ulong') * * * * * * * * function param * * * * * * * * type: ulong * * * * * * return value is '0x1296b928' * TemplateInstance::codegen: 'std.conv.toImpl!(ulong, ulong).toImpl.isSignedInt!ulong' * * VarDeclaration::codegen(): 'std.conv.toImpl!(ulong, ulong).toImpl.isSignedInt!ulong.isSignedInt' * * * DtoResolveVariable(std.conv.toImpl!(ulong, ulong).toImpl.isSignedInt!ulong.isSignedInt) * TemplateInstance::codegen: 'std.array.uninitializedArray!(ubyte[], ulong)' * * DtoDefineFunction(std.array.uninitializedArray!(ubyte[], ulong).uninitializedArray): /usr/include/dlang/ldc/std/array.d(510) * * * DtoFunctionType(pure nothrow @trusted ubyte[](ulong _param_0)) * * * * x86-64 ABI: Transforming return type * * * * x86-64 ABI: Transforming argument types * * * * Final function type: { i64, i8* } (i64) * * * DtoResolveFunction(std.array.uninitializedArray!(ubyte[], ulong).uninitializedArray): /usr/include/dlang/ldc/std/array.d(510) * * * * DtoDeclareFunction(std.array.uninitializedArray!(ubyte[], ulong).uninitializedArray): /usr/include/dlang/ldc/std/array.d(510) * * * * * DtoFunctionType(pure nothrow @trusted ubyte[](ulong _param_0)) * * * * * func = declare { i64, i8* } @_D3std5array29__T18uninitializedArrayTAhTmZ18uninitializedArrayFNaNbNemZAh(i64) * * * Doing function body for: uninitializedArray * * * DtoCreateNestedContext for uninitializedArray * * * * DtoCreateNestedContextType for std.array.uninitializedArray!(ubyte[], ulong).uninitializedArray * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/array.d(512) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/array.d(513) * * * * * * DeclarationExp::toElem: template isSize_t(E) | T=void * * * * * * * DtoDeclarationExp: isSize_t(E) * * * * * * * * Ignoring Symbol: template * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/array.d(514) * * * * * * DeclarationExp::toElem: template toSize_t(E) | T=void * * * * * * * DtoDeclarationExp: toSize_t(E) * * * * * * * * Ignoring Symbol: template * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/array.d(521) * * * * * * DeclarationExp::toElem: alias ST = (ulong); | T=void * * * * * * * DtoDeclarationExp: ST * * * * * * * * Ignoring Symbol: alias * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/array.d(523) * * * * * * CallExp::toElem: arrayAllocImpl(_param_0) @ ubyte[] * * * * * * * VarExp::toElem: arrayAllocImpl @ pure nothrow @system ubyte[](ulong _param_0) * * * * * * * * DtoSymbolAddress ('arrayAllocImpl' of type 'pure nothrow @system ubyte[](ulong _param_0)') * * * * * * * * * FuncDeclaration * * * * * * * * * DtoFunctionType(pure nothrow @system ubyte[](ulong _param_0)) * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: { i64, i8* } (i64) * * * * * * * * * DtoResolveFunction(std.array.arrayAllocImpl!(false, ubyte[], ulong).arrayAllocImpl): /usr/include/dlang/ldc/std/array.d(577) * * * * * * * * * * DtoDeclareFunction(std.array.arrayAllocImpl!(false, ubyte[], ulong).arrayAllocImpl): /usr/include/dlang/ldc/std/array.d(577) * * * * * * * * * * * DtoFunctionType(pure nothrow @system ubyte[](ulong _param_0)) * * * * * * * * * * * func = declare { i64, i8* } @_D3std5array29__T14arrayAllocImplVbi0TAhTmZ14arrayAllocImplFNaNbmZAh(i64) * * * * * * * DtoCallFunction() * * * * * * * * Building type: pure nothrow @system ubyte[](ulong _param_0) * * * * * * * * * DtoFunctionType(pure nothrow @system ubyte[](ulong _param_0)) * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: { i64, i8* } (i64) * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (0) * * * * * * * * Function type: pure nothrow @system ubyte[](ulong _param_0) * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_0 @ ulong * * * * * * * * * * DtoSymbolAddress ('_param_0' of type 'ulong') * * * * * * * * * * * function param * * * * * * * * * * * type: ulong * * * * * * return value is '0x1296ef40' * TemplateInstance::codegen: 'std.typetuple.allSatisfy!(isSize_t, ulong)' * TemplateInstance::codegen: 'std.array.uninitializedArray!(ubyte[], ulong).uninitializedArray.F!ulong' * TemplateInstance::codegen: 'std.typetuple.staticMap!(toSize_t, ulong)' * * Ignoring Dsymbol::codegen for std.typetuple.staticMap!(toSize_t, ulong).staticMap * TemplateInstance::codegen: 'std.array.uninitializedArray!(ubyte[], ulong).uninitializedArray.F!ulong' * * Ignoring Dsymbol::codegen for std.array.uninitializedArray!(ubyte[], ulong).uninitializedArray.F!ulong.toSize_t * TemplateInstance::codegen: 'std.array.arrayAllocImpl!(false, ubyte[], ulong)' * * DtoDefineFunction(std.array.arrayAllocImpl!(false, ubyte[], ulong).arrayAllocImpl): /usr/include/dlang/ldc/std/array.d(577) * * * Doing function body for: arrayAllocImpl * * * DtoCreateNestedContext for arrayAllocImpl * * * * DtoCreateNestedContextType for std.array.arrayAllocImpl!(false, ubyte[], ulong).arrayAllocImpl * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/array.d(578) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/array.d(582) * * * * * * DeclarationExp::toElem: alias E = ubyte; | T=void * * * * * * * DtoDeclarationExp: E * * * * * * * * Ignoring Symbol: alias * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/array.d(584) * * * * * * DeclarationExp::toElem: ubyte[] ret = null; | T=void * * * * * * * DtoDeclarationExp: ret * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = ubyte[]) * * * * * * * * * llvm value for decl: %ret = alloca { i64, i8* }, align 8 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: ret = null | (ubyte[])(ubyte[] = ubyte[]) * * * * * * * * * * VarExp::toElem: ret @ ubyte[] * * * * * * * * * * * DtoSymbolAddress ('ret' of type 'ubyte[]') * * * * * * * * * * * * a normal variable * * * * * * * * * * NullExp::toElem(type=ubyte[]): null * * * * * * * * * * * NullExp::toConstElem(type=ubyte[]): null * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * DtoSetArrayToNull * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/array.d(589) * * * * * * DeclarationExp::toElem: alias size = ulong _param_0; ; | T=void * * * * * * * DtoDeclarationExp: size * * * * * * * * Ignoring Symbol: alias * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/array.d(594) * * * * * * VarExp::toElem: __ctfe @ bool * * * * * * * DtoSymbolAddress ('__ctfe' of type 'bool') * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/array.d(595) * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/array.d(597) * * * * * * * * AssignExp::toElem: ret = new ubyte[](_param_0) | (ubyte[])(ubyte[] = ubyte[]) * * * * * * * * * VarExp::toElem: ret @ ubyte[] * * * * * * * * * * DtoSymbolAddress ('ret' of type 'ubyte[]') * * * * * * * * * * * a normal variable * * * * * * * * * NewExp::toElem: new ubyte[](_param_0) @ ubyte[] * * * * * * * * * * new dynamic array: ubyte[] * * * * * * * * * * VarExp::toElem: _param_0 @ ulong * * * * * * * * * * * DtoSymbolAddress ('_param_0' of type 'ulong') * * * * * * * * * * * * function param * * * * * * * * * * * * type: ulong * * * * * * * * * * DtoNewDynArray : ubyte[] * * * * * * * * * * * DtoTypeInfoOf(type = 'ubyte[]', base='1') * * * * * * * * * * * * Type::getTypeInfo(): ubyte[] * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(ubyte[])) * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * DtoAssign() * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * SetArray * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/array.d(615) * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/array.d(615) * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/array.d(618) * * * * * * * * * DeclarationExp::toElem: ubyte* ptr = cast(ubyte*)malloc(_param_0 * 1LU, 2u, null); | T=void * * * * * * * * * * DtoDeclarationExp: ptr * * * * * * * * * * * VarDeclaration * * * * * * * * * * * DtoVarDeclaration(vdtype = ubyte*) * * * * * * * * * * * * llvm value for decl: %ptr = alloca i8*, align 8 * * * * * * * * * * * * expression initializer * * * * * * * * * * * * AssignExp::toElem: ptr = cast(ubyte*)malloc(_param_0 * 1LU, 2u, null) | (ubyte*)(ubyte* = ubyte*) * * * * * * * * * * * * * VarExp::toElem: ptr @ ubyte* * * * * * * * * * * * * * * DtoSymbolAddress ('ptr' of type 'ubyte*') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * CastExp::toElem: cast(ubyte*)malloc(_param_0 * 1LU, 2u, null) @ ubyte* * * * * * * * * * * * * * * CallExp::toElem: malloc(_param_0 * 1LU, 2u, null) @ void* * * * * * * * * * * * * * * * VarExp::toElem: malloc @ pure nothrow void*(ulong sz, uint ba = 0u, const(TypeInfo) ti = null) * * * * * * * * * * * * * * * * DtoSymbolAddress ('malloc' of type 'pure nothrow void*(ulong sz, uint ba = 0u, const(TypeInfo) ti = null)') * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * Function type: pure nothrow void*(ulong sz, uint ba = 0u, const(TypeInfo) ti = null) * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * MulExp::toElem: _param_0 * 1LU @ ulong * * * * * * * * * * * * * * * * * * VarExp::toElem: _param_0 @ ulong * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('_param_0' of type 'ulong') * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * type: ulong * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * IntegerExp::toElem: 2u @ uint * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 2u @ uint * * * * * * * * * * * * * * * * * * * value = i32 2 * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * NullExp::toElem(type=const(TypeInfo)): null * * * * * * * * * * * * * * * * * * NullExp::toConstElem(type=const(TypeInfo)): null * * * * * * * * * * * * * * Casting from 'void*' to 'ubyte*' * * * * * * * * * * * * * * * src: %6 = call i8* @_D4core6memory2GC6mallocFNaNbmkxC8TypeInfoZPv(%object.TypeInfo* null, i32 2, i64 %5) * * * * * * * * * * * * * * * to type: i8* * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * lhs: %ptr = alloca i8*, align 8 * * * * * * * * * * * * * * rhs: %6 = call i8* @_D4core6memory2GC6mallocFNaNbmkxC8TypeInfoZPv(%object.TypeInfo* null, i32 2, i64 %5) * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/array.d(621) * * * * * * * * * AssignExp::toElem: ret = ptr[0.._param_0] | (ubyte[])(ubyte[] = ubyte[]) * * * * * * * * * * VarExp::toElem: ret @ ubyte[] * * * * * * * * * * * DtoSymbolAddress ('ret' of type 'ubyte[]') * * * * * * * * * * * * a normal variable * * * * * * * * * * SliceExp::toElem: ptr[0.._param_0] @ ubyte[] * * * * * * * * * * * VarExp::toElem: ptr @ ubyte* * * * * * * * * * * * * DtoSymbolAddress ('ptr' of type 'ubyte*') * * * * * * * * * * * * * a normal variable * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * VarExp::toElem: _param_0 @ ulong * * * * * * * * * * * * DtoSymbolAddress ('_param_0' of type 'ulong') * * * * * * * * * * * * * function param * * * * * * * * * * * * * type: ulong * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * DtoAssign() * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * SetArray * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/array.d(631) * * * * * * VarExp::toElem: ret @ ubyte[] * * * * * * * DtoSymbolAddress ('ret' of type 'ubyte[]') * * * * * * * * a normal variable * * * * * * return value is '0x129743d8' * TemplateInstance::codegen: 'std.array.nDimensions!(ubyte[])' * TemplateInstance::codegen: 'std.array.nDimensions!ubyte' * TemplateInstance::codegen: 'std.traits.isArray!ubyte' * TemplateInstance::codegen: 'std.array.join!(string[], string)' * * DtoDefineFunction(std.array.join!(string[], string).join): /usr/include/dlang/ldc/std/array.d(1605) * * * DtoFunctionType(pure nothrow @safe string(string[] ror, string sep)) * * * * x86-64 ABI: Transforming return type * * * * x86-64 ABI: Transforming argument types * * * * Final function type: { i64, i8* } ({ i64, i8* }, { i64, { i64, i8* }* }) * * * DtoResolveFunction(std.array.join!(string[], string).join): /usr/include/dlang/ldc/std/array.d(1605) * * * * DtoDeclareFunction(std.array.join!(string[], string).join): /usr/include/dlang/ldc/std/array.d(1605) * * * * * DtoFunctionType(pure nothrow @safe string(string[] ror, string sep)) * * * * * func = declare { i64, i8* } @_D3std5array18__T4joinTAAyaTAyaZ4joinFNaNbNfAAyaAyaZAya({ i64, i8* }, { i64, { i64, i8* }* }) * * * Doing function body for: join * * * DtoCreateNestedContext for join * * * * DtoCreateNestedContextType for std.array.join!(string[], string).join * * * * * has nested frame * * * * * Function join has depth 0 * * * * * Nested var 'length' of type i64 * * * * * Nested var 'result' of type { i64, i8* } * * * * * frameType = %nest.join = type { i64, { i64, i8* } } * * * * nested var: length * * * * nested var: result * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/array.d(1610) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/array.d(1611) * * * * * * DeclarationExp::toElem: alias RetType = string; | T=void * * * * * * * DtoDeclarationExp: RetType * * * * * * * * Ignoring Symbol: alias * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/array.d(1612) * * * * * * DeclarationExp::toElem: alias RetTypeElement = char; | T=void * * * * * * * DtoDeclarationExp: RetTypeElement * * * * * * * * Ignoring Symbol: alias * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/array.d(1613) * * * * * * DeclarationExp::toElem: alias RoRElem = string; | T=void * * * * * * * DtoDeclarationExp: RoRElem * * * * * * * * Ignoring Symbol: alias * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/array.d(1615) * * * * * * CallExp::toElem: empty(ror) @ bool * * * * * * * VarExp::toElem: empty @ pure nothrow @nogc @property @safe bool(const(string[]) a) * * * * * * * * DtoSymbolAddress ('empty' of type 'pure nothrow @nogc @property @safe bool(const(string[]) a)') * * * * * * * * * FuncDeclaration * * * * * * * DtoCallFunction() * * * * * * * * Building type: pure nothrow @nogc @property @safe bool(const(string[]) a) * * * * * * * * * DtoFunctionType(pure nothrow @nogc @property @safe bool(const(string[]) a)) * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: i1 ({ i64, { i64, i8* }* }) * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (0) * * * * * * * * Function type: pure nothrow @nogc @property @safe bool(const(string[]) a) * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: ror @ const(string[]) * * * * * * * * * * DtoSymbolAddress ('ror' of type 'string[]') * * * * * * * * * * * function param * * * * * * * * * * * type: string[] * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/array.d(1616) * * * * * * * NullExp::toElem(type=string): null * * * * * * * * NullExp::toConstElem(type=string): null * * * * * * * return value is '0x120dd7b0' * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/array.d(1630) * * * * * * DeclarationExp::toElem: alias sepArr = string sep; ; | T=void * * * * * * * DtoDeclarationExp: sepArr * * * * * * * * Ignoring Symbol: alias * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/array.d(1635) * * * * * * DeclarationExp::toElem: ulong length = 0LU; | T=void * * * * * * * DtoDeclarationExp: length * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * has nestedref set (referenced by nested function/delegate) * * * * * * * * * llvm value for decl: %length = getelementptr %nest.join, %nest.join* %.frame, i32 0, i32 0 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: length = 0LU | (ulong)(ulong = ulong) * * * * * * * * * * VarExp::toElem: length @ ulong * * * * * * * * * * * DtoSymbolAddress ('length' of type 'ulong') * * * * * * * * * * * * nested variable * * * * * * * * * * * * DtoNestedVariable for length @ /usr/include/dlang/ldc/std/array.d(1635) * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * value = i64 0 * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %length = getelementptr %nest.join, %nest.join* %.frame, i32 0, i32 0 * * * * * * * * * * * rhs: i64 0 * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/array.d(1636) * * * * * * DeclarationExp::toElem: ulong rorLength = 0LU; | T=void * * * * * * * DtoDeclarationExp: rorLength * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * llvm value for decl: %rorLength = alloca i64, align 8 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: rorLength = 0LU | (ulong)(ulong = ulong) * * * * * * * * * * VarExp::toElem: rorLength @ ulong * * * * * * * * * * * DtoSymbolAddress ('rorLength' of type 'ulong') * * * * * * * * * * * * a normal variable * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * value = i64 0 * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %rorLength = alloca i64, align 8 * * * * * * * * * * * rhs: i64 0 * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/array.d(1637) * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/array.d(1637) * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/array.d(1637) * * * * * * * * DeclarationExp::toElem: string[] __aggr3360 = save(ror)[]; | T=void * * * * * * * * * DtoDeclarationExp: __aggr3360 * * * * * * * * * * VarDeclaration * * * * * * * * * * DtoVarDeclaration(vdtype = string[]) * * * * * * * * * * * llvm value for decl: %__aggr3360 = alloca { i64, { i64, i8* }* }, align 8 * * * * * * * * * * * expression initializer * * * * * * * * * * * AssignExp::toElem: __aggr3360 = save(ror)[] | (string[])(string[] = string[]) * * * * * * * * * * * * VarExp::toElem: __aggr3360 @ string[] * * * * * * * * * * * * * DtoSymbolAddress ('__aggr3360' of type 'string[]') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * SliceExp::toElem: save(ror)[] @ string[] * * * * * * * * * * * * * CallExp::toElem: save(ror) @ string[] * * * * * * * * * * * * * * VarExp::toElem: save @ pure nothrow @nogc @property @safe string[](string[] a) * * * * * * * * * * * * * * * DtoSymbolAddress ('save' of type 'pure nothrow @nogc @property @safe string[](string[] a)') * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * Building type: pure nothrow @nogc @property @safe string[](string[] a) * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @property @safe string[](string[] a)) * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * Final function type: { i64, { i64, i8* }* } ({ i64, { i64, i8* }* }) * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @property @safe string[](string[] a) * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * VarExp::toElem: ror @ string[] * * * * * * * * * * * * * * * * * DtoSymbolAddress ('ror' of type 'string[]') * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * type: string[] * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * SetArray * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/array.d(1637) * * * * * * * * DeclarationExp::toElem: ulong __key3361 = 0LU; | T=void * * * * * * * * * DtoDeclarationExp: __key3361 * * * * * * * * * * VarDeclaration * * * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * * * llvm value for decl: %__key3361 = alloca i64, align 8 * * * * * * * * * * * expression initializer * * * * * * * * * * * AssignExp::toElem: __key3361 = 0LU | (ulong)(ulong = ulong) * * * * * * * * * * * * VarExp::toElem: __key3361 @ ulong * * * * * * * * * * * * * DtoSymbolAddress ('__key3361' of type 'ulong') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * lhs: %__key3361 = alloca i64, align 8 * * * * * * * * * * * * * rhs: i64 0 * * * * * * * ForStatement::toIR(): /usr/include/dlang/ldc/std/array.d(1637) * * * * * * * * CmpExp::toElem: __key3361 < __aggr3360.length @ bool * * * * * * * * * VarExp::toElem: __key3361 @ ulong * * * * * * * * * * DtoSymbolAddress ('__key3361' of type 'ulong') * * * * * * * * * * * a normal variable * * * * * * * * * ArrayLengthExp::toElem: __aggr3360.length @ ulong * * * * * * * * * * VarExp::toElem: __aggr3360 @ string[] * * * * * * * * * * * DtoSymbolAddress ('__aggr3360' of type 'string[]') * * * * * * * * * * * * a normal variable * * * * * * * * * * DtoArrayLen * * * * * * * * * type 1: %8 = load i64, i64* %__key3361 * * * * * * * * * type 2: %.len1 = load i64, i64* %7 * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/array.d(1637) * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/array.d(1637) * * * * * * * * * * DeclarationExp::toElem: string r = __aggr3360[__key3361]; | T=void * * * * * * * * * * * DtoDeclarationExp: r * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * DtoVarDeclaration(vdtype = string) * * * * * * * * * * * * * llvm value for decl: %r = alloca { i64, i8* }, align 8 * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * AssignExp::toElem: r = __aggr3360[__key3361] | (string)(string = string) * * * * * * * * * * * * * * VarExp::toElem: r @ string * * * * * * * * * * * * * * * DtoSymbolAddress ('r' of type 'string') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * IndexExp::toElem: __aggr3360[__key3361] @ string * * * * * * * * * * * * * * * VarExp::toElem: __aggr3360 @ string[] * * * * * * * * * * * * * * * * DtoSymbolAddress ('__aggr3360' of type 'string[]') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * VarExp::toElem: __key3361 @ ulong * * * * * * * * * * * * * * * * DtoSymbolAddress ('__key3361' of type 'ulong') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * SetArray * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/array.d(1639) * * * * * * * * * * AddAssignExp::toElem: length += r.length @ ulong * * * * * * * * * * * Caching l-value of length += r.length => length * * * * * * * * * * * * VarExp::toElem: length @ ulong * * * * * * * * * * * * * DtoSymbolAddress ('length' of type 'ulong') * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * DtoNestedVariable for length @ /usr/include/dlang/ldc/std/array.d(1639) * * * * * * * * * * * AddExp::toElem: length + r.length @ ulong * * * * * * * * * * * * VarExp::toElem: length @ ulong * * * * * * * * * * * * ArrayLengthExp::toElem: r.length @ ulong * * * * * * * * * * * * * VarExp::toElem: r @ string * * * * * * * * * * * * * * DtoSymbolAddress ('r' of type 'string') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * lhs: %length = getelementptr %nest.join, %nest.join* %.frame, i32 0, i32 0 * * * * * * * * * * * * rhs: %21 = add i64 %20, %.len6 * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/array.d(1640) * * * * * * * * * * AddAssignExp::toElem: rorLength += 1LU @ ulong * * * * * * * * * * * Caching l-value of rorLength += 1LU => rorLength * * * * * * * * * * * * VarExp::toElem: rorLength @ ulong * * * * * * * * * * * * * DtoSymbolAddress ('rorLength' of type 'ulong') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * AddExp::toElem: rorLength + 1LU @ ulong * * * * * * * * * * * * VarExp::toElem: rorLength @ ulong * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * lhs: %rorLength = alloca i64, align 8 * * * * * * * * * * * * rhs: %23 = add i64 %22, 1 * * * * * * * * AddAssignExp::toElem: __key3361 += 1LU @ ulong * * * * * * * * * Caching l-value of __key3361 += 1LU => __key3361 * * * * * * * * * * VarExp::toElem: __key3361 @ ulong * * * * * * * * * * * DtoSymbolAddress ('__key3361' of type 'ulong') * * * * * * * * * * * * a normal variable * * * * * * * * * AddExp::toElem: __key3361 + 1LU @ ulong * * * * * * * * * * VarExp::toElem: __key3361 @ ulong * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * value = i64 1 * * * * * * * * * DtoAssign() * * * * * * * * * * lhs: %__key3361 = alloca i64, align 8 * * * * * * * * * * rhs: %13 = add i64 %12, 1 * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/array.d(1642) * * * * * * NotExp::toElem: !rorLength @ bool * * * * * * * VarExp::toElem: rorLength @ ulong * * * * * * * * DtoSymbolAddress ('rorLength' of type 'ulong') * * * * * * * * * a normal variable * * * * * * * Casting from 'ulong' to 'bool' * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/array.d(1643) * * * * * * * NullExp::toElem(type=string): null * * * * * * * * NullExp::toConstElem(type=string): null * * * * * * * return value is '0x120dd7b0' * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/array.d(1644) * * * * * * AddAssignExp::toElem: length += (rorLength - 1LU) * sep.length @ ulong * * * * * * * Caching l-value of length += (rorLength - 1LU) * sep.length => length * * * * * * * * VarExp::toElem: length @ ulong * * * * * * * * * DtoSymbolAddress ('length' of type 'ulong') * * * * * * * * * * nested variable * * * * * * * * * * DtoNestedVariable for length @ /usr/include/dlang/ldc/std/array.d(1644) * * * * * * * AddExp::toElem: length + (rorLength - 1LU) * sep.length @ ulong * * * * * * * * VarExp::toElem: length @ ulong * * * * * * * * MulExp::toElem: (rorLength - 1LU) * sep.length @ ulong * * * * * * * * * MinExp::toElem: rorLength - 1LU @ ulong * * * * * * * * * * VarExp::toElem: rorLength @ ulong * * * * * * * * * * * DtoSymbolAddress ('rorLength' of type 'ulong') * * * * * * * * * * * * a normal variable * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * value = i64 1 * * * * * * * * * ArrayLengthExp::toElem: sep.length @ ulong * * * * * * * * * * VarExp::toElem: sep @ string * * * * * * * * * * * DtoSymbolAddress ('sep' of type 'string') * * * * * * * * * * * * function param * * * * * * * * * * * * type: string * * * * * * * * * * DtoArrayLen * * * * * * * DtoAssign() * * * * * * * * lhs: %length = getelementptr %nest.join, %nest.join* %.frame, i32 0, i32 0 * * * * * * * * rhs: %34 = add i64 %33, %32 * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/array.d(1646) * * * * * * DeclarationExp::toElem: char[] result = delegate () => uninitializedArray(length)(); | T=void * * * * * * * DtoDeclarationExp: result * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = char[]) * * * * * * * * * has nestedref set (referenced by nested function/delegate) * * * * * * * * * llvm value for decl: %result = getelementptr %nest.join, %nest.join* %.frame, i32 0, i32 1 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: result = delegate () => uninitializedArray(length)() | (char[])(char[] = char[]) * * * * * * * * * * VarExp::toElem: result @ char[] * * * * * * * * * * * DtoSymbolAddress ('result' of type 'char[]') * * * * * * * * * * * * nested variable * * * * * * * * * * * * DtoNestedVariable for result @ /usr/include/dlang/ldc/std/array.d(1646) * * * * * * * * * * CallExp::toElem: delegate () => uninitializedArray(length)() @ char[] * * * * * * * * * * * FuncExp::toElem: __lambda3 @ char[] delegate() pure nothrow @trusted * * * * * * * * * * * * nested * * * * * * * * * * * * kind = delegate * * * * * * * * * * * * DtoDefineFunction(std.array.join!(string[], string).join.__lambda3): /usr/include/dlang/ldc/std/array.d(1646) * * * * * * * * * * * * * DtoFunctionType(pure nothrow @trusted char[]()) * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * Final function type: { i64, i8* } (i8*) * * * * * * * * * * * * * DtoResolveFunction(std.array.join!(string[], string).join.__lambda3): /usr/include/dlang/ldc/std/array.d(1646) * * * * * * * * * * * * * * DtoDeclareFunction(std.array.join!(string[], string).join.__lambda3): /usr/include/dlang/ldc/std/array.d(1646) * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @trusted char[]()) * * * * * * * * * * * * * * * func = declare { i64, i8* } @_D3std5array18__T4joinTAAyaTAyaZ4joinFAAyaAyaZ9__lambda3MFNaNbNeZAa(i8*) * * * * * * * * * * * * * Doing function body for: __lambda3 * * * * * * * * * * * * * DtoCreateNestedContext for __lambda3 * * * * * * * * * * * * * * DtoCreateNestedContextType for std.array.join!(string[], string).join.__lambda3 * * * * * * * * * * * * * * * DtoCreateNestedContextType for std.array.join!(string[], string).join * * * * * * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/array.d(1646) * * * * * * * * * * * * * * * CallExp::toElem: uninitializedArray(length) @ char[] * * * * * * * * * * * * * * * * VarExp::toElem: uninitializedArray @ pure nothrow @trusted char[](ulong _param_0) * * * * * * * * * * * * * * * * * DtoSymbolAddress ('uninitializedArray' of type 'pure nothrow @trusted char[](ulong _param_0)') * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @trusted char[](ulong _param_0)) * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * Final function type: { i64, i8* } (i64) * * * * * * * * * * * * * * * * * * DtoResolveFunction(std.array.uninitializedArray!(char[], ulong).uninitializedArray): /usr/include/dlang/ldc/std/array.d(510) * * * * * * * * * * * * * * * * * * * DtoDeclareFunction(std.array.uninitializedArray!(char[], ulong).uninitializedArray): /usr/include/dlang/ldc/std/array.d(510) * * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @trusted char[](ulong _param_0)) * * * * * * * * * * * * * * * * * * * * func = declare { i64, i8* } @_D3std5array29__T18uninitializedArrayTAaTmZ18uninitializedArrayFNaNbNemZAa(i64) * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * Building type: pure nothrow @trusted char[](ulong _param_0) * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @trusted char[](ulong _param_0)) * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * Final function type: { i64, i8* } (i64) * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * Function type: pure nothrow @trusted char[](ulong _param_0) * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * VarExp::toElem: length @ ulong * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('length' of type 'ulong') * * * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for length @ /usr/include/dlang/ldc/std/array.d(1646) * * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for std.array.join!(string[], string).join * * * * * * * * * * * * * * * * * * * * * Context: %2 = bitcast i8* %1 to %nest.join* * * * * * * * * * * * * * * * * * * * * * of type: %nest.join = type { i64, { i64, i8* } } * * * * * * * * * * * * * * * * * * * * * Variable: length * * * * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * * * * Function: __lambda3 * * * * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * * * * Addr: %length = getelementptr %nest.join, %nest.join* %2, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * * * of type: i64* * * * * * * * * * * * * * * * return value is '0x12983710' * * * * * * * * * * * * Building type: char[] delegate() pure nothrow @trusted * * * * * * * * * * * * * DtoFunctionType(pure nothrow @trusted char[]()) * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * Final function type: { i64, i8* } (i8*) * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * %.ptr11 = extractvalue { i8*, { i64, i8* } (i8*)* } %.func, 0 * * * * * * * * * * * * Function type: pure nothrow @trusted char[]() * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * SetArray * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/array.d(1647) * * * * * * DeclarationExp::toElem: ulong len = 0LU; | T=void * * * * * * * DtoDeclarationExp: len * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * llvm value for decl: %len = alloca i64, align 8 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: len = 0LU | (ulong)(ulong = ulong) * * * * * * * * * * VarExp::toElem: len @ ulong * * * * * * * * * * * DtoSymbolAddress ('len' of type 'ulong') * * * * * * * * * * * * a normal variable * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * value = i64 0 * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %len = alloca i64, align 8 * * * * * * * * * * * rhs: i64 0 * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/array.d(1648) * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/array.d(1648) * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/array.d(1648) * * * * * * * * DeclarationExp::toElem: string __aggr3362 = front(ror)[]; | T=void * * * * * * * * * DtoDeclarationExp: __aggr3362 * * * * * * * * * * VarDeclaration * * * * * * * * * * DtoVarDeclaration(vdtype = string) * * * * * * * * * * * llvm value for decl: %__aggr3362 = alloca { i64, i8* }, align 8 * * * * * * * * * * * expression initializer * * * * * * * * * * * AssignExp::toElem: __aggr3362 = front(ror)[] | (string)(string = string) * * * * * * * * * * * * VarExp::toElem: __aggr3362 @ string * * * * * * * * * * * * * DtoSymbolAddress ('__aggr3362' of type 'string') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * SliceExp::toElem: front(ror)[] @ string * * * * * * * * * * * * * CallExp::toElem: front(ror) @ string * * * * * * * * * * * * * * VarExp::toElem: front @ pure nothrow @nogc @property ref @safe string(string[] a) * * * * * * * * * * * * * * * DtoSymbolAddress ('front' of type 'pure nothrow @nogc @property ref @safe string(string[] a)') * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * Building type: pure nothrow @nogc @property ref @safe string(string[] a) * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @property ref @safe string(string[] a)) * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * Final function type: { i64, i8* }* ({ i64, { i64, i8* }* }) * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @property ref @safe string(string[] a) * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * VarExp::toElem: ror @ string[] * * * * * * * * * * * * * * * * * DtoSymbolAddress ('ror' of type 'string[]') * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * type: string[] * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * SetArray * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/array.d(1648) * * * * * * * * DeclarationExp::toElem: ulong __key3363 = 0LU; | T=void * * * * * * * * * DtoDeclarationExp: __key3363 * * * * * * * * * * VarDeclaration * * * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * * * llvm value for decl: %__key3363 = alloca i64, align 8 * * * * * * * * * * * expression initializer * * * * * * * * * * * AssignExp::toElem: __key3363 = 0LU | (ulong)(ulong = ulong) * * * * * * * * * * * * VarExp::toElem: __key3363 @ ulong * * * * * * * * * * * * * DtoSymbolAddress ('__key3363' of type 'ulong') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * lhs: %__key3363 = alloca i64, align 8 * * * * * * * * * * * * * rhs: i64 0 * * * * * * * ForStatement::toIR(): /usr/include/dlang/ldc/std/array.d(1648) * * * * * * * * CmpExp::toElem: __key3363 < __aggr3362.length @ bool * * * * * * * * * VarExp::toElem: __key3363 @ ulong * * * * * * * * * * DtoSymbolAddress ('__key3363' of type 'ulong') * * * * * * * * * * * a normal variable * * * * * * * * * ArrayLengthExp::toElem: __aggr3362.length @ ulong * * * * * * * * * * VarExp::toElem: __aggr3362 @ string * * * * * * * * * * * DtoSymbolAddress ('__aggr3362' of type 'string') * * * * * * * * * * * * a normal variable * * * * * * * * * * DtoArrayLen * * * * * * * * * type 1: %47 = load i64, i64* %__key3363 * * * * * * * * * type 2: %.len20 = load i64, i64* %46 * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/array.d(1648) * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/array.d(1648) * * * * * * * * * * DeclarationExp::toElem: immutable immutable(char) e = __aggr3362[__key3363]; | T=void * * * * * * * * * * * DtoDeclarationExp: e * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * DtoVarDeclaration(vdtype = immutable(char)) * * * * * * * * * * * * * llvm value for decl: %e = alloca i8, align 1 * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * AssignExp::toElem: e = __aggr3362[__key3363] | (immutable(char))(immutable(char) = immutable(char)) * * * * * * * * * * * * * * VarExp::toElem: e @ immutable(char) * * * * * * * * * * * * * * * DtoSymbolAddress ('e' of type 'immutable(char)') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * IndexExp::toElem: __aggr3362[__key3363] @ immutable(char) * * * * * * * * * * * * * * * VarExp::toElem: __aggr3362 @ string * * * * * * * * * * * * * * * * DtoSymbolAddress ('__aggr3362' of type 'string') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * VarExp::toElem: __key3363 @ ulong * * * * * * * * * * * * * * * * DtoSymbolAddress ('__key3363' of type 'ulong') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * lhs: %e = alloca i8, align 1 * * * * * * * * * * * * * * * rhs: %54 = load i8, i8* %53 * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/array.d(1649) * * * * * * * * * * CallExp::toElem: emplaceRef(result[len++], e) @ char * * * * * * * * * * * VarExp::toElem: emplaceRef @ pure nothrow @nogc ref @safe char(ref char chunk, auto ref immutable(char) _param_1) * * * * * * * * * * * * DtoSymbolAddress ('emplaceRef' of type 'pure nothrow @nogc ref @safe char(ref char chunk, auto ref immutable(char) _param_1)') * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc ref @safe char(ref char chunk, auto ref immutable(char) _param_1)) * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * Final function type: i8* (i8*, i8*) * * * * * * * * * * * * * DtoResolveFunction(std.conv.emplaceRef!(char, immutable(char)).emplaceRef): /usr/include/dlang/ldc/std/conv.d(3929) * * * * * * * * * * * * * * DtoDeclareFunction(std.conv.emplaceRef!(char, immutable(char)).emplaceRef): /usr/include/dlang/ldc/std/conv.d(3929) * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc ref @safe char(ref char chunk, auto ref immutable(char) _param_1)) * * * * * * * * * * * * * * * func = declare i8* @_D3std4conv21__T10emplaceRefTaTyaZ10emplaceRefFNaNbNcNiNfKaKyaZa(i8*, i8*) * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * Building type: pure nothrow @nogc ref @safe char(ref char chunk, auto ref immutable(char) _param_1) * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc ref @safe char(ref char chunk, auto ref immutable(char) _param_1)) * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * Final function type: i8* (i8*, i8*) * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * Function type: pure nothrow @nogc ref @safe char(ref char chunk, auto ref immutable(char) _param_1) * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * IndexExp::toElem: result[len++] @ char * * * * * * * * * * * * * * VarExp::toElem: result @ char[] * * * * * * * * * * * * * * * DtoSymbolAddress ('result' of type 'char[]') * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * DtoNestedVariable for result @ /usr/include/dlang/ldc/std/array.d(1649) * * * * * * * * * * * * * * PostExp::toElem: len++ @ ulong * * * * * * * * * * * * * * * VarExp::toElem: len @ ulong * * * * * * * * * * * * * * * * DtoSymbolAddress ('len' of type 'ulong') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * VarExp::toElem: e @ immutable(char) * * * * * * * * * * * * * * DtoSymbolAddress ('e' of type 'immutable(char)') * * * * * * * * * * * * * * * a normal variable * * * * * * * * AddAssignExp::toElem: __key3363 += 1LU @ ulong * * * * * * * * * Caching l-value of __key3363 += 1LU => __key3363 * * * * * * * * * * VarExp::toElem: __key3363 @ ulong * * * * * * * * * * * DtoSymbolAddress ('__key3363' of type 'ulong') * * * * * * * * * * * * a normal variable * * * * * * * * * AddExp::toElem: __key3363 + 1LU @ ulong * * * * * * * * * * VarExp::toElem: __key3363 @ ulong * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * value = i64 1 * * * * * * * * * DtoAssign() * * * * * * * * * * lhs: %__key3363 = alloca i64, align 8 * * * * * * * * * * rhs: %52 = add i64 %51, 1 * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/array.d(1650) * * * * * * CallExp::toElem: popFront(ror) @ void * * * * * * * VarExp::toElem: popFront @ pure nothrow @nogc @safe void(ref string[] a) * * * * * * * * DtoSymbolAddress ('popFront' of type 'pure nothrow @nogc @safe void(ref string[] a)') * * * * * * * * * FuncDeclaration * * * * * * * DtoCallFunction() * * * * * * * * Building type: pure nothrow @nogc @safe void(ref string[] a) * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe void(ref string[] a)) * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: void ({ i64, { i64, i8* }* }*) * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (0) * * * * * * * * Function type: pure nothrow @nogc @safe void(ref string[] a) * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: ror @ string[] * * * * * * * * * * DtoSymbolAddress ('ror' of type 'string[]') * * * * * * * * * * * function param * * * * * * * * * * * type: string[] * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/array.d(1651) * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/array.d(1651) * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/array.d(1651) * * * * * * * * DeclarationExp::toElem: string[] __aggr3364 = ror[]; | T=void * * * * * * * * * DtoDeclarationExp: __aggr3364 * * * * * * * * * * VarDeclaration * * * * * * * * * * DtoVarDeclaration(vdtype = string[]) * * * * * * * * * * * llvm value for decl: %__aggr3364 = alloca { i64, { i64, i8* }* }, align 8 * * * * * * * * * * * expression initializer * * * * * * * * * * * AssignExp::toElem: __aggr3364 = ror[] | (string[])(string[] = string[]) * * * * * * * * * * * * VarExp::toElem: __aggr3364 @ string[] * * * * * * * * * * * * * DtoSymbolAddress ('__aggr3364' of type 'string[]') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * SliceExp::toElem: ror[] @ string[] * * * * * * * * * * * * * VarExp::toElem: ror @ string[] * * * * * * * * * * * * * * DtoSymbolAddress ('ror' of type 'string[]') * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * type: string[] * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * SetArray * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/array.d(1651) * * * * * * * * DeclarationExp::toElem: ulong __key3365 = 0LU; | T=void * * * * * * * * * DtoDeclarationExp: __key3365 * * * * * * * * * * VarDeclaration * * * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * * * llvm value for decl: %__key3365 = alloca i64, align 8 * * * * * * * * * * * expression initializer * * * * * * * * * * * AssignExp::toElem: __key3365 = 0LU | (ulong)(ulong = ulong) * * * * * * * * * * * * VarExp::toElem: __key3365 @ ulong * * * * * * * * * * * * * DtoSymbolAddress ('__key3365' of type 'ulong') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * lhs: %__key3365 = alloca i64, align 8 * * * * * * * * * * * * * rhs: i64 0 * * * * * * * ForStatement::toIR(): /usr/include/dlang/ldc/std/array.d(1651) * * * * * * * * CmpExp::toElem: __key3365 < __aggr3364.length @ bool * * * * * * * * * VarExp::toElem: __key3365 @ ulong * * * * * * * * * * DtoSymbolAddress ('__key3365' of type 'ulong') * * * * * * * * * * * a normal variable * * * * * * * * * ArrayLengthExp::toElem: __aggr3364.length @ ulong * * * * * * * * * * VarExp::toElem: __aggr3364 @ string[] * * * * * * * * * * * DtoSymbolAddress ('__aggr3364' of type 'string[]') * * * * * * * * * * * * a normal variable * * * * * * * * * * DtoArrayLen * * * * * * * * * type 1: %68 = load i64, i64* %__key3365 * * * * * * * * * type 2: %.len37 = load i64, i64* %67 * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/array.d(1651) * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/array.d(1651) * * * * * * * * * * DeclarationExp::toElem: string r = __aggr3364[__key3365]; | T=void * * * * * * * * * * * DtoDeclarationExp: r * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * DtoVarDeclaration(vdtype = string) * * * * * * * * * * * * * llvm value for decl: %r38 = alloca { i64, i8* }, align 8 * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * AssignExp::toElem: r = __aggr3364[__key3365] | (string)(string = string) * * * * * * * * * * * * * * VarExp::toElem: r @ string * * * * * * * * * * * * * * * DtoSymbolAddress ('r' of type 'string') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * IndexExp::toElem: __aggr3364[__key3365] @ string * * * * * * * * * * * * * * * VarExp::toElem: __aggr3364 @ string[] * * * * * * * * * * * * * * * * DtoSymbolAddress ('__aggr3364' of type 'string[]') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * VarExp::toElem: __key3365 @ ulong * * * * * * * * * * * * * * * * DtoSymbolAddress ('__key3365' of type 'ulong') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * SetArray * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/array.d(1653) * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/array.d(1653) * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/array.d(1653) * * * * * * * * * * * * DeclarationExp::toElem: string __aggr3366 = sep[]; | T=void * * * * * * * * * * * * * DtoDeclarationExp: __aggr3366 * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = string) * * * * * * * * * * * * * * * llvm value for decl: %__aggr3366 = alloca { i64, i8* }, align 8 * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * AssignExp::toElem: __aggr3366 = sep[] | (string)(string = string) * * * * * * * * * * * * * * * * VarExp::toElem: __aggr3366 @ string * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__aggr3366' of type 'string') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * SliceExp::toElem: sep[] @ string * * * * * * * * * * * * * * * * * VarExp::toElem: sep @ string * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('sep' of type 'string') * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * type: string * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * SetArray * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/array.d(1653) * * * * * * * * * * * * DeclarationExp::toElem: ulong __key3367 = 0LU; | T=void * * * * * * * * * * * * * DtoDeclarationExp: __key3367 * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * * * * * * * llvm value for decl: %__key3367 = alloca i64, align 8 * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * AssignExp::toElem: __key3367 = 0LU | (ulong)(ulong = ulong) * * * * * * * * * * * * * * * * VarExp::toElem: __key3367 @ ulong * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__key3367' of type 'ulong') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * lhs: %__key3367 = alloca i64, align 8 * * * * * * * * * * * * * * * * * rhs: i64 0 * * * * * * * * * * * ForStatement::toIR(): /usr/include/dlang/ldc/std/array.d(1653) * * * * * * * * * * * * CmpExp::toElem: __key3367 < __aggr3366.length @ bool * * * * * * * * * * * * * VarExp::toElem: __key3367 @ ulong * * * * * * * * * * * * * * DtoSymbolAddress ('__key3367' of type 'ulong') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * ArrayLengthExp::toElem: __aggr3366.length @ ulong * * * * * * * * * * * * * * VarExp::toElem: __aggr3366 @ string * * * * * * * * * * * * * * * DtoSymbolAddress ('__aggr3366' of type 'string') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * type 1: %84 = load i64, i64* %__key3367 * * * * * * * * * * * * * type 2: %.len52 = load i64, i64* %83 * * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/array.d(1653) * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/array.d(1653) * * * * * * * * * * * * * * DeclarationExp::toElem: immutable immutable(char) e = __aggr3366[__key3367]; | T=void * * * * * * * * * * * * * * * DtoDeclarationExp: e * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = immutable(char)) * * * * * * * * * * * * * * * * * llvm value for decl: %e53 = alloca i8, align 1 * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * AssignExp::toElem: e = __aggr3366[__key3367] | (immutable(char))(immutable(char) = immutable(char)) * * * * * * * * * * * * * * * * * * VarExp::toElem: e @ immutable(char) * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('e' of type 'immutable(char)') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * IndexExp::toElem: __aggr3366[__key3367] @ immutable(char) * * * * * * * * * * * * * * * * * * * VarExp::toElem: __aggr3366 @ string * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__aggr3366' of type 'string') * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * VarExp::toElem: __key3367 @ ulong * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__key3367' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * lhs: %e53 = alloca i8, align 1 * * * * * * * * * * * * * * * * * * * rhs: %91 = load i8, i8* %90 * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/array.d(1654) * * * * * * * * * * * * * * CallExp::toElem: emplaceRef(result[len++], e) @ char * * * * * * * * * * * * * * * VarExp::toElem: emplaceRef @ pure nothrow @nogc ref @safe char(ref char chunk, auto ref immutable(char) _param_1) * * * * * * * * * * * * * * * * DtoSymbolAddress ('emplaceRef' of type 'pure nothrow @nogc ref @safe char(ref char chunk, auto ref immutable(char) _param_1)') * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * Function type: pure nothrow @nogc ref @safe char(ref char chunk, auto ref immutable(char) _param_1) * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * IndexExp::toElem: result[len++] @ char * * * * * * * * * * * * * * * * * * VarExp::toElem: result @ char[] * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('result' of type 'char[]') * * * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for result @ /usr/include/dlang/ldc/std/array.d(1654) * * * * * * * * * * * * * * * * * * PostExp::toElem: len++ @ ulong * * * * * * * * * * * * * * * * * * * VarExp::toElem: len @ ulong * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('len' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * VarExp::toElem: e @ immutable(char) * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('e' of type 'immutable(char)') * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * AddAssignExp::toElem: __key3367 += 1LU @ ulong * * * * * * * * * * * * * Caching l-value of __key3367 += 1LU => __key3367 * * * * * * * * * * * * * * VarExp::toElem: __key3367 @ ulong * * * * * * * * * * * * * * * DtoSymbolAddress ('__key3367' of type 'ulong') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * AddExp::toElem: __key3367 + 1LU @ ulong * * * * * * * * * * * * * * VarExp::toElem: __key3367 @ ulong * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * lhs: %__key3367 = alloca i64, align 8 * * * * * * * * * * * * * * rhs: %89 = add i64 %88, 1 * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/array.d(1655) * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/array.d(1655) * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/array.d(1655) * * * * * * * * * * * * DeclarationExp::toElem: string __aggr3368 = r[]; | T=void * * * * * * * * * * * * * DtoDeclarationExp: __aggr3368 * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = string) * * * * * * * * * * * * * * * llvm value for decl: %__aggr3368 = alloca { i64, i8* }, align 8 * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * AssignExp::toElem: __aggr3368 = r[] | (string)(string = string) * * * * * * * * * * * * * * * * VarExp::toElem: __aggr3368 @ string * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__aggr3368' of type 'string') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * SliceExp::toElem: r[] @ string * * * * * * * * * * * * * * * * * VarExp::toElem: r @ string * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('r' of type 'string') * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * SetArray * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/array.d(1655) * * * * * * * * * * * * DeclarationExp::toElem: ulong __key3369 = 0LU; | T=void * * * * * * * * * * * * * DtoDeclarationExp: __key3369 * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * * * * * * * llvm value for decl: %__key3369 = alloca i64, align 8 * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * AssignExp::toElem: __key3369 = 0LU | (ulong)(ulong = ulong) * * * * * * * * * * * * * * * * VarExp::toElem: __key3369 @ ulong * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__key3369' of type 'ulong') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * lhs: %__key3369 = alloca i64, align 8 * * * * * * * * * * * * * * * * * rhs: i64 0 * * * * * * * * * * * ForStatement::toIR(): /usr/include/dlang/ldc/std/array.d(1655) * * * * * * * * * * * * CmpExp::toElem: __key3369 < __aggr3368.length @ bool * * * * * * * * * * * * * VarExp::toElem: __key3369 @ ulong * * * * * * * * * * * * * * DtoSymbolAddress ('__key3369' of type 'ulong') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * ArrayLengthExp::toElem: __aggr3368.length @ ulong * * * * * * * * * * * * * * VarExp::toElem: __aggr3368 @ string * * * * * * * * * * * * * * * DtoSymbolAddress ('__aggr3368' of type 'string') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * type 1: %105 = load i64, i64* %__key3369 * * * * * * * * * * * * * type 2: %.len70 = load i64, i64* %104 * * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/array.d(1655) * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/array.d(1655) * * * * * * * * * * * * * * DeclarationExp::toElem: immutable immutable(char) e = __aggr3368[__key3369]; | T=void * * * * * * * * * * * * * * * DtoDeclarationExp: e * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = immutable(char)) * * * * * * * * * * * * * * * * * llvm value for decl: %e71 = alloca i8, align 1 * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * AssignExp::toElem: e = __aggr3368[__key3369] | (immutable(char))(immutable(char) = immutable(char)) * * * * * * * * * * * * * * * * * * VarExp::toElem: e @ immutable(char) * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('e' of type 'immutable(char)') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * IndexExp::toElem: __aggr3368[__key3369] @ immutable(char) * * * * * * * * * * * * * * * * * * * VarExp::toElem: __aggr3368 @ string * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__aggr3368' of type 'string') * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * VarExp::toElem: __key3369 @ ulong * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__key3369' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * lhs: %e71 = alloca i8, align 1 * * * * * * * * * * * * * * * * * * * rhs: %112 = load i8, i8* %111 * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/array.d(1656) * * * * * * * * * * * * * * CallExp::toElem: emplaceRef(result[len++], e) @ char * * * * * * * * * * * * * * * VarExp::toElem: emplaceRef @ pure nothrow @nogc ref @safe char(ref char chunk, auto ref immutable(char) _param_1) * * * * * * * * * * * * * * * * DtoSymbolAddress ('emplaceRef' of type 'pure nothrow @nogc ref @safe char(ref char chunk, auto ref immutable(char) _param_1)') * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * Function type: pure nothrow @nogc ref @safe char(ref char chunk, auto ref immutable(char) _param_1) * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * IndexExp::toElem: result[len++] @ char * * * * * * * * * * * * * * * * * * VarExp::toElem: result @ char[] * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('result' of type 'char[]') * * * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for result @ /usr/include/dlang/ldc/std/array.d(1656) * * * * * * * * * * * * * * * * * * PostExp::toElem: len++ @ ulong * * * * * * * * * * * * * * * * * * * VarExp::toElem: len @ ulong * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('len' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * VarExp::toElem: e @ immutable(char) * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('e' of type 'immutable(char)') * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * AddAssignExp::toElem: __key3369 += 1LU @ ulong * * * * * * * * * * * * * Caching l-value of __key3369 += 1LU => __key3369 * * * * * * * * * * * * * * VarExp::toElem: __key3369 @ ulong * * * * * * * * * * * * * * * DtoSymbolAddress ('__key3369' of type 'ulong') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * AddExp::toElem: __key3369 + 1LU @ ulong * * * * * * * * * * * * * * VarExp::toElem: __key3369 @ ulong * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * lhs: %__key3369 = alloca i64, align 8 * * * * * * * * * * * * * * rhs: %110 = add i64 %109, 1 * * * * * * * * AddAssignExp::toElem: __key3365 += 1LU @ ulong * * * * * * * * * Caching l-value of __key3365 += 1LU => __key3365 * * * * * * * * * * VarExp::toElem: __key3365 @ ulong * * * * * * * * * * * DtoSymbolAddress ('__key3365' of type 'ulong') * * * * * * * * * * * * a normal variable * * * * * * * * * AddExp::toElem: __key3365 + 1LU @ ulong * * * * * * * * * * VarExp::toElem: __key3365 @ ulong * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * value = i64 1 * * * * * * * * * DtoAssign() * * * * * * * * * * lhs: %__key3365 = alloca i64, align 8 * * * * * * * * * * rhs: %73 = add i64 %72, 1 * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/array.d(1658) * * * * * * AssertExp::toElem: assert(len == result.length) * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/array.d(1659) * * * * * * CallExp::toElem: delegate () => cast(string)result() @ string * * * * * * * FuncExp::toElem: __lambda4 @ string delegate() pure nothrow @nogc @trusted * * * * * * * * nested * * * * * * * * kind = delegate * * * * * * * * DtoDefineFunction(std.array.join!(string[], string).join.__lambda4): /usr/include/dlang/ldc/std/array.d(1659) * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted string()) * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: { i64, i8* } (i8*) * * * * * * * * * DtoResolveFunction(std.array.join!(string[], string).join.__lambda4): /usr/include/dlang/ldc/std/array.d(1659) * * * * * * * * * * DtoDeclareFunction(std.array.join!(string[], string).join.__lambda4): /usr/include/dlang/ldc/std/array.d(1659) * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted string()) * * * * * * * * * * * func = declare { i64, i8* } @_D3std5array18__T4joinTAAyaTAyaZ4joinFAAyaAyaZ9__lambda4MFNaNbNiNeZAya(i8*) * * * * * * * * * Doing function body for: __lambda4 * * * * * * * * * DtoCreateNestedContext for __lambda4 * * * * * * * * * * DtoCreateNestedContextType for std.array.join!(string[], string).join.__lambda4 * * * * * * * * * * * DtoCreateNestedContextType for std.array.join!(string[], string).join * * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/array.d(1659) * * * * * * * * * * * CastExp::toElem: cast(string)result @ string * * * * * * * * * * * * VarExp::toElem: result @ char[] * * * * * * * * * * * * * DtoSymbolAddress ('result' of type 'char[]') * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * DtoNestedVariable for result @ /usr/include/dlang/ldc/std/array.d(1659) * * * * * * * * * * * * * * * DtoCreateNestedContextType for std.array.join!(string[], string).join * * * * * * * * * * * * * * * Context: %2 = bitcast i8* %1 to %nest.join* * * * * * * * * * * * * * * * of type: %nest.join = type { i64, { i64, i8* } } * * * * * * * * * * * * * * * Variable: result * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * Function: __lambda4 * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * Addr: %result = getelementptr %nest.join, %nest.join* %2, i32 0, i32 1 * * * * * * * * * * * * * * * of type: { i64, i8* }* * * * * * * * * * * * * Casting from 'char[]' to 'string' * * * * * * * * * * * * * DtoCastArray * * * * * * * * * * * * * * from array or sarray * * * * * * * * * * * * * * to array * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * isslice * * * * * * * * * * * return value is '0x1299bcb0' * * * * * * * * Building type: string delegate() pure nothrow @nogc @trusted * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted string()) * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: { i64, i8* } (i8*) * * * * * * * DtoCallFunction() * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (1) * * * * * * * * * %.ptr84 = extractvalue { i8*, { i64, i8* } (i8*)* } %.func82, 0 * * * * * * * * Function type: pure nothrow @nogc @trusted string() * * * * * * return value is '0x1299c490' * TemplateInstance::codegen: 'std.array.hasCheapIteration!(string[])' * * VarDeclaration::codegen(): 'std.array.hasCheapIteration!(string[]).hasCheapIteration' * * * DtoResolveVariable(std.array.hasCheapIteration!(string[]).hasCheapIteration) * TemplateInstance::codegen: 'std.traits.hasIndirections!char' * * VarDeclaration::codegen(): 'std.traits.hasIndirections!char.hasIndirections' * * * DtoResolveVariable(std.traits.hasIndirections!char.hasIndirections) * TemplateInstance::codegen: 'std.traits.isFunctionPointer!char' * * VarDeclaration::codegen(): 'std.traits.isFunctionPointer!char.isFunctionPointer' * * * DtoResolveVariable(std.traits.isFunctionPointer!char.isFunctionPointer) * TemplateInstance::codegen: 'std.array.uninitializedArray!(char[], ulong)' * * DtoDefineFunction(std.array.uninitializedArray!(char[], ulong).uninitializedArray): /usr/include/dlang/ldc/std/array.d(510) * * * Doing function body for: uninitializedArray * * * DtoCreateNestedContext for uninitializedArray * * * * DtoCreateNestedContextType for std.array.uninitializedArray!(char[], ulong).uninitializedArray * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/array.d(512) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/array.d(513) * * * * * * DeclarationExp::toElem: template isSize_t(E) | T=void * * * * * * * DtoDeclarationExp: isSize_t(E) * * * * * * * * Ignoring Symbol: template * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/array.d(514) * * * * * * DeclarationExp::toElem: template toSize_t(E) | T=void * * * * * * * DtoDeclarationExp: toSize_t(E) * * * * * * * * Ignoring Symbol: template * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/array.d(521) * * * * * * DeclarationExp::toElem: alias ST = (ulong); | T=void * * * * * * * DtoDeclarationExp: ST * * * * * * * * Ignoring Symbol: alias * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/array.d(523) * * * * * * CallExp::toElem: arrayAllocImpl(_param_0) @ char[] * * * * * * * VarExp::toElem: arrayAllocImpl @ pure nothrow @system char[](ulong _param_0) * * * * * * * * DtoSymbolAddress ('arrayAllocImpl' of type 'pure nothrow @system char[](ulong _param_0)') * * * * * * * * * FuncDeclaration * * * * * * * * * DtoFunctionType(pure nothrow @system char[](ulong _param_0)) * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: { i64, i8* } (i64) * * * * * * * * * DtoResolveFunction(std.array.arrayAllocImpl!(false, char[], ulong).arrayAllocImpl): /usr/include/dlang/ldc/std/array.d(577) * * * * * * * * * * DtoDeclareFunction(std.array.arrayAllocImpl!(false, char[], ulong).arrayAllocImpl): /usr/include/dlang/ldc/std/array.d(577) * * * * * * * * * * * DtoFunctionType(pure nothrow @system char[](ulong _param_0)) * * * * * * * * * * * func = declare { i64, i8* } @_D3std5array29__T14arrayAllocImplVbi0TAaTmZ14arrayAllocImplFNaNbmZAa(i64) * * * * * * * DtoCallFunction() * * * * * * * * Building type: pure nothrow @system char[](ulong _param_0) * * * * * * * * * DtoFunctionType(pure nothrow @system char[](ulong _param_0)) * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: { i64, i8* } (i64) * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (0) * * * * * * * * Function type: pure nothrow @system char[](ulong _param_0) * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_0 @ ulong * * * * * * * * * * DtoSymbolAddress ('_param_0' of type 'ulong') * * * * * * * * * * * function param * * * * * * * * * * * type: ulong * * * * * * return value is '0x1299f310' * TemplateInstance::codegen: 'std.typetuple.allSatisfy!(isSize_t, ulong)' * TemplateInstance::codegen: 'std.array.uninitializedArray!(char[], ulong).uninitializedArray.F!ulong' * TemplateInstance::codegen: 'std.typetuple.staticMap!(toSize_t, ulong)' * * Ignoring Dsymbol::codegen for std.typetuple.staticMap!(toSize_t, ulong).staticMap * TemplateInstance::codegen: 'std.array.uninitializedArray!(char[], ulong).uninitializedArray.F!ulong' * * Ignoring Dsymbol::codegen for std.array.uninitializedArray!(char[], ulong).uninitializedArray.F!ulong.toSize_t * TemplateInstance::codegen: 'std.array.arrayAllocImpl!(false, char[], ulong)' * * DtoDefineFunction(std.array.arrayAllocImpl!(false, char[], ulong).arrayAllocImpl): /usr/include/dlang/ldc/std/array.d(577) * * * Doing function body for: arrayAllocImpl * * * DtoCreateNestedContext for arrayAllocImpl * * * * DtoCreateNestedContextType for std.array.arrayAllocImpl!(false, char[], ulong).arrayAllocImpl * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/array.d(578) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/array.d(582) * * * * * * DeclarationExp::toElem: alias E = char; | T=void * * * * * * * DtoDeclarationExp: E * * * * * * * * Ignoring Symbol: alias * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/array.d(584) * * * * * * DeclarationExp::toElem: char[] ret = null; | T=void * * * * * * * DtoDeclarationExp: ret * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = char[]) * * * * * * * * * llvm value for decl: %ret = alloca { i64, i8* }, align 8 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: ret = null | (char[])(char[] = char[]) * * * * * * * * * * VarExp::toElem: ret @ char[] * * * * * * * * * * * DtoSymbolAddress ('ret' of type 'char[]') * * * * * * * * * * * * a normal variable * * * * * * * * * * NullExp::toElem(type=char[]): null * * * * * * * * * * * NullExp::toConstElem(type=char[]): null * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * DtoSetArrayToNull * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/array.d(589) * * * * * * DeclarationExp::toElem: alias size = ulong _param_0; ; | T=void * * * * * * * DtoDeclarationExp: size * * * * * * * * Ignoring Symbol: alias * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/array.d(594) * * * * * * VarExp::toElem: __ctfe @ bool * * * * * * * DtoSymbolAddress ('__ctfe' of type 'bool') * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/array.d(595) * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/array.d(597) * * * * * * * * AssignExp::toElem: ret = new char[](_param_0) | (char[])(char[] = char[]) * * * * * * * * * VarExp::toElem: ret @ char[] * * * * * * * * * * DtoSymbolAddress ('ret' of type 'char[]') * * * * * * * * * * * a normal variable * * * * * * * * * NewExp::toElem: new char[](_param_0) @ char[] * * * * * * * * * * new dynamic array: char[] * * * * * * * * * * VarExp::toElem: _param_0 @ ulong * * * * * * * * * * * DtoSymbolAddress ('_param_0' of type 'ulong') * * * * * * * * * * * * function param * * * * * * * * * * * * type: ulong * * * * * * * * * * DtoNewDynArray : char[] * * * * * * * * * * * DtoTypeInfoOf(type = 'char[]', base='1') * * * * * * * * * * * * Type::getTypeInfo(): char[] * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(char[])) * * * * * * * * * * * * * type = 'char[]' * * * * * * * * * * * * * typeinfo mangle: _D11TypeInfo_Aa6__initZ * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * DtoAssign() * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * SetArray * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/array.d(615) * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/array.d(615) * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/array.d(618) * * * * * * * * * DeclarationExp::toElem: char* ptr = cast(char*)malloc(_param_0 * 1LU, 2u, null); | T=void * * * * * * * * * * DtoDeclarationExp: ptr * * * * * * * * * * * VarDeclaration * * * * * * * * * * * DtoVarDeclaration(vdtype = char*) * * * * * * * * * * * * llvm value for decl: %ptr = alloca i8*, align 8 * * * * * * * * * * * * expression initializer * * * * * * * * * * * * AssignExp::toElem: ptr = cast(char*)malloc(_param_0 * 1LU, 2u, null) | (char*)(char* = char*) * * * * * * * * * * * * * VarExp::toElem: ptr @ char* * * * * * * * * * * * * * * DtoSymbolAddress ('ptr' of type 'char*') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * CastExp::toElem: cast(char*)malloc(_param_0 * 1LU, 2u, null) @ char* * * * * * * * * * * * * * * CallExp::toElem: malloc(_param_0 * 1LU, 2u, null) @ void* * * * * * * * * * * * * * * * VarExp::toElem: malloc @ pure nothrow void*(ulong sz, uint ba = 0u, const(TypeInfo) ti = null) * * * * * * * * * * * * * * * * DtoSymbolAddress ('malloc' of type 'pure nothrow void*(ulong sz, uint ba = 0u, const(TypeInfo) ti = null)') * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * Function type: pure nothrow void*(ulong sz, uint ba = 0u, const(TypeInfo) ti = null) * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * MulExp::toElem: _param_0 * 1LU @ ulong * * * * * * * * * * * * * * * * * * VarExp::toElem: _param_0 @ ulong * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('_param_0' of type 'ulong') * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * type: ulong * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * IntegerExp::toElem: 2u @ uint * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 2u @ uint * * * * * * * * * * * * * * * * * * * value = i32 2 * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * NullExp::toElem(type=const(TypeInfo)): null * * * * * * * * * * * * * * * * * * NullExp::toConstElem(type=const(TypeInfo)): null * * * * * * * * * * * * * * Casting from 'void*' to 'char*' * * * * * * * * * * * * * * * src: %6 = call i8* @_D4core6memory2GC6mallocFNaNbmkxC8TypeInfoZPv(%object.TypeInfo* null, i32 2, i64 %5) * * * * * * * * * * * * * * * to type: i8* * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * lhs: %ptr = alloca i8*, align 8 * * * * * * * * * * * * * * rhs: %6 = call i8* @_D4core6memory2GC6mallocFNaNbmkxC8TypeInfoZPv(%object.TypeInfo* null, i32 2, i64 %5) * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/array.d(621) * * * * * * * * * AssignExp::toElem: ret = ptr[0.._param_0] | (char[])(char[] = char[]) * * * * * * * * * * VarExp::toElem: ret @ char[] * * * * * * * * * * * DtoSymbolAddress ('ret' of type 'char[]') * * * * * * * * * * * * a normal variable * * * * * * * * * * SliceExp::toElem: ptr[0.._param_0] @ char[] * * * * * * * * * * * VarExp::toElem: ptr @ char* * * * * * * * * * * * * DtoSymbolAddress ('ptr' of type 'char*') * * * * * * * * * * * * * a normal variable * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * VarExp::toElem: _param_0 @ ulong * * * * * * * * * * * * DtoSymbolAddress ('_param_0' of type 'ulong') * * * * * * * * * * * * * function param * * * * * * * * * * * * * type: ulong * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * DtoAssign() * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * SetArray * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/array.d(631) * * * * * * VarExp::toElem: ret @ char[] * * * * * * * DtoSymbolAddress ('ret' of type 'char[]') * * * * * * * * a normal variable * * * * * * return value is '0x129a4658' * TemplateInstance::codegen: 'std.array.nDimensions!(char[])' * TemplateInstance::codegen: 'std.array.nDimensions!char' * TemplateInstance::codegen: 'std.traits.isArray!char' * TemplateInstance::codegen: 'std.array.blockAttribute!char' * * Ignoring Dsymbol::codegen for std.array.blockAttribute!char.core * * VarDeclaration::codegen(): 'std.array.blockAttribute!char.blockAttribute' * * * DtoResolveVariable(std.array.blockAttribute!char.blockAttribute) * TemplateInstance::codegen: 'std.conv.emplaceRef!(char, immutable(char))' * * DtoDefineFunction(std.conv.emplaceRef!(char, immutable(char)).emplaceRef): /usr/include/dlang/ldc/std/conv.d(3929) * * * Doing function body for: emplaceRef * * * DtoCreateNestedContext for emplaceRef * * * * DtoCreateNestedContextType for std.conv.emplaceRef!(char, immutable(char)).emplaceRef * * * CompoundStatement::toIR(): * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(3932) * * * * * AddrExp::toElem: &emplaceImpl(chunk, _param_1) @ char* * * * * * * CallExp::toElem: emplaceImpl(chunk, _param_1) @ char * * * * * * * VarExp::toElem: emplaceImpl @ pure nothrow @nogc ref @safe char(ref char chunk, auto ref immutable(char) arg) * * * * * * * * DtoSymbolAddress ('emplaceImpl' of type 'pure nothrow @nogc ref @safe char(ref char chunk, auto ref immutable(char) arg)') * * * * * * * * * FuncDeclaration * * * * * * * * * DtoFunctionType(pure nothrow @nogc ref @safe char(ref char chunk, auto ref immutable(char) arg)) * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: i8* (i8*, i8*) * * * * * * * * * DtoResolveFunction(std.conv.emplaceImpl!char.emplaceImpl!(immutable(char)).emplaceImpl): /usr/include/dlang/ldc/std/conv.d(3955) * * * * * * * * * * DtoDeclareFunction(std.conv.emplaceImpl!char.emplaceImpl!(immutable(char)).emplaceImpl): /usr/include/dlang/ldc/std/conv.d(3955) * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc ref @safe char(ref char chunk, auto ref immutable(char) arg)) * * * * * * * * * * * func = declare i8* @_D3std4conv19__T11emplaceImplTaZ20__T11emplaceImplTyaZ11emplaceImplFNaNbNcNiNfKaKyaZa(i8*, i8*) * * * * * * * DtoCallFunction() * * * * * * * * Building type: pure nothrow @nogc ref @safe char(ref char chunk, auto ref immutable(char) arg) * * * * * * * * * DtoFunctionType(pure nothrow @nogc ref @safe char(ref char chunk, auto ref immutable(char) arg)) * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: i8* (i8*, i8*) * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (0) * * * * * * * * Function type: pure nothrow @nogc ref @safe char(ref char chunk, auto ref immutable(char) arg) * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: chunk @ char * * * * * * * * * * DtoSymbolAddress ('chunk' of type 'char') * * * * * * * * * * * function param * * * * * * * * * * * type: char * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_1 @ immutable(char) * * * * * * * * * * DtoSymbolAddress ('_param_1' of type 'immutable(char)') * * * * * * * * * * * function param * * * * * * * * * * * type: immutable(char) * * * * * * is nothing special * * * * * * lval: %1 = call i8* @_D3std4conv19__T11emplaceImplTaZ20__T11emplaceImplTyaZ11emplaceImplFNaNbNcNiNfKaKyaZa(i8* %_param_1_arg, i8* %chunk_arg) * * * * * return value is '0x129a6e88' * TemplateInstance::codegen: 'std.conv.emplaceImpl!char.emplaceImpl!(immutable(char))' * * DtoDefineFunction(std.conv.emplaceImpl!char.emplaceImpl!(immutable(char)).emplaceImpl): /usr/include/dlang/ldc/std/conv.d(3955) * * * Doing function body for: emplaceImpl * * * DtoCreateNestedContext for emplaceImpl * * * * DtoCreateNestedContextType for std.conv.emplaceImpl!char.emplaceImpl!(immutable(char)).emplaceImpl * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(3956) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(4035) * * * * * * AssignExp::toElem: chunk = arg | (char)(char = char) * * * * * * * VarExp::toElem: chunk @ char * * * * * * * * DtoSymbolAddress ('chunk' of type 'char') * * * * * * * * * function param * * * * * * * * * type: char * * * * * * * VarExp::toElem: arg @ char * * * * * * * * DtoSymbolAddress ('arg' of type 'immutable(char)') * * * * * * * * * nested variable * * * * * * * * * DtoNestedVariable for arg @ /usr/include/dlang/ldc/std/conv.d(4035) * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * DtoAssign() * * * * * * * * lhs: i8* %chunk_arg * * * * * * * * rhs: %1 = load i8, i8* %arg_arg * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(4036) * * * * * * AddrExp::toElem: &chunk @ char* * * * * * * * VarExp::toElem: chunk @ char * * * * * * * * DtoSymbolAddress ('chunk' of type 'char') * * * * * * * * * function param * * * * * * * * * type: char * * * * * * * is nothing special * * * * * * * lval: i8* %chunk_arg * * * * * * return value is '0x129accc0' * TemplateInstance::codegen: 'std.format.formattedWrite!(LockingTextWriter, char, string, ulong)' * * DtoDefineFunction(std.format.formattedWrite!(LockingTextWriter, char, string, ulong).formattedWrite): /usr/include/dlang/ldc/std/format.d(420) * * * DtoFunctionType(@safe uint(LockingTextWriter w, const(char[]) fmt, string _param_2, ulong _param_3)) * * * * x86-64 ABI: Transforming return type * * * * x86-64 ABI: Transforming argument types * * * * Final function type: i32 (i64, { i64, i8* }, { i64, i8* }, %std.stdio.File.LockingTextWriter*) * * * DtoResolveFunction(std.format.formattedWrite!(LockingTextWriter, char, string, ulong).formattedWrite): /usr/include/dlang/ldc/std/format.d(420) * * * * DtoDeclareFunction(std.format.formattedWrite!(LockingTextWriter, char, string, ulong).formattedWrite): /usr/include/dlang/ldc/std/format.d(420) * * * * * DtoFunctionType(@safe uint(LockingTextWriter w, const(char[]) fmt, string _param_2, ulong _param_3)) * * * * * func = declare i32 @_D3std6format64__T14formattedWriteTS3std5stdio4File17LockingTextWriterTaTAyaTmZ14formattedWriteFNfS3std5stdio4File17LockingTextWriterxAaAyamZk(i64, { i64, i8* }, { i64, i8* }, %std.stdio.File.LockingTextWriter*) * * * Doing function body for: formattedWrite * * * DtoCreateNestedContext for formattedWrite * * * * DtoCreateNestedContextType for std.format.formattedWrite!(LockingTextWriter, char, string, ulong).formattedWrite * * * * * has nested frame * * * * * Function formattedWrite has depth 0 * * * * * Nested var 'spec' of type %"std.format.FormatSpec!char.FormatSpec" = type { i32, i32, i8, i8, i8, i8, [4 x i8], { i64, i8* }, { i64, i8* }, { i64, i8* } } * * * * * frameType = %nest.formattedWrite.5 = type { %"std.format.FormatSpec!char.FormatSpec" } * * * * nested var: spec * * * TryFinallyStatement::toIR(): * * * * ExpStatement::toIR(): * * * * * CallExp::toElem: w.~this() @ void * * * * * * DotVarExp::toElem: w.~this @ @trusted void() * * * * * * * VarExp::toElem: w @ LockingTextWriter * * * * * * * * DtoSymbolAddress ('w' of type 'LockingTextWriter') * * * * * * * * * function param * * * * * * * * * type: LockingTextWriter * * * * * * DtoCallFunction() * * * * * * * doing normal arguments * * * * * * * Arguments so far: (1) * * * * * * * * %std.stdio.File.LockingTextWriter* %w_arg * * * * * * * Function type: @trusted void() * * * * CompoundStatement::toIR(): * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(421) * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(424) * * * * * * * DeclarationExp::toElem: alias FPfmt = void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe; | T=void * * * * * * * * DtoDeclarationExp: FPfmt * * * * * * * * * Ignoring Symbol: alias * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(426) * * * * * * * DeclarationExp::toElem: FormatSpec!char spec = spec = FormatSpec , spec.this(fmt); | T=void * * * * * * * * DtoDeclarationExp: spec * * * * * * * * * VarDeclaration * * * * * * * * * DtoVarDeclaration(vdtype = FormatSpec!char) * * * * * * * * * * has nestedref set (referenced by nested function/delegate) * * * * * * * * * * llvm value for decl: %spec = getelementptr %nest.formattedWrite.5, %nest.formattedWrite.5* %.frame, i32 0, i32 0 * * * * * * * * * * expression initializer * * * * * * * * * * CommaExp::toElem: spec = FormatSpec , spec.this(fmt) @ FormatSpec!char * * * * * * * * * * * AssignExp::toElem: spec = FormatSpec | (FormatSpec!char)(FormatSpec!char = FormatSpec!char) * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(426) * * * * * * * * * * * * VarExp::toElem: FormatSpec @ FormatSpec!char * * * * * * * * * * * * * DtoSymbolAddress ('FormatSpec' of type 'FormatSpec!char') * * * * * * * * * * * * * * Sym: type=FormatSpec!char * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * CallExp::toElem: spec.this(fmt) @ FormatSpec!char * * * * * * * * * * * * DotVarExp::toElem: spec.this @ pure nothrow @nogc ref @safe FormatSpec!char(const(char[]) fmt) * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(426) * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * %spec = getelementptr %nest.formattedWrite.5, %nest.formattedWrite.5* %.frame, i32 0, i32 0 * * * * * * * * * * * * * Function type: pure nothrow @nogc ref @safe FormatSpec!char(const(char[]) fmt) * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * VarExp::toElem: fmt @ const(char[]) * * * * * * * * * * * * * * * DtoSymbolAddress ('fmt' of type 'const(char[])') * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * type: const(char[]) * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(428) * * * * * * * DeclarationExp::toElem: void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe[2] funs = null; | T=void * * * * * * * * DtoDeclarationExp: funs * * * * * * * * * VarDeclaration * * * * * * * * * DtoVarDeclaration(vdtype = void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe[2]) * * * * * * * * * * Building type: void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe[2] * * * * * * * * * * * Building type: void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe * * * * * * * * * * * * Building type: pure nothrow @safe void(LockingTextWriter, const(void)*, ref FormatSpec!char) * * * * * * * * * * * * * DtoFunctionType(pure nothrow @safe void(LockingTextWriter, const(void)*, ref FormatSpec!char)) * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * Final function type: void (%"std.format.FormatSpec!char.FormatSpec"*, i8*, %std.stdio.File.LockingTextWriter*) * * * * * * * * * * llvm value for decl: %funs = alloca [2 x void (%"std.format.FormatSpec!char.FormatSpec"*, i8*, %std.stdio.File.LockingTextWriter*)*], align 8 * * * * * * * * * * expression initializer * * * * * * * * * * AssignExp::toElem: funs[] = null | (void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe[])(void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe[] = void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe) * * * * * * * * * * * performing static array literal assignment * * * * * * * * * * * SliceExp::toElem: funs[] @ void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe[] * * * * * * * * * * * * VarExp::toElem: funs @ void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe[2] * * * * * * * * * * * * * DtoSymbolAddress ('funs' of type 'void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe[2]') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * NullExp::toElem(type=void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe): null * * * * * * * * * * * * NullExp::toConstElem(type=void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe): null * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * DtoArrayInit * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(429) * * * * * * * DeclarationExp::toElem: const(void)*[2] argsAddresses = null; | T=void * * * * * * * * DtoDeclarationExp: argsAddresses * * * * * * * * * VarDeclaration * * * * * * * * * DtoVarDeclaration(vdtype = const(void)*[2]) * * * * * * * * * * Building type: const(void)*[2] * * * * * * * * * * llvm value for decl: %argsAddresses = alloca [2 x i8*], align 8 * * * * * * * * * * expression initializer * * * * * * * * * * AssignExp::toElem: argsAddresses[] = null | (const(void)*[])(const(void)*[] = const(void)*) * * * * * * * * * * * performing static array literal assignment * * * * * * * * * * * SliceExp::toElem: argsAddresses[] @ const(void)*[] * * * * * * * * * * * * VarExp::toElem: argsAddresses @ const(void)*[2] * * * * * * * * * * * * * DtoSymbolAddress ('argsAddresses' of type 'const(void)*[2]') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * NullExp::toElem(type=const(void)*): null * * * * * * * * * * * * NullExp::toConstElem(type=const(void)*): null * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * DtoArrayInit * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(430) * * * * * * * NotExp::toElem: !__ctfe @ bool * * * * * * * * VarExp::toElem: __ctfe @ bool * * * * * * * * * DtoSymbolAddress ('__ctfe' of type 'bool') * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(431) * * * * * * * * UnrolledLoopStatement::toIR(): /usr/include/dlang/ldc/std/format.d(432) * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(432) * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(432) * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(432) * * * * * * * * * * * * DeclarationExp::toElem: enum ulong i = 0LU; | T=void * * * * * * * * * * * * * DtoDeclarationExp: i * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * Manifest constant, nothing to do. * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(432) * * * * * * * * * * * * DeclarationExp::toElem: alias Arg = string; | T=void * * * * * * * * * * * * * DtoDeclarationExp: Arg * * * * * * * * * * * * * * Ignoring Symbol: alias * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(434) * * * * * * * * * * * * AssignExp::toElem: funs[0] = (*() => & formatGeneric)() | (void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe)(void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe = void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe) * * * * * * * * * * * * * IndexExp::toElem: funs[0] @ void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe * * * * * * * * * * * * * * VarExp::toElem: funs @ void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe[2] * * * * * * * * * * * * * * * DtoSymbolAddress ('funs' of type 'void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe[2]') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * CallExp::toElem: (*() => & formatGeneric)() @ void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe * * * * * * * * * * * * * * PtrExp::toElem: *() => & formatGeneric @ pure nothrow @nogc @trusted void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe() * * * * * * * * * * * * * * * FuncExp::toElem: __lambda6 @ void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe function() pure nothrow @nogc @trusted * * * * * * * * * * * * * * * * kind = function * * * * * * * * * * * * * * * * DtoDefineFunction(std.format.formattedWrite!(LockingTextWriter, char, string, ulong).formattedWrite.__lambda6): /usr/include/dlang/ldc/std/format.d(434) * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe()) * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * Final function type: void (%"std.format.FormatSpec!char.FormatSpec"*, i8*, %std.stdio.File.LockingTextWriter*)* () * * * * * * * * * * * * * * * * * DtoResolveFunction(std.format.formattedWrite!(LockingTextWriter, char, string, ulong).formattedWrite.__lambda6): /usr/include/dlang/ldc/std/format.d(434) * * * * * * * * * * * * * * * * * * DtoDeclareFunction(std.format.formattedWrite!(LockingTextWriter, char, string, ulong).formattedWrite.__lambda6): /usr/include/dlang/ldc/std/format.d(434) * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe()) * * * * * * * * * * * * * * * * * * * func = declare void (%"std.format.FormatSpec!char.FormatSpec"*, i8*, %std.stdio.File.LockingTextWriter*)* @_D3std6format64__T14formattedWriteTS3std5stdio4File17LockingTextWriterTaTAyaTmZ14formattedWriteFS3std5stdio4File17LockingTextWriterxAaAyamZ9__lambda6FNaNbNiNeZPFNaNbNfS3std5stdio4File17LockingTextWriterPxvKS3std6format18__T10FormatSpecTaZ10FormatSpecZv() * * * * * * * * * * * * * * * * * Doing function body for: __lambda6 * * * * * * * * * * * * * * * * * DtoCreateNestedContext for __lambda6 * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for std.format.formattedWrite!(LockingTextWriter, char, string, ulong).formattedWrite.__lambda6 * * * * * * * * * * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * * * * * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/format.d(434) * * * * * * * * * * * * * * * * * * * SymOffExp::toElem: & formatGeneric @ void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('formatGeneric' of type '@system void(LockingTextWriter w, const(void)* arg, ref FormatSpec!char f)') * * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * * Casting from 'void function(LockingTextWriter w, const(void)* arg, ref FormatSpec!char f) @system' to 'void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe' * * * * * * * * * * * * * * * * * * * * * src: ; Function Attrs: uwtable define weak_odr void @_D3std6format61__T13formatGenericTS3std5stdio4File17LockingTextWriterTAyaTaZ13formatGenericFS3std5stdio4File17LockingTextWriterPxvKS3std6format18__T10FormatSpecTaZ10FormatSpecZv(%"std.format.FormatSpec!char.FormatSpec"* %f_arg, i8* %arg_arg, %std.stdio.File.LockingTextWriter* byval %w_arg) #0 comdat personality i32 (i32, i32, i64, i8*, i8*)* @_d_eh_personality { %arg = alloca i8*, align 8 %__copytmp3343 = alloca %std.stdio.File.LockingTextWriter, align 8 %eh.ptr = alloca i8* %eh.selector = alloca i32 %branchsel.finally = alloca i32 store i8* %arg_arg, i8** %arg %1 = bitcast %std.stdio.File.LockingTextWriter* %__copytmp3343 to i8* %2 = bitcast %std.stdio.File.LockingTextWriter* %w_arg to i8* call void @llvm.memcpy.p0i8.p0i8.i64(i8* %1, i8* %2, i64 24, i32 1, i1 false) invoke void @_D3std5stdio4File17LockingTextWriter10__postblitMFNeZv(%std.stdio.File.LockingTextWriter* %__copytmp3343) to label %postinvoke unwind label %landingPad finally: ; preds = %postinvoke1, %landingPad call void @_D3std5stdio4File17LockingTextWriter6__dtorMFNeZv(%std.stdio.File.LockingTextWriter* %w_arg) %3 = load i32, i32* %branchsel.finally switch i32 %3, label %unwind.resume [ i32 1, label %try.success ] postinvoke: ; preds = %0 %4 = load i8*, i8** %arg %5 = bitcast i8* %4 to { i64, i8* }* %6 = load { i64, i8* }, { i64, i8* }* %5 invoke void @_D3std6format59__T11formatValueTS3std5stdio4File17LockingTextWriterTAyaTaZ11formatValueFNfS3std5stdio4File17LockingTextWriterAyaKS3std6format18__T10FormatSpecTaZ10FormatSpecZv(%"std.format.FormatSpec!char.FormatSpec"* %f_arg, { i64, i8* } %6, %std.stdio.File.LockingTextWriter* byval %__copytmp3343) to label %postinvoke1 unwind label %landingPad postinvoke1: ; preds = %postinvoke store i32 1, i32* %branchsel.finally br label %finally landingPad: ; preds = %postinvoke, %0 %7 = landingpad { i8*, i32 } cleanup %8 = extractvalue { i8*, i32 } %7, 0 store i8* %8, i8** %eh.ptr %9 = extractvalue { i8*, i32 } %7, 1 store i32 %9, i32* %eh.selector store i32 0, i32* %branchsel.finally br label %finally unwind.resume: ; preds = %finally %10 = load i8*, i8** %eh.ptr call void @_d_eh_resume_unwind(i8* %10) unreachable try.success: ; preds = %finally ret void } * * * * * * * * * * * * * * * * * * * * * to type: void (%"std.format.FormatSpec!char.FormatSpec"*, i8*, %std.stdio.File.LockingTextWriter*)* * * * * * * * * * * * * * * * * * * * return value is '0x127c0f18' * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * Building type: pure nothrow @nogc @trusted void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe() * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe()) * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * Final function type: void (%"std.format.FormatSpec!char.FormatSpec"*, i8*, %std.stdio.File.LockingTextWriter*)* () * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @trusted void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe() * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * lhs: %14 = getelementptr [2 x void (%"std.format.FormatSpec!char.FormatSpec"*, i8*, %std.stdio.File.LockingTextWriter*)*], [2 x void (%"std.format.FormatSpec!char.FormatSpec"*, i8*, %std.stdio.File.LockingTextWriter*)*]* %funs, i32 0, i64 0 * * * * * * * * * * * * * * rhs: %15 = invoke void (%"std.format.FormatSpec!char.FormatSpec"*, i8*, %std.stdio.File.LockingTextWriter*)* @_D3std6format64__T14formattedWriteTS3std5stdio4File17LockingTextWriterTaTAyaTmZ14formattedWriteFS3std5stdio4File17LockingTextWriterxAaAyamZ9__lambda6FNaNbNiNeZPFNaNbNfS3std5stdio4File17LockingTextWriterPxvKS3std6format18__T10FormatSpecTaZ10FormatSpecZv() to label %postinvoke3 unwind label %landingPad * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(437) * * * * * * * * * * * * AssignExp::toElem: argsAddresses[0] = (*(ref string arg) => cast(const(void*))&arg)(_param_2) | (const(void)*)(const(void)* = const(void)*) * * * * * * * * * * * * * IndexExp::toElem: argsAddresses[0] @ const(void)* * * * * * * * * * * * * * * VarExp::toElem: argsAddresses @ const(void)*[2] * * * * * * * * * * * * * * * DtoSymbolAddress ('argsAddresses' of type 'const(void)*[2]') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * CallExp::toElem: (*(ref string arg) => cast(const(void*))&arg)(_param_2) @ const(void)* * * * * * * * * * * * * * * PtrExp::toElem: *(ref string arg) => cast(const(void*))&arg @ pure nothrow @nogc @trusted const(void*)(ref string arg) * * * * * * * * * * * * * * * FuncExp::toElem: __lambda7 @ const(void*) function(ref string arg) pure nothrow @nogc @trusted * * * * * * * * * * * * * * * * kind = function * * * * * * * * * * * * * * * * DtoDefineFunction(std.format.formattedWrite!(LockingTextWriter, char, string, ulong).formattedWrite.__lambda7): /usr/include/dlang/ldc/std/format.d(437) * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted const(void*)(ref string arg)) * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * Final function type: i8* ({ i64, i8* }*) * * * * * * * * * * * * * * * * * DtoResolveFunction(std.format.formattedWrite!(LockingTextWriter, char, string, ulong).formattedWrite.__lambda7): /usr/include/dlang/ldc/std/format.d(437) * * * * * * * * * * * * * * * * * * DtoDeclareFunction(std.format.formattedWrite!(LockingTextWriter, char, string, ulong).formattedWrite.__lambda7): /usr/include/dlang/ldc/std/format.d(437) * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted const(void*)(ref string arg)) * * * * * * * * * * * * * * * * * * * func = declare i8* @_D3std6format64__T14formattedWriteTS3std5stdio4File17LockingTextWriterTaTAyaTmZ14formattedWriteFS3std5stdio4File17LockingTextWriterxAaAyamZ18__T9__lambda7TAyaZ9__lambda7FNaNbNiNeKAyaZxPv({ i64, i8* }*) * * * * * * * * * * * * * * * * * Doing function body for: __lambda7 * * * * * * * * * * * * * * * * * DtoCreateNestedContext for __lambda7 * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for std.format.formattedWrite!(LockingTextWriter, char, string, ulong).formattedWrite.__lambda7 * * * * * * * * * * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * * * * * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/format.d(437) * * * * * * * * * * * * * * * * * * * CastExp::toElem: cast(const(void*))&arg @ const(void*) * * * * * * * * * * * * * * * * * * * * AddrExp::toElem: &arg @ string* * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: arg @ string * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('arg' of type 'string') * * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * * type: string * * * * * * * * * * * * * * * * * * * * * is nothing special * * * * * * * * * * * * * * * * * * * * * lval: { i64, i8* }* %arg_arg * * * * * * * * * * * * * * * * * * * * Casting from 'string*' to 'const(void*)' * * * * * * * * * * * * * * * * * * * * * src: { i64, i8* }* %arg_arg * * * * * * * * * * * * * * * * * * * * * to type: i8* * * * * * * * * * * * * * * * * * * * return value is '0x129b6028' * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * Building type: pure nothrow @nogc @trusted const(void*)(ref string arg) * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted const(void*)(ref string arg)) * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * Final function type: i8* ({ i64, i8* }*) * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @trusted const(void*)(ref string arg) * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * VarExp::toElem: _param_2 @ string * * * * * * * * * * * * * * * * * DtoSymbolAddress ('_param_2' of type 'string') * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * type: string * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * lhs: %10 = getelementptr [2 x i8*], [2 x i8*]* %argsAddresses, i32 0, i64 0 * * * * * * * * * * * * * * rhs: %11 = invoke i8* @_D3std6format64__T14formattedWriteTS3std5stdio4File17LockingTextWriterTaTAyaTmZ14formattedWriteFS3std5stdio4File17LockingTextWriterxAaAyamZ18__T9__lambda7TAyaZ9__lambda7FNaNbNiNeKAyaZxPv({ i64, i8* }* %_param_2) to label %postinvoke4 unwind label %landingPad * * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(440) * * * * * * * * * * * * IntegerExp::toElem: 0 @ int * * * * * * * * * * * * * IntegerExp::toConstElem: 0 @ int * * * * * * * * * * * * * * value = i32 0 * * * * * * * * * * * * if conditional: i32 0 * * * * * * * * * * * * Casting from 'int' to 'bool' * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(440) * * * * * * * * * * * * * CallExp::toElem: formatValue((LockingTextWriter __copytmp3371 = (__copytmp3371 = w).__postblit(); , __copytmp3371), _param_2, spec) @ void * * * * * * * * * * * * * * VarExp::toElem: formatValue @ @safe void(LockingTextWriter w, string obj, ref FormatSpec!char f) * * * * * * * * * * * * * * * DtoSymbolAddress ('formatValue' of type '@safe void(LockingTextWriter w, string obj, ref FormatSpec!char f)') * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * Function type: @safe void(LockingTextWriter w, string obj, ref FormatSpec!char f) * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * CommaExp::toElem: LockingTextWriter __copytmp3371 = (__copytmp3371 = w).__postblit(); , __copytmp3371 @ LockingTextWriter * * * * * * * * * * * * * * * * * DeclarationExp::toElem: LockingTextWriter __copytmp3371 = (__copytmp3371 = w).__postblit(); | T=void * * * * * * * * * * * * * * * * * * DtoDeclarationExp: __copytmp3371 * * * * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = LockingTextWriter) * * * * * * * * * * * * * * * * * * * * llvm value for decl: %__copytmp3371 = alloca %std.stdio.File.LockingTextWriter, align 8 * * * * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * * * * CallExp::toElem: (__copytmp3371 = w).__postblit() @ void * * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: (__copytmp3371 = w).__postblit @ @trusted void() * * * * * * * * * * * * * * * * * * * * * * AssignExp::toElem: __copytmp3371 = w | (LockingTextWriter)(LockingTextWriter = LockingTextWriter) * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: __copytmp3371 @ LockingTextWriter * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__copytmp3371' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: w @ LockingTextWriter * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * * * * type: LockingTextWriter * * * * * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * * * * * * %__copytmp3371 = alloca %std.stdio.File.LockingTextWriter, align 8 * * * * * * * * * * * * * * * * * * * * * * Function type: @trusted void() * * * * * * * * * * * * * * * * * VarExp::toElem: __copytmp3371 @ LockingTextWriter * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__copytmp3371' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * VarExp::toElem: _param_2 @ string * * * * * * * * * * * * * * * * * DtoSymbolAddress ('_param_2' of type 'string') * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * type: string * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(440) * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(432) * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(432) * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(432) * * * * * * * * * * * * DeclarationExp::toElem: enum ulong i = 1LU; | T=void * * * * * * * * * * * * * DtoDeclarationExp: i * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * Manifest constant, nothing to do. * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(432) * * * * * * * * * * * * DeclarationExp::toElem: alias Arg = ulong; | T=void * * * * * * * * * * * * * DtoDeclarationExp: Arg * * * * * * * * * * * * * * Ignoring Symbol: alias * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(434) * * * * * * * * * * * * AssignExp::toElem: funs[1] = (*() => & formatGeneric)() | (void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe)(void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe = void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe) * * * * * * * * * * * * * IndexExp::toElem: funs[1] @ void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe * * * * * * * * * * * * * * VarExp::toElem: funs @ void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe[2] * * * * * * * * * * * * * * * DtoSymbolAddress ('funs' of type 'void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe[2]') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * CallExp::toElem: (*() => & formatGeneric)() @ void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe * * * * * * * * * * * * * * PtrExp::toElem: *() => & formatGeneric @ pure nothrow @nogc @trusted void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe() * * * * * * * * * * * * * * * FuncExp::toElem: __lambda8 @ void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe function() pure nothrow @nogc @trusted * * * * * * * * * * * * * * * * kind = function * * * * * * * * * * * * * * * * DtoDefineFunction(std.format.formattedWrite!(LockingTextWriter, char, string, ulong).formattedWrite.__lambda8): /usr/include/dlang/ldc/std/format.d(434) * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe()) * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * Final function type: void (%"std.format.FormatSpec!char.FormatSpec"*, i8*, %std.stdio.File.LockingTextWriter*)* () * * * * * * * * * * * * * * * * * DtoResolveFunction(std.format.formattedWrite!(LockingTextWriter, char, string, ulong).formattedWrite.__lambda8): /usr/include/dlang/ldc/std/format.d(434) * * * * * * * * * * * * * * * * * * DtoDeclareFunction(std.format.formattedWrite!(LockingTextWriter, char, string, ulong).formattedWrite.__lambda8): /usr/include/dlang/ldc/std/format.d(434) * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe()) * * * * * * * * * * * * * * * * * * * func = declare void (%"std.format.FormatSpec!char.FormatSpec"*, i8*, %std.stdio.File.LockingTextWriter*)* @_D3std6format64__T14formattedWriteTS3std5stdio4File17LockingTextWriterTaTAyaTmZ14formattedWriteFS3std5stdio4File17LockingTextWriterxAaAyamZ9__lambda8FNaNbNiNeZPFNaNbNfS3std5stdio4File17LockingTextWriterPxvKS3std6format18__T10FormatSpecTaZ10FormatSpecZv() * * * * * * * * * * * * * * * * * Doing function body for: __lambda8 * * * * * * * * * * * * * * * * * DtoCreateNestedContext for __lambda8 * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for std.format.formattedWrite!(LockingTextWriter, char, string, ulong).formattedWrite.__lambda8 * * * * * * * * * * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * * * * * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/format.d(434) * * * * * * * * * * * * * * * * * * * SymOffExp::toElem: & formatGeneric @ void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('formatGeneric' of type '@system void(LockingTextWriter w, const(void)* arg, ref FormatSpec!char f)') * * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(@system void(LockingTextWriter w, const(void)* arg, ref FormatSpec!char f)) * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * * * Final function type: void (%"std.format.FormatSpec!char.FormatSpec"*, i8*, %std.stdio.File.LockingTextWriter*) * * * * * * * * * * * * * * * * * * * * * DtoResolveFunction(std.format.formatGeneric!(LockingTextWriter, ulong, char).formatGeneric): /usr/include/dlang/ldc/std/format.d(3455) * * * * * * * * * * * * * * * * * * * * * * DtoDeclareFunction(std.format.formatGeneric!(LockingTextWriter, ulong, char).formatGeneric): /usr/include/dlang/ldc/std/format.d(3455) * * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(@system void(LockingTextWriter w, const(void)* arg, ref FormatSpec!char f)) * * * * * * * * * * * * * * * * * * * * * * * func = declare void @_D3std6format59__T13formatGenericTS3std5stdio4File17LockingTextWriterTmTaZ13formatGenericFS3std5stdio4File17LockingTextWriterPxvKS3std6format18__T10FormatSpecTaZ10FormatSpecZv(%"std.format.FormatSpec!char.FormatSpec"*, i8*, %std.stdio.File.LockingTextWriter*) * * * * * * * * * * * * * * * * * * * * Casting from 'void function(LockingTextWriter w, const(void)* arg, ref FormatSpec!char f) @system' to 'void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe' * * * * * * * * * * * * * * * * * * * * * src: declare void @_D3std6format59__T13formatGenericTS3std5stdio4File17LockingTextWriterTmTaZ13formatGenericFS3std5stdio4File17LockingTextWriterPxvKS3std6format18__T10FormatSpecTaZ10FormatSpecZv(%"std.format.FormatSpec!char.FormatSpec"*, i8*, %std.stdio.File.LockingTextWriter* byval) * * * * * * * * * * * * * * * * * * * * * to type: void (%"std.format.FormatSpec!char.FormatSpec"*, i8*, %std.stdio.File.LockingTextWriter*)* * * * * * * * * * * * * * * * * * * * return value is '0x129bca28' * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * Building type: pure nothrow @nogc @trusted void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe() * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe()) * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * Final function type: void (%"std.format.FormatSpec!char.FormatSpec"*, i8*, %std.stdio.File.LockingTextWriter*)* () * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @trusted void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe() * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * lhs: %19 = getelementptr [2 x void (%"std.format.FormatSpec!char.FormatSpec"*, i8*, %std.stdio.File.LockingTextWriter*)*], [2 x void (%"std.format.FormatSpec!char.FormatSpec"*, i8*, %std.stdio.File.LockingTextWriter*)*]* %funs, i32 0, i64 1 * * * * * * * * * * * * * * rhs: %20 = invoke void (%"std.format.FormatSpec!char.FormatSpec"*, i8*, %std.stdio.File.LockingTextWriter*)* @_D3std6format64__T14formattedWriteTS3std5stdio4File17LockingTextWriterTaTAyaTmZ14formattedWriteFS3std5stdio4File17LockingTextWriterxAaAyamZ9__lambda8FNaNbNiNeZPFNaNbNfS3std5stdio4File17LockingTextWriterPxvKS3std6format18__T10FormatSpecTaZ10FormatSpecZv() to label %postinvoke9 unwind label %landingPad * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(437) * * * * * * * * * * * * AssignExp::toElem: argsAddresses[1] = (*(ref ulong arg) => cast(const(void*))&arg)(_param_3) | (const(void)*)(const(void)* = const(void)*) * * * * * * * * * * * * * IndexExp::toElem: argsAddresses[1] @ const(void)* * * * * * * * * * * * * * * VarExp::toElem: argsAddresses @ const(void)*[2] * * * * * * * * * * * * * * * DtoSymbolAddress ('argsAddresses' of type 'const(void)*[2]') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * CallExp::toElem: (*(ref ulong arg) => cast(const(void*))&arg)(_param_3) @ const(void)* * * * * * * * * * * * * * * PtrExp::toElem: *(ref ulong arg) => cast(const(void*))&arg @ pure nothrow @nogc @trusted const(void*)(ref ulong arg) * * * * * * * * * * * * * * * FuncExp::toElem: __lambda9 @ const(void*) function(ref ulong arg) pure nothrow @nogc @trusted * * * * * * * * * * * * * * * * kind = function * * * * * * * * * * * * * * * * DtoDefineFunction(std.format.formattedWrite!(LockingTextWriter, char, string, ulong).formattedWrite.__lambda9): /usr/include/dlang/ldc/std/format.d(437) * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted const(void*)(ref ulong arg)) * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * Final function type: i8* (i64*) * * * * * * * * * * * * * * * * * DtoResolveFunction(std.format.formattedWrite!(LockingTextWriter, char, string, ulong).formattedWrite.__lambda9): /usr/include/dlang/ldc/std/format.d(437) * * * * * * * * * * * * * * * * * * DtoDeclareFunction(std.format.formattedWrite!(LockingTextWriter, char, string, ulong).formattedWrite.__lambda9): /usr/include/dlang/ldc/std/format.d(437) * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted const(void*)(ref ulong arg)) * * * * * * * * * * * * * * * * * * * func = declare i8* @_D3std6format64__T14formattedWriteTS3std5stdio4File17LockingTextWriterTaTAyaTmZ14formattedWriteFS3std5stdio4File17LockingTextWriterxAaAyamZ16__T9__lambda9TmZ9__lambda9FNaNbNiNeKmZxPv(i64*) * * * * * * * * * * * * * * * * * Doing function body for: __lambda9 * * * * * * * * * * * * * * * * * DtoCreateNestedContext for __lambda9 * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for std.format.formattedWrite!(LockingTextWriter, char, string, ulong).formattedWrite.__lambda9 * * * * * * * * * * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * * * * * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/format.d(437) * * * * * * * * * * * * * * * * * * * CastExp::toElem: cast(const(void*))&arg @ const(void*) * * * * * * * * * * * * * * * * * * * * AddrExp::toElem: &arg @ ulong* * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: arg @ ulong * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('arg' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * * type: ulong * * * * * * * * * * * * * * * * * * * * * is nothing special * * * * * * * * * * * * * * * * * * * * * lval: i64* %arg_arg * * * * * * * * * * * * * * * * * * * * Casting from 'ulong*' to 'const(void*)' * * * * * * * * * * * * * * * * * * * * * src: i64* %arg_arg * * * * * * * * * * * * * * * * * * * * * to type: i8* * * * * * * * * * * * * * * * * * * * return value is '0x129bf718' * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * Building type: pure nothrow @nogc @trusted const(void*)(ref ulong arg) * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted const(void*)(ref ulong arg)) * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * Final function type: i8* (i64*) * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @trusted const(void*)(ref ulong arg) * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * VarExp::toElem: _param_3 @ ulong * * * * * * * * * * * * * * * * * DtoSymbolAddress ('_param_3' of type 'ulong') * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * type: ulong * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * lhs: %13 = getelementptr [2 x i8*], [2 x i8*]* %argsAddresses, i32 0, i64 1 * * * * * * * * * * * * * * rhs: %14 = invoke i8* @_D3std6format64__T14formattedWriteTS3std5stdio4File17LockingTextWriterTaTAyaTmZ14formattedWriteFS3std5stdio4File17LockingTextWriterxAaAyamZ16__T9__lambda9TmZ9__lambda9FNaNbNiNeKmZxPv(i64* %_param_3) to label %postinvoke10 unwind label %landingPad * * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(440) * * * * * * * * * * * * IntegerExp::toElem: 0 @ int * * * * * * * * * * * * * IntegerExp::toConstElem: 0 @ int * * * * * * * * * * * * * * value = i32 0 * * * * * * * * * * * * if conditional: i32 0 * * * * * * * * * * * * Casting from 'int' to 'bool' * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(440) * * * * * * * * * * * * * CallExp::toElem: formatValue((LockingTextWriter __copytmp3384 = (__copytmp3384 = w).__postblit(); , __copytmp3384), _param_3, spec) @ void * * * * * * * * * * * * * * VarExp::toElem: formatValue @ @safe void(LockingTextWriter w, ulong obj, ref FormatSpec!char f) * * * * * * * * * * * * * * * DtoSymbolAddress ('formatValue' of type '@safe void(LockingTextWriter w, ulong obj, ref FormatSpec!char f)') * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * DtoFunctionType(@safe void(LockingTextWriter w, ulong obj, ref FormatSpec!char f)) * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * Final function type: void (%"std.format.FormatSpec!char.FormatSpec"*, i64, %std.stdio.File.LockingTextWriter*) * * * * * * * * * * * * * * * * DtoResolveFunction(std.format.formatValue!(LockingTextWriter, ulong, char).formatValue): /usr/include/dlang/ldc/std/format.d(1397) * * * * * * * * * * * * * * * * * DtoDeclareFunction(std.format.formatValue!(LockingTextWriter, ulong, char).formatValue): /usr/include/dlang/ldc/std/format.d(1397) * * * * * * * * * * * * * * * * * * DtoFunctionType(@safe void(LockingTextWriter w, ulong obj, ref FormatSpec!char f)) * * * * * * * * * * * * * * * * * * func = declare void @_D3std6format57__T11formatValueTS3std5stdio4File17LockingTextWriterTmTaZ11formatValueFNfS3std5stdio4File17LockingTextWritermKS3std6format18__T10FormatSpecTaZ10FormatSpecZv(%"std.format.FormatSpec!char.FormatSpec"*, i64, %std.stdio.File.LockingTextWriter*) * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * Building type: @safe void(LockingTextWriter w, ulong obj, ref FormatSpec!char f) * * * * * * * * * * * * * * * * DtoFunctionType(@safe void(LockingTextWriter w, ulong obj, ref FormatSpec!char f)) * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * Final function type: void (%"std.format.FormatSpec!char.FormatSpec"*, i64, %std.stdio.File.LockingTextWriter*) * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * Function type: @safe void(LockingTextWriter w, ulong obj, ref FormatSpec!char f) * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * CommaExp::toElem: LockingTextWriter __copytmp3384 = (__copytmp3384 = w).__postblit(); , __copytmp3384 @ LockingTextWriter * * * * * * * * * * * * * * * * * DeclarationExp::toElem: LockingTextWriter __copytmp3384 = (__copytmp3384 = w).__postblit(); | T=void * * * * * * * * * * * * * * * * * * DtoDeclarationExp: __copytmp3384 * * * * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = LockingTextWriter) * * * * * * * * * * * * * * * * * * * * llvm value for decl: %__copytmp3384 = alloca %std.stdio.File.LockingTextWriter, align 8 * * * * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * * * * CallExp::toElem: (__copytmp3384 = w).__postblit() @ void * * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: (__copytmp3384 = w).__postblit @ @trusted void() * * * * * * * * * * * * * * * * * * * * * * AssignExp::toElem: __copytmp3384 = w | (LockingTextWriter)(LockingTextWriter = LockingTextWriter) * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: __copytmp3384 @ LockingTextWriter * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__copytmp3384' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: w @ LockingTextWriter * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * * * * type: LockingTextWriter * * * * * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * * * * * * %__copytmp3384 = alloca %std.stdio.File.LockingTextWriter, align 8 * * * * * * * * * * * * * * * * * * * * * * Function type: @trusted void() * * * * * * * * * * * * * * * * * VarExp::toElem: __copytmp3384 @ LockingTextWriter * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__copytmp3384' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * VarExp::toElem: _param_3 @ ulong * * * * * * * * * * * * * * * * * DtoSymbolAddress ('_param_3' of type 'ulong') * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * type: ulong * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(440) * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(445) * * * * * * * DeclarationExp::toElem: uint currentArg = 0u; | T=void * * * * * * * * DtoDeclarationExp: currentArg * * * * * * * * * VarDeclaration * * * * * * * * * DtoVarDeclaration(vdtype = uint) * * * * * * * * * * llvm value for decl: %currentArg = alloca i32, align 4 * * * * * * * * * * expression initializer * * * * * * * * * * AssignExp::toElem: currentArg = 0u | (uint)(uint = uint) * * * * * * * * * * * VarExp::toElem: currentArg @ uint * * * * * * * * * * * * DtoSymbolAddress ('currentArg' of type 'uint') * * * * * * * * * * * * * a normal variable * * * * * * * * * * * IntegerExp::toElem: 0u @ uint * * * * * * * * * * * * IntegerExp::toConstElem: 0u @ uint * * * * * * * * * * * * * value = i32 0 * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * lhs: %currentArg = alloca i32, align 4 * * * * * * * * * * * * rhs: i32 0 * * * * * * ForStatement::toIR(): /usr/include/dlang/ldc/std/format.d(446) * * * * * * * CallExp::toElem: spec.writeUpToNextSpec((LockingTextWriter __copytmp3385 = (__copytmp3385 = w).__postblit(); , __copytmp3385)) @ bool * * * * * * * * DotVarExp::toElem: spec.writeUpToNextSpec @ @safe bool(LockingTextWriter writer) * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * nested variable * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(446) * * * * * * * * DtoCallFunction() * * * * * * * * * doing normal arguments * * * * * * * * * Arguments so far: (1) * * * * * * * * * * %spec = getelementptr %nest.formattedWrite.5, %nest.formattedWrite.5* %.frame, i32 0, i32 0 * * * * * * * * * Function type: @safe bool(LockingTextWriter writer) * * * * * * * * * DtoArgument * * * * * * * * * * CommaExp::toElem: LockingTextWriter __copytmp3385 = (__copytmp3385 = w).__postblit(); , __copytmp3385 @ LockingTextWriter * * * * * * * * * * * DeclarationExp::toElem: LockingTextWriter __copytmp3385 = (__copytmp3385 = w).__postblit(); | T=void * * * * * * * * * * * * DtoDeclarationExp: __copytmp3385 * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * DtoVarDeclaration(vdtype = LockingTextWriter) * * * * * * * * * * * * * * llvm value for decl: %__copytmp3385 = alloca %std.stdio.File.LockingTextWriter, align 8 * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * CallExp::toElem: (__copytmp3385 = w).__postblit() @ void * * * * * * * * * * * * * * * DotVarExp::toElem: (__copytmp3385 = w).__postblit @ @trusted void() * * * * * * * * * * * * * * * * AssignExp::toElem: __copytmp3385 = w | (LockingTextWriter)(LockingTextWriter = LockingTextWriter) * * * * * * * * * * * * * * * * * VarExp::toElem: __copytmp3385 @ LockingTextWriter * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__copytmp3385' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * VarExp::toElem: w @ LockingTextWriter * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * type: LockingTextWriter * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * %__copytmp3385 = alloca %std.stdio.File.LockingTextWriter, align 8 * * * * * * * * * * * * * * * * Function type: @trusted void() * * * * * * * * * * * VarExp::toElem: __copytmp3385 @ LockingTextWriter * * * * * * * * * * * * DtoSymbolAddress ('__copytmp3385' of type 'LockingTextWriter') * * * * * * * * * * * * * a normal variable * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(447) * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(447) * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(448) * * * * * * * * * * AndAndExp::toElem: cast(ulong)currentArg == 2LU && !spec.indexStart @ bool * * * * * * * * * * * EqualExp::toElem: cast(ulong)currentArg == 2LU @ bool * * * * * * * * * * * * CastExp::toElem: cast(ulong)currentArg @ ulong * * * * * * * * * * * * * VarExp::toElem: currentArg @ uint * * * * * * * * * * * * * * DtoSymbolAddress ('currentArg' of type 'uint') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * Casting from 'uint' to 'ulong' * * * * * * * * * * * * * * cast to: i64 * * * * * * * * * * * * IntegerExp::toElem: 2LU @ ulong * * * * * * * * * * * * * IntegerExp::toConstElem: 2LU @ ulong * * * * * * * * * * * * * * value = i64 2 * * * * * * * * * * * * integral or pointer or interface * * * * * * * * * * * * lv: %32 = zext i32 %31 to i64 * * * * * * * * * * * * rv: i64 2 * * * * * * * * * * * NotExp::toElem: !spec.indexStart @ bool * * * * * * * * * * * * DotVarExp::toElem: spec.indexStart @ ubyte * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(448) * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.indexStart: * * * * * * * * * * * * * * Value: %34 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 3 * * * * * * * * * * * * Casting from 'ubyte' to 'bool' * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(449) * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(449) * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(451) * * * * * * * * * * * * * CallExp::toElem: enforceEx(fmt.length == 0LU, delegate string() => text("Orphan format specifier: %", spec.spec), "/usr/include/dlang/ldc/std/format.d", 451LU) @ bool * * * * * * * * * * * * * * VarExp::toElem: enforceEx @ pure @safe bool(bool value, lazy string msg = "", string file = __FILE__, ulong line = cast(ulong)__LINE__) * * * * * * * * * * * * * * * DtoSymbolAddress ('enforceEx' of type 'pure @safe bool(bool value, lazy string msg = "", string file = __FILE__, ulong line = cast(ulong)__LINE__)') * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * Function type: pure @safe bool(bool value, lazy string msg = "", string file = __FILE__, ulong line = cast(ulong)__LINE__) * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * EqualExp::toElem: fmt.length == 0LU @ bool * * * * * * * * * * * * * * * * * ArrayLengthExp::toElem: fmt.length @ ulong * * * * * * * * * * * * * * * * * * VarExp::toElem: fmt @ const(char[]) * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('fmt' of type 'const(char[])') * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * type: const(char[]) * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * * * * * integral or pointer or interface * * * * * * * * * * * * * * * * * lv: %.len = load i64, i64* %38 * * * * * * * * * * * * * * * * * rv: i64 0 * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * FuncExp::toElem: __dgliteral10 @ string delegate() pure @nogc @safe * * * * * * * * * * * * * * * * * nested * * * * * * * * * * * * * * * * * kind = delegate * * * * * * * * * * * * * * * * * DtoDefineFunction(std.format.formattedWrite!(LockingTextWriter, char, string, ulong).formattedWrite.__dgliteral10): /usr/include/dlang/ldc/std/format.d(452) * * * * * * * * * * * * * * * * * * DtoFunctionType(pure @nogc @safe string()) * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * Final function type: { i64, i8* } (i8*) * * * * * * * * * * * * * * * * * * DtoResolveFunction(std.format.formattedWrite!(LockingTextWriter, char, string, ulong).formattedWrite.__dgliteral10): /usr/include/dlang/ldc/std/format.d(452) * * * * * * * * * * * * * * * * * * * DtoDeclareFunction(std.format.formattedWrite!(LockingTextWriter, char, string, ulong).formattedWrite.__dgliteral10): /usr/include/dlang/ldc/std/format.d(452) * * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure @nogc @safe string()) * * * * * * * * * * * * * * * * * * * * func = declare { i64, i8* } @_D3std6format64__T14formattedWriteTS3std5stdio4File17LockingTextWriterTaTAyaTmZ14formattedWriteFS3std5stdio4File17LockingTextWriterxAaAyamZ13__dgliteral10MFNaNiNfZAya(i8*) * * * * * * * * * * * * * * * * * * Doing function body for: __dgliteral10 * * * * * * * * * * * * * * * * * * DtoCreateNestedContext for __dgliteral10 * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for std.format.formattedWrite!(LockingTextWriter, char, string, ulong).formattedWrite.__dgliteral10 * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for std.format.formattedWrite!(LockingTextWriter, char, string, ulong).formattedWrite * * * * * * * * * * * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * * * * * * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/format.d(452) * * * * * * * * * * * * * * * * * * * * CallExp::toElem: text("Orphan format specifier: %", spec.spec) @ string * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: text @ pure @safe string(string _param_0, char _param_1) * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('text' of type 'pure @safe string(string _param_0, char _param_1)') * * * * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * * * * Function type: pure @safe string(string _param_0, char _param_1) * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * StringExp::toElem: "Orphan format specifier: %" @ string * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: spec.spec @ char * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(452) * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for std.format.formattedWrite!(LockingTextWriter, char, string, ulong).formattedWrite * * * * * * * * * * * * * * * * * * * * * * * * * * * Context: %2 = bitcast i8* %1 to %nest.formattedWrite.5* * * * * * * * * * * * * * * * * * * * * * * * * * * * of type: %nest.formattedWrite.5 = type { %"std.format.FormatSpec!char.FormatSpec" } * * * * * * * * * * * * * * * * * * * * * * * * * * * Variable: spec * * * * * * * * * * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * * * * * * * * * * Function: __dgliteral10 * * * * * * * * * * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * * * * * * * * * * Addr: %spec = getelementptr %nest.formattedWrite.5, %nest.formattedWrite.5* %2, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * * * * * * * * * of type: %"std.format.FormatSpec!char.FormatSpec"* * * * * * * * * * * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.spec: * * * * * * * * * * * * * * * * * * * * * * * * * Value: %3 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 2 * * * * * * * * * * * * * * * * * * * * return value is '0x129ca468' * * * * * * * * * * * * * * * * * Building type: string delegate() pure @nogc @safe * * * * * * * * * * * * * * * * * * DtoFunctionType(pure @nogc @safe string()) * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * Final function type: { i64, i8* } (i8*) * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * StringExp::toElem: "/usr/include/dlang/ldc/std/format.d" @ string * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * IntegerExp::toElem: 451LU @ ulong * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 451LU @ ulong * * * * * * * * * * * * * * * * * * value = i64 451 * * * * * * * * * * * * BreakStatement::toIR(): /usr/include/dlang/ldc/std/format.d(453) * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(455) * * * * * * * * * * EqualExp::toElem: spec.width == 2147483647 @ bool * * * * * * * * * * * DotVarExp::toElem: spec.width @ int * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(455) * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.width: * * * * * * * * * * * * * Value: %43 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 0 * * * * * * * * * * * IntegerExp::toElem: 2147483647 @ int * * * * * * * * * * * * IntegerExp::toConstElem: 2147483647 @ int * * * * * * * * * * * * * value = i32 2147483647 * * * * * * * * * * * integral or pointer or interface * * * * * * * * * * * lv: %44 = load i32, i32* %43 * * * * * * * * * * * rv: i32 2147483647 * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(456) * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(456) * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(457) * * * * * * * * * * * * * DeclarationExp::toElem: int width = to(getNthInt(currentArg, _param_2, _param_3)); | T=void * * * * * * * * * * * * * * DtoDeclarationExp: width * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = int) * * * * * * * * * * * * * * * * llvm value for decl: %width = alloca i32, align 4 * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * AssignExp::toElem: width = to(getNthInt(currentArg, _param_2, _param_3)) | (int)(int = int) * * * * * * * * * * * * * * * * * VarExp::toElem: width @ int * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('width' of type 'int') * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * CallExp::toElem: to(getNthInt(currentArg, _param_2, _param_3)) @ int * * * * * * * * * * * * * * * * * * VarExp::toElem: to @ pure nothrow @nogc @safe int(int _param_0) * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('to' of type 'pure nothrow @nogc @safe int(int _param_0)') * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @safe int(int _param_0) * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * CallExp::toElem: getNthInt(currentArg, _param_2, _param_3) @ int * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: getNthInt @ pure @safe int(uint index, string _param_1, ulong _param_2) * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('getNthInt' of type 'pure @safe int(uint index, string _param_1, ulong _param_2)') * * * * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure @safe int(uint index, string _param_1, ulong _param_2)) * * * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * * * * * Final function type: i32 (i64, { i64, i8* }, i32) * * * * * * * * * * * * * * * * * * * * * * * DtoResolveFunction(std.format.getNthInt!(string, ulong).getNthInt): /usr/include/dlang/ldc/std/format.d(3501) * * * * * * * * * * * * * * * * * * * * * * * * DtoDeclareFunction(std.format.getNthInt!(string, ulong).getNthInt): /usr/include/dlang/ldc/std/format.d(3501) * * * * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure @safe int(uint index, string _param_1, ulong _param_2)) * * * * * * * * * * * * * * * * * * * * * * * * * func = declare i32 @_D3std6format20__T9getNthIntTAyaTmZ9getNthIntFNaNfkAyamZi(i64, { i64, i8* }, i32) * * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * * Building type: pure @safe int(uint index, string _param_1, ulong _param_2) * * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure @safe int(uint index, string _param_1, ulong _param_2)) * * * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * * * * * Final function type: i32 (i64, { i64, i8* }, i32) * * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * * * * Function type: pure @safe int(uint index, string _param_1, ulong _param_2) * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: currentArg @ uint * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('currentArg' of type 'uint') * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: _param_2 @ string * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('_param_2' of type 'string') * * * * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * * * * type: string * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: _param_3 @ ulong * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('_param_3' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * * * * type: ulong * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * lhs: %width = alloca i32, align 4 * * * * * * * * * * * * * * * * * * rhs: %17 = invoke i32 @_D3std4conv9__T2toTiZ9__T2toTiZ2toFNaNbNiNfiZi(i32 %50) to label %postinvoke23 unwind label %landingPad * * * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(458) * * * * * * * * * * * * * CmpExp::toElem: width < 0 @ bool * * * * * * * * * * * * * * VarExp::toElem: width @ int * * * * * * * * * * * * * * * DtoSymbolAddress ('width' of type 'int') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * IntegerExp::toElem: 0 @ int * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0 @ int * * * * * * * * * * * * * * * * value = i32 0 * * * * * * * * * * * * * * type 1: %18 = load i32, i32* %width * * * * * * * * * * * * * * type 2: i32 0 * * * * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(459) * * * * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(459) * * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(460) * * * * * * * * * * * * * * * * CallExp::toElem: spec.flDash(true) @ void * * * * * * * * * * * * * * * * * DotVarExp::toElem: spec.flDash @ pure nothrow @nogc @property @safe void(bool v) * * * * * * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(460) * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * * %spec = getelementptr %nest.formattedWrite.5, %nest.formattedWrite.5* %.frame, i32 0, i32 0 * * * * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @property @safe void(bool v) * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: true @ bool * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: true @ bool * * * * * * * * * * * * * * * * * * * * * value = i1 true * * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(461) * * * * * * * * * * * * * * * * AssignExp::toElem: width = -width | (int)(int = int) * * * * * * * * * * * * * * * * * VarExp::toElem: width @ int * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('width' of type 'int') * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * NegExp::toElem: -width @ int * * * * * * * * * * * * * * * * * * VarExp::toElem: width @ int * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('width' of type 'int') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * lhs: %width = alloca i32, align 4 * * * * * * * * * * * * * * * * * * rhs: %negval = sub i32 0, %20 * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(463) * * * * * * * * * * * * * AssignExp::toElem: spec.width = width | (int)(int = int) * * * * * * * * * * * * * * DotVarExp::toElem: spec.width @ int * * * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(463) * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.width: * * * * * * * * * * * * * * * * Value: %54 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 0 * * * * * * * * * * * * * * VarExp::toElem: width @ int * * * * * * * * * * * * * * * DtoSymbolAddress ('width' of type 'int') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * lhs: %54 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 0 * * * * * * * * * * * * * * * rhs: %55 = load i32, i32* %width * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(464) * * * * * * * * * * * * * AddAssignExp::toElem: currentArg += 1u @ uint * * * * * * * * * * * * * * Caching l-value of currentArg += 1u => currentArg * * * * * * * * * * * * * * * VarExp::toElem: currentArg @ uint * * * * * * * * * * * * * * * * DtoSymbolAddress ('currentArg' of type 'uint') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * AddExp::toElem: currentArg + 1u @ uint * * * * * * * * * * * * * * * VarExp::toElem: currentArg @ uint * * * * * * * * * * * * * * * IntegerExp::toElem: 1u @ uint * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1u @ uint * * * * * * * * * * * * * * * * * value = i32 1 * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * lhs: %currentArg = alloca i32, align 4 * * * * * * * * * * * * * * * rhs: %57 = add i32 %56, 1 * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(466) * * * * * * * * * * * CmpExp::toElem: spec.width < 0 @ bool * * * * * * * * * * * * DotVarExp::toElem: spec.width @ int * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(466) * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.width: * * * * * * * * * * * * * * Value: %54 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 0 * * * * * * * * * * * * IntegerExp::toElem: 0 @ int * * * * * * * * * * * * * IntegerExp::toConstElem: 0 @ int * * * * * * * * * * * * * * value = i32 0 * * * * * * * * * * * * type 1: %55 = load i32, i32* %54 * * * * * * * * * * * * type 2: i32 0 * * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(467) * * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(467) * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(469) * * * * * * * * * * * * * * DeclarationExp::toElem: uint index = cast(uint)-spec.width; | T=void * * * * * * * * * * * * * * * DtoDeclarationExp: index * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = uint) * * * * * * * * * * * * * * * * * llvm value for decl: %index = alloca i32, align 4 * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * AssignExp::toElem: index = cast(uint)-spec.width | (uint)(uint = uint) * * * * * * * * * * * * * * * * * * VarExp::toElem: index @ uint * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('index' of type 'uint') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * CastExp::toElem: cast(uint)-spec.width @ uint * * * * * * * * * * * * * * * * * * * NegExp::toElem: -spec.width @ int * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: spec.width @ int * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(469) * * * * * * * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.width: * * * * * * * * * * * * * * * * * * * * * * Value: %61 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * Casting from 'int' to 'uint' * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * lhs: %index = alloca i32, align 4 * * * * * * * * * * * * * * * * * * * rhs: %negval29 = sub i32 0, %62 * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(470) * * * * * * * * * * * * * * AssertExp::toElem: assert(index > 0u) * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(471) * * * * * * * * * * * * * * DeclarationExp::toElem: int width = to(getNthInt(index - 1u, _param_2, _param_3)); | T=void * * * * * * * * * * * * * * * DtoDeclarationExp: width * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = int) * * * * * * * * * * * * * * * * * llvm value for decl: %width30 = alloca i32, align 4 * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * AssignExp::toElem: width = to(getNthInt(index - 1u, _param_2, _param_3)) | (int)(int = int) * * * * * * * * * * * * * * * * * * VarExp::toElem: width @ int * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('width' of type 'int') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * CallExp::toElem: to(getNthInt(index - 1u, _param_2, _param_3)) @ int * * * * * * * * * * * * * * * * * * * VarExp::toElem: to @ pure nothrow @nogc @safe int(int _param_0) * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('to' of type 'pure nothrow @nogc @safe int(int _param_0)') * * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @safe int(int _param_0) * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * CallExp::toElem: getNthInt(index - 1u, _param_2, _param_3) @ int * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: getNthInt @ pure @safe int(uint index, string _param_1, ulong _param_2) * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('getNthInt' of type 'pure @safe int(uint index, string _param_1, ulong _param_2)') * * * * * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * * * * * Function type: pure @safe int(uint index, string _param_1, ulong _param_2) * * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * * MinExp::toElem: index - 1u @ uint * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: index @ uint * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('index' of type 'uint') * * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 1u @ uint * * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1u @ uint * * * * * * * * * * * * * * * * * * * * * * * * * * * value = i32 1 * * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: _param_2 @ string * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('_param_2' of type 'string') * * * * * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * * * * * type: string * * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: _param_3 @ ulong * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('_param_3' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * * * * * type: ulong * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * lhs: %width30 = alloca i32, align 4 * * * * * * * * * * * * * * * * * * * rhs: %21 = invoke i32 @_D3std4conv9__T2toTiZ9__T2toTiZ2toFNaNbNiNfiZi(i32 %68) to label %postinvoke32 unwind label %landingPad * * * * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(472) * * * * * * * * * * * * * * CmpExp::toElem: currentArg < index @ bool * * * * * * * * * * * * * * * VarExp::toElem: currentArg @ uint * * * * * * * * * * * * * * * * DtoSymbolAddress ('currentArg' of type 'uint') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * VarExp::toElem: index @ uint * * * * * * * * * * * * * * * * DtoSymbolAddress ('index' of type 'uint') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * type 1: %22 = load i32, i32* %currentArg * * * * * * * * * * * * * * * type 2: %23 = load i32, i32* %index * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(472) * * * * * * * * * * * * * * * AssignExp::toElem: currentArg = index | (uint)(uint = uint) * * * * * * * * * * * * * * * * VarExp::toElem: currentArg @ uint * * * * * * * * * * * * * * * * * DtoSymbolAddress ('currentArg' of type 'uint') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * VarExp::toElem: index @ uint * * * * * * * * * * * * * * * * * DtoSymbolAddress ('index' of type 'uint') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * lhs: %currentArg = alloca i32, align 4 * * * * * * * * * * * * * * * * * rhs: %72 = load i32, i32* %index * * * * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(473) * * * * * * * * * * * * * * CmpExp::toElem: width < 0 @ bool * * * * * * * * * * * * * * * VarExp::toElem: width @ int * * * * * * * * * * * * * * * * DtoSymbolAddress ('width' of type 'int') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * IntegerExp::toElem: 0 @ int * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0 @ int * * * * * * * * * * * * * * * * * value = i32 0 * * * * * * * * * * * * * * * type 1: %73 = load i32, i32* %width30 * * * * * * * * * * * * * * * type 2: i32 0 * * * * * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(474) * * * * * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(474) * * * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(475) * * * * * * * * * * * * * * * * * CallExp::toElem: spec.flDash(true) @ void * * * * * * * * * * * * * * * * * * DotVarExp::toElem: spec.flDash @ pure nothrow @nogc @property @safe void(bool v) * * * * * * * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(475) * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * * * %spec = getelementptr %nest.formattedWrite.5, %nest.formattedWrite.5* %.frame, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @property @safe void(bool v) * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: true @ bool * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: true @ bool * * * * * * * * * * * * * * * * * * * * * * value = i1 true * * * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(476) * * * * * * * * * * * * * * * * * AssignExp::toElem: width = -width | (int)(int = int) * * * * * * * * * * * * * * * * * * VarExp::toElem: width @ int * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('width' of type 'int') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * NegExp::toElem: -width @ int * * * * * * * * * * * * * * * * * * * VarExp::toElem: width @ int * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('width' of type 'int') * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * lhs: %width30 = alloca i32, align 4 * * * * * * * * * * * * * * * * * * * rhs: %negval38 = sub i32 0, %25 * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(478) * * * * * * * * * * * * * * AssignExp::toElem: spec.width = width | (int)(int = int) * * * * * * * * * * * * * * * DotVarExp::toElem: spec.width @ int * * * * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(478) * * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.width: * * * * * * * * * * * * * * * * * Value: %76 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 0 * * * * * * * * * * * * * * * VarExp::toElem: width @ int * * * * * * * * * * * * * * * * DtoSymbolAddress ('width' of type 'int') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * lhs: %76 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 0 * * * * * * * * * * * * * * * * rhs: %77 = load i32, i32* %width30 * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(480) * * * * * * * * * * EqualExp::toElem: spec.precision == 2147483647 @ bool * * * * * * * * * * * DotVarExp::toElem: spec.precision @ int * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(480) * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.precision: * * * * * * * * * * * * * Value: %62 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 1 * * * * * * * * * * * IntegerExp::toElem: 2147483647 @ int * * * * * * * * * * * * IntegerExp::toConstElem: 2147483647 @ int * * * * * * * * * * * * * value = i32 2147483647 * * * * * * * * * * * integral or pointer or interface * * * * * * * * * * * lv: %63 = load i32, i32* %62 * * * * * * * * * * * rv: i32 2147483647 * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(481) * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(481) * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(482) * * * * * * * * * * * * * DeclarationExp::toElem: int precision = to(getNthInt(currentArg, _param_2, _param_3)); | T=void * * * * * * * * * * * * * * DtoDeclarationExp: precision * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = int) * * * * * * * * * * * * * * * * llvm value for decl: %precision = alloca i32, align 4 * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * AssignExp::toElem: precision = to(getNthInt(currentArg, _param_2, _param_3)) | (int)(int = int) * * * * * * * * * * * * * * * * * VarExp::toElem: precision @ int * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('precision' of type 'int') * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * CallExp::toElem: to(getNthInt(currentArg, _param_2, _param_3)) @ int * * * * * * * * * * * * * * * * * * VarExp::toElem: to @ pure nothrow @nogc @safe int(int _param_0) * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('to' of type 'pure nothrow @nogc @safe int(int _param_0)') * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @safe int(int _param_0) * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * CallExp::toElem: getNthInt(currentArg, _param_2, _param_3) @ int * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: getNthInt @ pure @safe int(uint index, string _param_1, ulong _param_2) * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('getNthInt' of type 'pure @safe int(uint index, string _param_1, ulong _param_2)') * * * * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * * * * Function type: pure @safe int(uint index, string _param_1, ulong _param_2) * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: currentArg @ uint * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('currentArg' of type 'uint') * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: _param_2 @ string * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('_param_2' of type 'string') * * * * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * * * * type: string * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: _param_3 @ ulong * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('_param_3' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * * * * type: ulong * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * lhs: %precision = alloca i32, align 4 * * * * * * * * * * * * * * * * * * rhs: %26 = invoke i32 @_D3std4conv9__T2toTiZ9__T2toTiZ2toFNaNbNiNfiZi(i32 %85) to label %postinvoke43 unwind label %landingPad * * * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(484) * * * * * * * * * * * * * CmpExp::toElem: precision >= 0 @ bool * * * * * * * * * * * * * * VarExp::toElem: precision @ int * * * * * * * * * * * * * * * DtoSymbolAddress ('precision' of type 'int') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * IntegerExp::toElem: 0 @ int * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0 @ int * * * * * * * * * * * * * * * * value = i32 0 * * * * * * * * * * * * * * type 1: %27 = load i32, i32* %precision * * * * * * * * * * * * * * type 2: i32 0 * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(484) * * * * * * * * * * * * * * AssignExp::toElem: spec.precision = precision | (int)(int = int) * * * * * * * * * * * * * * * DotVarExp::toElem: spec.precision @ int * * * * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(484) * * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.precision: * * * * * * * * * * * * * * * * * Value: %88 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 1 * * * * * * * * * * * * * * * VarExp::toElem: precision @ int * * * * * * * * * * * * * * * * DtoSymbolAddress ('precision' of type 'int') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * lhs: %88 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 1 * * * * * * * * * * * * * * * * rhs: %89 = load i32, i32* %precision * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(486) * * * * * * * * * * * * * * AssignExp::toElem: spec.precision = 2147483646 | (int)(int = int) * * * * * * * * * * * * * * * DotVarExp::toElem: spec.precision @ int * * * * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(486) * * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.precision: * * * * * * * * * * * * * * * * * Value: %90 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 1 * * * * * * * * * * * * * * * IntegerExp::toElem: 2147483646 @ int * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 2147483646 @ int * * * * * * * * * * * * * * * * * value = i32 2147483646 * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * lhs: %90 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 1 * * * * * * * * * * * * * * * * rhs: i32 2147483646 * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(487) * * * * * * * * * * * * * AddAssignExp::toElem: currentArg += 1u @ uint * * * * * * * * * * * * * * Caching l-value of currentArg += 1u => currentArg * * * * * * * * * * * * * * * VarExp::toElem: currentArg @ uint * * * * * * * * * * * * * * * * DtoSymbolAddress ('currentArg' of type 'uint') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * AddExp::toElem: currentArg + 1u @ uint * * * * * * * * * * * * * * * VarExp::toElem: currentArg @ uint * * * * * * * * * * * * * * * IntegerExp::toElem: 1u @ uint * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1u @ uint * * * * * * * * * * * * * * * * * value = i32 1 * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * lhs: %currentArg = alloca i32, align 4 * * * * * * * * * * * * * * * rhs: %92 = add i32 %91, 1 * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(489) * * * * * * * * * * * CmpExp::toElem: spec.precision < 0 @ bool * * * * * * * * * * * * DotVarExp::toElem: spec.precision @ int * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(489) * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.precision: * * * * * * * * * * * * * * Value: %88 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 1 * * * * * * * * * * * * IntegerExp::toElem: 0 @ int * * * * * * * * * * * * * IntegerExp::toConstElem: 0 @ int * * * * * * * * * * * * * * value = i32 0 * * * * * * * * * * * * type 1: %89 = load i32, i32* %88 * * * * * * * * * * * * type 2: i32 0 * * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(490) * * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(490) * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(492) * * * * * * * * * * * * * * DeclarationExp::toElem: uint index = cast(uint)-spec.precision; | T=void * * * * * * * * * * * * * * * DtoDeclarationExp: index * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = uint) * * * * * * * * * * * * * * * * * llvm value for decl: %index49 = alloca i32, align 4 * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * AssignExp::toElem: index = cast(uint)-spec.precision | (uint)(uint = uint) * * * * * * * * * * * * * * * * * * VarExp::toElem: index @ uint * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('index' of type 'uint') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * CastExp::toElem: cast(uint)-spec.precision @ uint * * * * * * * * * * * * * * * * * * * NegExp::toElem: -spec.precision @ int * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: spec.precision @ int * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(492) * * * * * * * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.precision: * * * * * * * * * * * * * * * * * * * * * * Value: %96 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 1 * * * * * * * * * * * * * * * * * * * Casting from 'int' to 'uint' * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * lhs: %index49 = alloca i32, align 4 * * * * * * * * * * * * * * * * * * * rhs: %negval50 = sub i32 0, %97 * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(493) * * * * * * * * * * * * * * AssertExp::toElem: assert(index > 0u) * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(494) * * * * * * * * * * * * * * DeclarationExp::toElem: int precision = to(getNthInt(index - 1u, _param_2, _param_3)); | T=void * * * * * * * * * * * * * * * DtoDeclarationExp: precision * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = int) * * * * * * * * * * * * * * * * * llvm value for decl: %precision51 = alloca i32, align 4 * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * AssignExp::toElem: precision = to(getNthInt(index - 1u, _param_2, _param_3)) | (int)(int = int) * * * * * * * * * * * * * * * * * * VarExp::toElem: precision @ int * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('precision' of type 'int') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * CallExp::toElem: to(getNthInt(index - 1u, _param_2, _param_3)) @ int * * * * * * * * * * * * * * * * * * * VarExp::toElem: to @ pure nothrow @nogc @safe int(int _param_0) * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('to' of type 'pure nothrow @nogc @safe int(int _param_0)') * * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @safe int(int _param_0) * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * CallExp::toElem: getNthInt(index - 1u, _param_2, _param_3) @ int * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: getNthInt @ pure @safe int(uint index, string _param_1, ulong _param_2) * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('getNthInt' of type 'pure @safe int(uint index, string _param_1, ulong _param_2)') * * * * * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * * * * * Function type: pure @safe int(uint index, string _param_1, ulong _param_2) * * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * * MinExp::toElem: index - 1u @ uint * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: index @ uint * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('index' of type 'uint') * * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 1u @ uint * * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1u @ uint * * * * * * * * * * * * * * * * * * * * * * * * * * * value = i32 1 * * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: _param_2 @ string * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('_param_2' of type 'string') * * * * * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * * * * * type: string * * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: _param_3 @ ulong * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('_param_3' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * * * * * type: ulong * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * lhs: %precision51 = alloca i32, align 4 * * * * * * * * * * * * * * * * * * * rhs: %29 = invoke i32 @_D3std4conv9__T2toTiZ9__T2toTiZ2toFNaNbNiNfiZi(i32 %103) to label %postinvoke53 unwind label %landingPad * * * * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(496) * * * * * * * * * * * * * * CmpExp::toElem: currentArg < index @ bool * * * * * * * * * * * * * * * VarExp::toElem: currentArg @ uint * * * * * * * * * * * * * * * * DtoSymbolAddress ('currentArg' of type 'uint') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * VarExp::toElem: index @ uint * * * * * * * * * * * * * * * * DtoSymbolAddress ('index' of type 'uint') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * type 1: %30 = load i32, i32* %currentArg * * * * * * * * * * * * * * * type 2: %31 = load i32, i32* %index49 * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(496) * * * * * * * * * * * * * * * AssignExp::toElem: currentArg = index | (uint)(uint = uint) * * * * * * * * * * * * * * * * VarExp::toElem: currentArg @ uint * * * * * * * * * * * * * * * * * DtoSymbolAddress ('currentArg' of type 'uint') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * VarExp::toElem: index @ uint * * * * * * * * * * * * * * * * * DtoSymbolAddress ('index' of type 'uint') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * lhs: %currentArg = alloca i32, align 4 * * * * * * * * * * * * * * * * * rhs: %107 = load i32, i32* %index49 * * * * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(497) * * * * * * * * * * * * * * CmpExp::toElem: precision >= 0 @ bool * * * * * * * * * * * * * * * VarExp::toElem: precision @ int * * * * * * * * * * * * * * * * DtoSymbolAddress ('precision' of type 'int') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * IntegerExp::toElem: 0 @ int * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0 @ int * * * * * * * * * * * * * * * * * value = i32 0 * * * * * * * * * * * * * * * type 1: %108 = load i32, i32* %precision51 * * * * * * * * * * * * * * * type 2: i32 0 * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(497) * * * * * * * * * * * * * * * AssignExp::toElem: spec.precision = precision | (int)(int = int) * * * * * * * * * * * * * * * * DotVarExp::toElem: spec.precision @ int * * * * * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(497) * * * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.precision: * * * * * * * * * * * * * * * * * * Value: %110 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 1 * * * * * * * * * * * * * * * * VarExp::toElem: precision @ int * * * * * * * * * * * * * * * * * DtoSymbolAddress ('precision' of type 'int') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * lhs: %110 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 1 * * * * * * * * * * * * * * * * * rhs: %111 = load i32, i32* %precision51 * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(499) * * * * * * * * * * * * * * * AssignExp::toElem: spec.precision = 2147483646 | (int)(int = int) * * * * * * * * * * * * * * * * DotVarExp::toElem: spec.precision @ int * * * * * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(499) * * * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.precision: * * * * * * * * * * * * * * * * * * Value: %112 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 1 * * * * * * * * * * * * * * * * IntegerExp::toElem: 2147483646 @ int * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 2147483646 @ int * * * * * * * * * * * * * * * * * * value = i32 2147483646 * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * lhs: %112 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 1 * * * * * * * * * * * * * * * * * rhs: i32 2147483646 * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(502) * * * * * * * * * * CmpExp::toElem: cast(int)spec.indexStart > 0 @ bool * * * * * * * * * * * CastExp::toElem: cast(int)spec.indexStart @ int * * * * * * * * * * * * DotVarExp::toElem: spec.indexStart @ ubyte * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(502) * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.indexStart: * * * * * * * * * * * * * * Value: %95 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 3 * * * * * * * * * * * * Casting from 'ubyte' to 'int' * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * IntegerExp::toElem: 0 @ int * * * * * * * * * * * * IntegerExp::toConstElem: 0 @ int * * * * * * * * * * * * * value = i32 0 * * * * * * * * * * * type 1: %97 = zext i8 %96 to i32 * * * * * * * * * * * type 2: i32 0 * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(503) * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(503) * * * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(505) * * * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(505) * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(505) * * * * * * * * * * * * * * * DeclarationExp::toElem: int __key3386 = cast(int)spec.indexStart - 1; | T=void * * * * * * * * * * * * * * * * DtoDeclarationExp: __key3386 * * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = int) * * * * * * * * * * * * * * * * * * llvm value for decl: %__key3386 = alloca i32, align 4 * * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * * AssignExp::toElem: __key3386 = cast(int)spec.indexStart - 1 | (int)(int = int) * * * * * * * * * * * * * * * * * * * VarExp::toElem: __key3386 @ int * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__key3386' of type 'int') * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * MinExp::toElem: cast(int)spec.indexStart - 1 @ int * * * * * * * * * * * * * * * * * * * * CastExp::toElem: cast(int)spec.indexStart @ int * * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: spec.indexStart @ ubyte * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(505) * * * * * * * * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.indexStart: * * * * * * * * * * * * * * * * * * * * * * * Value: %117 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 3 * * * * * * * * * * * * * * * * * * * * * Casting from 'ubyte' to 'int' * * * * * * * * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 1 @ int * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1 @ int * * * * * * * * * * * * * * * * * * * * * * value = i32 1 * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * lhs: %__key3386 = alloca i32, align 4 * * * * * * * * * * * * * * * * * * * * rhs: %120 = sub i32 %119, 1 * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(505) * * * * * * * * * * * * * * * DeclarationExp::toElem: int __limit3387 = cast(int)spec.indexEnd; | T=void * * * * * * * * * * * * * * * * DtoDeclarationExp: __limit3387 * * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = int) * * * * * * * * * * * * * * * * * * llvm value for decl: %__limit3387 = alloca i32, align 4 * * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * * AssignExp::toElem: __limit3387 = cast(int)spec.indexEnd | (int)(int = int) * * * * * * * * * * * * * * * * * * * VarExp::toElem: __limit3387 @ int * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__limit3387' of type 'int') * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * CastExp::toElem: cast(int)spec.indexEnd @ int * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: spec.indexEnd @ ubyte * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(505) * * * * * * * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.indexEnd: * * * * * * * * * * * * * * * * * * * * * * Value: %121 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 4 * * * * * * * * * * * * * * * * * * * * Casting from 'ubyte' to 'int' * * * * * * * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * lhs: %__limit3387 = alloca i32, align 4 * * * * * * * * * * * * * * * * * * * * rhs: %123 = zext i8 %122 to i32 * * * * * * * * * * * * * * ForStatement::toIR(): /usr/include/dlang/ldc/std/format.d(505) * * * * * * * * * * * * * * * CmpExp::toElem: __key3386 < __limit3387 @ bool * * * * * * * * * * * * * * * * VarExp::toElem: __key3386 @ int * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__key3386' of type 'int') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * VarExp::toElem: __limit3387 @ int * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__limit3387' of type 'int') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * type 1: %124 = load i32, i32* %__key3386 * * * * * * * * * * * * * * * * type 2: %125 = load i32, i32* %__limit3387 * * * * * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(505) * * * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(505) * * * * * * * * * * * * * * * * * DeclarationExp::toElem: int i = __key3386; | T=void * * * * * * * * * * * * * * * * * * DtoDeclarationExp: i * * * * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = int) * * * * * * * * * * * * * * * * * * * * llvm value for decl: %i = alloca i32, align 4 * * * * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * * * * AssignExp::toElem: i = __key3386 | (int)(int = int) * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: i @ int * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'int') * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: __key3386 @ int * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__key3386' of type 'int') * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * * * lhs: %i = alloca i32, align 4 * * * * * * * * * * * * * * * * * * * * * * rhs: %127 = load i32, i32* %__key3386 * * * * * * * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(507) * * * * * * * * * * * * * * * * * CmpExp::toElem: 2LU <= cast(ulong)i @ bool * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 2LU @ ulong * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 2LU @ ulong * * * * * * * * * * * * * * * * * * * * value = i64 2 * * * * * * * * * * * * * * * * * * CastExp::toElem: cast(ulong)i @ ulong * * * * * * * * * * * * * * * * * * * VarExp::toElem: i @ int * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'int') * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * Casting from 'int' to 'ulong' * * * * * * * * * * * * * * * * * * * * cast to: i64 * * * * * * * * * * * * * * * * * * type 1: i64 2 * * * * * * * * * * * * * * * * * * type 2: %129 = sext i32 %128 to i64 * * * * * * * * * * * * * * * * * BreakStatement::toIR(): /usr/include/dlang/ldc/std/format.d(507) * * * * * * * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(508) * * * * * * * * * * * * * * * * * VarExp::toElem: __ctfe @ bool * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__ctfe' of type 'bool') * * * * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(509) * * * * * * * * * * * * * * * * * * CallExp::toElem: formatNth((LockingTextWriter __copytmp3396 = (__copytmp3396 = w).__postblit(); , __copytmp3396), spec, cast(ulong)i, _param_2, _param_3) @ void * * * * * * * * * * * * * * * * * * * VarExp::toElem: formatNth @ @safe void(LockingTextWriter w, ref FormatSpec!char f, ulong index, string _param_3, ulong _param_4) * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('formatNth' of type '@safe void(LockingTextWriter w, ref FormatSpec!char f, ulong index, string _param_3, ulong _param_4)') * * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(@safe void(LockingTextWriter w, ref FormatSpec!char f, ulong index, string _param_3, ulong _param_4)) * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * * * Final function type: void (i64, { i64, i8* }, i64, %"std.format.FormatSpec!char.FormatSpec"*, %std.stdio.File.LockingTextWriter*) * * * * * * * * * * * * * * * * * * * * * DtoResolveFunction(std.format.formatNth!(LockingTextWriter, char, string, ulong).formatNth): /usr/include/dlang/ldc/std/format.d(3460) * * * * * * * * * * * * * * * * * * * * * * DtoDeclareFunction(std.format.formatNth!(LockingTextWriter, char, string, ulong).formatNth): /usr/include/dlang/ldc/std/format.d(3460) * * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(@safe void(LockingTextWriter w, ref FormatSpec!char f, ulong index, string _param_3, ulong _param_4)) * * * * * * * * * * * * * * * * * * * * * * * func = declare void @_D3std6format58__T9formatNthTS3std5stdio4File17LockingTextWriterTaTAyaTmZ9formatNthFNfS3std5stdio4File17LockingTextWriterKS3std6format18__T10FormatSpecTaZ10FormatSpecmAyamZv(i64, { i64, i8* }, i64, %"std.format.FormatSpec!char.FormatSpec"*, %std.stdio.File.LockingTextWriter*) * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * Building type: @safe void(LockingTextWriter w, ref FormatSpec!char f, ulong index, string _param_3, ulong _param_4) * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(@safe void(LockingTextWriter w, ref FormatSpec!char f, ulong index, string _param_3, ulong _param_4)) * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * * * Final function type: void (i64, { i64, i8* }, i64, %"std.format.FormatSpec!char.FormatSpec"*, %std.stdio.File.LockingTextWriter*) * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * * Function type: @safe void(LockingTextWriter w, ref FormatSpec!char f, ulong index, string _param_3, ulong _param_4) * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * CommaExp::toElem: LockingTextWriter __copytmp3396 = (__copytmp3396 = w).__postblit(); , __copytmp3396 @ LockingTextWriter * * * * * * * * * * * * * * * * * * * * * * DeclarationExp::toElem: LockingTextWriter __copytmp3396 = (__copytmp3396 = w).__postblit(); | T=void * * * * * * * * * * * * * * * * * * * * * * * DtoDeclarationExp: __copytmp3396 * * * * * * * * * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = LockingTextWriter) * * * * * * * * * * * * * * * * * * * * * * * * * llvm value for decl: %__copytmp3396 = alloca %std.stdio.File.LockingTextWriter, align 8 * * * * * * * * * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * * * * * * * * * CallExp::toElem: (__copytmp3396 = w).__postblit() @ void * * * * * * * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: (__copytmp3396 = w).__postblit @ @trusted void() * * * * * * * * * * * * * * * * * * * * * * * * * * * AssignExp::toElem: __copytmp3396 = w | (LockingTextWriter)(LockingTextWriter = LockingTextWriter) * * * * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: __copytmp3396 @ LockingTextWriter * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__copytmp3396' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: w @ LockingTextWriter * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * type: LockingTextWriter * * * * * * * * * * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * * * * * * * * * * * %__copytmp3396 = alloca %std.stdio.File.LockingTextWriter, align 8 * * * * * * * * * * * * * * * * * * * * * * * * * * * Function type: @trusted void() * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: __copytmp3396 @ LockingTextWriter * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__copytmp3396' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(509) * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * CastExp::toElem: cast(ulong)i @ ulong * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: i @ int * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'int') * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * Casting from 'int' to 'ulong' * * * * * * * * * * * * * * * * * * * * * * * cast to: i64 * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: _param_2 @ string * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('_param_2' of type 'string') * * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * * type: string * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: _param_3 @ ulong * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('_param_3' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * * type: ulong * * * * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(511) * * * * * * * * * * * * * * * * * * CallExp::toElem: (*funs[cast(ulong)i])((LockingTextWriter __copytmp3397 = (__copytmp3397 = w).__postblit(); , __copytmp3397), argsAddresses[cast(ulong)i], spec) @ void * * * * * * * * * * * * * * * * * * * PtrExp::toElem: *funs[cast(ulong)i] @ pure nothrow @safe void(LockingTextWriter, const(void)*, ref FormatSpec!char) * * * * * * * * * * * * * * * * * * * * IndexExp::toElem: funs[cast(ulong)i] @ void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: funs @ void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe[2] * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('funs' of type 'void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe[2]') * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * CastExp::toElem: cast(ulong)i @ ulong * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: i @ int * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'int') * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * Casting from 'int' to 'ulong' * * * * * * * * * * * * * * * * * * * * * * * cast to: i64 * * * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * * Function type: pure nothrow @safe void(LockingTextWriter, const(void)*, ref FormatSpec!char) * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * CommaExp::toElem: LockingTextWriter __copytmp3397 = (__copytmp3397 = w).__postblit(); , __copytmp3397 @ LockingTextWriter * * * * * * * * * * * * * * * * * * * * * * DeclarationExp::toElem: LockingTextWriter __copytmp3397 = (__copytmp3397 = w).__postblit(); | T=void * * * * * * * * * * * * * * * * * * * * * * * DtoDeclarationExp: __copytmp3397 * * * * * * * * * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = LockingTextWriter) * * * * * * * * * * * * * * * * * * * * * * * * * llvm value for decl: %__copytmp3397 = alloca %std.stdio.File.LockingTextWriter, align 8 * * * * * * * * * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * * * * * * * * * CallExp::toElem: (__copytmp3397 = w).__postblit() @ void * * * * * * * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: (__copytmp3397 = w).__postblit @ @trusted void() * * * * * * * * * * * * * * * * * * * * * * * * * * * AssignExp::toElem: __copytmp3397 = w | (LockingTextWriter)(LockingTextWriter = LockingTextWriter) * * * * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: __copytmp3397 @ LockingTextWriter * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__copytmp3397' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: w @ LockingTextWriter * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * type: LockingTextWriter * * * * * * * * * * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * * * * * * * * * * * %__copytmp3397 = alloca %std.stdio.File.LockingTextWriter, align 8 * * * * * * * * * * * * * * * * * * * * * * * * * * * Function type: @trusted void() * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: __copytmp3397 @ LockingTextWriter * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__copytmp3397' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * IndexExp::toElem: argsAddresses[cast(ulong)i] @ const(void)* * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: argsAddresses @ const(void)*[2] * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('argsAddresses' of type 'const(void)*[2]') * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * CastExp::toElem: cast(ulong)i @ ulong * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: i @ int * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'int') * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * Casting from 'int' to 'ulong' * * * * * * * * * * * * * * * * * * * * * * * * cast to: i64 * * * * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(511) * * * * * * * * * * * * * * * AddAssignExp::toElem: __key3386 += 1 @ int * * * * * * * * * * * * * * * * Caching l-value of __key3386 += 1 => __key3386 * * * * * * * * * * * * * * * * * VarExp::toElem: __key3386 @ int * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__key3386' of type 'int') * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * AddExp::toElem: __key3386 + 1 @ int * * * * * * * * * * * * * * * * * VarExp::toElem: __key3386 @ int * * * * * * * * * * * * * * * * * IntegerExp::toElem: 1 @ int * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1 @ int * * * * * * * * * * * * * * * * * * * value = i32 1 * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * lhs: %__key3386 = alloca i32, align 4 * * * * * * * * * * * * * * * * * rhs: %138 = add i32 %137, 1 * * * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(513) * * * * * * * * * * * * * CmpExp::toElem: currentArg < cast(uint)cast(int)spec.indexEnd @ bool * * * * * * * * * * * * * * VarExp::toElem: currentArg @ uint * * * * * * * * * * * * * * * DtoSymbolAddress ('currentArg' of type 'uint') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * CastExp::toElem: cast(uint)cast(int)spec.indexEnd @ uint * * * * * * * * * * * * * * * CastExp::toElem: cast(int)spec.indexEnd @ int * * * * * * * * * * * * * * * * DotVarExp::toElem: spec.indexEnd @ ubyte * * * * * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(513) * * * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.indexEnd: * * * * * * * * * * * * * * * * * * Value: %139 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 4 * * * * * * * * * * * * * * * * Casting from 'ubyte' to 'int' * * * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * * * * Casting from 'int' to 'uint' * * * * * * * * * * * * * * type 1: %142 = load i32, i32* %currentArg * * * * * * * * * * * * * * type 2: %141 = zext i8 %140 to i32 * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(513) * * * * * * * * * * * * * * AssignExp::toElem: currentArg = cast(uint)spec.indexEnd | (uint)(uint = uint) * * * * * * * * * * * * * * * VarExp::toElem: currentArg @ uint * * * * * * * * * * * * * * * * DtoSymbolAddress ('currentArg' of type 'uint') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * CastExp::toElem: cast(uint)spec.indexEnd @ uint * * * * * * * * * * * * * * * * DotVarExp::toElem: spec.indexEnd @ ubyte * * * * * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(513) * * * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.indexEnd: * * * * * * * * * * * * * * * * * * Value: %154 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 4 * * * * * * * * * * * * * * * * Casting from 'ubyte' to 'uint' * * * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * lhs: %currentArg = alloca i32, align 4 * * * * * * * * * * * * * * * * rhs: %156 = zext i8 %155 to i32 * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(516) * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(516) * * * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(517) * * * * * * * * * * * * * VarExp::toElem: __ctfe @ bool * * * * * * * * * * * * * * DtoSymbolAddress ('__ctfe' of type 'bool') * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(518) * * * * * * * * * * * * * * CallExp::toElem: formatNth((LockingTextWriter __copytmp3398 = (__copytmp3398 = w).__postblit(); , __copytmp3398), spec, cast(ulong)currentArg, _param_2, _param_3) @ void * * * * * * * * * * * * * * * VarExp::toElem: formatNth @ @safe void(LockingTextWriter w, ref FormatSpec!char f, ulong index, string _param_3, ulong _param_4) * * * * * * * * * * * * * * * * DtoSymbolAddress ('formatNth' of type '@safe void(LockingTextWriter w, ref FormatSpec!char f, ulong index, string _param_3, ulong _param_4)') * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * Function type: @safe void(LockingTextWriter w, ref FormatSpec!char f, ulong index, string _param_3, ulong _param_4) * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * CommaExp::toElem: LockingTextWriter __copytmp3398 = (__copytmp3398 = w).__postblit(); , __copytmp3398 @ LockingTextWriter * * * * * * * * * * * * * * * * * * DeclarationExp::toElem: LockingTextWriter __copytmp3398 = (__copytmp3398 = w).__postblit(); | T=void * * * * * * * * * * * * * * * * * * * DtoDeclarationExp: __copytmp3398 * * * * * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = LockingTextWriter) * * * * * * * * * * * * * * * * * * * * * llvm value for decl: %__copytmp3398 = alloca %std.stdio.File.LockingTextWriter, align 8 * * * * * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * * * * * CallExp::toElem: (__copytmp3398 = w).__postblit() @ void * * * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: (__copytmp3398 = w).__postblit @ @trusted void() * * * * * * * * * * * * * * * * * * * * * * * AssignExp::toElem: __copytmp3398 = w | (LockingTextWriter)(LockingTextWriter = LockingTextWriter) * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: __copytmp3398 @ LockingTextWriter * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__copytmp3398' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: w @ LockingTextWriter * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * * * * * type: LockingTextWriter * * * * * * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * * * * * * * %__copytmp3398 = alloca %std.stdio.File.LockingTextWriter, align 8 * * * * * * * * * * * * * * * * * * * * * * * Function type: @trusted void() * * * * * * * * * * * * * * * * * * VarExp::toElem: __copytmp3398 @ LockingTextWriter * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__copytmp3398' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(518) * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * CastExp::toElem: cast(ulong)currentArg @ ulong * * * * * * * * * * * * * * * * * * VarExp::toElem: currentArg @ uint * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('currentArg' of type 'uint') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * Casting from 'uint' to 'ulong' * * * * * * * * * * * * * * * * * * * cast to: i64 * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * VarExp::toElem: _param_2 @ string * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('_param_2' of type 'string') * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * type: string * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * VarExp::toElem: _param_3 @ ulong * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('_param_3' of type 'ulong') * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * type: ulong * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(520) * * * * * * * * * * * * * * CallExp::toElem: (*funs[cast(ulong)currentArg])((LockingTextWriter __copytmp3399 = (__copytmp3399 = w).__postblit(); , __copytmp3399), argsAddresses[cast(ulong)currentArg], spec) @ void * * * * * * * * * * * * * * * PtrExp::toElem: *funs[cast(ulong)currentArg] @ pure nothrow @safe void(LockingTextWriter, const(void)*, ref FormatSpec!char) * * * * * * * * * * * * * * * * IndexExp::toElem: funs[cast(ulong)currentArg] @ void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe * * * * * * * * * * * * * * * * * VarExp::toElem: funs @ void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe[2] * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('funs' of type 'void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe[2]') * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * CastExp::toElem: cast(ulong)currentArg @ ulong * * * * * * * * * * * * * * * * * * VarExp::toElem: currentArg @ uint * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('currentArg' of type 'uint') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * Casting from 'uint' to 'ulong' * * * * * * * * * * * * * * * * * * * cast to: i64 * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * Function type: pure nothrow @safe void(LockingTextWriter, const(void)*, ref FormatSpec!char) * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * CommaExp::toElem: LockingTextWriter __copytmp3399 = (__copytmp3399 = w).__postblit(); , __copytmp3399 @ LockingTextWriter * * * * * * * * * * * * * * * * * * DeclarationExp::toElem: LockingTextWriter __copytmp3399 = (__copytmp3399 = w).__postblit(); | T=void * * * * * * * * * * * * * * * * * * * DtoDeclarationExp: __copytmp3399 * * * * * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = LockingTextWriter) * * * * * * * * * * * * * * * * * * * * * llvm value for decl: %__copytmp3399 = alloca %std.stdio.File.LockingTextWriter, align 8 * * * * * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * * * * * CallExp::toElem: (__copytmp3399 = w).__postblit() @ void * * * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: (__copytmp3399 = w).__postblit @ @trusted void() * * * * * * * * * * * * * * * * * * * * * * * AssignExp::toElem: __copytmp3399 = w | (LockingTextWriter)(LockingTextWriter = LockingTextWriter) * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: __copytmp3399 @ LockingTextWriter * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__copytmp3399' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: w @ LockingTextWriter * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * * * * * type: LockingTextWriter * * * * * * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * * * * * * * %__copytmp3399 = alloca %std.stdio.File.LockingTextWriter, align 8 * * * * * * * * * * * * * * * * * * * * * * * Function type: @trusted void() * * * * * * * * * * * * * * * * * * VarExp::toElem: __copytmp3399 @ LockingTextWriter * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__copytmp3399' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * IndexExp::toElem: argsAddresses[cast(ulong)currentArg] @ const(void)* * * * * * * * * * * * * * * * * * * VarExp::toElem: argsAddresses @ const(void)*[2] * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('argsAddresses' of type 'const(void)*[2]') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * CastExp::toElem: cast(ulong)currentArg @ ulong * * * * * * * * * * * * * * * * * * * VarExp::toElem: currentArg @ uint * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('currentArg' of type 'uint') * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * Casting from 'uint' to 'ulong' * * * * * * * * * * * * * * * * * * * * cast to: i64 * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(520) * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(521) * * * * * * * * * * * * * AddAssignExp::toElem: currentArg += 1u @ uint * * * * * * * * * * * * * * Caching l-value of currentArg += 1u => currentArg * * * * * * * * * * * * * * * VarExp::toElem: currentArg @ uint * * * * * * * * * * * * * * * * DtoSymbolAddress ('currentArg' of type 'uint') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * AddExp::toElem: currentArg + 1u @ uint * * * * * * * * * * * * * * * VarExp::toElem: currentArg @ uint * * * * * * * * * * * * * * * IntegerExp::toElem: 1u @ uint * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1u @ uint * * * * * * * * * * * * * * * * * value = i32 1 * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * lhs: %currentArg = alloca i32, align 4 * * * * * * * * * * * * * * * rhs: %168 = add i32 %167, 1 * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/format.d(524) * * * * * * * VarExp::toElem: currentArg @ uint * * * * * * * * DtoSymbolAddress ('currentArg' of type 'uint') * * * * * * * * * a normal variable * * * * * * * return value is '0x129f4618' * TemplateInstance::codegen: 'std.format.formattedWrite!(LockingTextWriter, char, string, ulong).formattedWrite.__lambda7!string' * * DtoDefineFunction(std.format.formattedWrite!(LockingTextWriter, char, string, ulong).formattedWrite.__lambda7): /usr/include/dlang/ldc/std/format.d(437) * TemplateInstance::codegen: 'std.format.formatGeneric!(LockingTextWriter, ulong, char)' * * DtoDefineFunction(std.format.formatGeneric!(LockingTextWriter, ulong, char).formatGeneric): /usr/include/dlang/ldc/std/format.d(3455) * * * Doing function body for: formatGeneric * * * DtoCreateNestedContext for formatGeneric * * * * DtoCreateNestedContextType for std.format.formatGeneric!(LockingTextWriter, ulong, char).formatGeneric * * * TryFinallyStatement::toIR(): * * * * ExpStatement::toIR(): * * * * * CallExp::toElem: w.~this() @ void * * * * * * DotVarExp::toElem: w.~this @ @trusted void() * * * * * * * VarExp::toElem: w @ LockingTextWriter * * * * * * * * DtoSymbolAddress ('w' of type 'LockingTextWriter') * * * * * * * * * function param * * * * * * * * * type: LockingTextWriter * * * * * * DtoCallFunction() * * * * * * * doing normal arguments * * * * * * * Arguments so far: (1) * * * * * * * * %std.stdio.File.LockingTextWriter* %w_arg * * * * * * * Function type: @trusted void() * * * * CompoundStatement::toIR(): * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3457) * * * * * * CallExp::toElem: formatValue((LockingTextWriter __copytmp3380 = (__copytmp3380 = w).__postblit(); , __copytmp3380), *cast(ulong*)arg, f) @ void * * * * * * * VarExp::toElem: formatValue @ @safe void(LockingTextWriter w, ulong obj, ref FormatSpec!char f) * * * * * * * * DtoSymbolAddress ('formatValue' of type '@safe void(LockingTextWriter w, ulong obj, ref FormatSpec!char f)') * * * * * * * * * FuncDeclaration * * * * * * * DtoCallFunction() * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (0) * * * * * * * * Function type: @safe void(LockingTextWriter w, ulong obj, ref FormatSpec!char f) * * * * * * * * DtoArgument * * * * * * * * * CommaExp::toElem: LockingTextWriter __copytmp3380 = (__copytmp3380 = w).__postblit(); , __copytmp3380 @ LockingTextWriter * * * * * * * * * * DeclarationExp::toElem: LockingTextWriter __copytmp3380 = (__copytmp3380 = w).__postblit(); | T=void * * * * * * * * * * * DtoDeclarationExp: __copytmp3380 * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * DtoVarDeclaration(vdtype = LockingTextWriter) * * * * * * * * * * * * * llvm value for decl: %__copytmp3380 = alloca %std.stdio.File.LockingTextWriter, align 8 * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * CallExp::toElem: (__copytmp3380 = w).__postblit() @ void * * * * * * * * * * * * * * DotVarExp::toElem: (__copytmp3380 = w).__postblit @ @trusted void() * * * * * * * * * * * * * * * AssignExp::toElem: __copytmp3380 = w | (LockingTextWriter)(LockingTextWriter = LockingTextWriter) * * * * * * * * * * * * * * * * VarExp::toElem: __copytmp3380 @ LockingTextWriter * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__copytmp3380' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * VarExp::toElem: w @ LockingTextWriter * * * * * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * type: LockingTextWriter * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * %__copytmp3380 = alloca %std.stdio.File.LockingTextWriter, align 8 * * * * * * * * * * * * * * * Function type: @trusted void() * * * * * * * * * * VarExp::toElem: __copytmp3380 @ LockingTextWriter * * * * * * * * * * * DtoSymbolAddress ('__copytmp3380' of type 'LockingTextWriter') * * * * * * * * * * * * a normal variable * * * * * * * * DtoArgument * * * * * * * * * PtrExp::toElem: *cast(ulong*)arg @ ulong * * * * * * * * * * CastExp::toElem: cast(ulong*)arg @ ulong* * * * * * * * * * * * VarExp::toElem: arg @ const(void)* * * * * * * * * * * * * DtoSymbolAddress ('arg' of type 'const(void)*') * * * * * * * * * * * * * function param * * * * * * * * * * * * * type: const(void)* * * * * * * * * * * * Casting from 'const(void)*' to 'ulong*' * * * * * * * * * * * * src: %3 = load i8*, i8** %arg * * * * * * * * * * * * to type: i64* * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: f @ FormatSpec!char * * * * * * * * * * DtoSymbolAddress ('f' of type 'FormatSpec!char') * * * * * * * * * * * function param * * * * * * * * * * * type: FormatSpec!char * TemplateInstance::codegen: 'std.format.hasToString!(ulong, char)' * TemplateInstance::codegen: 'std.format.formatValue!(LockingTextWriter, ulong, char)' * * DtoDefineFunction(std.format.formatValue!(LockingTextWriter, ulong, char).formatValue): /usr/include/dlang/ldc/std/format.d(1397) * * * Doing function body for: formatValue * * * DtoCreateNestedContext for formatValue * * * * DtoCreateNestedContextType for std.format.formatValue!(LockingTextWriter, ulong, char).formatValue * * * TryFinallyStatement::toIR(): * * * * ExpStatement::toIR(): * * * * * CallExp::toElem: w.~this() @ void * * * * * * DotVarExp::toElem: w.~this @ @trusted void() * * * * * * * VarExp::toElem: w @ LockingTextWriter * * * * * * * * DtoSymbolAddress ('w' of type 'LockingTextWriter') * * * * * * * * * function param * * * * * * * * * type: LockingTextWriter * * * * * * DtoCallFunction() * * * * * * * doing normal arguments * * * * * * * Arguments so far: (1) * * * * * * * * %std.stdio.File.LockingTextWriter* %w_arg * * * * * * * Function type: @trusted void() * * * * CompoundStatement::toIR(): * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1399) * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1401) * * * * * * * DeclarationExp::toElem: alias U = ulong; | T=void * * * * * * * * DtoDeclarationExp: U * * * * * * * * * Ignoring Symbol: alias * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1402) * * * * * * * DeclarationExp::toElem: ulong val = obj; | T=void * * * * * * * * DtoDeclarationExp: val * * * * * * * * * VarDeclaration * * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * * llvm value for decl: %val = alloca i64, align 8 * * * * * * * * * * expression initializer * * * * * * * * * * AssignExp::toElem: val = obj | (ulong)(ulong = ulong) * * * * * * * * * * * VarExp::toElem: val @ ulong * * * * * * * * * * * * DtoSymbolAddress ('val' of type 'ulong') * * * * * * * * * * * * * a normal variable * * * * * * * * * * * VarExp::toElem: obj @ ulong * * * * * * * * * * * * DtoSymbolAddress ('obj' of type 'ulong') * * * * * * * * * * * * * function param * * * * * * * * * * * * * type: ulong * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * lhs: %val = alloca i64, align 8 * * * * * * * * * * * * rhs: %1 = load i64, i64* %obj * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1404) * * * * * * * EqualExp::toElem: cast(int)f.spec == 114 @ bool * * * * * * * * CastExp::toElem: cast(int)f.spec @ int * * * * * * * * * DotVarExp::toElem: f.spec @ char * * * * * * * * * * VarExp::toElem: f @ FormatSpec!char * * * * * * * * * * * DtoSymbolAddress ('f' of type 'FormatSpec!char') * * * * * * * * * * * * function param * * * * * * * * * * * * type: FormatSpec!char * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.spec: * * * * * * * * * * * Value: %2 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %f_arg, i32 0, i32 2 * * * * * * * * * Casting from 'char' to 'int' * * * * * * * * * * cast to: i32 * * * * * * * * IntegerExp::toElem: 114 @ int * * * * * * * * * IntegerExp::toConstElem: 114 @ int * * * * * * * * * * value = i32 114 * * * * * * * * integral or pointer or interface * * * * * * * * lv: %4 = zext i8 %3 to i32 * * * * * * * * rv: i32 114 * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1405) * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1405) * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1407) * * * * * * * * * * DeclarationExp::toElem: const(char)[] raw = (*(ref ulong val) => (cast(const(char*))&val)[0..8])(val); | T=void * * * * * * * * * * * DtoDeclarationExp: raw * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * DtoVarDeclaration(vdtype = const(char)[]) * * * * * * * * * * * * * llvm value for decl: %raw = alloca { i64, i8* }, align 8 * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * AssignExp::toElem: raw = (*(ref ulong val) => (cast(const(char*))&val)[0..8])(val) | (const(char)[])(const(char)[] = const(char)[]) * * * * * * * * * * * * * * VarExp::toElem: raw @ const(char)[] * * * * * * * * * * * * * * * DtoSymbolAddress ('raw' of type 'const(char)[]') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * CallExp::toElem: (*(ref ulong val) => (cast(const(char*))&val)[0..8])(val) @ const(char)[] * * * * * * * * * * * * * * * PtrExp::toElem: *(ref ulong val) => (cast(const(char*))&val)[0..8] @ pure nothrow @nogc @trusted const(char)[](ref ulong val) * * * * * * * * * * * * * * * * FuncExp::toElem: __lambda4 @ const(char)[] function(ref ulong val) pure nothrow @nogc @trusted * * * * * * * * * * * * * * * * * kind = function * * * * * * * * * * * * * * * * * DtoDefineFunction(std.format.formatValue!(LockingTextWriter, ulong, char).formatValue.__lambda4): /usr/include/dlang/ldc/std/format.d(1407) * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted const(char)[](ref ulong val)) * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * Final function type: { i64, i8* } (i64*) * * * * * * * * * * * * * * * * * * DtoResolveFunction(std.format.formatValue!(LockingTextWriter, ulong, char).formatValue.__lambda4): /usr/include/dlang/ldc/std/format.d(1407) * * * * * * * * * * * * * * * * * * * DtoDeclareFunction(std.format.formatValue!(LockingTextWriter, ulong, char).formatValue.__lambda4): /usr/include/dlang/ldc/std/format.d(1407) * * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted const(char)[](ref ulong val)) * * * * * * * * * * * * * * * * * * * * func = declare { i64, i8* } @_D3std6format57__T11formatValueTS3std5stdio4File17LockingTextWriterTmTaZ11formatValueFS3std5stdio4File17LockingTextWritermKS3std6format18__T10FormatSpecTaZ10FormatSpecZ16__T9__lambda4TmZ9__lambda4FNaNbNiNeKmZAxa(i64*) * * * * * * * * * * * * * * * * * * Doing function body for: __lambda4 * * * * * * * * * * * * * * * * * * DtoCreateNestedContext for __lambda4 * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for std.format.formatValue!(LockingTextWriter, ulong, char).formatValue.__lambda4 * * * * * * * * * * * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * * * * * * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1408) * * * * * * * * * * * * * * * * * * * * SliceExp::toElem: (cast(const(char*))&val)[0..8] @ const(char)[] * * * * * * * * * * * * * * * * * * * * * CastExp::toElem: cast(const(char*))&val @ const(char*) * * * * * * * * * * * * * * * * * * * * * * AddrExp::toElem: &val @ ulong* * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: val @ ulong * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('val' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * * * * type: ulong * * * * * * * * * * * * * * * * * * * * * * * is nothing special * * * * * * * * * * * * * * * * * * * * * * * lval: i64* %val_arg * * * * * * * * * * * * * * * * * * * * * * Casting from 'ulong*' to 'const(char*)' * * * * * * * * * * * * * * * * * * * * * * * src: i64* %val_arg * * * * * * * * * * * * * * * * * * * * * * * to type: i8* * * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 8LU @ ulong * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 8LU @ ulong * * * * * * * * * * * * * * * * * * * * * * * value = i64 8 * * * * * * * * * * * * * * * * * * * * return value is '0x129fcbf0' * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * Building type: pure nothrow @nogc @trusted const(char)[](ref ulong val) * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted const(char)[](ref ulong val)) * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * Final function type: { i64, i8* } (i64*) * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @trusted const(char)[](ref ulong val) * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * VarExp::toElem: val @ ulong * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('val' of type 'ulong') * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * SetArray * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1410) * * * * * * * * * * OrOrExp::toElem: !!f.flPlus() || false @ bool * * * * * * * * * * * BoolExp::toElem: !!f.flPlus() @ bool * * * * * * * * * * * * CallExp::toElem: f.flPlus() @ bool * * * * * * * * * * * * * DotVarExp::toElem: f.flPlus @ const pure nothrow @nogc @property @safe bool() * * * * * * * * * * * * * * VarExp::toElem: f @ FormatSpec!char * * * * * * * * * * * * * * * DtoSymbolAddress ('f' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * type: FormatSpec!char * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * %"std.format.FormatSpec!char.FormatSpec"* %f_arg * * * * * * * * * * * * * * Function type: const pure nothrow @nogc @property @safe bool() * * * * * * * * * * * IntegerExp::toElem: false @ bool * * * * * * * * * * * * IntegerExp::toConstElem: false @ bool * * * * * * * * * * * * * value = i1 false * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1412) * * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1414) * * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1414) * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1414) * * * * * * * * * * * * * * DeclarationExp::toElem: const(char)[] __aggr3375 = raw[]; | T=void * * * * * * * * * * * * * * * DtoDeclarationExp: __aggr3375 * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = const(char)[]) * * * * * * * * * * * * * * * * * llvm value for decl: %__aggr3375 = alloca { i64, i8* }, align 8 * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * AssignExp::toElem: __aggr3375 = raw[] | (const(char)[])(const(char)[] = const(char)[]) * * * * * * * * * * * * * * * * * * VarExp::toElem: __aggr3375 @ const(char)[] * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__aggr3375' of type 'const(char)[]') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * SliceExp::toElem: raw[] @ const(char)[] * * * * * * * * * * * * * * * * * * * VarExp::toElem: raw @ const(char)[] * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('raw' of type 'const(char)[]') * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * * * SetArray * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1414) * * * * * * * * * * * * * * DeclarationExp::toElem: ulong __key3376 = __aggr3375.length; | T=void * * * * * * * * * * * * * * * DtoDeclarationExp: __key3376 * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * * * * * * * * * llvm value for decl: %__key3376 = alloca i64, align 8 * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * AssignExp::toElem: __key3376 = __aggr3375.length | (ulong)(ulong = ulong) * * * * * * * * * * * * * * * * * * VarExp::toElem: __key3376 @ ulong * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__key3376' of type 'ulong') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * ArrayLengthExp::toElem: __aggr3375.length @ ulong * * * * * * * * * * * * * * * * * * * VarExp::toElem: __aggr3375 @ const(char)[] * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__aggr3375' of type 'const(char)[]') * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * lhs: %__key3376 = alloca i64, align 8 * * * * * * * * * * * * * * * * * * * rhs: %.len6 = load i64, i64* %18 * * * * * * * * * * * * * ForStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1414) * * * * * * * * * * * * * * PostExp::toElem: __key3376-- @ ulong * * * * * * * * * * * * * * * VarExp::toElem: __key3376 @ ulong * * * * * * * * * * * * * * * * DtoSymbolAddress ('__key3376' of type 'ulong') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * * Casting from 'ulong' to 'bool' * * * * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1414) * * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1414) * * * * * * * * * * * * * * * * DeclarationExp::toElem: const const(char) c = __aggr3375[__key3376]; | T=void * * * * * * * * * * * * * * * * * DtoDeclarationExp: c * * * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = const(char)) * * * * * * * * * * * * * * * * * * * llvm value for decl: %c = alloca i8, align 1 * * * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * * * AssignExp::toElem: c = __aggr3375[__key3376] | (const(char))(const(char) = const(char)) * * * * * * * * * * * * * * * * * * * * VarExp::toElem: c @ const(char) * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('c' of type 'const(char)') * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * IndexExp::toElem: __aggr3375[__key3376] @ const(char) * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: __aggr3375 @ const(char)[] * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__aggr3375' of type 'const(char)[]') * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: __key3376 @ ulong * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__key3376' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * * lhs: %c = alloca i8, align 1 * * * * * * * * * * * * * * * * * * * * * rhs: %27 = load i8, i8* %26 * * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1415) * * * * * * * * * * * * * * * * CallExp::toElem: put(w, c) @ void * * * * * * * * * * * * * * * * * VarExp::toElem: put @ nothrow @nogc @safe void(ref LockingTextWriter r, const(char) e) * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('put' of type 'nothrow @nogc @safe void(ref LockingTextWriter r, const(char) e)') * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * Function type: nothrow @nogc @safe void(ref LockingTextWriter r, const(char) e) * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * VarExp::toElem: w @ LockingTextWriter * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * type: LockingTextWriter * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * VarExp::toElem: c @ const(char) * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('c' of type 'const(char)') * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1418) * * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1419) * * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1419) * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1419) * * * * * * * * * * * * * * DeclarationExp::toElem: const(char)[] __aggr3377 = raw[]; | T=void * * * * * * * * * * * * * * * DtoDeclarationExp: __aggr3377 * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = const(char)[]) * * * * * * * * * * * * * * * * * llvm value for decl: %__aggr3377 = alloca { i64, i8* }, align 8 * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * AssignExp::toElem: __aggr3377 = raw[] | (const(char)[])(const(char)[] = const(char)[]) * * * * * * * * * * * * * * * * * * VarExp::toElem: __aggr3377 @ const(char)[] * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__aggr3377' of type 'const(char)[]') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * SliceExp::toElem: raw[] @ const(char)[] * * * * * * * * * * * * * * * * * * * VarExp::toElem: raw @ const(char)[] * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('raw' of type 'const(char)[]') * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * * * SetArray * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1419) * * * * * * * * * * * * * * DeclarationExp::toElem: ulong __key3378 = 0LU; | T=void * * * * * * * * * * * * * * * DtoDeclarationExp: __key3378 * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * * * * * * * * * llvm value for decl: %__key3378 = alloca i64, align 8 * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * AssignExp::toElem: __key3378 = 0LU | (ulong)(ulong = ulong) * * * * * * * * * * * * * * * * * * VarExp::toElem: __key3378 @ ulong * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__key3378' of type 'ulong') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * lhs: %__key3378 = alloca i64, align 8 * * * * * * * * * * * * * * * * * * * rhs: i64 0 * * * * * * * * * * * * * ForStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1419) * * * * * * * * * * * * * * CmpExp::toElem: __key3378 < __aggr3377.length @ bool * * * * * * * * * * * * * * * VarExp::toElem: __key3378 @ ulong * * * * * * * * * * * * * * * * DtoSymbolAddress ('__key3378' of type 'ulong') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * ArrayLengthExp::toElem: __aggr3377.length @ ulong * * * * * * * * * * * * * * * * VarExp::toElem: __aggr3377 @ const(char)[] * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__aggr3377' of type 'const(char)[]') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * type 1: %34 = load i64, i64* %__key3378 * * * * * * * * * * * * * * * type 2: %.len17 = load i64, i64* %33 * * * * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1419) * * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1419) * * * * * * * * * * * * * * * * DeclarationExp::toElem: const const(char) c = __aggr3377[__key3378]; | T=void * * * * * * * * * * * * * * * * * DtoDeclarationExp: c * * * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = const(char)) * * * * * * * * * * * * * * * * * * * llvm value for decl: %c18 = alloca i8, align 1 * * * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * * * AssignExp::toElem: c = __aggr3377[__key3378] | (const(char))(const(char) = const(char)) * * * * * * * * * * * * * * * * * * * * VarExp::toElem: c @ const(char) * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('c' of type 'const(char)') * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * IndexExp::toElem: __aggr3377[__key3378] @ const(char) * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: __aggr3377 @ const(char)[] * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__aggr3377' of type 'const(char)[]') * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: __key3378 @ ulong * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__key3378' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * * lhs: %c18 = alloca i8, align 1 * * * * * * * * * * * * * * * * * * * * * rhs: %41 = load i8, i8* %40 * * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1420) * * * * * * * * * * * * * * * * CallExp::toElem: put(w, c) @ void * * * * * * * * * * * * * * * * * VarExp::toElem: put @ nothrow @nogc @safe void(ref LockingTextWriter r, const(char) e) * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('put' of type 'nothrow @nogc @safe void(ref LockingTextWriter r, const(char) e)') * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * Function type: nothrow @nogc @safe void(ref LockingTextWriter r, const(char) e) * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * VarExp::toElem: w @ LockingTextWriter * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * type: LockingTextWriter * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * VarExp::toElem: c @ const(char) * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('c' of type 'const(char)') * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * AddAssignExp::toElem: __key3378 += 1LU @ ulong * * * * * * * * * * * * * * * Caching l-value of __key3378 += 1LU => __key3378 * * * * * * * * * * * * * * * * VarExp::toElem: __key3378 @ ulong * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__key3378' of type 'ulong') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * AddExp::toElem: __key3378 + 1LU @ ulong * * * * * * * * * * * * * * * * VarExp::toElem: __key3378 @ ulong * * * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * lhs: %__key3378 = alloca i64, align 8 * * * * * * * * * * * * * * * * rhs: %39 = add i64 %38, 1 * * * * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1422) * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1425) * * * * * * * DeclarationExp::toElem: uint base = cast(int)f.spec == 120 || cast(int)f.spec == 88 ? 16u : cast(int)f.spec == 111 ? 8u : cast(int)f.spec == 98 ? 2u : cast(int)f.spec == 115 || cast(int)f.spec == 100 || cast(int)f.spec == 117 ? 10u : 0u; | T=void * * * * * * * * DtoDeclarationExp: base * * * * * * * * * VarDeclaration * * * * * * * * * DtoVarDeclaration(vdtype = uint) * * * * * * * * * * llvm value for decl: %base = alloca i32, align 4 * * * * * * * * * * expression initializer * * * * * * * * * * AssignExp::toElem: base = cast(int)f.spec == 120 || cast(int)f.spec == 88 ? 16u : cast(int)f.spec == 111 ? 8u : cast(int)f.spec == 98 ? 2u : cast(int)f.spec == 115 || cast(int)f.spec == 100 || cast(int)f.spec == 117 ? 10u : 0u | (uint)(uint = uint) * * * * * * * * * * * VarExp::toElem: base @ uint * * * * * * * * * * * * DtoSymbolAddress ('base' of type 'uint') * * * * * * * * * * * * * a normal variable * * * * * * * * * * * CondExp::toElem: cast(int)f.spec == 120 || cast(int)f.spec == 88 ? 16u : cast(int)f.spec == 111 ? 8u : cast(int)f.spec == 98 ? 2u : cast(int)f.spec == 115 || cast(int)f.spec == 100 || cast(int)f.spec == 117 ? 10u : 0u @ uint * * * * * * * * * * * * OrOrExp::toElem: cast(int)f.spec == 120 || cast(int)f.spec == 88 @ bool * * * * * * * * * * * * * EqualExp::toElem: cast(int)f.spec == 120 @ bool * * * * * * * * * * * * * * CastExp::toElem: cast(int)f.spec @ int * * * * * * * * * * * * * * * DotVarExp::toElem: f.spec @ char * * * * * * * * * * * * * * * * VarExp::toElem: f @ FormatSpec!char * * * * * * * * * * * * * * * * * DtoSymbolAddress ('f' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * type: FormatSpec!char * * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.spec: * * * * * * * * * * * * * * * * * Value: %8 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %f_arg, i32 0, i32 2 * * * * * * * * * * * * * * * Casting from 'char' to 'int' * * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * * * IntegerExp::toElem: 120 @ int * * * * * * * * * * * * * * * IntegerExp::toConstElem: 120 @ int * * * * * * * * * * * * * * * * value = i32 120 * * * * * * * * * * * * * * integral or pointer or interface * * * * * * * * * * * * * * lv: %10 = zext i8 %9 to i32 * * * * * * * * * * * * * * rv: i32 120 * * * * * * * * * * * * * EqualExp::toElem: cast(int)f.spec == 88 @ bool * * * * * * * * * * * * * * CastExp::toElem: cast(int)f.spec @ int * * * * * * * * * * * * * * * DotVarExp::toElem: f.spec @ char * * * * * * * * * * * * * * * * VarExp::toElem: f @ FormatSpec!char * * * * * * * * * * * * * * * * * DtoSymbolAddress ('f' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * type: FormatSpec!char * * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.spec: * * * * * * * * * * * * * * * * * Value: %50 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %f_arg, i32 0, i32 2 * * * * * * * * * * * * * * * Casting from 'char' to 'int' * * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * * * IntegerExp::toElem: 88 @ int * * * * * * * * * * * * * * * IntegerExp::toConstElem: 88 @ int * * * * * * * * * * * * * * * * value = i32 88 * * * * * * * * * * * * * * integral or pointer or interface * * * * * * * * * * * * * * lv: %52 = zext i8 %51 to i32 * * * * * * * * * * * * * * rv: i32 88 * * * * * * * * * * * * IntegerExp::toElem: 16u @ uint * * * * * * * * * * * * * IntegerExp::toConstElem: 16u @ uint * * * * * * * * * * * * * * value = i32 16 * * * * * * * * * * * * CondExp::toElem: cast(int)f.spec == 111 ? 8u : cast(int)f.spec == 98 ? 2u : cast(int)f.spec == 115 || cast(int)f.spec == 100 || cast(int)f.spec == 117 ? 10u : 0u @ uint * * * * * * * * * * * * * EqualExp::toElem: cast(int)f.spec == 111 @ bool * * * * * * * * * * * * * * CastExp::toElem: cast(int)f.spec @ int * * * * * * * * * * * * * * * DotVarExp::toElem: f.spec @ char * * * * * * * * * * * * * * * * VarExp::toElem: f @ FormatSpec!char * * * * * * * * * * * * * * * * * DtoSymbolAddress ('f' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * type: FormatSpec!char * * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.spec: * * * * * * * * * * * * * * * * * Value: %50 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %f_arg, i32 0, i32 2 * * * * * * * * * * * * * * * Casting from 'char' to 'int' * * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * * * IntegerExp::toElem: 111 @ int * * * * * * * * * * * * * * * IntegerExp::toConstElem: 111 @ int * * * * * * * * * * * * * * * * value = i32 111 * * * * * * * * * * * * * * integral or pointer or interface * * * * * * * * * * * * * * lv: %52 = zext i8 %51 to i32 * * * * * * * * * * * * * * rv: i32 111 * * * * * * * * * * * * * IntegerExp::toElem: 8u @ uint * * * * * * * * * * * * * * IntegerExp::toConstElem: 8u @ uint * * * * * * * * * * * * * * * value = i32 8 * * * * * * * * * * * * * CondExp::toElem: cast(int)f.spec == 98 ? 2u : cast(int)f.spec == 115 || cast(int)f.spec == 100 || cast(int)f.spec == 117 ? 10u : 0u @ uint * * * * * * * * * * * * * * EqualExp::toElem: cast(int)f.spec == 98 @ bool * * * * * * * * * * * * * * * CastExp::toElem: cast(int)f.spec @ int * * * * * * * * * * * * * * * * DotVarExp::toElem: f.spec @ char * * * * * * * * * * * * * * * * * VarExp::toElem: f @ FormatSpec!char * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('f' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * type: FormatSpec!char * * * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.spec: * * * * * * * * * * * * * * * * * * Value: %58 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %f_arg, i32 0, i32 2 * * * * * * * * * * * * * * * * Casting from 'char' to 'int' * * * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * * * * IntegerExp::toElem: 98 @ int * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 98 @ int * * * * * * * * * * * * * * * * * value = i32 98 * * * * * * * * * * * * * * * integral or pointer or interface * * * * * * * * * * * * * * * lv: %60 = zext i8 %59 to i32 * * * * * * * * * * * * * * * rv: i32 98 * * * * * * * * * * * * * * IntegerExp::toElem: 2u @ uint * * * * * * * * * * * * * * * IntegerExp::toConstElem: 2u @ uint * * * * * * * * * * * * * * * * value = i32 2 * * * * * * * * * * * * * * CondExp::toElem: cast(int)f.spec == 115 || cast(int)f.spec == 100 || cast(int)f.spec == 117 ? 10u : 0u @ uint * * * * * * * * * * * * * * * OrOrExp::toElem: cast(int)f.spec == 115 || cast(int)f.spec == 100 || cast(int)f.spec == 117 @ bool * * * * * * * * * * * * * * * * OrOrExp::toElem: cast(int)f.spec == 115 || cast(int)f.spec == 100 @ bool * * * * * * * * * * * * * * * * * EqualExp::toElem: cast(int)f.spec == 115 @ bool * * * * * * * * * * * * * * * * * * CastExp::toElem: cast(int)f.spec @ int * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: f.spec @ char * * * * * * * * * * * * * * * * * * * * VarExp::toElem: f @ FormatSpec!char * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('f' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * type: FormatSpec!char * * * * * * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.spec: * * * * * * * * * * * * * * * * * * * * * Value: %62 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %f_arg, i32 0, i32 2 * * * * * * * * * * * * * * * * * * * Casting from 'char' to 'int' * * * * * * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 115 @ int * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 115 @ int * * * * * * * * * * * * * * * * * * * * value = i32 115 * * * * * * * * * * * * * * * * * * integral or pointer or interface * * * * * * * * * * * * * * * * * * lv: %64 = zext i8 %63 to i32 * * * * * * * * * * * * * * * * * * rv: i32 115 * * * * * * * * * * * * * * * * * EqualExp::toElem: cast(int)f.spec == 100 @ bool * * * * * * * * * * * * * * * * * * CastExp::toElem: cast(int)f.spec @ int * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: f.spec @ char * * * * * * * * * * * * * * * * * * * * VarExp::toElem: f @ FormatSpec!char * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('f' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * type: FormatSpec!char * * * * * * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.spec: * * * * * * * * * * * * * * * * * * * * * Value: %66 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %f_arg, i32 0, i32 2 * * * * * * * * * * * * * * * * * * * Casting from 'char' to 'int' * * * * * * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 100 @ int * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 100 @ int * * * * * * * * * * * * * * * * * * * * value = i32 100 * * * * * * * * * * * * * * * * * * integral or pointer or interface * * * * * * * * * * * * * * * * * * lv: %68 = zext i8 %67 to i32 * * * * * * * * * * * * * * * * * * rv: i32 100 * * * * * * * * * * * * * * * * EqualExp::toElem: cast(int)f.spec == 117 @ bool * * * * * * * * * * * * * * * * * CastExp::toElem: cast(int)f.spec @ int * * * * * * * * * * * * * * * * * * DotVarExp::toElem: f.spec @ char * * * * * * * * * * * * * * * * * * * VarExp::toElem: f @ FormatSpec!char * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('f' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * type: FormatSpec!char * * * * * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.spec: * * * * * * * * * * * * * * * * * * * * Value: %70 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %f_arg, i32 0, i32 2 * * * * * * * * * * * * * * * * * * Casting from 'char' to 'int' * * * * * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * * * * * * IntegerExp::toElem: 117 @ int * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 117 @ int * * * * * * * * * * * * * * * * * * * value = i32 117 * * * * * * * * * * * * * * * * * integral or pointer or interface * * * * * * * * * * * * * * * * * lv: %72 = zext i8 %71 to i32 * * * * * * * * * * * * * * * * * rv: i32 117 * * * * * * * * * * * * * * * IntegerExp::toElem: 10u @ uint * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 10u @ uint * * * * * * * * * * * * * * * * * value = i32 10 * * * * * * * * * * * * * * * IntegerExp::toElem: 0u @ uint * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0u @ uint * * * * * * * * * * * * * * * * * value = i32 0 * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * lhs: %base = alloca i32, align 4 * * * * * * * * * * * * rhs: %55 = load i32, i32* %54 * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1431) * * * * * * * CallExp::toElem: enforceEx(base > 0u, delegate string() => "integral", "/usr/include/dlang/ldc/std/format.d", 1431LU) @ bool * * * * * * * * VarExp::toElem: enforceEx @ pure @safe bool(bool value, lazy string msg = "", string file = __FILE__, ulong line = cast(ulong)__LINE__) * * * * * * * * * DtoSymbolAddress ('enforceEx' of type 'pure @safe bool(bool value, lazy string msg = "", string file = __FILE__, ulong line = cast(ulong)__LINE__)') * * * * * * * * * * FuncDeclaration * * * * * * * * DtoCallFunction() * * * * * * * * * doing normal arguments * * * * * * * * * Arguments so far: (0) * * * * * * * * * Function type: pure @safe bool(bool value, lazy string msg = "", string file = __FILE__, ulong line = cast(ulong)__LINE__) * * * * * * * * * DtoArgument * * * * * * * * * * CmpExp::toElem: base > 0u @ bool * * * * * * * * * * * VarExp::toElem: base @ uint * * * * * * * * * * * * DtoSymbolAddress ('base' of type 'uint') * * * * * * * * * * * * * a normal variable * * * * * * * * * * * IntegerExp::toElem: 0u @ uint * * * * * * * * * * * * IntegerExp::toConstElem: 0u @ uint * * * * * * * * * * * * * value = i32 0 * * * * * * * * * * * type 1: %56 = load i32, i32* %base * * * * * * * * * * * type 2: i32 0 * * * * * * * * * DtoArgument * * * * * * * * * * FuncExp::toElem: __dgliteral5 @ string delegate() pure nothrow @nogc @safe * * * * * * * * * * * nested * * * * * * * * * * * kind = delegate * * * * * * * * * * * DtoDefineFunction(std.format.formatValue!(LockingTextWriter, ulong, char).formatValue.__dgliteral5): /usr/include/dlang/ldc/std/format.d(1432) * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe string()) * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * Final function type: { i64, i8* } (i8*) * * * * * * * * * * * * DtoResolveFunction(std.format.formatValue!(LockingTextWriter, ulong, char).formatValue.__dgliteral5): /usr/include/dlang/ldc/std/format.d(1432) * * * * * * * * * * * * * DtoDeclareFunction(std.format.formatValue!(LockingTextWriter, ulong, char).formatValue.__dgliteral5): /usr/include/dlang/ldc/std/format.d(1432) * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe string()) * * * * * * * * * * * * * * func = declare { i64, i8* } @_D3std6format57__T11formatValueTS3std5stdio4File17LockingTextWriterTmTaZ11formatValueFS3std5stdio4File17LockingTextWritermKS3std6format18__T10FormatSpecTaZ10FormatSpecZ12__dgliteral5MFNaNbNiNfZAya(i8*) * * * * * * * * * * * * Doing function body for: __dgliteral5 * * * * * * * * * * * * DtoCreateNestedContext for __dgliteral5 * * * * * * * * * * * * * DtoCreateNestedContextType for std.format.formatValue!(LockingTextWriter, ulong, char).formatValue.__dgliteral5 * * * * * * * * * * * * * * DtoCreateNestedContextType for std.format.formatValue!(LockingTextWriter, ulong, char).formatValue * * * * * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1432) * * * * * * * * * * * * * * StringExp::toElem: "integral" @ string * * * * * * * * * * * * * * return value is '0x123bb390' * * * * * * * * * * * Building type: string delegate() pure nothrow @nogc @safe * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe string()) * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * Final function type: { i64, i8* } (i8*) * * * * * * * * * DtoArgument * * * * * * * * * * StringExp::toElem: "/usr/include/dlang/ldc/std/format.d" @ string * * * * * * * * * DtoArgument * * * * * * * * * * IntegerExp::toElem: 1431LU @ ulong * * * * * * * * * * * IntegerExp::toConstElem: 1431LU @ ulong * * * * * * * * * * * * value = i64 1431 * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1441) * * * * * * * DeclarationExp::toElem: alias C = ulong; | T=void * * * * * * * * DtoDeclarationExp: C * * * * * * * * * Ignoring Symbol: alias * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1442) * * * * * * * CallExp::toElem: formatIntegral((LockingTextWriter __copytmp3379 = (__copytmp3379 = w).__postblit(); , __copytmp3379), val, f, base, 18446744073709551615LU) @ void * * * * * * * * VarExp::toElem: formatIntegral @ @safe void(LockingTextWriter w, const(ulong) val, ref FormatSpec!char f, uint base, ulong mask) * * * * * * * * * DtoSymbolAddress ('formatIntegral' of type '@safe void(LockingTextWriter w, const(ulong) val, ref FormatSpec!char f, uint base, ulong mask)') * * * * * * * * * * FuncDeclaration * * * * * * * * DtoCallFunction() * * * * * * * * * doing normal arguments * * * * * * * * * Arguments so far: (0) * * * * * * * * * Function type: @safe void(LockingTextWriter w, const(ulong) val, ref FormatSpec!char f, uint base, ulong mask) * * * * * * * * * DtoArgument * * * * * * * * * * CommaExp::toElem: LockingTextWriter __copytmp3379 = (__copytmp3379 = w).__postblit(); , __copytmp3379 @ LockingTextWriter * * * * * * * * * * * DeclarationExp::toElem: LockingTextWriter __copytmp3379 = (__copytmp3379 = w).__postblit(); | T=void * * * * * * * * * * * * DtoDeclarationExp: __copytmp3379 * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * DtoVarDeclaration(vdtype = LockingTextWriter) * * * * * * * * * * * * * * llvm value for decl: %__copytmp3379 = alloca %std.stdio.File.LockingTextWriter, align 8 * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * CallExp::toElem: (__copytmp3379 = w).__postblit() @ void * * * * * * * * * * * * * * * DotVarExp::toElem: (__copytmp3379 = w).__postblit @ @trusted void() * * * * * * * * * * * * * * * * AssignExp::toElem: __copytmp3379 = w | (LockingTextWriter)(LockingTextWriter = LockingTextWriter) * * * * * * * * * * * * * * * * * VarExp::toElem: __copytmp3379 @ LockingTextWriter * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__copytmp3379' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * VarExp::toElem: w @ LockingTextWriter * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * type: LockingTextWriter * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * %__copytmp3379 = alloca %std.stdio.File.LockingTextWriter, align 8 * * * * * * * * * * * * * * * * Function type: @trusted void() * * * * * * * * * * * VarExp::toElem: __copytmp3379 @ LockingTextWriter * * * * * * * * * * * * DtoSymbolAddress ('__copytmp3379' of type 'LockingTextWriter') * * * * * * * * * * * * * a normal variable * * * * * * * * * DtoArgument * * * * * * * * * * VarExp::toElem: val @ const(ulong) * * * * * * * * * * * DtoSymbolAddress ('val' of type 'ulong') * * * * * * * * * * * * a normal variable * * * * * * * * * DtoArgument * * * * * * * * * * VarExp::toElem: f @ FormatSpec!char * * * * * * * * * * * DtoSymbolAddress ('f' of type 'FormatSpec!char') * * * * * * * * * * * * function param * * * * * * * * * * * * type: FormatSpec!char * * * * * * * * * DtoArgument * * * * * * * * * * VarExp::toElem: base @ uint * * * * * * * * * * * DtoSymbolAddress ('base' of type 'uint') * * * * * * * * * * * * a normal variable * * * * * * * * * DtoArgument * * * * * * * * * * IntegerExp::toElem: 18446744073709551615LU @ ulong * * * * * * * * * * * IntegerExp::toConstElem: 18446744073709551615LU @ ulong * * * * * * * * * * * * value = i64 -1 * TemplateInstance::codegen: 'std.format.formatValue!(LockingTextWriter, ulong, char).formatValue.__lambda4!ulong' * * DtoDefineFunction(std.format.formatValue!(LockingTextWriter, ulong, char).formatValue.__lambda4): /usr/include/dlang/ldc/std/format.d(1407) * TemplateInstance::codegen: 'std.format.formattedWrite!(LockingTextWriter, char, string, ulong).formattedWrite.__lambda9!ulong' * * DtoDefineFunction(std.format.formattedWrite!(LockingTextWriter, char, string, ulong).formattedWrite.__lambda9): /usr/include/dlang/ldc/std/format.d(437) * TemplateInstance::codegen: 'std.format.getNthInt!(string, ulong)' * * DtoDefineFunction(std.format.getNthInt!(string, ulong).getNthInt): /usr/include/dlang/ldc/std/format.d(3501) * * * Doing function body for: getNthInt * * * DtoCreateNestedContext for getNthInt * * * * DtoCreateNestedContextType for std.format.getNthInt!(string, ulong).getNthInt * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3502) * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3506) * * * * * * VarExp::toElem: index @ uint * * * * * * * DtoSymbolAddress ('index' of type 'uint') * * * * * * * * function param * * * * * * * * type: uint * * * * * * if conditional: %1 = load i32, i32* %index * * * * * * Casting from 'uint' to 'bool' * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3507) * * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3508) * * * * * * * * CallExp::toElem: getNthInt(index - 1u, _param_2) @ int * * * * * * * * * VarExp::toElem: getNthInt @ pure @safe int(uint index, ulong _param_1) * * * * * * * * * * DtoSymbolAddress ('getNthInt' of type 'pure @safe int(uint index, ulong _param_1)') * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * DtoFunctionType(pure @safe int(uint index, ulong _param_1)) * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * Final function type: i32 (i64, i32) * * * * * * * * * * * DtoResolveFunction(std.format.getNthInt!(ulong).getNthInt): /usr/include/dlang/ldc/std/format.d(3501) * * * * * * * * * * * * DtoDeclareFunction(std.format.getNthInt!(ulong).getNthInt): /usr/include/dlang/ldc/std/format.d(3501) * * * * * * * * * * * * * DtoFunctionType(pure @safe int(uint index, ulong _param_1)) * * * * * * * * * * * * * func = declare i32 @_D3std6format16__T9getNthIntTmZ9getNthIntFNaNfkmZi(i64, i32) * * * * * * * * * DtoCallFunction() * * * * * * * * * * Building type: pure @safe int(uint index, ulong _param_1) * * * * * * * * * * * DtoFunctionType(pure @safe int(uint index, ulong _param_1)) * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * Final function type: i32 (i64, i32) * * * * * * * * * * doing normal arguments * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * Function type: pure @safe int(uint index, ulong _param_1) * * * * * * * * * * DtoArgument * * * * * * * * * * * MinExp::toElem: index - 1u @ uint * * * * * * * * * * * * VarExp::toElem: index @ uint * * * * * * * * * * * * * DtoSymbolAddress ('index' of type 'uint') * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * type: uint * * * * * * * * * * * * IntegerExp::toElem: 1u @ uint * * * * * * * * * * * * * IntegerExp::toConstElem: 1u @ uint * * * * * * * * * * * * * * value = i32 1 * * * * * * * * * * DtoArgument * * * * * * * * * * * VarExp::toElem: _param_2 @ ulong * * * * * * * * * * * * DtoSymbolAddress ('_param_2' of type 'ulong') * * * * * * * * * * * * * function param * * * * * * * * * * * * * type: ulong * * * * * * * * return value is '0x12a18878' * * * * * ThrowStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3516) * * * * * * NewExp::toElem: new FormatException("int expected", "/usr/include/dlang/ldc/std/format.d", 3516LU, null) @ std.format.FormatException * * * * * * * new class * * * * * * * Calling constructor * * * * * * * DtoCallFunction() * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (1) * * * * * * * * * %.newclass_gc = bitcast %object.Object* %.newclass_gc_alloc to %std.format.FormatException* * * * * * * * * Function type: pure nothrow @safe FormatException(string msg, string fn = __FILE__, ulong ln = cast(ulong)__LINE__, Throwable next = null) * * * * * * * * DtoArgument * * * * * * * * * StringExp::toElem: "int expected" @ string * * * * * * * * * * type: [13 x i8] * * * * * * * * * * init: [13 x i8] c"int expected\00" * * * * * * * * DtoArgument * * * * * * * * * StringExp::toElem: "/usr/include/dlang/ldc/std/format.d" @ string * * * * * * * * DtoArgument * * * * * * * * * IntegerExp::toElem: 3516LU @ ulong * * * * * * * * * * IntegerExp::toConstElem: 3516LU @ ulong * * * * * * * * * * * value = i64 3516 * * * * * * * * DtoArgument * * * * * * * * * NullExp::toElem(type=object.Throwable): null * * * * * * * * * * NullExp::toConstElem(type=object.Throwable): null * * * * * * * * Rewrite: putParam * TemplateInstance::codegen: 'std.format.getNthInt!(ulong)' * * DtoDefineFunction(std.format.getNthInt!(ulong).getNthInt): /usr/include/dlang/ldc/std/format.d(3501) * * * Doing function body for: getNthInt * * * DtoCreateNestedContext for getNthInt * * * * DtoCreateNestedContextType for std.format.getNthInt!(ulong).getNthInt * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3502) * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3506) * * * * * * VarExp::toElem: index @ uint * * * * * * * DtoSymbolAddress ('index' of type 'uint') * * * * * * * * function param * * * * * * * * type: uint * * * * * * if conditional: %1 = load i32, i32* %index * * * * * * Casting from 'uint' to 'bool' * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3507) * * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3508) * * * * * * * * CallExp::toElem: getNthInt(index - 1u) @ int * * * * * * * * * VarExp::toElem: getNthInt @ pure @safe int(uint index) * * * * * * * * * * DtoSymbolAddress ('getNthInt' of type 'pure @safe int(uint index)') * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * DtoFunctionType(pure @safe int(uint index)) * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * Final function type: i32 (i32) * * * * * * * * * * * DtoResolveFunction(std.format.getNthInt!().getNthInt): /usr/include/dlang/ldc/std/format.d(3501) * * * * * * * * * * * * DtoDeclareFunction(std.format.getNthInt!().getNthInt): /usr/include/dlang/ldc/std/format.d(3501) * * * * * * * * * * * * * DtoFunctionType(pure @safe int(uint index)) * * * * * * * * * * * * * func = declare i32 @_D3std6format14__T9getNthIntZ9getNthIntFNaNfkZi(i32) * * * * * * * * * DtoCallFunction() * * * * * * * * * * Building type: pure @safe int(uint index) * * * * * * * * * * * DtoFunctionType(pure @safe int(uint index)) * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * Final function type: i32 (i32) * * * * * * * * * * doing normal arguments * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * Function type: pure @safe int(uint index) * * * * * * * * * * DtoArgument * * * * * * * * * * * MinExp::toElem: index - 1u @ uint * * * * * * * * * * * * VarExp::toElem: index @ uint * * * * * * * * * * * * * DtoSymbolAddress ('index' of type 'uint') * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * type: uint * * * * * * * * * * * * IntegerExp::toElem: 1u @ uint * * * * * * * * * * * * * IntegerExp::toConstElem: 1u @ uint * * * * * * * * * * * * * * value = i32 1 * * * * * * * * return value is '0x12a1caf0' * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3512) * * * * * * CallExp::toElem: to(_param_1) @ int * * * * * * * VarExp::toElem: to @ pure @safe int(ulong _param_0) * * * * * * * * DtoSymbolAddress ('to' of type 'pure @safe int(ulong _param_0)') * * * * * * * * * FuncDeclaration * * * * * * * * * DtoFunctionType(pure @safe int(ulong _param_0)) * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: i32 (i64) * * * * * * * * * DtoResolveFunction(std.conv.to!int.to!(ulong).to): /usr/include/dlang/ldc/std/conv.d(292) * * * * * * * * * * DtoDeclareFunction(std.conv.to!int.to!(ulong).to): /usr/include/dlang/ldc/std/conv.d(292) * * * * * * * * * * * DtoFunctionType(pure @safe int(ulong _param_0)) * * * * * * * * * * * func = declare i32 @_D3std4conv9__T2toTiZ9__T2toTmZ2toFNaNfmZi(i64) * * * * * * * DtoCallFunction() * * * * * * * * Building type: pure @safe int(ulong _param_0) * * * * * * * * * DtoFunctionType(pure @safe int(ulong _param_0)) * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: i32 (i64) * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (0) * * * * * * * * Function type: pure @safe int(ulong _param_0) * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_1 @ ulong * * * * * * * * * * DtoSymbolAddress ('_param_1' of type 'ulong') * * * * * * * * * * * function param * * * * * * * * * * * type: ulong * * * * * * return value is '0x12a1e3e0' * TemplateInstance::codegen: 'std.conv.to!int.to!(ulong)' * * DtoDefineFunction(std.conv.to!int.to!(ulong).to): /usr/include/dlang/ldc/std/conv.d(292) * * * Doing function body for: to * * * DtoCreateNestedContext for to * * * * DtoCreateNestedContextType for std.conv.to!int.to!(ulong).to * * * CompoundStatement::toIR(): * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(295) * * * * * CallExp::toElem: toImpl(_param_0) @ int * * * * * * VarExp::toElem: toImpl @ pure @safe int(ulong value) * * * * * * * DtoSymbolAddress ('toImpl' of type 'pure @safe int(ulong value)') * * * * * * * * FuncDeclaration * * * * * * * * DtoFunctionType(pure @safe int(ulong value)) * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * Final function type: i32 (i64) * * * * * * * * DtoResolveFunction(std.conv.toImpl!(int, ulong).toImpl): /usr/include/dlang/ldc/std/conv.d(1317) * * * * * * * * * DtoDeclareFunction(std.conv.toImpl!(int, ulong).toImpl): /usr/include/dlang/ldc/std/conv.d(1317) * * * * * * * * * * DtoFunctionType(pure @safe int(ulong value)) * * * * * * * * * * func = declare i32 @_D3std4conv15__T6toImplTiTmZ6toImplFNaNfmZi(i64) * * * * * * DtoCallFunction() * * * * * * * Building type: pure @safe int(ulong value) * * * * * * * * DtoFunctionType(pure @safe int(ulong value)) * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * Final function type: i32 (i64) * * * * * * * doing normal arguments * * * * * * * Arguments so far: (0) * * * * * * * Function type: pure @safe int(ulong value) * * * * * * * DtoArgument * * * * * * * * VarExp::toElem: _param_0 @ ulong * * * * * * * * * DtoSymbolAddress ('_param_0' of type 'ulong') * * * * * * * * * * function param * * * * * * * * * * type: ulong * * * * * return value is '0x12a201b0' * TemplateInstance::codegen: 'std.traits.isImplicitlyConvertible!(ulong, int)' * TemplateInstance::codegen: 'std.conv.toImpl!(int, ulong)' * * DtoDefineFunction(std.conv.toImpl!(int, ulong).toImpl): /usr/include/dlang/ldc/std/conv.d(1317) * * * Doing function body for: toImpl * * * DtoCreateNestedContext for toImpl * * * * DtoCreateNestedContextType for std.conv.toImpl!(int, ulong).toImpl * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(1321) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(1322) * * * * * * DeclarationExp::toElem: enum byte sSmallest = cast(byte)0; | T=void * * * * * * * DtoDeclarationExp: sSmallest * * * * * * * * VarDeclaration * * * * * * * * Manifest constant, nothing to do. * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(1323) * * * * * * DeclarationExp::toElem: enum int tSmallest = -2147483648; | T=void * * * * * * * DtoDeclarationExp: tSmallest * * * * * * * * VarDeclaration * * * * * * * * Manifest constant, nothing to do. * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(1342) * * * * * * CmpExp::toElem: value > 2147483647LU @ bool * * * * * * * VarExp::toElem: value @ ulong * * * * * * * * DtoSymbolAddress ('value' of type 'ulong') * * * * * * * * * function param * * * * * * * * * type: ulong * * * * * * * IntegerExp::toElem: 2147483647LU @ ulong * * * * * * * * IntegerExp::toConstElem: 2147483647LU @ ulong * * * * * * * * * value = i64 2147483647 * * * * * * * type 1: %1 = load i64, i64* %value * * * * * * * type 2: i64 2147483647 * * * * * * ThrowStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(1343) * * * * * * * NewExp::toElem: new ConvOverflowException("Conversion positive overflow", "/usr/include/dlang/ldc/std/conv.d", 1343LU) @ std.conv.ConvOverflowException * * * * * * * * new class * * * * * * * * Calling constructor * * * * * * * * DtoCallFunction() * * * * * * * * * doing normal arguments * * * * * * * * * Arguments so far: (1) * * * * * * * * * * %.newclass_gc = bitcast %object.Object* %.newclass_gc_alloc to %std.conv.ConvOverflowException* * * * * * * * * * Function type: pure nothrow @safe ConvOverflowException(string s, string fn = __FILE__, ulong ln = cast(ulong)__LINE__) * * * * * * * * * DtoArgument * * * * * * * * * * StringExp::toElem: "Conversion positive overflow" @ string * * * * * * * * * * * type: [29 x i8] * * * * * * * * * * * init: [29 x i8] c"Conversion positive overflow\00" * * * * * * * * * DtoArgument * * * * * * * * * * StringExp::toElem: "/usr/include/dlang/ldc/std/conv.d" @ string * * * * * * * * * DtoArgument * * * * * * * * * * IntegerExp::toElem: 1343LU @ ulong * * * * * * * * * * * IntegerExp::toConstElem: 1343LU @ ulong * * * * * * * * * * * * value = i64 1343 * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(1345) * * * * * * CallExp::toElem: (*(ref ulong value) => cast(int)value)(value) @ int * * * * * * * PtrExp::toElem: *(ref ulong value) => cast(int)value @ pure nothrow @nogc @trusted int(ref ulong value) * * * * * * * * FuncExp::toElem: __lambda2 @ int function(ref ulong value) pure nothrow @nogc @trusted * * * * * * * * * kind = function * * * * * * * * * DtoDefineFunction(std.conv.toImpl!(int, ulong).toImpl.__lambda2): /usr/include/dlang/ldc/std/conv.d(1345) * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted int(ref ulong value)) * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * Final function type: i32 (i64*) * * * * * * * * * * DtoResolveFunction(std.conv.toImpl!(int, ulong).toImpl.__lambda2): /usr/include/dlang/ldc/std/conv.d(1345) * * * * * * * * * * * DtoDeclareFunction(std.conv.toImpl!(int, ulong).toImpl.__lambda2): /usr/include/dlang/ldc/std/conv.d(1345) * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted int(ref ulong value)) * * * * * * * * * * * * func = declare i32 @_D3std4conv15__T6toImplTiTmZ6toImplFmZ16__T9__lambda2TmZ9__lambda2FNaNbNiNeKmZi(i64*) * * * * * * * * * * Doing function body for: __lambda2 * * * * * * * * * * DtoCreateNestedContext for __lambda2 * * * * * * * * * * * DtoCreateNestedContextType for std.conv.toImpl!(int, ulong).toImpl.__lambda2 * * * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(1345) * * * * * * * * * * * * CastExp::toElem: cast(int)value @ int * * * * * * * * * * * * * VarExp::toElem: value @ ulong * * * * * * * * * * * * * * DtoSymbolAddress ('value' of type 'ulong') * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * type: ulong * * * * * * * * * * * * * Casting from 'ulong' to 'int' * * * * * * * * * * * * return value is '0x12a24538' * * * * * * * DtoCallFunction() * * * * * * * * Building type: pure nothrow @nogc @trusted int(ref ulong value) * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted int(ref ulong value)) * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: i32 (i64*) * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (0) * * * * * * * * Function type: pure nothrow @nogc @trusted int(ref ulong value) * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: value @ ulong * * * * * * * * * * DtoSymbolAddress ('value' of type 'ulong') * * * * * * * * * * * function param * * * * * * * * * * * type: ulong * * * * * * return value is '0x12a24b00' * TemplateInstance::codegen: 'std.conv.toImpl!(int, ulong).toImpl.__lambda2!ulong' * * DtoDefineFunction(std.conv.toImpl!(int, ulong).toImpl.__lambda2): /usr/include/dlang/ldc/std/conv.d(1345) * TemplateInstance::codegen: 'std.format.formatNth!(LockingTextWriter, char, string, ulong)' * * DtoDefineFunction(std.format.formatNth!(LockingTextWriter, char, string, ulong).formatNth): /usr/include/dlang/ldc/std/format.d(3460) * * * Doing function body for: formatNth * * * DtoCreateNestedContext for formatNth * * * * DtoCreateNestedContextType for std.format.formatNth!(LockingTextWriter, char, string, ulong).formatNth * * * TryFinallyStatement::toIR(): * * * * ExpStatement::toIR(): * * * * * CallExp::toElem: w.~this() @ void * * * * * * DotVarExp::toElem: w.~this @ @trusted void() * * * * * * * VarExp::toElem: w @ LockingTextWriter * * * * * * * * DtoSymbolAddress ('w' of type 'LockingTextWriter') * * * * * * * * * function param * * * * * * * * * type: LockingTextWriter * * * * * * DtoCallFunction() * * * * * * * doing normal arguments * * * * * * * Arguments so far: (1) * * * * * * * * %std.stdio.File.LockingTextWriter* %w_arg * * * * * * * Function type: @trusted void() * * * * CompoundStatement::toIR(): * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3461) * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3463) * * * * * * * DeclarationExp::toElem: static template gencode(ulong count) | T=void * * * * * * * * DtoDeclarationExp: __anonymous * * * * * * * * * AttribDeclaration * * * * * * * * * DtoDeclarationExp: gencode(ulong count)() * * * * * * * * * * Ignoring Symbol: template * * * * * * SwitchStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3477) * * * * * * * has default * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3478) * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3478) * * * * * * * * * CaseStatement::toIR(): /usr/include/dlang/ldc/std/format.d-mixin-3479(3479) * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * value = i64 0 * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d-mixin-3479(3479) * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d-mixin-3479(3479) * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d-mixin-3479(3479) * * * * * * * * * * * * * CallExp::toElem: formatValue((LockingTextWriter __copytmp3391 = (__copytmp3391 = w).__postblit(); , __copytmp3391), _param_3, f) @ void * * * * * * * * * * * * * * VarExp::toElem: formatValue @ @safe void(LockingTextWriter w, string obj, ref FormatSpec!char f) * * * * * * * * * * * * * * * DtoSymbolAddress ('formatValue' of type '@safe void(LockingTextWriter w, string obj, ref FormatSpec!char f)') * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * Function type: @safe void(LockingTextWriter w, string obj, ref FormatSpec!char f) * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * CommaExp::toElem: LockingTextWriter __copytmp3391 = (__copytmp3391 = w).__postblit(); , __copytmp3391 @ LockingTextWriter * * * * * * * * * * * * * * * * * DeclarationExp::toElem: LockingTextWriter __copytmp3391 = (__copytmp3391 = w).__postblit(); | T=void * * * * * * * * * * * * * * * * * * DtoDeclarationExp: __copytmp3391 * * * * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = LockingTextWriter) * * * * * * * * * * * * * * * * * * * * llvm value for decl: %__copytmp3391 = alloca %std.stdio.File.LockingTextWriter, align 8 * * * * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * * * * CallExp::toElem: (__copytmp3391 = w).__postblit() @ void * * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: (__copytmp3391 = w).__postblit @ @trusted void() * * * * * * * * * * * * * * * * * * * * * * AssignExp::toElem: __copytmp3391 = w | (LockingTextWriter)(LockingTextWriter = LockingTextWriter) * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: __copytmp3391 @ LockingTextWriter * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__copytmp3391' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: w @ LockingTextWriter * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * * * * type: LockingTextWriter * * * * * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * * * * * * %__copytmp3391 = alloca %std.stdio.File.LockingTextWriter, align 8 * * * * * * * * * * * * * * * * * * * * * * Function type: @trusted void() * * * * * * * * * * * * * * * * * VarExp::toElem: __copytmp3391 @ LockingTextWriter * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__copytmp3391' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * VarExp::toElem: _param_3 @ string * * * * * * * * * * * * * * * * * DtoSymbolAddress ('_param_3' of type 'string') * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * type: string * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * VarExp::toElem: f @ FormatSpec!char * * * * * * * * * * * * * * * * * DtoSymbolAddress ('f' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * type: FormatSpec!char * * * * * * * * * * * * BreakStatement::toIR(): /usr/include/dlang/ldc/std/format.d-mixin-3479(3479) * * * * * * * * * CaseStatement::toIR(): /usr/include/dlang/ldc/std/format.d-mixin-3479(3479) * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * value = i64 1 * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d-mixin-3479(3479) * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d-mixin-3479(3479) * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d-mixin-3479(3479) * * * * * * * * * * * * * CallExp::toElem: formatValue((LockingTextWriter __copytmp3395 = (__copytmp3395 = w).__postblit(); , __copytmp3395), _param_4, f) @ void * * * * * * * * * * * * * * VarExp::toElem: formatValue @ @safe void(LockingTextWriter w, ulong obj, ref FormatSpec!char f) * * * * * * * * * * * * * * * DtoSymbolAddress ('formatValue' of type '@safe void(LockingTextWriter w, ulong obj, ref FormatSpec!char f)') * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * Function type: @safe void(LockingTextWriter w, ulong obj, ref FormatSpec!char f) * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * CommaExp::toElem: LockingTextWriter __copytmp3395 = (__copytmp3395 = w).__postblit(); , __copytmp3395 @ LockingTextWriter * * * * * * * * * * * * * * * * * DeclarationExp::toElem: LockingTextWriter __copytmp3395 = (__copytmp3395 = w).__postblit(); | T=void * * * * * * * * * * * * * * * * * * DtoDeclarationExp: __copytmp3395 * * * * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = LockingTextWriter) * * * * * * * * * * * * * * * * * * * * llvm value for decl: %__copytmp3395 = alloca %std.stdio.File.LockingTextWriter, align 8 * * * * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * * * * CallExp::toElem: (__copytmp3395 = w).__postblit() @ void * * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: (__copytmp3395 = w).__postblit @ @trusted void() * * * * * * * * * * * * * * * * * * * * * * AssignExp::toElem: __copytmp3395 = w | (LockingTextWriter)(LockingTextWriter = LockingTextWriter) * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: __copytmp3395 @ LockingTextWriter * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__copytmp3395' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: w @ LockingTextWriter * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * * * * type: LockingTextWriter * * * * * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * * * * * * %__copytmp3395 = alloca %std.stdio.File.LockingTextWriter, align 8 * * * * * * * * * * * * * * * * * * * * * * Function type: @trusted void() * * * * * * * * * * * * * * * * * VarExp::toElem: __copytmp3395 @ LockingTextWriter * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__copytmp3395' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * VarExp::toElem: _param_4 @ ulong * * * * * * * * * * * * * * * * * DtoSymbolAddress ('_param_4' of type 'ulong') * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * type: ulong * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * VarExp::toElem: f @ FormatSpec!char * * * * * * * * * * * * * * * * * DtoSymbolAddress ('f' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * type: FormatSpec!char * * * * * * * * * * * * BreakStatement::toIR(): /usr/include/dlang/ldc/std/format.d-mixin-3479(3479) * * * * * * * * * DefaultStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3481) * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3481) * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3482) * * * * * * * * * * * * HaltExp::toElem: halt * * * * * * * VarExp::toElem: index @ ulong * * * * * * * * DtoSymbolAddress ('index' of type 'ulong') * * * * * * * * * function param * * * * * * * * * type: ulong * TemplateInstance::codegen: 'std.format.formatNth!(LockingTextWriter, char, string, ulong).formatNth.gencode!2LU' * * DtoDefineFunction(std.format.formatNth!(LockingTextWriter, char, string, ulong).formatNth.gencode!2LU.gencode): /usr/include/dlang/ldc/std/format.d(3463) * * * DtoFunctionType(pure nothrow @safe string()) * * * * x86-64 ABI: Transforming return type * * * * x86-64 ABI: Transforming argument types * * * * Final function type: { i64, i8* } () * * * DtoResolveFunction(std.format.formatNth!(LockingTextWriter, char, string, ulong).formatNth.gencode!2LU.gencode): /usr/include/dlang/ldc/std/format.d(3463) * * * * DtoDeclareFunction(std.format.formatNth!(LockingTextWriter, char, string, ulong).formatNth.gencode!2LU.gencode): /usr/include/dlang/ldc/std/format.d(3463) * * * * * DtoFunctionType(pure nothrow @safe string()) * * * * * func = declare { i64, i8* } @_D3std6format58__T9formatNthTS3std5stdio4File17LockingTextWriterTaTAyaTmZ9formatNthFS3std5stdio4File17LockingTextWriterKS3std6format18__T10FormatSpecTaZ10FormatSpecmAyamZ16__T7gencodeVmi2Z7gencodeFNaNbNfZAya() * * * Doing function body for: gencode * * * DtoCreateNestedContext for gencode * * * * DtoCreateNestedContextType for std.format.formatNth!(LockingTextWriter, char, string, ulong).formatNth.gencode!2LU.gencode * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3464) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3465) * * * * * * DeclarationExp::toElem: string result = null; | T=void * * * * * * * DtoDeclarationExp: result * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = string) * * * * * * * * * llvm value for decl: %result = alloca { i64, i8* }, align 8 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: result = null | (string)(string = string) * * * * * * * * * * VarExp::toElem: result @ string * * * * * * * * * * * DtoSymbolAddress ('result' of type 'string') * * * * * * * * * * * * a normal variable * * * * * * * * * * NullExp::toElem(type=string): null * * * * * * * * * * * NullExp::toConstElem(type=string): null * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * DtoSetArrayToNull * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3466) * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3466) * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3466) * * * * * * * * DeclarationExp::toElem: ulong __key3388 = 0LU; | T=void * * * * * * * * * DtoDeclarationExp: __key3388 * * * * * * * * * * VarDeclaration * * * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * * * llvm value for decl: %__key3388 = alloca i64, align 8 * * * * * * * * * * * expression initializer * * * * * * * * * * * AssignExp::toElem: __key3388 = 0LU | (ulong)(ulong = ulong) * * * * * * * * * * * * VarExp::toElem: __key3388 @ ulong * * * * * * * * * * * * * DtoSymbolAddress ('__key3388' of type 'ulong') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * lhs: %__key3388 = alloca i64, align 8 * * * * * * * * * * * * * rhs: i64 0 * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3466) * * * * * * * * DeclarationExp::toElem: ulong __limit3389 = 2LU; | T=void * * * * * * * * * DtoDeclarationExp: __limit3389 * * * * * * * * * * VarDeclaration * * * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * * * llvm value for decl: %__limit3389 = alloca i64, align 8 * * * * * * * * * * * expression initializer * * * * * * * * * * * AssignExp::toElem: __limit3389 = 2LU | (ulong)(ulong = ulong) * * * * * * * * * * * * VarExp::toElem: __limit3389 @ ulong * * * * * * * * * * * * * DtoSymbolAddress ('__limit3389' of type 'ulong') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * IntegerExp::toElem: 2LU @ ulong * * * * * * * * * * * * * IntegerExp::toConstElem: 2LU @ ulong * * * * * * * * * * * * * * value = i64 2 * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * lhs: %__limit3389 = alloca i64, align 8 * * * * * * * * * * * * * rhs: i64 2 * * * * * * * ForStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3466) * * * * * * * * CmpExp::toElem: __key3388 < __limit3389 @ bool * * * * * * * * * VarExp::toElem: __key3388 @ ulong * * * * * * * * * * DtoSymbolAddress ('__key3388' of type 'ulong') * * * * * * * * * * * a normal variable * * * * * * * * * VarExp::toElem: __limit3389 @ ulong * * * * * * * * * * DtoSymbolAddress ('__limit3389' of type 'ulong') * * * * * * * * * * * a normal variable * * * * * * * * * type 1: %1 = load i64, i64* %__key3388 * * * * * * * * * type 2: %2 = load i64, i64* %__limit3389 * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3466) * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3466) * * * * * * * * * * DeclarationExp::toElem: ulong n = __key3388; | T=void * * * * * * * * * * * DtoDeclarationExp: n * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * * * * * llvm value for decl: %n = alloca i64, align 8 * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * AssignExp::toElem: n = __key3388 | (ulong)(ulong = ulong) * * * * * * * * * * * * * * VarExp::toElem: n @ ulong * * * * * * * * * * * * * * * DtoSymbolAddress ('n' of type 'ulong') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * VarExp::toElem: __key3388 @ ulong * * * * * * * * * * * * * * * DtoSymbolAddress ('__key3388' of type 'ulong') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * lhs: %n = alloca i64, align 8 * * * * * * * * * * * * * * * rhs: %4 = load i64, i64* %__key3388 * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3468) * * * * * * * * * * DeclarationExp::toElem: string num = to(n); | T=void * * * * * * * * * * * DtoDeclarationExp: num * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * DtoVarDeclaration(vdtype = string) * * * * * * * * * * * * * llvm value for decl: %num = alloca { i64, i8* }, align 8 * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * AssignExp::toElem: num = to(n) | (string)(string = string) * * * * * * * * * * * * * * VarExp::toElem: num @ string * * * * * * * * * * * * * * * DtoSymbolAddress ('num' of type 'string') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * CallExp::toElem: to(n) @ string * * * * * * * * * * * * * * * VarExp::toElem: to @ pure nothrow @safe string(ulong _param_0) * * * * * * * * * * * * * * * * DtoSymbolAddress ('to' of type 'pure nothrow @safe string(ulong _param_0)') * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * Function type: pure nothrow @safe string(ulong _param_0) * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * VarExp::toElem: n @ ulong * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('n' of type 'ulong') * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * SetArray * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3469) * * * * * * * * * * CatAssignExp::toElem: result ~= "case " ~ num ~ ": formatValue(w, args[" ~ num ~ "], f); break;" @ string * * * * * * * * * * * VarExp::toElem: result @ string * * * * * * * * * * * * DtoSymbolAddress ('result' of type 'string') * * * * * * * * * * * * * a normal variable * * * * * * * * * * * DtoCatAssignArray * * * * * * * * * * * * CatExp::toElem: "case " ~ num ~ ": formatValue(w, args[" ~ num ~ "], f); break;" @ string * * * * * * * * * * * * * DtoCatAssignArray * * * * * * * * * * * * * * StringExp::toElem: "], f); break;" @ string * * * * * * * * * * * * * * VarExp::toElem: num @ string * * * * * * * * * * * * * * * DtoSymbolAddress ('num' of type 'string') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * StringExp::toElem: ": formatValue(w, args[" @ string * * * * * * * * * * * * * * VarExp::toElem: num @ string * * * * * * * * * * * * * * * DtoSymbolAddress ('num' of type 'string') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * StringExp::toElem: "case " @ string * * * * * * * * * * * * * * DtoTypeInfoOf(type = 'string', base='1') * * * * * * * * * * * * * * * Type::getTypeInfo(): string * * * * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(string)) * * * * * * * * * * * * DtoTypeInfoOf(type = 'string', base='1') * * * * * * * * * * * * * Type::getTypeInfo(): string * * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(string)) * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * SetArray * * * * * * * * AddAssignExp::toElem: __key3388 += 1LU @ ulong * * * * * * * * * Caching l-value of __key3388 += 1LU => __key3388 * * * * * * * * * * VarExp::toElem: __key3388 @ ulong * * * * * * * * * * * DtoSymbolAddress ('__key3388' of type 'ulong') * * * * * * * * * * * * a normal variable * * * * * * * * * AddExp::toElem: __key3388 + 1LU @ ulong * * * * * * * * * * VarExp::toElem: __key3388 @ ulong * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * value = i64 1 * * * * * * * * * DtoAssign() * * * * * * * * * * lhs: %__key3388 = alloca i64, align 8 * * * * * * * * * * rhs: %21 = add i64 %20, 1 * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3474) * * * * * * VarExp::toElem: result @ string * * * * * * * DtoSymbolAddress ('result' of type 'string') * * * * * * * * a normal variable * * * * * * return value is '0x12a33768' * TemplateInstance::codegen: 'std.array.appender!(string[])' * * DtoDefineFunction(std.array.appender!(string[]).appender): /usr/include/dlang/ldc/std/array.d(3071) * * * DtoFunctionType(pure nothrow @safe Appender!(string[])()) * * * * Building type: Appender!(string[]) * * * * * Building struct type std.array.Appender!(string[]).Appender @ /usr/include/dlang/ldc/std/array.d(2591) * * * * * * adding default initializer for struct field _data * * * * * * Building type: Data* * * * * * * * Building type: Data * * * * * * * * Building struct type std.array.Appender!(string[]).Appender.Data @ /usr/include/dlang/ldc/std/array.d(2597) * * * * * * * * * adding explicit initializer for struct field canExtend * * * * * * * * * adding default initializer for struct field capacity * * * * * * * * * adding default initializer for struct field arr * * * * * * * * * final struct type: %"std.array.Appender!(string[]).Appender.Data" = type { i64, { i64, { i64, i8* }* }, i8, [7 x i8] } * * * * * * final struct type: %"std.array.Appender!(string[]).Appender" = type { %"std.array.Appender!(string[]).Appender.Data"* } * * * * x86-64 ABI: Transforming return type * * * * x86-64 ABI: Transforming argument types * * * * Final function type: %"std.array.Appender!(string[]).Appender" () * * * DtoResolveFunction(std.array.appender!(string[]).appender): /usr/include/dlang/ldc/std/array.d(3071) * * * * DtoDeclareFunction(std.array.appender!(string[]).appender): /usr/include/dlang/ldc/std/array.d(3071) * * * * * DtoFunctionType(pure nothrow @safe Appender!(string[])()) * * * * * func = declare %"std.array.Appender!(string[]).Appender" @_D3std5array18__T8appenderTAAyaZ8appenderFNaNbNfZS3std5array18__T8AppenderTAAyaZ8Appender() * * * Doing function body for: appender * * * DtoCreateNestedContext for appender * * * * DtoCreateNestedContextType for std.array.appender!(string[]).appender * * * CompoundStatement::toIR(): * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/array.d(3074) * * * * * CallExp::toElem: Appender(null).this(null) @ Appender!(string[]) * * * * * * DotVarExp::toElem: Appender(null).this @ pure nothrow ref @trusted Appender!(string[])(string[] arr) * * * * * * * StructLiteralExp::toElem: Appender(null) @ Appender!(string[]) * * * * * * * * Resolving struct type: Appender (/usr/include/dlang/ldc/std/array.d(2591)) * * * * * * * * initializing field: Data* _data (+0) * * * * * * * * * expr 0 = null * * * * * * * * * NullExp::toElem(type=Data*): null * * * * * * * * * * NullExp::toConstElem(type=Data*): null * * * * * * * * * Indexing aggregate field std.array.Appender!(string[]).Appender._data: * * * * * * * * * * Value: %1 = getelementptr %"std.array.Appender!(string[]).Appender", %"std.array.Appender!(string[]).Appender"* %.structliteral, i32 0, i32 0 * * * * * * * * * DtoAssign() * * * * * * * * * * lhs: %1 = getelementptr %"std.array.Appender!(string[]).Appender", %"std.array.Appender!(string[]).Appender"* %.structliteral, i32 0, i32 0 * * * * * * * * * * rhs: %"std.array.Appender!(string[]).Appender.Data"* null * * * * * * * isMember = this is: Appender!(string[]) * * * * * * * DtoFunctionType(pure nothrow ref @trusted Appender!(string[])(string[] arr)) * * * * * * * * Building type: Appender!(string[])* * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * Final function type: %"std.array.Appender!(string[]).Appender"* (%"std.array.Appender!(string[]).Appender"*, { i64, { i64, i8* }* }) * * * * * * * DtoResolveFunction(std.array.Appender!(string[]).Appender.this): /usr/include/dlang/ldc/std/array.d(2612) * * * * * * * * DtoDeclareFunction(std.array.Appender!(string[]).Appender.this): /usr/include/dlang/ldc/std/array.d(2612) * * * * * * * * * isMember = this is: Appender!(string[]) * * * * * * * * * DtoFunctionType(pure nothrow ref @trusted Appender!(string[])(string[] arr)) * * * * * * * * * func = declare %"std.array.Appender!(string[]).Appender"* @_D3std5array18__T8AppenderTAAyaZ8Appender6__ctorMFNaNbNcNeAAyaZS3std5array18__T8AppenderTAAyaZ8Appender(%"std.array.Appender!(string[]).Appender"*, { i64, { i64, i8* }* }) * * * * * * DtoCallFunction() * * * * * * * Building type: pure nothrow ref @trusted Appender!(string[])(string[] arr) * * * * * * * * DtoFunctionType(pure nothrow ref @trusted Appender!(string[])(string[] arr)) * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * Final function type: %"std.array.Appender!(string[]).Appender"* ({ i64, { i64, i8* }* }) * * * * * * * doing normal arguments * * * * * * * Arguments so far: (1) * * * * * * * * %.structliteral = alloca %"std.array.Appender!(string[]).Appender", align 8 * * * * * * * Function type: pure nothrow ref @trusted Appender!(string[])(string[] arr) * * * * * * * DtoArgument * * * * * * * * NullExp::toElem(type=string[]): null * * * * * * * * * NullExp::toConstElem(type=string[]): null * * * * * return value is '0x12a35b78' * * * * * Loading value for return * TemplateInstance::codegen: 'std.array.Appender!(string[])' * * StructDeclaration::codegen: 'std.array.Appender!(string[]).Appender' * * * Ignoring Dsymbol::codegen for std.array.Appender!(string[]).Appender.core * * * Ignoring Dsymbol::codegen for std.array.Appender!(string[]).Appender.T * * * StructDeclaration::codegen: 'std.array.Appender!(string[]).Appender.Data' * * * * Resolving struct type: Data (/usr/include/dlang/ldc/std/array.d(2597)) * * * * VarDeclaration::codegen(): 'std.array.Appender!(string[]).Appender.Data.capacity' * * * * * DtoResolveVariable(std.array.Appender!(string[]).Appender.Data.capacity) * * * * VarDeclaration::codegen(): 'std.array.Appender!(string[]).Appender.Data.arr' * * * * * DtoResolveVariable(std.array.Appender!(string[]).Appender.Data.arr) * * * * VarDeclaration::codegen(): 'std.array.Appender!(string[]).Appender.Data.canExtend' * * * * * DtoResolveVariable(std.array.Appender!(string[]).Appender.Data.canExtend) * * * * Building default initializer for std.array.Appender!(string[]).Appender.Data * * * * * Creating initializer constant for Data * * * * * * Implicit initializer: capacity @+0 * * * * * * * DtoConstExpInit(targetType = ulong, exp = 0LU) * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * value = i64 0 * * * * * * Implicit initializer: arr @+8 * * * * * * * DtoConstExpInit(targetType = string[], exp = null) * * * * * * * * NullExp::toConstElem(type=string[]): null * * * * * * Implicit initializer: canExtend @+24 * * * * * * * const expression initializer * * * * * * * DtoConstExpInit(targetType = bool, exp = false) * * * * * * * * IntegerExp::toConstElem: false @ bool * * * * * * * * * value = i1 false * * * * * * * * Fixing up unresolved implicit integer conversion. * * * * * * adding field capacity * * * * * * adding field arr * * * * * * adding field canExtend * * * * * * final initializer: %"std.array.Appender!(string[]).Appender.Data_init" zeroinitializer * * * * DtoTypeInfoOf(type = 'Data', base='1') * * * * * Type::getTypeInfo(): Data * * * * * * TypeInfoDeclaration::codegen(typeid(Data)) * * * * * * * type = 'Data' * * * * * * * typeinfo mangle: _D54TypeInfo_S3std5array18__T8AppenderTAAyaZ8Appender4Data6__initZ * * * * * * * TypeInfoStructDeclaration::llvmDefine() typeid(Data) * * * * * * * * DtoFunctionType(nothrow @trusted ulong(ref const(Data) p)) * * * * * * * * * Building type: const(Data)* * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * Final function type: i64 (%"std.array.Appender!(string[]).Appender.Data"*) * * * * * * * * DtoResolveFunction(std.array.Appender!(string[]).Appender.Data.__xtoHash): * * * * * * * * * DtoDeclareFunction(std.array.Appender!(string[]).Appender.Data.__xtoHash): * * * * * * * * * * DtoFunctionType(nothrow @trusted ulong(ref const(Data) p)) * * * * * * * * * * func = declare i64 @_D3std5array18__T8AppenderTAAyaZ8Appender4Data9__xtoHashFNbNeKxS3std5array18__T8AppenderTAAyaZ8Appender4DataZm(%"std.array.Appender!(string[]).Appender.Data"*) * * * * * * * * DtoFunctionType(bool(ref const(Data) p, ref const(Data) q)) * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * Final function type: i1 (%"std.array.Appender!(string[]).Appender.Data"*, %"std.array.Appender!(string[]).Appender.Data"*) * * * * * * * * DtoResolveFunction(std.array.Appender!(string[]).Appender.Data.__xopEquals): * * * * * * * * * DtoDeclareFunction(std.array.Appender!(string[]).Appender.Data.__xopEquals): * * * * * * * * * * DtoFunctionType(bool(ref const(Data) p, ref const(Data) q)) * * * * * * * * * * func = declare i1 @_D3std5array18__T8AppenderTAAyaZ8Appender4Data11__xopEqualsFKxS3std5array18__T8AppenderTAAyaZ8Appender4DataKxS3std5array18__T8AppenderTAAyaZ8Appender4DataZb(%"std.array.Appender!(string[]).Appender.Data"*, %"std.array.Appender!(string[]).Appender.Data"*) * * * * * * * * IntegerExp::toConstElem: cast(void*)305419896LU @ void* * * * * * * * * * pointer * * * * * TypeInfoDeclaration::codegen(typeid(Data)) * * * * DtoDefineFunction(std.array.Appender!(string[]).Appender.Data.__xopEquals): * * * * * Doing function body for: __xopEquals * * * * * DtoCreateNestedContext for __xopEquals * * * * * * DtoCreateNestedContextType for std.array.Appender!(string[]).Appender.Data.__xopEquals * * * * * CompoundStatement::toIR(): * * * * * * ReturnStatement::toIR(): * * * * * * * AndAndExp::toElem: p.capacity == q.capacity && p.arr == q.arr && cast(int)p.canExtend == cast(int)q.canExtend @ bool * * * * * * * * AndAndExp::toElem: p.capacity == q.capacity && p.arr == q.arr @ bool * * * * * * * * * EqualExp::toElem: p.capacity == q.capacity @ bool * * * * * * * * * * DotVarExp::toElem: p.capacity @ const(ulong) * * * * * * * * * * * VarExp::toElem: p @ const(Data) * * * * * * * * * * * * DtoSymbolAddress ('p' of type 'const(Data)') * * * * * * * * * * * * * function param * * * * * * * * * * * * * type: const(Data) * * * * * * * * * * * Indexing aggregate field std.array.Appender!(string[]).Appender.Data.capacity: * * * * * * * * * * * * Value: %1 = getelementptr %"std.array.Appender!(string[]).Appender.Data", %"std.array.Appender!(string[]).Appender.Data"* %p_arg, i32 0, i32 0 * * * * * * * * * * DotVarExp::toElem: q.capacity @ const(ulong) * * * * * * * * * * * VarExp::toElem: q @ const(Data) * * * * * * * * * * * * DtoSymbolAddress ('q' of type 'const(Data)') * * * * * * * * * * * * * function param * * * * * * * * * * * * * type: const(Data) * * * * * * * * * * * Indexing aggregate field std.array.Appender!(string[]).Appender.Data.capacity: * * * * * * * * * * * * Value: %2 = getelementptr %"std.array.Appender!(string[]).Appender.Data", %"std.array.Appender!(string[]).Appender.Data"* %q_arg, i32 0, i32 0 * * * * * * * * * * integral or pointer or interface * * * * * * * * * * lv: %3 = load i64, i64* %1 * * * * * * * * * * rv: %4 = load i64, i64* %2 * * * * * * * * * EqualExp::toElem: p.arr == q.arr @ bool * * * * * * * * * * DotVarExp::toElem: p.arr @ const(string[]) * * * * * * * * * * * VarExp::toElem: p @ const(Data) * * * * * * * * * * * * DtoSymbolAddress ('p' of type 'const(Data)') * * * * * * * * * * * * * function param * * * * * * * * * * * * * type: const(Data) * * * * * * * * * * * Indexing aggregate field std.array.Appender!(string[]).Appender.Data.arr: * * * * * * * * * * * * Value: %6 = getelementptr %"std.array.Appender!(string[]).Appender.Data", %"std.array.Appender!(string[]).Appender.Data"* %p_arg, i32 0, i32 1 * * * * * * * * * * DotVarExp::toElem: q.arr @ const(string[]) * * * * * * * * * * * VarExp::toElem: q @ const(Data) * * * * * * * * * * * * DtoSymbolAddress ('q' of type 'const(Data)') * * * * * * * * * * * * * function param * * * * * * * * * * * * * type: const(Data) * * * * * * * * * * * Indexing aggregate field std.array.Appender!(string[]).Appender.Data.arr: * * * * * * * * * * * * Value: %7 = getelementptr %"std.array.Appender!(string[]).Appender.Data", %"std.array.Appender!(string[]).Appender.Data"* %q_arg, i32 0, i32 1 * * * * * * * * * * static or dynamic array * * * * * * * * * * comparing arrays * * * * * * * * * * casting to dynamic arrays * * * * * * * * * * DtoCastArray * * * * * * * * * * * from array or sarray * * * * * * * * * * * to array * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * isslice * * * * * * * * * * DtoCastArray * * * * * * * * * * * from array or sarray * * * * * * * * * * * to array * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * isslice * * * * * * * * * * DtoTypeInfoOf(type = 'const(string)[]', base='1') * * * * * * * * * * * Type::getTypeInfo(): const(string)[] * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(const(string)[])) * * * * * * * * EqualExp::toElem: cast(int)p.canExtend == cast(int)q.canExtend @ bool * * * * * * * * * CastExp::toElem: cast(int)p.canExtend @ int * * * * * * * * * * DotVarExp::toElem: p.canExtend @ const(bool) * * * * * * * * * * * VarExp::toElem: p @ const(Data) * * * * * * * * * * * * DtoSymbolAddress ('p' of type 'const(Data)') * * * * * * * * * * * * * function param * * * * * * * * * * * * * type: const(Data) * * * * * * * * * * * Indexing aggregate field std.array.Appender!(string[]).Appender.Data.canExtend: * * * * * * * * * * * * Value: %30 = getelementptr %"std.array.Appender!(string[]).Appender.Data", %"std.array.Appender!(string[]).Appender.Data"* %p_arg, i32 0, i32 2 * * * * * * * * * * Casting from 'const(bool)' to 'int' * * * * * * * * * * * cast to: i32 * * * * * * * * * CastExp::toElem: cast(int)q.canExtend @ int * * * * * * * * * * DotVarExp::toElem: q.canExtend @ const(bool) * * * * * * * * * * * VarExp::toElem: q @ const(Data) * * * * * * * * * * * * DtoSymbolAddress ('q' of type 'const(Data)') * * * * * * * * * * * * * function param * * * * * * * * * * * * * type: const(Data) * * * * * * * * * * * Indexing aggregate field std.array.Appender!(string[]).Appender.Data.canExtend: * * * * * * * * * * * * Value: %34 = getelementptr %"std.array.Appender!(string[]).Appender.Data", %"std.array.Appender!(string[]).Appender.Data"* %q_arg, i32 0, i32 2 * * * * * * * * * * Casting from 'const(bool)' to 'int' * * * * * * * * * * * cast to: i32 * * * * * * * * * integral or pointer or interface * * * * * * * * * lv: %33 = zext i1 %32 to i32 * * * * * * * * * rv: %37 = zext i1 %36 to i32 * * * * * * * return value is '0x12a3eaf8' * * * * DtoDefineFunction(std.array.Appender!(string[]).Appender.Data.__xtoHash): * * * * * Doing function body for: __xtoHash * * * * * DtoCreateNestedContext for __xtoHash * * * * * * DtoCreateNestedContextType for std.array.Appender!(string[]).Appender.Data.__xtoHash * * * * * CompoundStatement::toIR(): * * * * * * CompoundStatement::toIR(): * * * * * * * ExpStatement::toIR(): * * * * * * * * DeclarationExp::toElem: ulong h = 0LU; | T=void * * * * * * * * * DtoDeclarationExp: h * * * * * * * * * * VarDeclaration * * * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * * * llvm value for decl: %h = alloca i64, align 8 * * * * * * * * * * * expression initializer * * * * * * * * * * * AssignExp::toElem: h = 0LU | (ulong)(ulong = ulong) * * * * * * * * * * * * VarExp::toElem: h @ ulong * * * * * * * * * * * * * DtoSymbolAddress ('h' of type 'ulong') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * lhs: %h = alloca i64, align 8 * * * * * * * * * * * * * rhs: i64 0 * * * * * * * UnrolledLoopStatement::toIR(): * * * * * * * * ScopeStatement::toIR(): * * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * * ExpStatement::toIR(): * * * * * * * * * * * DeclarationExp::toElem: enum ulong i = 0LU; | T=void * * * * * * * * * * * * DtoDeclarationExp: i * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * Manifest constant, nothing to do. * * * * * * * * * * ExpStatement::toIR(): * * * * * * * * * * * DeclarationExp::toElem: alias T = const(ulong); | T=void * * * * * * * * * * * * DtoDeclarationExp: T * * * * * * * * * * * * * Ignoring Symbol: alias * * * * * * * * * * ExpStatement::toIR(): * * * * * * * * * * * AddAssignExp::toElem: h += typeid(const(ulong)).getHash(cast(const(void*))&p.capacity) @ ulong * * * * * * * * * * * * Caching l-value of h += typeid(const(ulong)).getHash(cast(const(void*))&p.capacity) => h * * * * * * * * * * * * * VarExp::toElem: h @ ulong * * * * * * * * * * * * * * DtoSymbolAddress ('h' of type 'ulong') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * AddExp::toElem: h + typeid(const(ulong)).getHash(cast(const(void*))&p.capacity) @ ulong * * * * * * * * * * * * * VarExp::toElem: h @ ulong * * * * * * * * * * * * * CallExp::toElem: typeid(const(ulong)).getHash(cast(const(void*))&p.capacity) @ ulong * * * * * * * * * * * * * * DotVarExp::toElem: typeid(const(ulong)).getHash @ const nothrow @trusted ulong(const(void*) p) * * * * * * * * * * * * * * * SymOffExp::toElem: typeid(const(ulong)) @ object.TypeInfo * * * * * * * * * * * * * * * * DtoSymbolAddress ('typeid(const(ulong))' of type 'object.TypeInfo_Const') * * * * * * * * * * * * * * * * * TypeInfoDeclaration * * * * * * * * * * * * * * * * Casting from 'TypeInfo_Const*' to 'object.TypeInfo' * * * * * * * * * * * * * * * * * src: %object.TypeInfo_Const* bitcast (%"typeid(const(ulong))"* @_D11TypeInfo_xm6__initZ to %object.TypeInfo_Const*) * * * * * * * * * * * * * * * * * to type: %object.TypeInfo* * * * * * * * * * * * * * * * vthis: %object.TypeInfo* bitcast (%"typeid(const(ulong))"* @_D11TypeInfo_xm6__initZ to %object.TypeInfo*) * * * * * * * * * * * * * * * funcval: %3 = load i64 (%object.TypeInfo*, i8*)*, i64 (%object.TypeInfo*, i8*)** %"typeid(const(ulong)).getHash@vtbl", align 8 * * * * * * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * * * * * * DtoFunctionType(const nothrow @trusted ulong(const(void*) p)) * * * * * * * * * * * * * * * funcval casted: %"typeid(const(ulong)).getHash" = load i64 (%object.TypeInfo*, i8*)*, i64 (%object.TypeInfo*, i8*)** %"typeid(const(ulong)).getHash@vtbl", align 8 * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * %object.TypeInfo* bitcast (%"typeid(const(ulong))"* @_D11TypeInfo_xm6__initZ to %object.TypeInfo*) * * * * * * * * * * * * * * * Function type: const nothrow @trusted ulong(const(void*) p) * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * CastExp::toElem: cast(const(void*))&p.capacity @ const(void*) * * * * * * * * * * * * * * * * * AddrExp::toElem: &p.capacity @ const(ulong)* * * * * * * * * * * * * * * * * * * DotVarExp::toElem: p.capacity @ const(ulong) * * * * * * * * * * * * * * * * * * * VarExp::toElem: p @ const(Data) * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('p' of type 'const(Data)') * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * type: const(Data) * * * * * * * * * * * * * * * * * * * Indexing aggregate field std.array.Appender!(string[]).Appender.Data.capacity: * * * * * * * * * * * * * * * * * * * * Value: %3 = getelementptr %"std.array.Appender!(string[]).Appender.Data", %"std.array.Appender!(string[]).Appender.Data"* %p_arg, i32 0, i32 0 * * * * * * * * * * * * * * * * * * is nothing special * * * * * * * * * * * * * * * * * * lval: %3 = getelementptr %"std.array.Appender!(string[]).Appender.Data", %"std.array.Appender!(string[]).Appender.Data"* %p_arg, i32 0, i32 0 * * * * * * * * * * * * * * * * * Casting from 'const(ulong)*' to 'const(void*)' * * * * * * * * * * * * * * * * * * src: %3 = getelementptr %"std.array.Appender!(string[]).Appender.Data", %"std.array.Appender!(string[]).Appender.Data"* %p_arg, i32 0, i32 0 * * * * * * * * * * * * * * * * * * to type: i8* * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * lhs: %h = alloca i64, align 8 * * * * * * * * * * * * * rhs: %7 = add i64 %6, %5 * * * * * * * * ScopeStatement::toIR(): * * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * * ExpStatement::toIR(): * * * * * * * * * * * DeclarationExp::toElem: enum ulong i = 1LU; | T=void * * * * * * * * * * * * DtoDeclarationExp: i * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * Manifest constant, nothing to do. * * * * * * * * * * ExpStatement::toIR(): * * * * * * * * * * * DeclarationExp::toElem: alias T = const(string[]); | T=void * * * * * * * * * * * * DtoDeclarationExp: T * * * * * * * * * * * * * Ignoring Symbol: alias * * * * * * * * * * ExpStatement::toIR(): * * * * * * * * * * * AddAssignExp::toElem: h += typeid(const(string[])).getHash(cast(const(void*))&p.arr) @ ulong * * * * * * * * * * * * Caching l-value of h += typeid(const(string[])).getHash(cast(const(void*))&p.arr) => h * * * * * * * * * * * * * VarExp::toElem: h @ ulong * * * * * * * * * * * * * * DtoSymbolAddress ('h' of type 'ulong') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * AddExp::toElem: h + typeid(const(string[])).getHash(cast(const(void*))&p.arr) @ ulong * * * * * * * * * * * * * VarExp::toElem: h @ ulong * * * * * * * * * * * * * CallExp::toElem: typeid(const(string[])).getHash(cast(const(void*))&p.arr) @ ulong * * * * * * * * * * * * * * DotVarExp::toElem: typeid(const(string[])).getHash @ const nothrow @trusted ulong(const(void*) p) * * * * * * * * * * * * * * * SymOffExp::toElem: typeid(const(string[])) @ object.TypeInfo * * * * * * * * * * * * * * * * DtoSymbolAddress ('typeid(const(string[]))' of type 'object.TypeInfo_Const') * * * * * * * * * * * * * * * * * TypeInfoDeclaration * * * * * * * * * * * * * * * * Casting from 'TypeInfo_Const*' to 'object.TypeInfo' * * * * * * * * * * * * * * * * * src: %object.TypeInfo_Const* bitcast (%"typeid(const(string[]))"* @_D14TypeInfo_xAAya6__initZ to %object.TypeInfo_Const*) * * * * * * * * * * * * * * * * * to type: %object.TypeInfo* * * * * * * * * * * * * * * * vthis: %object.TypeInfo* bitcast (%"typeid(const(string[]))"* @_D14TypeInfo_xAAya6__initZ to %object.TypeInfo*) * * * * * * * * * * * * * * * funcval: %10 = load i64 (%object.TypeInfo*, i8*)*, i64 (%object.TypeInfo*, i8*)** %"typeid(const(string[])).getHash@vtbl", align 8 * * * * * * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * * * * * * DtoFunctionType(const nothrow @trusted ulong(const(void*) p)) * * * * * * * * * * * * * * * funcval casted: %"typeid(const(string[])).getHash" = load i64 (%object.TypeInfo*, i8*)*, i64 (%object.TypeInfo*, i8*)** %"typeid(const(string[])).getHash@vtbl", align 8 * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * %object.TypeInfo* bitcast (%"typeid(const(string[]))"* @_D14TypeInfo_xAAya6__initZ to %object.TypeInfo*) * * * * * * * * * * * * * * * Function type: const nothrow @trusted ulong(const(void*) p) * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * CastExp::toElem: cast(const(void*))&p.arr @ const(void*) * * * * * * * * * * * * * * * * * AddrExp::toElem: &p.arr @ const(string[])* * * * * * * * * * * * * * * * * * * DotVarExp::toElem: p.arr @ const(string[]) * * * * * * * * * * * * * * * * * * * VarExp::toElem: p @ const(Data) * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('p' of type 'const(Data)') * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * type: const(Data) * * * * * * * * * * * * * * * * * * * Indexing aggregate field std.array.Appender!(string[]).Appender.Data.arr: * * * * * * * * * * * * * * * * * * * * Value: %10 = getelementptr %"std.array.Appender!(string[]).Appender.Data", %"std.array.Appender!(string[]).Appender.Data"* %p_arg, i32 0, i32 1 * * * * * * * * * * * * * * * * * * is nothing special * * * * * * * * * * * * * * * * * * lval: %10 = getelementptr %"std.array.Appender!(string[]).Appender.Data", %"std.array.Appender!(string[]).Appender.Data"* %p_arg, i32 0, i32 1 * * * * * * * * * * * * * * * * * Casting from 'const(string[])*' to 'const(void*)' * * * * * * * * * * * * * * * * * * src: %10 = getelementptr %"std.array.Appender!(string[]).Appender.Data", %"std.array.Appender!(string[]).Appender.Data"* %p_arg, i32 0, i32 1 * * * * * * * * * * * * * * * * * * to type: i8* * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * lhs: %h = alloca i64, align 8 * * * * * * * * * * * * * rhs: %14 = add i64 %13, %12 * * * * * * * * ScopeStatement::toIR(): * * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * * ExpStatement::toIR(): * * * * * * * * * * * DeclarationExp::toElem: enum ulong i = 2LU; | T=void * * * * * * * * * * * * DtoDeclarationExp: i * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * Manifest constant, nothing to do. * * * * * * * * * * ExpStatement::toIR(): * * * * * * * * * * * DeclarationExp::toElem: alias T = const(bool); | T=void * * * * * * * * * * * * DtoDeclarationExp: T * * * * * * * * * * * * * Ignoring Symbol: alias * * * * * * * * * * ExpStatement::toIR(): * * * * * * * * * * * AddAssignExp::toElem: h += typeid(const(bool)).getHash(cast(const(void*))&p.canExtend) @ ulong * * * * * * * * * * * * Caching l-value of h += typeid(const(bool)).getHash(cast(const(void*))&p.canExtend) => h * * * * * * * * * * * * * VarExp::toElem: h @ ulong * * * * * * * * * * * * * * DtoSymbolAddress ('h' of type 'ulong') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * AddExp::toElem: h + typeid(const(bool)).getHash(cast(const(void*))&p.canExtend) @ ulong * * * * * * * * * * * * * VarExp::toElem: h @ ulong * * * * * * * * * * * * * CallExp::toElem: typeid(const(bool)).getHash(cast(const(void*))&p.canExtend) @ ulong * * * * * * * * * * * * * * DotVarExp::toElem: typeid(const(bool)).getHash @ const nothrow @trusted ulong(const(void*) p) * * * * * * * * * * * * * * * SymOffExp::toElem: typeid(const(bool)) @ object.TypeInfo * * * * * * * * * * * * * * * * DtoSymbolAddress ('typeid(const(bool))' of type 'object.TypeInfo_Const') * * * * * * * * * * * * * * * * * TypeInfoDeclaration * * * * * * * * * * * * * * * * Casting from 'TypeInfo_Const*' to 'object.TypeInfo' * * * * * * * * * * * * * * * * * src: %object.TypeInfo_Const* bitcast (%"typeid(const(bool))"* @_D11TypeInfo_xb6__initZ to %object.TypeInfo_Const*) * * * * * * * * * * * * * * * * * to type: %object.TypeInfo* * * * * * * * * * * * * * * * vthis: %object.TypeInfo* bitcast (%"typeid(const(bool))"* @_D11TypeInfo_xb6__initZ to %object.TypeInfo*) * * * * * * * * * * * * * * * funcval: %17 = load i64 (%object.TypeInfo*, i8*)*, i64 (%object.TypeInfo*, i8*)** %"typeid(const(bool)).getHash@vtbl", align 8 * * * * * * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * * * * * * DtoFunctionType(const nothrow @trusted ulong(const(void*) p)) * * * * * * * * * * * * * * * funcval casted: %"typeid(const(bool)).getHash" = load i64 (%object.TypeInfo*, i8*)*, i64 (%object.TypeInfo*, i8*)** %"typeid(const(bool)).getHash@vtbl", align 8 * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * %object.TypeInfo* bitcast (%"typeid(const(bool))"* @_D11TypeInfo_xb6__initZ to %object.TypeInfo*) * * * * * * * * * * * * * * * Function type: const nothrow @trusted ulong(const(void*) p) * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * CastExp::toElem: cast(const(void*))&p.canExtend @ const(void*) * * * * * * * * * * * * * * * * * AddrExp::toElem: &p.canExtend @ const(bool)* * * * * * * * * * * * * * * * * * * DotVarExp::toElem: p.canExtend @ const(bool) * * * * * * * * * * * * * * * * * * * VarExp::toElem: p @ const(Data) * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('p' of type 'const(Data)') * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * type: const(Data) * * * * * * * * * * * * * * * * * * * Indexing aggregate field std.array.Appender!(string[]).Appender.Data.canExtend: * * * * * * * * * * * * * * * * * * * * Value: %17 = getelementptr %"std.array.Appender!(string[]).Appender.Data", %"std.array.Appender!(string[]).Appender.Data"* %p_arg, i32 0, i32 2 * * * * * * * * * * * * * * * * * * is nothing special * * * * * * * * * * * * * * * * * * lval: %17 = getelementptr %"std.array.Appender!(string[]).Appender.Data", %"std.array.Appender!(string[]).Appender.Data"* %p_arg, i32 0, i32 2 * * * * * * * * * * * * * * * * * Casting from 'const(bool)*' to 'const(void*)' * * * * * * * * * * * * * * * * * * src: %17 = getelementptr %"std.array.Appender!(string[]).Appender.Data", %"std.array.Appender!(string[]).Appender.Data"* %p_arg, i32 0, i32 2 * * * * * * * * * * * * * * * * * * to type: i8* * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * lhs: %h = alloca i64, align 8 * * * * * * * * * * * * * rhs: %20 = add i64 %19, %18 * * * * * * * ReturnStatement::toIR(): * * * * * * * * VarExp::toElem: h @ ulong * * * * * * * * * DtoSymbolAddress ('h' of type 'ulong') * * * * * * * * * * a normal variable * * * * * * * * return value is '0x12a45908' * * * VarDeclaration::codegen(): 'std.array.Appender!(string[]).Appender._data' * * * * DtoResolveVariable(std.array.Appender!(string[]).Appender._data) * * * DtoDefineFunction(std.array.Appender!(string[]).Appender.this): /usr/include/dlang/ldc/std/array.d(2612) * * * * Doing function body for: this * * * * DtoCreateNestedContext for this * * * * * DtoCreateNestedContextType for std.array.Appender!(string[]).Appender.this * * * * CompoundStatement::toIR(): * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2612) * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2613) * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2615) * * * * * * * * AssignExp::toElem: this._data = new Data | (Data*)(Data* = Data*) * * * * * * * * * DotVarExp::toElem: this._data @ Data* * * * * * * * * * * ThisExp::toElem: this @ Appender!(string[]) * * * * * * * * * * * normal this exp * * * * * * * * * * Indexing aggregate field std.array.Appender!(string[]).Appender._data: * * * * * * * * * * * Value: %1 = getelementptr %"std.array.Appender!(string[]).Appender", %"std.array.Appender!(string[]).Appender"* %.this_arg, i32 0, i32 0 * * * * * * * * * NewExp::toElem: new Data @ Data* * * * * * * * * * * new struct on heap: Data * * * * * * * * * * DtoTypeInfoOf(type = 'Data', base='1') * * * * * * * * * * * Type::getTypeInfo(): Data * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(Data)) * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * DtoAssign() * * * * * * * * * * lhs: %1 = getelementptr %"std.array.Appender!(string[]).Appender", %"std.array.Appender!(string[]).Appender"* %.this_arg, i32 0, i32 0 * * * * * * * * * * rhs: %.gc_struct1 = bitcast i8* %.gc_struct to %"std.array.Appender!(string[]).Appender.Data"* * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2616) * * * * * * * * AssignExp::toElem: (*this._data).arr = arr | (string[])(string[] = string[]) * * * * * * * * * DotVarExp::toElem: (*this._data).arr @ string[] * * * * * * * * * * PtrExp::toElem: *this._data @ Data * * * * * * * * * * * DotVarExp::toElem: this._data @ Data* * * * * * * * * * * * * ThisExp::toElem: this @ Appender!(string[]) * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * Indexing aggregate field std.array.Appender!(string[]).Appender._data: * * * * * * * * * * * * * Value: %2 = getelementptr %"std.array.Appender!(string[]).Appender", %"std.array.Appender!(string[]).Appender"* %.this_arg, i32 0, i32 0 * * * * * * * * * * Indexing aggregate field std.array.Appender!(string[]).Appender.Data.arr: * * * * * * * * * * * Value: %4 = getelementptr %"std.array.Appender!(string[]).Appender.Data", %"std.array.Appender!(string[]).Appender.Data"* %3, i32 0, i32 1 * * * * * * * * * VarExp::toElem: arr @ string[] * * * * * * * * * * DtoSymbolAddress ('arr' of type 'string[]') * * * * * * * * * * * function param * * * * * * * * * * * type: string[] * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * DtoAssign() * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * SetArray * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2618) * * * * * * * * VarExp::toElem: __ctfe @ bool * * * * * * * * * DtoSymbolAddress ('__ctfe' of type 'bool') * * * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2619) * * * * * * * * * AddrExp::toElem: &this @ Appender!(string[])* * * * * * * * * * * ThisExp::toElem: this @ Appender!(string[]) * * * * * * * * * * * this exp without var declaration * * * * * * * * * * is nothing special * * * * * * * * * * lval: %"std.array.Appender!(string[]).Appender"* %.this_arg * * * * * * * * * return value is '0x12a3d4b0' * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2627) * * * * * * * * DeclarationExp::toElem: ulong cap = capacity(arr); | T=void * * * * * * * * * DtoDeclarationExp: cap * * * * * * * * * * VarDeclaration * * * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * * * llvm value for decl: %cap = alloca i64, align 8 * * * * * * * * * * * expression initializer * * * * * * * * * * * AssignExp::toElem: cap = capacity(arr) | (ulong)(ulong = ulong) * * * * * * * * * * * * VarExp::toElem: cap @ ulong * * * * * * * * * * * * * DtoSymbolAddress ('cap' of type 'ulong') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * CallExp::toElem: capacity(arr) @ ulong * * * * * * * * * * * * * VarExp::toElem: capacity @ pure nothrow @property @system ulong(string[] arr) * * * * * * * * * * * * * * DtoSymbolAddress ('capacity' of type 'pure nothrow @property @system ulong(string[] arr)') * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @property @system ulong(string[] arr)) * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * Final function type: i64 ({ i64, { i64, i8* }* }) * * * * * * * * * * * * * * * DtoResolveFunction(object.capacity!string.capacity): /usr/include/dlang/ldc/object.di(667) * * * * * * * * * * * * * * * * DtoDeclareFunction(object.capacity!string.capacity): /usr/include/dlang/ldc/object.di(667) * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @property @system ulong(string[] arr)) * * * * * * * * * * * * * * * * * func = declare i64 @_D6object17__T8capacityTAyaZ8capacityFNaNbNdAAyaZm({ i64, { i64, i8* }* }) * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * Building type: pure nothrow @property @system ulong(string[] arr) * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @property @system ulong(string[] arr)) * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * Final function type: i64 ({ i64, { i64, i8* }* }) * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * Function type: pure nothrow @property @system ulong(string[] arr) * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * VarExp::toElem: arr @ string[] * * * * * * * * * * * * * * * * DtoSymbolAddress ('arr' of type 'string[]') * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * type: string[] * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * lhs: %cap = alloca i64, align 8 * * * * * * * * * * * * * rhs: %10 = call i64 @_D6object17__T8capacityTAyaZ8capacityFNaNbNdAAyaZm({ i64, { i64, i8* }* } %9) * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2629) * * * * * * * * CmpExp::toElem: cap > arr.length @ bool * * * * * * * * * VarExp::toElem: cap @ ulong * * * * * * * * * * DtoSymbolAddress ('cap' of type 'ulong') * * * * * * * * * * * a normal variable * * * * * * * * * ArrayLengthExp::toElem: arr.length @ ulong * * * * * * * * * * VarExp::toElem: arr @ string[] * * * * * * * * * * * DtoSymbolAddress ('arr' of type 'string[]') * * * * * * * * * * * * function param * * * * * * * * * * * * type: string[] * * * * * * * * * * DtoArrayLen * * * * * * * * * type 1: %12 = load i64, i64* %cap * * * * * * * * * type 2: %.len2 = load i64, i64* %11 * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2630) * * * * * * * * * AssignExp::toElem: arr.length = cap | (ulong)(ulong = ulong) * * * * * * * * * * performing array.length assignment * * * * * * * * * * VarExp::toElem: arr @ string[] * * * * * * * * * * * DtoSymbolAddress ('arr' of type 'string[]') * * * * * * * * * * * * function param * * * * * * * * * * * * type: string[] * * * * * * * * * * VarExp::toElem: cap @ ulong * * * * * * * * * * * DtoSymbolAddress ('cap' of type 'ulong') * * * * * * * * * * * * a normal variable * * * * * * * * * * DtoResizeDynArray : string[] * * * * * * * * * * * DtoTypeInfoOf(type = 'string[]', base='1') * * * * * * * * * * * * Type::getTypeInfo(): string[] * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(string[])) * * * * * * * * * * DtoAssign() * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * SetArray * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2632) * * * * * * * * AssignExp::toElem: (*this._data).capacity = arr.length | (ulong)(ulong = ulong) * * * * * * * * * DotVarExp::toElem: (*this._data).capacity @ ulong * * * * * * * * * * PtrExp::toElem: *this._data @ Data * * * * * * * * * * * DotVarExp::toElem: this._data @ Data* * * * * * * * * * * * * ThisExp::toElem: this @ Appender!(string[]) * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * Indexing aggregate field std.array.Appender!(string[]).Appender._data: * * * * * * * * * * * * * Value: %18 = getelementptr %"std.array.Appender!(string[]).Appender", %"std.array.Appender!(string[]).Appender"* %.this_arg, i32 0, i32 0 * * * * * * * * * * Indexing aggregate field std.array.Appender!(string[]).Appender.Data.capacity: * * * * * * * * * * * Value: %20 = getelementptr %"std.array.Appender!(string[]).Appender.Data", %"std.array.Appender!(string[]).Appender.Data"* %19, i32 0, i32 0 * * * * * * * * * ArrayLengthExp::toElem: arr.length @ ulong * * * * * * * * * * VarExp::toElem: arr @ string[] * * * * * * * * * * * DtoSymbolAddress ('arr' of type 'string[]') * * * * * * * * * * * * function param * * * * * * * * * * * * type: string[] * * * * * * * * * * DtoArrayLen * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * DtoAssign() * * * * * * * * * * lhs: %20 = getelementptr %"std.array.Appender!(string[]).Appender.Data", %"std.array.Appender!(string[]).Appender.Data"* %19, i32 0, i32 0 * * * * * * * * * * rhs: %.len8 = load i64, i64* %21 * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2612) * * * * * * * AddrExp::toElem: &this @ Appender!(string[])* * * * * * * * * ThisExp::toElem: this @ Appender!(string[]) * * * * * * * * * this exp without var declaration * * * * * * * * is nothing special * * * * * * * * lval: %"std.array.Appender!(string[]).Appender"* %.this_arg * * * * * * * return value is '0x12a3d4b0' * * * DtoDefineFunction(std.array.Appender!(string[]).Appender.reserve): /usr/include/dlang/ldc/std/array.d(2656) * * * * isMember = this is: Appender!(string[]) * * * * DtoFunctionType(pure nothrow @safe void(ulong newCapacity)) * * * * * x86-64 ABI: Transforming argument types * * * * * Final function type: void (%"std.array.Appender!(string[]).Appender"*, i64) * * * * DtoResolveFunction(std.array.Appender!(string[]).Appender.reserve): /usr/include/dlang/ldc/std/array.d(2656) * * * * * DtoDeclareFunction(std.array.Appender!(string[]).Appender.reserve): /usr/include/dlang/ldc/std/array.d(2656) * * * * * * isMember = this is: Appender!(string[]) * * * * * * DtoFunctionType(pure nothrow @safe void(ulong newCapacity)) * * * * * * func = declare void @_D3std5array18__T8AppenderTAAyaZ8Appender7reserveMFNaNbNfmZv(%"std.array.Appender!(string[]).Appender"*, i64) * * * * Doing function body for: reserve * * * * DtoCreateNestedContext for reserve * * * * * DtoCreateNestedContextType for std.array.Appender!(string[]).Appender.reserve * * * * CompoundStatement::toIR(): * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2658) * * * * * * DotVarExp::toElem: this._data @ Data* * * * * * * * ThisExp::toElem: this @ Appender!(string[]) * * * * * * * * normal this exp * * * * * * * Indexing aggregate field std.array.Appender!(string[]).Appender._data: * * * * * * * * Value: %1 = getelementptr %"std.array.Appender!(string[]).Appender", %"std.array.Appender!(string[]).Appender"* %.this_arg, i32 0, i32 0 * * * * * * if conditional: %2 = load %"std.array.Appender!(string[]).Appender.Data"*, %"std.array.Appender!(string[]).Appender.Data"** %1 * * * * * * Casting from 'Data*' to 'bool' * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2659) * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2660) * * * * * * * * CmpExp::toElem: newCapacity > (*this._data).capacity @ bool * * * * * * * * * VarExp::toElem: newCapacity @ ulong * * * * * * * * * * DtoSymbolAddress ('newCapacity' of type 'ulong') * * * * * * * * * * * function param * * * * * * * * * * * type: ulong * * * * * * * * * DotVarExp::toElem: (*this._data).capacity @ ulong * * * * * * * * * * PtrExp::toElem: *this._data @ Data * * * * * * * * * * * DotVarExp::toElem: this._data @ Data* * * * * * * * * * * * * ThisExp::toElem: this @ Appender!(string[]) * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * Indexing aggregate field std.array.Appender!(string[]).Appender._data: * * * * * * * * * * * * * Value: %5 = getelementptr %"std.array.Appender!(string[]).Appender", %"std.array.Appender!(string[]).Appender"* %.this_arg, i32 0, i32 0 * * * * * * * * * * Indexing aggregate field std.array.Appender!(string[]).Appender.Data.capacity: * * * * * * * * * * * Value: %7 = getelementptr %"std.array.Appender!(string[]).Appender.Data", %"std.array.Appender!(string[]).Appender.Data"* %6, i32 0, i32 0 * * * * * * * * * type 1: %8 = load i64, i64* %newCapacity * * * * * * * * * type 2: %9 = load i64, i64* %7 * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2661) * * * * * * * * * CallExp::toElem: this.ensureAddable(newCapacity - (*this._data).arr.length) @ void * * * * * * * * * * DotVarExp::toElem: this.ensureAddable @ pure nothrow @trusted void(ulong nelems) * * * * * * * * * * * ThisExp::toElem: this @ Appender!(string[]) * * * * * * * * * * * * normal this exp * * * * * * * * * * * isMember = this is: Appender!(string[]) * * * * * * * * * * * DtoFunctionType(pure nothrow @trusted void(ulong nelems)) * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * Final function type: void (%"std.array.Appender!(string[]).Appender"*, i64) * * * * * * * * * * * DtoResolveFunction(std.array.Appender!(string[]).Appender.ensureAddable): /usr/include/dlang/ldc/std/array.d(2691) * * * * * * * * * * * * DtoDeclareFunction(std.array.Appender!(string[]).Appender.ensureAddable): /usr/include/dlang/ldc/std/array.d(2691) * * * * * * * * * * * * * isMember = this is: Appender!(string[]) * * * * * * * * * * * * * DtoFunctionType(pure nothrow @trusted void(ulong nelems)) * * * * * * * * * * * * * func = declare void @_D3std5array18__T8AppenderTAAyaZ8Appender13ensureAddableMFNaNbNemZv(%"std.array.Appender!(string[]).Appender"*, i64) * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * Building type: pure nothrow @trusted void(ulong nelems) * * * * * * * * * * * * DtoFunctionType(pure nothrow @trusted void(ulong nelems)) * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * Final function type: void (i64) * * * * * * * * * * * doing normal arguments * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * %"std.array.Appender!(string[]).Appender"* %.this_arg * * * * * * * * * * * Function type: pure nothrow @trusted void(ulong nelems) * * * * * * * * * * * DtoArgument * * * * * * * * * * * * MinExp::toElem: newCapacity - (*this._data).arr.length @ ulong * * * * * * * * * * * * * VarExp::toElem: newCapacity @ ulong * * * * * * * * * * * * * * DtoSymbolAddress ('newCapacity' of type 'ulong') * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * type: ulong * * * * * * * * * * * * * ArrayLengthExp::toElem: (*this._data).arr.length @ ulong * * * * * * * * * * * * * * DotVarExp::toElem: (*this._data).arr @ string[] * * * * * * * * * * * * * * * PtrExp::toElem: *this._data @ Data * * * * * * * * * * * * * * * * DotVarExp::toElem: this._data @ Data* * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Appender!(string[]) * * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * * Indexing aggregate field std.array.Appender!(string[]).Appender._data: * * * * * * * * * * * * * * * * * * Value: %11 = getelementptr %"std.array.Appender!(string[]).Appender", %"std.array.Appender!(string[]).Appender"* %.this_arg, i32 0, i32 0 * * * * * * * * * * * * * * * Indexing aggregate field std.array.Appender!(string[]).Appender.Data.arr: * * * * * * * * * * * * * * * * Value: %13 = getelementptr %"std.array.Appender!(string[]).Appender.Data", %"std.array.Appender!(string[]).Appender.Data"* %12, i32 0, i32 1 * * * * * * * * * * * * * * DtoArrayLen * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2664) * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2665) * * * * * * * * CallExp::toElem: this.ensureAddable(newCapacity) @ void * * * * * * * * * DotVarExp::toElem: this.ensureAddable @ pure nothrow @trusted void(ulong nelems) * * * * * * * * * * ThisExp::toElem: this @ Appender!(string[]) * * * * * * * * * * * normal this exp * * * * * * * * * DtoCallFunction() * * * * * * * * * * doing normal arguments * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * %"std.array.Appender!(string[]).Appender"* %.this_arg * * * * * * * * * * Function type: pure nothrow @trusted void(ulong nelems) * * * * * * * * * * DtoArgument * * * * * * * * * * * VarExp::toElem: newCapacity @ ulong * * * * * * * * * * * * DtoSymbolAddress ('newCapacity' of type 'ulong') * * * * * * * * * * * * * function param * * * * * * * * * * * * * type: ulong * * * DtoDefineFunction(std.array.Appender!(string[]).Appender.capacity): /usr/include/dlang/ldc/std/array.d(2674) * * * * isMember = this is: Appender!(string[]) * * * * DtoFunctionType(const pure nothrow @nogc @property @safe ulong()) * * * * * x86-64 ABI: Transforming return type * * * * * x86-64 ABI: Transforming argument types * * * * * Final function type: i64 (%"std.array.Appender!(string[]).Appender"*) * * * * DtoResolveFunction(std.array.Appender!(string[]).Appender.capacity): /usr/include/dlang/ldc/std/array.d(2674) * * * * * DtoDeclareFunction(std.array.Appender!(string[]).Appender.capacity): /usr/include/dlang/ldc/std/array.d(2674) * * * * * * isMember = this is: Appender!(string[]) * * * * * * DtoFunctionType(const pure nothrow @nogc @property @safe ulong()) * * * * * * func = declare i64 @_D3std5array18__T8AppenderTAAyaZ8Appender8capacityMxFNaNbNdNiNfZm(%"std.array.Appender!(string[]).Appender"*) * * * * Doing function body for: capacity * * * * DtoCreateNestedContext for capacity * * * * * DtoCreateNestedContextType for std.array.Appender!(string[]).Appender.capacity * * * * CompoundStatement::toIR(): * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2676) * * * * * * CondExp::toElem: this._data ? (*this._data).capacity : 0LU @ ulong * * * * * * * DotVarExp::toElem: this._data @ const(Data*) * * * * * * * * ThisExp::toElem: this @ const(Appender!(string[])) * * * * * * * * * normal this exp * * * * * * * * Indexing aggregate field std.array.Appender!(string[]).Appender._data: * * * * * * * * * Value: %1 = getelementptr %"std.array.Appender!(string[]).Appender", %"std.array.Appender!(string[]).Appender"* %.this_arg, i32 0, i32 0 * * * * * * * Casting from 'const(Data*)' to 'bool' * * * * * * * DotVarExp::toElem: (*this._data).capacity @ ulong * * * * * * * * PtrExp::toElem: *this._data @ const(Data) * * * * * * * * * DotVarExp::toElem: this._data @ const(Data*) * * * * * * * * * * ThisExp::toElem: this @ const(Appender!(string[])) * * * * * * * * * * * normal this exp * * * * * * * * * * Indexing aggregate field std.array.Appender!(string[]).Appender._data: * * * * * * * * * * * Value: %4 = getelementptr %"std.array.Appender!(string[]).Appender", %"std.array.Appender!(string[]).Appender"* %.this_arg, i32 0, i32 0 * * * * * * * * Indexing aggregate field std.array.Appender!(string[]).Appender.Data.capacity: * * * * * * * * * Value: %6 = getelementptr %"std.array.Appender!(string[]).Appender.Data", %"std.array.Appender!(string[]).Appender.Data"* %5, i32 0, i32 0 * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * value = i64 0 * * * * * * return value is '0x12a51418' * * * DtoDefineFunction(std.array.Appender!(string[]).Appender.data): /usr/include/dlang/ldc/std/array.d(2682) * * * * isMember = this is: Appender!(string[]) * * * * DtoFunctionType(inout pure nothrow @nogc @property @trusted inout(string)[]()) * * * * * Building type: inout(string)[] * * * * * x86-64 ABI: Transforming return type * * * * * x86-64 ABI: Transforming argument types * * * * * Final function type: { i64, { i64, i8* }* } (%"std.array.Appender!(string[]).Appender"*) * * * * DtoResolveFunction(std.array.Appender!(string[]).Appender.data): /usr/include/dlang/ldc/std/array.d(2682) * * * * * DtoDeclareFunction(std.array.Appender!(string[]).Appender.data): /usr/include/dlang/ldc/std/array.d(2682) * * * * * * isMember = this is: Appender!(string[]) * * * * * * DtoFunctionType(inout pure nothrow @nogc @property @trusted inout(string)[]()) * * * * * * func = declare { i64, { i64, i8* }* } @_D3std5array18__T8AppenderTAAyaZ8Appender4dataMNgFNaNbNdNiNeZANgAya(%"std.array.Appender!(string[]).Appender"*) * * * * Doing function body for: data * * * * DtoCreateNestedContext for data * * * * * DtoCreateNestedContextType for std.array.Appender!(string[]).Appender.data * * * * CompoundStatement::toIR(): * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2687) * * * * * * CondExp::toElem: this._data ? (*this._data).arr : null @ inout(string)[] * * * * * * * Building type: inout(string)[]* * * * * * * * DotVarExp::toElem: this._data @ inout(Data*) * * * * * * * * ThisExp::toElem: this @ inout(Appender!(string[])) * * * * * * * * * normal this exp * * * * * * * * Indexing aggregate field std.array.Appender!(string[]).Appender._data: * * * * * * * * * Value: %1 = getelementptr %"std.array.Appender!(string[]).Appender", %"std.array.Appender!(string[]).Appender"* %.this_arg, i32 0, i32 0 * * * * * * * Casting from 'inout(Data*)' to 'bool' * * * * * * * DotVarExp::toElem: (*this._data).arr @ inout(string)[] * * * * * * * * PtrExp::toElem: *this._data @ inout(Data) * * * * * * * * * DotVarExp::toElem: this._data @ inout(Data*) * * * * * * * * * * ThisExp::toElem: this @ inout(Appender!(string[])) * * * * * * * * * * * normal this exp * * * * * * * * * * Indexing aggregate field std.array.Appender!(string[]).Appender._data: * * * * * * * * * * * Value: %4 = getelementptr %"std.array.Appender!(string[]).Appender", %"std.array.Appender!(string[]).Appender"* %.this_arg, i32 0, i32 0 * * * * * * * * Indexing aggregate field std.array.Appender!(string[]).Appender.Data.arr: * * * * * * * * * Value: %6 = getelementptr %"std.array.Appender!(string[]).Appender.Data", %"std.array.Appender!(string[]).Appender.Data"* %5, i32 0, i32 1 * * * * * * * NullExp::toElem(type=inout(string)[]): null * * * * * * * * NullExp::toConstElem(type=inout(string)[]): null * * * * * * return value is '0x12a55be8' * * * DtoDefineFunction(std.array.Appender!(string[]).Appender.ensureAddable): /usr/include/dlang/ldc/std/array.d(2691) * * * * Doing function body for: ensureAddable * * * * DtoCreateNestedContext for ensureAddable * * * * * DtoCreateNestedContextType for std.array.Appender!(string[]).Appender.ensureAddable * * * * CompoundStatement::toIR(): * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2692) * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2693) * * * * * * * NotExp::toElem: !this._data @ bool * * * * * * * * DotVarExp::toElem: this._data @ Data* * * * * * * * * * ThisExp::toElem: this @ Appender!(string[]) * * * * * * * * * * normal this exp * * * * * * * * * Indexing aggregate field std.array.Appender!(string[]).Appender._data: * * * * * * * * * * Value: %1 = getelementptr %"std.array.Appender!(string[]).Appender", %"std.array.Appender!(string[]).Appender"* %.this_arg, i32 0, i32 0 * * * * * * * * Casting from 'Data*' to 'bool' * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2694) * * * * * * * * AssignExp::toElem: this._data = new Data | (Data*)(Data* = Data*) * * * * * * * * * DotVarExp::toElem: this._data @ Data* * * * * * * * * * * ThisExp::toElem: this @ Appender!(string[]) * * * * * * * * * * * normal this exp * * * * * * * * * * Indexing aggregate field std.array.Appender!(string[]).Appender._data: * * * * * * * * * * * Value: %5 = getelementptr %"std.array.Appender!(string[]).Appender", %"std.array.Appender!(string[]).Appender"* %.this_arg, i32 0, i32 0 * * * * * * * * * NewExp::toElem: new Data @ Data* * * * * * * * * * * new struct on heap: Data * * * * * * * * * * DtoTypeInfoOf(type = 'Data', base='1') * * * * * * * * * * * Type::getTypeInfo(): Data * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(Data)) * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * DtoAssign() * * * * * * * * * * lhs: %5 = getelementptr %"std.array.Appender!(string[]).Appender", %"std.array.Appender!(string[]).Appender"* %.this_arg, i32 0, i32 0 * * * * * * * * * * rhs: %.gc_struct1 = bitcast i8* %.gc_struct to %"std.array.Appender!(string[]).Appender.Data"* * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2695) * * * * * * * DeclarationExp::toElem: immutable immutable(ulong) len = (*this._data).arr.length; | T=void * * * * * * * * DtoDeclarationExp: len * * * * * * * * * VarDeclaration * * * * * * * * * DtoVarDeclaration(vdtype = immutable(ulong)) * * * * * * * * * * llvm value for decl: %len = alloca i64, align 8 * * * * * * * * * * expression initializer * * * * * * * * * * AssignExp::toElem: len = (*this._data).arr.length | (immutable(ulong))(immutable(ulong) = immutable(ulong)) * * * * * * * * * * * VarExp::toElem: len @ immutable(ulong) * * * * * * * * * * * * DtoSymbolAddress ('len' of type 'immutable(ulong)') * * * * * * * * * * * * * a normal variable * * * * * * * * * * * ArrayLengthExp::toElem: (*this._data).arr.length @ immutable(ulong) * * * * * * * * * * * * DotVarExp::toElem: (*this._data).arr @ string[] * * * * * * * * * * * * * PtrExp::toElem: *this._data @ Data * * * * * * * * * * * * * * DotVarExp::toElem: this._data @ Data* * * * * * * * * * * * * * * * ThisExp::toElem: this @ Appender!(string[]) * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * Indexing aggregate field std.array.Appender!(string[]).Appender._data: * * * * * * * * * * * * * * * * Value: %6 = getelementptr %"std.array.Appender!(string[]).Appender", %"std.array.Appender!(string[]).Appender"* %.this_arg, i32 0, i32 0 * * * * * * * * * * * * * Indexing aggregate field std.array.Appender!(string[]).Appender.Data.arr: * * * * * * * * * * * * * * Value: %8 = getelementptr %"std.array.Appender!(string[]).Appender.Data", %"std.array.Appender!(string[]).Appender.Data"* %7, i32 0, i32 1 * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * lhs: %len = alloca i64, align 8 * * * * * * * * * * * * rhs: %.len = load i64, i64* %9 * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2696) * * * * * * * DeclarationExp::toElem: immutable immutable(ulong) reqlen = len + nelems; | T=void * * * * * * * * DtoDeclarationExp: reqlen * * * * * * * * * VarDeclaration * * * * * * * * * DtoVarDeclaration(vdtype = immutable(ulong)) * * * * * * * * * * llvm value for decl: %reqlen = alloca i64, align 8 * * * * * * * * * * expression initializer * * * * * * * * * * AssignExp::toElem: reqlen = len + nelems | (immutable(ulong))(immutable(ulong) = immutable(ulong)) * * * * * * * * * * * VarExp::toElem: reqlen @ immutable(ulong) * * * * * * * * * * * * DtoSymbolAddress ('reqlen' of type 'immutable(ulong)') * * * * * * * * * * * * * a normal variable * * * * * * * * * * * AddExp::toElem: len + nelems @ immutable(ulong) * * * * * * * * * * * * VarExp::toElem: len @ ulong * * * * * * * * * * * * * DtoSymbolAddress ('len' of type 'immutable(ulong)') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * VarExp::toElem: nelems @ ulong * * * * * * * * * * * * * DtoSymbolAddress ('nelems' of type 'ulong') * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * type: ulong * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * lhs: %reqlen = alloca i64, align 8 * * * * * * * * * * * * rhs: %12 = add i64 %10, %11 * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2698) * * * * * * * CmpExp::toElem: (*this._data).capacity >= reqlen @ bool * * * * * * * * DotVarExp::toElem: (*this._data).capacity @ ulong * * * * * * * * * PtrExp::toElem: *this._data @ Data * * * * * * * * * * DotVarExp::toElem: this._data @ Data* * * * * * * * * * * * ThisExp::toElem: this @ Appender!(string[]) * * * * * * * * * * * * normal this exp * * * * * * * * * * * Indexing aggregate field std.array.Appender!(string[]).Appender._data: * * * * * * * * * * * * Value: %13 = getelementptr %"std.array.Appender!(string[]).Appender", %"std.array.Appender!(string[]).Appender"* %.this_arg, i32 0, i32 0 * * * * * * * * * Indexing aggregate field std.array.Appender!(string[]).Appender.Data.capacity: * * * * * * * * * * Value: %15 = getelementptr %"std.array.Appender!(string[]).Appender.Data", %"std.array.Appender!(string[]).Appender.Data"* %14, i32 0, i32 0 * * * * * * * * VarExp::toElem: reqlen @ ulong * * * * * * * * * DtoSymbolAddress ('reqlen' of type 'immutable(ulong)') * * * * * * * * * * a normal variable * * * * * * * * type 1: %16 = load i64, i64* %15 * * * * * * * * type 2: %17 = load i64, i64* %reqlen * * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2699) * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2702) * * * * * * * VarExp::toElem: __ctfe @ bool * * * * * * * * DtoSymbolAddress ('__ctfe' of type 'bool') * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2703) * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2703) * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2706) * * * * * * * * * * AssignExp::toElem: (*this._data).arr.length = reqlen | (ulong)(ulong = ulong) * * * * * * * * * * * performing array.length assignment * * * * * * * * * * * DotVarExp::toElem: (*this._data).arr @ string[] * * * * * * * * * * * * PtrExp::toElem: *this._data @ Data * * * * * * * * * * * * * DotVarExp::toElem: this._data @ Data* * * * * * * * * * * * * * * ThisExp::toElem: this @ Appender!(string[]) * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * Indexing aggregate field std.array.Appender!(string[]).Appender._data: * * * * * * * * * * * * * * * Value: %19 = getelementptr %"std.array.Appender!(string[]).Appender", %"std.array.Appender!(string[]).Appender"* %.this_arg, i32 0, i32 0 * * * * * * * * * * * * Indexing aggregate field std.array.Appender!(string[]).Appender.Data.arr: * * * * * * * * * * * * * Value: %21 = getelementptr %"std.array.Appender!(string[]).Appender.Data", %"std.array.Appender!(string[]).Appender.Data"* %20, i32 0, i32 1 * * * * * * * * * * * VarExp::toElem: reqlen @ ulong * * * * * * * * * * * * DtoSymbolAddress ('reqlen' of type 'immutable(ulong)') * * * * * * * * * * * * * a normal variable * * * * * * * * * * * DtoResizeDynArray : string[] * * * * * * * * * * * * DtoTypeInfoOf(type = 'string[]', base='1') * * * * * * * * * * * * * Type::getTypeInfo(): string[] * * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(string[])) * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * SetArray * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2715) * * * * * * * * * * AssignExp::toElem: (*this._data).arr = (*this._data).arr[0..len] | (string[])(string[] = string[]) * * * * * * * * * * * DotVarExp::toElem: (*this._data).arr @ string[] * * * * * * * * * * * * PtrExp::toElem: *this._data @ Data * * * * * * * * * * * * * DotVarExp::toElem: this._data @ Data* * * * * * * * * * * * * * * ThisExp::toElem: this @ Appender!(string[]) * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * Indexing aggregate field std.array.Appender!(string[]).Appender._data: * * * * * * * * * * * * * * * Value: %26 = getelementptr %"std.array.Appender!(string[]).Appender", %"std.array.Appender!(string[]).Appender"* %.this_arg, i32 0, i32 0 * * * * * * * * * * * * Indexing aggregate field std.array.Appender!(string[]).Appender.Data.arr: * * * * * * * * * * * * * Value: %28 = getelementptr %"std.array.Appender!(string[]).Appender.Data", %"std.array.Appender!(string[]).Appender.Data"* %27, i32 0, i32 1 * * * * * * * * * * * SliceExp::toElem: (*this._data).arr[0..len] @ string[] * * * * * * * * * * * * DotVarExp::toElem: (*this._data).arr @ string[] * * * * * * * * * * * * * PtrExp::toElem: *this._data @ Data * * * * * * * * * * * * * * DotVarExp::toElem: this._data @ Data* * * * * * * * * * * * * * * * ThisExp::toElem: this @ Appender!(string[]) * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * Indexing aggregate field std.array.Appender!(string[]).Appender._data: * * * * * * * * * * * * * * * * Value: %29 = getelementptr %"std.array.Appender!(string[]).Appender", %"std.array.Appender!(string[]).Appender"* %.this_arg, i32 0, i32 0 * * * * * * * * * * * * * Indexing aggregate field std.array.Appender!(string[]).Appender.Data.arr: * * * * * * * * * * * * * * Value: %31 = getelementptr %"std.array.Appender!(string[]).Appender.Data", %"std.array.Appender!(string[]).Appender.Data"* %30, i32 0, i32 1 * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * VarExp::toElem: len @ ulong * * * * * * * * * * * * * DtoSymbolAddress ('len' of type 'immutable(ulong)') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * SetArray * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2716) * * * * * * * * * * AssignExp::toElem: (*this._data).capacity = reqlen | (ulong)(ulong = ulong) * * * * * * * * * * * DotVarExp::toElem: (*this._data).capacity @ ulong * * * * * * * * * * * * PtrExp::toElem: *this._data @ Data * * * * * * * * * * * * * DotVarExp::toElem: this._data @ Data* * * * * * * * * * * * * * * ThisExp::toElem: this @ Appender!(string[]) * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * Indexing aggregate field std.array.Appender!(string[]).Appender._data: * * * * * * * * * * * * * * * Value: %37 = getelementptr %"std.array.Appender!(string[]).Appender", %"std.array.Appender!(string[]).Appender"* %.this_arg, i32 0, i32 0 * * * * * * * * * * * * Indexing aggregate field std.array.Appender!(string[]).Appender.Data.capacity: * * * * * * * * * * * * * Value: %39 = getelementptr %"std.array.Appender!(string[]).Appender.Data", %"std.array.Appender!(string[]).Appender.Data"* %38, i32 0, i32 0 * * * * * * * * * * * VarExp::toElem: reqlen @ ulong * * * * * * * * * * * * DtoSymbolAddress ('reqlen' of type 'immutable(ulong)') * * * * * * * * * * * * * a normal variable * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * lhs: %39 = getelementptr %"std.array.Appender!(string[]).Appender.Data", %"std.array.Appender!(string[]).Appender.Data"* %38, i32 0, i32 0 * * * * * * * * * * * * rhs: %40 = load i64, i64* %reqlen * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2719) * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2719) * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2723) * * * * * * * * * * DeclarationExp::toElem: ulong newlen = appenderNewCapacity((*this._data).capacity, reqlen); | T=void * * * * * * * * * * * DtoDeclarationExp: newlen * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * * * * * llvm value for decl: %newlen = alloca i64, align 8 * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * AssignExp::toElem: newlen = appenderNewCapacity((*this._data).capacity, reqlen) | (ulong)(ulong = ulong) * * * * * * * * * * * * * * VarExp::toElem: newlen @ ulong * * * * * * * * * * * * * * * DtoSymbolAddress ('newlen' of type 'ulong') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * CallExp::toElem: appenderNewCapacity((*this._data).capacity, reqlen) @ ulong * * * * * * * * * * * * * * * VarExp::toElem: appenderNewCapacity @ pure nothrow @nogc @safe ulong(ulong curLen, ulong reqLen) * * * * * * * * * * * * * * * * DtoSymbolAddress ('appenderNewCapacity' of type 'pure nothrow @nogc @safe ulong(ulong curLen, ulong reqLen)') * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe ulong(ulong curLen, ulong reqLen)) * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * Final function type: i64 (i64, i64) * * * * * * * * * * * * * * * * * DtoResolveFunction(std.array.appenderNewCapacity!16LU.appenderNewCapacity): /usr/include/dlang/ldc/std/array.d(2969) * * * * * * * * * * * * * * * * * * DtoDeclareFunction(std.array.appenderNewCapacity!16LU.appenderNewCapacity): /usr/include/dlang/ldc/std/array.d(2969) * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe ulong(ulong curLen, ulong reqLen)) * * * * * * * * * * * * * * * * * * * func = declare i64 @_D3std5array30__T19appenderNewCapacityVmi16Z19appenderNewCapacityFNaNbNiNfmmZm(i64, i64) * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * Building type: pure nothrow @nogc @safe ulong(ulong curLen, ulong reqLen) * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe ulong(ulong curLen, ulong reqLen)) * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * Final function type: i64 (i64, i64) * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @safe ulong(ulong curLen, ulong reqLen) * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * DotVarExp::toElem: (*this._data).capacity @ ulong * * * * * * * * * * * * * * * * * * PtrExp::toElem: *this._data @ Data * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: this._data @ Data* * * * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Appender!(string[]) * * * * * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * * * * * Indexing aggregate field std.array.Appender!(string[]).Appender._data: * * * * * * * * * * * * * * * * * * * * * Value: %41 = getelementptr %"std.array.Appender!(string[]).Appender", %"std.array.Appender!(string[]).Appender"* %.this_arg, i32 0, i32 0 * * * * * * * * * * * * * * * * * * Indexing aggregate field std.array.Appender!(string[]).Appender.Data.capacity: * * * * * * * * * * * * * * * * * * * Value: %43 = getelementptr %"std.array.Appender!(string[]).Appender.Data", %"std.array.Appender!(string[]).Appender.Data"* %42, i32 0, i32 0 * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * VarExp::toElem: reqlen @ ulong * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('reqlen' of type 'immutable(ulong)') * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * lhs: %newlen = alloca i64, align 8 * * * * * * * * * * * * * * * rhs: %46 = call i64 @_D3std5array30__T19appenderNewCapacityVmi16Z19appenderNewCapacityFNaNbNiNfmmZm(i64 %45, i64 %44) * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2725) * * * * * * * * * * DotVarExp::toElem: (*this._data).canExtend @ bool * * * * * * * * * * * PtrExp::toElem: *this._data @ Data * * * * * * * * * * * * DotVarExp::toElem: this._data @ Data* * * * * * * * * * * * * * ThisExp::toElem: this @ Appender!(string[]) * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * Indexing aggregate field std.array.Appender!(string[]).Appender._data: * * * * * * * * * * * * * * Value: %47 = getelementptr %"std.array.Appender!(string[]).Appender", %"std.array.Appender!(string[]).Appender"* %.this_arg, i32 0, i32 0 * * * * * * * * * * * Indexing aggregate field std.array.Appender!(string[]).Appender.Data.canExtend: * * * * * * * * * * * * Value: %49 = getelementptr %"std.array.Appender!(string[]).Appender.Data", %"std.array.Appender!(string[]).Appender.Data"* %48, i32 0, i32 2 * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2726) * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2726) * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2727) * * * * * * * * * * * * * DeclarationExp::toElem: ulong u = extend(cast(void*)cast(string*)(*this._data).arr, nelems * 16LU, (newlen - len) * 16LU, null); | T=void * * * * * * * * * * * * * * DtoDeclarationExp: u * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * * * * * * * * llvm value for decl: %u = alloca i64, align 8 * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * AssignExp::toElem: u = extend(cast(void*)cast(string*)(*this._data).arr, nelems * 16LU, (newlen - len) * 16LU, null) | (ulong)(ulong = ulong) * * * * * * * * * * * * * * * * * VarExp::toElem: u @ ulong * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('u' of type 'ulong') * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * CallExp::toElem: extend(cast(void*)cast(string*)(*this._data).arr, nelems * 16LU, (newlen - len) * 16LU, null) @ ulong * * * * * * * * * * * * * * * * * * VarExp::toElem: extend @ pure nothrow ulong(void* p, ulong mx, ulong sz, const(TypeInfo) ti = null) * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('extend' of type 'pure nothrow ulong(void* p, ulong mx, ulong sz, const(TypeInfo) ti = null)') * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * Function type: pure nothrow ulong(void* p, ulong mx, ulong sz, const(TypeInfo) ti = null) * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * CastExp::toElem: cast(void*)cast(string*)(*this._data).arr @ void* * * * * * * * * * * * * * * * * * * * * * CastExp::toElem: cast(string*)(*this._data).arr @ string* * * * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: (*this._data).arr @ string[] * * * * * * * * * * * * * * * * * * * * * * * PtrExp::toElem: *this._data @ Data * * * * * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: this._data @ Data* * * * * * * * * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Appender!(string[]) * * * * * * * * * * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * * * * * * * * * * Indexing aggregate field std.array.Appender!(string[]).Appender._data: * * * * * * * * * * * * * * * * * * * * * * * * * * Value: %52 = getelementptr %"std.array.Appender!(string[]).Appender", %"std.array.Appender!(string[]).Appender"* %.this_arg, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * * * * * Indexing aggregate field std.array.Appender!(string[]).Appender.Data.arr: * * * * * * * * * * * * * * * * * * * * * * * * Value: %54 = getelementptr %"std.array.Appender!(string[]).Appender.Data", %"std.array.Appender!(string[]).Appender.Data"* %53, i32 0, i32 1 * * * * * * * * * * * * * * * * * * * * * * Casting from 'string[]' to 'string*' * * * * * * * * * * * * * * * * * * * * * * * DtoCastArray * * * * * * * * * * * * * * * * * * * * * * * * from array or sarray * * * * * * * * * * * * * * * * * * * * * * * * to pointer * * * * * * * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * * * * Casting from 'string*' to 'void*' * * * * * * * * * * * * * * * * * * * * * * src: %.ptr11 = load { i64, i8* }*, { i64, i8* }** %55 * * * * * * * * * * * * * * * * * * * * * * to type: i8* * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * MulExp::toElem: nelems * 16LU @ ulong * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: nelems @ ulong * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('nelems' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * * type: ulong * * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 16LU @ ulong * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 16LU @ ulong * * * * * * * * * * * * * * * * * * * * * * * value = i64 16 * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * MulExp::toElem: (newlen - len) * 16LU @ ulong * * * * * * * * * * * * * * * * * * * * * MinExp::toElem: newlen - len @ ulong * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: newlen @ ulong * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('newlen' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: len @ ulong * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('len' of type 'immutable(ulong)') * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 16LU @ ulong * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 16LU @ ulong * * * * * * * * * * * * * * * * * * * * * * * value = i64 16 * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * NullExp::toElem(type=const(TypeInfo)): null * * * * * * * * * * * * * * * * * * * * * NullExp::toConstElem(type=const(TypeInfo)): null * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * lhs: %u = alloca i64, align 8 * * * * * * * * * * * * * * * * * * rhs: %63 = call i64 @_D4core6memory2GC6extendFNaNbPvmmxC8TypeInfoZm(%object.TypeInfo* null, i64 %62, i64 %58, i8* %56) * * * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2728) * * * * * * * * * * * * * VarExp::toElem: u @ ulong * * * * * * * * * * * * * * DtoSymbolAddress ('u' of type 'ulong') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * if conditional: %64 = load i64, i64* %u * * * * * * * * * * * * * Casting from 'ulong' to 'bool' * * * * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2729) * * * * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2729) * * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2731) * * * * * * * * * * * * * * * * AssignExp::toElem: (*this._data).capacity = u / 16LU | (ulong)(ulong = ulong) * * * * * * * * * * * * * * * * * DotVarExp::toElem: (*this._data).capacity @ ulong * * * * * * * * * * * * * * * * * * PtrExp::toElem: *this._data @ Data * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: this._data @ Data* * * * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Appender!(string[]) * * * * * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * * * * * Indexing aggregate field std.array.Appender!(string[]).Appender._data: * * * * * * * * * * * * * * * * * * * * * Value: %67 = getelementptr %"std.array.Appender!(string[]).Appender", %"std.array.Appender!(string[]).Appender"* %.this_arg, i32 0, i32 0 * * * * * * * * * * * * * * * * * * Indexing aggregate field std.array.Appender!(string[]).Appender.Data.capacity: * * * * * * * * * * * * * * * * * * * Value: %69 = getelementptr %"std.array.Appender!(string[]).Appender.Data", %"std.array.Appender!(string[]).Appender.Data"* %68, i32 0, i32 0 * * * * * * * * * * * * * * * * * DivExp::toElem: u / 16LU @ ulong * * * * * * * * * * * * * * * * * * VarExp::toElem: u @ ulong * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('u' of type 'ulong') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 16LU @ ulong * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 16LU @ ulong * * * * * * * * * * * * * * * * * * * * value = i64 16 * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * lhs: %69 = getelementptr %"std.array.Appender!(string[]).Appender.Data", %"std.array.Appender!(string[]).Appender.Data"* %68, i32 0, i32 0 * * * * * * * * * * * * * * * * * * rhs: %71 = udiv i64 %70, 16 * * * * * * * * * * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2732) * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2737) * * * * * * * * * * DeclarationExp::toElem: BlkInfo_ bi = qalloc(newlen * 16LU, 0u, null); | T=void * * * * * * * * * * * DtoDeclarationExp: bi * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * DtoVarDeclaration(vdtype = BlkInfo_) * * * * * * * * * * * * * VarExp::toElem: qalloc @ pure nothrow BlkInfo_(ulong sz, uint ba = 0u, const(TypeInfo) ti = null) * * * * * * * * * * * * * * DtoSymbolAddress ('qalloc' of type 'pure nothrow BlkInfo_(ulong sz, uint ba = 0u, const(TypeInfo) ti = null)') * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * %bi = alloca %core.memory.BlkInfo_, align 8 * * * * * * * * * * * * * * Function type: pure nothrow BlkInfo_(ulong sz, uint ba = 0u, const(TypeInfo) ti = null) * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * MulExp::toElem: newlen * 16LU @ ulong * * * * * * * * * * * * * * * * VarExp::toElem: newlen @ ulong * * * * * * * * * * * * * * * * * DtoSymbolAddress ('newlen' of type 'ulong') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * IntegerExp::toElem: 16LU @ ulong * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 16LU @ ulong * * * * * * * * * * * * * * * * * * value = i64 16 * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * IntegerExp::toElem: 0u @ uint * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0u @ uint * * * * * * * * * * * * * * * * * value = i32 0 * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * NullExp::toElem(type=const(TypeInfo)): null * * * * * * * * * * * * * * * * NullExp::toConstElem(type=const(TypeInfo)): null * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2738) * * * * * * * * * * AssignExp::toElem: (*this._data).capacity = bi.size / 16LU | (ulong)(ulong = ulong) * * * * * * * * * * * DotVarExp::toElem: (*this._data).capacity @ ulong * * * * * * * * * * * * PtrExp::toElem: *this._data @ Data * * * * * * * * * * * * * DotVarExp::toElem: this._data @ Data* * * * * * * * * * * * * * * ThisExp::toElem: this @ Appender!(string[]) * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * Indexing aggregate field std.array.Appender!(string[]).Appender._data: * * * * * * * * * * * * * * * Value: %69 = getelementptr %"std.array.Appender!(string[]).Appender", %"std.array.Appender!(string[]).Appender"* %.this_arg, i32 0, i32 0 * * * * * * * * * * * * Indexing aggregate field std.array.Appender!(string[]).Appender.Data.capacity: * * * * * * * * * * * * * Value: %71 = getelementptr %"std.array.Appender!(string[]).Appender.Data", %"std.array.Appender!(string[]).Appender.Data"* %70, i32 0, i32 0 * * * * * * * * * * * DivExp::toElem: bi.size / 16LU @ ulong * * * * * * * * * * * * DotVarExp::toElem: bi.size @ ulong * * * * * * * * * * * * * VarExp::toElem: bi @ BlkInfo_ * * * * * * * * * * * * * * DtoSymbolAddress ('bi' of type 'BlkInfo_') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * Indexing aggregate field core.memory.BlkInfo_.size: * * * * * * * * * * * * * * Value: %72 = getelementptr %core.memory.BlkInfo_, %core.memory.BlkInfo_* %bi, i32 0, i32 1 * * * * * * * * * * * * IntegerExp::toElem: 16LU @ ulong * * * * * * * * * * * * * IntegerExp::toConstElem: 16LU @ ulong * * * * * * * * * * * * * * value = i64 16 * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * lhs: %71 = getelementptr %"std.array.Appender!(string[]).Appender.Data", %"std.array.Appender!(string[]).Appender.Data"* %70, i32 0, i32 0 * * * * * * * * * * * * rhs: %74 = udiv i64 %73, 16 * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2740) * * * * * * * * * * VarExp::toElem: len @ immutable(ulong) * * * * * * * * * * * DtoSymbolAddress ('len' of type 'immutable(ulong)') * * * * * * * * * * * * a normal variable * * * * * * * * * * if conditional: %75 = load i64, i64* %len * * * * * * * * * * Casting from 'immutable(ulong)' to 'bool' * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2741) * * * * * * * * * * * CallExp::toElem: memcpy(bi.base, cast(const(void*))cast(string*)(*this._data).arr, len * 16LU) @ void* * * * * * * * * * * * * VarExp::toElem: memcpy @ pure nothrow @nogc @system extern (C) void*(void* s1, const(void*) s2, ulong n) * * * * * * * * * * * * * DtoSymbolAddress ('memcpy' of type 'pure nothrow @nogc @system extern (C) void*(void* s1, const(void*) s2, ulong n)') * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * Function type: pure nothrow @nogc @system extern (C) void*(void* s1, const(void*) s2, ulong n) * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * DotVarExp::toElem: bi.base @ void* * * * * * * * * * * * * * * * VarExp::toElem: bi @ BlkInfo_ * * * * * * * * * * * * * * * * DtoSymbolAddress ('bi' of type 'BlkInfo_') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * Indexing aggregate field core.memory.BlkInfo_.base: * * * * * * * * * * * * * * * * Value: %83 = getelementptr %core.memory.BlkInfo_, %core.memory.BlkInfo_* %bi, i32 0, i32 0 * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * CastExp::toElem: cast(const(void*))cast(string*)(*this._data).arr @ const(void*) * * * * * * * * * * * * * * * CastExp::toElem: cast(string*)(*this._data).arr @ string* * * * * * * * * * * * * * * * * DotVarExp::toElem: (*this._data).arr @ string[] * * * * * * * * * * * * * * * * * PtrExp::toElem: *this._data @ Data * * * * * * * * * * * * * * * * * * DotVarExp::toElem: this._data @ Data* * * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Appender!(string[]) * * * * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * * * * Indexing aggregate field std.array.Appender!(string[]).Appender._data: * * * * * * * * * * * * * * * * * * * * Value: %84 = getelementptr %"std.array.Appender!(string[]).Appender", %"std.array.Appender!(string[]).Appender"* %.this_arg, i32 0, i32 0 * * * * * * * * * * * * * * * * * Indexing aggregate field std.array.Appender!(string[]).Appender.Data.arr: * * * * * * * * * * * * * * * * * * Value: %86 = getelementptr %"std.array.Appender!(string[]).Appender.Data", %"std.array.Appender!(string[]).Appender.Data"* %85, i32 0, i32 1 * * * * * * * * * * * * * * * * Casting from 'string[]' to 'string*' * * * * * * * * * * * * * * * * * DtoCastArray * * * * * * * * * * * * * * * * * * from array or sarray * * * * * * * * * * * * * * * * * * to pointer * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * Casting from 'string*' to 'const(void*)' * * * * * * * * * * * * * * * * src: %.ptr17 = load { i64, i8* }*, { i64, i8* }** %87 * * * * * * * * * * * * * * * * to type: i8* * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * MulExp::toElem: len * 16LU @ ulong * * * * * * * * * * * * * * * VarExp::toElem: len @ ulong * * * * * * * * * * * * * * * * DtoSymbolAddress ('len' of type 'immutable(ulong)') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * IntegerExp::toElem: 16LU @ ulong * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 16LU @ ulong * * * * * * * * * * * * * * * * * value = i64 16 * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2742) * * * * * * * * * * AssignExp::toElem: (*this._data).arr = (cast(string*)bi.base)[0..len] | (string[])(string[] = string[]) * * * * * * * * * * * DotVarExp::toElem: (*this._data).arr @ string[] * * * * * * * * * * * * PtrExp::toElem: *this._data @ Data * * * * * * * * * * * * * DotVarExp::toElem: this._data @ Data* * * * * * * * * * * * * * * ThisExp::toElem: this @ Appender!(string[]) * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * Indexing aggregate field std.array.Appender!(string[]).Appender._data: * * * * * * * * * * * * * * * Value: %93 = getelementptr %"std.array.Appender!(string[]).Appender", %"std.array.Appender!(string[]).Appender"* %.this_arg, i32 0, i32 0 * * * * * * * * * * * * Indexing aggregate field std.array.Appender!(string[]).Appender.Data.arr: * * * * * * * * * * * * * Value: %95 = getelementptr %"std.array.Appender!(string[]).Appender.Data", %"std.array.Appender!(string[]).Appender.Data"* %94, i32 0, i32 1 * * * * * * * * * * * SliceExp::toElem: (cast(string*)bi.base)[0..len] @ string[] * * * * * * * * * * * * CastExp::toElem: cast(string*)bi.base @ string* * * * * * * * * * * * * * DotVarExp::toElem: bi.base @ void* * * * * * * * * * * * * * * VarExp::toElem: bi @ BlkInfo_ * * * * * * * * * * * * * * * DtoSymbolAddress ('bi' of type 'BlkInfo_') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * Indexing aggregate field core.memory.BlkInfo_.base: * * * * * * * * * * * * * * * Value: %96 = getelementptr %core.memory.BlkInfo_, %core.memory.BlkInfo_* %bi, i32 0, i32 0 * * * * * * * * * * * * * Casting from 'void*' to 'string*' * * * * * * * * * * * * * * src: %97 = load i8*, i8** %96 * * * * * * * * * * * * * * to type: { i64, i8* }* * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * VarExp::toElem: len @ ulong * * * * * * * * * * * * * DtoSymbolAddress ('len' of type 'immutable(ulong)') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * SetArray * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2743) * * * * * * * * * * AssignExp::toElem: (*this._data).canExtend = true | (bool)(bool = bool) * * * * * * * * * * * DotVarExp::toElem: (*this._data).canExtend @ bool * * * * * * * * * * * * PtrExp::toElem: *this._data @ Data * * * * * * * * * * * * * DotVarExp::toElem: this._data @ Data* * * * * * * * * * * * * * * ThisExp::toElem: this @ Appender!(string[]) * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * Indexing aggregate field std.array.Appender!(string[]).Appender._data: * * * * * * * * * * * * * * * Value: %103 = getelementptr %"std.array.Appender!(string[]).Appender", %"std.array.Appender!(string[]).Appender"* %.this_arg, i32 0, i32 0 * * * * * * * * * * * * Indexing aggregate field std.array.Appender!(string[]).Appender.Data.canExtend: * * * * * * * * * * * * * Value: %105 = getelementptr %"std.array.Appender!(string[]).Appender.Data", %"std.array.Appender!(string[]).Appender.Data"* %104, i32 0, i32 2 * * * * * * * * * * * IntegerExp::toElem: true @ bool * * * * * * * * * * * * IntegerExp::toConstElem: true @ bool * * * * * * * * * * * * * value = i1 true * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * DtoAssign() * * * Ignoring Dsymbol::codegen for std.array.Appender!(string[]).Appender.canPutItem(U) * * * Ignoring Dsymbol::codegen for std.array.Appender!(string[]).Appender.canPutConstRange(Range) * * * Ignoring Dsymbol::codegen for std.array.Appender!(string[]).Appender.canPutRange(Range) * * * Ignoring Dsymbol::codegen for std.array.Appender!(string[]).Appender.put(U)(U item) if (canPutItem!U) * * * Ignoring Dsymbol::codegen for std.array.Appender!(string[]).Appender.put(Range)(Range items) if (canPutConstRange!Range) * * * Ignoring Dsymbol::codegen for std.array.Appender!(string[]).Appender.put(Range)(Range items) if (canPutRange!Range) * * * Ignoring Dsymbol::codegen for std.array.Appender!(string[]).Appender.opOpAssign(string op : "~", U)(U item) if (canPutItem!U) * * * Ignoring Dsymbol::codegen for std.array.Appender!(string[]).Appender.opOpAssign(string op : "~", Range)(Range items) if (canPutConstRange!Range) * * * Ignoring Dsymbol::codegen for std.array.Appender!(string[]).Appender.opOpAssign(string op : "~", Range)(Range items) if (canPutRange!Range) * * * DtoDefineFunction(std.array.Appender!(string[]).Appender.clear): /usr/include/dlang/ldc/std/array.d(2901) * * * * isMember = this is: Appender!(string[]) * * * * DtoFunctionType(pure nothrow @nogc @trusted void()) * * * * * x86-64 ABI: Transforming argument types * * * * * Final function type: void (%"std.array.Appender!(string[]).Appender"*) * * * * DtoResolveFunction(std.array.Appender!(string[]).Appender.clear): /usr/include/dlang/ldc/std/array.d(2901) * * * * * DtoDeclareFunction(std.array.Appender!(string[]).Appender.clear): /usr/include/dlang/ldc/std/array.d(2901) * * * * * * isMember = this is: Appender!(string[]) * * * * * * DtoFunctionType(pure nothrow @nogc @trusted void()) * * * * * * func = declare void @_D3std5array18__T8AppenderTAAyaZ8Appender5clearMFNaNbNiNeZv(%"std.array.Appender!(string[]).Appender"*) * * * * Doing function body for: clear * * * * DtoCreateNestedContext for clear * * * * * DtoCreateNestedContextType for std.array.Appender!(string[]).Appender.clear * * * * CompoundStatement::toIR(): * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2903) * * * * * * DotVarExp::toElem: this._data @ Data* * * * * * * * ThisExp::toElem: this @ Appender!(string[]) * * * * * * * * normal this exp * * * * * * * Indexing aggregate field std.array.Appender!(string[]).Appender._data: * * * * * * * * Value: %1 = getelementptr %"std.array.Appender!(string[]).Appender", %"std.array.Appender!(string[]).Appender"* %.this_arg, i32 0, i32 0 * * * * * * if conditional: %2 = load %"std.array.Appender!(string[]).Appender.Data"*, %"std.array.Appender!(string[]).Appender.Data"** %1 * * * * * * Casting from 'Data*' to 'bool' * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2904) * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2905) * * * * * * * * AssignExp::toElem: (*this._data).arr = (cast(string*)(*this._data).arr)[0..0] | (string[])(string[] = string[]) * * * * * * * * * DotVarExp::toElem: (*this._data).arr @ string[] * * * * * * * * * * PtrExp::toElem: *this._data @ Data * * * * * * * * * * * DotVarExp::toElem: this._data @ Data* * * * * * * * * * * * * ThisExp::toElem: this @ Appender!(string[]) * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * Indexing aggregate field std.array.Appender!(string[]).Appender._data: * * * * * * * * * * * * * Value: %5 = getelementptr %"std.array.Appender!(string[]).Appender", %"std.array.Appender!(string[]).Appender"* %.this_arg, i32 0, i32 0 * * * * * * * * * * Indexing aggregate field std.array.Appender!(string[]).Appender.Data.arr: * * * * * * * * * * * Value: %7 = getelementptr %"std.array.Appender!(string[]).Appender.Data", %"std.array.Appender!(string[]).Appender.Data"* %6, i32 0, i32 1 * * * * * * * * * SliceExp::toElem: (cast(string*)(*this._data).arr)[0..0] @ string[] * * * * * * * * * * CastExp::toElem: cast(string*)(*this._data).arr @ string* * * * * * * * * * * * DotVarExp::toElem: (*this._data).arr @ string[] * * * * * * * * * * * * PtrExp::toElem: *this._data @ Data * * * * * * * * * * * * * DotVarExp::toElem: this._data @ Data* * * * * * * * * * * * * * * ThisExp::toElem: this @ Appender!(string[]) * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * Indexing aggregate field std.array.Appender!(string[]).Appender._data: * * * * * * * * * * * * * * * Value: %8 = getelementptr %"std.array.Appender!(string[]).Appender", %"std.array.Appender!(string[]).Appender"* %.this_arg, i32 0, i32 0 * * * * * * * * * * * * Indexing aggregate field std.array.Appender!(string[]).Appender.Data.arr: * * * * * * * * * * * * * Value: %10 = getelementptr %"std.array.Appender!(string[]).Appender.Data", %"std.array.Appender!(string[]).Appender.Data"* %9, i32 0, i32 1 * * * * * * * * * * * Casting from 'string[]' to 'string*' * * * * * * * * * * * * DtoCastArray * * * * * * * * * * * * * from array or sarray * * * * * * * * * * * * * to pointer * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * value = i64 0 * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * value = i64 0 * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * DtoAssign() * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * SetArray * * * DtoDefineFunction(std.array.Appender!(string[]).Appender.shrinkTo): /usr/include/dlang/ldc/std/array.d(2914) * * * * isMember = this is: Appender!(string[]) * * * * DtoFunctionType(pure @trusted void(ulong newlength)) * * * * * x86-64 ABI: Transforming argument types * * * * * Final function type: void (%"std.array.Appender!(string[]).Appender"*, i64) * * * * DtoResolveFunction(std.array.Appender!(string[]).Appender.shrinkTo): /usr/include/dlang/ldc/std/array.d(2914) * * * * * DtoDeclareFunction(std.array.Appender!(string[]).Appender.shrinkTo): /usr/include/dlang/ldc/std/array.d(2914) * * * * * * isMember = this is: Appender!(string[]) * * * * * * DtoFunctionType(pure @trusted void(ulong newlength)) * * * * * * func = declare void @_D3std5array18__T8AppenderTAAyaZ8Appender8shrinkToMFNaNemZv(%"std.array.Appender!(string[]).Appender"*, i64) * * * * Doing function body for: shrinkTo * * * * DtoCreateNestedContext for shrinkTo * * * * * DtoCreateNestedContextType for std.array.Appender!(string[]).Appender.shrinkTo * * * * CompoundStatement::toIR(): * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2915) * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2917) * * * * * * * DotVarExp::toElem: this._data @ Data* * * * * * * * * ThisExp::toElem: this @ Appender!(string[]) * * * * * * * * * normal this exp * * * * * * * * Indexing aggregate field std.array.Appender!(string[]).Appender._data: * * * * * * * * * Value: %1 = getelementptr %"std.array.Appender!(string[]).Appender", %"std.array.Appender!(string[]).Appender"* %.this_arg, i32 0, i32 0 * * * * * * * if conditional: %2 = load %"std.array.Appender!(string[]).Appender.Data"*, %"std.array.Appender!(string[]).Appender.Data"** %1 * * * * * * * Casting from 'Data*' to 'bool' * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2918) * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2918) * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2919) * * * * * * * * * * CallExp::toElem: enforce(newlength <= (*this._data).arr.length, delegate const(char)[]() => null, "/usr/include/dlang/ldc/std/array.d", 2919LU) @ bool * * * * * * * * * * * VarExp::toElem: enforce @ pure @safe bool(bool value, lazy const(char)[] msg = null, string file = __FILE__, ulong line = cast(ulong)__LINE__) * * * * * * * * * * * * DtoSymbolAddress ('enforce' of type 'pure @safe bool(bool value, lazy const(char)[] msg = null, string file = __FILE__, ulong line = cast(ulong)__LINE__)') * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * Function type: pure @safe bool(bool value, lazy const(char)[] msg = null, string file = __FILE__, ulong line = cast(ulong)__LINE__) * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * CmpExp::toElem: newlength <= (*this._data).arr.length @ bool * * * * * * * * * * * * * * VarExp::toElem: newlength @ ulong * * * * * * * * * * * * * * * DtoSymbolAddress ('newlength' of type 'ulong') * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * type: ulong * * * * * * * * * * * * * * ArrayLengthExp::toElem: (*this._data).arr.length @ ulong * * * * * * * * * * * * * * * DotVarExp::toElem: (*this._data).arr @ string[] * * * * * * * * * * * * * * * * PtrExp::toElem: *this._data @ Data * * * * * * * * * * * * * * * * * DotVarExp::toElem: this._data @ Data* * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Appender!(string[]) * * * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * * * Indexing aggregate field std.array.Appender!(string[]).Appender._data: * * * * * * * * * * * * * * * * * * * Value: %5 = getelementptr %"std.array.Appender!(string[]).Appender", %"std.array.Appender!(string[]).Appender"* %.this_arg, i32 0, i32 0 * * * * * * * * * * * * * * * * Indexing aggregate field std.array.Appender!(string[]).Appender.Data.arr: * * * * * * * * * * * * * * * * * Value: %7 = getelementptr %"std.array.Appender!(string[]).Appender.Data", %"std.array.Appender!(string[]).Appender.Data"* %6, i32 0, i32 1 * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * type 1: %9 = load i64, i64* %newlength * * * * * * * * * * * * * * type 2: %.len = load i64, i64* %8 * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * FuncExp::toElem: __dgliteral2 @ const(char)[] delegate() pure nothrow @nogc @safe * * * * * * * * * * * * * * nested * * * * * * * * * * * * * * kind = delegate * * * * * * * * * * * * * * DtoDefineFunction(std.array.Appender!(string[]).Appender.shrinkTo.__dgliteral2): /usr/include/dlang/ldc/std/exception.d(348) * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe const(char)[]()) * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * Final function type: { i64, i8* } (i8*) * * * * * * * * * * * * * * * DtoResolveFunction(std.array.Appender!(string[]).Appender.shrinkTo.__dgliteral2): /usr/include/dlang/ldc/std/exception.d(348) * * * * * * * * * * * * * * * * DtoDeclareFunction(std.array.Appender!(string[]).Appender.shrinkTo.__dgliteral2): /usr/include/dlang/ldc/std/exception.d(348) * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe const(char)[]()) * * * * * * * * * * * * * * * * * func = declare { i64, i8* } @_D3std5array18__T8AppenderTAAyaZ8Appender8shrinkToMFNaNemZ12__dgliteral2MFNaNbNiNfZAxa(i8*) * * * * * * * * * * * * * * * Doing function body for: __dgliteral2 * * * * * * * * * * * * * * * DtoCreateNestedContext for __dgliteral2 * * * * * * * * * * * * * * * * DtoCreateNestedContextType for std.array.Appender!(string[]).Appender.shrinkTo.__dgliteral2 * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for std.array.Appender!(string[]).Appender.shrinkTo * * * * * * * * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * * * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/exception.d(348) * * * * * * * * * * * * * * * * * NullExp::toElem(type=const(char)[]): null * * * * * * * * * * * * * * * * * * NullExp::toConstElem(type=const(char)[]): null * * * * * * * * * * * * * * * * * return value is '0x120dd7b0' * * * * * * * * * * * * * * Building type: const(char)[] delegate() pure nothrow @nogc @safe * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe const(char)[]()) * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * Final function type: { i64, i8* } (i8*) * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * StringExp::toElem: "/usr/include/dlang/ldc/std/array.d" @ string * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * IntegerExp::toElem: 2919LU @ ulong * * * * * * * * * * * * * * IntegerExp::toConstElem: 2919LU @ ulong * * * * * * * * * * * * * * * value = i64 2919 * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2920) * * * * * * * * * * AssignExp::toElem: (*this._data).arr = (cast(string*)(*this._data).arr)[0..newlength] | (string[])(string[] = string[]) * * * * * * * * * * * DotVarExp::toElem: (*this._data).arr @ string[] * * * * * * * * * * * * PtrExp::toElem: *this._data @ Data * * * * * * * * * * * * * DotVarExp::toElem: this._data @ Data* * * * * * * * * * * * * * * ThisExp::toElem: this @ Appender!(string[]) * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * Indexing aggregate field std.array.Appender!(string[]).Appender._data: * * * * * * * * * * * * * * * Value: %12 = getelementptr %"std.array.Appender!(string[]).Appender", %"std.array.Appender!(string[]).Appender"* %.this_arg, i32 0, i32 0 * * * * * * * * * * * * Indexing aggregate field std.array.Appender!(string[]).Appender.Data.arr: * * * * * * * * * * * * * Value: %14 = getelementptr %"std.array.Appender!(string[]).Appender.Data", %"std.array.Appender!(string[]).Appender.Data"* %13, i32 0, i32 1 * * * * * * * * * * * SliceExp::toElem: (cast(string*)(*this._data).arr)[0..newlength] @ string[] * * * * * * * * * * * * CastExp::toElem: cast(string*)(*this._data).arr @ string* * * * * * * * * * * * * * DotVarExp::toElem: (*this._data).arr @ string[] * * * * * * * * * * * * * * PtrExp::toElem: *this._data @ Data * * * * * * * * * * * * * * * DotVarExp::toElem: this._data @ Data* * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Appender!(string[]) * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * Indexing aggregate field std.array.Appender!(string[]).Appender._data: * * * * * * * * * * * * * * * * * Value: %15 = getelementptr %"std.array.Appender!(string[]).Appender", %"std.array.Appender!(string[]).Appender"* %.this_arg, i32 0, i32 0 * * * * * * * * * * * * * * Indexing aggregate field std.array.Appender!(string[]).Appender.Data.arr: * * * * * * * * * * * * * * * Value: %17 = getelementptr %"std.array.Appender!(string[]).Appender.Data", %"std.array.Appender!(string[]).Appender.Data"* %16, i32 0, i32 1 * * * * * * * * * * * * * Casting from 'string[]' to 'string*' * * * * * * * * * * * * * * DtoCastArray * * * * * * * * * * * * * * * from array or sarray * * * * * * * * * * * * * * * to pointer * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * VarExp::toElem: newlength @ ulong * * * * * * * * * * * * * DtoSymbolAddress ('newlength' of type 'ulong') * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * type: ulong * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * SetArray * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2923) * * * * * * * * CallExp::toElem: enforce(newlength == 0LU, delegate const(char)[]() => null, "/usr/include/dlang/ldc/std/array.d", 2923LU) @ bool * * * * * * * * * VarExp::toElem: enforce @ pure @safe bool(bool value, lazy const(char)[] msg = null, string file = __FILE__, ulong line = cast(ulong)__LINE__) * * * * * * * * * * DtoSymbolAddress ('enforce' of type 'pure @safe bool(bool value, lazy const(char)[] msg = null, string file = __FILE__, ulong line = cast(ulong)__LINE__)') * * * * * * * * * * * FuncDeclaration * * * * * * * * * DtoCallFunction() * * * * * * * * * * doing normal arguments * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * Function type: pure @safe bool(bool value, lazy const(char)[] msg = null, string file = __FILE__, ulong line = cast(ulong)__LINE__) * * * * * * * * * * DtoArgument * * * * * * * * * * * EqualExp::toElem: newlength == 0LU @ bool * * * * * * * * * * * * VarExp::toElem: newlength @ ulong * * * * * * * * * * * * * DtoSymbolAddress ('newlength' of type 'ulong') * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * type: ulong * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * integral or pointer or interface * * * * * * * * * * * * lv: %23 = load i64, i64* %newlength * * * * * * * * * * * * rv: i64 0 * * * * * * * * * * DtoArgument * * * * * * * * * * * FuncExp::toElem: __dgliteral3 @ const(char)[] delegate() pure nothrow @nogc @safe * * * * * * * * * * * * nested * * * * * * * * * * * * kind = delegate * * * * * * * * * * * * DtoDefineFunction(std.array.Appender!(string[]).Appender.shrinkTo.__dgliteral3): /usr/include/dlang/ldc/std/exception.d(348) * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe const(char)[]()) * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * Final function type: { i64, i8* } (i8*) * * * * * * * * * * * * * DtoResolveFunction(std.array.Appender!(string[]).Appender.shrinkTo.__dgliteral3): /usr/include/dlang/ldc/std/exception.d(348) * * * * * * * * * * * * * * DtoDeclareFunction(std.array.Appender!(string[]).Appender.shrinkTo.__dgliteral3): /usr/include/dlang/ldc/std/exception.d(348) * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe const(char)[]()) * * * * * * * * * * * * * * * func = declare { i64, i8* } @_D3std5array18__T8AppenderTAAyaZ8Appender8shrinkToMFNaNemZ12__dgliteral3MFNaNbNiNfZAxa(i8*) * * * * * * * * * * * * * Doing function body for: __dgliteral3 * * * * * * * * * * * * * DtoCreateNestedContext for __dgliteral3 * * * * * * * * * * * * * * DtoCreateNestedContextType for std.array.Appender!(string[]).Appender.shrinkTo.__dgliteral3 * * * * * * * * * * * * * * * DtoCreateNestedContextType for std.array.Appender!(string[]).Appender.shrinkTo * * * * * * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/exception.d(348) * * * * * * * * * * * * * * * NullExp::toElem(type=const(char)[]): null * * * * * * * * * * * * * * * * NullExp::toConstElem(type=const(char)[]): null * * * * * * * * * * * * * * * return value is '0x120dd7b0' * * * * * * * * * * * * Building type: const(char)[] delegate() pure nothrow @nogc @safe * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe const(char)[]()) * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * Final function type: { i64, i8* } (i8*) * * * * * * * * * * DtoArgument * * * * * * * * * * * StringExp::toElem: "/usr/include/dlang/ldc/std/array.d" @ string * * * * * * * * * * DtoArgument * * * * * * * * * * * IntegerExp::toElem: 2923LU @ ulong * * * * * * * * * * * * IntegerExp::toConstElem: 2923LU @ ulong * * * * * * * * * * * * * value = i64 2923 * * * Ignoring Dsymbol::codegen for std.array.Appender!(string[]).Appender.toString()(scope void delegate(const(char)[]) sink) * * * Building default initializer for std.array.Appender!(string[]).Appender * * * * Creating initializer constant for Appender * * * * * Implicit initializer: _data @+0 * * * * * * DtoConstExpInit(targetType = Data*, exp = null) * * * * * * * NullExp::toConstElem(type=Data*): null * * * * * adding field _data * * * * * final initializer: %"std.array.Appender!(string[]).Appender_init" zeroinitializer * * * DtoTypeInfoOf(type = 'Appender!(string[])', base='1') * * * * Type::getTypeInfo(): Appender!(string[]) * * * * * TypeInfoDeclaration::codegen(typeid(Appender!(string[]))) * * * * * * type = 'Appender!(string[])' * * * * * * typeinfo mangle: _D49TypeInfo_S3std5array18__T8AppenderTAAyaZ8Appender6__initZ * * * * * * TypeInfoStructDeclaration::llvmDefine() typeid(Appender!(string[])) * * * * * * * DtoTypeInfoOf(type = 'void*', base='1') * * * * * * * * Type::getTypeInfo(): void* * * * * * * * * TypeInfoDeclaration::codegen(typeid(void*)) * * * * * * * IntegerExp::toConstElem: cast(void*)305419896LU @ void* * * * * * * * * pointer * * * * TypeInfoDeclaration::codegen(typeid(Appender!(string[]))) * TemplateInstance::codegen: 'std.traits.isMutable!string' * * VarDeclaration::codegen(): 'std.traits.isMutable!string.isMutable' * * * DtoResolveVariable(std.traits.isMutable!string.isMutable) * TemplateInstance::codegen: 'object.capacity!string' * * DtoDefineFunction(object.capacity!string.capacity): /usr/include/dlang/ldc/object.di(667) * * * Doing function body for: capacity * * * DtoCreateNestedContext for capacity * * * * DtoCreateNestedContextType for object.capacity!string.capacity * * * CompoundStatement::toIR(): * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/object.di(669) * * * * * CallExp::toElem: _d_arraysetcapacity(typeid(string[]), 0LU, & arr) @ ulong * * * * * * VarExp::toElem: _d_arraysetcapacity @ pure nothrow extern (C) ulong(TypeInfo ti, ulong newcapacity, void[]* arrptr) * * * * * * * DtoSymbolAddress ('_d_arraysetcapacity' of type 'pure nothrow extern (C) ulong(TypeInfo ti, ulong newcapacity, void[]* arrptr)') * * * * * * * * FuncDeclaration * * * * * * DtoCallFunction() * * * * * * * doing normal arguments * * * * * * * Arguments so far: (0) * * * * * * * Function type: pure nothrow extern (C) ulong(TypeInfo ti, ulong newcapacity, void[]* arrptr) * * * * * * * DtoArgument * * * * * * * * SymOffExp::toElem: typeid(string[]) @ object.TypeInfo * * * * * * * * * DtoSymbolAddress ('typeid(string[])' of type 'object.TypeInfo_Array') * * * * * * * * * * TypeInfoDeclaration * * * * * * * * * Casting from 'TypeInfo_Array*' to 'object.TypeInfo' * * * * * * * * * * src: %object.TypeInfo_Array* bitcast (%"typeid(string[])"* @_D13TypeInfo_AAya6__initZ to %object.TypeInfo_Array*) * * * * * * * * * * to type: %object.TypeInfo* * * * * * * * DtoArgument * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * value = i64 0 * * * * * * * DtoArgument * * * * * * * * SymOffExp::toElem: & arr @ void[]* * * * * * * * * * DtoSymbolAddress ('arr' of type 'string[]') * * * * * * * * * * function param * * * * * * * * * * type: string[] * * * * * * * * * Casting from 'string[]*' to 'void[]*' * * * * * * * * * * src: %arr = alloca { i64, { i64, i8* }* }, align 8 * * * * * * * * * * to type: { i64, i8* }* * * * * * return value is '0x12a7a940' * TypeInfoDeclaration::codegen(typeid(string[])) * TemplateInstance::codegen: 'std.format.format!(char, string, char)' * * DtoDefineFunction(std.format.format!(char, string, char).format): /usr/include/dlang/ldc/std/format.d(6521) * * * DtoFunctionType(pure @safe string(const(char[]) fmt, string _param_1, char _param_2)) * * * * x86-64 ABI: Transforming return type * * * * x86-64 ABI: Transforming argument types * * * * Final function type: { i64, i8* } (i8, { i64, i8* }, { i64, i8* }) * * * DtoResolveFunction(std.format.format!(char, string, char).format): /usr/include/dlang/ldc/std/format.d(6521) * * * * DtoDeclareFunction(std.format.format!(char, string, char).format): /usr/include/dlang/ldc/std/format.d(6521) * * * * * DtoFunctionType(pure @safe string(const(char[]) fmt, string _param_1, char _param_2)) * * * * * func = declare { i64, i8* } @_D3std6format19__T6formatTaTAyaTaZ6formatFNaNfxAaAyaaZAya(i8, { i64, i8* }, { i64, i8* }) * * * Doing function body for: format * * * DtoCreateNestedContext for format * * * * DtoCreateNestedContextType for std.format.format!(char, string, char).format * * * * * has nested frame * * * * * Function format has depth 0 * * * * * Nested var 'n' of type i32 * * * * * frameType = %nest.format.7 = type { i32 } * * * * nested var: n * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(6522) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(6525) * * * * * * DeclarationExp::toElem: Appender!string w = appender(); | T=void * * * * * * * DtoDeclarationExp: w * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = Appender!string) * * * * * * * * * llvm value for decl: %w = alloca %"std.array.Appender!string.Appender", align 8 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: w = appender() | (Appender!string)(Appender!string = Appender!string) * * * * * * * * * * VarExp::toElem: w @ Appender!string * * * * * * * * * * * DtoSymbolAddress ('w' of type 'Appender!string') * * * * * * * * * * * * a normal variable * * * * * * * * * * CallExp::toElem: appender() @ Appender!string * * * * * * * * * * * VarExp::toElem: appender @ pure nothrow @safe Appender!string() * * * * * * * * * * * * DtoSymbolAddress ('appender' of type 'pure nothrow @safe Appender!string()') * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * Function type: pure nothrow @safe Appender!string() * * * * * * * * * * * * Storing return value to stack slot * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(6526) * * * * * * DeclarationExp::toElem: uint n = formattedWrite(w, fmt, _param_1, _param_2); | T=void * * * * * * * DtoDeclarationExp: n * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = uint) * * * * * * * * * has nestedref set (referenced by nested function/delegate) * * * * * * * * * llvm value for decl: %n = getelementptr %nest.format.7, %nest.format.7* %.frame, i32 0, i32 0 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: n = formattedWrite(w, fmt, _param_1, _param_2) | (uint)(uint = uint) * * * * * * * * * * VarExp::toElem: n @ uint * * * * * * * * * * * DtoSymbolAddress ('n' of type 'uint') * * * * * * * * * * * * nested variable * * * * * * * * * * * * DtoNestedVariable for n @ /usr/include/dlang/ldc/std/format.d(6526) * * * * * * * * * * CallExp::toElem: formattedWrite(w, fmt, _param_1, _param_2) @ uint * * * * * * * * * * * VarExp::toElem: formattedWrite @ pure @safe uint(Appender!string w, const(char[]) fmt, string _param_2, char _param_3) * * * * * * * * * * * * DtoSymbolAddress ('formattedWrite' of type 'pure @safe uint(Appender!string w, const(char[]) fmt, string _param_2, char _param_3)') * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * DtoFunctionType(pure @safe uint(Appender!string w, const(char[]) fmt, string _param_2, char _param_3)) * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * Final function type: i32 (i8, { i64, i8* }, { i64, i8* }, %"std.array.Appender!string.Appender") * * * * * * * * * * * * * DtoResolveFunction(std.format.formattedWrite!(Appender!string, char, string, char).formattedWrite): /usr/include/dlang/ldc/std/format.d(420) * * * * * * * * * * * * * * DtoDeclareFunction(std.format.formattedWrite!(Appender!string, char, string, char).formattedWrite): /usr/include/dlang/ldc/std/format.d(420) * * * * * * * * * * * * * * * DtoFunctionType(pure @safe uint(Appender!string w, const(char[]) fmt, string _param_2, char _param_3)) * * * * * * * * * * * * * * * func = declare i32 @_D3std6format68__T14formattedWriteTS3std5array17__T8AppenderTAyaZ8AppenderTaTAyaTaZ14formattedWriteFNaNfS3std5array17__T8AppenderTAyaZ8AppenderxAaAyaaZk(i8, { i64, i8* }, { i64, i8* }, %"std.array.Appender!string.Appender") * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * Building type: pure @safe uint(Appender!string w, const(char[]) fmt, string _param_2, char _param_3) * * * * * * * * * * * * * DtoFunctionType(pure @safe uint(Appender!string w, const(char[]) fmt, string _param_2, char _param_3)) * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * Final function type: i32 (i8, { i64, i8* }, { i64, i8* }, %"std.array.Appender!string.Appender") * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * Function type: pure @safe uint(Appender!string w, const(char[]) fmt, string _param_2, char _param_3) * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * VarExp::toElem: w @ Appender!string * * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'Appender!string') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * VarExp::toElem: fmt @ const(char[]) * * * * * * * * * * * * * * DtoSymbolAddress ('fmt' of type 'const(char[])') * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * type: const(char[]) * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * VarExp::toElem: _param_1 @ string * * * * * * * * * * * * * * DtoSymbolAddress ('_param_1' of type 'string') * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * type: string * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * VarExp::toElem: _param_2 @ char * * * * * * * * * * * * * * DtoSymbolAddress ('_param_2' of type 'char') * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * type: char * * * * * * * * * * * * Loading struct type for function argument * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %n = getelementptr %nest.format.7, %nest.format.7* %.frame, i32 0, i32 0 * * * * * * * * * * * rhs: %9 = call i32 @_D3std6format68__T14formattedWriteTS3std5array17__T8AppenderTAyaZ8AppenderTaTAyaTaZ14formattedWriteFNaNfS3std5array17__T8AppenderTAyaZ8AppenderxAaAyaaZk(i8 %8, { i64, i8* } %7, { i64, i8* } %6, %"std.array.Appender!string.Appender" %5) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(6533) * * * * * * CallExp::toElem: enforce(cast(ulong)n == 2LU, delegate Throwable() => new FormatException(text("Orphan format arguments: args[", n, "..", 2LU, "]"), "/usr/include/dlang/ldc/std/format.d", 6533LU, null)) @ bool * * * * * * * VarExp::toElem: enforce @ pure @safe bool(bool value, lazy Throwable ex) * * * * * * * * DtoSymbolAddress ('enforce' of type 'pure @safe bool(bool value, lazy Throwable ex)') * * * * * * * * * FuncDeclaration * * * * * * * DtoCallFunction() * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (0) * * * * * * * * Function type: pure @safe bool(bool value, lazy Throwable ex) * * * * * * * * DtoArgument * * * * * * * * * EqualExp::toElem: cast(ulong)n == 2LU @ bool * * * * * * * * * * CastExp::toElem: cast(ulong)n @ ulong * * * * * * * * * * * VarExp::toElem: n @ uint * * * * * * * * * * * * DtoSymbolAddress ('n' of type 'uint') * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * DtoNestedVariable for n @ /usr/include/dlang/ldc/std/format.d(6533) * * * * * * * * * * * Casting from 'uint' to 'ulong' * * * * * * * * * * * * cast to: i64 * * * * * * * * * * IntegerExp::toElem: 2LU @ ulong * * * * * * * * * * * IntegerExp::toConstElem: 2LU @ ulong * * * * * * * * * * * * value = i64 2 * * * * * * * * * * integral or pointer or interface * * * * * * * * * * lv: %11 = zext i32 %10 to i64 * * * * * * * * * * rv: i64 2 * * * * * * * * DtoArgument * * * * * * * * * FuncExp::toElem: __dgliteral5 @ Throwable delegate() pure nothrow @safe * * * * * * * * * * nested * * * * * * * * * * kind = delegate * * * * * * * * * * DtoDefineFunction(std.format.format!(char, string, char).format.__dgliteral5): /usr/include/dlang/ldc/std/format.d(6533) * * * * * * * * * * * DtoFunctionType(pure nothrow @safe Throwable()) * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * Final function type: %object.Throwable* (i8*) * * * * * * * * * * * DtoResolveFunction(std.format.format!(char, string, char).format.__dgliteral5): /usr/include/dlang/ldc/std/format.d(6533) * * * * * * * * * * * * DtoDeclareFunction(std.format.format!(char, string, char).format.__dgliteral5): /usr/include/dlang/ldc/std/format.d(6533) * * * * * * * * * * * * * DtoFunctionType(pure nothrow @safe Throwable()) * * * * * * * * * * * * * func = declare %object.Throwable* @_D3std6format19__T6formatTaTAyaTaZ6formatFxAaAyaaZ12__dgliteral5MFNaNbNfZC6object9Throwable(i8*) * * * * * * * * * * * Doing function body for: __dgliteral5 * * * * * * * * * * * DtoCreateNestedContext for __dgliteral5 * * * * * * * * * * * * DtoCreateNestedContextType for std.format.format!(char, string, char).format.__dgliteral5 * * * * * * * * * * * * * DtoCreateNestedContextType for std.format.format!(char, string, char).format * * * * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/format.d(6533) * * * * * * * * * * * * * NewExp::toElem: new FormatException(text("Orphan format arguments: args[", n, "..", 2LU, "]"), "/usr/include/dlang/ldc/std/format.d", 6533LU, null) @ object.Throwable * * * * * * * * * * * * * * new class * * * * * * * * * * * * * * Calling constructor * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * %.newclass_gc = bitcast %object.Object* %.newclass_gc_alloc to %std.format.FormatException* * * * * * * * * * * * * * * * Function type: pure nothrow @safe FormatException(string msg, string fn = __FILE__, ulong ln = cast(ulong)__LINE__, Throwable next = null) * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * CallExp::toElem: text("Orphan format arguments: args[", n, "..", 2LU, "]") @ string * * * * * * * * * * * * * * * * * VarExp::toElem: text @ pure nothrow @safe string(string _param_0, uint _param_1, string _param_2, ulong _param_3, string _param_4) * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('text' of type 'pure nothrow @safe string(string _param_0, uint _param_1, string _param_2, ulong _param_3, string _param_4)') * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * Function type: pure nothrow @safe string(string _param_0, uint _param_1, string _param_2, ulong _param_3, string _param_4) * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * StringExp::toElem: "Orphan format arguments: args[" @ string * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * VarExp::toElem: n @ uint * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('n' of type 'uint') * * * * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for n @ /usr/include/dlang/ldc/std/format.d(6534) * * * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for std.format.format!(char, string, char).format * * * * * * * * * * * * * * * * * * * * * * Context: %6 = bitcast i8* %5 to %nest.format.7* * * * * * * * * * * * * * * * * * * * * * * of type: %nest.format.7 = type { i32 } * * * * * * * * * * * * * * * * * * * * * * Variable: n * * * * * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * * * * * Function: __dgliteral5 * * * * * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * * * * * Addr: %n = getelementptr %nest.format.7, %nest.format.7* %6, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * * * * of type: i32* * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * StringExp::toElem: ".." @ string * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 2LU @ ulong * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 2LU @ ulong * * * * * * * * * * * * * * * * * * * * * value = i64 2 * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * StringExp::toElem: "]" @ string * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * StringExp::toElem: "/usr/include/dlang/ldc/std/format.d" @ string * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * IntegerExp::toElem: 6533LU @ ulong * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 6533LU @ ulong * * * * * * * * * * * * * * * * * * value = i64 6533 * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * NullExp::toElem(type=object.Throwable): null * * * * * * * * * * * * * * * * * NullExp::toConstElem(type=object.Throwable): null * * * * * * * * * * * * * * * Rewrite: putParam * * * * * * * * * * * * * return value is '0x12a86600' * * * * * * * * * * * * * return value after cast: %10 = bitcast %std.format.FormatException* %9 to %object.Throwable* * * * * * * * * * * Building type: Throwable delegate() pure nothrow @safe * * * * * * * * * * * DtoFunctionType(pure nothrow @safe Throwable()) * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * Final function type: %object.Throwable* (i8*) * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/format.d(6536) * * * * * * CallExp::toElem: w.data() @ string * * * * * * * DotVarExp::toElem: w.data @ inout pure nothrow @nogc @property @trusted string() * * * * * * * * VarExp::toElem: w @ Appender!string * * * * * * * * * DtoSymbolAddress ('w' of type 'Appender!string') * * * * * * * * * * a normal variable * * * * * * * DtoCallFunction() * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (1) * * * * * * * * * %w = alloca %"std.array.Appender!string.Appender", align 8 * * * * * * * * Function type: inout pure nothrow @nogc @property @trusted string() * * * * * * return value is '0x12a86fc0' * TemplateInstance::codegen: 'std.format.formattedWrite!(Appender!string, char, string, char)' * * DtoDefineFunction(std.format.formattedWrite!(Appender!string, char, string, char).formattedWrite): /usr/include/dlang/ldc/std/format.d(420) * * * Doing function body for: formattedWrite * * * DtoCreateNestedContext for formattedWrite * * * * DtoCreateNestedContextType for std.format.formattedWrite!(Appender!string, char, string, char).formattedWrite * * * * * has nested frame * * * * * Function formattedWrite has depth 0 * * * * * Nested var 'spec' of type %"std.format.FormatSpec!char.FormatSpec" = type { i32, i32, i8, i8, i8, i8, [4 x i8], { i64, i8* }, { i64, i8* }, { i64, i8* } } * * * * * frameType = %nest.formattedWrite.8 = type { %"std.format.FormatSpec!char.FormatSpec" } * * * * nested var: spec * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(421) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(424) * * * * * * DeclarationExp::toElem: alias FPfmt = void function(Appender!string, const(void)*, ref FormatSpec!char) pure nothrow @safe; | T=void * * * * * * * DtoDeclarationExp: FPfmt * * * * * * * * Ignoring Symbol: alias * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(426) * * * * * * DeclarationExp::toElem: FormatSpec!char spec = spec = FormatSpec , spec.this(fmt); | T=void * * * * * * * DtoDeclarationExp: spec * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = FormatSpec!char) * * * * * * * * * has nestedref set (referenced by nested function/delegate) * * * * * * * * * llvm value for decl: %spec = getelementptr %nest.formattedWrite.8, %nest.formattedWrite.8* %.frame, i32 0, i32 0 * * * * * * * * * expression initializer * * * * * * * * * CommaExp::toElem: spec = FormatSpec , spec.this(fmt) @ FormatSpec!char * * * * * * * * * * AssignExp::toElem: spec = FormatSpec | (FormatSpec!char)(FormatSpec!char = FormatSpec!char) * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(426) * * * * * * * * * * * VarExp::toElem: FormatSpec @ FormatSpec!char * * * * * * * * * * * * DtoSymbolAddress ('FormatSpec' of type 'FormatSpec!char') * * * * * * * * * * * * * Sym: type=FormatSpec!char * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * DtoAssign() * * * * * * * * * * CallExp::toElem: spec.this(fmt) @ FormatSpec!char * * * * * * * * * * * DotVarExp::toElem: spec.this @ pure nothrow @nogc ref @safe FormatSpec!char(const(char[]) fmt) * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(426) * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * %spec = getelementptr %nest.formattedWrite.8, %nest.formattedWrite.8* %.frame, i32 0, i32 0 * * * * * * * * * * * * Function type: pure nothrow @nogc ref @safe FormatSpec!char(const(char[]) fmt) * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * VarExp::toElem: fmt @ const(char[]) * * * * * * * * * * * * * * DtoSymbolAddress ('fmt' of type 'const(char[])') * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * type: const(char[]) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(428) * * * * * * DeclarationExp::toElem: void function(Appender!string, const(void)*, ref FormatSpec!char) pure nothrow @safe[2] funs = null; | T=void * * * * * * * DtoDeclarationExp: funs * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = void function(Appender!string, const(void)*, ref FormatSpec!char) pure nothrow @safe[2]) * * * * * * * * * Building type: void function(Appender!string, const(void)*, ref FormatSpec!char) pure nothrow @safe[2] * * * * * * * * * * Building type: void function(Appender!string, const(void)*, ref FormatSpec!char) pure nothrow @safe * * * * * * * * * * * Building type: pure nothrow @safe void(Appender!string, const(void)*, ref FormatSpec!char) * * * * * * * * * * * * DtoFunctionType(pure nothrow @safe void(Appender!string, const(void)*, ref FormatSpec!char)) * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * Final function type: void (%"std.format.FormatSpec!char.FormatSpec"*, i8*, %"std.array.Appender!string.Appender") * * * * * * * * * llvm value for decl: %funs = alloca [2 x void (%"std.format.FormatSpec!char.FormatSpec"*, i8*, %"std.array.Appender!string.Appender")*], align 8 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: funs[] = null | (void function(Appender!string, const(void)*, ref FormatSpec!char) pure nothrow @safe[])(void function(Appender!string, const(void)*, ref FormatSpec!char) pure nothrow @safe[] = void function(Appender!string, const(void)*, ref FormatSpec!char) pure nothrow @safe) * * * * * * * * * * performing static array literal assignment * * * * * * * * * * SliceExp::toElem: funs[] @ void function(Appender!string, const(void)*, ref FormatSpec!char) pure nothrow @safe[] * * * * * * * * * * * VarExp::toElem: funs @ void function(Appender!string, const(void)*, ref FormatSpec!char) pure nothrow @safe[2] * * * * * * * * * * * * DtoSymbolAddress ('funs' of type 'void function(Appender!string, const(void)*, ref FormatSpec!char) pure nothrow @safe[2]') * * * * * * * * * * * * * a normal variable * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * Building type: void function(Appender!string, const(void)*, ref FormatSpec!char) pure nothrow @safe* * * * * * * * * * * NullExp::toElem(type=void function(Appender!string, const(void)*, ref FormatSpec!char) pure nothrow @safe): null * * * * * * * * * * * NullExp::toConstElem(type=void function(Appender!string, const(void)*, ref FormatSpec!char) pure nothrow @safe): null * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * Building type: void function(Appender!string, const(void)*, ref FormatSpec!char) pure nothrow @safe * * * * * * * * * * * * * * Building type: pure nothrow @safe void(Appender!string, const(void)*, ref FormatSpec!char) * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @safe void(Appender!string, const(void)*, ref FormatSpec!char)) * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * Final function type: void (%"std.format.FormatSpec!char.FormatSpec"*, i8*, %"std.array.Appender!string.Appender") * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * DtoArrayInit * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(429) * * * * * * DeclarationExp::toElem: const(void)*[2] argsAddresses = null; | T=void * * * * * * * DtoDeclarationExp: argsAddresses * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = const(void)*[2]) * * * * * * * * * llvm value for decl: %argsAddresses = alloca [2 x i8*], align 8 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: argsAddresses[] = null | (const(void)*[])(const(void)*[] = const(void)*) * * * * * * * * * * performing static array literal assignment * * * * * * * * * * SliceExp::toElem: argsAddresses[] @ const(void)*[] * * * * * * * * * * * VarExp::toElem: argsAddresses @ const(void)*[2] * * * * * * * * * * * * DtoSymbolAddress ('argsAddresses' of type 'const(void)*[2]') * * * * * * * * * * * * * a normal variable * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * NullExp::toElem(type=const(void)*): null * * * * * * * * * * * NullExp::toConstElem(type=const(void)*): null * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * DtoArrayInit * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(430) * * * * * * NotExp::toElem: !__ctfe @ bool * * * * * * * VarExp::toElem: __ctfe @ bool * * * * * * * * DtoSymbolAddress ('__ctfe' of type 'bool') * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(431) * * * * * * * UnrolledLoopStatement::toIR(): /usr/include/dlang/ldc/std/format.d(432) * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(432) * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(432) * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(432) * * * * * * * * * * * DeclarationExp::toElem: enum ulong i = 0LU; | T=void * * * * * * * * * * * * DtoDeclarationExp: i * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * Manifest constant, nothing to do. * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(432) * * * * * * * * * * * DeclarationExp::toElem: alias Arg = string; | T=void * * * * * * * * * * * * DtoDeclarationExp: Arg * * * * * * * * * * * * * Ignoring Symbol: alias * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(434) * * * * * * * * * * * AssignExp::toElem: funs[0] = (*() => & formatGeneric)() | (void function(Appender!string, const(void)*, ref FormatSpec!char) pure nothrow @safe)(void function(Appender!string, const(void)*, ref FormatSpec!char) pure nothrow @safe = void function(Appender!string, const(void)*, ref FormatSpec!char) pure nothrow @safe) * * * * * * * * * * * * IndexExp::toElem: funs[0] @ void function(Appender!string, const(void)*, ref FormatSpec!char) pure nothrow @safe * * * * * * * * * * * * * VarExp::toElem: funs @ void function(Appender!string, const(void)*, ref FormatSpec!char) pure nothrow @safe[2] * * * * * * * * * * * * * * DtoSymbolAddress ('funs' of type 'void function(Appender!string, const(void)*, ref FormatSpec!char) pure nothrow @safe[2]') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * CallExp::toElem: (*() => & formatGeneric)() @ void function(Appender!string, const(void)*, ref FormatSpec!char) pure nothrow @safe * * * * * * * * * * * * * PtrExp::toElem: *() => & formatGeneric @ pure nothrow @nogc @trusted void function(Appender!string, const(void)*, ref FormatSpec!char) pure nothrow @safe() * * * * * * * * * * * * * * FuncExp::toElem: __lambda6 @ void function(Appender!string, const(void)*, ref FormatSpec!char) pure nothrow @safe function() pure nothrow @nogc @trusted * * * * * * * * * * * * * * * kind = function * * * * * * * * * * * * * * * DtoDefineFunction(std.format.formattedWrite!(Appender!string, char, string, char).formattedWrite.__lambda6): /usr/include/dlang/ldc/std/format.d(434) * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted void function(Appender!string, const(void)*, ref FormatSpec!char) pure nothrow @safe()) * * * * * * * * * * * * * * * * * Building type: void function(Appender!string, const(void)*, ref FormatSpec!char) pure nothrow @safe * * * * * * * * * * * * * * * * * * Building type: pure nothrow @safe void(Appender!string, const(void)*, ref FormatSpec!char) * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @safe void(Appender!string, const(void)*, ref FormatSpec!char)) * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * Final function type: void (%"std.format.FormatSpec!char.FormatSpec"*, i8*, %"std.array.Appender!string.Appender") * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * Final function type: void (%"std.format.FormatSpec!char.FormatSpec"*, i8*, %"std.array.Appender!string.Appender")* () * * * * * * * * * * * * * * * * DtoResolveFunction(std.format.formattedWrite!(Appender!string, char, string, char).formattedWrite.__lambda6): /usr/include/dlang/ldc/std/format.d(434) * * * * * * * * * * * * * * * * * DtoDeclareFunction(std.format.formattedWrite!(Appender!string, char, string, char).formattedWrite.__lambda6): /usr/include/dlang/ldc/std/format.d(434) * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted void function(Appender!string, const(void)*, ref FormatSpec!char) pure nothrow @safe()) * * * * * * * * * * * * * * * * * * func = declare void (%"std.format.FormatSpec!char.FormatSpec"*, i8*, %"std.array.Appender!string.Appender")* @_D3std6format68__T14formattedWriteTS3std5array17__T8AppenderTAyaZ8AppenderTaTAyaTaZ14formattedWriteFS3std5array17__T8AppenderTAyaZ8AppenderxAaAyaaZ9__lambda6FNaNbNiNeZPFNaNbNfS3std5array17__T8AppenderTAyaZ8AppenderPxvKS3std6format18__T10FormatSpecTaZ10FormatSpecZv() * * * * * * * * * * * * * * * * Doing function body for: __lambda6 * * * * * * * * * * * * * * * * DtoCreateNestedContext for __lambda6 * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for std.format.formattedWrite!(Appender!string, char, string, char).formattedWrite.__lambda6 * * * * * * * * * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * * * * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/format.d(434) * * * * * * * * * * * * * * * * * * SymOffExp::toElem: & formatGeneric @ void function(Appender!string, const(void)*, ref FormatSpec!char) pure nothrow @safe * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('formatGeneric' of type 'pure @system void(Appender!string w, const(void)* arg, ref FormatSpec!char f)') * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure @system void(Appender!string w, const(void)* arg, ref FormatSpec!char f)) * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * * Final function type: void (%"std.format.FormatSpec!char.FormatSpec"*, i8*, %"std.array.Appender!string.Appender") * * * * * * * * * * * * * * * * * * * * DtoResolveFunction(std.format.formatGeneric!(Appender!string, string, char).formatGeneric): /usr/include/dlang/ldc/std/format.d(3455) * * * * * * * * * * * * * * * * * * * * * DtoDeclareFunction(std.format.formatGeneric!(Appender!string, string, char).formatGeneric): /usr/include/dlang/ldc/std/format.d(3455) * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure @system void(Appender!string w, const(void)* arg, ref FormatSpec!char f)) * * * * * * * * * * * * * * * * * * * * * * func = declare void @_D3std6format65__T13formatGenericTS3std5array17__T8AppenderTAyaZ8AppenderTAyaTaZ13formatGenericFNaS3std5array17__T8AppenderTAyaZ8AppenderPxvKS3std6format18__T10FormatSpecTaZ10FormatSpecZv(%"std.format.FormatSpec!char.FormatSpec"*, i8*, %"std.array.Appender!string.Appender") * * * * * * * * * * * * * * * * * * * Casting from 'void function(Appender!string w, const(void)* arg, ref FormatSpec!char f) pure @system' to 'void function(Appender!string, const(void)*, ref FormatSpec!char) pure nothrow @safe' * * * * * * * * * * * * * * * * * * * * src: declare void @_D3std6format65__T13formatGenericTS3std5array17__T8AppenderTAyaZ8AppenderTAyaTaZ13formatGenericFNaS3std5array17__T8AppenderTAyaZ8AppenderPxvKS3std6format18__T10FormatSpecTaZ10FormatSpecZv(%"std.format.FormatSpec!char.FormatSpec"*, i8*, %"std.array.Appender!string.Appender") * * * * * * * * * * * * * * * * * * * * to type: void (%"std.format.FormatSpec!char.FormatSpec"*, i8*, %"std.array.Appender!string.Appender")* * * * * * * * * * * * * * * * * * * return value is '0x12a94d88' * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * Building type: pure nothrow @nogc @trusted void function(Appender!string, const(void)*, ref FormatSpec!char) pure nothrow @safe() * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted void function(Appender!string, const(void)*, ref FormatSpec!char) pure nothrow @safe()) * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * Final function type: void (%"std.format.FormatSpec!char.FormatSpec"*, i8*, %"std.array.Appender!string.Appender")* () * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * Function type: pure nothrow @nogc @trusted void function(Appender!string, const(void)*, ref FormatSpec!char) pure nothrow @safe() * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * lhs: %10 = getelementptr [2 x void (%"std.format.FormatSpec!char.FormatSpec"*, i8*, %"std.array.Appender!string.Appender")*], [2 x void (%"std.format.FormatSpec!char.FormatSpec"*, i8*, %"std.array.Appender!string.Appender")*]* %funs, i32 0, i64 0 * * * * * * * * * * * * * rhs: %11 = call void (%"std.format.FormatSpec!char.FormatSpec"*, i8*, %"std.array.Appender!string.Appender")* @_D3std6format68__T14formattedWriteTS3std5array17__T8AppenderTAyaZ8AppenderTaTAyaTaZ14formattedWriteFS3std5array17__T8AppenderTAyaZ8AppenderxAaAyaaZ9__lambda6FNaNbNiNeZPFNaNbNfS3std5array17__T8AppenderTAyaZ8AppenderPxvKS3std6format18__T10FormatSpecTaZ10FormatSpecZv() * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(437) * * * * * * * * * * * AssignExp::toElem: argsAddresses[0] = (*(ref string arg) => cast(const(void*))&arg)(_param_2) | (const(void)*)(const(void)* = const(void)*) * * * * * * * * * * * * IndexExp::toElem: argsAddresses[0] @ const(void)* * * * * * * * * * * * * * VarExp::toElem: argsAddresses @ const(void)*[2] * * * * * * * * * * * * * * DtoSymbolAddress ('argsAddresses' of type 'const(void)*[2]') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * CallExp::toElem: (*(ref string arg) => cast(const(void*))&arg)(_param_2) @ const(void)* * * * * * * * * * * * * * PtrExp::toElem: *(ref string arg) => cast(const(void*))&arg @ pure nothrow @nogc @trusted const(void*)(ref string arg) * * * * * * * * * * * * * * FuncExp::toElem: __lambda7 @ const(void*) function(ref string arg) pure nothrow @nogc @trusted * * * * * * * * * * * * * * * kind = function * * * * * * * * * * * * * * * DtoDefineFunction(std.format.formattedWrite!(Appender!string, char, string, char).formattedWrite.__lambda7): /usr/include/dlang/ldc/std/format.d(437) * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted const(void*)(ref string arg)) * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * Final function type: i8* ({ i64, i8* }*) * * * * * * * * * * * * * * * * DtoResolveFunction(std.format.formattedWrite!(Appender!string, char, string, char).formattedWrite.__lambda7): /usr/include/dlang/ldc/std/format.d(437) * * * * * * * * * * * * * * * * * DtoDeclareFunction(std.format.formattedWrite!(Appender!string, char, string, char).formattedWrite.__lambda7): /usr/include/dlang/ldc/std/format.d(437) * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted const(void*)(ref string arg)) * * * * * * * * * * * * * * * * * * func = declare i8* @_D3std6format68__T14formattedWriteTS3std5array17__T8AppenderTAyaZ8AppenderTaTAyaTaZ14formattedWriteFS3std5array17__T8AppenderTAyaZ8AppenderxAaAyaaZ18__T9__lambda7TAyaZ9__lambda7FNaNbNiNeKAyaZxPv({ i64, i8* }*) * * * * * * * * * * * * * * * * Doing function body for: __lambda7 * * * * * * * * * * * * * * * * DtoCreateNestedContext for __lambda7 * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for std.format.formattedWrite!(Appender!string, char, string, char).formattedWrite.__lambda7 * * * * * * * * * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * * * * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/format.d(437) * * * * * * * * * * * * * * * * * * CastExp::toElem: cast(const(void*))&arg @ const(void*) * * * * * * * * * * * * * * * * * * * AddrExp::toElem: &arg @ string* * * * * * * * * * * * * * * * * * * * * VarExp::toElem: arg @ string * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('arg' of type 'string') * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * type: string * * * * * * * * * * * * * * * * * * * * is nothing special * * * * * * * * * * * * * * * * * * * * lval: { i64, i8* }* %arg_arg * * * * * * * * * * * * * * * * * * * Casting from 'string*' to 'const(void*)' * * * * * * * * * * * * * * * * * * * * src: { i64, i8* }* %arg_arg * * * * * * * * * * * * * * * * * * * * to type: i8* * * * * * * * * * * * * * * * * * * return value is '0x12a98418' * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * Building type: pure nothrow @nogc @trusted const(void*)(ref string arg) * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted const(void*)(ref string arg)) * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * Final function type: i8* ({ i64, i8* }*) * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * Function type: pure nothrow @nogc @trusted const(void*)(ref string arg) * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * VarExp::toElem: _param_2 @ string * * * * * * * * * * * * * * * * DtoSymbolAddress ('_param_2' of type 'string') * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * type: string * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * lhs: %12 = getelementptr [2 x i8*], [2 x i8*]* %argsAddresses, i32 0, i64 0 * * * * * * * * * * * * * rhs: %13 = call i8* @_D3std6format68__T14formattedWriteTS3std5array17__T8AppenderTAyaZ8AppenderTaTAyaTaZ14formattedWriteFS3std5array17__T8AppenderTAyaZ8AppenderxAaAyaaZ18__T9__lambda7TAyaZ9__lambda7FNaNbNiNeKAyaZxPv({ i64, i8* }* %_param_2) * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(440) * * * * * * * * * * * IntegerExp::toElem: 0 @ int * * * * * * * * * * * * IntegerExp::toConstElem: 0 @ int * * * * * * * * * * * * * value = i32 0 * * * * * * * * * * * if conditional: i32 0 * * * * * * * * * * * Casting from 'int' to 'bool' * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(440) * * * * * * * * * * * * CallExp::toElem: formatValue(w, _param_2, spec) @ void * * * * * * * * * * * * * VarExp::toElem: formatValue @ pure @safe void(Appender!string w, string obj, ref FormatSpec!char f) * * * * * * * * * * * * * * DtoSymbolAddress ('formatValue' of type 'pure @safe void(Appender!string w, string obj, ref FormatSpec!char f)') * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * DtoFunctionType(pure @safe void(Appender!string w, string obj, ref FormatSpec!char f)) * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * Final function type: void (%"std.format.FormatSpec!char.FormatSpec"*, { i64, i8* }, %"std.array.Appender!string.Appender") * * * * * * * * * * * * * * * DtoResolveFunction(std.format.formatValue!(Appender!string, string, char).formatValue): /usr/include/dlang/ldc/std/format.d(1978) * * * * * * * * * * * * * * * * DtoDeclareFunction(std.format.formatValue!(Appender!string, string, char).formatValue): /usr/include/dlang/ldc/std/format.d(1978) * * * * * * * * * * * * * * * * * DtoFunctionType(pure @safe void(Appender!string w, string obj, ref FormatSpec!char f)) * * * * * * * * * * * * * * * * * func = declare void @_D3std6format63__T11formatValueTS3std5array17__T8AppenderTAyaZ8AppenderTAyaTaZ11formatValueFNaNfS3std5array17__T8AppenderTAyaZ8AppenderAyaKS3std6format18__T10FormatSpecTaZ10FormatSpecZv(%"std.format.FormatSpec!char.FormatSpec"*, { i64, i8* }, %"std.array.Appender!string.Appender") * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * Building type: pure @safe void(Appender!string w, string obj, ref FormatSpec!char f) * * * * * * * * * * * * * * * DtoFunctionType(pure @safe void(Appender!string w, string obj, ref FormatSpec!char f)) * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * Final function type: void (%"std.format.FormatSpec!char.FormatSpec"*, { i64, i8* }, %"std.array.Appender!string.Appender") * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * Function type: pure @safe void(Appender!string w, string obj, ref FormatSpec!char f) * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * VarExp::toElem: w @ Appender!string * * * * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'Appender!string') * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * type: Appender!string * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * VarExp::toElem: _param_2 @ string * * * * * * * * * * * * * * * * DtoSymbolAddress ('_param_2' of type 'string') * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * type: string * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(440) * * * * * * * * * * * * * * Loading struct type for function argument * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(432) * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(432) * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(432) * * * * * * * * * * * DeclarationExp::toElem: enum ulong i = 1LU; | T=void * * * * * * * * * * * * DtoDeclarationExp: i * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * Manifest constant, nothing to do. * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(432) * * * * * * * * * * * DeclarationExp::toElem: alias Arg = char; | T=void * * * * * * * * * * * * DtoDeclarationExp: Arg * * * * * * * * * * * * * Ignoring Symbol: alias * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(434) * * * * * * * * * * * AssignExp::toElem: funs[1] = (*() => & formatGeneric)() | (void function(Appender!string, const(void)*, ref FormatSpec!char) pure nothrow @safe)(void function(Appender!string, const(void)*, ref FormatSpec!char) pure nothrow @safe = void function(Appender!string, const(void)*, ref FormatSpec!char) pure nothrow @safe) * * * * * * * * * * * * IndexExp::toElem: funs[1] @ void function(Appender!string, const(void)*, ref FormatSpec!char) pure nothrow @safe * * * * * * * * * * * * * VarExp::toElem: funs @ void function(Appender!string, const(void)*, ref FormatSpec!char) pure nothrow @safe[2] * * * * * * * * * * * * * * DtoSymbolAddress ('funs' of type 'void function(Appender!string, const(void)*, ref FormatSpec!char) pure nothrow @safe[2]') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * CallExp::toElem: (*() => & formatGeneric)() @ void function(Appender!string, const(void)*, ref FormatSpec!char) pure nothrow @safe * * * * * * * * * * * * * PtrExp::toElem: *() => & formatGeneric @ pure nothrow @nogc @trusted void function(Appender!string, const(void)*, ref FormatSpec!char) pure nothrow @safe() * * * * * * * * * * * * * * FuncExp::toElem: __lambda8 @ void function(Appender!string, const(void)*, ref FormatSpec!char) pure nothrow @safe function() pure nothrow @nogc @trusted * * * * * * * * * * * * * * * kind = function * * * * * * * * * * * * * * * DtoDefineFunction(std.format.formattedWrite!(Appender!string, char, string, char).formattedWrite.__lambda8): /usr/include/dlang/ldc/std/format.d(434) * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted void function(Appender!string, const(void)*, ref FormatSpec!char) pure nothrow @safe()) * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * Final function type: void (%"std.format.FormatSpec!char.FormatSpec"*, i8*, %"std.array.Appender!string.Appender")* () * * * * * * * * * * * * * * * * DtoResolveFunction(std.format.formattedWrite!(Appender!string, char, string, char).formattedWrite.__lambda8): /usr/include/dlang/ldc/std/format.d(434) * * * * * * * * * * * * * * * * * DtoDeclareFunction(std.format.formattedWrite!(Appender!string, char, string, char).formattedWrite.__lambda8): /usr/include/dlang/ldc/std/format.d(434) * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted void function(Appender!string, const(void)*, ref FormatSpec!char) pure nothrow @safe()) * * * * * * * * * * * * * * * * * * func = declare void (%"std.format.FormatSpec!char.FormatSpec"*, i8*, %"std.array.Appender!string.Appender")* @_D3std6format68__T14formattedWriteTS3std5array17__T8AppenderTAyaZ8AppenderTaTAyaTaZ14formattedWriteFS3std5array17__T8AppenderTAyaZ8AppenderxAaAyaaZ9__lambda8FNaNbNiNeZPFNaNbNfS3std5array17__T8AppenderTAyaZ8AppenderPxvKS3std6format18__T10FormatSpecTaZ10FormatSpecZv() * * * * * * * * * * * * * * * * Doing function body for: __lambda8 * * * * * * * * * * * * * * * * DtoCreateNestedContext for __lambda8 * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for std.format.formattedWrite!(Appender!string, char, string, char).formattedWrite.__lambda8 * * * * * * * * * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * * * * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/format.d(434) * * * * * * * * * * * * * * * * * * SymOffExp::toElem: & formatGeneric @ void function(Appender!string, const(void)*, ref FormatSpec!char) pure nothrow @safe * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('formatGeneric' of type 'pure @system void(Appender!string w, const(void)* arg, ref FormatSpec!char f)') * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure @system void(Appender!string w, const(void)* arg, ref FormatSpec!char f)) * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * * Final function type: void (%"std.format.FormatSpec!char.FormatSpec"*, i8*, %"std.array.Appender!string.Appender") * * * * * * * * * * * * * * * * * * * * DtoResolveFunction(std.format.formatGeneric!(Appender!string, char, char).formatGeneric): /usr/include/dlang/ldc/std/format.d(3455) * * * * * * * * * * * * * * * * * * * * * DtoDeclareFunction(std.format.formatGeneric!(Appender!string, char, char).formatGeneric): /usr/include/dlang/ldc/std/format.d(3455) * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure @system void(Appender!string w, const(void)* arg, ref FormatSpec!char f)) * * * * * * * * * * * * * * * * * * * * * * func = declare void @_D3std6format63__T13formatGenericTS3std5array17__T8AppenderTAyaZ8AppenderTaTaZ13formatGenericFNaS3std5array17__T8AppenderTAyaZ8AppenderPxvKS3std6format18__T10FormatSpecTaZ10FormatSpecZv(%"std.format.FormatSpec!char.FormatSpec"*, i8*, %"std.array.Appender!string.Appender") * * * * * * * * * * * * * * * * * * * Casting from 'void function(Appender!string w, const(void)* arg, ref FormatSpec!char f) pure @system' to 'void function(Appender!string, const(void)*, ref FormatSpec!char) pure nothrow @safe' * * * * * * * * * * * * * * * * * * * * src: declare void @_D3std6format63__T13formatGenericTS3std5array17__T8AppenderTAyaZ8AppenderTaTaZ13formatGenericFNaS3std5array17__T8AppenderTAyaZ8AppenderPxvKS3std6format18__T10FormatSpecTaZ10FormatSpecZv(%"std.format.FormatSpec!char.FormatSpec"*, i8*, %"std.array.Appender!string.Appender") * * * * * * * * * * * * * * * * * * * * to type: void (%"std.format.FormatSpec!char.FormatSpec"*, i8*, %"std.array.Appender!string.Appender")* * * * * * * * * * * * * * * * * * * return value is '0x12aa1498' * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * Building type: pure nothrow @nogc @trusted void function(Appender!string, const(void)*, ref FormatSpec!char) pure nothrow @safe() * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted void function(Appender!string, const(void)*, ref FormatSpec!char) pure nothrow @safe()) * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * Final function type: void (%"std.format.FormatSpec!char.FormatSpec"*, i8*, %"std.array.Appender!string.Appender")* () * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * Function type: pure nothrow @nogc @trusted void function(Appender!string, const(void)*, ref FormatSpec!char) pure nothrow @safe() * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * lhs: %14 = getelementptr [2 x void (%"std.format.FormatSpec!char.FormatSpec"*, i8*, %"std.array.Appender!string.Appender")*], [2 x void (%"std.format.FormatSpec!char.FormatSpec"*, i8*, %"std.array.Appender!string.Appender")*]* %funs, i32 0, i64 1 * * * * * * * * * * * * * rhs: %15 = call void (%"std.format.FormatSpec!char.FormatSpec"*, i8*, %"std.array.Appender!string.Appender")* @_D3std6format68__T14formattedWriteTS3std5array17__T8AppenderTAyaZ8AppenderTaTAyaTaZ14formattedWriteFS3std5array17__T8AppenderTAyaZ8AppenderxAaAyaaZ9__lambda8FNaNbNiNeZPFNaNbNfS3std5array17__T8AppenderTAyaZ8AppenderPxvKS3std6format18__T10FormatSpecTaZ10FormatSpecZv() * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(437) * * * * * * * * * * * AssignExp::toElem: argsAddresses[1] = (*(ref char arg) => cast(const(void*))&arg)(_param_3) | (const(void)*)(const(void)* = const(void)*) * * * * * * * * * * * * IndexExp::toElem: argsAddresses[1] @ const(void)* * * * * * * * * * * * * * VarExp::toElem: argsAddresses @ const(void)*[2] * * * * * * * * * * * * * * DtoSymbolAddress ('argsAddresses' of type 'const(void)*[2]') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * CallExp::toElem: (*(ref char arg) => cast(const(void*))&arg)(_param_3) @ const(void)* * * * * * * * * * * * * * PtrExp::toElem: *(ref char arg) => cast(const(void*))&arg @ pure nothrow @nogc @trusted const(void*)(ref char arg) * * * * * * * * * * * * * * FuncExp::toElem: __lambda9 @ const(void*) function(ref char arg) pure nothrow @nogc @trusted * * * * * * * * * * * * * * * kind = function * * * * * * * * * * * * * * * DtoDefineFunction(std.format.formattedWrite!(Appender!string, char, string, char).formattedWrite.__lambda9): /usr/include/dlang/ldc/std/format.d(437) * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted const(void*)(ref char arg)) * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * Final function type: i8* (i8*) * * * * * * * * * * * * * * * * DtoResolveFunction(std.format.formattedWrite!(Appender!string, char, string, char).formattedWrite.__lambda9): /usr/include/dlang/ldc/std/format.d(437) * * * * * * * * * * * * * * * * * DtoDeclareFunction(std.format.formattedWrite!(Appender!string, char, string, char).formattedWrite.__lambda9): /usr/include/dlang/ldc/std/format.d(437) * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted const(void*)(ref char arg)) * * * * * * * * * * * * * * * * * * func = declare i8* @_D3std6format68__T14formattedWriteTS3std5array17__T8AppenderTAyaZ8AppenderTaTAyaTaZ14formattedWriteFS3std5array17__T8AppenderTAyaZ8AppenderxAaAyaaZ16__T9__lambda9TaZ9__lambda9FNaNbNiNeKaZxPv(i8*) * * * * * * * * * * * * * * * * Doing function body for: __lambda9 * * * * * * * * * * * * * * * * DtoCreateNestedContext for __lambda9 * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for std.format.formattedWrite!(Appender!string, char, string, char).formattedWrite.__lambda9 * * * * * * * * * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * * * * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/format.d(437) * * * * * * * * * * * * * * * * * * CastExp::toElem: cast(const(void*))&arg @ const(void*) * * * * * * * * * * * * * * * * * * * AddrExp::toElem: &arg @ char* * * * * * * * * * * * * * * * * * * * * VarExp::toElem: arg @ char * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('arg' of type 'char') * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * type: char * * * * * * * * * * * * * * * * * * * * is nothing special * * * * * * * * * * * * * * * * * * * * lval: i8* %arg_arg * * * * * * * * * * * * * * * * * * * Casting from 'char*' to 'const(void*)' * * * * * * * * * * * * * * * * * * * * src: i8* %arg_arg * * * * * * * * * * * * * * * * * * * * to type: i8* * * * * * * * * * * * * * * * * * * return value is '0x12aa6450' * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * Building type: pure nothrow @nogc @trusted const(void*)(ref char arg) * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted const(void*)(ref char arg)) * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * Final function type: i8* (i8*) * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * Function type: pure nothrow @nogc @trusted const(void*)(ref char arg) * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * VarExp::toElem: _param_3 @ char * * * * * * * * * * * * * * * * DtoSymbolAddress ('_param_3' of type 'char') * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * type: char * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * lhs: %16 = getelementptr [2 x i8*], [2 x i8*]* %argsAddresses, i32 0, i64 1 * * * * * * * * * * * * * rhs: %17 = call i8* @_D3std6format68__T14formattedWriteTS3std5array17__T8AppenderTAyaZ8AppenderTaTAyaTaZ14formattedWriteFS3std5array17__T8AppenderTAyaZ8AppenderxAaAyaaZ16__T9__lambda9TaZ9__lambda9FNaNbNiNeKaZxPv(i8* %_param_3) * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(440) * * * * * * * * * * * IntegerExp::toElem: 0 @ int * * * * * * * * * * * * IntegerExp::toConstElem: 0 @ int * * * * * * * * * * * * * value = i32 0 * * * * * * * * * * * if conditional: i32 0 * * * * * * * * * * * Casting from 'int' to 'bool' * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(440) * * * * * * * * * * * * CallExp::toElem: formatValue(w, _param_3, spec) @ void * * * * * * * * * * * * * VarExp::toElem: formatValue @ pure @safe void(Appender!string w, char obj, ref FormatSpec!char f) * * * * * * * * * * * * * * DtoSymbolAddress ('formatValue' of type 'pure @safe void(Appender!string w, char obj, ref FormatSpec!char f)') * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * DtoFunctionType(pure @safe void(Appender!string w, char obj, ref FormatSpec!char f)) * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * Final function type: void (%"std.format.FormatSpec!char.FormatSpec"*, i8, %"std.array.Appender!string.Appender") * * * * * * * * * * * * * * * DtoResolveFunction(std.format.formatValue!(Appender!string, char, char).formatValue): /usr/include/dlang/ldc/std/format.d(1905) * * * * * * * * * * * * * * * * DtoDeclareFunction(std.format.formatValue!(Appender!string, char, char).formatValue): /usr/include/dlang/ldc/std/format.d(1905) * * * * * * * * * * * * * * * * * DtoFunctionType(pure @safe void(Appender!string w, char obj, ref FormatSpec!char f)) * * * * * * * * * * * * * * * * * func = declare void @_D3std6format61__T11formatValueTS3std5array17__T8AppenderTAyaZ8AppenderTaTaZ11formatValueFNaNfS3std5array17__T8AppenderTAyaZ8AppenderaKS3std6format18__T10FormatSpecTaZ10FormatSpecZv(%"std.format.FormatSpec!char.FormatSpec"*, i8, %"std.array.Appender!string.Appender") * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * Building type: pure @safe void(Appender!string w, char obj, ref FormatSpec!char f) * * * * * * * * * * * * * * * DtoFunctionType(pure @safe void(Appender!string w, char obj, ref FormatSpec!char f)) * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * Final function type: void (%"std.format.FormatSpec!char.FormatSpec"*, i8, %"std.array.Appender!string.Appender") * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * Function type: pure @safe void(Appender!string w, char obj, ref FormatSpec!char f) * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * VarExp::toElem: w @ Appender!string * * * * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'Appender!string') * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * type: Appender!string * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * VarExp::toElem: _param_3 @ char * * * * * * * * * * * * * * * * DtoSymbolAddress ('_param_3' of type 'char') * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * type: char * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(440) * * * * * * * * * * * * * * Loading struct type for function argument * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(445) * * * * * * DeclarationExp::toElem: uint currentArg = 0u; | T=void * * * * * * * DtoDeclarationExp: currentArg * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = uint) * * * * * * * * * llvm value for decl: %currentArg = alloca i32, align 4 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: currentArg = 0u | (uint)(uint = uint) * * * * * * * * * * VarExp::toElem: currentArg @ uint * * * * * * * * * * * DtoSymbolAddress ('currentArg' of type 'uint') * * * * * * * * * * * * a normal variable * * * * * * * * * * IntegerExp::toElem: 0u @ uint * * * * * * * * * * * IntegerExp::toConstElem: 0u @ uint * * * * * * * * * * * * value = i32 0 * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %currentArg = alloca i32, align 4 * * * * * * * * * * * rhs: i32 0 * * * * * ForStatement::toIR(): /usr/include/dlang/ldc/std/format.d(446) * * * * * * CallExp::toElem: spec.writeUpToNextSpec(w) @ bool * * * * * * * DotVarExp::toElem: spec.writeUpToNextSpec @ pure @safe bool(Appender!string writer) * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * nested variable * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(446) * * * * * * * * isMember = this is: FormatSpec!char * * * * * * * * DtoFunctionType(pure @safe bool(Appender!string writer)) * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * Final function type: i1 (%"std.format.FormatSpec!char.FormatSpec"*, %"std.array.Appender!string.Appender") * * * * * * * * DtoResolveFunction(std.format.FormatSpec!char.FormatSpec.writeUpToNextSpec!(Appender!string).writeUpToNextSpec): /usr/include/dlang/ldc/std/format.d(783) * * * * * * * * * DtoDeclareFunction(std.format.FormatSpec!char.FormatSpec.writeUpToNextSpec!(Appender!string).writeUpToNextSpec): /usr/include/dlang/ldc/std/format.d(783) * * * * * * * * * * isMember = this is: FormatSpec!char * * * * * * * * * * DtoFunctionType(pure @safe bool(Appender!string writer)) * * * * * * * * * * func = declare i1 @_D3std6format18__T10FormatSpecTaZ10FormatSpec63__T17writeUpToNextSpecTS3std5array17__T8AppenderTAyaZ8AppenderZ17writeUpToNextSpecMFNaNfS3std5array17__T8AppenderTAyaZ8AppenderZb(%"std.format.FormatSpec!char.FormatSpec"*, %"std.array.Appender!string.Appender") * * * * * * * DtoCallFunction() * * * * * * * * Building type: pure @safe bool(Appender!string writer) * * * * * * * * * DtoFunctionType(pure @safe bool(Appender!string writer)) * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: i1 (%"std.array.Appender!string.Appender") * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (1) * * * * * * * * * %spec = getelementptr %nest.formattedWrite.8, %nest.formattedWrite.8* %.frame, i32 0, i32 0 * * * * * * * * Function type: pure @safe bool(Appender!string writer) * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: w @ Appender!string * * * * * * * * * * DtoSymbolAddress ('w' of type 'Appender!string') * * * * * * * * * * * function param * * * * * * * * * * * type: Appender!string * * * * * * * * Loading struct type for function argument * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(447) * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(447) * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(448) * * * * * * * * * AndAndExp::toElem: cast(ulong)currentArg == 2LU && !spec.indexStart @ bool * * * * * * * * * * EqualExp::toElem: cast(ulong)currentArg == 2LU @ bool * * * * * * * * * * * CastExp::toElem: cast(ulong)currentArg @ ulong * * * * * * * * * * * * VarExp::toElem: currentArg @ uint * * * * * * * * * * * * * DtoSymbolAddress ('currentArg' of type 'uint') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * Casting from 'uint' to 'ulong' * * * * * * * * * * * * * cast to: i64 * * * * * * * * * * * IntegerExp::toElem: 2LU @ ulong * * * * * * * * * * * * IntegerExp::toConstElem: 2LU @ ulong * * * * * * * * * * * * * value = i64 2 * * * * * * * * * * * integral or pointer or interface * * * * * * * * * * * lv: %25 = zext i32 %24 to i64 * * * * * * * * * * * rv: i64 2 * * * * * * * * * * NotExp::toElem: !spec.indexStart @ bool * * * * * * * * * * * DotVarExp::toElem: spec.indexStart @ ubyte * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(448) * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.indexStart: * * * * * * * * * * * * * Value: %27 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 3 * * * * * * * * * * * Casting from 'ubyte' to 'bool' * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(449) * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(449) * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(451) * * * * * * * * * * * * CallExp::toElem: enforceEx(fmt.length == 0LU, delegate string() => text("Orphan format specifier: %", spec.spec), "/usr/include/dlang/ldc/std/format.d", 451LU) @ bool * * * * * * * * * * * * * VarExp::toElem: enforceEx @ pure @safe bool(bool value, lazy string msg = "", string file = __FILE__, ulong line = cast(ulong)__LINE__) * * * * * * * * * * * * * * DtoSymbolAddress ('enforceEx' of type 'pure @safe bool(bool value, lazy string msg = "", string file = __FILE__, ulong line = cast(ulong)__LINE__)') * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * Function type: pure @safe bool(bool value, lazy string msg = "", string file = __FILE__, ulong line = cast(ulong)__LINE__) * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * EqualExp::toElem: fmt.length == 0LU @ bool * * * * * * * * * * * * * * * * ArrayLengthExp::toElem: fmt.length @ ulong * * * * * * * * * * * * * * * * * VarExp::toElem: fmt @ const(char[]) * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('fmt' of type 'const(char[])') * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * type: const(char[]) * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * * * * integral or pointer or interface * * * * * * * * * * * * * * * * lv: %.len = load i64, i64* %31 * * * * * * * * * * * * * * * * rv: i64 0 * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * FuncExp::toElem: __dgliteral10 @ string delegate() pure @nogc @safe * * * * * * * * * * * * * * * * nested * * * * * * * * * * * * * * * * kind = delegate * * * * * * * * * * * * * * * * DtoDefineFunction(std.format.formattedWrite!(Appender!string, char, string, char).formattedWrite.__dgliteral10): /usr/include/dlang/ldc/std/format.d(452) * * * * * * * * * * * * * * * * * DtoFunctionType(pure @nogc @safe string()) * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * Final function type: { i64, i8* } (i8*) * * * * * * * * * * * * * * * * * DtoResolveFunction(std.format.formattedWrite!(Appender!string, char, string, char).formattedWrite.__dgliteral10): /usr/include/dlang/ldc/std/format.d(452) * * * * * * * * * * * * * * * * * * DtoDeclareFunction(std.format.formattedWrite!(Appender!string, char, string, char).formattedWrite.__dgliteral10): /usr/include/dlang/ldc/std/format.d(452) * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure @nogc @safe string()) * * * * * * * * * * * * * * * * * * * func = declare { i64, i8* } @_D3std6format68__T14formattedWriteTS3std5array17__T8AppenderTAyaZ8AppenderTaTAyaTaZ14formattedWriteFS3std5array17__T8AppenderTAyaZ8AppenderxAaAyaaZ13__dgliteral10MFNaNiNfZAya(i8*) * * * * * * * * * * * * * * * * * Doing function body for: __dgliteral10 * * * * * * * * * * * * * * * * * DtoCreateNestedContext for __dgliteral10 * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for std.format.formattedWrite!(Appender!string, char, string, char).formattedWrite.__dgliteral10 * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for std.format.formattedWrite!(Appender!string, char, string, char).formattedWrite * * * * * * * * * * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * * * * * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/format.d(452) * * * * * * * * * * * * * * * * * * * CallExp::toElem: text("Orphan format specifier: %", spec.spec) @ string * * * * * * * * * * * * * * * * * * * * VarExp::toElem: text @ pure @safe string(string _param_0, char _param_1) * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('text' of type 'pure @safe string(string _param_0, char _param_1)') * * * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * * * Function type: pure @safe string(string _param_0, char _param_1) * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * StringExp::toElem: "Orphan format specifier: %" @ string * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: spec.spec @ char * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(452) * * * * * * * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for std.format.formattedWrite!(Appender!string, char, string, char).formattedWrite * * * * * * * * * * * * * * * * * * * * * * * * * * Context: %2 = bitcast i8* %1 to %nest.formattedWrite.8* * * * * * * * * * * * * * * * * * * * * * * * * * * of type: %nest.formattedWrite.8 = type { %"std.format.FormatSpec!char.FormatSpec" } * * * * * * * * * * * * * * * * * * * * * * * * * * Variable: spec * * * * * * * * * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * * * * * * * * * Function: __dgliteral10 * * * * * * * * * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * * * * * * * * * Addr: %spec = getelementptr %nest.formattedWrite.8, %nest.formattedWrite.8* %2, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * * * * * * * * of type: %"std.format.FormatSpec!char.FormatSpec"* * * * * * * * * * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.spec: * * * * * * * * * * * * * * * * * * * * * * * * Value: %3 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 2 * * * * * * * * * * * * * * * * * * * return value is '0x12ab0d68' * * * * * * * * * * * * * * * * Building type: string delegate() pure @nogc @safe * * * * * * * * * * * * * * * * * DtoFunctionType(pure @nogc @safe string()) * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * Final function type: { i64, i8* } (i8*) * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * StringExp::toElem: "/usr/include/dlang/ldc/std/format.d" @ string * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * IntegerExp::toElem: 451LU @ ulong * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 451LU @ ulong * * * * * * * * * * * * * * * * * value = i64 451 * * * * * * * * * * * BreakStatement::toIR(): /usr/include/dlang/ldc/std/format.d(453) * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(455) * * * * * * * * * EqualExp::toElem: spec.width == 2147483647 @ bool * * * * * * * * * * DotVarExp::toElem: spec.width @ int * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(455) * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.width: * * * * * * * * * * * * Value: %36 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 0 * * * * * * * * * * IntegerExp::toElem: 2147483647 @ int * * * * * * * * * * * IntegerExp::toConstElem: 2147483647 @ int * * * * * * * * * * * * value = i32 2147483647 * * * * * * * * * * integral or pointer or interface * * * * * * * * * * lv: %37 = load i32, i32* %36 * * * * * * * * * * rv: i32 2147483647 * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(456) * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(456) * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(457) * * * * * * * * * * * * DeclarationExp::toElem: int width = to(getNthInt(currentArg, _param_2, _param_3)); | T=void * * * * * * * * * * * * * DtoDeclarationExp: width * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = int) * * * * * * * * * * * * * * * llvm value for decl: %width = alloca i32, align 4 * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * AssignExp::toElem: width = to(getNthInt(currentArg, _param_2, _param_3)) | (int)(int = int) * * * * * * * * * * * * * * * * VarExp::toElem: width @ int * * * * * * * * * * * * * * * * * DtoSymbolAddress ('width' of type 'int') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * CallExp::toElem: to(getNthInt(currentArg, _param_2, _param_3)) @ int * * * * * * * * * * * * * * * * * VarExp::toElem: to @ pure nothrow @nogc @safe int(int _param_0) * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('to' of type 'pure nothrow @nogc @safe int(int _param_0)') * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @safe int(int _param_0) * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * CallExp::toElem: getNthInt(currentArg, _param_2, _param_3) @ int * * * * * * * * * * * * * * * * * * * * VarExp::toElem: getNthInt @ pure @safe int(uint index, string _param_1, char _param_2) * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('getNthInt' of type 'pure @safe int(uint index, string _param_1, char _param_2)') * * * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure @safe int(uint index, string _param_1, char _param_2)) * * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * * * * Final function type: i32 (i8, { i64, i8* }, i32) * * * * * * * * * * * * * * * * * * * * * * DtoResolveFunction(std.format.getNthInt!(string, char).getNthInt): /usr/include/dlang/ldc/std/format.d(3501) * * * * * * * * * * * * * * * * * * * * * * * DtoDeclareFunction(std.format.getNthInt!(string, char).getNthInt): /usr/include/dlang/ldc/std/format.d(3501) * * * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure @safe int(uint index, string _param_1, char _param_2)) * * * * * * * * * * * * * * * * * * * * * * * * func = declare i32 @_D3std6format20__T9getNthIntTAyaTaZ9getNthIntFNaNfkAyaaZi(i8, { i64, i8* }, i32) * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * Building type: pure @safe int(uint index, string _param_1, char _param_2) * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure @safe int(uint index, string _param_1, char _param_2)) * * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * * * * Final function type: i32 (i8, { i64, i8* }, i32) * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * * * Function type: pure @safe int(uint index, string _param_1, char _param_2) * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: currentArg @ uint * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('currentArg' of type 'uint') * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: _param_2 @ string * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('_param_2' of type 'string') * * * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * * * type: string * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: _param_3 @ char * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('_param_3' of type 'char') * * * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * * * type: char * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * lhs: %width = alloca i32, align 4 * * * * * * * * * * * * * * * * * rhs: %43 = call i32 @_D3std4conv9__T2toTiZ9__T2toTiZ2toFNaNbNiNfiZi(i32 %42) * * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(458) * * * * * * * * * * * * CmpExp::toElem: width < 0 @ bool * * * * * * * * * * * * * VarExp::toElem: width @ int * * * * * * * * * * * * * * DtoSymbolAddress ('width' of type 'int') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * IntegerExp::toElem: 0 @ int * * * * * * * * * * * * * * IntegerExp::toConstElem: 0 @ int * * * * * * * * * * * * * * * value = i32 0 * * * * * * * * * * * * * type 1: %44 = load i32, i32* %width * * * * * * * * * * * * * type 2: i32 0 * * * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(459) * * * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(459) * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(460) * * * * * * * * * * * * * * * CallExp::toElem: spec.flDash(true) @ void * * * * * * * * * * * * * * * * DotVarExp::toElem: spec.flDash @ pure nothrow @nogc @property @safe void(bool v) * * * * * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(460) * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * %spec = getelementptr %nest.formattedWrite.8, %nest.formattedWrite.8* %.frame, i32 0, i32 0 * * * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @property @safe void(bool v) * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * IntegerExp::toElem: true @ bool * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: true @ bool * * * * * * * * * * * * * * * * * * * * value = i1 true * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(461) * * * * * * * * * * * * * * * AssignExp::toElem: width = -width | (int)(int = int) * * * * * * * * * * * * * * * * VarExp::toElem: width @ int * * * * * * * * * * * * * * * * * DtoSymbolAddress ('width' of type 'int') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * NegExp::toElem: -width @ int * * * * * * * * * * * * * * * * * VarExp::toElem: width @ int * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('width' of type 'int') * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * lhs: %width = alloca i32, align 4 * * * * * * * * * * * * * * * * * rhs: %negval = sub i32 0, %46 * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(463) * * * * * * * * * * * * AssignExp::toElem: spec.width = width | (int)(int = int) * * * * * * * * * * * * * DotVarExp::toElem: spec.width @ int * * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(463) * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.width: * * * * * * * * * * * * * * * Value: %47 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 0 * * * * * * * * * * * * * VarExp::toElem: width @ int * * * * * * * * * * * * * * DtoSymbolAddress ('width' of type 'int') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * lhs: %47 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 0 * * * * * * * * * * * * * * rhs: %48 = load i32, i32* %width * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(464) * * * * * * * * * * * * AddAssignExp::toElem: currentArg += 1u @ uint * * * * * * * * * * * * * Caching l-value of currentArg += 1u => currentArg * * * * * * * * * * * * * * VarExp::toElem: currentArg @ uint * * * * * * * * * * * * * * * DtoSymbolAddress ('currentArg' of type 'uint') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * AddExp::toElem: currentArg + 1u @ uint * * * * * * * * * * * * * * VarExp::toElem: currentArg @ uint * * * * * * * * * * * * * * IntegerExp::toElem: 1u @ uint * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1u @ uint * * * * * * * * * * * * * * * * value = i32 1 * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * lhs: %currentArg = alloca i32, align 4 * * * * * * * * * * * * * * rhs: %50 = add i32 %49, 1 * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(466) * * * * * * * * * * CmpExp::toElem: spec.width < 0 @ bool * * * * * * * * * * * DotVarExp::toElem: spec.width @ int * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(466) * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.width: * * * * * * * * * * * * * Value: %46 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 0 * * * * * * * * * * * IntegerExp::toElem: 0 @ int * * * * * * * * * * * * IntegerExp::toConstElem: 0 @ int * * * * * * * * * * * * * value = i32 0 * * * * * * * * * * * type 1: %47 = load i32, i32* %46 * * * * * * * * * * * type 2: i32 0 * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(467) * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(467) * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(469) * * * * * * * * * * * * * DeclarationExp::toElem: uint index = cast(uint)-spec.width; | T=void * * * * * * * * * * * * * * DtoDeclarationExp: index * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = uint) * * * * * * * * * * * * * * * * llvm value for decl: %index = alloca i32, align 4 * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * AssignExp::toElem: index = cast(uint)-spec.width | (uint)(uint = uint) * * * * * * * * * * * * * * * * * VarExp::toElem: index @ uint * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('index' of type 'uint') * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * CastExp::toElem: cast(uint)-spec.width @ uint * * * * * * * * * * * * * * * * * * NegExp::toElem: -spec.width @ int * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: spec.width @ int * * * * * * * * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(469) * * * * * * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.width: * * * * * * * * * * * * * * * * * * * * * Value: %54 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 0 * * * * * * * * * * * * * * * * * * Casting from 'int' to 'uint' * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * lhs: %index = alloca i32, align 4 * * * * * * * * * * * * * * * * * * rhs: %negval15 = sub i32 0, %55 * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(470) * * * * * * * * * * * * * AssertExp::toElem: assert(index > 0u) * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(471) * * * * * * * * * * * * * DeclarationExp::toElem: int width = to(getNthInt(index - 1u, _param_2, _param_3)); | T=void * * * * * * * * * * * * * * DtoDeclarationExp: width * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = int) * * * * * * * * * * * * * * * * llvm value for decl: %width16 = alloca i32, align 4 * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * AssignExp::toElem: width = to(getNthInt(index - 1u, _param_2, _param_3)) | (int)(int = int) * * * * * * * * * * * * * * * * * VarExp::toElem: width @ int * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('width' of type 'int') * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * CallExp::toElem: to(getNthInt(index - 1u, _param_2, _param_3)) @ int * * * * * * * * * * * * * * * * * * VarExp::toElem: to @ pure nothrow @nogc @safe int(int _param_0) * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('to' of type 'pure nothrow @nogc @safe int(int _param_0)') * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @safe int(int _param_0) * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * CallExp::toElem: getNthInt(index - 1u, _param_2, _param_3) @ int * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: getNthInt @ pure @safe int(uint index, string _param_1, char _param_2) * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('getNthInt' of type 'pure @safe int(uint index, string _param_1, char _param_2)') * * * * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * * * * Function type: pure @safe int(uint index, string _param_1, char _param_2) * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * MinExp::toElem: index - 1u @ uint * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: index @ uint * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('index' of type 'uint') * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 1u @ uint * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1u @ uint * * * * * * * * * * * * * * * * * * * * * * * * * * value = i32 1 * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: _param_2 @ string * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('_param_2' of type 'string') * * * * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * * * * type: string * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: _param_3 @ char * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('_param_3' of type 'char') * * * * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * * * * type: char * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * lhs: %width16 = alloca i32, align 4 * * * * * * * * * * * * * * * * * * rhs: %61 = call i32 @_D3std4conv9__T2toTiZ9__T2toTiZ2toFNaNbNiNfiZi(i32 %60) * * * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(472) * * * * * * * * * * * * * CmpExp::toElem: currentArg < index @ bool * * * * * * * * * * * * * * VarExp::toElem: currentArg @ uint * * * * * * * * * * * * * * * DtoSymbolAddress ('currentArg' of type 'uint') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * VarExp::toElem: index @ uint * * * * * * * * * * * * * * * DtoSymbolAddress ('index' of type 'uint') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * type 1: %62 = load i32, i32* %currentArg * * * * * * * * * * * * * * type 2: %63 = load i32, i32* %index * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(472) * * * * * * * * * * * * * * AssignExp::toElem: currentArg = index | (uint)(uint = uint) * * * * * * * * * * * * * * * VarExp::toElem: currentArg @ uint * * * * * * * * * * * * * * * * DtoSymbolAddress ('currentArg' of type 'uint') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * VarExp::toElem: index @ uint * * * * * * * * * * * * * * * * DtoSymbolAddress ('index' of type 'uint') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * lhs: %currentArg = alloca i32, align 4 * * * * * * * * * * * * * * * * rhs: %65 = load i32, i32* %index * * * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(473) * * * * * * * * * * * * * CmpExp::toElem: width < 0 @ bool * * * * * * * * * * * * * * VarExp::toElem: width @ int * * * * * * * * * * * * * * * DtoSymbolAddress ('width' of type 'int') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * IntegerExp::toElem: 0 @ int * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0 @ int * * * * * * * * * * * * * * * * value = i32 0 * * * * * * * * * * * * * * type 1: %66 = load i32, i32* %width16 * * * * * * * * * * * * * * type 2: i32 0 * * * * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(474) * * * * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(474) * * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(475) * * * * * * * * * * * * * * * * CallExp::toElem: spec.flDash(true) @ void * * * * * * * * * * * * * * * * * DotVarExp::toElem: spec.flDash @ pure nothrow @nogc @property @safe void(bool v) * * * * * * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(475) * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * * %spec = getelementptr %nest.formattedWrite.8, %nest.formattedWrite.8* %.frame, i32 0, i32 0 * * * * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @property @safe void(bool v) * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: true @ bool * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: true @ bool * * * * * * * * * * * * * * * * * * * * * value = i1 true * * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(476) * * * * * * * * * * * * * * * * AssignExp::toElem: width = -width | (int)(int = int) * * * * * * * * * * * * * * * * * VarExp::toElem: width @ int * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('width' of type 'int') * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * NegExp::toElem: -width @ int * * * * * * * * * * * * * * * * * * VarExp::toElem: width @ int * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('width' of type 'int') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * lhs: %width16 = alloca i32, align 4 * * * * * * * * * * * * * * * * * * rhs: %negval21 = sub i32 0, %68 * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(478) * * * * * * * * * * * * * AssignExp::toElem: spec.width = width | (int)(int = int) * * * * * * * * * * * * * * DotVarExp::toElem: spec.width @ int * * * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(478) * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.width: * * * * * * * * * * * * * * * * Value: %69 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 0 * * * * * * * * * * * * * * VarExp::toElem: width @ int * * * * * * * * * * * * * * * DtoSymbolAddress ('width' of type 'int') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * lhs: %69 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 0 * * * * * * * * * * * * * * * rhs: %70 = load i32, i32* %width16 * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(480) * * * * * * * * * EqualExp::toElem: spec.precision == 2147483647 @ bool * * * * * * * * * * DotVarExp::toElem: spec.precision @ int * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(480) * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.precision: * * * * * * * * * * * * Value: %49 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 1 * * * * * * * * * * IntegerExp::toElem: 2147483647 @ int * * * * * * * * * * * IntegerExp::toConstElem: 2147483647 @ int * * * * * * * * * * * * value = i32 2147483647 * * * * * * * * * * integral or pointer or interface * * * * * * * * * * lv: %50 = load i32, i32* %49 * * * * * * * * * * rv: i32 2147483647 * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(481) * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(481) * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(482) * * * * * * * * * * * * DeclarationExp::toElem: int precision = to(getNthInt(currentArg, _param_2, _param_3)); | T=void * * * * * * * * * * * * * DtoDeclarationExp: precision * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = int) * * * * * * * * * * * * * * * llvm value for decl: %precision = alloca i32, align 4 * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * AssignExp::toElem: precision = to(getNthInt(currentArg, _param_2, _param_3)) | (int)(int = int) * * * * * * * * * * * * * * * * VarExp::toElem: precision @ int * * * * * * * * * * * * * * * * * DtoSymbolAddress ('precision' of type 'int') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * CallExp::toElem: to(getNthInt(currentArg, _param_2, _param_3)) @ int * * * * * * * * * * * * * * * * * VarExp::toElem: to @ pure nothrow @nogc @safe int(int _param_0) * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('to' of type 'pure nothrow @nogc @safe int(int _param_0)') * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @safe int(int _param_0) * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * CallExp::toElem: getNthInt(currentArg, _param_2, _param_3) @ int * * * * * * * * * * * * * * * * * * * * VarExp::toElem: getNthInt @ pure @safe int(uint index, string _param_1, char _param_2) * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('getNthInt' of type 'pure @safe int(uint index, string _param_1, char _param_2)') * * * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * * * Function type: pure @safe int(uint index, string _param_1, char _param_2) * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: currentArg @ uint * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('currentArg' of type 'uint') * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: _param_2 @ string * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('_param_2' of type 'string') * * * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * * * type: string * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: _param_3 @ char * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('_param_3' of type 'char') * * * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * * * type: char * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * lhs: %precision = alloca i32, align 4 * * * * * * * * * * * * * * * * * rhs: %78 = call i32 @_D3std4conv9__T2toTiZ9__T2toTiZ2toFNaNbNiNfiZi(i32 %77) * * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(484) * * * * * * * * * * * * CmpExp::toElem: precision >= 0 @ bool * * * * * * * * * * * * * VarExp::toElem: precision @ int * * * * * * * * * * * * * * DtoSymbolAddress ('precision' of type 'int') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * IntegerExp::toElem: 0 @ int * * * * * * * * * * * * * * IntegerExp::toConstElem: 0 @ int * * * * * * * * * * * * * * * value = i32 0 * * * * * * * * * * * * * type 1: %79 = load i32, i32* %precision * * * * * * * * * * * * * type 2: i32 0 * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(484) * * * * * * * * * * * * * AssignExp::toElem: spec.precision = precision | (int)(int = int) * * * * * * * * * * * * * * DotVarExp::toElem: spec.precision @ int * * * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(484) * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.precision: * * * * * * * * * * * * * * * * Value: %81 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 1 * * * * * * * * * * * * * * VarExp::toElem: precision @ int * * * * * * * * * * * * * * * DtoSymbolAddress ('precision' of type 'int') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * lhs: %81 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 1 * * * * * * * * * * * * * * * rhs: %82 = load i32, i32* %precision * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(486) * * * * * * * * * * * * * AssignExp::toElem: spec.precision = 2147483646 | (int)(int = int) * * * * * * * * * * * * * * DotVarExp::toElem: spec.precision @ int * * * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(486) * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.precision: * * * * * * * * * * * * * * * * Value: %83 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 1 * * * * * * * * * * * * * * IntegerExp::toElem: 2147483646 @ int * * * * * * * * * * * * * * * IntegerExp::toConstElem: 2147483646 @ int * * * * * * * * * * * * * * * * value = i32 2147483646 * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * lhs: %83 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 1 * * * * * * * * * * * * * * * rhs: i32 2147483646 * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(487) * * * * * * * * * * * * AddAssignExp::toElem: currentArg += 1u @ uint * * * * * * * * * * * * * Caching l-value of currentArg += 1u => currentArg * * * * * * * * * * * * * * VarExp::toElem: currentArg @ uint * * * * * * * * * * * * * * * DtoSymbolAddress ('currentArg' of type 'uint') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * AddExp::toElem: currentArg + 1u @ uint * * * * * * * * * * * * * * VarExp::toElem: currentArg @ uint * * * * * * * * * * * * * * IntegerExp::toElem: 1u @ uint * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1u @ uint * * * * * * * * * * * * * * * * value = i32 1 * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * lhs: %currentArg = alloca i32, align 4 * * * * * * * * * * * * * * rhs: %85 = add i32 %84, 1 * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(489) * * * * * * * * * * CmpExp::toElem: spec.precision < 0 @ bool * * * * * * * * * * * DotVarExp::toElem: spec.precision @ int * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(489) * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.precision: * * * * * * * * * * * * * Value: %81 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 1 * * * * * * * * * * * IntegerExp::toElem: 0 @ int * * * * * * * * * * * * IntegerExp::toConstElem: 0 @ int * * * * * * * * * * * * * value = i32 0 * * * * * * * * * * * type 1: %82 = load i32, i32* %81 * * * * * * * * * * * type 2: i32 0 * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(490) * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(490) * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(492) * * * * * * * * * * * * * DeclarationExp::toElem: uint index = cast(uint)-spec.precision; | T=void * * * * * * * * * * * * * * DtoDeclarationExp: index * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = uint) * * * * * * * * * * * * * * * * llvm value for decl: %index30 = alloca i32, align 4 * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * AssignExp::toElem: index = cast(uint)-spec.precision | (uint)(uint = uint) * * * * * * * * * * * * * * * * * VarExp::toElem: index @ uint * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('index' of type 'uint') * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * CastExp::toElem: cast(uint)-spec.precision @ uint * * * * * * * * * * * * * * * * * * NegExp::toElem: -spec.precision @ int * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: spec.precision @ int * * * * * * * * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(492) * * * * * * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.precision: * * * * * * * * * * * * * * * * * * * * * Value: %89 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 1 * * * * * * * * * * * * * * * * * * Casting from 'int' to 'uint' * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * lhs: %index30 = alloca i32, align 4 * * * * * * * * * * * * * * * * * * rhs: %negval31 = sub i32 0, %90 * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(493) * * * * * * * * * * * * * AssertExp::toElem: assert(index > 0u) * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(494) * * * * * * * * * * * * * DeclarationExp::toElem: int precision = to(getNthInt(index - 1u, _param_2, _param_3)); | T=void * * * * * * * * * * * * * * DtoDeclarationExp: precision * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = int) * * * * * * * * * * * * * * * * llvm value for decl: %precision32 = alloca i32, align 4 * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * AssignExp::toElem: precision = to(getNthInt(index - 1u, _param_2, _param_3)) | (int)(int = int) * * * * * * * * * * * * * * * * * VarExp::toElem: precision @ int * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('precision' of type 'int') * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * CallExp::toElem: to(getNthInt(index - 1u, _param_2, _param_3)) @ int * * * * * * * * * * * * * * * * * * VarExp::toElem: to @ pure nothrow @nogc @safe int(int _param_0) * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('to' of type 'pure nothrow @nogc @safe int(int _param_0)') * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @safe int(int _param_0) * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * CallExp::toElem: getNthInt(index - 1u, _param_2, _param_3) @ int * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: getNthInt @ pure @safe int(uint index, string _param_1, char _param_2) * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('getNthInt' of type 'pure @safe int(uint index, string _param_1, char _param_2)') * * * * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * * * * Function type: pure @safe int(uint index, string _param_1, char _param_2) * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * MinExp::toElem: index - 1u @ uint * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: index @ uint * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('index' of type 'uint') * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 1u @ uint * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1u @ uint * * * * * * * * * * * * * * * * * * * * * * * * * * value = i32 1 * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: _param_2 @ string * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('_param_2' of type 'string') * * * * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * * * * type: string * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: _param_3 @ char * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('_param_3' of type 'char') * * * * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * * * * type: char * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * lhs: %precision32 = alloca i32, align 4 * * * * * * * * * * * * * * * * * * rhs: %96 = call i32 @_D3std4conv9__T2toTiZ9__T2toTiZ2toFNaNbNiNfiZi(i32 %95) * * * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(496) * * * * * * * * * * * * * CmpExp::toElem: currentArg < index @ bool * * * * * * * * * * * * * * VarExp::toElem: currentArg @ uint * * * * * * * * * * * * * * * DtoSymbolAddress ('currentArg' of type 'uint') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * VarExp::toElem: index @ uint * * * * * * * * * * * * * * * DtoSymbolAddress ('index' of type 'uint') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * type 1: %97 = load i32, i32* %currentArg * * * * * * * * * * * * * * type 2: %98 = load i32, i32* %index30 * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(496) * * * * * * * * * * * * * * AssignExp::toElem: currentArg = index | (uint)(uint = uint) * * * * * * * * * * * * * * * VarExp::toElem: currentArg @ uint * * * * * * * * * * * * * * * * DtoSymbolAddress ('currentArg' of type 'uint') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * VarExp::toElem: index @ uint * * * * * * * * * * * * * * * * DtoSymbolAddress ('index' of type 'uint') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * lhs: %currentArg = alloca i32, align 4 * * * * * * * * * * * * * * * * rhs: %100 = load i32, i32* %index30 * * * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(497) * * * * * * * * * * * * * CmpExp::toElem: precision >= 0 @ bool * * * * * * * * * * * * * * VarExp::toElem: precision @ int * * * * * * * * * * * * * * * DtoSymbolAddress ('precision' of type 'int') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * IntegerExp::toElem: 0 @ int * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0 @ int * * * * * * * * * * * * * * * * value = i32 0 * * * * * * * * * * * * * * type 1: %101 = load i32, i32* %precision32 * * * * * * * * * * * * * * type 2: i32 0 * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(497) * * * * * * * * * * * * * * AssignExp::toElem: spec.precision = precision | (int)(int = int) * * * * * * * * * * * * * * * DotVarExp::toElem: spec.precision @ int * * * * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(497) * * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.precision: * * * * * * * * * * * * * * * * * Value: %103 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 1 * * * * * * * * * * * * * * * VarExp::toElem: precision @ int * * * * * * * * * * * * * * * * DtoSymbolAddress ('precision' of type 'int') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * lhs: %103 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 1 * * * * * * * * * * * * * * * * rhs: %104 = load i32, i32* %precision32 * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(499) * * * * * * * * * * * * * * AssignExp::toElem: spec.precision = 2147483646 | (int)(int = int) * * * * * * * * * * * * * * * DotVarExp::toElem: spec.precision @ int * * * * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(499) * * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.precision: * * * * * * * * * * * * * * * * * Value: %105 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 1 * * * * * * * * * * * * * * * IntegerExp::toElem: 2147483646 @ int * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 2147483646 @ int * * * * * * * * * * * * * * * * * value = i32 2147483646 * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * lhs: %105 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 1 * * * * * * * * * * * * * * * * rhs: i32 2147483646 * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(502) * * * * * * * * * CmpExp::toElem: cast(int)spec.indexStart > 0 @ bool * * * * * * * * * * CastExp::toElem: cast(int)spec.indexStart @ int * * * * * * * * * * * DotVarExp::toElem: spec.indexStart @ ubyte * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(502) * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.indexStart: * * * * * * * * * * * * * Value: %84 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 3 * * * * * * * * * * * Casting from 'ubyte' to 'int' * * * * * * * * * * * * cast to: i32 * * * * * * * * * * IntegerExp::toElem: 0 @ int * * * * * * * * * * * IntegerExp::toConstElem: 0 @ int * * * * * * * * * * * * value = i32 0 * * * * * * * * * * type 1: %86 = zext i8 %85 to i32 * * * * * * * * * * type 2: i32 0 * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(503) * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(503) * * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(505) * * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(505) * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(505) * * * * * * * * * * * * * * DeclarationExp::toElem: int __key3409 = cast(int)spec.indexStart - 1; | T=void * * * * * * * * * * * * * * * DtoDeclarationExp: __key3409 * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = int) * * * * * * * * * * * * * * * * * llvm value for decl: %__key3409 = alloca i32, align 4 * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * AssignExp::toElem: __key3409 = cast(int)spec.indexStart - 1 | (int)(int = int) * * * * * * * * * * * * * * * * * * VarExp::toElem: __key3409 @ int * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__key3409' of type 'int') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * MinExp::toElem: cast(int)spec.indexStart - 1 @ int * * * * * * * * * * * * * * * * * * * CastExp::toElem: cast(int)spec.indexStart @ int * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: spec.indexStart @ ubyte * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(505) * * * * * * * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.indexStart: * * * * * * * * * * * * * * * * * * * * * * Value: %110 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 3 * * * * * * * * * * * * * * * * * * * * Casting from 'ubyte' to 'int' * * * * * * * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 1 @ int * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1 @ int * * * * * * * * * * * * * * * * * * * * * value = i32 1 * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * lhs: %__key3409 = alloca i32, align 4 * * * * * * * * * * * * * * * * * * * rhs: %113 = sub i32 %112, 1 * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(505) * * * * * * * * * * * * * * DeclarationExp::toElem: int __limit3410 = cast(int)spec.indexEnd; | T=void * * * * * * * * * * * * * * * DtoDeclarationExp: __limit3410 * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = int) * * * * * * * * * * * * * * * * * llvm value for decl: %__limit3410 = alloca i32, align 4 * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * AssignExp::toElem: __limit3410 = cast(int)spec.indexEnd | (int)(int = int) * * * * * * * * * * * * * * * * * * VarExp::toElem: __limit3410 @ int * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__limit3410' of type 'int') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * CastExp::toElem: cast(int)spec.indexEnd @ int * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: spec.indexEnd @ ubyte * * * * * * * * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(505) * * * * * * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.indexEnd: * * * * * * * * * * * * * * * * * * * * * Value: %114 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 4 * * * * * * * * * * * * * * * * * * * Casting from 'ubyte' to 'int' * * * * * * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * lhs: %__limit3410 = alloca i32, align 4 * * * * * * * * * * * * * * * * * * * rhs: %116 = zext i8 %115 to i32 * * * * * * * * * * * * * ForStatement::toIR(): /usr/include/dlang/ldc/std/format.d(505) * * * * * * * * * * * * * * CmpExp::toElem: __key3409 < __limit3410 @ bool * * * * * * * * * * * * * * * VarExp::toElem: __key3409 @ int * * * * * * * * * * * * * * * * DtoSymbolAddress ('__key3409' of type 'int') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * VarExp::toElem: __limit3410 @ int * * * * * * * * * * * * * * * * DtoSymbolAddress ('__limit3410' of type 'int') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * type 1: %117 = load i32, i32* %__key3409 * * * * * * * * * * * * * * * type 2: %118 = load i32, i32* %__limit3410 * * * * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(505) * * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(505) * * * * * * * * * * * * * * * * DeclarationExp::toElem: int i = __key3409; | T=void * * * * * * * * * * * * * * * * * DtoDeclarationExp: i * * * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = int) * * * * * * * * * * * * * * * * * * * llvm value for decl: %i = alloca i32, align 4 * * * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * * * AssignExp::toElem: i = __key3409 | (int)(int = int) * * * * * * * * * * * * * * * * * * * * VarExp::toElem: i @ int * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'int') * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * VarExp::toElem: __key3409 @ int * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__key3409' of type 'int') * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * * lhs: %i = alloca i32, align 4 * * * * * * * * * * * * * * * * * * * * * rhs: %120 = load i32, i32* %__key3409 * * * * * * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(507) * * * * * * * * * * * * * * * * CmpExp::toElem: 2LU <= cast(ulong)i @ bool * * * * * * * * * * * * * * * * * IntegerExp::toElem: 2LU @ ulong * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 2LU @ ulong * * * * * * * * * * * * * * * * * * * value = i64 2 * * * * * * * * * * * * * * * * * CastExp::toElem: cast(ulong)i @ ulong * * * * * * * * * * * * * * * * * * VarExp::toElem: i @ int * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'int') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * Casting from 'int' to 'ulong' * * * * * * * * * * * * * * * * * * * cast to: i64 * * * * * * * * * * * * * * * * * type 1: i64 2 * * * * * * * * * * * * * * * * * type 2: %122 = sext i32 %121 to i64 * * * * * * * * * * * * * * * * BreakStatement::toIR(): /usr/include/dlang/ldc/std/format.d(507) * * * * * * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(508) * * * * * * * * * * * * * * * * VarExp::toElem: __ctfe @ bool * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__ctfe' of type 'bool') * * * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(509) * * * * * * * * * * * * * * * * * CallExp::toElem: formatNth(w, spec, cast(ulong)i, _param_2, _param_3) @ void * * * * * * * * * * * * * * * * * * VarExp::toElem: formatNth @ pure @safe void(Appender!string w, ref FormatSpec!char f, ulong index, string _param_3, char _param_4) * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('formatNth' of type 'pure @safe void(Appender!string w, ref FormatSpec!char f, ulong index, string _param_3, char _param_4)') * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure @safe void(Appender!string w, ref FormatSpec!char f, ulong index, string _param_3, char _param_4)) * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * * Final function type: void (i8, { i64, i8* }, i64, %"std.format.FormatSpec!char.FormatSpec"*, %"std.array.Appender!string.Appender") * * * * * * * * * * * * * * * * * * * * DtoResolveFunction(std.format.formatNth!(Appender!string, char, string, char).formatNth): /usr/include/dlang/ldc/std/format.d(3460) * * * * * * * * * * * * * * * * * * * * * DtoDeclareFunction(std.format.formatNth!(Appender!string, char, string, char).formatNth): /usr/include/dlang/ldc/std/format.d(3460) * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure @safe void(Appender!string w, ref FormatSpec!char f, ulong index, string _param_3, char _param_4)) * * * * * * * * * * * * * * * * * * * * * * func = declare void @_D3std6format62__T9formatNthTS3std5array17__T8AppenderTAyaZ8AppenderTaTAyaTaZ9formatNthFNaNfS3std5array17__T8AppenderTAyaZ8AppenderKS3std6format18__T10FormatSpecTaZ10FormatSpecmAyaaZv(i8, { i64, i8* }, i64, %"std.format.FormatSpec!char.FormatSpec"*, %"std.array.Appender!string.Appender") * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * Building type: pure @safe void(Appender!string w, ref FormatSpec!char f, ulong index, string _param_3, char _param_4) * * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure @safe void(Appender!string w, ref FormatSpec!char f, ulong index, string _param_3, char _param_4)) * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * * Final function type: void (i8, { i64, i8* }, i64, %"std.format.FormatSpec!char.FormatSpec"*, %"std.array.Appender!string.Appender") * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * Function type: pure @safe void(Appender!string w, ref FormatSpec!char f, ulong index, string _param_3, char _param_4) * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * VarExp::toElem: w @ Appender!string * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'Appender!string') * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * type: Appender!string * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(509) * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * CastExp::toElem: cast(ulong)i @ ulong * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: i @ int * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'int') * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * Casting from 'int' to 'ulong' * * * * * * * * * * * * * * * * * * * * * * cast to: i64 * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * VarExp::toElem: _param_2 @ string * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('_param_2' of type 'string') * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * type: string * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * VarExp::toElem: _param_3 @ char * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('_param_3' of type 'char') * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * type: char * * * * * * * * * * * * * * * * * * * Loading struct type for function argument * * * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(511) * * * * * * * * * * * * * * * * * CallExp::toElem: (*funs[cast(ulong)i])(w, argsAddresses[cast(ulong)i], spec) @ void * * * * * * * * * * * * * * * * * * PtrExp::toElem: *funs[cast(ulong)i] @ pure nothrow @safe void(Appender!string, const(void)*, ref FormatSpec!char) * * * * * * * * * * * * * * * * * * * IndexExp::toElem: funs[cast(ulong)i] @ void function(Appender!string, const(void)*, ref FormatSpec!char) pure nothrow @safe * * * * * * * * * * * * * * * * * * * * VarExp::toElem: funs @ void function(Appender!string, const(void)*, ref FormatSpec!char) pure nothrow @safe[2] * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('funs' of type 'void function(Appender!string, const(void)*, ref FormatSpec!char) pure nothrow @safe[2]') * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * CastExp::toElem: cast(ulong)i @ ulong * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: i @ int * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'int') * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * Casting from 'int' to 'ulong' * * * * * * * * * * * * * * * * * * * * * * cast to: i64 * * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * Function type: pure nothrow @safe void(Appender!string, const(void)*, ref FormatSpec!char) * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * VarExp::toElem: w @ Appender!string * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'Appender!string') * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * type: Appender!string * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * IndexExp::toElem: argsAddresses[cast(ulong)i] @ const(void)* * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: argsAddresses @ const(void)*[2] * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('argsAddresses' of type 'const(void)*[2]') * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * CastExp::toElem: cast(ulong)i @ ulong * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: i @ int * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'int') * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * Casting from 'int' to 'ulong' * * * * * * * * * * * * * * * * * * * * * * * cast to: i64 * * * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(511) * * * * * * * * * * * * * * * * * * * Loading struct type for function argument * * * * * * * * * * * * * * AddAssignExp::toElem: __key3409 += 1 @ int * * * * * * * * * * * * * * * Caching l-value of __key3409 += 1 => __key3409 * * * * * * * * * * * * * * * * VarExp::toElem: __key3409 @ int * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__key3409' of type 'int') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * AddExp::toElem: __key3409 + 1 @ int * * * * * * * * * * * * * * * * VarExp::toElem: __key3409 @ int * * * * * * * * * * * * * * * * IntegerExp::toElem: 1 @ int * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1 @ int * * * * * * * * * * * * * * * * * * value = i32 1 * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * lhs: %__key3409 = alloca i32, align 4 * * * * * * * * * * * * * * * * rhs: %125 = add i32 %124, 1 * * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(513) * * * * * * * * * * * * CmpExp::toElem: currentArg < cast(uint)cast(int)spec.indexEnd @ bool * * * * * * * * * * * * * VarExp::toElem: currentArg @ uint * * * * * * * * * * * * * * DtoSymbolAddress ('currentArg' of type 'uint') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * CastExp::toElem: cast(uint)cast(int)spec.indexEnd @ uint * * * * * * * * * * * * * * CastExp::toElem: cast(int)spec.indexEnd @ int * * * * * * * * * * * * * * * DotVarExp::toElem: spec.indexEnd @ ubyte * * * * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(513) * * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.indexEnd: * * * * * * * * * * * * * * * * * Value: %126 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 4 * * * * * * * * * * * * * * * Casting from 'ubyte' to 'int' * * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * * * Casting from 'int' to 'uint' * * * * * * * * * * * * * type 1: %129 = load i32, i32* %currentArg * * * * * * * * * * * * * type 2: %128 = zext i8 %127 to i32 * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(513) * * * * * * * * * * * * * AssignExp::toElem: currentArg = cast(uint)spec.indexEnd | (uint)(uint = uint) * * * * * * * * * * * * * * VarExp::toElem: currentArg @ uint * * * * * * * * * * * * * * * DtoSymbolAddress ('currentArg' of type 'uint') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * CastExp::toElem: cast(uint)spec.indexEnd @ uint * * * * * * * * * * * * * * * DotVarExp::toElem: spec.indexEnd @ ubyte * * * * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(513) * * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.indexEnd: * * * * * * * * * * * * * * * * * Value: %145 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 4 * * * * * * * * * * * * * * * Casting from 'ubyte' to 'uint' * * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * lhs: %currentArg = alloca i32, align 4 * * * * * * * * * * * * * * * rhs: %147 = zext i8 %146 to i32 * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(516) * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(516) * * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(517) * * * * * * * * * * * * VarExp::toElem: __ctfe @ bool * * * * * * * * * * * * * DtoSymbolAddress ('__ctfe' of type 'bool') * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(518) * * * * * * * * * * * * * CallExp::toElem: formatNth(w, spec, cast(ulong)currentArg, _param_2, _param_3) @ void * * * * * * * * * * * * * * VarExp::toElem: formatNth @ pure @safe void(Appender!string w, ref FormatSpec!char f, ulong index, string _param_3, char _param_4) * * * * * * * * * * * * * * * DtoSymbolAddress ('formatNth' of type 'pure @safe void(Appender!string w, ref FormatSpec!char f, ulong index, string _param_3, char _param_4)') * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * Function type: pure @safe void(Appender!string w, ref FormatSpec!char f, ulong index, string _param_3, char _param_4) * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * VarExp::toElem: w @ Appender!string * * * * * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'Appender!string') * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * type: Appender!string * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(518) * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * CastExp::toElem: cast(ulong)currentArg @ ulong * * * * * * * * * * * * * * * * * VarExp::toElem: currentArg @ uint * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('currentArg' of type 'uint') * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * Casting from 'uint' to 'ulong' * * * * * * * * * * * * * * * * * * cast to: i64 * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * VarExp::toElem: _param_2 @ string * * * * * * * * * * * * * * * * * DtoSymbolAddress ('_param_2' of type 'string') * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * type: string * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * VarExp::toElem: _param_3 @ char * * * * * * * * * * * * * * * * * DtoSymbolAddress ('_param_3' of type 'char') * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * type: char * * * * * * * * * * * * * * * Loading struct type for function argument * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(520) * * * * * * * * * * * * * CallExp::toElem: (*funs[cast(ulong)currentArg])(w, argsAddresses[cast(ulong)currentArg], spec) @ void * * * * * * * * * * * * * * PtrExp::toElem: *funs[cast(ulong)currentArg] @ pure nothrow @safe void(Appender!string, const(void)*, ref FormatSpec!char) * * * * * * * * * * * * * * * IndexExp::toElem: funs[cast(ulong)currentArg] @ void function(Appender!string, const(void)*, ref FormatSpec!char) pure nothrow @safe * * * * * * * * * * * * * * * * VarExp::toElem: funs @ void function(Appender!string, const(void)*, ref FormatSpec!char) pure nothrow @safe[2] * * * * * * * * * * * * * * * * * DtoSymbolAddress ('funs' of type 'void function(Appender!string, const(void)*, ref FormatSpec!char) pure nothrow @safe[2]') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * CastExp::toElem: cast(ulong)currentArg @ ulong * * * * * * * * * * * * * * * * * VarExp::toElem: currentArg @ uint * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('currentArg' of type 'uint') * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * Casting from 'uint' to 'ulong' * * * * * * * * * * * * * * * * * * cast to: i64 * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * Function type: pure nothrow @safe void(Appender!string, const(void)*, ref FormatSpec!char) * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * VarExp::toElem: w @ Appender!string * * * * * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'Appender!string') * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * type: Appender!string * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * IndexExp::toElem: argsAddresses[cast(ulong)currentArg] @ const(void)* * * * * * * * * * * * * * * * * * VarExp::toElem: argsAddresses @ const(void)*[2] * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('argsAddresses' of type 'const(void)*[2]') * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * CastExp::toElem: cast(ulong)currentArg @ ulong * * * * * * * * * * * * * * * * * * VarExp::toElem: currentArg @ uint * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('currentArg' of type 'uint') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * Casting from 'uint' to 'ulong' * * * * * * * * * * * * * * * * * * * cast to: i64 * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(520) * * * * * * * * * * * * * * * Loading struct type for function argument * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(521) * * * * * * * * * * * * AddAssignExp::toElem: currentArg += 1u @ uint * * * * * * * * * * * * * Caching l-value of currentArg += 1u => currentArg * * * * * * * * * * * * * * VarExp::toElem: currentArg @ uint * * * * * * * * * * * * * * * DtoSymbolAddress ('currentArg' of type 'uint') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * AddExp::toElem: currentArg + 1u @ uint * * * * * * * * * * * * * * VarExp::toElem: currentArg @ uint * * * * * * * * * * * * * * IntegerExp::toElem: 1u @ uint * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1u @ uint * * * * * * * * * * * * * * * * value = i32 1 * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * lhs: %currentArg = alloca i32, align 4 * * * * * * * * * * * * * * rhs: %156 = add i32 %155, 1 * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/format.d(524) * * * * * * VarExp::toElem: currentArg @ uint * * * * * * * DtoSymbolAddress ('currentArg' of type 'uint') * * * * * * * * a normal variable * * * * * * return value is '0x12ad91a8' * TemplateInstance::codegen: 'std.format.formattedWrite!(Appender!string, char, string, char).formattedWrite.__lambda7!string' * * DtoDefineFunction(std.format.formattedWrite!(Appender!string, char, string, char).formattedWrite.__lambda7): /usr/include/dlang/ldc/std/format.d(437) * TemplateInstance::codegen: 'std.format.formatGeneric!(Appender!string, char, char)' * * DtoDefineFunction(std.format.formatGeneric!(Appender!string, char, char).formatGeneric): /usr/include/dlang/ldc/std/format.d(3455) * * * Doing function body for: formatGeneric * * * DtoCreateNestedContext for formatGeneric * * * * DtoCreateNestedContextType for std.format.formatGeneric!(Appender!string, char, char).formatGeneric * * * CompoundStatement::toIR(): * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3457) * * * * * CallExp::toElem: formatValue(w, *cast(char*)arg, f) @ void * * * * * * VarExp::toElem: formatValue @ pure @safe void(Appender!string w, char obj, ref FormatSpec!char f) * * * * * * * DtoSymbolAddress ('formatValue' of type 'pure @safe void(Appender!string w, char obj, ref FormatSpec!char f)') * * * * * * * * FuncDeclaration * * * * * * DtoCallFunction() * * * * * * * doing normal arguments * * * * * * * Arguments so far: (0) * * * * * * * Function type: pure @safe void(Appender!string w, char obj, ref FormatSpec!char f) * * * * * * * DtoArgument * * * * * * * * VarExp::toElem: w @ Appender!string * * * * * * * * * DtoSymbolAddress ('w' of type 'Appender!string') * * * * * * * * * * function param * * * * * * * * * * type: Appender!string * * * * * * * DtoArgument * * * * * * * * PtrExp::toElem: *cast(char*)arg @ char * * * * * * * * * CastExp::toElem: cast(char*)arg @ char* * * * * * * * * * * VarExp::toElem: arg @ const(void)* * * * * * * * * * * * DtoSymbolAddress ('arg' of type 'const(void)*') * * * * * * * * * * * * function param * * * * * * * * * * * * type: const(void)* * * * * * * * * * * Casting from 'const(void)*' to 'char*' * * * * * * * * * * * src: %1 = load i8*, i8** %arg * * * * * * * * * * * to type: i8* * * * * * * * DtoArgument * * * * * * * * VarExp::toElem: f @ FormatSpec!char * * * * * * * * * DtoSymbolAddress ('f' of type 'FormatSpec!char') * * * * * * * * * * function param * * * * * * * * * * type: FormatSpec!char * * * * * * * Loading struct type for function argument * TemplateInstance::codegen: 'std.format.formattedWrite!(Appender!string, char, string, char).formattedWrite.__lambda9!char' * * DtoDefineFunction(std.format.formattedWrite!(Appender!string, char, string, char).formattedWrite.__lambda9): /usr/include/dlang/ldc/std/format.d(437) * TemplateInstance::codegen: 'std.format.getNthInt!(string, char)' * * DtoDefineFunction(std.format.getNthInt!(string, char).getNthInt): /usr/include/dlang/ldc/std/format.d(3501) * * * Doing function body for: getNthInt * * * DtoCreateNestedContext for getNthInt * * * * DtoCreateNestedContextType for std.format.getNthInt!(string, char).getNthInt * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3502) * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3506) * * * * * * VarExp::toElem: index @ uint * * * * * * * DtoSymbolAddress ('index' of type 'uint') * * * * * * * * function param * * * * * * * * type: uint * * * * * * if conditional: %1 = load i32, i32* %index * * * * * * Casting from 'uint' to 'bool' * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3507) * * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3508) * * * * * * * * CallExp::toElem: getNthInt(index - 1u, _param_2) @ int * * * * * * * * * VarExp::toElem: getNthInt @ pure @safe int(uint index, char _param_1) * * * * * * * * * * DtoSymbolAddress ('getNthInt' of type 'pure @safe int(uint index, char _param_1)') * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * DtoFunctionType(pure @safe int(uint index, char _param_1)) * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * Final function type: i32 (i8, i32) * * * * * * * * * * * DtoResolveFunction(std.format.getNthInt!(char).getNthInt): /usr/include/dlang/ldc/std/format.d(3501) * * * * * * * * * * * * DtoDeclareFunction(std.format.getNthInt!(char).getNthInt): /usr/include/dlang/ldc/std/format.d(3501) * * * * * * * * * * * * * DtoFunctionType(pure @safe int(uint index, char _param_1)) * * * * * * * * * * * * * func = declare i32 @_D3std6format16__T9getNthIntTaZ9getNthIntFNaNfkaZi(i8, i32) * * * * * * * * * DtoCallFunction() * * * * * * * * * * Building type: pure @safe int(uint index, char _param_1) * * * * * * * * * * * DtoFunctionType(pure @safe int(uint index, char _param_1)) * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * Final function type: i32 (i8, i32) * * * * * * * * * * doing normal arguments * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * Function type: pure @safe int(uint index, char _param_1) * * * * * * * * * * DtoArgument * * * * * * * * * * * MinExp::toElem: index - 1u @ uint * * * * * * * * * * * * VarExp::toElem: index @ uint * * * * * * * * * * * * * DtoSymbolAddress ('index' of type 'uint') * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * type: uint * * * * * * * * * * * * IntegerExp::toElem: 1u @ uint * * * * * * * * * * * * * IntegerExp::toConstElem: 1u @ uint * * * * * * * * * * * * * * value = i32 1 * * * * * * * * * * DtoArgument * * * * * * * * * * * VarExp::toElem: _param_2 @ char * * * * * * * * * * * * DtoSymbolAddress ('_param_2' of type 'char') * * * * * * * * * * * * * function param * * * * * * * * * * * * * type: char * * * * * * * * return value is '0x12ade408' * * * * * ThrowStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3516) * * * * * * NewExp::toElem: new FormatException("int expected", "/usr/include/dlang/ldc/std/format.d", 3516LU, null) @ std.format.FormatException * * * * * * * new class * * * * * * * Calling constructor * * * * * * * DtoCallFunction() * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (1) * * * * * * * * * %.newclass_gc = bitcast %object.Object* %.newclass_gc_alloc to %std.format.FormatException* * * * * * * * * Function type: pure nothrow @safe FormatException(string msg, string fn = __FILE__, ulong ln = cast(ulong)__LINE__, Throwable next = null) * * * * * * * * DtoArgument * * * * * * * * * StringExp::toElem: "int expected" @ string * * * * * * * * DtoArgument * * * * * * * * * StringExp::toElem: "/usr/include/dlang/ldc/std/format.d" @ string * * * * * * * * DtoArgument * * * * * * * * * IntegerExp::toElem: 3516LU @ ulong * * * * * * * * * * IntegerExp::toConstElem: 3516LU @ ulong * * * * * * * * * * * value = i64 3516 * * * * * * * * DtoArgument * * * * * * * * * NullExp::toElem(type=object.Throwable): null * * * * * * * * * * NullExp::toConstElem(type=object.Throwable): null * * * * * * * * Rewrite: putParam * TemplateInstance::codegen: 'std.format.getNthInt!(char)' * * DtoDefineFunction(std.format.getNthInt!(char).getNthInt): /usr/include/dlang/ldc/std/format.d(3501) * * * Doing function body for: getNthInt * * * DtoCreateNestedContext for getNthInt * * * * DtoCreateNestedContextType for std.format.getNthInt!(char).getNthInt * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3502) * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3506) * * * * * * VarExp::toElem: index @ uint * * * * * * * DtoSymbolAddress ('index' of type 'uint') * * * * * * * * function param * * * * * * * * type: uint * * * * * * if conditional: %1 = load i32, i32* %index * * * * * * Casting from 'uint' to 'bool' * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3507) * * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3508) * * * * * * * * CallExp::toElem: getNthInt(index - 1u) @ int * * * * * * * * * VarExp::toElem: getNthInt @ pure @safe int(uint index) * * * * * * * * * * DtoSymbolAddress ('getNthInt' of type 'pure @safe int(uint index)') * * * * * * * * * * * FuncDeclaration * * * * * * * * * DtoCallFunction() * * * * * * * * * * doing normal arguments * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * Function type: pure @safe int(uint index) * * * * * * * * * * DtoArgument * * * * * * * * * * * MinExp::toElem: index - 1u @ uint * * * * * * * * * * * * VarExp::toElem: index @ uint * * * * * * * * * * * * * DtoSymbolAddress ('index' of type 'uint') * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * type: uint * * * * * * * * * * * * IntegerExp::toElem: 1u @ uint * * * * * * * * * * * * * IntegerExp::toConstElem: 1u @ uint * * * * * * * * * * * * * * value = i32 1 * * * * * * * * return value is '0x12ae1150' * * * * * ThrowStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3516) * * * * * * NewExp::toElem: new FormatException("int expected", "/usr/include/dlang/ldc/std/format.d", 3516LU, null) @ std.format.FormatException * * * * * * * new class * * * * * * * Calling constructor * * * * * * * DtoCallFunction() * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (1) * * * * * * * * * %.newclass_gc = bitcast %object.Object* %.newclass_gc_alloc to %std.format.FormatException* * * * * * * * * Function type: pure nothrow @safe FormatException(string msg, string fn = __FILE__, ulong ln = cast(ulong)__LINE__, Throwable next = null) * * * * * * * * DtoArgument * * * * * * * * * StringExp::toElem: "int expected" @ string * * * * * * * * DtoArgument * * * * * * * * * StringExp::toElem: "/usr/include/dlang/ldc/std/format.d" @ string * * * * * * * * DtoArgument * * * * * * * * * IntegerExp::toElem: 3516LU @ ulong * * * * * * * * * * IntegerExp::toConstElem: 3516LU @ ulong * * * * * * * * * * * value = i64 3516 * * * * * * * * DtoArgument * * * * * * * * * NullExp::toElem(type=object.Throwable): null * * * * * * * * * * NullExp::toConstElem(type=object.Throwable): null * * * * * * * * Rewrite: putParam * TemplateInstance::codegen: 'std.format.formatNth!(Appender!string, char, string, char)' * * DtoDefineFunction(std.format.formatNth!(Appender!string, char, string, char).formatNth): /usr/include/dlang/ldc/std/format.d(3460) * * * Doing function body for: formatNth * * * DtoCreateNestedContext for formatNth * * * * DtoCreateNestedContextType for std.format.formatNth!(Appender!string, char, string, char).formatNth * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3461) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3463) * * * * * * DeclarationExp::toElem: static template gencode(ulong count) | T=void * * * * * * * DtoDeclarationExp: __anonymous * * * * * * * * AttribDeclaration * * * * * * * * DtoDeclarationExp: gencode(ulong count)() * * * * * * * * * Ignoring Symbol: template * * * * * SwitchStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3477) * * * * * * has default * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3478) * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3478) * * * * * * * * CaseStatement::toIR(): /usr/include/dlang/ldc/std/format.d-mixin-3479(3479) * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * value = i64 0 * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d-mixin-3479(3479) * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d-mixin-3479(3479) * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d-mixin-3479(3479) * * * * * * * * * * * * CallExp::toElem: formatValue(w, _param_3, f) @ void * * * * * * * * * * * * * VarExp::toElem: formatValue @ pure @safe void(Appender!string w, string obj, ref FormatSpec!char f) * * * * * * * * * * * * * * DtoSymbolAddress ('formatValue' of type 'pure @safe void(Appender!string w, string obj, ref FormatSpec!char f)') * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * Function type: pure @safe void(Appender!string w, string obj, ref FormatSpec!char f) * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * VarExp::toElem: w @ Appender!string * * * * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'Appender!string') * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * type: Appender!string * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * VarExp::toElem: _param_3 @ string * * * * * * * * * * * * * * * * DtoSymbolAddress ('_param_3' of type 'string') * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * type: string * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * VarExp::toElem: f @ FormatSpec!char * * * * * * * * * * * * * * * * DtoSymbolAddress ('f' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * type: FormatSpec!char * * * * * * * * * * * * * * Loading struct type for function argument * * * * * * * * * * * BreakStatement::toIR(): /usr/include/dlang/ldc/std/format.d-mixin-3479(3479) * * * * * * * * CaseStatement::toIR(): /usr/include/dlang/ldc/std/format.d-mixin-3479(3479) * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * value = i64 1 * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d-mixin-3479(3479) * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d-mixin-3479(3479) * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d-mixin-3479(3479) * * * * * * * * * * * * CallExp::toElem: formatValue(w, _param_4, f) @ void * * * * * * * * * * * * * VarExp::toElem: formatValue @ pure @safe void(Appender!string w, char obj, ref FormatSpec!char f) * * * * * * * * * * * * * * DtoSymbolAddress ('formatValue' of type 'pure @safe void(Appender!string w, char obj, ref FormatSpec!char f)') * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * Function type: pure @safe void(Appender!string w, char obj, ref FormatSpec!char f) * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * VarExp::toElem: w @ Appender!string * * * * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'Appender!string') * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * type: Appender!string * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * VarExp::toElem: _param_4 @ char * * * * * * * * * * * * * * * * DtoSymbolAddress ('_param_4' of type 'char') * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * type: char * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * VarExp::toElem: f @ FormatSpec!char * * * * * * * * * * * * * * * * DtoSymbolAddress ('f' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * type: FormatSpec!char * * * * * * * * * * * * * * Loading struct type for function argument * * * * * * * * * * * BreakStatement::toIR(): /usr/include/dlang/ldc/std/format.d-mixin-3479(3479) * * * * * * * * DefaultStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3481) * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3481) * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3482) * * * * * * * * * * * HaltExp::toElem: halt * * * * * * VarExp::toElem: index @ ulong * * * * * * * DtoSymbolAddress ('index' of type 'ulong') * * * * * * * * function param * * * * * * * * type: ulong * TemplateInstance::codegen: 'std.format.formatNth!(Appender!string, char, string, char).formatNth.gencode!2LU' * * DtoDefineFunction(std.format.formatNth!(Appender!string, char, string, char).formatNth.gencode!2LU.gencode): /usr/include/dlang/ldc/std/format.d(3463) * * * DtoFunctionType(pure nothrow @safe string()) * * * * x86-64 ABI: Transforming return type * * * * x86-64 ABI: Transforming argument types * * * * Final function type: { i64, i8* } () * * * DtoResolveFunction(std.format.formatNth!(Appender!string, char, string, char).formatNth.gencode!2LU.gencode): /usr/include/dlang/ldc/std/format.d(3463) * * * * DtoDeclareFunction(std.format.formatNth!(Appender!string, char, string, char).formatNth.gencode!2LU.gencode): /usr/include/dlang/ldc/std/format.d(3463) * * * * * DtoFunctionType(pure nothrow @safe string()) * * * * * func = declare { i64, i8* } @_D3std6format62__T9formatNthTS3std5array17__T8AppenderTAyaZ8AppenderTaTAyaTaZ9formatNthFS3std5array17__T8AppenderTAyaZ8AppenderKS3std6format18__T10FormatSpecTaZ10FormatSpecmAyaaZ16__T7gencodeVmi2Z7gencodeFNaNbNfZAya() * * * Doing function body for: gencode * * * DtoCreateNestedContext for gencode * * * * DtoCreateNestedContextType for std.format.formatNth!(Appender!string, char, string, char).formatNth.gencode!2LU.gencode * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3464) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3465) * * * * * * DeclarationExp::toElem: string result = null; | T=void * * * * * * * DtoDeclarationExp: result * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = string) * * * * * * * * * llvm value for decl: %result = alloca { i64, i8* }, align 8 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: result = null | (string)(string = string) * * * * * * * * * * VarExp::toElem: result @ string * * * * * * * * * * * DtoSymbolAddress ('result' of type 'string') * * * * * * * * * * * * a normal variable * * * * * * * * * * NullExp::toElem(type=string): null * * * * * * * * * * * NullExp::toConstElem(type=string): null * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * DtoSetArrayToNull * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3466) * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3466) * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3466) * * * * * * * * DeclarationExp::toElem: ulong __key3411 = 0LU; | T=void * * * * * * * * * DtoDeclarationExp: __key3411 * * * * * * * * * * VarDeclaration * * * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * * * llvm value for decl: %__key3411 = alloca i64, align 8 * * * * * * * * * * * expression initializer * * * * * * * * * * * AssignExp::toElem: __key3411 = 0LU | (ulong)(ulong = ulong) * * * * * * * * * * * * VarExp::toElem: __key3411 @ ulong * * * * * * * * * * * * * DtoSymbolAddress ('__key3411' of type 'ulong') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * lhs: %__key3411 = alloca i64, align 8 * * * * * * * * * * * * * rhs: i64 0 * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3466) * * * * * * * * DeclarationExp::toElem: ulong __limit3412 = 2LU; | T=void * * * * * * * * * DtoDeclarationExp: __limit3412 * * * * * * * * * * VarDeclaration * * * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * * * llvm value for decl: %__limit3412 = alloca i64, align 8 * * * * * * * * * * * expression initializer * * * * * * * * * * * AssignExp::toElem: __limit3412 = 2LU | (ulong)(ulong = ulong) * * * * * * * * * * * * VarExp::toElem: __limit3412 @ ulong * * * * * * * * * * * * * DtoSymbolAddress ('__limit3412' of type 'ulong') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * IntegerExp::toElem: 2LU @ ulong * * * * * * * * * * * * * IntegerExp::toConstElem: 2LU @ ulong * * * * * * * * * * * * * * value = i64 2 * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * lhs: %__limit3412 = alloca i64, align 8 * * * * * * * * * * * * * rhs: i64 2 * * * * * * * ForStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3466) * * * * * * * * CmpExp::toElem: __key3411 < __limit3412 @ bool * * * * * * * * * VarExp::toElem: __key3411 @ ulong * * * * * * * * * * DtoSymbolAddress ('__key3411' of type 'ulong') * * * * * * * * * * * a normal variable * * * * * * * * * VarExp::toElem: __limit3412 @ ulong * * * * * * * * * * DtoSymbolAddress ('__limit3412' of type 'ulong') * * * * * * * * * * * a normal variable * * * * * * * * * type 1: %1 = load i64, i64* %__key3411 * * * * * * * * * type 2: %2 = load i64, i64* %__limit3412 * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3466) * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3466) * * * * * * * * * * DeclarationExp::toElem: ulong n = __key3411; | T=void * * * * * * * * * * * DtoDeclarationExp: n * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * * * * * llvm value for decl: %n = alloca i64, align 8 * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * AssignExp::toElem: n = __key3411 | (ulong)(ulong = ulong) * * * * * * * * * * * * * * VarExp::toElem: n @ ulong * * * * * * * * * * * * * * * DtoSymbolAddress ('n' of type 'ulong') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * VarExp::toElem: __key3411 @ ulong * * * * * * * * * * * * * * * DtoSymbolAddress ('__key3411' of type 'ulong') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * lhs: %n = alloca i64, align 8 * * * * * * * * * * * * * * * rhs: %4 = load i64, i64* %__key3411 * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3468) * * * * * * * * * * DeclarationExp::toElem: string num = to(n); | T=void * * * * * * * * * * * DtoDeclarationExp: num * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * DtoVarDeclaration(vdtype = string) * * * * * * * * * * * * * llvm value for decl: %num = alloca { i64, i8* }, align 8 * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * AssignExp::toElem: num = to(n) | (string)(string = string) * * * * * * * * * * * * * * VarExp::toElem: num @ string * * * * * * * * * * * * * * * DtoSymbolAddress ('num' of type 'string') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * CallExp::toElem: to(n) @ string * * * * * * * * * * * * * * * VarExp::toElem: to @ pure nothrow @safe string(ulong _param_0) * * * * * * * * * * * * * * * * DtoSymbolAddress ('to' of type 'pure nothrow @safe string(ulong _param_0)') * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * Function type: pure nothrow @safe string(ulong _param_0) * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * VarExp::toElem: n @ ulong * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('n' of type 'ulong') * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * SetArray * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3469) * * * * * * * * * * CatAssignExp::toElem: result ~= "case " ~ num ~ ": formatValue(w, args[" ~ num ~ "], f); break;" @ string * * * * * * * * * * * VarExp::toElem: result @ string * * * * * * * * * * * * DtoSymbolAddress ('result' of type 'string') * * * * * * * * * * * * * a normal variable * * * * * * * * * * * DtoCatAssignArray * * * * * * * * * * * * CatExp::toElem: "case " ~ num ~ ": formatValue(w, args[" ~ num ~ "], f); break;" @ string * * * * * * * * * * * * * DtoCatAssignArray * * * * * * * * * * * * * * StringExp::toElem: "], f); break;" @ string * * * * * * * * * * * * * * VarExp::toElem: num @ string * * * * * * * * * * * * * * * DtoSymbolAddress ('num' of type 'string') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * StringExp::toElem: ": formatValue(w, args[" @ string * * * * * * * * * * * * * * VarExp::toElem: num @ string * * * * * * * * * * * * * * * DtoSymbolAddress ('num' of type 'string') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * StringExp::toElem: "case " @ string * * * * * * * * * * * * * * DtoTypeInfoOf(type = 'string', base='1') * * * * * * * * * * * * * * * Type::getTypeInfo(): string * * * * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(string)) * * * * * * * * * * * * DtoTypeInfoOf(type = 'string', base='1') * * * * * * * * * * * * * Type::getTypeInfo(): string * * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(string)) * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * SetArray * * * * * * * * AddAssignExp::toElem: __key3411 += 1LU @ ulong * * * * * * * * * Caching l-value of __key3411 += 1LU => __key3411 * * * * * * * * * * VarExp::toElem: __key3411 @ ulong * * * * * * * * * * * DtoSymbolAddress ('__key3411' of type 'ulong') * * * * * * * * * * * * a normal variable * * * * * * * * * AddExp::toElem: __key3411 + 1LU @ ulong * * * * * * * * * * VarExp::toElem: __key3411 @ ulong * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * value = i64 1 * * * * * * * * * DtoAssign() * * * * * * * * * * lhs: %__key3411 = alloca i64, align 8 * * * * * * * * * * rhs: %21 = add i64 %20, 1 * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3474) * * * * * * VarExp::toElem: result @ string * * * * * * * DtoSymbolAddress ('result' of type 'string') * * * * * * * * a normal variable * * * * * * return value is '0x12aef768' * TemplateInstance::codegen: 'std.array.Appender!(string[]).Appender.canPutItem!string' * TemplateInstance::codegen: 'std.array.Appender!(string[]).Appender.canPutConstRange!string' * TemplateInstance::codegen: 'std.array.Appender!(string[]).Appender.canPutRange!string' * TemplateInstance::codegen: 'std.array.Appender!(string[]).Appender.canPutItem!dchar' * TemplateInstance::codegen: 'std.array.Appender!(string[]).Appender.canPutConstRange!dchar' * TemplateInstance::codegen: 'std.array.Appender!(string[]).Appender.canPutRange!dchar' * TemplateInstance::codegen: 'std.array.Appender!(string[]).Appender.put!string' * * DtoDefineFunction(std.array.Appender!(string[]).Appender.put!string.put): /usr/include/dlang/ldc/std/array.d(2770) * * * isMember = this is: Appender!(string[]) * * * DtoFunctionType(pure nothrow @safe void(string item)) * * * * x86-64 ABI: Transforming argument types * * * * Final function type: void (%"std.array.Appender!(string[]).Appender"*, { i64, i8* }) * * * DtoResolveFunction(std.array.Appender!(string[]).Appender.put!string.put): /usr/include/dlang/ldc/std/array.d(2770) * * * * DtoDeclareFunction(std.array.Appender!(string[]).Appender.put!string.put): /usr/include/dlang/ldc/std/array.d(2770) * * * * * isMember = this is: Appender!(string[]) * * * * * DtoFunctionType(pure nothrow @safe void(string item)) * * * * * func = declare void @_D3std5array18__T8AppenderTAAyaZ8Appender12__T3putTAyaZ3putMFNaNbNfAyaZv(%"std.array.Appender!(string[]).Appender"*, { i64, i8* }) * * * Doing function body for: put * * * DtoCreateNestedContext for put * * * * DtoCreateNestedContextType for std.array.Appender!(string[]).Appender.put!string.put * * * * * has nested frame * * * * * Function put has depth 0 * * * * * Nested var 'this' of type %"std.array.Appender!(string[]).Appender"* * * * * * Nested var 'len' of type i64 * * * * * frameType = %nest.put.9 = type { %"std.array.Appender!(string[]).Appender"*, i64 } * * * * nested param: this * * * * nested var: len * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2771) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2787) * * * * * * CallExp::toElem: this.ensureAddable(1LU) @ void * * * * * * * DotVarExp::toElem: this.ensureAddable @ pure nothrow @trusted void(ulong nelems) * * * * * * * * ThisExp::toElem: this @ Appender!(string[]) * * * * * * * * * normal this exp * * * * * * * DtoCallFunction() * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (1) * * * * * * * * * %"std.array.Appender!(string[]).Appender"* %.this_arg * * * * * * * * Function type: pure nothrow @trusted void(ulong nelems) * * * * * * * * DtoArgument * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * value = i64 1 * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2788) * * * * * * DeclarationExp::toElem: immutable immutable(ulong) len = (*this._data).arr.length; | T=void * * * * * * * DtoDeclarationExp: len * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = immutable(ulong)) * * * * * * * * * has nestedref set (referenced by nested function/delegate) * * * * * * * * * llvm value for decl: %len = getelementptr %nest.put.9, %nest.put.9* %.frame, i32 0, i32 1 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: len = (*this._data).arr.length | (immutable(ulong))(immutable(ulong) = immutable(ulong)) * * * * * * * * * * VarExp::toElem: len @ immutable(ulong) * * * * * * * * * * * DtoSymbolAddress ('len' of type 'immutable(ulong)') * * * * * * * * * * * * nested variable * * * * * * * * * * * * DtoNestedVariable for len @ /usr/include/dlang/ldc/std/array.d(2788) * * * * * * * * * * ArrayLengthExp::toElem: (*this._data).arr.length @ immutable(ulong) * * * * * * * * * * * DotVarExp::toElem: (*this._data).arr @ string[] * * * * * * * * * * * * PtrExp::toElem: *this._data @ Data * * * * * * * * * * * * * DotVarExp::toElem: this._data @ Data* * * * * * * * * * * * * * * ThisExp::toElem: this @ Appender!(string[]) * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * Indexing aggregate field std.array.Appender!(string[]).Appender._data: * * * * * * * * * * * * * * * Value: %1 = getelementptr %"std.array.Appender!(string[]).Appender", %"std.array.Appender!(string[]).Appender"* %.this_arg, i32 0, i32 0 * * * * * * * * * * * * Indexing aggregate field std.array.Appender!(string[]).Appender.Data.arr: * * * * * * * * * * * * * Value: %3 = getelementptr %"std.array.Appender!(string[]).Appender.Data", %"std.array.Appender!(string[]).Appender.Data"* %2, i32 0, i32 1 * * * * * * * * * * * DtoArrayLen * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %len = getelementptr %nest.put.9, %nest.put.9* %.frame, i32 0, i32 1 * * * * * * * * * * * rhs: %.len = load i64, i64* %4 * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2790) * * * * * * DeclarationExp::toElem: string[] bigData = delegate () => (cast(string*)(*this._data).arr)[0..len + 1LU](); | T=void * * * * * * * DtoDeclarationExp: bigData * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = string[]) * * * * * * * * * llvm value for decl: %bigData = alloca { i64, { i64, i8* }* }, align 8 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: bigData = delegate () => (cast(string*)(*this._data).arr)[0..len + 1LU]() | (string[])(string[] = string[]) * * * * * * * * * * VarExp::toElem: bigData @ string[] * * * * * * * * * * * DtoSymbolAddress ('bigData' of type 'string[]') * * * * * * * * * * * * a normal variable * * * * * * * * * * CallExp::toElem: delegate () => (cast(string*)(*this._data).arr)[0..len + 1LU]() @ string[] * * * * * * * * * * * FuncExp::toElem: __lambda2 @ string[] delegate() pure nothrow @nogc @trusted * * * * * * * * * * * * nested * * * * * * * * * * * * kind = delegate * * * * * * * * * * * * DtoDefineFunction(std.array.Appender!(string[]).Appender.put!string.put.__lambda2): /usr/include/dlang/ldc/std/array.d(2790) * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted string[]()) * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * Final function type: { i64, { i64, i8* }* } (i8*) * * * * * * * * * * * * * DtoResolveFunction(std.array.Appender!(string[]).Appender.put!string.put.__lambda2): /usr/include/dlang/ldc/std/array.d(2790) * * * * * * * * * * * * * * DtoDeclareFunction(std.array.Appender!(string[]).Appender.put!string.put.__lambda2): /usr/include/dlang/ldc/std/array.d(2790) * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted string[]()) * * * * * * * * * * * * * * * func = declare { i64, { i64, i8* }* } @_D3std5array18__T8AppenderTAAyaZ8Appender12__T3putTAyaZ3putMFAyaZ9__lambda2MFNaNbNiNeZAAya(i8*) * * * * * * * * * * * * * Doing function body for: __lambda2 * * * * * * * * * * * * * DtoCreateNestedContext for __lambda2 * * * * * * * * * * * * * * DtoCreateNestedContextType for std.array.Appender!(string[]).Appender.put!string.put.__lambda2 * * * * * * * * * * * * * * * DtoCreateNestedContextType for std.array.Appender!(string[]).Appender.put!string.put * * * * * * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2790) * * * * * * * * * * * * * * * SliceExp::toElem: (cast(string*)(*this._data).arr)[0..len + 1LU] @ string[] * * * * * * * * * * * * * * * * CastExp::toElem: cast(string*)(*this._data).arr @ string* * * * * * * * * * * * * * * * * * DotVarExp::toElem: (*this._data).arr @ string[] * * * * * * * * * * * * * * * * * * PtrExp::toElem: *this._data @ Data * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: this._data @ Data* * * * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Appender!(string[]) * * * * * * * * * * * * * * * * * * * * * nested this exp * * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for this @ /usr/include/dlang/ldc/std/array.d(2790) * * * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for std.array.Appender!(string[]).Appender.put!string.put * * * * * * * * * * * * * * * * * * * * * * Context: %2 = bitcast i8* %1 to %nest.put.9* * * * * * * * * * * * * * * * * * * * * * * of type: %nest.put.9 = type { %"std.array.Appender!(string[]).Appender"*, i64 } * * * * * * * * * * * * * * * * * * * * * * Variable: this * * * * * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * * * * * Function: __lambda2 * * * * * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * * * * * Addr: %this = getelementptr %nest.put.9, %nest.put.9* %2, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * * * * of type: %"std.array.Appender!(string[]).Appender"** * * * * * * * * * * * * * * * * * * * * * * Was byref, now: %3 = load %"std.array.Appender!(string[]).Appender"*, %"std.array.Appender!(string[]).Appender"** %this, align 8 * * * * * * * * * * * * * * * * * * * * * * of type: %"std.array.Appender!(string[]).Appender"* * * * * * * * * * * * * * * * * * * * * Indexing aggregate field std.array.Appender!(string[]).Appender._data: * * * * * * * * * * * * * * * * * * * * * Value: %4 = getelementptr %"std.array.Appender!(string[]).Appender", %"std.array.Appender!(string[]).Appender"* %3, i32 0, i32 0 * * * * * * * * * * * * * * * * * * Indexing aggregate field std.array.Appender!(string[]).Appender.Data.arr: * * * * * * * * * * * * * * * * * * * Value: %6 = getelementptr %"std.array.Appender!(string[]).Appender.Data", %"std.array.Appender!(string[]).Appender.Data"* %5, i32 0, i32 1 * * * * * * * * * * * * * * * * * Casting from 'string[]' to 'string*' * * * * * * * * * * * * * * * * * * DtoCastArray * * * * * * * * * * * * * * * * * * * from array or sarray * * * * * * * * * * * * * * * * * * * to pointer * * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * * * * AddExp::toElem: len + 1LU @ ulong * * * * * * * * * * * * * * * * * VarExp::toElem: len @ ulong * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('len' of type 'immutable(ulong)') * * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * * DtoNestedVariable for len @ /usr/include/dlang/ldc/std/array.d(2790) * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for std.array.Appender!(string[]).Appender.put!string.put * * * * * * * * * * * * * * * * * * * * Context: %9 = bitcast i8* %8 to %nest.put.9* * * * * * * * * * * * * * * * * * * * * of type: %nest.put.9 = type { %"std.array.Appender!(string[]).Appender"*, i64 } * * * * * * * * * * * * * * * * * * * * Variable: len * * * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * * * Function: __lambda2 * * * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * * * Addr: %len = getelementptr %nest.put.9, %nest.put.9* %9, i32 0, i32 1 * * * * * * * * * * * * * * * * * * * * of type: i64* * * * * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * * * return value is '0x12af7130' * * * * * * * * * * * * Building type: string[] delegate() pure nothrow @nogc @trusted * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted string[]()) * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * Final function type: { i64, { i64, i8* }* } (i8*) * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * %.ptr = extractvalue { i8*, { i64, { i64, i8* }* } (i8*)* } %.func, 0 * * * * * * * * * * * * Function type: pure nothrow @nogc @trusted string[]() * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * SetArray * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2791) * * * * * * CallExp::toElem: emplaceRef(bigData[len], item) @ string * * * * * * * VarExp::toElem: emplaceRef @ pure nothrow @nogc ref @safe string(ref string chunk, auto ref string _param_1) * * * * * * * * DtoSymbolAddress ('emplaceRef' of type 'pure nothrow @nogc ref @safe string(ref string chunk, auto ref string _param_1)') * * * * * * * * * FuncDeclaration * * * * * * * DtoCallFunction() * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (0) * * * * * * * * Function type: pure nothrow @nogc ref @safe string(ref string chunk, auto ref string _param_1) * * * * * * * * DtoArgument * * * * * * * * * IndexExp::toElem: bigData[len] @ string * * * * * * * * * * VarExp::toElem: bigData @ string[] * * * * * * * * * * * DtoSymbolAddress ('bigData' of type 'string[]') * * * * * * * * * * * * a normal variable * * * * * * * * * * VarExp::toElem: len @ ulong * * * * * * * * * * * DtoSymbolAddress ('len' of type 'immutable(ulong)') * * * * * * * * * * * * nested variable * * * * * * * * * * * * DtoNestedVariable for len @ /usr/include/dlang/ldc/std/array.d(2791) * * * * * * * * * * DtoArrayLen * * * * * * * * * * DtoArrayPtr * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: item @ string * * * * * * * * * * DtoSymbolAddress ('item' of type 'string') * * * * * * * * * * * function param * * * * * * * * * * * type: string * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2793) * * * * * * AssignExp::toElem: (*this._data).arr = bigData | (string[])(string[] = string[]) * * * * * * * DotVarExp::toElem: (*this._data).arr @ string[] * * * * * * * * PtrExp::toElem: *this._data @ Data * * * * * * * * * DotVarExp::toElem: this._data @ Data* * * * * * * * * * * ThisExp::toElem: this @ Appender!(string[]) * * * * * * * * * * * normal this exp * * * * * * * * * * Indexing aggregate field std.array.Appender!(string[]).Appender._data: * * * * * * * * * * * Value: %16 = getelementptr %"std.array.Appender!(string[]).Appender", %"std.array.Appender!(string[]).Appender"* %.this_arg, i32 0, i32 0 * * * * * * * * Indexing aggregate field std.array.Appender!(string[]).Appender.Data.arr: * * * * * * * * * Value: %18 = getelementptr %"std.array.Appender!(string[]).Appender.Data", %"std.array.Appender!(string[]).Appender.Data"* %17, i32 0, i32 1 * * * * * * * VarExp::toElem: bigData @ string[] * * * * * * * * DtoSymbolAddress ('bigData' of type 'string[]') * * * * * * * * * a normal variable * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * DtoAssign() * * * * * * * * DtoArrayAssign * * * * * * * * * DtoArrayPtr * * * * * * * * * DtoArrayLen * * * * * * * * * SetArray * TemplateInstance::codegen: 'std.array.appenderNewCapacity!16LU' * * DtoDefineFunction(std.array.appenderNewCapacity!16LU.appenderNewCapacity): /usr/include/dlang/ldc/std/array.d(2969) * * * Doing function body for: appenderNewCapacity * * * DtoCreateNestedContext for appenderNewCapacity * * * * DtoCreateNestedContextType for std.array.appenderNewCapacity!16LU.appenderNewCapacity * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2970) * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2973) * * * * * * EqualExp::toElem: curLen == 0LU @ bool * * * * * * * VarExp::toElem: curLen @ ulong * * * * * * * * DtoSymbolAddress ('curLen' of type 'ulong') * * * * * * * * * function param * * * * * * * * * type: ulong * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * value = i64 0 * * * * * * * integral or pointer or interface * * * * * * * lv: %1 = load i64, i64* %curLen * * * * * * * rv: i64 0 * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2974) * * * * * * * CallExp::toElem: max(reqLen, 8) @ ulong * * * * * * * * VarExp::toElem: max @ pure nothrow @nogc @safe ulong(ulong _param_0, int _param_1) * * * * * * * * * DtoSymbolAddress ('max' of type 'pure nothrow @nogc @safe ulong(ulong _param_0, int _param_1)') * * * * * * * * * * FuncDeclaration * * * * * * * * DtoCallFunction() * * * * * * * * * doing normal arguments * * * * * * * * * Arguments so far: (0) * * * * * * * * * Function type: pure nothrow @nogc @safe ulong(ulong _param_0, int _param_1) * * * * * * * * * DtoArgument * * * * * * * * * * VarExp::toElem: reqLen @ ulong * * * * * * * * * * * DtoSymbolAddress ('reqLen' of type 'ulong') * * * * * * * * * * * * function param * * * * * * * * * * * * type: ulong * * * * * * * * * DtoArgument * * * * * * * * * * IntegerExp::toElem: 8 @ int * * * * * * * * * * * IntegerExp::toConstElem: 8 @ int * * * * * * * * * * * * value = i32 8 * * * * * * * return value is '0x12afba78' * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2975) * * * * * * DeclarationExp::toElem: ulong mult = 100LU + 1000LU / cast(ulong)(bsr(curLen * 16LU) + 1); | T=void * * * * * * * DtoDeclarationExp: mult * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * llvm value for decl: %mult = alloca i64, align 8 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: mult = 100LU + 1000LU / cast(ulong)(bsr(curLen * 16LU) + 1) | (ulong)(ulong = ulong) * * * * * * * * * * VarExp::toElem: mult @ ulong * * * * * * * * * * * DtoSymbolAddress ('mult' of type 'ulong') * * * * * * * * * * * * a normal variable * * * * * * * * * * AddExp::toElem: 100LU + 1000LU / cast(ulong)(bsr(curLen * 16LU) + 1) @ ulong * * * * * * * * * * * IntegerExp::toElem: 100LU @ ulong * * * * * * * * * * * * IntegerExp::toConstElem: 100LU @ ulong * * * * * * * * * * * * * value = i64 100 * * * * * * * * * * * DivExp::toElem: 1000LU / cast(ulong)(bsr(curLen * 16LU) + 1) @ ulong * * * * * * * * * * * * IntegerExp::toElem: 1000LU @ ulong * * * * * * * * * * * * * IntegerExp::toConstElem: 1000LU @ ulong * * * * * * * * * * * * * * value = i64 1000 * * * * * * * * * * * * CastExp::toElem: cast(ulong)(bsr(curLen * 16LU) + 1) @ ulong * * * * * * * * * * * * * AddExp::toElem: bsr(curLen * 16LU) + 1 @ int * * * * * * * * * * * * * * CallExp::toElem: bsr(curLen * 16LU) @ int * * * * * * * * * * * * * * * VarExp::toElem: bsr @ pure nothrow @nogc @safe int(ulong v) * * * * * * * * * * * * * * * * DtoSymbolAddress ('bsr' of type 'pure nothrow @nogc @safe int(ulong v)') * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @safe int(ulong v) * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * MulExp::toElem: curLen * 16LU @ ulong * * * * * * * * * * * * * * * * * * VarExp::toElem: curLen @ ulong * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('curLen' of type 'ulong') * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * type: ulong * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 16LU @ ulong * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 16LU @ ulong * * * * * * * * * * * * * * * * * * * * value = i64 16 * * * * * * * * * * * * * * IntegerExp::toElem: 1 @ int * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1 @ int * * * * * * * * * * * * * * * * value = i32 1 * * * * * * * * * * * * * Casting from 'int' to 'ulong' * * * * * * * * * * * * * * cast to: i64 * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %mult = alloca i64, align 8 * * * * * * * * * * * rhs: %11 = add i64 100, %10 * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2977) * * * * * * CmpExp::toElem: mult > 200LU @ bool * * * * * * * VarExp::toElem: mult @ ulong * * * * * * * * DtoSymbolAddress ('mult' of type 'ulong') * * * * * * * * * a normal variable * * * * * * * IntegerExp::toElem: 200LU @ ulong * * * * * * * * IntegerExp::toConstElem: 200LU @ ulong * * * * * * * * * value = i64 200 * * * * * * * type 1: %12 = load i64, i64* %mult * * * * * * * type 2: i64 200 * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2978) * * * * * * * AssignExp::toElem: mult = 200LU | (ulong)(ulong = ulong) * * * * * * * * VarExp::toElem: mult @ ulong * * * * * * * * * DtoSymbolAddress ('mult' of type 'ulong') * * * * * * * * * * a normal variable * * * * * * * * IntegerExp::toElem: 200LU @ ulong * * * * * * * * * IntegerExp::toConstElem: 200LU @ ulong * * * * * * * * * * value = i64 200 * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * DtoAssign() * * * * * * * * * lhs: %mult = alloca i64, align 8 * * * * * * * * * rhs: i64 200 * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2979) * * * * * * DeclarationExp::toElem: ulong sugLen = (curLen * mult + 99LU) / 100LU; | T=void * * * * * * * DtoDeclarationExp: sugLen * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * llvm value for decl: %sugLen = alloca i64, align 8 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: sugLen = (curLen * mult + 99LU) / 100LU | (ulong)(ulong = ulong) * * * * * * * * * * VarExp::toElem: sugLen @ ulong * * * * * * * * * * * DtoSymbolAddress ('sugLen' of type 'ulong') * * * * * * * * * * * * a normal variable * * * * * * * * * * DivExp::toElem: (curLen * mult + 99LU) / 100LU @ ulong * * * * * * * * * * * AddExp::toElem: curLen * mult + 99LU @ ulong * * * * * * * * * * * * MulExp::toElem: curLen * mult @ ulong * * * * * * * * * * * * * VarExp::toElem: curLen @ ulong * * * * * * * * * * * * * * DtoSymbolAddress ('curLen' of type 'ulong') * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * type: ulong * * * * * * * * * * * * * VarExp::toElem: mult @ ulong * * * * * * * * * * * * * * DtoSymbolAddress ('mult' of type 'ulong') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * IntegerExp::toElem: 99LU @ ulong * * * * * * * * * * * * * IntegerExp::toConstElem: 99LU @ ulong * * * * * * * * * * * * * * value = i64 99 * * * * * * * * * * * IntegerExp::toElem: 100LU @ ulong * * * * * * * * * * * * IntegerExp::toConstElem: 100LU @ ulong * * * * * * * * * * * * * value = i64 100 * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %sugLen = alloca i64, align 8 * * * * * * * * * * * rhs: %18 = udiv i64 %17, 100 * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/array.d(2980) * * * * * * CallExp::toElem: max(reqLen, sugLen) @ ulong * * * * * * * VarExp::toElem: max @ pure nothrow @nogc @safe ulong(ulong _param_0, ulong _param_1) * * * * * * * * DtoSymbolAddress ('max' of type 'pure nothrow @nogc @safe ulong(ulong _param_0, ulong _param_1)') * * * * * * * * * FuncDeclaration * * * * * * * DtoCallFunction() * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (0) * * * * * * * * Function type: pure nothrow @nogc @safe ulong(ulong _param_0, ulong _param_1) * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: reqLen @ ulong * * * * * * * * * * DtoSymbolAddress ('reqLen' of type 'ulong') * * * * * * * * * * * function param * * * * * * * * * * * type: ulong * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: sugLen @ ulong * * * * * * * * * * DtoSymbolAddress ('sugLen' of type 'ulong') * * * * * * * * * * * a normal variable * * * * * * return value is '0x12b00338' * TemplateInstance::codegen: 'std.range.primitives.hasSwappableElements!(string[])' * TemplateInstance::codegen: 'std.traits.isBlitAssignable!string' * TemplateInstance::codegen: 'std.algorithm.mutation.swap!string' * * DtoDefineFunction(std.algorithm.mutation.swap!string.swap): /usr/include/dlang/ldc/std/algorithm/mutation.d(1906) * * * DtoFunctionType(pure nothrow @nogc @trusted void(ref string lhs, ref string rhs)) * * * * x86-64 ABI: Transforming argument types * * * * Final function type: void ({ i64, i8* }*, { i64, i8* }*) * * * DtoResolveFunction(std.algorithm.mutation.swap!string.swap): /usr/include/dlang/ldc/std/algorithm/mutation.d(1906) * * * * DtoDeclareFunction(std.algorithm.mutation.swap!string.swap): /usr/include/dlang/ldc/std/algorithm/mutation.d(1906) * * * * * DtoFunctionType(pure nothrow @nogc @trusted void(ref string lhs, ref string rhs)) * * * * * func = declare void @_D3std9algorithm8mutation13__T4swapTAyaZ4swapFNaNbNiNeKAyaKAyaZv({ i64, i8* }*, { i64, i8* }*) * * * Doing function body for: swap * * * DtoCreateNestedContext for swap * * * * DtoCreateNestedContextType for std.algorithm.mutation.swap!string.swap * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/mutation.d(1908) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/mutation.d(1948) * * * * * * DeclarationExp::toElem: string tmp = lhs; | T=void * * * * * * * DtoDeclarationExp: tmp * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = string) * * * * * * * * * llvm value for decl: %tmp = alloca { i64, i8* }, align 8 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: tmp = lhs | (string)(string = string) * * * * * * * * * * VarExp::toElem: tmp @ string * * * * * * * * * * * DtoSymbolAddress ('tmp' of type 'string') * * * * * * * * * * * * a normal variable * * * * * * * * * * VarExp::toElem: lhs @ string * * * * * * * * * * * DtoSymbolAddress ('lhs' of type 'string') * * * * * * * * * * * * function param * * * * * * * * * * * * type: string * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * DtoAssign() * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * SetArray * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/mutation.d(1949) * * * * * * AssignExp::toElem: lhs = rhs | (string)(string = string) * * * * * * * VarExp::toElem: lhs @ string * * * * * * * * DtoSymbolAddress ('lhs' of type 'string') * * * * * * * * * function param * * * * * * * * * type: string * * * * * * * VarExp::toElem: rhs @ string * * * * * * * * DtoSymbolAddress ('rhs' of type 'string') * * * * * * * * * function param * * * * * * * * * type: string * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * DtoAssign() * * * * * * * * DtoArrayAssign * * * * * * * * * DtoArrayPtr * * * * * * * * * DtoArrayLen * * * * * * * * * SetArray * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/mutation.d(1950) * * * * * * AssignExp::toElem: rhs = tmp | (string)(string = string) * * * * * * * VarExp::toElem: rhs @ string * * * * * * * * DtoSymbolAddress ('rhs' of type 'string') * * * * * * * * * function param * * * * * * * * * type: string * * * * * * * VarExp::toElem: tmp @ string * * * * * * * * DtoSymbolAddress ('tmp' of type 'string') * * * * * * * * * a normal variable * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * DtoAssign() * * * * * * * * DtoArrayAssign * * * * * * * * * DtoArrayPtr * * * * * * * * * DtoArrayLen * * * * * * * * * SetArray * TemplateInstance::codegen: 'std.traits.isAssignable!(string, string)' * * VarDeclaration::codegen(): 'std.traits.isAssignable!(string, string).isAssignable' * * * DtoResolveVariable(std.traits.isAssignable!(string, string).isAssignable) * TemplateInstance::codegen: 'std.traits.isRvalueAssignable!(string, string)' * * VarDeclaration::codegen(): 'std.traits.isRvalueAssignable!(string, string).isRvalueAssignable' * * * DtoResolveVariable(std.traits.isRvalueAssignable!(string, string).isRvalueAssignable) * TemplateInstance::codegen: 'std.traits.lvalueOf!string' * TemplateInstance::codegen: 'std.traits.rvalueOf!string' * TemplateInstance::codegen: 'std.traits.isLvalueAssignable!(string, string)' * * VarDeclaration::codegen(): 'std.traits.isLvalueAssignable!(string, string).isLvalueAssignable' * * * DtoResolveVariable(std.traits.isLvalueAssignable!(string, string).isLvalueAssignable) * TemplateInstance::codegen: 'std.algorithm.sorting.sort!("a < b", cast(SwapStrategy)0, string[])' * * DtoDefineFunction(std.algorithm.sorting.sort!("a < b", cast(SwapStrategy)0, string[]).sort): /usr/include/dlang/ldc/std/algorithm/sorting.d(875) * * * DtoFunctionType(pure nothrow @nogc @safe SortedRange!(string[], "a < b")(string[] r)) * * * * Building type: SortedRange!(string[], "a < b") * * * * * Building struct type std.range.SortedRange!(string[], "a < b").SortedRange @ /usr/include/dlang/ldc/std/range/package.d(6696) * * * * * * adding default initializer for struct field _input * * * * * * final struct type: %"std.range.SortedRange!(string[], \22a < b\22).SortedRange" = type { { i64, { i64, i8* }* } } * * * * x86-64 ABI: Transforming return type * * * * x86-64 ABI: Transforming argument types * * * * Final function type: %"std.range.SortedRange!(string[], \22a < b\22).SortedRange" ({ i64, { i64, i8* }* }) * * * DtoResolveFunction(std.algorithm.sorting.sort!("a < b", cast(SwapStrategy)0, string[]).sort): /usr/include/dlang/ldc/std/algorithm/sorting.d(875) * * * * DtoDeclareFunction(std.algorithm.sorting.sort!("a < b", cast(SwapStrategy)0, string[]).sort): /usr/include/dlang/ldc/std/algorithm/sorting.d(875) * * * * * DtoFunctionType(pure nothrow @nogc @safe SortedRange!(string[], "a < b")(string[] r)) * * * * * func = declare %"std.range.SortedRange!(string[], \22a < b\22).SortedRange" @_D3std9algorithm7sorting72__T4sortVAyaa5_61203c2062VE3std9algorithm8mutation12SwapStrategyi0TAAyaZ4sortFNaNbNiNfAAyaZS3std5range39__T11SortedRangeTAAyaVAyaa5_61203c2062Z11SortedRange({ i64, { i64, i8* }* }) * * * Doing function body for: sort * * * DtoCreateNestedContext for sort * * * * DtoCreateNestedContextType for std.algorithm.sorting.sort!("a < b", cast(SwapStrategy)0, string[]).sort * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(888) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(890) * * * * * * DeclarationExp::toElem: alias lessFun = template binaryFun(ElementType1, ElementType2); | T=void * * * * * * * DtoDeclarationExp: lessFun * * * * * * * * Ignoring Symbol: alias * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(891) * * * * * * DeclarationExp::toElem: alias LessRet = bool; | T=void * * * * * * * DtoDeclarationExp: LessRet * * * * * * * * Ignoring Symbol: alias * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(895) * * * * * * CallExp::toElem: quickSortImpl(r, r.length) @ void * * * * * * * VarExp::toElem: quickSortImpl @ pure nothrow @nogc @safe void(string[] r, ulong depth) * * * * * * * * DtoSymbolAddress ('quickSortImpl' of type 'pure nothrow @nogc @safe void(string[] r, ulong depth)') * * * * * * * * * FuncDeclaration * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe void(string[] r, ulong depth)) * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: void (i64, { i64, { i64, i8* }* }) * * * * * * * * * DtoResolveFunction(std.algorithm.sorting.quickSortImpl!(binaryFun, string[]).quickSortImpl): /usr/include/dlang/ldc/std/algorithm/sorting.d(1035) * * * * * * * * * * DtoDeclareFunction(std.algorithm.sorting.quickSortImpl!(binaryFun, string[]).quickSortImpl): /usr/include/dlang/ldc/std/algorithm/sorting.d(1035) * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe void(string[] r, ulong depth)) * * * * * * * * * * * func = declare void @_D3std9algorithm7sorting104__T13quickSortImplS773std10functional49__T9binaryFunVAyaa5_61203c2062VAyaa1_61VAyaa1_62Z9binaryFunTAAyaZ13quickSortImplFNaNbNiNfAAyamZv(i64, { i64, { i64, i8* }* }) * * * * * * * DtoCallFunction() * * * * * * * * Building type: pure nothrow @nogc @safe void(string[] r, ulong depth) * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe void(string[] r, ulong depth)) * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: void (i64, { i64, { i64, i8* }* }) * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (0) * * * * * * * * Function type: pure nothrow @nogc @safe void(string[] r, ulong depth) * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: r @ string[] * * * * * * * * * * DtoSymbolAddress ('r' of type 'string[]') * * * * * * * * * * * function param * * * * * * * * * * * type: string[] * * * * * * * * DtoArgument * * * * * * * * * ArrayLengthExp::toElem: r.length @ ulong * * * * * * * * * * VarExp::toElem: r @ string[] * * * * * * * * * * * DtoSymbolAddress ('r' of type 'string[]') * * * * * * * * * * * * function param * * * * * * * * * * * * type: string[] * * * * * * * * * * DtoArrayLen * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(899) * * * * * * DeclarationExp::toElem: enum int maxLen = 8; | T=void * * * * * * * DtoDeclarationExp: maxLen * * * * * * * * VarDeclaration * * * * * * * * Manifest constant, nothing to do. * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(900) * * * * * * AssertExp::toElem: assert(isSorted(r), "Failed to sort range of type string[]") * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(906) * * * * * * CallExp::toElem: assumeSorted(r) @ SortedRange!(string[], "a < b") * * * * * * * VarExp::toElem: assumeSorted @ pure nothrow @nogc @safe SortedRange!(string[], "a < b")(string[] r) * * * * * * * * DtoSymbolAddress ('assumeSorted' of type 'pure nothrow @nogc @safe SortedRange!(string[], "a < b")(string[] r)') * * * * * * * * * FuncDeclaration * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe SortedRange!(string[], "a < b")(string[] r)) * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: %"std.range.SortedRange!(string[], \22a < b\22).SortedRange" ({ i64, { i64, i8* }* }) * * * * * * * * * DtoResolveFunction(std.range.assumeSorted!("a < b", string[]).assumeSorted): /usr/include/dlang/ldc/std/range/package.d(7324) * * * * * * * * * * DtoDeclareFunction(std.range.assumeSorted!("a < b", string[]).assumeSorted): /usr/include/dlang/ldc/std/range/package.d(7324) * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe SortedRange!(string[], "a < b")(string[] r)) * * * * * * * * * * * func = declare %"std.range.SortedRange!(string[], \22a < b\22).SortedRange" @_D3std5range40__T12assumeSortedVAyaa5_61203c2062TAAyaZ12assumeSortedFNaNbNiNfAAyaZS3std5range39__T11SortedRangeTAAyaVAyaa5_61203c2062Z11SortedRange({ i64, { i64, i8* }* }) * * * * * * * DtoCallFunction() * * * * * * * * Building type: pure nothrow @nogc @safe SortedRange!(string[], "a < b")(string[] r) * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe SortedRange!(string[], "a < b")(string[] r)) * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: %"std.range.SortedRange!(string[], \22a < b\22).SortedRange" ({ i64, { i64, i8* }* }) * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (0) * * * * * * * * Function type: pure nothrow @nogc @safe SortedRange!(string[], "a < b")(string[] r) * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: r @ string[] * * * * * * * * * * DtoSymbolAddress ('r' of type 'string[]') * * * * * * * * * * * function param * * * * * * * * * * * type: string[] * * * * * * * * Storing return value to stack slot * * * * * * return value is '0x12b0b4c8' * * * * * * Loading value for return * TemplateInstance::codegen: 'std.range.SortedRange!(string[], "a < b")' * * StructDeclaration::codegen: 'std.range.SortedRange!(string[], "a < b").SortedRange' * * * Resolving struct type: SortedRange (/usr/include/dlang/ldc/std/range/package.d(6696)) * * * Ignoring Dsymbol::codegen for __anonymous * * * Ignoring Dsymbol::codegen for std.range.SortedRange!(string[], "a < b").SortedRange.predFun * * * Ignoring Dsymbol::codegen for std.range.SortedRange!(string[], "a < b").SortedRange.geq(L, R)(L lhs, R rhs) * * * Ignoring Dsymbol::codegen for std.range.SortedRange!(string[], "a < b").SortedRange.gt(L, R)(L lhs, R rhs) * * * VarDeclaration::codegen(): 'std.range.SortedRange!(string[], "a < b").SortedRange._input' * * * * DtoResolveVariable(std.range.SortedRange!(string[], "a < b").SortedRange._input) * * * DtoDefineFunction(std.range.SortedRange!(string[], "a < b").SortedRange.this): /usr/include/dlang/ldc/std/range/package.d(6714) * * * * isMember = this is: SortedRange!(string[], "a < b") * * * * DtoFunctionType(pure nothrow @nogc ref @safe SortedRange!(string[], "a < b")(string[] input)) * * * * * Building type: SortedRange!(string[], "a < b")* * * * * * x86-64 ABI: Transforming argument types * * * * * Final function type: %"std.range.SortedRange!(string[], \22a < b\22).SortedRange"* (%"std.range.SortedRange!(string[], \22a < b\22).SortedRange"*, { i64, { i64, i8* }* }) * * * * DtoResolveFunction(std.range.SortedRange!(string[], "a < b").SortedRange.this): /usr/include/dlang/ldc/std/range/package.d(6714) * * * * * DtoDeclareFunction(std.range.SortedRange!(string[], "a < b").SortedRange.this): /usr/include/dlang/ldc/std/range/package.d(6714) * * * * * * isMember = this is: SortedRange!(string[], "a < b") * * * * * * DtoFunctionType(pure nothrow @nogc ref @safe SortedRange!(string[], "a < b")(string[] input)) * * * * * * func = declare %"std.range.SortedRange!(string[], \22a < b\22).SortedRange"* @_D3std5range39__T11SortedRangeTAAyaVAyaa5_61203c2062Z11SortedRange6__ctorMFNaNbNcNiNfAAyaZS3std5range39__T11SortedRangeTAAyaVAyaa5_61203c2062Z11SortedRange(%"std.range.SortedRange!(string[], \22a < b\22).SortedRange"*, { i64, { i64, i8* }* }) * * * * Doing function body for: this * * * * DtoCreateNestedContext for this * * * * * DtoCreateNestedContextType for std.range.SortedRange!(string[], "a < b").SortedRange.this * * * * DtoVarDeclaration(vdtype = const(SortedRange!(string[], "a < b"))) * * * * * Building type: const(SortedRange!(string[], "a < b"))* * * * * * llvm value for decl: %__result = alloca %"std.range.SortedRange!(string[], \22a < b\22).SortedRange"*, align 8 * * * * CompoundStatement::toIR(): * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/range/package.d(6714) * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/range/package.d(6722) * * * * * * * AssignExp::toElem: this._input = input | (string[])(string[] = string[]) * * * * * * * * DotVarExp::toElem: this._input @ string[] * * * * * * * * * ThisExp::toElem: this @ SortedRange!(string[], "a < b") * * * * * * * * * * normal this exp * * * * * * * * * Indexing aggregate field std.range.SortedRange!(string[], "a < b").SortedRange._input: * * * * * * * * * * Value: %1 = getelementptr %"std.range.SortedRange!(string[], \22a < b\22).SortedRange", %"std.range.SortedRange!(string[], \22a < b\22).SortedRange"* %.this_arg, i32 0, i32 0 * * * * * * * * VarExp::toElem: input @ string[] * * * * * * * * * DtoSymbolAddress ('input' of type 'string[]') * * * * * * * * * * function param * * * * * * * * * * type: string[] * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * DtoAssign() * * * * * * * * * DtoArrayAssign * * * * * * * * * * DtoArrayPtr * * * * * * * * * * DtoArrayLen * * * * * * * * * * SetArray * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/range/package.d(6714) * * * * * * * AddrExp::toElem: &this @ SortedRange!(string[], "a < b")* * * * * * * * * ThisExp::toElem: this @ SortedRange!(string[], "a < b") * * * * * * * * * this exp without var declaration * * * * * * * * is nothing special * * * * * * * * lval: %"std.range.SortedRange!(string[], \22a < b\22).SortedRange"* %.this_arg * * * * * * * return value is '0x12b0dce0' * * * DtoDefineFunction(std.range.SortedRange!(string[], "a < b").SortedRange.dbgVerifySorted): /usr/include/dlang/ldc/std/range/package.d(6726) * * * * isMember = this is: SortedRange!(string[], "a < b") * * * * DtoFunctionType(pure nothrow @nogc @safe void()) * * * * * x86-64 ABI: Transforming argument types * * * * * Final function type: void (%"std.range.SortedRange!(string[], \22a < b\22).SortedRange"*) * * * * DtoResolveFunction(std.range.SortedRange!(string[], "a < b").SortedRange.dbgVerifySorted): /usr/include/dlang/ldc/std/range/package.d(6726) * * * * * DtoDeclareFunction(std.range.SortedRange!(string[], "a < b").SortedRange.dbgVerifySorted): /usr/include/dlang/ldc/std/range/package.d(6726) * * * * * * isMember = this is: SortedRange!(string[], "a < b") * * * * * * DtoFunctionType(pure nothrow @nogc @safe void()) * * * * * * func = declare void @_D3std5range39__T11SortedRangeTAAyaVAyaa5_61203c2062Z11SortedRange15dbgVerifySortedMFNaNbNiNfZv(%"std.range.SortedRange!(string[], \22a < b\22).SortedRange"*) * * * * Doing function body for: dbgVerifySorted * * * * DtoCreateNestedContext for dbgVerifySorted * * * * * DtoCreateNestedContextType for std.range.SortedRange!(string[], "a < b").SortedRange.dbgVerifySorted * * * * CompoundStatement::toIR(): * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/range/package.d(6728) * * * * * * NotExp::toElem: !__ctfe @ bool * * * * * * * VarExp::toElem: __ctfe @ bool * * * * * * * * DtoSymbolAddress ('__ctfe' of type 'bool') * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/range/package.d(6729) * * * DtoDefineFunction(std.range.SortedRange!(string[], "a < b").SortedRange.empty): /usr/include/dlang/ldc/std/range/package.d(6759) * * * * isMember = this is: SortedRange!(string[], "a < b") * * * * DtoFunctionType(pure nothrow @nogc @property @safe bool()) * * * * * x86-64 ABI: Transforming return type * * * * * x86-64 ABI: Transforming argument types * * * * * Final function type: i1 (%"std.range.SortedRange!(string[], \22a < b\22).SortedRange"*) * * * * DtoResolveFunction(std.range.SortedRange!(string[], "a < b").SortedRange.empty): /usr/include/dlang/ldc/std/range/package.d(6759) * * * * * DtoDeclareFunction(std.range.SortedRange!(string[], "a < b").SortedRange.empty): /usr/include/dlang/ldc/std/range/package.d(6759) * * * * * * isMember = this is: SortedRange!(string[], "a < b") * * * * * * DtoFunctionType(pure nothrow @nogc @property @safe bool()) * * * * * * func = declare i1 @_D3std5range39__T11SortedRangeTAAyaVAyaa5_61203c2062Z11SortedRange5emptyMFNaNbNdNiNfZb(%"std.range.SortedRange!(string[], \22a < b\22).SortedRange"*) * * * * Doing function body for: empty * * * * DtoCreateNestedContext for empty * * * * * DtoCreateNestedContextType for std.range.SortedRange!(string[], "a < b").SortedRange.empty * * * * CompoundStatement::toIR(): * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/range/package.d(6761) * * * * * * CallExp::toElem: empty(this._input) @ bool * * * * * * * VarExp::toElem: empty @ pure nothrow @nogc @property @safe bool(const(string[]) a) * * * * * * * * DtoSymbolAddress ('empty' of type 'pure nothrow @nogc @property @safe bool(const(string[]) a)') * * * * * * * * * FuncDeclaration * * * * * * * DtoCallFunction() * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (0) * * * * * * * * Function type: pure nothrow @nogc @property @safe bool(const(string[]) a) * * * * * * * * DtoArgument * * * * * * * * * DotVarExp::toElem: this._input @ const(string[]) * * * * * * * * * * ThisExp::toElem: this @ SortedRange!(string[], "a < b") * * * * * * * * * * * normal this exp * * * * * * * * * * Indexing aggregate field std.range.SortedRange!(string[], "a < b").SortedRange._input: * * * * * * * * * * * Value: %1 = getelementptr %"std.range.SortedRange!(string[], \22a < b\22).SortedRange", %"std.range.SortedRange!(string[], \22a < b\22).SortedRange"* %.this_arg, i32 0, i32 0 * * * * * * return value is '0x12b13380' * * * DtoDefineFunction(std.range.SortedRange!(string[], "a < b").SortedRange.save): /usr/include/dlang/ldc/std/range/package.d(6766) * * * * isMember = this is: SortedRange!(string[], "a < b") * * * * DtoFunctionType(pure nothrow @nogc @property @safe SortedRange!(string[], "a < b")()) * * * * * x86-64 ABI: Transforming return type * * * * * x86-64 ABI: Transforming argument types * * * * * Final function type: %"std.range.SortedRange!(string[], \22a < b\22).SortedRange" (%"std.range.SortedRange!(string[], \22a < b\22).SortedRange"*) * * * * DtoResolveFunction(std.range.SortedRange!(string[], "a < b").SortedRange.save): /usr/include/dlang/ldc/std/range/package.d(6766) * * * * * DtoDeclareFunction(std.range.SortedRange!(string[], "a < b").SortedRange.save): /usr/include/dlang/ldc/std/range/package.d(6766) * * * * * * isMember = this is: SortedRange!(string[], "a < b") * * * * * * DtoFunctionType(pure nothrow @nogc @property @safe SortedRange!(string[], "a < b")()) * * * * * * func = declare %"std.range.SortedRange!(string[], \22a < b\22).SortedRange" @_D3std5range39__T11SortedRangeTAAyaVAyaa5_61203c2062Z11SortedRange4saveMFNaNbNdNiNfZS3std5range39__T11SortedRangeTAAyaVAyaa5_61203c2062Z11SortedRange(%"std.range.SortedRange!(string[], \22a < b\22).SortedRange"*) * * * * Doing function body for: save * * * * DtoCreateNestedContext for save * * * * * DtoCreateNestedContextType for std.range.SortedRange!(string[], "a < b").SortedRange.save * * * * CompoundStatement::toIR(): * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/range/package.d(6767) * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/range/package.d(6769) * * * * * * * DeclarationExp::toElem: SortedRange!(string[], "a < b") result = this; | T=void * * * * * * * * DtoDeclarationExp: result * * * * * * * * * VarDeclaration * * * * * * * * * DtoVarDeclaration(vdtype = SortedRange!(string[], "a < b")) * * * * * * * * * * llvm value for decl: %result = alloca %"std.range.SortedRange!(string[], \22a < b\22).SortedRange", align 8 * * * * * * * * * * expression initializer * * * * * * * * * * AssignExp::toElem: result = this | (SortedRange!(string[], "a < b"))(SortedRange!(string[], "a < b") = SortedRange!(string[], "a < b")) * * * * * * * * * * * VarExp::toElem: result @ SortedRange!(string[], "a < b") * * * * * * * * * * * * DtoSymbolAddress ('result' of type 'SortedRange!(string[], "a < b")') * * * * * * * * * * * * * a normal variable * * * * * * * * * * * ThisExp::toElem: this @ SortedRange!(string[], "a < b") * * * * * * * * * * * * normal this exp * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * DtoAssign() * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/range/package.d(6770) * * * * * * * AssignExp::toElem: result._input = save(this._input) | (string[])(string[] = string[]) * * * * * * * * DotVarExp::toElem: result._input @ string[] * * * * * * * * * VarExp::toElem: result @ SortedRange!(string[], "a < b") * * * * * * * * * * DtoSymbolAddress ('result' of type 'SortedRange!(string[], "a < b")') * * * * * * * * * * * a normal variable * * * * * * * * * Indexing aggregate field std.range.SortedRange!(string[], "a < b").SortedRange._input: * * * * * * * * * * Value: %3 = getelementptr %"std.range.SortedRange!(string[], \22a < b\22).SortedRange", %"std.range.SortedRange!(string[], \22a < b\22).SortedRange"* %result, i32 0, i32 0 * * * * * * * * CallExp::toElem: save(this._input) @ string[] * * * * * * * * * VarExp::toElem: save @ pure nothrow @nogc @property @safe string[](string[] a) * * * * * * * * * * DtoSymbolAddress ('save' of type 'pure nothrow @nogc @property @safe string[](string[] a)') * * * * * * * * * * * FuncDeclaration * * * * * * * * * DtoCallFunction() * * * * * * * * * * doing normal arguments * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * Function type: pure nothrow @nogc @property @safe string[](string[] a) * * * * * * * * * * DtoArgument * * * * * * * * * * * DotVarExp::toElem: this._input @ string[] * * * * * * * * * * * * ThisExp::toElem: this @ SortedRange!(string[], "a < b") * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * Indexing aggregate field std.range.SortedRange!(string[], "a < b").SortedRange._input: * * * * * * * * * * * * * Value: %4 = getelementptr %"std.range.SortedRange!(string[], \22a < b\22).SortedRange", %"std.range.SortedRange!(string[], \22a < b\22).SortedRange"* %.this_arg, i32 0, i32 0 * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * DtoAssign() * * * * * * * * * DtoArrayAssign * * * * * * * * * * DtoArrayPtr * * * * * * * * * * DtoArrayLen * * * * * * * * * * SetArray * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/range/package.d(6771) * * * * * * * VarExp::toElem: result @ SortedRange!(string[], "a < b") * * * * * * * * DtoSymbolAddress ('result' of type 'SortedRange!(string[], "a < b")') * * * * * * * * * a normal variable * * * * * * * return value is '0x12b15158' * * * * * * * Loading value for return * * * DtoDefineFunction(std.range.SortedRange!(string[], "a < b").SortedRange.front): /usr/include/dlang/ldc/std/range/package.d(6775) * * * * isMember = this is: SortedRange!(string[], "a < b") * * * * DtoFunctionType(pure nothrow @nogc @property ref @safe string()) * * * * * x86-64 ABI: Transforming argument types * * * * * Final function type: { i64, i8* }* (%"std.range.SortedRange!(string[], \22a < b\22).SortedRange"*) * * * * DtoResolveFunction(std.range.SortedRange!(string[], "a < b").SortedRange.front): /usr/include/dlang/ldc/std/range/package.d(6775) * * * * * DtoDeclareFunction(std.range.SortedRange!(string[], "a < b").SortedRange.front): /usr/include/dlang/ldc/std/range/package.d(6775) * * * * * * isMember = this is: SortedRange!(string[], "a < b") * * * * * * DtoFunctionType(pure nothrow @nogc @property ref @safe string()) * * * * * * func = declare { i64, i8* }* @_D3std5range39__T11SortedRangeTAAyaVAyaa5_61203c2062Z11SortedRange5frontMFNaNbNcNdNiNfZAya(%"std.range.SortedRange!(string[], \22a < b\22).SortedRange"*) * * * * Doing function body for: front * * * * DtoCreateNestedContext for front * * * * * DtoCreateNestedContextType for std.range.SortedRange!(string[], "a < b").SortedRange.front * * * * CompoundStatement::toIR(): * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/range/package.d(6777) * * * * * * AddrExp::toElem: &front(this._input) @ string* * * * * * * * CallExp::toElem: front(this._input) @ string * * * * * * * * VarExp::toElem: front @ pure nothrow @nogc @property ref @safe string(string[] a) * * * * * * * * * DtoSymbolAddress ('front' of type 'pure nothrow @nogc @property ref @safe string(string[] a)') * * * * * * * * * * FuncDeclaration * * * * * * * * DtoCallFunction() * * * * * * * * * doing normal arguments * * * * * * * * * Arguments so far: (0) * * * * * * * * * Function type: pure nothrow @nogc @property ref @safe string(string[] a) * * * * * * * * * DtoArgument * * * * * * * * * * DotVarExp::toElem: this._input @ string[] * * * * * * * * * * * ThisExp::toElem: this @ SortedRange!(string[], "a < b") * * * * * * * * * * * * normal this exp * * * * * * * * * * * Indexing aggregate field std.range.SortedRange!(string[], "a < b").SortedRange._input: * * * * * * * * * * * * Value: %1 = getelementptr %"std.range.SortedRange!(string[], \22a < b\22).SortedRange", %"std.range.SortedRange!(string[], \22a < b\22).SortedRange"* %.this_arg, i32 0, i32 0 * * * * * * * is nothing special * * * * * * * lval: %3 = call { i64, i8* }* @_D3std5range10primitives14__T5frontTAyaZ5frontFNaNbNcNdNiNfAAyaZAya({ i64, { i64, i8* }* } %2) * * * * * * return value is '0x12b18e80' * * * DtoDefineFunction(std.range.SortedRange!(string[], "a < b").SortedRange.popFront): /usr/include/dlang/ldc/std/range/package.d(6781) * * * * isMember = this is: SortedRange!(string[], "a < b") * * * * DtoFunctionType(pure nothrow @nogc @safe void()) * * * * * x86-64 ABI: Transforming argument types * * * * * Final function type: void (%"std.range.SortedRange!(string[], \22a < b\22).SortedRange"*) * * * * DtoResolveFunction(std.range.SortedRange!(string[], "a < b").SortedRange.popFront): /usr/include/dlang/ldc/std/range/package.d(6781) * * * * * DtoDeclareFunction(std.range.SortedRange!(string[], "a < b").SortedRange.popFront): /usr/include/dlang/ldc/std/range/package.d(6781) * * * * * * isMember = this is: SortedRange!(string[], "a < b") * * * * * * DtoFunctionType(pure nothrow @nogc @safe void()) * * * * * * func = declare void @_D3std5range39__T11SortedRangeTAAyaVAyaa5_61203c2062Z11SortedRange8popFrontMFNaNbNiNfZv(%"std.range.SortedRange!(string[], \22a < b\22).SortedRange"*) * * * * Doing function body for: popFront * * * * DtoCreateNestedContext for popFront * * * * * DtoCreateNestedContextType for std.range.SortedRange!(string[], "a < b").SortedRange.popFront * * * * CompoundStatement::toIR(): * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/range/package.d(6783) * * * * * * CallExp::toElem: popFront(this._input) @ void * * * * * * * VarExp::toElem: popFront @ pure nothrow @nogc @safe void(ref string[] a) * * * * * * * * DtoSymbolAddress ('popFront' of type 'pure nothrow @nogc @safe void(ref string[] a)') * * * * * * * * * FuncDeclaration * * * * * * * DtoCallFunction() * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (0) * * * * * * * * Function type: pure nothrow @nogc @safe void(ref string[] a) * * * * * * * * DtoArgument * * * * * * * * * DotVarExp::toElem: this._input @ string[] * * * * * * * * * * ThisExp::toElem: this @ SortedRange!(string[], "a < b") * * * * * * * * * * * normal this exp * * * * * * * * * * Indexing aggregate field std.range.SortedRange!(string[], "a < b").SortedRange._input: * * * * * * * * * * * Value: %1 = getelementptr %"std.range.SortedRange!(string[], \22a < b\22).SortedRange", %"std.range.SortedRange!(string[], \22a < b\22).SortedRange"* %.this_arg, i32 0, i32 0 * * * DtoDefineFunction(std.range.SortedRange!(string[], "a < b").SortedRange.back): /usr/include/dlang/ldc/std/range/package.d(6789) * * * * isMember = this is: SortedRange!(string[], "a < b") * * * * DtoFunctionType(pure nothrow @nogc @property ref @safe string()) * * * * * x86-64 ABI: Transforming argument types * * * * * Final function type: { i64, i8* }* (%"std.range.SortedRange!(string[], \22a < b\22).SortedRange"*) * * * * DtoResolveFunction(std.range.SortedRange!(string[], "a < b").SortedRange.back): /usr/include/dlang/ldc/std/range/package.d(6789) * * * * * DtoDeclareFunction(std.range.SortedRange!(string[], "a < b").SortedRange.back): /usr/include/dlang/ldc/std/range/package.d(6789) * * * * * * isMember = this is: SortedRange!(string[], "a < b") * * * * * * DtoFunctionType(pure nothrow @nogc @property ref @safe string()) * * * * * * func = declare { i64, i8* }* @_D3std5range39__T11SortedRangeTAAyaVAyaa5_61203c2062Z11SortedRange4backMFNaNbNcNdNiNfZAya(%"std.range.SortedRange!(string[], \22a < b\22).SortedRange"*) * * * * Doing function body for: back * * * * DtoCreateNestedContext for back * * * * * DtoCreateNestedContextType for std.range.SortedRange!(string[], "a < b").SortedRange.back * * * * CompoundStatement::toIR(): * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/range/package.d(6791) * * * * * * AddrExp::toElem: &back(this._input) @ string* * * * * * * * CallExp::toElem: back(this._input) @ string * * * * * * * * VarExp::toElem: back @ pure nothrow @nogc @property ref @safe string(string[] a) * * * * * * * * * DtoSymbolAddress ('back' of type 'pure nothrow @nogc @property ref @safe string(string[] a)') * * * * * * * * * * FuncDeclaration * * * * * * * * DtoCallFunction() * * * * * * * * * Building type: pure nothrow @nogc @property ref @safe string(string[] a) * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @property ref @safe string(string[] a)) * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * Final function type: { i64, i8* }* ({ i64, { i64, i8* }* }) * * * * * * * * * doing normal arguments * * * * * * * * * Arguments so far: (0) * * * * * * * * * Function type: pure nothrow @nogc @property ref @safe string(string[] a) * * * * * * * * * DtoArgument * * * * * * * * * * DotVarExp::toElem: this._input @ string[] * * * * * * * * * * * ThisExp::toElem: this @ SortedRange!(string[], "a < b") * * * * * * * * * * * * normal this exp * * * * * * * * * * * Indexing aggregate field std.range.SortedRange!(string[], "a < b").SortedRange._input: * * * * * * * * * * * * Value: %1 = getelementptr %"std.range.SortedRange!(string[], \22a < b\22).SortedRange", %"std.range.SortedRange!(string[], \22a < b\22).SortedRange"* %.this_arg, i32 0, i32 0 * * * * * * * is nothing special * * * * * * * lval: %3 = call { i64, i8* }* @_D3std5range10primitives13__T4backTAyaZ4backFNaNbNcNdNiNfAAyaZAya({ i64, { i64, i8* }* } %2) * * * * * * return value is '0x12b1a540' * * * DtoDefineFunction(std.range.SortedRange!(string[], "a < b").SortedRange.popBack): /usr/include/dlang/ldc/std/range/package.d(6795) * * * * isMember = this is: SortedRange!(string[], "a < b") * * * * DtoFunctionType(pure nothrow @nogc @safe void()) * * * * * x86-64 ABI: Transforming argument types * * * * * Final function type: void (%"std.range.SortedRange!(string[], \22a < b\22).SortedRange"*) * * * * DtoResolveFunction(std.range.SortedRange!(string[], "a < b").SortedRange.popBack): /usr/include/dlang/ldc/std/range/package.d(6795) * * * * * DtoDeclareFunction(std.range.SortedRange!(string[], "a < b").SortedRange.popBack): /usr/include/dlang/ldc/std/range/package.d(6795) * * * * * * isMember = this is: SortedRange!(string[], "a < b") * * * * * * DtoFunctionType(pure nothrow @nogc @safe void()) * * * * * * func = declare void @_D3std5range39__T11SortedRangeTAAyaVAyaa5_61203c2062Z11SortedRange7popBackMFNaNbNiNfZv(%"std.range.SortedRange!(string[], \22a < b\22).SortedRange"*) * * * * Doing function body for: popBack * * * * DtoCreateNestedContext for popBack * * * * * DtoCreateNestedContextType for std.range.SortedRange!(string[], "a < b").SortedRange.popBack * * * * CompoundStatement::toIR(): * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/range/package.d(6797) * * * * * * CallExp::toElem: popBack(this._input) @ void * * * * * * * VarExp::toElem: popBack @ pure nothrow @nogc @safe void(ref string[] a) * * * * * * * * DtoSymbolAddress ('popBack' of type 'pure nothrow @nogc @safe void(ref string[] a)') * * * * * * * * * FuncDeclaration * * * * * * * DtoCallFunction() * * * * * * * * Building type: pure nothrow @nogc @safe void(ref string[] a) * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe void(ref string[] a)) * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: void ({ i64, { i64, i8* }* }*) * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (0) * * * * * * * * Function type: pure nothrow @nogc @safe void(ref string[] a) * * * * * * * * DtoArgument * * * * * * * * * DotVarExp::toElem: this._input @ string[] * * * * * * * * * * ThisExp::toElem: this @ SortedRange!(string[], "a < b") * * * * * * * * * * * normal this exp * * * * * * * * * * Indexing aggregate field std.range.SortedRange!(string[], "a < b").SortedRange._input: * * * * * * * * * * * Value: %1 = getelementptr %"std.range.SortedRange!(string[], \22a < b\22).SortedRange", %"std.range.SortedRange!(string[], \22a < b\22).SortedRange"* %.this_arg, i32 0, i32 0 * * * DtoDefineFunction(std.range.SortedRange!(string[], "a < b").SortedRange.opIndex): /usr/include/dlang/ldc/std/range/package.d(6803) * * * * isMember = this is: SortedRange!(string[], "a < b") * * * * DtoFunctionType(pure nothrow @nogc ref @safe string(ulong i)) * * * * * x86-64 ABI: Transforming argument types * * * * * Final function type: { i64, i8* }* (%"std.range.SortedRange!(string[], \22a < b\22).SortedRange"*, i64) * * * * DtoResolveFunction(std.range.SortedRange!(string[], "a < b").SortedRange.opIndex): /usr/include/dlang/ldc/std/range/package.d(6803) * * * * * DtoDeclareFunction(std.range.SortedRange!(string[], "a < b").SortedRange.opIndex): /usr/include/dlang/ldc/std/range/package.d(6803) * * * * * * isMember = this is: SortedRange!(string[], "a < b") * * * * * * DtoFunctionType(pure nothrow @nogc ref @safe string(ulong i)) * * * * * * func = declare { i64, i8* }* @_D3std5range39__T11SortedRangeTAAyaVAyaa5_61203c2062Z11SortedRange7opIndexMFNaNbNcNiNfmZAya(%"std.range.SortedRange!(string[], \22a < b\22).SortedRange"*, i64) * * * * Doing function body for: opIndex * * * * DtoCreateNestedContext for opIndex * * * * * DtoCreateNestedContextType for std.range.SortedRange!(string[], "a < b").SortedRange.opIndex * * * * CompoundStatement::toIR(): * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/range/package.d(6805) * * * * * * AddrExp::toElem: &this._input[i] @ string* * * * * * * * IndexExp::toElem: this._input[i] @ string * * * * * * * * DotVarExp::toElem: this._input @ string[] * * * * * * * * * ThisExp::toElem: this @ SortedRange!(string[], "a < b") * * * * * * * * * * normal this exp * * * * * * * * * Indexing aggregate field std.range.SortedRange!(string[], "a < b").SortedRange._input: * * * * * * * * * * Value: %1 = getelementptr %"std.range.SortedRange!(string[], \22a < b\22).SortedRange", %"std.range.SortedRange!(string[], \22a < b\22).SortedRange"* %.this_arg, i32 0, i32 0 * * * * * * * * VarExp::toElem: i @ ulong * * * * * * * * * DtoSymbolAddress ('i' of type 'ulong') * * * * * * * * * * function param * * * * * * * * * * type: ulong * * * * * * * * DtoArrayLen * * * * * * * * DtoArrayPtr * * * * * * * is nothing special * * * * * * * lval: %6 = getelementptr { i64, i8* }, { i64, i8* }* %.ptr, i64 %5 * * * * * * return value is '0x12b216f0' * * * DtoDefineFunction(std.range.SortedRange!(string[], "a < b").SortedRange.opSlice): /usr/include/dlang/ldc/std/range/package.d(6810) * * * * isMember = this is: SortedRange!(string[], "a < b") * * * * DtoFunctionType(pure nothrow @nogc @safe SortedRange!(string[], "a < b")(ulong a, ulong b)) * * * * * x86-64 ABI: Transforming return type * * * * * x86-64 ABI: Transforming argument types * * * * * Final function type: %"std.range.SortedRange!(string[], \22a < b\22).SortedRange" (%"std.range.SortedRange!(string[], \22a < b\22).SortedRange"*, i64, i64) * * * * DtoResolveFunction(std.range.SortedRange!(string[], "a < b").SortedRange.opSlice): /usr/include/dlang/ldc/std/range/package.d(6810) * * * * * DtoDeclareFunction(std.range.SortedRange!(string[], "a < b").SortedRange.opSlice): /usr/include/dlang/ldc/std/range/package.d(6810) * * * * * * isMember = this is: SortedRange!(string[], "a < b") * * * * * * DtoFunctionType(pure nothrow @nogc @safe SortedRange!(string[], "a < b")(ulong a, ulong b)) * * * * * * func = declare %"std.range.SortedRange!(string[], \22a < b\22).SortedRange" @_D3std5range39__T11SortedRangeTAAyaVAyaa5_61203c2062Z11SortedRange7opSliceMFNaNbNiNfmmZS3std5range39__T11SortedRangeTAAyaVAyaa5_61203c2062Z11SortedRange(%"std.range.SortedRange!(string[], \22a < b\22).SortedRange"*, i64, i64) * * * * Doing function body for: opSlice * * * * DtoCreateNestedContext for opSlice * * * * * DtoCreateNestedContextType for std.range.SortedRange!(string[], "a < b").SortedRange.opSlice * * * * CompoundStatement::toIR(): * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/range/package.d(6811) * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/range/package.d(6812) * * * * * * * AssertExp::toElem: assert(a <= b) * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/range/package.d(6813) * * * * * * * DeclarationExp::toElem: SortedRange!(string[], "a < b") result = this; | T=void * * * * * * * * DtoDeclarationExp: result * * * * * * * * * VarDeclaration * * * * * * * * * DtoVarDeclaration(vdtype = SortedRange!(string[], "a < b")) * * * * * * * * * * llvm value for decl: %result = alloca %"std.range.SortedRange!(string[], \22a < b\22).SortedRange", align 8 * * * * * * * * * * expression initializer * * * * * * * * * * AssignExp::toElem: result = this | (SortedRange!(string[], "a < b"))(SortedRange!(string[], "a < b") = SortedRange!(string[], "a < b")) * * * * * * * * * * * VarExp::toElem: result @ SortedRange!(string[], "a < b") * * * * * * * * * * * * DtoSymbolAddress ('result' of type 'SortedRange!(string[], "a < b")') * * * * * * * * * * * * * a normal variable * * * * * * * * * * * ThisExp::toElem: this @ SortedRange!(string[], "a < b") * * * * * * * * * * * * normal this exp * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * DtoAssign() * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/range/package.d(6814) * * * * * * * AssignExp::toElem: result._input = this._input[a..b] | (string[])(string[] = string[]) * * * * * * * * DotVarExp::toElem: result._input @ string[] * * * * * * * * * VarExp::toElem: result @ SortedRange!(string[], "a < b") * * * * * * * * * * DtoSymbolAddress ('result' of type 'SortedRange!(string[], "a < b")') * * * * * * * * * * * a normal variable * * * * * * * * * Indexing aggregate field std.range.SortedRange!(string[], "a < b").SortedRange._input: * * * * * * * * * * Value: %3 = getelementptr %"std.range.SortedRange!(string[], \22a < b\22).SortedRange", %"std.range.SortedRange!(string[], \22a < b\22).SortedRange"* %result, i32 0, i32 0 * * * * * * * * SliceExp::toElem: this._input[a..b] @ string[] * * * * * * * * * DotVarExp::toElem: this._input @ string[] * * * * * * * * * * ThisExp::toElem: this @ SortedRange!(string[], "a < b") * * * * * * * * * * * normal this exp * * * * * * * * * * Indexing aggregate field std.range.SortedRange!(string[], "a < b").SortedRange._input: * * * * * * * * * * * Value: %4 = getelementptr %"std.range.SortedRange!(string[], \22a < b\22).SortedRange", %"std.range.SortedRange!(string[], \22a < b\22).SortedRange"* %.this_arg, i32 0, i32 0 * * * * * * * * * DtoArrayPtr * * * * * * * * * VarExp::toElem: a @ ulong * * * * * * * * * * DtoSymbolAddress ('a' of type 'ulong') * * * * * * * * * * * function param * * * * * * * * * * * type: ulong * * * * * * * * * VarExp::toElem: b @ ulong * * * * * * * * * * DtoSymbolAddress ('b' of type 'ulong') * * * * * * * * * * * function param * * * * * * * * * * * type: ulong * * * * * * * * * DtoArrayLen * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * DtoAssign() * * * * * * * * * DtoArrayAssign * * * * * * * * * * DtoArrayPtr * * * * * * * * * * DtoArrayLen * * * * * * * * * * SetArray * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/range/package.d(6815) * * * * * * * VarExp::toElem: result @ SortedRange!(string[], "a < b") * * * * * * * * DtoSymbolAddress ('result' of type 'SortedRange!(string[], "a < b")') * * * * * * * * * a normal variable * * * * * * * return value is '0x12b23fb8' * * * * * * * Loading value for return * * * DtoDefineFunction(std.range.SortedRange!(string[], "a < b").SortedRange.length): /usr/include/dlang/ldc/std/range/package.d(6821) * * * * isMember = this is: SortedRange!(string[], "a < b") * * * * DtoFunctionType(pure nothrow @nogc @property @safe ulong()) * * * * * x86-64 ABI: Transforming return type * * * * * x86-64 ABI: Transforming argument types * * * * * Final function type: i64 (%"std.range.SortedRange!(string[], \22a < b\22).SortedRange"*) * * * * DtoResolveFunction(std.range.SortedRange!(string[], "a < b").SortedRange.length): /usr/include/dlang/ldc/std/range/package.d(6821) * * * * * DtoDeclareFunction(std.range.SortedRange!(string[], "a < b").SortedRange.length): /usr/include/dlang/ldc/std/range/package.d(6821) * * * * * * isMember = this is: SortedRange!(string[], "a < b") * * * * * * DtoFunctionType(pure nothrow @nogc @property @safe ulong()) * * * * * * func = declare i64 @_D3std5range39__T11SortedRangeTAAyaVAyaa5_61203c2062Z11SortedRange6lengthMFNaNbNdNiNfZm(%"std.range.SortedRange!(string[], \22a < b\22).SortedRange"*) * * * * Doing function body for: length * * * * DtoCreateNestedContext for length * * * * * DtoCreateNestedContextType for std.range.SortedRange!(string[], "a < b").SortedRange.length * * * * CompoundStatement::toIR(): * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/range/package.d(6823) * * * * * * ArrayLengthExp::toElem: this._input.length @ ulong * * * * * * * DotVarExp::toElem: this._input @ string[] * * * * * * * * ThisExp::toElem: this @ SortedRange!(string[], "a < b") * * * * * * * * * normal this exp * * * * * * * * Indexing aggregate field std.range.SortedRange!(string[], "a < b").SortedRange._input: * * * * * * * * * Value: %1 = getelementptr %"std.range.SortedRange!(string[], \22a < b\22).SortedRange", %"std.range.SortedRange!(string[], \22a < b\22).SortedRange"* %.this_arg, i32 0, i32 0 * * * * * * * DtoArrayLen * * * * * * return value is '0x12b27a08' * * * Ignoring Dsymbol::codegen for std.range.SortedRange!(string[], "a < b").SortedRange.opDollar * * * DtoDefineFunction(std.range.SortedRange!(string[], "a < b").SortedRange.release): /usr/include/dlang/ldc/std/range/package.d(6831) * * * * isMember = this is: SortedRange!(string[], "a < b") * * * * DtoFunctionType(pure nothrow @nogc @system string[]()) * * * * * x86-64 ABI: Transforming return type * * * * * x86-64 ABI: Transforming argument types * * * * * Final function type: { i64, { i64, i8* }* } (%"std.range.SortedRange!(string[], \22a < b\22).SortedRange"*) * * * * DtoResolveFunction(std.range.SortedRange!(string[], "a < b").SortedRange.release): /usr/include/dlang/ldc/std/range/package.d(6831) * * * * * DtoDeclareFunction(std.range.SortedRange!(string[], "a < b").SortedRange.release): /usr/include/dlang/ldc/std/range/package.d(6831) * * * * * * isMember = this is: SortedRange!(string[], "a < b") * * * * * * DtoFunctionType(pure nothrow @nogc @system string[]()) * * * * * * func = declare { i64, { i64, i8* }* } @_D3std5range39__T11SortedRangeTAAyaVAyaa5_61203c2062Z11SortedRange7releaseMFNaNbNiZAAya(%"std.range.SortedRange!(string[], \22a < b\22).SortedRange"*) * * * * Doing function body for: release * * * * DtoCreateNestedContext for release * * * * * DtoCreateNestedContextType for std.range.SortedRange!(string[], "a < b").SortedRange.release * * * * CompoundStatement::toIR(): * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/range/package.d(6832) * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/range/package.d(6834) * * * * * * * CallExp::toElem: move(this._input) @ string[] * * * * * * * * VarExp::toElem: move @ pure nothrow @nogc @system string[](ref string[] source) * * * * * * * * * DtoSymbolAddress ('move' of type 'pure nothrow @nogc @system string[](ref string[] source)') * * * * * * * * * * FuncDeclaration * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @system string[](ref string[] source)) * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * Final function type: { i64, { i64, i8* }* } ({ i64, { i64, i8* }* }*) * * * * * * * * * * DtoResolveFunction(std.algorithm.mutation.move!(string[]).move): /usr/include/dlang/ldc/std/algorithm/mutation.d(945) * * * * * * * * * * * DtoDeclareFunction(std.algorithm.mutation.move!(string[]).move): /usr/include/dlang/ldc/std/algorithm/mutation.d(945) * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @system string[](ref string[] source)) * * * * * * * * * * * * func = declare { i64, { i64, i8* }* } @_D3std9algorithm8mutation14__T4moveTAAyaZ4moveFNaNbNiKAAyaZAAya({ i64, { i64, i8* }* }*) * * * * * * * * DtoCallFunction() * * * * * * * * * Building type: pure nothrow @nogc @system string[](ref string[] source) * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @system string[](ref string[] source)) * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * Final function type: { i64, { i64, i8* }* } ({ i64, { i64, i8* }* }*) * * * * * * * * * doing normal arguments * * * * * * * * * Arguments so far: (0) * * * * * * * * * Function type: pure nothrow @nogc @system string[](ref string[] source) * * * * * * * * * DtoArgument * * * * * * * * * * DotVarExp::toElem: this._input @ string[] * * * * * * * * * * * ThisExp::toElem: this @ SortedRange!(string[], "a < b") * * * * * * * * * * * * normal this exp * * * * * * * * * * * Indexing aggregate field std.range.SortedRange!(string[], "a < b").SortedRange._input: * * * * * * * * * * * * Value: %1 = getelementptr %"std.range.SortedRange!(string[], \22a < b\22).SortedRange", %"std.range.SortedRange!(string[], \22a < b\22).SortedRange"* %.this_arg, i32 0, i32 0 * * * * * * * return value is '0x12b302b0' * * * Ignoring Dsymbol::codegen for std.range.SortedRange!(string[], "a < b").SortedRange.getTransitionIndex(SearchPolicy sp, alias test, V)(V v) if (sp == SearchPolicy.binarySearch && isRandomAccessRange!Range) * * * Ignoring Dsymbol::codegen for std.range.SortedRange!(string[], "a < b").SortedRange.getTransitionIndex(SearchPolicy sp, alias test, V)(V v) if ((sp == SearchPolicy.trot || sp == SearchPolicy.gallop) && isRandomAccessRange!Range) * * * Ignoring Dsymbol::codegen for std.range.SortedRange!(string[], "a < b").SortedRange.getTransitionIndex(SearchPolicy sp, alias test, V)(V v) if ((sp == SearchPolicy.trotBackwards || sp == SearchPolicy.gallopBackwards) && isRandomAccessRange!Range) * * * Ignoring Dsymbol::codegen for std.range.SortedRange!(string[], "a < b").SortedRange.lowerBound(SearchPolicy sp = SearchPolicy.binarySearch, V)(V value) if (isTwoWayCompatible!(predFun, ElementType!Range, V) && hasSlicing!Range) * * * Ignoring Dsymbol::codegen for std.range.SortedRange!(string[], "a < b").SortedRange.upperBound(SearchPolicy sp = SearchPolicy.binarySearch, V)(V value) if (isTwoWayCompatible!(predFun, ElementType!Range, V)) * * * Ignoring Dsymbol::codegen for std.range.SortedRange!(string[], "a < b").SortedRange.equalRange(V)(V value) if (isTwoWayCompatible!(predFun, ElementType!Range, V) && isRandomAccessRange!Range) * * * Ignoring Dsymbol::codegen for std.range.SortedRange!(string[], "a < b").SortedRange.trisect(V)(V value) if (isTwoWayCompatible!(predFun, ElementType!Range, V) && isRandomAccessRange!Range) * * * Ignoring Dsymbol::codegen for std.range.SortedRange!(string[], "a < b").SortedRange.contains(V)(V value) if (isRandomAccessRange!Range) * * * Ignoring Dsymbol::codegen for std.range.SortedRange!(string[], "a < b").SortedRange.groupBy()() * * * Building default initializer for std.range.SortedRange!(string[], "a < b").SortedRange * * * * Creating initializer constant for SortedRange * * * * * Implicit initializer: _input @+0 * * * * * * DtoConstExpInit(targetType = string[], exp = null) * * * * * * * NullExp::toConstElem(type=string[]): null * * * * * adding field _input * * * * * final initializer: %"std.range.SortedRange!(string[], \22a < b\22).SortedRange_init" zeroinitializer * * * DtoTypeInfoOf(type = 'SortedRange!(string[], "a < b")', base='1') * * * * Type::getTypeInfo(): SortedRange!(string[], "a < b") * * * * * TypeInfoDeclaration::codegen(typeid(SortedRange!(string[], "a < b"))) * * * * * * type = 'SortedRange!(string[], "a < b")' * * * * * * typeinfo mangle: _D74TypeInfo_S3std5range39__T11SortedRangeTAAyaVAyaa5_61203c2062Z11SortedRange6__initZ * * * * * * TypeInfoStructDeclaration::llvmDefine() typeid(SortedRange!(string[], "a < b")) * * * * * * * DtoFunctionType(nothrow @trusted ulong(ref const(SortedRange!(string[], "a < b")) p)) * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * Final function type: i64 (%"std.range.SortedRange!(string[], \22a < b\22).SortedRange"*) * * * * * * * DtoResolveFunction(std.range.SortedRange!(string[], "a < b").SortedRange.__xtoHash): * * * * * * * * DtoDeclareFunction(std.range.SortedRange!(string[], "a < b").SortedRange.__xtoHash): * * * * * * * * * DtoFunctionType(nothrow @trusted ulong(ref const(SortedRange!(string[], "a < b")) p)) * * * * * * * * * func = declare i64 @_D3std5range39__T11SortedRangeTAAyaVAyaa5_61203c2062Z11SortedRange9__xtoHashFNbNeKxS3std5range39__T11SortedRangeTAAyaVAyaa5_61203c2062Z11SortedRangeZm(%"std.range.SortedRange!(string[], \22a < b\22).SortedRange"*) * * * * * * * DtoFunctionType(bool(ref const(SortedRange!(string[], "a < b")) p, ref const(SortedRange!(string[], "a < b")) q)) * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * Final function type: i1 (%"std.range.SortedRange!(string[], \22a < b\22).SortedRange"*, %"std.range.SortedRange!(string[], \22a < b\22).SortedRange"*) * * * * * * * DtoResolveFunction(std.range.SortedRange!(string[], "a < b").SortedRange.__xopEquals): * * * * * * * * DtoDeclareFunction(std.range.SortedRange!(string[], "a < b").SortedRange.__xopEquals): * * * * * * * * * DtoFunctionType(bool(ref const(SortedRange!(string[], "a < b")) p, ref const(SortedRange!(string[], "a < b")) q)) * * * * * * * * * func = declare i1 @_D3std5range39__T11SortedRangeTAAyaVAyaa5_61203c2062Z11SortedRange11__xopEqualsFKxS3std5range39__T11SortedRangeTAAyaVAyaa5_61203c2062Z11SortedRangeKxS3std5range39__T11SortedRangeTAAyaVAyaa5_61203c2062Z11SortedRangeZb(%"std.range.SortedRange!(string[], \22a < b\22).SortedRange"*, %"std.range.SortedRange!(string[], \22a < b\22).SortedRange"*) * * * * * * * DtoTypeInfoOf(type = 'ulong', base='1') * * * * * * * * Type::getTypeInfo(): ulong * * * * * * * * TypeInfoDeclaration::codegen(typeid(ulong)) * * * * * * * DtoTypeInfoOf(type = 'void*', base='1') * * * * * * * * Type::getTypeInfo(): void* * * * * * * * * TypeInfoDeclaration::codegen(typeid(void*)) * * * * * * * IntegerExp::toConstElem: cast(void*)305419896LU @ void* * * * * * * * * pointer * * * * TypeInfoDeclaration::codegen(typeid(SortedRange!(string[], "a < b"))) * * * DtoDefineFunction(std.range.SortedRange!(string[], "a < b").SortedRange.__xopEquals): * * * * Doing function body for: __xopEquals * * * * DtoCreateNestedContext for __xopEquals * * * * * DtoCreateNestedContextType for std.range.SortedRange!(string[], "a < b").SortedRange.__xopEquals * * * * CompoundStatement::toIR(): * * * * * ReturnStatement::toIR(): * * * * * * EqualExp::toElem: p._input == q._input @ bool * * * * * * * DotVarExp::toElem: p._input @ const(string[]) * * * * * * * * VarExp::toElem: p @ const(SortedRange!(string[], "a < b")) * * * * * * * * * DtoSymbolAddress ('p' of type 'const(SortedRange!(string[], "a < b"))') * * * * * * * * * * function param * * * * * * * * * * type: const(SortedRange!(string[], "a < b")) * * * * * * * * Indexing aggregate field std.range.SortedRange!(string[], "a < b").SortedRange._input: * * * * * * * * * Value: %1 = getelementptr %"std.range.SortedRange!(string[], \22a < b\22).SortedRange", %"std.range.SortedRange!(string[], \22a < b\22).SortedRange"* %p_arg, i32 0, i32 0 * * * * * * * DotVarExp::toElem: q._input @ const(string[]) * * * * * * * * VarExp::toElem: q @ const(SortedRange!(string[], "a < b")) * * * * * * * * * DtoSymbolAddress ('q' of type 'const(SortedRange!(string[], "a < b"))') * * * * * * * * * * function param * * * * * * * * * * type: const(SortedRange!(string[], "a < b")) * * * * * * * * Indexing aggregate field std.range.SortedRange!(string[], "a < b").SortedRange._input: * * * * * * * * * Value: %2 = getelementptr %"std.range.SortedRange!(string[], \22a < b\22).SortedRange", %"std.range.SortedRange!(string[], \22a < b\22).SortedRange"* %q_arg, i32 0, i32 0 * * * * * * * static or dynamic array * * * * * * * comparing arrays * * * * * * * casting to dynamic arrays * * * * * * * DtoCastArray * * * * * * * * from array or sarray * * * * * * * * to array * * * * * * * * DtoArrayLen * * * * * * * * DtoArrayPtr * * * * * * * * isslice * * * * * * * DtoCastArray * * * * * * * * from array or sarray * * * * * * * * to array * * * * * * * * DtoArrayLen * * * * * * * * DtoArrayPtr * * * * * * * * isslice * * * * * * * DtoTypeInfoOf(type = 'const(string)[]', base='1') * * * * * * * * Type::getTypeInfo(): const(string)[] * * * * * * * * TypeInfoDeclaration::codegen(typeid(const(string)[])) * * * * * * return value is '0x12b34a70' * * * DtoDefineFunction(std.range.SortedRange!(string[], "a < b").SortedRange.__xtoHash): * * * * Doing function body for: __xtoHash * * * * DtoCreateNestedContext for __xtoHash * * * * * DtoCreateNestedContextType for std.range.SortedRange!(string[], "a < b").SortedRange.__xtoHash * * * * CompoundStatement::toIR(): * * * * * CompoundStatement::toIR(): * * * * * * ExpStatement::toIR(): * * * * * * * DeclarationExp::toElem: ulong h = 0LU; | T=void * * * * * * * * DtoDeclarationExp: h * * * * * * * * * VarDeclaration * * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * * llvm value for decl: %h = alloca i64, align 8 * * * * * * * * * * expression initializer * * * * * * * * * * AssignExp::toElem: h = 0LU | (ulong)(ulong = ulong) * * * * * * * * * * * VarExp::toElem: h @ ulong * * * * * * * * * * * * DtoSymbolAddress ('h' of type 'ulong') * * * * * * * * * * * * * a normal variable * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * lhs: %h = alloca i64, align 8 * * * * * * * * * * * * rhs: i64 0 * * * * * * UnrolledLoopStatement::toIR(): * * * * * * * ScopeStatement::toIR(): * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * ExpStatement::toIR(): * * * * * * * * * * DeclarationExp::toElem: enum ulong i = 0LU; | T=void * * * * * * * * * * * DtoDeclarationExp: i * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * Manifest constant, nothing to do. * * * * * * * * * ExpStatement::toIR(): * * * * * * * * * * DeclarationExp::toElem: alias T = const(string[]); | T=void * * * * * * * * * * * DtoDeclarationExp: T * * * * * * * * * * * * Ignoring Symbol: alias * * * * * * * * * ExpStatement::toIR(): * * * * * * * * * * AddAssignExp::toElem: h += typeid(const(string[])).getHash(cast(const(void*))&p._input) @ ulong * * * * * * * * * * * Caching l-value of h += typeid(const(string[])).getHash(cast(const(void*))&p._input) => h * * * * * * * * * * * * VarExp::toElem: h @ ulong * * * * * * * * * * * * * DtoSymbolAddress ('h' of type 'ulong') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * AddExp::toElem: h + typeid(const(string[])).getHash(cast(const(void*))&p._input) @ ulong * * * * * * * * * * * * VarExp::toElem: h @ ulong * * * * * * * * * * * * CallExp::toElem: typeid(const(string[])).getHash(cast(const(void*))&p._input) @ ulong * * * * * * * * * * * * * DotVarExp::toElem: typeid(const(string[])).getHash @ const nothrow @trusted ulong(const(void*) p) * * * * * * * * * * * * * * SymOffExp::toElem: typeid(const(string[])) @ object.TypeInfo * * * * * * * * * * * * * * * DtoSymbolAddress ('typeid(const(string[]))' of type 'object.TypeInfo_Const') * * * * * * * * * * * * * * * * TypeInfoDeclaration * * * * * * * * * * * * * * * Casting from 'TypeInfo_Const*' to 'object.TypeInfo' * * * * * * * * * * * * * * * * src: %object.TypeInfo_Const* bitcast (%"typeid(const(string[]))"* @_D14TypeInfo_xAAya6__initZ to %object.TypeInfo_Const*) * * * * * * * * * * * * * * * * to type: %object.TypeInfo* * * * * * * * * * * * * * * vthis: %object.TypeInfo* bitcast (%"typeid(const(string[]))"* @_D14TypeInfo_xAAya6__initZ to %object.TypeInfo*) * * * * * * * * * * * * * * funcval: %3 = load i64 (%object.TypeInfo*, i8*)*, i64 (%object.TypeInfo*, i8*)** %"typeid(const(string[])).getHash@vtbl", align 8 * * * * * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * * * * * DtoFunctionType(const nothrow @trusted ulong(const(void*) p)) * * * * * * * * * * * * * * funcval casted: %"typeid(const(string[])).getHash" = load i64 (%object.TypeInfo*, i8*)*, i64 (%object.TypeInfo*, i8*)** %"typeid(const(string[])).getHash@vtbl", align 8 * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * %object.TypeInfo* bitcast (%"typeid(const(string[]))"* @_D14TypeInfo_xAAya6__initZ to %object.TypeInfo*) * * * * * * * * * * * * * * Function type: const nothrow @trusted ulong(const(void*) p) * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * CastExp::toElem: cast(const(void*))&p._input @ const(void*) * * * * * * * * * * * * * * * * AddrExp::toElem: &p._input @ const(string[])* * * * * * * * * * * * * * * * * * DotVarExp::toElem: p._input @ const(string[]) * * * * * * * * * * * * * * * * * * VarExp::toElem: p @ const(SortedRange!(string[], "a < b")) * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('p' of type 'const(SortedRange!(string[], "a < b"))') * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * type: const(SortedRange!(string[], "a < b")) * * * * * * * * * * * * * * * * * * Indexing aggregate field std.range.SortedRange!(string[], "a < b").SortedRange._input: * * * * * * * * * * * * * * * * * * * Value: %3 = getelementptr %"std.range.SortedRange!(string[], \22a < b\22).SortedRange", %"std.range.SortedRange!(string[], \22a < b\22).SortedRange"* %p_arg, i32 0, i32 0 * * * * * * * * * * * * * * * * * is nothing special * * * * * * * * * * * * * * * * * lval: %3 = getelementptr %"std.range.SortedRange!(string[], \22a < b\22).SortedRange", %"std.range.SortedRange!(string[], \22a < b\22).SortedRange"* %p_arg, i32 0, i32 0 * * * * * * * * * * * * * * * * Casting from 'const(string[])*' to 'const(void*)' * * * * * * * * * * * * * * * * * src: %3 = getelementptr %"std.range.SortedRange!(string[], \22a < b\22).SortedRange", %"std.range.SortedRange!(string[], \22a < b\22).SortedRange"* %p_arg, i32 0, i32 0 * * * * * * * * * * * * * * * * * to type: i8* * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * lhs: %h = alloca i64, align 8 * * * * * * * * * * * * rhs: %7 = add i64 %6, %5 * * * * * * ReturnStatement::toIR(): * * * * * * * VarExp::toElem: h @ ulong * * * * * * * * DtoSymbolAddress ('h' of type 'ulong') * * * * * * * * * a normal variable * * * * * * * return value is '0x12b380a8' * TemplateInstance::codegen: 'std.functional.binaryFun!("a < b", "a", "b").binaryFun!(string, string)' * * DtoDefineFunction(std.functional.binaryFun!("a < b", "a", "b").binaryFun!(string, string).binaryFun): /usr/include/dlang/ldc/std/functional.d(163) * * * DtoFunctionType(pure nothrow @nogc @safe bool(auto ref string __a, auto ref string __b)) * * * * x86-64 ABI: Transforming return type * * * * x86-64 ABI: Transforming argument types * * * * Final function type: i1 ({ i64, i8* }*, { i64, i8* }*) * * * DtoResolveFunction(std.functional.binaryFun!("a < b", "a", "b").binaryFun!(string, string).binaryFun): /usr/include/dlang/ldc/std/functional.d(163) * * * * DtoDeclareFunction(std.functional.binaryFun!("a < b", "a", "b").binaryFun!(string, string).binaryFun): /usr/include/dlang/ldc/std/functional.d(163) * * * * * DtoFunctionType(pure nothrow @nogc @safe bool(auto ref string __a, auto ref string __b)) * * * * * func = declare i1 @_D3std10functional49__T9binaryFunVAyaa5_61203c2062VAyaa1_61VAyaa1_62Z22__T9binaryFunTAyaTAyaZ9binaryFunFNaNbNiNfKAyaKAyaZb({ i64, i8* }*, { i64, i8* }*) * * * Doing function body for: binaryFun * * * DtoCreateNestedContext for binaryFun * * * * DtoCreateNestedContextType for std.functional.binaryFun!("a < b", "a", "b").binaryFun!(string, string).binaryFun * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/functional.d(165) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/functional.d-mixin-166(166) * * * * * * DeclarationExp::toElem: alias a = ref string __a; ; | T=void * * * * * * * DtoDeclarationExp: a * * * * * * * * Ignoring Symbol: alias * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/functional.d-mixin-167(167) * * * * * * DeclarationExp::toElem: alias b = ref string __b; ; | T=void * * * * * * * DtoDeclarationExp: b * * * * * * * * Ignoring Symbol: alias * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/functional.d(168) * * * * * * CmpExp::toElem: __a < __b @ bool * * * * * * * VarExp::toElem: __a @ string * * * * * * * * DtoSymbolAddress ('__a' of type 'string') * * * * * * * * * function param * * * * * * * * * type: string * * * * * * * VarExp::toElem: __b @ string * * * * * * * * DtoSymbolAddress ('__b' of type 'string') * * * * * * * * * function param * * * * * * * * * type: string * * * * * * * static or dynamic array * * * * * * * comparing arrays * * * * * * * casting to dynamic arrays * * * * * * * DtoCastArray * * * * * * * * from array or sarray * * * * * * * * to array * * * * * * * * DtoArrayLen * * * * * * * * DtoArrayPtr * * * * * * * * isslice * * * * * * * DtoCastArray * * * * * * * * from array or sarray * * * * * * * * to array * * * * * * * * DtoArrayLen * * * * * * * * DtoArrayPtr * * * * * * * * isslice * * * * * * return value is '0x12b3afa0' * TemplateInstance::codegen: 'std.algorithm.sorting.quickSortImpl!(binaryFun, string[])' * * DtoDefineFunction(std.algorithm.sorting.quickSortImpl!(binaryFun, string[]).quickSortImpl): /usr/include/dlang/ldc/std/algorithm/sorting.d(1035) * * * Doing function body for: quickSortImpl * * * DtoCreateNestedContext for quickSortImpl * * * * DtoCreateNestedContextType for std.algorithm.sorting.quickSortImpl!(binaryFun, string[]).quickSortImpl * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(1036) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(1041) * * * * * * DeclarationExp::toElem: alias Elem = string; | T=void * * * * * * * DtoDeclarationExp: Elem * * * * * * * * Ignoring Symbol: alias * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(1042) * * * * * * DeclarationExp::toElem: enum ulong optimisticInsertionSortGetsBetter = 25LU; | T=void * * * * * * * DtoDeclarationExp: optimisticInsertionSortGetsBetter * * * * * * * * VarDeclaration * * * * * * * * Manifest constant, nothing to do. * * * * * ForStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(1046) * * * * * * CmpExp::toElem: r.length > 25LU @ bool * * * * * * * ArrayLengthExp::toElem: r.length @ ulong * * * * * * * * VarExp::toElem: r @ string[] * * * * * * * * * DtoSymbolAddress ('r' of type 'string[]') * * * * * * * * * * function param * * * * * * * * * * type: string[] * * * * * * * * DtoArrayLen * * * * * * * IntegerExp::toElem: 25LU @ ulong * * * * * * * * IntegerExp::toConstElem: 25LU @ ulong * * * * * * * * * value = i64 25 * * * * * * * type 1: %.len = load i64, i64* %1 * * * * * * * type 2: i64 25 * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(1047) * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(1047) * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(1048) * * * * * * * * * EqualExp::toElem: depth == 0LU @ bool * * * * * * * * * * VarExp::toElem: depth @ ulong * * * * * * * * * * * DtoSymbolAddress ('depth' of type 'ulong') * * * * * * * * * * * * function param * * * * * * * * * * * * type: ulong * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * value = i64 0 * * * * * * * * * * integral or pointer or interface * * * * * * * * * * lv: %3 = load i64, i64* %depth * * * * * * * * * * rv: i64 0 * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(1049) * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(1049) * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(1050) * * * * * * * * * * * * CallExp::toElem: heapSort(r) @ void * * * * * * * * * * * * * VarExp::toElem: heapSort @ pure nothrow @nogc @safe void(string[] r) * * * * * * * * * * * * * * DtoSymbolAddress ('heapSort' of type 'pure nothrow @nogc @safe void(string[] r)') * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe void(string[] r)) * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * Final function type: void ({ i64, { i64, i8* }* }) * * * * * * * * * * * * * * * DtoResolveFunction(std.algorithm.sorting.HeapSortImpl!(binaryFun, string[]).heapSort!().heapSort): /usr/include/dlang/ldc/std/algorithm/sorting.d(1106) * * * * * * * * * * * * * * * * DtoDeclareFunction(std.algorithm.sorting.HeapSortImpl!(binaryFun, string[]).heapSort!().heapSort): /usr/include/dlang/ldc/std/algorithm/sorting.d(1106) * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe void(string[] r)) * * * * * * * * * * * * * * * * * func = declare void @_D3std9algorithm7sorting103__T12HeapSortImplS773std10functional49__T9binaryFunVAyaa5_61203c2062VAyaa1_61VAyaa1_62Z9binaryFunTAAyaZ13__T8heapSortZ8heapSortFNaNbNiNfAAyaZv({ i64, { i64, i8* }* }) * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * Building type: pure nothrow @nogc @safe void(string[] r) * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe void(string[] r)) * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * Final function type: void ({ i64, { i64, i8* }* }) * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * Function type: pure nothrow @nogc @safe void(string[] r) * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * VarExp::toElem: r @ string[] * * * * * * * * * * * * * * * * DtoSymbolAddress ('r' of type 'string[]') * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * type: string[] * * * * * * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(1051) * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(1053) * * * * * * * * * AssignExp::toElem: depth = depth >= 9223372036854775807LU ? depth / 3LU * 2LU : depth * 2LU / 3LU | (ulong)(ulong = ulong) * * * * * * * * * * VarExp::toElem: depth @ ulong * * * * * * * * * * * DtoSymbolAddress ('depth' of type 'ulong') * * * * * * * * * * * * function param * * * * * * * * * * * * type: ulong * * * * * * * * * * CondExp::toElem: depth >= 9223372036854775807LU ? depth / 3LU * 2LU : depth * 2LU / 3LU @ ulong * * * * * * * * * * * CmpExp::toElem: depth >= 9223372036854775807LU @ bool * * * * * * * * * * * * VarExp::toElem: depth @ ulong * * * * * * * * * * * * * DtoSymbolAddress ('depth' of type 'ulong') * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * type: ulong * * * * * * * * * * * * IntegerExp::toElem: 9223372036854775807LU @ ulong * * * * * * * * * * * * * IntegerExp::toConstElem: 9223372036854775807LU @ ulong * * * * * * * * * * * * * * value = i64 9223372036854775807 * * * * * * * * * * * * type 1: %6 = load i64, i64* %depth * * * * * * * * * * * * type 2: i64 9223372036854775807 * * * * * * * * * * * MulExp::toElem: depth / 3LU * 2LU @ ulong * * * * * * * * * * * * DivExp::toElem: depth / 3LU @ ulong * * * * * * * * * * * * * VarExp::toElem: depth @ ulong * * * * * * * * * * * * * * DtoSymbolAddress ('depth' of type 'ulong') * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * type: ulong * * * * * * * * * * * * * IntegerExp::toElem: 3LU @ ulong * * * * * * * * * * * * * * IntegerExp::toConstElem: 3LU @ ulong * * * * * * * * * * * * * * * value = i64 3 * * * * * * * * * * * * IntegerExp::toElem: 2LU @ ulong * * * * * * * * * * * * * IntegerExp::toConstElem: 2LU @ ulong * * * * * * * * * * * * * * value = i64 2 * * * * * * * * * * * DivExp::toElem: depth * 2LU / 3LU @ ulong * * * * * * * * * * * * MulExp::toElem: depth * 2LU @ ulong * * * * * * * * * * * * * VarExp::toElem: depth @ ulong * * * * * * * * * * * * * * DtoSymbolAddress ('depth' of type 'ulong') * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * type: ulong * * * * * * * * * * * * * IntegerExp::toElem: 2LU @ ulong * * * * * * * * * * * * * * IntegerExp::toConstElem: 2LU @ ulong * * * * * * * * * * * * * * * value = i64 2 * * * * * * * * * * * * IntegerExp::toElem: 3LU @ ulong * * * * * * * * * * * * * IntegerExp::toConstElem: 3LU @ ulong * * * * * * * * * * * * * * value = i64 3 * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %depth = alloca i64, align 8 * * * * * * * * * * * rhs: %15 = load i64, i64* %14 * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(1055) * * * * * * * * * DeclarationExp::toElem: const const(ulong) pivotIdx = getPivot(r); | T=void * * * * * * * * * * DtoDeclarationExp: pivotIdx * * * * * * * * * * * VarDeclaration * * * * * * * * * * * DtoVarDeclaration(vdtype = const(ulong)) * * * * * * * * * * * * llvm value for decl: %pivotIdx = alloca i64, align 8 * * * * * * * * * * * * expression initializer * * * * * * * * * * * * AssignExp::toElem: pivotIdx = getPivot(r) | (const(ulong))(const(ulong) = const(ulong)) * * * * * * * * * * * * * VarExp::toElem: pivotIdx @ const(ulong) * * * * * * * * * * * * * * DtoSymbolAddress ('pivotIdx' of type 'const(ulong)') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * CallExp::toElem: getPivot(r) @ const(ulong) * * * * * * * * * * * * * * VarExp::toElem: getPivot @ pure nothrow @nogc @safe ulong(string[] r) * * * * * * * * * * * * * * * DtoSymbolAddress ('getPivot' of type 'pure nothrow @nogc @safe ulong(string[] r)') * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe ulong(string[] r)) * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * Final function type: i64 ({ i64, { i64, i8* }* }) * * * * * * * * * * * * * * * * DtoResolveFunction(std.algorithm.sorting.getPivot!(binaryFun, string[]).getPivot): /usr/include/dlang/ldc/std/algorithm/sorting.d(740) * * * * * * * * * * * * * * * * * DtoDeclareFunction(std.algorithm.sorting.getPivot!(binaryFun, string[]).getPivot): /usr/include/dlang/ldc/std/algorithm/sorting.d(740) * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe ulong(string[] r)) * * * * * * * * * * * * * * * * * * func = declare i64 @_D3std9algorithm7sorting98__T8getPivotS773std10functional49__T9binaryFunVAyaa5_61203c2062VAyaa1_61VAyaa1_62Z9binaryFunTAAyaZ8getPivotFNaNbNiNfAAyaZm({ i64, { i64, i8* }* }) * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * Building type: pure nothrow @nogc @safe ulong(string[] r) * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe ulong(string[] r)) * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * Final function type: i64 ({ i64, { i64, i8* }* }) * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @safe ulong(string[] r) * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * VarExp::toElem: r @ string[] * * * * * * * * * * * * * * * * * DtoSymbolAddress ('r' of type 'string[]') * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * type: string[] * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * lhs: %pivotIdx = alloca i64, align 8 * * * * * * * * * * * * * * rhs: %17 = call i64 @_D3std9algorithm7sorting98__T8getPivotS773std10functional49__T9binaryFunVAyaa5_61203c2062VAyaa1_61VAyaa1_62Z9binaryFunTAAyaZ8getPivotFNaNbNiNfAAyaZm({ i64, { i64, i8* }* } %16) * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(1056) * * * * * * * * * DeclarationExp::toElem: string pivot = r[pivotIdx]; | T=void * * * * * * * * * * DtoDeclarationExp: pivot * * * * * * * * * * * VarDeclaration * * * * * * * * * * * DtoVarDeclaration(vdtype = string) * * * * * * * * * * * * llvm value for decl: %pivot = alloca { i64, i8* }, align 8 * * * * * * * * * * * * expression initializer * * * * * * * * * * * * AssignExp::toElem: pivot = r[pivotIdx] | (string)(string = string) * * * * * * * * * * * * * VarExp::toElem: pivot @ string * * * * * * * * * * * * * * DtoSymbolAddress ('pivot' of type 'string') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * IndexExp::toElem: r[pivotIdx] @ string * * * * * * * * * * * * * * VarExp::toElem: r @ string[] * * * * * * * * * * * * * * * DtoSymbolAddress ('r' of type 'string[]') * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * type: string[] * * * * * * * * * * * * * * VarExp::toElem: pivotIdx @ ulong * * * * * * * * * * * * * * * DtoSymbolAddress ('pivotIdx' of type 'const(ulong)') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * SetArray * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(1058) * * * * * * * * * DeclarationExp::toElem: alias pred = template binaryFun(ElementType1, ElementType2); | T=void * * * * * * * * * * DtoDeclarationExp: pred * * * * * * * * * * * Ignoring Symbol: alias * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(1061) * * * * * * * * * CallExp::toElem: swapAt(r, pivotIdx, r.length - 1LU) @ void * * * * * * * * * * VarExp::toElem: swapAt @ pure nothrow @nogc @safe void(string[] r, ulong i1, ulong i2) * * * * * * * * * * * DtoSymbolAddress ('swapAt' of type 'pure nothrow @nogc @safe void(string[] r, ulong i1, ulong i2)') * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe void(string[] r, ulong i1, ulong i2)) * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * Final function type: void (i64, i64, { i64, { i64, i8* }* }) * * * * * * * * * * * * DtoResolveFunction(std.algorithm.mutation.swapAt!(string[]).swapAt): /usr/include/dlang/ldc/std/algorithm/mutation.d(1743) * * * * * * * * * * * * * DtoDeclareFunction(std.algorithm.mutation.swapAt!(string[]).swapAt): /usr/include/dlang/ldc/std/algorithm/mutation.d(1743) * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe void(string[] r, ulong i1, ulong i2)) * * * * * * * * * * * * * * func = declare void @_D3std9algorithm8mutation16__T6swapAtTAAyaZ6swapAtFNaNbNiNfAAyammZv(i64, i64, { i64, { i64, i8* }* }) * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * Building type: pure nothrow @nogc @safe void(string[] r, ulong i1, ulong i2) * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe void(string[] r, ulong i1, ulong i2)) * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * Final function type: void (i64, i64, { i64, { i64, i8* }* }) * * * * * * * * * * * doing normal arguments * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * Function type: pure nothrow @nogc @safe void(string[] r, ulong i1, ulong i2) * * * * * * * * * * * DtoArgument * * * * * * * * * * * * VarExp::toElem: r @ string[] * * * * * * * * * * * * * DtoSymbolAddress ('r' of type 'string[]') * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * type: string[] * * * * * * * * * * * DtoArgument * * * * * * * * * * * * VarExp::toElem: pivotIdx @ ulong * * * * * * * * * * * * * DtoSymbolAddress ('pivotIdx' of type 'const(ulong)') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * DtoArgument * * * * * * * * * * * * MinExp::toElem: r.length - 1LU @ ulong * * * * * * * * * * * * * ArrayLengthExp::toElem: r.length @ ulong * * * * * * * * * * * * * * VarExp::toElem: r @ string[] * * * * * * * * * * * * * * * DtoSymbolAddress ('r' of type 'string[]') * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * type: string[] * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(1062) * * * * * * * * * DeclarationExp::toElem: ulong lessI = 18446744073709551615LU; | T=void * * * * * * * * * * DtoDeclarationExp: lessI * * * * * * * * * * * VarDeclaration * * * * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * * * * llvm value for decl: %lessI = alloca i64, align 8 * * * * * * * * * * * * expression initializer * * * * * * * * * * * * AssignExp::toElem: lessI = 18446744073709551615LU | (ulong)(ulong = ulong) * * * * * * * * * * * * * VarExp::toElem: lessI @ ulong * * * * * * * * * * * * * * DtoSymbolAddress ('lessI' of type 'ulong') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * IntegerExp::toElem: 18446744073709551615LU @ ulong * * * * * * * * * * * * * * IntegerExp::toConstElem: 18446744073709551615LU @ ulong * * * * * * * * * * * * * * * value = i64 -1 * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * lhs: %lessI = alloca i64, align 8 * * * * * * * * * * * * * * rhs: i64 -1 * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(1062) * * * * * * * * * DeclarationExp::toElem: ulong greaterI = r.length - 1LU; | T=void * * * * * * * * * * DtoDeclarationExp: greaterI * * * * * * * * * * * VarDeclaration * * * * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * * * * llvm value for decl: %greaterI = alloca i64, align 8 * * * * * * * * * * * * expression initializer * * * * * * * * * * * * AssignExp::toElem: greaterI = r.length - 1LU | (ulong)(ulong = ulong) * * * * * * * * * * * * * VarExp::toElem: greaterI @ ulong * * * * * * * * * * * * * * DtoSymbolAddress ('greaterI' of type 'ulong') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * MinExp::toElem: r.length - 1LU @ ulong * * * * * * * * * * * * * * ArrayLengthExp::toElem: r.length @ ulong * * * * * * * * * * * * * * * VarExp::toElem: r @ string[] * * * * * * * * * * * * * * * * DtoSymbolAddress ('r' of type 'string[]') * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * type: string[] * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * lhs: %greaterI = alloca i64, align 8 * * * * * * * * * * * * * * rhs: %32 = sub i64 %.len6, 1 * * * * * * * * ForStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(1064) * * * * * * * * * IntegerExp::toElem: true @ bool * * * * * * * * * * IntegerExp::toConstElem: true @ bool * * * * * * * * * * * value = i1 true * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(1065) * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(1065) * * * * * * * * * * * ForStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(1066) * * * * * * * * * * * * CallExp::toElem: binaryFun(r[lessI += 1LU], pivot) @ bool * * * * * * * * * * * * * VarExp::toElem: binaryFun @ pure nothrow @nogc @safe bool(auto ref string __a, auto ref string __b) * * * * * * * * * * * * * * DtoSymbolAddress ('binaryFun' of type 'pure nothrow @nogc @safe bool(auto ref string __a, auto ref string __b)') * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * Building type: pure nothrow @nogc @safe bool(auto ref string __a, auto ref string __b) * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe bool(auto ref string __a, auto ref string __b)) * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * Final function type: i1 ({ i64, i8* }*, { i64, i8* }*) * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * Function type: pure nothrow @nogc @safe bool(auto ref string __a, auto ref string __b) * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * IndexExp::toElem: r[lessI += 1LU] @ string * * * * * * * * * * * * * * * * VarExp::toElem: r @ string[] * * * * * * * * * * * * * * * * * DtoSymbolAddress ('r' of type 'string[]') * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * type: string[] * * * * * * * * * * * * * * * * AddAssignExp::toElem: lessI += 1LU @ ulong * * * * * * * * * * * * * * * * * Caching l-value of lessI += 1LU => lessI * * * * * * * * * * * * * * * * * * VarExp::toElem: lessI @ ulong * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('lessI' of type 'ulong') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * AddExp::toElem: lessI + 1LU @ ulong * * * * * * * * * * * * * * * * * * VarExp::toElem: lessI @ ulong * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * lhs: %lessI = alloca i64, align 8 * * * * * * * * * * * * * * * * * * rhs: %34 = add i64 %33, 1 * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * VarExp::toElem: pivot @ string * * * * * * * * * * * * * * * * DtoSymbolAddress ('pivot' of type 'string') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(1066) * * * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(1066) * * * * * * * * * * * ForStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(1067) * * * * * * * * * * * * AndAndExp::toElem: greaterI > 0LU && binaryFun(pivot, r[greaterI -= 1LU]) @ bool * * * * * * * * * * * * * CmpExp::toElem: greaterI > 0LU @ bool * * * * * * * * * * * * * * VarExp::toElem: greaterI @ ulong * * * * * * * * * * * * * * * DtoSymbolAddress ('greaterI' of type 'ulong') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * * type 1: %39 = load i64, i64* %greaterI * * * * * * * * * * * * * * type 2: i64 0 * * * * * * * * * * * * * CallExp::toElem: binaryFun(pivot, r[greaterI -= 1LU]) @ bool * * * * * * * * * * * * * * VarExp::toElem: binaryFun @ pure nothrow @nogc @safe bool(auto ref string __a, auto ref string __b) * * * * * * * * * * * * * * * DtoSymbolAddress ('binaryFun' of type 'pure nothrow @nogc @safe bool(auto ref string __a, auto ref string __b)') * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @safe bool(auto ref string __a, auto ref string __b) * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * VarExp::toElem: pivot @ string * * * * * * * * * * * * * * * * * DtoSymbolAddress ('pivot' of type 'string') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * IndexExp::toElem: r[greaterI -= 1LU] @ string * * * * * * * * * * * * * * * * * VarExp::toElem: r @ string[] * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('r' of type 'string[]') * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * type: string[] * * * * * * * * * * * * * * * * * MinAssignExp::toElem: greaterI -= 1LU @ ulong * * * * * * * * * * * * * * * * * * Caching l-value of greaterI -= 1LU => greaterI * * * * * * * * * * * * * * * * * * * VarExp::toElem: greaterI @ ulong * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('greaterI' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * MinExp::toElem: greaterI - 1LU @ ulong * * * * * * * * * * * * * * * * * * * VarExp::toElem: greaterI @ ulong * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * lhs: %greaterI = alloca i64, align 8 * * * * * * * * * * * * * * * * * * * rhs: %42 = sub i64 %41, 1 * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(1067) * * * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(1067) * * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(1069) * * * * * * * * * * * * CmpExp::toElem: lessI >= greaterI @ bool * * * * * * * * * * * * * VarExp::toElem: lessI @ ulong * * * * * * * * * * * * * * DtoSymbolAddress ('lessI' of type 'ulong') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * VarExp::toElem: greaterI @ ulong * * * * * * * * * * * * * * DtoSymbolAddress ('greaterI' of type 'ulong') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * type 1: %41 = load i64, i64* %lessI * * * * * * * * * * * * * type 2: %42 = load i64, i64* %greaterI * * * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(1070) * * * * * * * * * * * * * BreakStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(1071) * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(1073) * * * * * * * * * * * * CallExp::toElem: swapAt(r, lessI, greaterI) @ void * * * * * * * * * * * * * VarExp::toElem: swapAt @ pure nothrow @nogc @safe void(string[] r, ulong i1, ulong i2) * * * * * * * * * * * * * * DtoSymbolAddress ('swapAt' of type 'pure nothrow @nogc @safe void(string[] r, ulong i1, ulong i2)') * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * Function type: pure nothrow @nogc @safe void(string[] r, ulong i1, ulong i2) * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * VarExp::toElem: r @ string[] * * * * * * * * * * * * * * * * DtoSymbolAddress ('r' of type 'string[]') * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * type: string[] * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * VarExp::toElem: lessI @ ulong * * * * * * * * * * * * * * * * DtoSymbolAddress ('lessI' of type 'ulong') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * VarExp::toElem: greaterI @ ulong * * * * * * * * * * * * * * * * DtoSymbolAddress ('greaterI' of type 'ulong') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(1076) * * * * * * * * * CallExp::toElem: swapAt(r, r.length - 1LU, lessI) @ void * * * * * * * * * * VarExp::toElem: swapAt @ pure nothrow @nogc @safe void(string[] r, ulong i1, ulong i2) * * * * * * * * * * * DtoSymbolAddress ('swapAt' of type 'pure nothrow @nogc @safe void(string[] r, ulong i1, ulong i2)') * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * doing normal arguments * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * Function type: pure nothrow @nogc @safe void(string[] r, ulong i1, ulong i2) * * * * * * * * * * * DtoArgument * * * * * * * * * * * * VarExp::toElem: r @ string[] * * * * * * * * * * * * * DtoSymbolAddress ('r' of type 'string[]') * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * type: string[] * * * * * * * * * * * DtoArgument * * * * * * * * * * * * MinExp::toElem: r.length - 1LU @ ulong * * * * * * * * * * * * * ArrayLengthExp::toElem: r.length @ ulong * * * * * * * * * * * * * * VarExp::toElem: r @ string[] * * * * * * * * * * * * * * * DtoSymbolAddress ('r' of type 'string[]') * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * type: string[] * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * DtoArgument * * * * * * * * * * * * VarExp::toElem: lessI @ ulong * * * * * * * * * * * * * DtoSymbolAddress ('lessI' of type 'ulong') * * * * * * * * * * * * * * a normal variable * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(1077) * * * * * * * * * DeclarationExp::toElem: string[] right = r[lessI + 1LU..r.length]; | T=void * * * * * * * * * * DtoDeclarationExp: right * * * * * * * * * * * VarDeclaration * * * * * * * * * * * DtoVarDeclaration(vdtype = string[]) * * * * * * * * * * * * llvm value for decl: %right = alloca { i64, { i64, i8* }* }, align 8 * * * * * * * * * * * * expression initializer * * * * * * * * * * * * AssignExp::toElem: right = r[lessI + 1LU..r.length] | (string[])(string[] = string[]) * * * * * * * * * * * * * VarExp::toElem: right @ string[] * * * * * * * * * * * * * * DtoSymbolAddress ('right' of type 'string[]') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * SliceExp::toElem: r[lessI + 1LU..r.length] @ string[] * * * * * * * * * * * * * * VarExp::toElem: r @ string[] * * * * * * * * * * * * * * * DtoSymbolAddress ('r' of type 'string[]') * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * type: string[] * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * AddExp::toElem: lessI + 1LU @ ulong * * * * * * * * * * * * * * * VarExp::toElem: lessI @ ulong * * * * * * * * * * * * * * * * DtoSymbolAddress ('lessI' of type 'ulong') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * * ArrayLengthExp::toElem: r.length @ ulong * * * * * * * * * * * * * * * VarExp::toElem: r @ string[] * * * * * * * * * * * * * * * * DtoSymbolAddress ('r' of type 'string[]') * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * type: string[] * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * SetArray * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(1079) * * * * * * * * * DeclarationExp::toElem: string[] left = r[0..min(lessI, greaterI + 1LU)]; | T=void * * * * * * * * * * DtoDeclarationExp: left * * * * * * * * * * * VarDeclaration * * * * * * * * * * * DtoVarDeclaration(vdtype = string[]) * * * * * * * * * * * * llvm value for decl: %left = alloca { i64, { i64, i8* }* }, align 8 * * * * * * * * * * * * expression initializer * * * * * * * * * * * * AssignExp::toElem: left = r[0..min(lessI, greaterI + 1LU)] | (string[])(string[] = string[]) * * * * * * * * * * * * * VarExp::toElem: left @ string[] * * * * * * * * * * * * * * DtoSymbolAddress ('left' of type 'string[]') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * SliceExp::toElem: r[0..min(lessI, greaterI + 1LU)] @ string[] * * * * * * * * * * * * * * VarExp::toElem: r @ string[] * * * * * * * * * * * * * * * DtoSymbolAddress ('r' of type 'string[]') * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * type: string[] * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * * CallExp::toElem: min(lessI, greaterI + 1LU) @ ulong * * * * * * * * * * * * * * * VarExp::toElem: min @ pure nothrow @nogc @safe ulong(ulong _param_0, ulong _param_1) * * * * * * * * * * * * * * * * DtoSymbolAddress ('min' of type 'pure nothrow @nogc @safe ulong(ulong _param_0, ulong _param_1)') * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe ulong(ulong _param_0, ulong _param_1)) * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * Final function type: i64 (i64, i64) * * * * * * * * * * * * * * * * * DtoResolveFunction(std.algorithm.comparison.min!(ulong, ulong).min): /usr/include/dlang/ldc/std/algorithm/comparison.d(1298) * * * * * * * * * * * * * * * * * * DtoDeclareFunction(std.algorithm.comparison.min!(ulong, ulong).min): /usr/include/dlang/ldc/std/algorithm/comparison.d(1298) * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe ulong(ulong _param_0, ulong _param_1)) * * * * * * * * * * * * * * * * * * * func = declare i64 @_D3std9algorithm10comparison12__T3minTmTmZ3minFNaNbNiNfmmZm(i64, i64) * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * Building type: pure nothrow @nogc @safe ulong(ulong _param_0, ulong _param_1) * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe ulong(ulong _param_0, ulong _param_1)) * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * Final function type: i64 (i64, i64) * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @safe ulong(ulong _param_0, ulong _param_1) * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * VarExp::toElem: lessI @ ulong * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('lessI' of type 'ulong') * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * AddExp::toElem: greaterI + 1LU @ ulong * * * * * * * * * * * * * * * * * * VarExp::toElem: greaterI @ ulong * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('greaterI' of type 'ulong') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * SetArray * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(1080) * * * * * * * * * CmpExp::toElem: right.length > left.length @ bool * * * * * * * * * * ArrayLengthExp::toElem: right.length @ ulong * * * * * * * * * * * VarExp::toElem: right @ string[] * * * * * * * * * * * * DtoSymbolAddress ('right' of type 'string[]') * * * * * * * * * * * * * a normal variable * * * * * * * * * * * DtoArrayLen * * * * * * * * * * ArrayLengthExp::toElem: left.length @ ulong * * * * * * * * * * * VarExp::toElem: left @ string[] * * * * * * * * * * * * DtoSymbolAddress ('left' of type 'string[]') * * * * * * * * * * * * * a normal variable * * * * * * * * * * * DtoArrayLen * * * * * * * * * * type 1: %.len43 = load i64, i64* %75 * * * * * * * * * * type 2: %.len44 = load i64, i64* %76 * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(1081) * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(1082) * * * * * * * * * * * CallExp::toElem: swap(left, right) @ void * * * * * * * * * * * * VarExp::toElem: swap @ pure nothrow @nogc @trusted void(ref string[] lhs, ref string[] rhs) * * * * * * * * * * * * * DtoSymbolAddress ('swap' of type 'pure nothrow @nogc @trusted void(ref string[] lhs, ref string[] rhs)') * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted void(ref string[] lhs, ref string[] rhs)) * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * Final function type: void ({ i64, { i64, i8* }* }*, { i64, { i64, i8* }* }*) * * * * * * * * * * * * * * DtoResolveFunction(std.algorithm.mutation.swap!(string[]).swap): /usr/include/dlang/ldc/std/algorithm/mutation.d(1906) * * * * * * * * * * * * * * * DtoDeclareFunction(std.algorithm.mutation.swap!(string[]).swap): /usr/include/dlang/ldc/std/algorithm/mutation.d(1906) * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted void(ref string[] lhs, ref string[] rhs)) * * * * * * * * * * * * * * * * func = declare void @_D3std9algorithm8mutation14__T4swapTAAyaZ4swapFNaNbNiNeKAAyaKAAyaZv({ i64, { i64, i8* }* }*, { i64, { i64, i8* }* }*) * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * Building type: pure nothrow @nogc @trusted void(ref string[] lhs, ref string[] rhs) * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted void(ref string[] lhs, ref string[] rhs)) * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * Final function type: void ({ i64, { i64, i8* }* }*, { i64, { i64, i8* }* }*) * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * Function type: pure nothrow @nogc @trusted void(ref string[] lhs, ref string[] rhs) * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * VarExp::toElem: left @ string[] * * * * * * * * * * * * * * * DtoSymbolAddress ('left' of type 'string[]') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * VarExp::toElem: right @ string[] * * * * * * * * * * * * * * * DtoSymbolAddress ('right' of type 'string[]') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(1084) * * * * * * * * * CallExp::toElem: quickSortImpl(right, depth) @ void * * * * * * * * * * VarExp::toElem: quickSortImpl @ void(string[] r, ulong depth) * * * * * * * * * * * DtoSymbolAddress ('quickSortImpl' of type 'pure nothrow @nogc @safe void(string[] r, ulong depth)') * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * doing normal arguments * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * Function type: pure nothrow @nogc @safe void(string[] r, ulong depth) * * * * * * * * * * * DtoArgument * * * * * * * * * * * * VarExp::toElem: right @ string[] * * * * * * * * * * * * * DtoSymbolAddress ('right' of type 'string[]') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * DtoArgument * * * * * * * * * * * * VarExp::toElem: depth @ ulong * * * * * * * * * * * * * DtoSymbolAddress ('depth' of type 'ulong') * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * type: ulong * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(1085) * * * * * * * * * AssignExp::toElem: r = left | (string[])(string[] = string[]) * * * * * * * * * * VarExp::toElem: r @ string[] * * * * * * * * * * * DtoSymbolAddress ('r' of type 'string[]') * * * * * * * * * * * * function param * * * * * * * * * * * * type: string[] * * * * * * * * * * VarExp::toElem: left @ string[] * * * * * * * * * * * DtoSymbolAddress ('left' of type 'string[]') * * * * * * * * * * * * a normal variable * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * DtoAssign() * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * SetArray * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(1090) * * * * * * CallExp::toElem: optimisticInsertionSort(r) @ void * * * * * * * VarExp::toElem: optimisticInsertionSort @ pure nothrow @nogc @safe void(string[] r) * * * * * * * * DtoSymbolAddress ('optimisticInsertionSort' of type 'pure nothrow @nogc @safe void(string[] r)') * * * * * * * * * FuncDeclaration * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe void(string[] r)) * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: void ({ i64, { i64, i8* }* }) * * * * * * * * * DtoResolveFunction(std.algorithm.sorting.optimisticInsertionSort!(binaryFun, string[]).optimisticInsertionSort): /usr/include/dlang/ldc/std/algorithm/sorting.d(782) * * * * * * * * * * DtoDeclareFunction(std.algorithm.sorting.optimisticInsertionSort!(binaryFun, string[]).optimisticInsertionSort): /usr/include/dlang/ldc/std/algorithm/sorting.d(782) * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe void(string[] r)) * * * * * * * * * * * func = declare void @_D3std9algorithm7sorting114__T23optimisticInsertionSortS773std10functional49__T9binaryFunVAyaa5_61203c2062VAyaa1_61VAyaa1_62Z9binaryFunTAAyaZ23optimisticInsertionSortFNaNbNiNfAAyaZv({ i64, { i64, i8* }* }) * * * * * * * DtoCallFunction() * * * * * * * * Building type: pure nothrow @nogc @safe void(string[] r) * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe void(string[] r)) * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: void ({ i64, { i64, i8* }* }) * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (0) * * * * * * * * Function type: pure nothrow @nogc @safe void(string[] r) * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: r @ string[] * * * * * * * * * * DtoSymbolAddress ('r' of type 'string[]') * * * * * * * * * * * function param * * * * * * * * * * * type: string[] * TemplateInstance::codegen: 'std.algorithm.sorting.HeapSortImpl!(binaryFun, string[])' * * Ignoring Dsymbol::codegen for __anonymous * * Ignoring Dsymbol::codegen for * * Ignoring Dsymbol::codegen for * * Ignoring Dsymbol::codegen for * * Ignoring Dsymbol::codegen for std.algorithm.sorting.HeapSortImpl!(binaryFun, string[]).lessFun * * Ignoring Dsymbol::codegen for std.algorithm.sorting.HeapSortImpl!(binaryFun, string[]).heapSort()(Range r) * * Ignoring Dsymbol::codegen for std.algorithm.sorting.HeapSortImpl!(binaryFun, string[]).sift()(Range r, size_t parent, immutable size_t end) * TemplateInstance::codegen: 'std.functional.binaryFun!(binaryFun, "a", "b")' * * Ignoring Dsymbol::codegen for std.functional.binaryFun!(binaryFun, "a", "b").binaryFun * TemplateInstance::codegen: 'std.functional.needOpCallAlias!(binaryFun)' * * VarDeclaration::codegen(): 'std.functional.needOpCallAlias!(binaryFun).needOpCallAlias' * * * DtoResolveVariable(std.functional.needOpCallAlias!(binaryFun).needOpCallAlias) * TemplateInstance::codegen: 'std.algorithm.sorting.HeapSortImpl!(binaryFun, string[]).heapSort!()' * * DtoDefineFunction(std.algorithm.sorting.HeapSortImpl!(binaryFun, string[]).heapSort!().heapSort): /usr/include/dlang/ldc/std/algorithm/sorting.d(1106) * * * Doing function body for: heapSort * * * DtoCreateNestedContext for heapSort * * * * DtoCreateNestedContextType for std.algorithm.sorting.HeapSortImpl!(binaryFun, string[]).heapSort!().heapSort * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(1107) * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(1109) * * * * * * CmpExp::toElem: r.length < 2LU @ bool * * * * * * * ArrayLengthExp::toElem: r.length @ ulong * * * * * * * * VarExp::toElem: r @ string[] * * * * * * * * * DtoSymbolAddress ('r' of type 'string[]') * * * * * * * * * * function param * * * * * * * * * * type: string[] * * * * * * * * DtoArrayLen * * * * * * * IntegerExp::toElem: 2LU @ ulong * * * * * * * * IntegerExp::toConstElem: 2LU @ ulong * * * * * * * * * value = i64 2 * * * * * * * type 1: %.len = load i64, i64* %1 * * * * * * * type 2: i64 2 * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(1109) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(1112) * * * * * * DeclarationExp::toElem: ulong i = r.length / 2LU; | T=void * * * * * * * DtoDeclarationExp: i * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * llvm value for decl: %i = alloca i64, align 8 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: i = r.length / 2LU | (ulong)(ulong = ulong) * * * * * * * * * * VarExp::toElem: i @ ulong * * * * * * * * * * * DtoSymbolAddress ('i' of type 'ulong') * * * * * * * * * * * * a normal variable * * * * * * * * * * DivExp::toElem: r.length / 2LU @ ulong * * * * * * * * * * * ArrayLengthExp::toElem: r.length @ ulong * * * * * * * * * * * * VarExp::toElem: r @ string[] * * * * * * * * * * * * * DtoSymbolAddress ('r' of type 'string[]') * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * type: string[] * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * IntegerExp::toElem: 2LU @ ulong * * * * * * * * * * * * IntegerExp::toConstElem: 2LU @ ulong * * * * * * * * * * * * * value = i64 2 * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %i = alloca i64, align 8 * * * * * * * * * * * rhs: %4 = udiv i64 %.len1, 2 * * * * * ForStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(1113) * * * * * * CmpExp::toElem: i > 0LU @ bool * * * * * * * VarExp::toElem: i @ ulong * * * * * * * * DtoSymbolAddress ('i' of type 'ulong') * * * * * * * * * a normal variable * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * value = i64 0 * * * * * * * type 1: %5 = load i64, i64* %i * * * * * * * type 2: i64 0 * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(1113) * * * * * * * CallExp::toElem: sift(r, i -= 1LU, r.length) @ void * * * * * * * * VarExp::toElem: sift @ pure nothrow @nogc @safe void(string[] r, ulong parent, immutable(ulong) end) * * * * * * * * * DtoSymbolAddress ('sift' of type 'pure nothrow @nogc @safe void(string[] r, ulong parent, immutable(ulong) end)') * * * * * * * * * * FuncDeclaration * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe void(string[] r, ulong parent, immutable(ulong) end)) * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * Final function type: void (i64, i64, { i64, { i64, i8* }* }) * * * * * * * * * * DtoResolveFunction(std.algorithm.sorting.HeapSortImpl!(binaryFun, string[]).sift!().sift): /usr/include/dlang/ldc/std/algorithm/sorting.d(1126) * * * * * * * * * * * DtoDeclareFunction(std.algorithm.sorting.HeapSortImpl!(binaryFun, string[]).sift!().sift): /usr/include/dlang/ldc/std/algorithm/sorting.d(1126) * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe void(string[] r, ulong parent, immutable(ulong) end)) * * * * * * * * * * * * func = declare void @_D3std9algorithm7sorting103__T12HeapSortImplS773std10functional49__T9binaryFunVAyaa5_61203c2062VAyaa1_61VAyaa1_62Z9binaryFunTAAyaZ9__T4siftZ4siftFNaNbNiNfAAyamymZv(i64, i64, { i64, { i64, i8* }* }) * * * * * * * * DtoCallFunction() * * * * * * * * * Building type: pure nothrow @nogc @safe void(string[] r, ulong parent, immutable(ulong) end) * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe void(string[] r, ulong parent, immutable(ulong) end)) * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * Final function type: void (i64, i64, { i64, { i64, i8* }* }) * * * * * * * * * doing normal arguments * * * * * * * * * Arguments so far: (0) * * * * * * * * * Function type: pure nothrow @nogc @safe void(string[] r, ulong parent, immutable(ulong) end) * * * * * * * * * DtoArgument * * * * * * * * * * VarExp::toElem: r @ string[] * * * * * * * * * * * DtoSymbolAddress ('r' of type 'string[]') * * * * * * * * * * * * function param * * * * * * * * * * * * type: string[] * * * * * * * * * DtoArgument * * * * * * * * * * MinAssignExp::toElem: i -= 1LU @ ulong * * * * * * * * * * * Caching l-value of i -= 1LU => i * * * * * * * * * * * * VarExp::toElem: i @ ulong * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'ulong') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * MinExp::toElem: i - 1LU @ ulong * * * * * * * * * * * * VarExp::toElem: i @ ulong * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * lhs: %i = alloca i64, align 8 * * * * * * * * * * * * rhs: %8 = sub i64 %7, 1 * * * * * * * * * DtoArgument * * * * * * * * * * ArrayLengthExp::toElem: r.length @ immutable(ulong) * * * * * * * * * * * VarExp::toElem: r @ string[] * * * * * * * * * * * * DtoSymbolAddress ('r' of type 'string[]') * * * * * * * * * * * * * function param * * * * * * * * * * * * * type: string[] * * * * * * * * * * * DtoArrayLen * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(1116) * * * * * * AssignExp::toElem: i = r.length - 1LU | (ulong)(ulong = ulong) * * * * * * * VarExp::toElem: i @ ulong * * * * * * * * DtoSymbolAddress ('i' of type 'ulong') * * * * * * * * * a normal variable * * * * * * * MinExp::toElem: r.length - 1LU @ ulong * * * * * * * * ArrayLengthExp::toElem: r.length @ ulong * * * * * * * * * VarExp::toElem: r @ string[] * * * * * * * * * * DtoSymbolAddress ('r' of type 'string[]') * * * * * * * * * * * function param * * * * * * * * * * * type: string[] * * * * * * * * * DtoArrayLen * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * value = i64 1 * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * DtoAssign() * * * * * * * * lhs: %i = alloca i64, align 8 * * * * * * * * rhs: %12 = sub i64 %.len3, 1 * * * * * ForStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(1117) * * * * * * CmpExp::toElem: i > 0LU @ bool * * * * * * * VarExp::toElem: i @ ulong * * * * * * * * DtoSymbolAddress ('i' of type 'ulong') * * * * * * * * * a normal variable * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * value = i64 0 * * * * * * * type 1: %13 = load i64, i64* %i * * * * * * * type 2: i64 0 * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(1118) * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(1118) * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(1119) * * * * * * * * * CallExp::toElem: swapAt(r, 0LU, i) @ void * * * * * * * * * * VarExp::toElem: swapAt @ pure nothrow @nogc @safe void(string[] r, ulong i1, ulong i2) * * * * * * * * * * * DtoSymbolAddress ('swapAt' of type 'pure nothrow @nogc @safe void(string[] r, ulong i1, ulong i2)') * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * doing normal arguments * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * Function type: pure nothrow @nogc @safe void(string[] r, ulong i1, ulong i2) * * * * * * * * * * * DtoArgument * * * * * * * * * * * * VarExp::toElem: r @ string[] * * * * * * * * * * * * * DtoSymbolAddress ('r' of type 'string[]') * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * type: string[] * * * * * * * * * * * DtoArgument * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * DtoArgument * * * * * * * * * * * * VarExp::toElem: i @ ulong * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'ulong') * * * * * * * * * * * * * * a normal variable * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(1120) * * * * * * * * * CallExp::toElem: sift(r, 0LU, i) @ void * * * * * * * * * * VarExp::toElem: sift @ pure nothrow @nogc @safe void(string[] r, ulong parent, immutable(ulong) end) * * * * * * * * * * * DtoSymbolAddress ('sift' of type 'pure nothrow @nogc @safe void(string[] r, ulong parent, immutable(ulong) end)') * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * doing normal arguments * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * Function type: pure nothrow @nogc @safe void(string[] r, ulong parent, immutable(ulong) end) * * * * * * * * * * * DtoArgument * * * * * * * * * * * * VarExp::toElem: r @ string[] * * * * * * * * * * * * * DtoSymbolAddress ('r' of type 'string[]') * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * type: string[] * * * * * * * * * * * DtoArgument * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * DtoArgument * * * * * * * * * * * * VarExp::toElem: i @ immutable(ulong) * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'ulong') * * * * * * * * * * * * * * a normal variable * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(1121) * * * * * * * * * MinAssignExp::toElem: i -= 1LU @ ulong * * * * * * * * * * Caching l-value of i -= 1LU => i * * * * * * * * * * * VarExp::toElem: i @ ulong * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'ulong') * * * * * * * * * * * * * a normal variable * * * * * * * * * * MinExp::toElem: i - 1LU @ ulong * * * * * * * * * * * VarExp::toElem: i @ ulong * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %i = alloca i64, align 8 * * * * * * * * * * * rhs: %20 = sub i64 %19, 1 * TemplateInstance::codegen: 'std.algorithm.sorting.HeapSortImpl!(binaryFun, string[]).sift!()' * * DtoDefineFunction(std.algorithm.sorting.HeapSortImpl!(binaryFun, string[]).sift!().sift): /usr/include/dlang/ldc/std/algorithm/sorting.d(1126) * * * Doing function body for: sift * * * DtoCreateNestedContext for sift * * * * DtoCreateNestedContextType for std.algorithm.sorting.HeapSortImpl!(binaryFun, string[]).sift!().sift * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(1127) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(1128) * * * * * * DeclarationExp::toElem: immutable immutable(ulong) root = parent; | T=void * * * * * * * DtoDeclarationExp: root * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = immutable(ulong)) * * * * * * * * * llvm value for decl: %root = alloca i64, align 8 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: root = parent | (immutable(ulong))(immutable(ulong) = immutable(ulong)) * * * * * * * * * * VarExp::toElem: root @ immutable(ulong) * * * * * * * * * * * DtoSymbolAddress ('root' of type 'immutable(ulong)') * * * * * * * * * * * * a normal variable * * * * * * * * * * VarExp::toElem: parent @ immutable(ulong) * * * * * * * * * * * DtoSymbolAddress ('parent' of type 'ulong') * * * * * * * * * * * * function param * * * * * * * * * * * * type: ulong * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %root = alloca i64, align 8 * * * * * * * * * * * rhs: %1 = load i64, i64* %parent * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(1129) * * * * * * DeclarationExp::toElem: ulong child = void; | T=void * * * * * * * DtoDeclarationExp: child * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * llvm value for decl: %child = alloca i64, align 8 * * * * * ForStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(1132) * * * * * * IntegerExp::toElem: true @ bool * * * * * * * IntegerExp::toConstElem: true @ bool * * * * * * * * value = i1 true * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(1133) * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(1133) * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(1134) * * * * * * * * * AssignExp::toElem: child = parent * 2LU + 1LU | (ulong)(ulong = ulong) * * * * * * * * * * VarExp::toElem: child @ ulong * * * * * * * * * * * DtoSymbolAddress ('child' of type 'ulong') * * * * * * * * * * * * a normal variable * * * * * * * * * * AddExp::toElem: parent * 2LU + 1LU @ ulong * * * * * * * * * * * MulExp::toElem: parent * 2LU @ ulong * * * * * * * * * * * * VarExp::toElem: parent @ ulong * * * * * * * * * * * * * DtoSymbolAddress ('parent' of type 'ulong') * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * type: ulong * * * * * * * * * * * * IntegerExp::toElem: 2LU @ ulong * * * * * * * * * * * * * IntegerExp::toConstElem: 2LU @ ulong * * * * * * * * * * * * * * value = i64 2 * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %child = alloca i64, align 8 * * * * * * * * * * * rhs: %4 = add i64 %3, 1 * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(1136) * * * * * * * * * CmpExp::toElem: child >= end @ bool * * * * * * * * * * VarExp::toElem: child @ ulong * * * * * * * * * * * DtoSymbolAddress ('child' of type 'ulong') * * * * * * * * * * * * a normal variable * * * * * * * * * * VarExp::toElem: end @ ulong * * * * * * * * * * * DtoSymbolAddress ('end' of type 'immutable(ulong)') * * * * * * * * * * * * function param * * * * * * * * * * * * type: immutable(ulong) * * * * * * * * * * type 1: %5 = load i64, i64* %child * * * * * * * * * * type 2: %6 = load i64, i64* %end * * * * * * * * * BreakStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(1136) * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(1138) * * * * * * * * * AndAndExp::toElem: child + 1LU < end && binaryFun(r[child], r[child + 1LU]) @ bool * * * * * * * * * * CmpExp::toElem: child + 1LU < end @ bool * * * * * * * * * * * AddExp::toElem: child + 1LU @ ulong * * * * * * * * * * * * VarExp::toElem: child @ ulong * * * * * * * * * * * * * DtoSymbolAddress ('child' of type 'ulong') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * VarExp::toElem: end @ ulong * * * * * * * * * * * * DtoSymbolAddress ('end' of type 'immutable(ulong)') * * * * * * * * * * * * * function param * * * * * * * * * * * * * type: immutable(ulong) * * * * * * * * * * * type 1: %9 = add i64 %8, 1 * * * * * * * * * * * type 2: %10 = load i64, i64* %end * * * * * * * * * * CallExp::toElem: binaryFun(r[child], r[child + 1LU]) @ bool * * * * * * * * * * * VarExp::toElem: binaryFun @ pure nothrow @nogc @safe bool(auto ref string __a, auto ref string __b) * * * * * * * * * * * * DtoSymbolAddress ('binaryFun' of type 'pure nothrow @nogc @safe bool(auto ref string __a, auto ref string __b)') * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * Function type: pure nothrow @nogc @safe bool(auto ref string __a, auto ref string __b) * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * IndexExp::toElem: r[child] @ string * * * * * * * * * * * * * * VarExp::toElem: r @ string[] * * * * * * * * * * * * * * * DtoSymbolAddress ('r' of type 'string[]') * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * type: string[] * * * * * * * * * * * * * * VarExp::toElem: child @ ulong * * * * * * * * * * * * * * * DtoSymbolAddress ('child' of type 'ulong') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * IndexExp::toElem: r[child + 1LU] @ string * * * * * * * * * * * * * * VarExp::toElem: r @ string[] * * * * * * * * * * * * * * * DtoSymbolAddress ('r' of type 'string[]') * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * type: string[] * * * * * * * * * * * * * * AddExp::toElem: child + 1LU @ ulong * * * * * * * * * * * * * * * VarExp::toElem: child @ ulong * * * * * * * * * * * * * * * * DtoSymbolAddress ('child' of type 'ulong') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(1138) * * * * * * * * * * AddAssignExp::toElem: child += 1LU @ ulong * * * * * * * * * * * Caching l-value of child += 1LU => child * * * * * * * * * * * * VarExp::toElem: child @ ulong * * * * * * * * * * * * * DtoSymbolAddress ('child' of type 'ulong') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * AddExp::toElem: child + 1LU @ ulong * * * * * * * * * * * * VarExp::toElem: child @ ulong * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * lhs: %child = alloca i64, align 8 * * * * * * * * * * * * rhs: %24 = add i64 %23, 1 * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(1140) * * * * * * * * * CallExp::toElem: swapAt(r, parent, child) @ void * * * * * * * * * * VarExp::toElem: swapAt @ pure nothrow @nogc @safe void(string[] r, ulong i1, ulong i2) * * * * * * * * * * * DtoSymbolAddress ('swapAt' of type 'pure nothrow @nogc @safe void(string[] r, ulong i1, ulong i2)') * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * doing normal arguments * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * Function type: pure nothrow @nogc @safe void(string[] r, ulong i1, ulong i2) * * * * * * * * * * * DtoArgument * * * * * * * * * * * * VarExp::toElem: r @ string[] * * * * * * * * * * * * * DtoSymbolAddress ('r' of type 'string[]') * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * type: string[] * * * * * * * * * * * DtoArgument * * * * * * * * * * * * VarExp::toElem: parent @ ulong * * * * * * * * * * * * * DtoSymbolAddress ('parent' of type 'ulong') * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * type: ulong * * * * * * * * * * * DtoArgument * * * * * * * * * * * * VarExp::toElem: child @ ulong * * * * * * * * * * * * * DtoSymbolAddress ('child' of type 'ulong') * * * * * * * * * * * * * * a normal variable * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(1141) * * * * * * * * * AssignExp::toElem: parent = child | (ulong)(ulong = ulong) * * * * * * * * * * VarExp::toElem: parent @ ulong * * * * * * * * * * * DtoSymbolAddress ('parent' of type 'ulong') * * * * * * * * * * * * function param * * * * * * * * * * * * type: ulong * * * * * * * * * * VarExp::toElem: child @ ulong * * * * * * * * * * * DtoSymbolAddress ('child' of type 'ulong') * * * * * * * * * * * * a normal variable * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %parent = alloca i64, align 8 * * * * * * * * * * * rhs: %28 = load i64, i64* %child * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(1144) * * * * * * AssignExp::toElem: child = parent | (ulong)(ulong = ulong) * * * * * * * VarExp::toElem: child @ ulong * * * * * * * * DtoSymbolAddress ('child' of type 'ulong') * * * * * * * * * a normal variable * * * * * * * VarExp::toElem: parent @ ulong * * * * * * * * DtoSymbolAddress ('parent' of type 'ulong') * * * * * * * * * function param * * * * * * * * * type: ulong * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * DtoAssign() * * * * * * * * lhs: %child = alloca i64, align 8 * * * * * * * * rhs: %8 = load i64, i64* %parent * * * * * ForStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(1147) * * * * * * CmpExp::toElem: child > root @ bool * * * * * * * VarExp::toElem: child @ ulong * * * * * * * * DtoSymbolAddress ('child' of type 'ulong') * * * * * * * * * a normal variable * * * * * * * VarExp::toElem: root @ ulong * * * * * * * * DtoSymbolAddress ('root' of type 'immutable(ulong)') * * * * * * * * * a normal variable * * * * * * * type 1: %30 = load i64, i64* %child * * * * * * * type 2: %31 = load i64, i64* %root * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(1148) * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(1148) * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(1149) * * * * * * * * * AssignExp::toElem: parent = (child - 1LU) / 2LU | (ulong)(ulong = ulong) * * * * * * * * * * VarExp::toElem: parent @ ulong * * * * * * * * * * * DtoSymbolAddress ('parent' of type 'ulong') * * * * * * * * * * * * function param * * * * * * * * * * * * type: ulong * * * * * * * * * * DivExp::toElem: (child - 1LU) / 2LU @ ulong * * * * * * * * * * * MinExp::toElem: child - 1LU @ ulong * * * * * * * * * * * * VarExp::toElem: child @ ulong * * * * * * * * * * * * * DtoSymbolAddress ('child' of type 'ulong') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * IntegerExp::toElem: 2LU @ ulong * * * * * * * * * * * * IntegerExp::toConstElem: 2LU @ ulong * * * * * * * * * * * * * value = i64 2 * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %parent = alloca i64, align 8 * * * * * * * * * * * rhs: %35 = udiv i64 %34, 2 * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(1150) * * * * * * * * * CallExp::toElem: binaryFun(r[parent], r[child]) @ bool * * * * * * * * * * VarExp::toElem: binaryFun @ pure nothrow @nogc @safe bool(auto ref string __a, auto ref string __b) * * * * * * * * * * * DtoSymbolAddress ('binaryFun' of type 'pure nothrow @nogc @safe bool(auto ref string __a, auto ref string __b)') * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * doing normal arguments * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * Function type: pure nothrow @nogc @safe bool(auto ref string __a, auto ref string __b) * * * * * * * * * * * DtoArgument * * * * * * * * * * * * IndexExp::toElem: r[parent] @ string * * * * * * * * * * * * * VarExp::toElem: r @ string[] * * * * * * * * * * * * * * DtoSymbolAddress ('r' of type 'string[]') * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * type: string[] * * * * * * * * * * * * * VarExp::toElem: parent @ ulong * * * * * * * * * * * * * * DtoSymbolAddress ('parent' of type 'ulong') * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * type: ulong * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * DtoArgument * * * * * * * * * * * * IndexExp::toElem: r[child] @ string * * * * * * * * * * * * * VarExp::toElem: r @ string[] * * * * * * * * * * * * * * DtoSymbolAddress ('r' of type 'string[]') * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * type: string[] * * * * * * * * * * * * * VarExp::toElem: child @ ulong * * * * * * * * * * * * * * DtoSymbolAddress ('child' of type 'ulong') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(1151) * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(1151) * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(1152) * * * * * * * * * * * * CallExp::toElem: swapAt(r, parent, child) @ void * * * * * * * * * * * * * VarExp::toElem: swapAt @ pure nothrow @nogc @safe void(string[] r, ulong i1, ulong i2) * * * * * * * * * * * * * * DtoSymbolAddress ('swapAt' of type 'pure nothrow @nogc @safe void(string[] r, ulong i1, ulong i2)') * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * Function type: pure nothrow @nogc @safe void(string[] r, ulong i1, ulong i2) * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * VarExp::toElem: r @ string[] * * * * * * * * * * * * * * * * DtoSymbolAddress ('r' of type 'string[]') * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * type: string[] * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * VarExp::toElem: parent @ ulong * * * * * * * * * * * * * * * * DtoSymbolAddress ('parent' of type 'ulong') * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * type: ulong * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * VarExp::toElem: child @ ulong * * * * * * * * * * * * * * * * DtoSymbolAddress ('child' of type 'ulong') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(1153) * * * * * * * * * * * * AssignExp::toElem: child = parent | (ulong)(ulong = ulong) * * * * * * * * * * * * * VarExp::toElem: child @ ulong * * * * * * * * * * * * * * DtoSymbolAddress ('child' of type 'ulong') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * VarExp::toElem: parent @ ulong * * * * * * * * * * * * * * DtoSymbolAddress ('parent' of type 'ulong') * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * type: ulong * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * lhs: %child = alloca i64, align 8 * * * * * * * * * * * * * * rhs: %50 = load i64, i64* %parent * * * * * * * * * BreakStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(1155) * TemplateInstance::codegen: 'std.algorithm.mutation.swapAt!(string[])' * * DtoDefineFunction(std.algorithm.mutation.swapAt!(string[]).swapAt): /usr/include/dlang/ldc/std/algorithm/mutation.d(1743) * * * Doing function body for: swapAt * * * DtoCreateNestedContext for swapAt * * * * DtoCreateNestedContextType for std.algorithm.mutation.swapAt!(string[]).swapAt * * * CompoundStatement::toIR(): * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/mutation.d(1747) * * * * * CallExp::toElem: swap(r[i1], r[i2]) @ void * * * * * * VarExp::toElem: swap @ pure nothrow @nogc @trusted void(ref string lhs, ref string rhs) * * * * * * * DtoSymbolAddress ('swap' of type 'pure nothrow @nogc @trusted void(ref string lhs, ref string rhs)') * * * * * * * * FuncDeclaration * * * * * * DtoCallFunction() * * * * * * * Building type: pure nothrow @nogc @trusted void(ref string lhs, ref string rhs) * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted void(ref string lhs, ref string rhs)) * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * Final function type: void ({ i64, i8* }*, { i64, i8* }*) * * * * * * * doing normal arguments * * * * * * * Arguments so far: (0) * * * * * * * Function type: pure nothrow @nogc @trusted void(ref string lhs, ref string rhs) * * * * * * * DtoArgument * * * * * * * * IndexExp::toElem: r[i1] @ string * * * * * * * * * VarExp::toElem: r @ string[] * * * * * * * * * * DtoSymbolAddress ('r' of type 'string[]') * * * * * * * * * * * function param * * * * * * * * * * * type: string[] * * * * * * * * * VarExp::toElem: i1 @ ulong * * * * * * * * * * DtoSymbolAddress ('i1' of type 'ulong') * * * * * * * * * * * function param * * * * * * * * * * * type: ulong * * * * * * * * * DtoArrayLen * * * * * * * * * DtoArrayPtr * * * * * * * DtoArgument * * * * * * * * IndexExp::toElem: r[i2] @ string * * * * * * * * * VarExp::toElem: r @ string[] * * * * * * * * * * DtoSymbolAddress ('r' of type 'string[]') * * * * * * * * * * * function param * * * * * * * * * * * type: string[] * * * * * * * * * VarExp::toElem: i2 @ ulong * * * * * * * * * * DtoSymbolAddress ('i2' of type 'ulong') * * * * * * * * * * * function param * * * * * * * * * * * type: ulong * * * * * * * * * DtoArrayLen * * * * * * * * * DtoArrayPtr * TemplateInstance::codegen: 'std.algorithm.sorting.getPivot!(binaryFun, string[])' * * DtoDefineFunction(std.algorithm.sorting.getPivot!(binaryFun, string[]).getPivot): /usr/include/dlang/ldc/std/algorithm/sorting.d(740) * * * Doing function body for: getPivot * * * DtoCreateNestedContext for getPivot * * * * DtoCreateNestedContextType for std.algorithm.sorting.getPivot!(binaryFun, string[]).getPivot * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(741) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(748) * * * * * * DeclarationExp::toElem: alias pred = template binaryFun(ElementType1, ElementType2); | T=void * * * * * * * DtoDeclarationExp: pred * * * * * * * * Ignoring Symbol: alias * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(749) * * * * * * DeclarationExp::toElem: immutable immutable(ulong) len = r.length; | T=void * * * * * * * DtoDeclarationExp: len * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = immutable(ulong)) * * * * * * * * * llvm value for decl: %len = alloca i64, align 8 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: len = r.length | (immutable(ulong))(immutable(ulong) = immutable(ulong)) * * * * * * * * * * VarExp::toElem: len @ immutable(ulong) * * * * * * * * * * * DtoSymbolAddress ('len' of type 'immutable(ulong)') * * * * * * * * * * * * a normal variable * * * * * * * * * * ArrayLengthExp::toElem: r.length @ immutable(ulong) * * * * * * * * * * * VarExp::toElem: r @ string[] * * * * * * * * * * * * DtoSymbolAddress ('r' of type 'string[]') * * * * * * * * * * * * * function param * * * * * * * * * * * * * type: string[] * * * * * * * * * * * DtoArrayLen * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %len = alloca i64, align 8 * * * * * * * * * * * rhs: %.len = load i64, i64* %1 * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(750) * * * * * * DeclarationExp::toElem: immutable immutable(ulong) mid = len / 2LU; | T=void * * * * * * * DtoDeclarationExp: mid * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = immutable(ulong)) * * * * * * * * * llvm value for decl: %mid = alloca i64, align 8 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: mid = len / 2LU | (immutable(ulong))(immutable(ulong) = immutable(ulong)) * * * * * * * * * * VarExp::toElem: mid @ immutable(ulong) * * * * * * * * * * * DtoSymbolAddress ('mid' of type 'immutable(ulong)') * * * * * * * * * * * * a normal variable * * * * * * * * * * DivExp::toElem: len / 2LU @ immutable(ulong) * * * * * * * * * * * VarExp::toElem: len @ ulong * * * * * * * * * * * * DtoSymbolAddress ('len' of type 'immutable(ulong)') * * * * * * * * * * * * * a normal variable * * * * * * * * * * * IntegerExp::toElem: 2LU @ ulong * * * * * * * * * * * * IntegerExp::toConstElem: 2LU @ ulong * * * * * * * * * * * * * value = i64 2 * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %mid = alloca i64, align 8 * * * * * * * * * * * rhs: %3 = udiv i64 %2, 2 * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(751) * * * * * * DeclarationExp::toElem: immutable immutable(uint) result = cast(uint)binaryFun(r[0], r[mid]) << 2 | cast(uint)binaryFun(r[0], r[len - 1LU]) << 1 | cast(uint)binaryFun(r[mid], r[len - 1LU]); | T=void * * * * * * * DtoDeclarationExp: result * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = immutable(uint)) * * * * * * * * * llvm value for decl: %result = alloca i32, align 4 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: result = cast(uint)binaryFun(r[0], r[mid]) << 2 | cast(uint)binaryFun(r[0], r[len - 1LU]) << 1 | cast(uint)binaryFun(r[mid], r[len - 1LU]) | (immutable(uint))(immutable(uint) = immutable(uint)) * * * * * * * * * * VarExp::toElem: result @ immutable(uint) * * * * * * * * * * * DtoSymbolAddress ('result' of type 'immutable(uint)') * * * * * * * * * * * * a normal variable * * * * * * * * * * OrExp::toElem: cast(uint)binaryFun(r[0], r[mid]) << 2 | cast(uint)binaryFun(r[0], r[len - 1LU]) << 1 | cast(uint)binaryFun(r[mid], r[len - 1LU]) @ immutable(uint) * * * * * * * * * * * OrExp::toElem: cast(uint)binaryFun(r[0], r[mid]) << 2 | cast(uint)binaryFun(r[0], r[len - 1LU]) << 1 @ uint * * * * * * * * * * * * ShlExp::toElem: cast(uint)binaryFun(r[0], r[mid]) << 2 @ uint * * * * * * * * * * * * * CastExp::toElem: cast(uint)binaryFun(r[0], r[mid]) @ uint * * * * * * * * * * * * * * CallExp::toElem: binaryFun(r[0], r[mid]) @ bool * * * * * * * * * * * * * * * VarExp::toElem: binaryFun @ pure nothrow @nogc @safe bool(auto ref string __a, auto ref string __b) * * * * * * * * * * * * * * * * DtoSymbolAddress ('binaryFun' of type 'pure nothrow @nogc @safe bool(auto ref string __a, auto ref string __b)') * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @safe bool(auto ref string __a, auto ref string __b) * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * IndexExp::toElem: r[0] @ string * * * * * * * * * * * * * * * * * * VarExp::toElem: r @ string[] * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('r' of type 'string[]') * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * type: string[] * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * IndexExp::toElem: r[mid] @ string * * * * * * * * * * * * * * * * * * VarExp::toElem: r @ string[] * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('r' of type 'string[]') * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * type: string[] * * * * * * * * * * * * * * * * * * VarExp::toElem: mid @ ulong * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('mid' of type 'immutable(ulong)') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * Casting from 'bool' to 'uint' * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * * IntegerExp::toElem: 2 @ int * * * * * * * * * * * * * * IntegerExp::toConstElem: 2 @ int * * * * * * * * * * * * * * * value = i32 2 * * * * * * * * * * * * * Casting from 'int' to 'uint' * * * * * * * * * * * * ShlExp::toElem: cast(uint)binaryFun(r[0], r[len - 1LU]) << 1 @ uint * * * * * * * * * * * * * CastExp::toElem: cast(uint)binaryFun(r[0], r[len - 1LU]) @ uint * * * * * * * * * * * * * * CallExp::toElem: binaryFun(r[0], r[len - 1LU]) @ bool * * * * * * * * * * * * * * * VarExp::toElem: binaryFun @ pure nothrow @nogc @safe bool(auto ref string __a, auto ref string __b) * * * * * * * * * * * * * * * * DtoSymbolAddress ('binaryFun' of type 'pure nothrow @nogc @safe bool(auto ref string __a, auto ref string __b)') * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @safe bool(auto ref string __a, auto ref string __b) * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * IndexExp::toElem: r[0] @ string * * * * * * * * * * * * * * * * * * VarExp::toElem: r @ string[] * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('r' of type 'string[]') * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * type: string[] * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * IndexExp::toElem: r[len - 1LU] @ string * * * * * * * * * * * * * * * * * * VarExp::toElem: r @ string[] * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('r' of type 'string[]') * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * type: string[] * * * * * * * * * * * * * * * * * * MinExp::toElem: len - 1LU @ ulong * * * * * * * * * * * * * * * * * * * VarExp::toElem: len @ ulong * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('len' of type 'immutable(ulong)') * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * Casting from 'bool' to 'uint' * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * * IntegerExp::toElem: 1 @ int * * * * * * * * * * * * * * IntegerExp::toConstElem: 1 @ int * * * * * * * * * * * * * * * value = i32 1 * * * * * * * * * * * * * Casting from 'int' to 'uint' * * * * * * * * * * * CastExp::toElem: cast(uint)binaryFun(r[mid], r[len - 1LU]) @ uint * * * * * * * * * * * * CallExp::toElem: binaryFun(r[mid], r[len - 1LU]) @ bool * * * * * * * * * * * * * VarExp::toElem: binaryFun @ pure nothrow @nogc @safe bool(auto ref string __a, auto ref string __b) * * * * * * * * * * * * * * DtoSymbolAddress ('binaryFun' of type 'pure nothrow @nogc @safe bool(auto ref string __a, auto ref string __b)') * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * Function type: pure nothrow @nogc @safe bool(auto ref string __a, auto ref string __b) * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * IndexExp::toElem: r[mid] @ string * * * * * * * * * * * * * * * * VarExp::toElem: r @ string[] * * * * * * * * * * * * * * * * * DtoSymbolAddress ('r' of type 'string[]') * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * type: string[] * * * * * * * * * * * * * * * * VarExp::toElem: mid @ ulong * * * * * * * * * * * * * * * * * DtoSymbolAddress ('mid' of type 'immutable(ulong)') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * IndexExp::toElem: r[len - 1LU] @ string * * * * * * * * * * * * * * * * VarExp::toElem: r @ string[] * * * * * * * * * * * * * * * * * DtoSymbolAddress ('r' of type 'string[]') * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * type: string[] * * * * * * * * * * * * * * * * MinExp::toElem: len - 1LU @ ulong * * * * * * * * * * * * * * * * * VarExp::toElem: len @ ulong * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('len' of type 'immutable(ulong)') * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * Casting from 'bool' to 'uint' * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %result = alloca i32, align 4 * * * * * * * * * * * rhs: %39 = or i32 %26, %38 * * * * * SwitchStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(755) * * * * * * has default * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(755) * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(755) * * * * * * * * CaseStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(756) * * * * * * * * * IntegerExp::toConstElem: 1u @ immutable(uint) * * * * * * * * * * value = i32 1 * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(756) * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(756) * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(757) * * * * * * * * * * * * CallExp::toElem: swapAt(r, 0LU, len - 1LU) @ void * * * * * * * * * * * * * VarExp::toElem: swapAt @ pure nothrow @nogc @safe void(string[] r, ulong i1, ulong i2) * * * * * * * * * * * * * * DtoSymbolAddress ('swapAt' of type 'pure nothrow @nogc @safe void(string[] r, ulong i1, ulong i2)') * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * Function type: pure nothrow @nogc @safe void(string[] r, ulong i1, ulong i2) * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * VarExp::toElem: r @ string[] * * * * * * * * * * * * * * * * DtoSymbolAddress ('r' of type 'string[]') * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * type: string[] * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * MinExp::toElem: len - 1LU @ ulong * * * * * * * * * * * * * * * * VarExp::toElem: len @ ulong * * * * * * * * * * * * * * * * * DtoSymbolAddress ('len' of type 'immutable(ulong)') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(758) * * * * * * * * * * * * CallExp::toElem: swapAt(r, 0LU, mid) @ void * * * * * * * * * * * * * VarExp::toElem: swapAt @ pure nothrow @nogc @safe void(string[] r, ulong i1, ulong i2) * * * * * * * * * * * * * * DtoSymbolAddress ('swapAt' of type 'pure nothrow @nogc @safe void(string[] r, ulong i1, ulong i2)') * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * Function type: pure nothrow @nogc @safe void(string[] r, ulong i1, ulong i2) * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * VarExp::toElem: r @ string[] * * * * * * * * * * * * * * * * DtoSymbolAddress ('r' of type 'string[]') * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * type: string[] * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * VarExp::toElem: mid @ ulong * * * * * * * * * * * * * * * * DtoSymbolAddress ('mid' of type 'immutable(ulong)') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * BreakStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(759) * * * * * * * * CaseStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(760) * * * * * * * * * IntegerExp::toConstElem: 6u @ immutable(uint) * * * * * * * * * * value = i32 6 * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(760) * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(760) * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(761) * * * * * * * * * * * * CallExp::toElem: swapAt(r, mid, len - 1LU) @ void * * * * * * * * * * * * * VarExp::toElem: swapAt @ pure nothrow @nogc @safe void(string[] r, ulong i1, ulong i2) * * * * * * * * * * * * * * DtoSymbolAddress ('swapAt' of type 'pure nothrow @nogc @safe void(string[] r, ulong i1, ulong i2)') * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * Function type: pure nothrow @nogc @safe void(string[] r, ulong i1, ulong i2) * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * VarExp::toElem: r @ string[] * * * * * * * * * * * * * * * * DtoSymbolAddress ('r' of type 'string[]') * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * type: string[] * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * VarExp::toElem: mid @ ulong * * * * * * * * * * * * * * * * DtoSymbolAddress ('mid' of type 'immutable(ulong)') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * MinExp::toElem: len - 1LU @ ulong * * * * * * * * * * * * * * * * VarExp::toElem: len @ ulong * * * * * * * * * * * * * * * * * DtoSymbolAddress ('len' of type 'immutable(ulong)') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * BreakStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(762) * * * * * * * * CaseStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(763) * * * * * * * * * IntegerExp::toConstElem: 3u @ immutable(uint) * * * * * * * * * * value = i32 3 * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(763) * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(763) * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(764) * * * * * * * * * * * * CallExp::toElem: swapAt(r, 0LU, mid) @ void * * * * * * * * * * * * * VarExp::toElem: swapAt @ pure nothrow @nogc @safe void(string[] r, ulong i1, ulong i2) * * * * * * * * * * * * * * DtoSymbolAddress ('swapAt' of type 'pure nothrow @nogc @safe void(string[] r, ulong i1, ulong i2)') * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * Function type: pure nothrow @nogc @safe void(string[] r, ulong i1, ulong i2) * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * VarExp::toElem: r @ string[] * * * * * * * * * * * * * * * * DtoSymbolAddress ('r' of type 'string[]') * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * type: string[] * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * VarExp::toElem: mid @ ulong * * * * * * * * * * * * * * * * DtoSymbolAddress ('mid' of type 'immutable(ulong)') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * BreakStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(765) * * * * * * * * CaseStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(766) * * * * * * * * * IntegerExp::toConstElem: 4u @ immutable(uint) * * * * * * * * * * value = i32 4 * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(766) * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(766) * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(767) * * * * * * * * * * * * CallExp::toElem: swapAt(r, mid, len - 1LU) @ void * * * * * * * * * * * * * VarExp::toElem: swapAt @ pure nothrow @nogc @safe void(string[] r, ulong i1, ulong i2) * * * * * * * * * * * * * * DtoSymbolAddress ('swapAt' of type 'pure nothrow @nogc @safe void(string[] r, ulong i1, ulong i2)') * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * Function type: pure nothrow @nogc @safe void(string[] r, ulong i1, ulong i2) * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * VarExp::toElem: r @ string[] * * * * * * * * * * * * * * * * DtoSymbolAddress ('r' of type 'string[]') * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * type: string[] * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * VarExp::toElem: mid @ ulong * * * * * * * * * * * * * * * * DtoSymbolAddress ('mid' of type 'immutable(ulong)') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * MinExp::toElem: len - 1LU @ ulong * * * * * * * * * * * * * * * * VarExp::toElem: len @ ulong * * * * * * * * * * * * * * * * * DtoSymbolAddress ('len' of type 'immutable(ulong)') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(768) * * * * * * * * * * * * CallExp::toElem: swapAt(r, 0LU, mid) @ void * * * * * * * * * * * * * VarExp::toElem: swapAt @ pure nothrow @nogc @safe void(string[] r, ulong i1, ulong i2) * * * * * * * * * * * * * * DtoSymbolAddress ('swapAt' of type 'pure nothrow @nogc @safe void(string[] r, ulong i1, ulong i2)') * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * Function type: pure nothrow @nogc @safe void(string[] r, ulong i1, ulong i2) * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * VarExp::toElem: r @ string[] * * * * * * * * * * * * * * * * DtoSymbolAddress ('r' of type 'string[]') * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * type: string[] * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * VarExp::toElem: mid @ ulong * * * * * * * * * * * * * * * * DtoSymbolAddress ('mid' of type 'immutable(ulong)') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * BreakStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(769) * * * * * * * * CaseStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(770) * * * * * * * * * IntegerExp::toConstElem: 0u @ immutable(uint) * * * * * * * * * * value = i32 0 * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(770) * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(770) * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(771) * * * * * * * * * * * * CallExp::toElem: swapAt(r, 0LU, len - 1LU) @ void * * * * * * * * * * * * * VarExp::toElem: swapAt @ pure nothrow @nogc @safe void(string[] r, ulong i1, ulong i2) * * * * * * * * * * * * * * DtoSymbolAddress ('swapAt' of type 'pure nothrow @nogc @safe void(string[] r, ulong i1, ulong i2)') * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * Function type: pure nothrow @nogc @safe void(string[] r, ulong i1, ulong i2) * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * VarExp::toElem: r @ string[] * * * * * * * * * * * * * * * * DtoSymbolAddress ('r' of type 'string[]') * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * type: string[] * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * MinExp::toElem: len - 1LU @ ulong * * * * * * * * * * * * * * * * VarExp::toElem: len @ ulong * * * * * * * * * * * * * * * * * DtoSymbolAddress ('len' of type 'immutable(ulong)') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * BreakStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(772) * * * * * * * * CaseStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(773) * * * * * * * * * IntegerExp::toConstElem: 7u @ immutable(uint) * * * * * * * * * * value = i32 7 * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(773) * * * * * * * * * * BreakStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(774) * * * * * * * * DefaultStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(775) * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(775) * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(776) * * * * * * * * * * * HaltExp::toElem: halt * * * * * * VarExp::toElem: result @ immutable(uint) * * * * * * * DtoSymbolAddress ('result' of type 'immutable(uint)') * * * * * * * * a normal variable * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(779) * * * * * * VarExp::toElem: mid @ ulong * * * * * * * DtoSymbolAddress ('mid' of type 'immutable(ulong)') * * * * * * * * a normal variable * * * * * * return value is '0x12b83738' * TemplateInstance::codegen: 'std.algorithm.comparison.min!(ulong, ulong)' * * DtoDefineFunction(std.algorithm.comparison.min!(ulong, ulong).min): /usr/include/dlang/ldc/std/algorithm/comparison.d(1298) * * * Doing function body for: min * * * DtoCreateNestedContext for min * * * * DtoCreateNestedContextType for std.algorithm.comparison.min!(ulong, ulong).min * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/comparison.d(1300) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/comparison.d(1303) * * * * * * DeclarationExp::toElem: alias a = ulong _param_0; ; | T=void * * * * * * * DtoDeclarationExp: a * * * * * * * * Ignoring Symbol: alias * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/comparison.d(1306) * * * * * * DeclarationExp::toElem: alias T0 = ulong; | T=void * * * * * * * DtoDeclarationExp: T0 * * * * * * * * Ignoring Symbol: alias * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/comparison.d(1310) * * * * * * DeclarationExp::toElem: alias b = ulong _param_1; ; | T=void * * * * * * * DtoDeclarationExp: b * * * * * * * * Ignoring Symbol: alias * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/comparison.d(1313) * * * * * * DeclarationExp::toElem: alias T1 = ulong; | T=void * * * * * * * DtoDeclarationExp: T1 * * * * * * * * Ignoring Symbol: alias * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/comparison.d(1321) * * * * * * DeclarationExp::toElem: immutable immutable(bool) chooseA = safeOp(_param_0, _param_1); | T=void * * * * * * * DtoDeclarationExp: chooseA * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = immutable(bool)) * * * * * * * * * llvm value for decl: %chooseA = alloca i8, align 1 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: chooseA = safeOp(_param_0, _param_1) | (immutable(bool))(immutable(bool) = immutable(bool)) * * * * * * * * * * VarExp::toElem: chooseA @ immutable(bool) * * * * * * * * * * * DtoSymbolAddress ('chooseA' of type 'immutable(bool)') * * * * * * * * * * * * a normal variable * * * * * * * * * * CallExp::toElem: safeOp(_param_0, _param_1) @ immutable(bool) * * * * * * * * * * * VarExp::toElem: safeOp @ pure nothrow @nogc @safe bool(auto ref ulong a, auto ref ulong b) * * * * * * * * * * * * DtoSymbolAddress ('safeOp' of type 'pure nothrow @nogc @safe bool(auto ref ulong a, auto ref ulong b)') * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * Function type: pure nothrow @nogc @safe bool(auto ref ulong a, auto ref ulong b) * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * VarExp::toElem: _param_0 @ ulong * * * * * * * * * * * * * * DtoSymbolAddress ('_param_0' of type 'ulong') * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * type: ulong * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * VarExp::toElem: _param_1 @ ulong * * * * * * * * * * * * * * DtoSymbolAddress ('_param_1' of type 'ulong') * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * type: ulong * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/comparison.d(1322) * * * * * * CondExp::toElem: chooseA ? _param_0 : _param_1 @ ulong * * * * * * * VarExp::toElem: chooseA @ immutable(bool) * * * * * * * * DtoSymbolAddress ('chooseA' of type 'immutable(bool)') * * * * * * * * * a normal variable * * * * * * * Casting from 'immutable(bool)' to 'bool' * * * * * * * VarExp::toElem: _param_0 @ ulong * * * * * * * * DtoSymbolAddress ('_param_0' of type 'ulong') * * * * * * * * * function param * * * * * * * * * type: ulong * * * * * * * VarExp::toElem: _param_1 @ ulong * * * * * * * * DtoSymbolAddress ('_param_1' of type 'ulong') * * * * * * * * * function param * * * * * * * * * type: ulong * * * * * * return value is '0x12b85ca8' * TemplateInstance::codegen: 'std.algorithm.comparison.MinType!(ulong, ulong)' * * VarDeclaration::codegen(): 'std.algorithm.comparison.MinType!(ulong, ulong).hasMostNegative' * * * DtoResolveVariable(std.algorithm.comparison.MinType!(ulong, ulong).hasMostNegative) * * Ignoring Dsymbol::codegen for std.algorithm.comparison.MinType!(ulong, ulong).MinType * TemplateInstance::codegen: 'std.traits.isBlitAssignable!(string[])' * TemplateInstance::codegen: 'std.traits.isMutable!(string[])' * TemplateInstance::codegen: 'std.algorithm.mutation.swap!(string[])' * * DtoDefineFunction(std.algorithm.mutation.swap!(string[]).swap): /usr/include/dlang/ldc/std/algorithm/mutation.d(1906) * * * Doing function body for: swap * * * DtoCreateNestedContext for swap * * * * DtoCreateNestedContextType for std.algorithm.mutation.swap!(string[]).swap * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/mutation.d(1908) * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/mutation.d(1911) * * * * * * NotExp::toElem: !__ctfe @ bool * * * * * * * VarExp::toElem: __ctfe @ bool * * * * * * * * DtoSymbolAddress ('__ctfe' of type 'bool') * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/mutation.d(1912) * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/mutation.d(1912) * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/mutation.d(1914) * * * * * * * * * AssertExp::toElem: assert(!doesPointTo(lhs, lhs), "Swap: lhs internal pointer.") * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/mutation.d(1915) * * * * * * * * * AssertExp::toElem: assert(!doesPointTo(rhs, rhs), "Swap: rhs internal pointer.") * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/mutation.d(1916) * * * * * * * * * AssertExp::toElem: assert(!doesPointTo(lhs, rhs), "Swap: lhs points to rhs.") * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/mutation.d(1917) * * * * * * * * * AssertExp::toElem: assert(!doesPointTo(rhs, lhs), "Swap: rhs points to lhs.") * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/mutation.d(1948) * * * * * * DeclarationExp::toElem: string[] tmp = lhs; | T=void * * * * * * * DtoDeclarationExp: tmp * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = string[]) * * * * * * * * * llvm value for decl: %tmp = alloca { i64, { i64, i8* }* }, align 8 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: tmp = lhs | (string[])(string[] = string[]) * * * * * * * * * * VarExp::toElem: tmp @ string[] * * * * * * * * * * * DtoSymbolAddress ('tmp' of type 'string[]') * * * * * * * * * * * * a normal variable * * * * * * * * * * VarExp::toElem: lhs @ string[] * * * * * * * * * * * DtoSymbolAddress ('lhs' of type 'string[]') * * * * * * * * * * * * function param * * * * * * * * * * * * type: string[] * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * DtoAssign() * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * SetArray * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/mutation.d(1949) * * * * * * AssignExp::toElem: lhs = rhs | (string[])(string[] = string[]) * * * * * * * VarExp::toElem: lhs @ string[] * * * * * * * * DtoSymbolAddress ('lhs' of type 'string[]') * * * * * * * * * function param * * * * * * * * * type: string[] * * * * * * * VarExp::toElem: rhs @ string[] * * * * * * * * DtoSymbolAddress ('rhs' of type 'string[]') * * * * * * * * * function param * * * * * * * * * type: string[] * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * DtoAssign() * * * * * * * * DtoArrayAssign * * * * * * * * * DtoArrayPtr * * * * * * * * * DtoArrayLen * * * * * * * * * SetArray * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/mutation.d(1950) * * * * * * AssignExp::toElem: rhs = tmp | (string[])(string[] = string[]) * * * * * * * VarExp::toElem: rhs @ string[] * * * * * * * * DtoSymbolAddress ('rhs' of type 'string[]') * * * * * * * * * function param * * * * * * * * * type: string[] * * * * * * * VarExp::toElem: tmp @ string[] * * * * * * * * DtoSymbolAddress ('tmp' of type 'string[]') * * * * * * * * * a normal variable * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * DtoAssign() * * * * * * * * DtoArrayAssign * * * * * * * * * DtoArrayPtr * * * * * * * * * DtoArrayLen * * * * * * * * * SetArray * TemplateInstance::codegen: 'std.traits.hasAliasing!(string[])' * * Ignoring Dsymbol::codegen for __anonymous * * Ignoring Dsymbol::codegen for std.traits.hasAliasing!(string[]).isAliasingDelegate(T) * * VarDeclaration::codegen(): 'std.traits.hasAliasing!(string[]).hasAliasing' * * * DtoResolveVariable(std.traits.hasAliasing!(string[]).hasAliasing) * TemplateInstance::codegen: 'std.traits.hasRawAliasing!(string[])' * * Ignoring Dsymbol::codegen for std.traits.hasRawAliasing!(string[]).Impl(T...) * * VarDeclaration::codegen(): 'std.traits.hasRawAliasing!(string[]).hasRawAliasing' * * * DtoResolveVariable(std.traits.hasRawAliasing!(string[]).hasRawAliasing) * TemplateInstance::codegen: 'std.traits.RepresentationTypeTuple!(string[])' * * Ignoring Dsymbol::codegen for std.traits.RepresentationTypeTuple!(string[]).Impl(T...) * * Ignoring Dsymbol::codegen for std.traits.RepresentationTypeTuple!(string[]).RepresentationTypeTuple * TemplateInstance::codegen: 'std.traits.RepresentationTypeTuple!(string[]).Impl!(string[])' * * Ignoring Dsymbol::codegen for __anonymous * * Ignoring Dsymbol::codegen for std.traits.RepresentationTypeTuple!(string[]).Impl!(string[]).Impl * TemplateInstance::codegen: 'std.traits.RepresentationTypeTuple!(string[]).Impl!()' * * Ignoring Dsymbol::codegen for std.traits.RepresentationTypeTuple!(string[]).Impl!().Impl * TemplateInstance::codegen: 'std.typetuple.TypeTuple!(string[])' * * Ignoring Dsymbol::codegen for std.typetuple.TypeTuple!(string[]).TypeTuple * TemplateInstance::codegen: 'std.traits.hasRawAliasing!(string[]).Impl!(string[])' * * VarDeclaration::codegen(): 'std.traits.hasRawAliasing!(string[]).Impl!(string[]).has' * * * DtoResolveVariable(std.traits.hasRawAliasing!(string[]).Impl!(string[]).has) * * VarDeclaration::codegen(): 'std.traits.hasRawAliasing!(string[]).Impl!(string[]).Impl' * * * DtoResolveVariable(std.traits.hasRawAliasing!(string[]).Impl!(string[]).Impl) * TemplateInstance::codegen: 'std.traits.hasRawAliasing!(string[]).Impl!()' * * VarDeclaration::codegen(): 'std.traits.hasRawAliasing!(string[]).Impl!().Impl' * * * DtoResolveVariable(std.traits.hasRawAliasing!(string[]).Impl!().Impl) * TemplateInstance::codegen: 'std.traits.hasObjects!(string[])' * * VarDeclaration::codegen(): 'std.traits.hasObjects!(string[]).hasObjects' * * * DtoResolveVariable(std.traits.hasObjects!(string[]).hasObjects) * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(isAliasingDelegate, string[], string[])' * * VarDeclaration::codegen(): 'std.typetuple.anySatisfy!(isAliasingDelegate, string[], string[]).anySatisfy' * * * DtoResolveVariable(std.typetuple.anySatisfy!(isAliasingDelegate, string[], string[]).anySatisfy) * TemplateInstance::codegen: 'std.typetuple.anySatisfy!(isAliasingDelegate, string[])' * * VarDeclaration::codegen(): 'std.typetuple.anySatisfy!(isAliasingDelegate, string[]).anySatisfy' * * * DtoResolveVariable(std.typetuple.anySatisfy!(isAliasingDelegate, string[]).anySatisfy) * TemplateInstance::codegen: 'std.traits.hasAliasing!(string[]).F!(string[])' * * VarDeclaration::codegen(): 'std.traits.hasAliasing!(string[]).F!(string[]).isAliasingDelegate' * * * DtoResolveVariable(std.traits.hasAliasing!(string[]).F!(string[]).isAliasingDelegate) * TemplateInstance::codegen: 'std.traits.isDelegate!(string[])' * * VarDeclaration::codegen(): 'std.traits.isDelegate!(string[]).isDelegate' * * * DtoResolveVariable(std.traits.isDelegate!(string[]).isDelegate) * TemplateInstance::codegen: 'std.traits.isCallable!(string[])' * TemplateInstance::codegen: 'std.exception.doesPointTo!(string[], string[], void)' * * DtoDefineFunction(std.exception.doesPointTo!(string[], string[], void).doesPointTo): /usr/include/dlang/ldc/std/exception.d(1002) * * * DtoFunctionType(pure nothrow @nogc @trusted bool(auto ref const(string[]) source, ref const(string[]) target)) * * * * x86-64 ABI: Transforming return type * * * * x86-64 ABI: Transforming argument types * * * * Final function type: i1 ({ i64, { i64, i8* }* }*, { i64, { i64, i8* }* }*) * * * DtoResolveFunction(std.exception.doesPointTo!(string[], string[], void).doesPointTo): /usr/include/dlang/ldc/std/exception.d(1002) * * * * DtoDeclareFunction(std.exception.doesPointTo!(string[], string[], void).doesPointTo): /usr/include/dlang/ldc/std/exception.d(1002) * * * * * DtoFunctionType(pure nothrow @nogc @trusted bool(auto ref const(string[]) source, ref const(string[]) target)) * * * * * func = declare i1 @_D3std9exception29__T11doesPointToTAAyaTAAyaTvZ11doesPointToFNaNbNiNeKxAAyaKxAAyaZb({ i64, { i64, i8* }* }*, { i64, { i64, i8* }* }*) * * * Doing function body for: doesPointTo * * * DtoCreateNestedContext for doesPointTo * * * * DtoCreateNestedContextType for std.exception.doesPointTo!(string[], string[], void).doesPointTo * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/exception.d(1005) * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/exception.d(1029) * * * * * * EqualExp::toElem: overlap(cast(void[])source, cast(void[])(&target)[0..1]).length != 0LU @ bool * * * * * * * ArrayLengthExp::toElem: overlap(cast(void[])source, cast(void[])(&target)[0..1]).length @ ulong * * * * * * * * CallExp::toElem: overlap(cast(void[])source, cast(void[])(&target)[0..1]) @ void[] * * * * * * * * * VarExp::toElem: overlap @ pure nothrow @nogc @trusted inout(void)[](inout(void)[] r1, inout(void)[] r2) * * * * * * * * * * DtoSymbolAddress ('overlap' of type 'pure nothrow @nogc @trusted inout(void)[](inout(void)[] r1, inout(void)[] r2)') * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted inout(void)[](inout(void)[] r1, inout(void)[] r2)) * * * * * * * * * * * * Building type: inout(void)[] * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * Final function type: { i64, i8* } ({ i64, i8* }, { i64, i8* }) * * * * * * * * * * * DtoResolveFunction(std.array.overlap!void.overlap): /usr/include/dlang/ldc/std/array.d(710) * * * * * * * * * * * * DtoDeclareFunction(std.array.overlap!void.overlap): /usr/include/dlang/ldc/std/array.d(710) * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted inout(void)[](inout(void)[] r1, inout(void)[] r2)) * * * * * * * * * * * * * func = declare { i64, i8* } @_D3std5array14__T7overlapTvZ7overlapFNaNbNiNeANgvANgvZANgv({ i64, i8* }, { i64, i8* }) * * * * * * * * * DtoCallFunction() * * * * * * * * * * Building type: pure nothrow @nogc @trusted inout(void)[](inout(void)[] r1, inout(void)[] r2) * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted inout(void)[](inout(void)[] r1, inout(void)[] r2)) * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * Final function type: { i64, i8* } ({ i64, i8* }, { i64, i8* }) * * * * * * * * * * doing normal arguments * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * Function type: pure nothrow @nogc @trusted inout(void)[](inout(void)[] r1, inout(void)[] r2) * * * * * * * * * * DtoArgument * * * * * * * * * * * CastExp::toElem: cast(void[])source @ void[] * * * * * * * * * * * * VarExp::toElem: source @ const(string[]) * * * * * * * * * * * * * DtoSymbolAddress ('source' of type 'const(string[])') * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * type: const(string[]) * * * * * * * * * * * * Casting from 'const(string[])' to 'void[]' * * * * * * * * * * * * * DtoCastArray * * * * * * * * * * * * * * from array or sarray * * * * * * * * * * * * * * to array * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * DtoArrayCastLength * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * isslice * * * * * * * * * * DtoArgument * * * * * * * * * * * CastExp::toElem: cast(void[])(&target)[0..1] @ void[] * * * * * * * * * * * * SliceExp::toElem: (&target)[0..1] @ const(string[])[] * * * * * * * * * * * * * AddrExp::toElem: &target @ const(string[])* * * * * * * * * * * * * * * VarExp::toElem: target @ const(string[]) * * * * * * * * * * * * * * * DtoSymbolAddress ('target' of type 'const(string[])') * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * type: const(string[]) * * * * * * * * * * * * * * is nothing special * * * * * * * * * * * * * * lval: { i64, { i64, i8* }* }* %target_arg * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * Casting from 'const(string[])[]' to 'void[]' * * * * * * * * * * * * * DtoCastArray * * * * * * * * * * * * * * from array or sarray * * * * * * * * * * * * * * to array * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * DtoArrayCastLength * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * isslice * * * * * * * * DtoArrayLen * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * value = i64 0 * * * * * * * integral or pointer or interface * * * * * * * lv: %.len1 = extractvalue { i64, i8* } %11, 0 * * * * * * * rv: i64 0 * * * * * * return value is '0x12b90210' * TemplateInstance::codegen: 'std.traits.hasElaborateAssign!(string[])' * * VarDeclaration::codegen(): 'std.traits.hasElaborateAssign!(string[]).hasElaborateAssign' * * * DtoResolveVariable(std.traits.hasElaborateAssign!(string[]).hasElaborateAssign) * TemplateInstance::codegen: 'std.traits.isAssignable!(string[], string[])' * * VarDeclaration::codegen(): 'std.traits.isAssignable!(string[], string[]).isAssignable' * * * DtoResolveVariable(std.traits.isAssignable!(string[], string[]).isAssignable) * TemplateInstance::codegen: 'std.traits.isRvalueAssignable!(string[], string[])' * * VarDeclaration::codegen(): 'std.traits.isRvalueAssignable!(string[], string[]).isRvalueAssignable' * * * DtoResolveVariable(std.traits.isRvalueAssignable!(string[], string[]).isRvalueAssignable) * TemplateInstance::codegen: 'std.traits.lvalueOf!(string[])' * TemplateInstance::codegen: 'std.traits.rvalueOf!(string[])' * TemplateInstance::codegen: 'std.traits.isLvalueAssignable!(string[], string[])' * * VarDeclaration::codegen(): 'std.traits.isLvalueAssignable!(string[], string[]).isLvalueAssignable' * * * DtoResolveVariable(std.traits.isLvalueAssignable!(string[], string[]).isLvalueAssignable) * TemplateInstance::codegen: 'std.algorithm.sorting.optimisticInsertionSort!(binaryFun, string[])' * * DtoDefineFunction(std.algorithm.sorting.optimisticInsertionSort!(binaryFun, string[]).optimisticInsertionSort): /usr/include/dlang/ldc/std/algorithm/sorting.d(782) * * * Doing function body for: optimisticInsertionSort * * * DtoCreateNestedContext for optimisticInsertionSort * * * * DtoCreateNestedContextType for std.algorithm.sorting.optimisticInsertionSort!(binaryFun, string[]).optimisticInsertionSort * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(783) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(786) * * * * * * DeclarationExp::toElem: alias pred = template binaryFun(ElementType1, ElementType2); | T=void * * * * * * * DtoDeclarationExp: pred * * * * * * * * Ignoring Symbol: alias * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(787) * * * * * * CmpExp::toElem: r.length < 2LU @ bool * * * * * * * ArrayLengthExp::toElem: r.length @ ulong * * * * * * * * VarExp::toElem: r @ string[] * * * * * * * * * DtoSymbolAddress ('r' of type 'string[]') * * * * * * * * * * function param * * * * * * * * * * type: string[] * * * * * * * * DtoArrayLen * * * * * * * IntegerExp::toElem: 2LU @ ulong * * * * * * * * IntegerExp::toConstElem: 2LU @ ulong * * * * * * * * * value = i64 2 * * * * * * * type 1: %.len = load i64, i64* %1 * * * * * * * type 2: i64 2 * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(788) * * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(789) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(792) * * * * * * DeclarationExp::toElem: immutable immutable(ulong) maxJ = r.length - 1LU; | T=void * * * * * * * DtoDeclarationExp: maxJ * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = immutable(ulong)) * * * * * * * * * llvm value for decl: %maxJ = alloca i64, align 8 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: maxJ = r.length - 1LU | (immutable(ulong))(immutable(ulong) = immutable(ulong)) * * * * * * * * * * VarExp::toElem: maxJ @ immutable(ulong) * * * * * * * * * * * DtoSymbolAddress ('maxJ' of type 'immutable(ulong)') * * * * * * * * * * * * a normal variable * * * * * * * * * * MinExp::toElem: r.length - 1LU @ immutable(ulong) * * * * * * * * * * * ArrayLengthExp::toElem: r.length @ ulong * * * * * * * * * * * * VarExp::toElem: r @ string[] * * * * * * * * * * * * * DtoSymbolAddress ('r' of type 'string[]') * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * type: string[] * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %maxJ = alloca i64, align 8 * * * * * * * * * * * rhs: %4 = sub i64 %.len1, 1 * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(793) * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(793) * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(793) * * * * * * * * DeclarationExp::toElem: ulong i = r.length - 2LU; | T=void * * * * * * * * * DtoDeclarationExp: i * * * * * * * * * * VarDeclaration * * * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * * * llvm value for decl: %i = alloca i64, align 8 * * * * * * * * * * * expression initializer * * * * * * * * * * * AssignExp::toElem: i = r.length - 2LU | (ulong)(ulong = ulong) * * * * * * * * * * * * VarExp::toElem: i @ ulong * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'ulong') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * MinExp::toElem: r.length - 2LU @ ulong * * * * * * * * * * * * * ArrayLengthExp::toElem: r.length @ ulong * * * * * * * * * * * * * * VarExp::toElem: r @ string[] * * * * * * * * * * * * * * * DtoSymbolAddress ('r' of type 'string[]') * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * type: string[] * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * IntegerExp::toElem: 2LU @ ulong * * * * * * * * * * * * * * IntegerExp::toConstElem: 2LU @ ulong * * * * * * * * * * * * * * * value = i64 2 * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * lhs: %i = alloca i64, align 8 * * * * * * * * * * * * * rhs: %6 = sub i64 %.len2, 2 * * * * * * * ForStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(793) * * * * * * * * EqualExp::toElem: i != 18446744073709551615LU @ bool * * * * * * * * * VarExp::toElem: i @ ulong * * * * * * * * * * DtoSymbolAddress ('i' of type 'ulong') * * * * * * * * * * * a normal variable * * * * * * * * * IntegerExp::toElem: 18446744073709551615LU @ ulong * * * * * * * * * * IntegerExp::toConstElem: 18446744073709551615LU @ ulong * * * * * * * * * * * value = i64 -1 * * * * * * * * * integral or pointer or interface * * * * * * * * * lv: %7 = load i64, i64* %i * * * * * * * * * rv: i64 -1 * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(794) * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(794) * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(795) * * * * * * * * * * * DeclarationExp::toElem: ulong j = i; | T=void * * * * * * * * * * * * DtoDeclarationExp: j * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * * * * * * llvm value for decl: %j = alloca i64, align 8 * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * AssignExp::toElem: j = i | (ulong)(ulong = ulong) * * * * * * * * * * * * * * * VarExp::toElem: j @ ulong * * * * * * * * * * * * * * * * DtoSymbolAddress ('j' of type 'ulong') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * VarExp::toElem: i @ ulong * * * * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'ulong') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * lhs: %j = alloca i64, align 8 * * * * * * * * * * * * * * * * rhs: %9 = load i64, i64* %i * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(799) * * * * * * * * * * * DeclarationExp::toElem: string temp = r[i]; | T=void * * * * * * * * * * * * DtoDeclarationExp: temp * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * DtoVarDeclaration(vdtype = string) * * * * * * * * * * * * * * llvm value for decl: %temp = alloca { i64, i8* }, align 8 * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * AssignExp::toElem: temp = r[i] | (string)(string = string) * * * * * * * * * * * * * * * VarExp::toElem: temp @ string * * * * * * * * * * * * * * * * DtoSymbolAddress ('temp' of type 'string') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * IndexExp::toElem: r[i] @ string * * * * * * * * * * * * * * * * VarExp::toElem: r @ string[] * * * * * * * * * * * * * * * * * DtoSymbolAddress ('r' of type 'string[]') * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * type: string[] * * * * * * * * * * * * * * * * VarExp::toElem: i @ ulong * * * * * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'ulong') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * SetArray * * * * * * * * * * ForStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(801) * * * * * * * * * * * AndAndExp::toElem: j < maxJ && binaryFun(r[j + 1LU], temp) @ bool * * * * * * * * * * * * CmpExp::toElem: j < maxJ @ bool * * * * * * * * * * * * * VarExp::toElem: j @ ulong * * * * * * * * * * * * * * DtoSymbolAddress ('j' of type 'ulong') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * VarExp::toElem: maxJ @ ulong * * * * * * * * * * * * * * DtoSymbolAddress ('maxJ' of type 'immutable(ulong)') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * type 1: %19 = load i64, i64* %j * * * * * * * * * * * * * type 2: %20 = load i64, i64* %maxJ * * * * * * * * * * * * CallExp::toElem: binaryFun(r[j + 1LU], temp) @ bool * * * * * * * * * * * * * VarExp::toElem: binaryFun @ pure nothrow @nogc @safe bool(auto ref string __a, auto ref string __b) * * * * * * * * * * * * * * DtoSymbolAddress ('binaryFun' of type 'pure nothrow @nogc @safe bool(auto ref string __a, auto ref string __b)') * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * Function type: pure nothrow @nogc @safe bool(auto ref string __a, auto ref string __b) * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * IndexExp::toElem: r[j + 1LU] @ string * * * * * * * * * * * * * * * * VarExp::toElem: r @ string[] * * * * * * * * * * * * * * * * * DtoSymbolAddress ('r' of type 'string[]') * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * type: string[] * * * * * * * * * * * * * * * * AddExp::toElem: j + 1LU @ ulong * * * * * * * * * * * * * * * * * VarExp::toElem: j @ ulong * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('j' of type 'ulong') * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * VarExp::toElem: temp @ string * * * * * * * * * * * * * * * * DtoSymbolAddress ('temp' of type 'string') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(802) * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(803) * * * * * * * * * * * * * AssignExp::toElem: r[j] = r[j + 1LU] | (string)(string = string) * * * * * * * * * * * * * * IndexExp::toElem: r[j] @ string * * * * * * * * * * * * * * * VarExp::toElem: r @ string[] * * * * * * * * * * * * * * * * DtoSymbolAddress ('r' of type 'string[]') * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * type: string[] * * * * * * * * * * * * * * * VarExp::toElem: j @ ulong * * * * * * * * * * * * * * * * DtoSymbolAddress ('j' of type 'ulong') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * IndexExp::toElem: r[j + 1LU] @ string * * * * * * * * * * * * * * * VarExp::toElem: r @ string[] * * * * * * * * * * * * * * * * DtoSymbolAddress ('r' of type 'string[]') * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * type: string[] * * * * * * * * * * * * * * * AddExp::toElem: j + 1LU @ ulong * * * * * * * * * * * * * * * * VarExp::toElem: j @ ulong * * * * * * * * * * * * * * * * * DtoSymbolAddress ('j' of type 'ulong') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * SetArray * * * * * * * * * * * AddAssignExp::toElem: j += 1LU @ ulong * * * * * * * * * * * * Caching l-value of j += 1LU => j * * * * * * * * * * * * * VarExp::toElem: j @ ulong * * * * * * * * * * * * * * DtoSymbolAddress ('j' of type 'ulong') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * AddExp::toElem: j + 1LU @ ulong * * * * * * * * * * * * * VarExp::toElem: j @ ulong * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * lhs: %j = alloca i64, align 8 * * * * * * * * * * * * * rhs: %25 = add i64 %24, 1 * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(806) * * * * * * * * * * * AssignExp::toElem: r[j] = temp | (string)(string = string) * * * * * * * * * * * * IndexExp::toElem: r[j] @ string * * * * * * * * * * * * * VarExp::toElem: r @ string[] * * * * * * * * * * * * * * DtoSymbolAddress ('r' of type 'string[]') * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * type: string[] * * * * * * * * * * * * * VarExp::toElem: j @ ulong * * * * * * * * * * * * * * DtoSymbolAddress ('j' of type 'ulong') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * VarExp::toElem: temp @ string * * * * * * * * * * * * * DtoSymbolAddress ('temp' of type 'string') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * SetArray * * * * * * * * MinAssignExp::toElem: i -= 1LU @ ulong * * * * * * * * * Caching l-value of i -= 1LU => i * * * * * * * * * * VarExp::toElem: i @ ulong * * * * * * * * * * * DtoSymbolAddress ('i' of type 'ulong') * * * * * * * * * * * * a normal variable * * * * * * * * * MinExp::toElem: i - 1LU @ ulong * * * * * * * * * * VarExp::toElem: i @ ulong * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * value = i64 1 * * * * * * * * * DtoAssign() * * * * * * * * * * lhs: %i = alloca i64, align 8 * * * * * * * * * * rhs: %13 = sub i64 %12, 1 * TemplateInstance::codegen: 'std.range.primitives.hasAssignableElements!(string[])' * * VarDeclaration::codegen(): 'std.range.primitives.hasAssignableElements!(string[]).hasAssignableElements' * * * DtoResolveVariable(std.range.primitives.hasAssignableElements!(string[]).hasAssignableElements) * TemplateInstance::codegen: 'std.algorithm.sorting.isSorted!(binaryFun, string[])' * * DtoDefineFunction(std.algorithm.sorting.isSorted!(binaryFun, string[]).isSorted): /usr/include/dlang/ldc/std/algorithm/sorting.d(126) * * * DtoFunctionType(pure nothrow @nogc @safe bool(string[] r)) * * * * x86-64 ABI: Transforming return type * * * * x86-64 ABI: Transforming argument types * * * * Final function type: i1 ({ i64, { i64, i8* }* }) * * * DtoResolveFunction(std.algorithm.sorting.isSorted!(binaryFun, string[]).isSorted): /usr/include/dlang/ldc/std/algorithm/sorting.d(126) * * * * DtoDeclareFunction(std.algorithm.sorting.isSorted!(binaryFun, string[]).isSorted): /usr/include/dlang/ldc/std/algorithm/sorting.d(126) * * * * * DtoFunctionType(pure nothrow @nogc @safe bool(string[] r)) * * * * * func = declare i1 @_D3std9algorithm7sorting98__T8isSortedS773std10functional49__T9binaryFunVAyaa5_61203c2062VAyaa1_61VAyaa1_62Z9binaryFunTAAyaZ8isSortedFNaNbNiNfAAyaZb({ i64, { i64, i8* }* }) * * * Doing function body for: isSorted * * * DtoCreateNestedContext for isSorted * * * * DtoCreateNestedContextType for std.algorithm.sorting.isSorted!(binaryFun, string[]).isSorted * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(127) * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(128) * * * * * * CallExp::toElem: empty(r) @ bool * * * * * * * VarExp::toElem: empty @ pure nothrow @nogc @property @safe bool(const(string[]) a) * * * * * * * * DtoSymbolAddress ('empty' of type 'pure nothrow @nogc @property @safe bool(const(string[]) a)') * * * * * * * * * FuncDeclaration * * * * * * * DtoCallFunction() * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (0) * * * * * * * * Function type: pure nothrow @nogc @property @safe bool(const(string[]) a) * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: r @ const(string[]) * * * * * * * * * * DtoSymbolAddress ('r' of type 'string[]') * * * * * * * * * * * function param * * * * * * * * * * * type: string[] * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(128) * * * * * * * IntegerExp::toElem: true @ bool * * * * * * * * IntegerExp::toConstElem: true @ bool * * * * * * * * * value = i1 true * * * * * * * return value is '0x12188b90' * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(132) * * * * * * DeclarationExp::toElem: immutable immutable(ulong) limit = r.length - 1LU; | T=void * * * * * * * DtoDeclarationExp: limit * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = immutable(ulong)) * * * * * * * * * llvm value for decl: %limit = alloca i64, align 8 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: limit = r.length - 1LU | (immutable(ulong))(immutable(ulong) = immutable(ulong)) * * * * * * * * * * VarExp::toElem: limit @ immutable(ulong) * * * * * * * * * * * DtoSymbolAddress ('limit' of type 'immutable(ulong)') * * * * * * * * * * * * a normal variable * * * * * * * * * * MinExp::toElem: r.length - 1LU @ immutable(ulong) * * * * * * * * * * * ArrayLengthExp::toElem: r.length @ ulong * * * * * * * * * * * * VarExp::toElem: r @ string[] * * * * * * * * * * * * * DtoSymbolAddress ('r' of type 'string[]') * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * type: string[] * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %limit = alloca i64, align 8 * * * * * * * * * * * rhs: %4 = sub i64 %.len, 1 * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(133) * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(133) * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(133) * * * * * * * * DeclarationExp::toElem: ulong __key3420 = 0LU; | T=void * * * * * * * * * DtoDeclarationExp: __key3420 * * * * * * * * * * VarDeclaration * * * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * * * llvm value for decl: %__key3420 = alloca i64, align 8 * * * * * * * * * * * expression initializer * * * * * * * * * * * AssignExp::toElem: __key3420 = 0LU | (ulong)(ulong = ulong) * * * * * * * * * * * * VarExp::toElem: __key3420 @ ulong * * * * * * * * * * * * * DtoSymbolAddress ('__key3420' of type 'ulong') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * lhs: %__key3420 = alloca i64, align 8 * * * * * * * * * * * * * rhs: i64 0 * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(133) * * * * * * * * DeclarationExp::toElem: ulong __limit3421 = limit; | T=void * * * * * * * * * DtoDeclarationExp: __limit3421 * * * * * * * * * * VarDeclaration * * * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * * * llvm value for decl: %__limit3421 = alloca i64, align 8 * * * * * * * * * * * expression initializer * * * * * * * * * * * AssignExp::toElem: __limit3421 = limit | (ulong)(ulong = ulong) * * * * * * * * * * * * VarExp::toElem: __limit3421 @ ulong * * * * * * * * * * * * * DtoSymbolAddress ('__limit3421' of type 'ulong') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * VarExp::toElem: limit @ ulong * * * * * * * * * * * * * DtoSymbolAddress ('limit' of type 'immutable(ulong)') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * lhs: %__limit3421 = alloca i64, align 8 * * * * * * * * * * * * * rhs: %5 = load i64, i64* %limit * * * * * * * ForStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(133) * * * * * * * * CmpExp::toElem: __key3420 < __limit3421 @ bool * * * * * * * * * VarExp::toElem: __key3420 @ ulong * * * * * * * * * * DtoSymbolAddress ('__key3420' of type 'ulong') * * * * * * * * * * * a normal variable * * * * * * * * * VarExp::toElem: __limit3421 @ ulong * * * * * * * * * * DtoSymbolAddress ('__limit3421' of type 'ulong') * * * * * * * * * * * a normal variable * * * * * * * * * type 1: %6 = load i64, i64* %__key3420 * * * * * * * * * type 2: %7 = load i64, i64* %__limit3421 * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(133) * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(133) * * * * * * * * * * DeclarationExp::toElem: ulong i = __key3420; | T=void * * * * * * * * * * * DtoDeclarationExp: i * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * * * * * llvm value for decl: %i = alloca i64, align 8 * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * AssignExp::toElem: i = __key3420 | (ulong)(ulong = ulong) * * * * * * * * * * * * * * VarExp::toElem: i @ ulong * * * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'ulong') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * VarExp::toElem: __key3420 @ ulong * * * * * * * * * * * * * * * DtoSymbolAddress ('__key3420' of type 'ulong') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * lhs: %i = alloca i64, align 8 * * * * * * * * * * * * * * * rhs: %9 = load i64, i64* %__key3420 * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(135) * * * * * * * * * * NotExp::toElem: !binaryFun(r[i + 1LU], r[i]) @ bool * * * * * * * * * * * CallExp::toElem: binaryFun(r[i + 1LU], r[i]) @ bool * * * * * * * * * * * * VarExp::toElem: binaryFun @ pure nothrow @nogc @safe bool(auto ref string __a, auto ref string __b) * * * * * * * * * * * * * DtoSymbolAddress ('binaryFun' of type 'pure nothrow @nogc @safe bool(auto ref string __a, auto ref string __b)') * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * Function type: pure nothrow @nogc @safe bool(auto ref string __a, auto ref string __b) * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * IndexExp::toElem: r[i + 1LU] @ string * * * * * * * * * * * * * * * VarExp::toElem: r @ string[] * * * * * * * * * * * * * * * * DtoSymbolAddress ('r' of type 'string[]') * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * type: string[] * * * * * * * * * * * * * * * AddExp::toElem: i + 1LU @ ulong * * * * * * * * * * * * * * * * VarExp::toElem: i @ ulong * * * * * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'ulong') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * IndexExp::toElem: r[i] @ string * * * * * * * * * * * * * * * VarExp::toElem: r @ string[] * * * * * * * * * * * * * * * * DtoSymbolAddress ('r' of type 'string[]') * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * type: string[] * * * * * * * * * * * * * * * VarExp::toElem: i @ ulong * * * * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'ulong') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * ContinueStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(135) * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(136) * * * * * * * * * * AssertExp::toElem: assert(!binaryFun(r[i], r[i + 1LU]), "Predicate for isSorted is not antisymmetric. Both pred(a, b) and pred(b, a) are true for certain values.") * * * * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(140) * * * * * * * * * * IntegerExp::toElem: false @ bool * * * * * * * * * * * IntegerExp::toConstElem: false @ bool * * * * * * * * * * * * value = i1 false * * * * * * * * * * return value is '0x120e69a0' * * * * * * * * AddAssignExp::toElem: __key3420 += 1LU @ ulong * * * * * * * * * Caching l-value of __key3420 += 1LU => __key3420 * * * * * * * * * * VarExp::toElem: __key3420 @ ulong * * * * * * * * * * * DtoSymbolAddress ('__key3420' of type 'ulong') * * * * * * * * * * * * a normal variable * * * * * * * * * AddExp::toElem: __key3420 + 1LU @ ulong * * * * * * * * * * VarExp::toElem: __key3420 @ ulong * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * value = i64 1 * * * * * * * * * DtoAssign() * * * * * * * * * * lhs: %__key3420 = alloca i64, align 8 * * * * * * * * * * rhs: %14 = add i64 %13, 1 * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/sorting.d(160) * * * * * * IntegerExp::toElem: true @ bool * * * * * * * IntegerExp::toConstElem: true @ bool * * * * * * * * value = i1 true * * * * * * return value is '0x12188b90' * TemplateInstance::codegen: 'std.range.assumeSorted!("a < b", string[])' * * DtoDefineFunction(std.range.assumeSorted!("a < b", string[]).assumeSorted): /usr/include/dlang/ldc/std/range/package.d(7324) * * * Doing function body for: assumeSorted * * * DtoCreateNestedContext for assumeSorted * * * * DtoCreateNestedContextType for std.range.assumeSorted!("a < b", string[]).assumeSorted * * * CompoundStatement::toIR(): * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/range/package.d(7327) * * * * * CallExp::toElem: SortedRange(null).this(r) @ SortedRange!(string[], "a < b") * * * * * * DotVarExp::toElem: SortedRange(null).this @ pure nothrow @nogc ref @safe SortedRange!(string[], "a < b")(string[] input) * * * * * * * StructLiteralExp::toElem: SortedRange(null) @ SortedRange!(string[], "a < b") * * * * * * * * initializing field: string[] _input (+0) * * * * * * * * * expr 0 = null * * * * * * * * * NullExp::toElem(type=string[]): null * * * * * * * * * * NullExp::toConstElem(type=string[]): null * * * * * * * * * Indexing aggregate field std.range.SortedRange!(string[], "a < b").SortedRange._input: * * * * * * * * * * Value: %1 = getelementptr %"std.range.SortedRange!(string[], \22a < b\22).SortedRange", %"std.range.SortedRange!(string[], \22a < b\22).SortedRange"* %.structliteral, i32 0, i32 0 * * * * * * * * * DtoAssign() * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * DtoSetArrayToNull * * * * * * DtoCallFunction() * * * * * * * Building type: pure nothrow @nogc ref @safe SortedRange!(string[], "a < b")(string[] input) * * * * * * * * DtoFunctionType(pure nothrow @nogc ref @safe SortedRange!(string[], "a < b")(string[] input)) * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * Final function type: %"std.range.SortedRange!(string[], \22a < b\22).SortedRange"* ({ i64, { i64, i8* }* }) * * * * * * * doing normal arguments * * * * * * * Arguments so far: (1) * * * * * * * * %.structliteral = alloca %"std.range.SortedRange!(string[], \22a < b\22).SortedRange", align 8 * * * * * * * Function type: pure nothrow @nogc ref @safe SortedRange!(string[], "a < b")(string[] input) * * * * * * * DtoArgument * * * * * * * * VarExp::toElem: r @ string[] * * * * * * * * * DtoSymbolAddress ('r' of type 'string[]') * * * * * * * * * * function param * * * * * * * * * * type: string[] * * * * * return value is '0x12ba6a68' * * * * * Loading value for return * TemplateInstance::codegen: 'std.range.primitives.isInputRange!(SortedRange!(string[], "a < b"))' * * VarDeclaration::codegen(): 'std.range.primitives.isInputRange!(SortedRange!(string[], "a < b")).isInputRange' * * * DtoResolveVariable(std.range.primitives.isInputRange!(SortedRange!(string[], "a < b")).isInputRange) * TemplateInstance::codegen: 'std.functional.binaryFun!("a == b", "a", "b").binaryFun!(string, string)' * * DtoDefineFunction(std.functional.binaryFun!("a == b", "a", "b").binaryFun!(string, string).binaryFun): /usr/include/dlang/ldc/std/functional.d(163) * * * DtoFunctionType(pure nothrow @nogc @safe bool(auto ref string __a, auto ref string __b)) * * * * x86-64 ABI: Transforming return type * * * * x86-64 ABI: Transforming argument types * * * * Final function type: i1 ({ i64, i8* }*, { i64, i8* }*) * * * DtoResolveFunction(std.functional.binaryFun!("a == b", "a", "b").binaryFun!(string, string).binaryFun): /usr/include/dlang/ldc/std/functional.d(163) * * * * DtoDeclareFunction(std.functional.binaryFun!("a == b", "a", "b").binaryFun!(string, string).binaryFun): /usr/include/dlang/ldc/std/functional.d(163) * * * * * DtoFunctionType(pure nothrow @nogc @safe bool(auto ref string __a, auto ref string __b)) * * * * * func = declare i1 @_D3std10functional51__T9binaryFunVAyaa6_61203d3d2062VAyaa1_61VAyaa1_62Z22__T9binaryFunTAyaTAyaZ9binaryFunFNaNbNiNfKAyaKAyaZb({ i64, i8* }*, { i64, i8* }*) * * * Doing function body for: binaryFun * * * DtoCreateNestedContext for binaryFun * * * * DtoCreateNestedContextType for std.functional.binaryFun!("a == b", "a", "b").binaryFun!(string, string).binaryFun * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/functional.d(165) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/functional.d-mixin-166(166) * * * * * * DeclarationExp::toElem: alias a = ref string __a; ; | T=void * * * * * * * DtoDeclarationExp: a * * * * * * * * Ignoring Symbol: alias * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/functional.d-mixin-167(167) * * * * * * DeclarationExp::toElem: alias b = ref string __b; ; | T=void * * * * * * * DtoDeclarationExp: b * * * * * * * * Ignoring Symbol: alias * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/functional.d(168) * * * * * * EqualExp::toElem: __a == __b @ bool * * * * * * * VarExp::toElem: __a @ string * * * * * * * * DtoSymbolAddress ('__a' of type 'string') * * * * * * * * * function param * * * * * * * * * type: string * * * * * * * VarExp::toElem: __b @ string * * * * * * * * DtoSymbolAddress ('__b' of type 'string') * * * * * * * * * function param * * * * * * * * * type: string * * * * * * * static or dynamic array * * * * * * * comparing arrays * * * * * * * casting to dynamic arrays * * * * * * * DtoCastArray * * * * * * * * from array or sarray * * * * * * * * to array * * * * * * * * DtoArrayLen * * * * * * * * DtoArrayPtr * * * * * * * * isslice * * * * * * * DtoCastArray * * * * * * * * from array or sarray * * * * * * * * to array * * * * * * * * DtoArrayLen * * * * * * * * DtoArrayPtr * * * * * * * * isslice * * * * * * * DtoTypeInfoOf(type = 'string', base='1') * * * * * * * * Type::getTypeInfo(): string * * * * * * * * TypeInfoDeclaration::codegen(typeid(string)) * * * * * * return value is '0x12baae30' * TemplateInstance::codegen: 'std.algorithm.iteration.uniq!("a == b", SortedRange!(string[], "a < b"))' * * DtoDefineFunction(std.algorithm.iteration.uniq!("a == b", SortedRange!(string[], "a < b")).uniq): /usr/include/dlang/ldc/std/algorithm/iteration.d(4084) * * * DtoFunctionType(pure nothrow @nogc @safe UniqResult!(binaryFun, SortedRange!(string[], "a < b"))(SortedRange!(string[], "a < b") r)) * * * * Building type: UniqResult!(binaryFun, SortedRange!(string[], "a < b")) * * * * * Building struct type std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], "a < b")).UniqResult @ /usr/include/dlang/ldc/std/algorithm/iteration.d(4109) * * * * * * adding default initializer for struct field _input * * * * * * final struct type: %"std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], \22a < b\22)).UniqResult" = type { %"std.range.SortedRange!(string[], \22a < b\22).SortedRange" } * * * * x86-64 ABI: Transforming return type * * * * x86-64 ABI: Transforming argument types * * * * Final function type: %"std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], \22a < b\22)).UniqResult" (%"std.range.SortedRange!(string[], \22a < b\22).SortedRange") * * * DtoResolveFunction(std.algorithm.iteration.uniq!("a == b", SortedRange!(string[], "a < b")).uniq): /usr/include/dlang/ldc/std/algorithm/iteration.d(4084) * * * * DtoDeclareFunction(std.algorithm.iteration.uniq!("a == b", SortedRange!(string[], "a < b")).uniq): /usr/include/dlang/ldc/std/algorithm/iteration.d(4084) * * * * * DtoFunctionType(pure nothrow @nogc @safe UniqResult!(binaryFun, SortedRange!(string[], "a < b"))(SortedRange!(string[], "a < b") r)) * * * * * func = declare %"std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], \22a < b\22)).UniqResult" @_D3std9algorithm9iteration94__T4uniqVAyaa6_61203d3d2062TS3std5range39__T11SortedRangeTAAyaVAyaa5_61203c2062Z11SortedRangeZ4uniqFNaNbNiNfS3std5range39__T11SortedRangeTAAyaVAyaa5_61203c2062Z11SortedRangeZS3std9algorithm9iteration164__T10UniqResultS793std10functional51__T9binaryFunVAyaa6_61203d3d2062VAyaa1_61VAyaa1_62Z9binaryFunTS3std5range39__T11SortedRangeTAAyaVAyaa5_61203c2062Z11SortedRangeZ10UniqResult(%"std.range.SortedRange!(string[], \22a < b\22).SortedRange") * * * Doing function body for: uniq * * * DtoCreateNestedContext for uniq * * * * DtoCreateNestedContextType for std.algorithm.iteration.uniq!("a == b", SortedRange!(string[], "a < b")).uniq * * * CompoundStatement::toIR(): * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/iteration.d(4087) * * * * * CallExp::toElem: UniqResult(SortedRange(null)).this(r) @ UniqResult!(binaryFun, SortedRange!(string[], "a < b")) * * * * * * DotVarExp::toElem: UniqResult(SortedRange(null)).this @ pure nothrow @nogc ref @safe UniqResult!(binaryFun, SortedRange!(string[], "a < b"))(SortedRange!(string[], "a < b") input) * * * * * * * StructLiteralExp::toElem: UniqResult(SortedRange(null)) @ UniqResult!(binaryFun, SortedRange!(string[], "a < b")) * * * * * * * * Resolving struct type: UniqResult (/usr/include/dlang/ldc/std/algorithm/iteration.d(4109)) * * * * * * * * initializing field: SortedRange!(string[], "a < b") _input (+0) * * * * * * * * * expr 0 = SortedRange(null) * * * * * * * * * StructLiteralExp::toElem: SortedRange(null) @ SortedRange!(string[], "a < b") * * * * * * * * * * initializing field: string[] _input (+0) * * * * * * * * * * * expr 0 = null * * * * * * * * * * * NullExp::toElem(type=string[]): null * * * * * * * * * * * * NullExp::toConstElem(type=string[]): null * * * * * * * * * * * Indexing aggregate field std.range.SortedRange!(string[], "a < b").SortedRange._input: * * * * * * * * * * * * Value: %1 = getelementptr %"std.range.SortedRange!(string[], \22a < b\22).SortedRange", %"std.range.SortedRange!(string[], \22a < b\22).SortedRange"* %.structliteral1, i32 0, i32 0 * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * DtoSetArrayToNull * * * * * * * * * Indexing aggregate field std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], "a < b")).UniqResult._input: * * * * * * * * * * Value: %2 = getelementptr %"std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], \22a < b\22)).UniqResult", %"std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], \22a < b\22)).UniqResult"* %.structliteral, i32 0, i32 0 * * * * * * * * * DtoAssign() * * * * * * * isMember = this is: UniqResult!(binaryFun, SortedRange!(string[], "a < b")) * * * * * * * DtoFunctionType(pure nothrow @nogc ref @safe UniqResult!(binaryFun, SortedRange!(string[], "a < b"))(SortedRange!(string[], "a < b") input)) * * * * * * * * Building type: UniqResult!(binaryFun, SortedRange!(string[], "a < b"))* * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * Final function type: %"std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], \22a < b\22)).UniqResult"* (%"std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], \22a < b\22)).UniqResult"*, %"std.range.SortedRange!(string[], \22a < b\22).SortedRange") * * * * * * * DtoResolveFunction(std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], "a < b")).UniqResult.this): /usr/include/dlang/ldc/std/algorithm/iteration.d(4113) * * * * * * * * DtoDeclareFunction(std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], "a < b")).UniqResult.this): /usr/include/dlang/ldc/std/algorithm/iteration.d(4113) * * * * * * * * * isMember = this is: UniqResult!(binaryFun, SortedRange!(string[], "a < b")) * * * * * * * * * DtoFunctionType(pure nothrow @nogc ref @safe UniqResult!(binaryFun, SortedRange!(string[], "a < b"))(SortedRange!(string[], "a < b") input)) * * * * * * * * * func = declare %"std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], \22a < b\22)).UniqResult"* @_D3std9algorithm9iteration164__T10UniqResultS793std10functional51__T9binaryFunVAyaa6_61203d3d2062VAyaa1_61VAyaa1_62Z9binaryFunTS3std5range39__T11SortedRangeTAAyaVAyaa5_61203c2062Z11SortedRangeZ10UniqResult6__ctorMFNaNbNcNiNfS3std5range39__T11SortedRangeTAAyaVAyaa5_61203c2062Z11SortedRangeZS3std9algorithm9iteration164__T10UniqResultS793std10functional51__T9binaryFunVAyaa6_61203d3d2062VAyaa1_61VAyaa1_62Z9binaryFunTS3std5range39__T11SortedRangeTAAyaVAyaa5_61203c2062Z11SortedRangeZ10UniqResult(%"std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], \22a < b\22)).UniqResult"*, %"std.range.SortedRange!(string[], \22a < b\22).SortedRange") * * * * * * DtoCallFunction() * * * * * * * Building type: pure nothrow @nogc ref @safe UniqResult!(binaryFun, SortedRange!(string[], "a < b"))(SortedRange!(string[], "a < b") input) * * * * * * * * DtoFunctionType(pure nothrow @nogc ref @safe UniqResult!(binaryFun, SortedRange!(string[], "a < b"))(SortedRange!(string[], "a < b") input)) * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * Final function type: %"std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], \22a < b\22)).UniqResult"* (%"std.range.SortedRange!(string[], \22a < b\22).SortedRange") * * * * * * * doing normal arguments * * * * * * * Arguments so far: (1) * * * * * * * * %.structliteral = alloca %"std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], \22a < b\22)).UniqResult", align 8 * * * * * * * Function type: pure nothrow @nogc ref @safe UniqResult!(binaryFun, SortedRange!(string[], "a < b"))(SortedRange!(string[], "a < b") input) * * * * * * * DtoArgument * * * * * * * * VarExp::toElem: r @ SortedRange!(string[], "a < b") * * * * * * * * * DtoSymbolAddress ('r' of type 'SortedRange!(string[], "a < b")') * * * * * * * * * * function param * * * * * * * * * * type: SortedRange!(string[], "a < b") * * * * * * * Loading struct type for function argument * * * * * return value is '0x12baf518' * * * * * Loading value for return * TemplateInstance::codegen: 'std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], "a < b"))' * * StructDeclaration::codegen: 'std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], "a < b")).UniqResult' * * * VarDeclaration::codegen(): 'std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], "a < b")).UniqResult._input' * * * * DtoResolveVariable(std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], "a < b")).UniqResult._input) * * * DtoDefineFunction(std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], "a < b")).UniqResult.this): /usr/include/dlang/ldc/std/algorithm/iteration.d(4113) * * * * Doing function body for: this * * * * DtoCreateNestedContext for this * * * * * DtoCreateNestedContextType for std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], "a < b")).UniqResult.this * * * * CompoundStatement::toIR(): * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/iteration.d(4113) * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/iteration.d(4115) * * * * * * * AssignExp::toElem: this._input = input | (SortedRange!(string[], "a < b"))(SortedRange!(string[], "a < b") = SortedRange!(string[], "a < b")) * * * * * * * * DotVarExp::toElem: this._input @ SortedRange!(string[], "a < b") * * * * * * * * * ThisExp::toElem: this @ UniqResult!(binaryFun, SortedRange!(string[], "a < b")) * * * * * * * * * * normal this exp * * * * * * * * * Indexing aggregate field std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], "a < b")).UniqResult._input: * * * * * * * * * * Value: %1 = getelementptr %"std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], \22a < b\22)).UniqResult", %"std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], \22a < b\22)).UniqResult"* %.this_arg, i32 0, i32 0 * * * * * * * * VarExp::toElem: input @ SortedRange!(string[], "a < b") * * * * * * * * * DtoSymbolAddress ('input' of type 'SortedRange!(string[], "a < b")') * * * * * * * * * * function param * * * * * * * * * * type: SortedRange!(string[], "a < b") * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * DtoAssign() * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/iteration.d(4113) * * * * * * * AddrExp::toElem: &this @ UniqResult!(binaryFun, SortedRange!(string[], "a < b"))* * * * * * * * * ThisExp::toElem: this @ UniqResult!(binaryFun, SortedRange!(string[], "a < b")) * * * * * * * * * this exp without var declaration * * * * * * * * is nothing special * * * * * * * * lval: %"std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], \22a < b\22)).UniqResult"* %.this_arg * * * * * * * return value is '0x12bb8920' * * * DtoDefineFunction(std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], "a < b")).UniqResult.opSlice): /usr/include/dlang/ldc/std/algorithm/iteration.d(4118) * * * * isMember = this is: UniqResult!(binaryFun, SortedRange!(string[], "a < b")) * * * * DtoFunctionType(pure nothrow @nogc @safe UniqResult!(binaryFun, SortedRange!(string[], "a < b"))()) * * * * * x86-64 ABI: Transforming return type * * * * * x86-64 ABI: Transforming argument types * * * * * Final function type: %"std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], \22a < b\22)).UniqResult" (%"std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], \22a < b\22)).UniqResult"*) * * * * DtoResolveFunction(std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], "a < b")).UniqResult.opSlice): /usr/include/dlang/ldc/std/algorithm/iteration.d(4118) * * * * * DtoDeclareFunction(std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], "a < b")).UniqResult.opSlice): /usr/include/dlang/ldc/std/algorithm/iteration.d(4118) * * * * * * isMember = this is: UniqResult!(binaryFun, SortedRange!(string[], "a < b")) * * * * * * DtoFunctionType(pure nothrow @nogc @safe UniqResult!(binaryFun, SortedRange!(string[], "a < b"))()) * * * * * * func = declare %"std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], \22a < b\22)).UniqResult" @_D3std9algorithm9iteration164__T10UniqResultS793std10functional51__T9binaryFunVAyaa6_61203d3d2062VAyaa1_61VAyaa1_62Z9binaryFunTS3std5range39__T11SortedRangeTAAyaVAyaa5_61203c2062Z11SortedRangeZ10UniqResult7opSliceMFNaNbNiNfZS3std9algorithm9iteration164__T10UniqResultS793std10functional51__T9binaryFunVAyaa6_61203d3d2062VAyaa1_61VAyaa1_62Z9binaryFunTS3std5range39__T11SortedRangeTAAyaVAyaa5_61203c2062Z11SortedRangeZ10UniqResult(%"std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], \22a < b\22)).UniqResult"*) * * * * Doing function body for: opSlice * * * * DtoCreateNestedContext for opSlice * * * * * DtoCreateNestedContextType for std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], "a < b")).UniqResult.opSlice * * * * CompoundStatement::toIR(): * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/iteration.d(4120) * * * * * * ThisExp::toElem: this @ UniqResult!(binaryFun, SortedRange!(string[], "a < b")) * * * * * * * normal this exp * * * * * * return value is '0x12bbe9f0' * * * * * * Loading value for return * * * DtoDefineFunction(std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], "a < b")).UniqResult.popFront): /usr/include/dlang/ldc/std/algorithm/iteration.d(4123) * * * * isMember = this is: UniqResult!(binaryFun, SortedRange!(string[], "a < b")) * * * * DtoFunctionType(pure nothrow @nogc @safe void()) * * * * * x86-64 ABI: Transforming argument types * * * * * Final function type: void (%"std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], \22a < b\22)).UniqResult"*) * * * * DtoResolveFunction(std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], "a < b")).UniqResult.popFront): /usr/include/dlang/ldc/std/algorithm/iteration.d(4123) * * * * * DtoDeclareFunction(std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], "a < b")).UniqResult.popFront): /usr/include/dlang/ldc/std/algorithm/iteration.d(4123) * * * * * * isMember = this is: UniqResult!(binaryFun, SortedRange!(string[], "a < b")) * * * * * * DtoFunctionType(pure nothrow @nogc @safe void()) * * * * * * func = declare void @_D3std9algorithm9iteration164__T10UniqResultS793std10functional51__T9binaryFunVAyaa6_61203d3d2062VAyaa1_61VAyaa1_62Z9binaryFunTS3std5range39__T11SortedRangeTAAyaVAyaa5_61203c2062Z11SortedRangeZ10UniqResult8popFrontMFNaNbNiNfZv(%"std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], \22a < b\22)).UniqResult"*) * * * * Doing function body for: popFront * * * * DtoCreateNestedContext for popFront * * * * * DtoCreateNestedContextType for std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], "a < b")).UniqResult.popFront * * * * CompoundStatement::toIR(): * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/iteration.d(4124) * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/iteration.d(4125) * * * * * * * DeclarationExp::toElem: string last = this._input.front(); | T=void * * * * * * * * DtoDeclarationExp: last * * * * * * * * * VarDeclaration * * * * * * * * * DtoVarDeclaration(vdtype = string) * * * * * * * * * * llvm value for decl: %last = alloca { i64, i8* }, align 8 * * * * * * * * * * expression initializer * * * * * * * * * * AssignExp::toElem: last = this._input.front() | (string)(string = string) * * * * * * * * * * * VarExp::toElem: last @ string * * * * * * * * * * * * DtoSymbolAddress ('last' of type 'string') * * * * * * * * * * * * * a normal variable * * * * * * * * * * * CallExp::toElem: this._input.front() @ string * * * * * * * * * * * * DotVarExp::toElem: this._input.front @ pure nothrow @nogc @property ref @safe string() * * * * * * * * * * * * * DotVarExp::toElem: this._input @ SortedRange!(string[], "a < b") * * * * * * * * * * * * * * ThisExp::toElem: this @ UniqResult!(binaryFun, SortedRange!(string[], "a < b")) * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * Indexing aggregate field std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], "a < b")).UniqResult._input: * * * * * * * * * * * * * * * Value: %1 = getelementptr %"std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], \22a < b\22)).UniqResult", %"std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], \22a < b\22)).UniqResult"* %.this_arg, i32 0, i32 0 * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * Building type: pure nothrow @nogc @property ref @safe string() * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @property ref @safe string()) * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * Final function type: { i64, i8* }* () * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * %1 = getelementptr %"std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], \22a < b\22)).UniqResult", %"std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], \22a < b\22)).UniqResult"* %.this_arg, i32 0, i32 0 * * * * * * * * * * * * * Function type: pure nothrow @nogc @property ref @safe string() * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * SetArray * * * * * * DoStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/iteration.d(4126) * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/iteration.d(4127) * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/iteration.d(4128) * * * * * * * * * CallExp::toElem: this._input.popFront() @ void * * * * * * * * * * DotVarExp::toElem: this._input.popFront @ pure nothrow @nogc @safe void() * * * * * * * * * * * DotVarExp::toElem: this._input @ SortedRange!(string[], "a < b") * * * * * * * * * * * * ThisExp::toElem: this @ UniqResult!(binaryFun, SortedRange!(string[], "a < b")) * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * Indexing aggregate field std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], "a < b")).UniqResult._input: * * * * * * * * * * * * * Value: %7 = getelementptr %"std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], \22a < b\22)).UniqResult", %"std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], \22a < b\22)).UniqResult"* %.this_arg, i32 0, i32 0 * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * Building type: pure nothrow @nogc @safe void() * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe void()) * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * Final function type: void () * * * * * * * * * * * doing normal arguments * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * %7 = getelementptr %"std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], \22a < b\22)).UniqResult", %"std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], \22a < b\22)).UniqResult"* %.this_arg, i32 0, i32 0 * * * * * * * * * * * Function type: pure nothrow @nogc @safe void() * * * * * * * AndAndExp::toElem: !this._input.empty() && binaryFun(last, this._input.front()) @ bool * * * * * * * * NotExp::toElem: !this._input.empty() @ bool * * * * * * * * * CallExp::toElem: this._input.empty() @ bool * * * * * * * * * * DotVarExp::toElem: this._input.empty @ pure nothrow @nogc @property @safe bool() * * * * * * * * * * * DotVarExp::toElem: this._input @ SortedRange!(string[], "a < b") * * * * * * * * * * * * ThisExp::toElem: this @ UniqResult!(binaryFun, SortedRange!(string[], "a < b")) * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * Indexing aggregate field std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], "a < b")).UniqResult._input: * * * * * * * * * * * * * Value: %8 = getelementptr %"std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], \22a < b\22)).UniqResult", %"std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], \22a < b\22)).UniqResult"* %.this_arg, i32 0, i32 0 * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * Building type: pure nothrow @nogc @property @safe bool() * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @property @safe bool()) * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * Final function type: i1 () * * * * * * * * * * * doing normal arguments * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * %8 = getelementptr %"std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], \22a < b\22)).UniqResult", %"std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], \22a < b\22)).UniqResult"* %.this_arg, i32 0, i32 0 * * * * * * * * * * * Function type: pure nothrow @nogc @property @safe bool() * * * * * * * * CallExp::toElem: binaryFun(last, this._input.front()) @ bool * * * * * * * * * VarExp::toElem: binaryFun @ pure nothrow @nogc @safe bool(auto ref string __a, auto ref string __b) * * * * * * * * * * DtoSymbolAddress ('binaryFun' of type 'pure nothrow @nogc @safe bool(auto ref string __a, auto ref string __b)') * * * * * * * * * * * FuncDeclaration * * * * * * * * * DtoCallFunction() * * * * * * * * * * Building type: pure nothrow @nogc @safe bool(auto ref string __a, auto ref string __b) * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe bool(auto ref string __a, auto ref string __b)) * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * Final function type: i1 ({ i64, i8* }*, { i64, i8* }*) * * * * * * * * * * doing normal arguments * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * Function type: pure nothrow @nogc @safe bool(auto ref string __a, auto ref string __b) * * * * * * * * * * DtoArgument * * * * * * * * * * * VarExp::toElem: last @ string * * * * * * * * * * * * DtoSymbolAddress ('last' of type 'string') * * * * * * * * * * * * * a normal variable * * * * * * * * * * DtoArgument * * * * * * * * * * * CallExp::toElem: this._input.front() @ string * * * * * * * * * * * * DotVarExp::toElem: this._input.front @ pure nothrow @nogc @property ref @safe string() * * * * * * * * * * * * * DotVarExp::toElem: this._input @ SortedRange!(string[], "a < b") * * * * * * * * * * * * * * ThisExp::toElem: this @ UniqResult!(binaryFun, SortedRange!(string[], "a < b")) * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * Indexing aggregate field std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], "a < b")).UniqResult._input: * * * * * * * * * * * * * * * Value: %11 = getelementptr %"std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], \22a < b\22)).UniqResult", %"std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], \22a < b\22)).UniqResult"* %.this_arg, i32 0, i32 0 * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * %11 = getelementptr %"std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], \22a < b\22)).UniqResult", %"std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], \22a < b\22)).UniqResult"* %.this_arg, i32 0, i32 0 * * * * * * * * * * * * * Function type: pure nothrow @nogc @property ref @safe string() * * * DtoDefineFunction(std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], "a < b")).UniqResult.front): /usr/include/dlang/ldc/std/algorithm/iteration.d(4133) * * * * isMember = this is: UniqResult!(binaryFun, SortedRange!(string[], "a < b")) * * * * DtoFunctionType(pure nothrow @nogc @property @safe string()) * * * * * x86-64 ABI: Transforming return type * * * * * x86-64 ABI: Transforming argument types * * * * * Final function type: { i64, i8* } (%"std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], \22a < b\22)).UniqResult"*) * * * * DtoResolveFunction(std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], "a < b")).UniqResult.front): /usr/include/dlang/ldc/std/algorithm/iteration.d(4133) * * * * * DtoDeclareFunction(std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], "a < b")).UniqResult.front): /usr/include/dlang/ldc/std/algorithm/iteration.d(4133) * * * * * * isMember = this is: UniqResult!(binaryFun, SortedRange!(string[], "a < b")) * * * * * * DtoFunctionType(pure nothrow @nogc @property @safe string()) * * * * * * func = declare { i64, i8* } @_D3std9algorithm9iteration164__T10UniqResultS793std10functional51__T9binaryFunVAyaa6_61203d3d2062VAyaa1_61VAyaa1_62Z9binaryFunTS3std5range39__T11SortedRangeTAAyaVAyaa5_61203c2062Z11SortedRangeZ10UniqResult5frontMFNaNbNdNiNfZAya(%"std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], \22a < b\22)).UniqResult"*) * * * * Doing function body for: front * * * * DtoCreateNestedContext for front * * * * * DtoCreateNestedContextType for std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], "a < b")).UniqResult.front * * * * CompoundStatement::toIR(): * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/iteration.d(4133) * * * * * * CallExp::toElem: this._input.front() @ string * * * * * * * DotVarExp::toElem: this._input.front @ pure nothrow @nogc @property ref @safe string() * * * * * * * * DotVarExp::toElem: this._input @ SortedRange!(string[], "a < b") * * * * * * * * * ThisExp::toElem: this @ UniqResult!(binaryFun, SortedRange!(string[], "a < b")) * * * * * * * * * * normal this exp * * * * * * * * * Indexing aggregate field std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], "a < b")).UniqResult._input: * * * * * * * * * * Value: %1 = getelementptr %"std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], \22a < b\22)).UniqResult", %"std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], \22a < b\22)).UniqResult"* %.this_arg, i32 0, i32 0 * * * * * * * DtoCallFunction() * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (1) * * * * * * * * * %1 = getelementptr %"std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], \22a < b\22)).UniqResult", %"std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], \22a < b\22)).UniqResult"* %.this_arg, i32 0, i32 0 * * * * * * * * Function type: pure nothrow @nogc @property ref @safe string() * * * * * * return value is '0x12bc1af8' * * * DtoDefineFunction(std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], "a < b")).UniqResult.popBack): /usr/include/dlang/ldc/std/algorithm/iteration.d(4137) * * * * isMember = this is: UniqResult!(binaryFun, SortedRange!(string[], "a < b")) * * * * DtoFunctionType(pure nothrow @nogc @safe void()) * * * * * x86-64 ABI: Transforming argument types * * * * * Final function type: void (%"std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], \22a < b\22)).UniqResult"*) * * * * DtoResolveFunction(std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], "a < b")).UniqResult.popBack): /usr/include/dlang/ldc/std/algorithm/iteration.d(4137) * * * * * DtoDeclareFunction(std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], "a < b")).UniqResult.popBack): /usr/include/dlang/ldc/std/algorithm/iteration.d(4137) * * * * * * isMember = this is: UniqResult!(binaryFun, SortedRange!(string[], "a < b")) * * * * * * DtoFunctionType(pure nothrow @nogc @safe void()) * * * * * * func = declare void @_D3std9algorithm9iteration164__T10UniqResultS793std10functional51__T9binaryFunVAyaa6_61203d3d2062VAyaa1_61VAyaa1_62Z9binaryFunTS3std5range39__T11SortedRangeTAAyaVAyaa5_61203c2062Z11SortedRangeZ10UniqResult7popBackMFNaNbNiNfZv(%"std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], \22a < b\22)).UniqResult"*) * * * * Doing function body for: popBack * * * * DtoCreateNestedContext for popBack * * * * * DtoCreateNestedContextType for std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], "a < b")).UniqResult.popBack * * * * CompoundStatement::toIR(): * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/iteration.d(4138) * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/iteration.d(4139) * * * * * * * DeclarationExp::toElem: string last = this._input.back(); | T=void * * * * * * * * DtoDeclarationExp: last * * * * * * * * * VarDeclaration * * * * * * * * * DtoVarDeclaration(vdtype = string) * * * * * * * * * * llvm value for decl: %last = alloca { i64, i8* }, align 8 * * * * * * * * * * expression initializer * * * * * * * * * * AssignExp::toElem: last = this._input.back() | (string)(string = string) * * * * * * * * * * * VarExp::toElem: last @ string * * * * * * * * * * * * DtoSymbolAddress ('last' of type 'string') * * * * * * * * * * * * * a normal variable * * * * * * * * * * * CallExp::toElem: this._input.back() @ string * * * * * * * * * * * * DotVarExp::toElem: this._input.back @ pure nothrow @nogc @property ref @safe string() * * * * * * * * * * * * * DotVarExp::toElem: this._input @ SortedRange!(string[], "a < b") * * * * * * * * * * * * * * ThisExp::toElem: this @ UniqResult!(binaryFun, SortedRange!(string[], "a < b")) * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * Indexing aggregate field std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], "a < b")).UniqResult._input: * * * * * * * * * * * * * * * Value: %1 = getelementptr %"std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], \22a < b\22)).UniqResult", %"std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], \22a < b\22)).UniqResult"* %.this_arg, i32 0, i32 0 * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * Building type: pure nothrow @nogc @property ref @safe string() * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @property ref @safe string()) * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * Final function type: { i64, i8* }* () * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * %1 = getelementptr %"std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], \22a < b\22)).UniqResult", %"std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], \22a < b\22)).UniqResult"* %.this_arg, i32 0, i32 0 * * * * * * * * * * * * * Function type: pure nothrow @nogc @property ref @safe string() * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * SetArray * * * * * * DoStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/iteration.d(4140) * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/iteration.d(4141) * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/iteration.d(4142) * * * * * * * * * CallExp::toElem: this._input.popBack() @ void * * * * * * * * * * DotVarExp::toElem: this._input.popBack @ pure nothrow @nogc @safe void() * * * * * * * * * * * DotVarExp::toElem: this._input @ SortedRange!(string[], "a < b") * * * * * * * * * * * * ThisExp::toElem: this @ UniqResult!(binaryFun, SortedRange!(string[], "a < b")) * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * Indexing aggregate field std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], "a < b")).UniqResult._input: * * * * * * * * * * * * * Value: %7 = getelementptr %"std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], \22a < b\22)).UniqResult", %"std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], \22a < b\22)).UniqResult"* %.this_arg, i32 0, i32 0 * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * Building type: pure nothrow @nogc @safe void() * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe void()) * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * Final function type: void () * * * * * * * * * * * doing normal arguments * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * %7 = getelementptr %"std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], \22a < b\22)).UniqResult", %"std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], \22a < b\22)).UniqResult"* %.this_arg, i32 0, i32 0 * * * * * * * * * * * Function type: pure nothrow @nogc @safe void() * * * * * * * AndAndExp::toElem: !this._input.empty() && binaryFun(last, this._input.back()) @ bool * * * * * * * * NotExp::toElem: !this._input.empty() @ bool * * * * * * * * * CallExp::toElem: this._input.empty() @ bool * * * * * * * * * * DotVarExp::toElem: this._input.empty @ pure nothrow @nogc @property @safe bool() * * * * * * * * * * * DotVarExp::toElem: this._input @ SortedRange!(string[], "a < b") * * * * * * * * * * * * ThisExp::toElem: this @ UniqResult!(binaryFun, SortedRange!(string[], "a < b")) * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * Indexing aggregate field std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], "a < b")).UniqResult._input: * * * * * * * * * * * * * Value: %8 = getelementptr %"std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], \22a < b\22)).UniqResult", %"std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], \22a < b\22)).UniqResult"* %.this_arg, i32 0, i32 0 * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * doing normal arguments * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * %8 = getelementptr %"std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], \22a < b\22)).UniqResult", %"std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], \22a < b\22)).UniqResult"* %.this_arg, i32 0, i32 0 * * * * * * * * * * * Function type: pure nothrow @nogc @property @safe bool() * * * * * * * * CallExp::toElem: binaryFun(last, this._input.back()) @ bool * * * * * * * * * VarExp::toElem: binaryFun @ pure nothrow @nogc @safe bool(auto ref string __a, auto ref string __b) * * * * * * * * * * DtoSymbolAddress ('binaryFun' of type 'pure nothrow @nogc @safe bool(auto ref string __a, auto ref string __b)') * * * * * * * * * * * FuncDeclaration * * * * * * * * * DtoCallFunction() * * * * * * * * * * doing normal arguments * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * Function type: pure nothrow @nogc @safe bool(auto ref string __a, auto ref string __b) * * * * * * * * * * DtoArgument * * * * * * * * * * * VarExp::toElem: last @ string * * * * * * * * * * * * DtoSymbolAddress ('last' of type 'string') * * * * * * * * * * * * * a normal variable * * * * * * * * * * DtoArgument * * * * * * * * * * * CallExp::toElem: this._input.back() @ string * * * * * * * * * * * * DotVarExp::toElem: this._input.back @ pure nothrow @nogc @property ref @safe string() * * * * * * * * * * * * * DotVarExp::toElem: this._input @ SortedRange!(string[], "a < b") * * * * * * * * * * * * * * ThisExp::toElem: this @ UniqResult!(binaryFun, SortedRange!(string[], "a < b")) * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * Indexing aggregate field std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], "a < b")).UniqResult._input: * * * * * * * * * * * * * * * Value: %11 = getelementptr %"std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], \22a < b\22)).UniqResult", %"std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], \22a < b\22)).UniqResult"* %.this_arg, i32 0, i32 0 * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * %11 = getelementptr %"std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], \22a < b\22)).UniqResult", %"std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], \22a < b\22)).UniqResult"* %.this_arg, i32 0, i32 0 * * * * * * * * * * * * * Function type: pure nothrow @nogc @property ref @safe string() * * * DtoDefineFunction(std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], "a < b")).UniqResult.back): /usr/include/dlang/ldc/std/algorithm/iteration.d(4147) * * * * isMember = this is: UniqResult!(binaryFun, SortedRange!(string[], "a < b")) * * * * DtoFunctionType(pure nothrow @nogc @property @safe string()) * * * * * x86-64 ABI: Transforming return type * * * * * x86-64 ABI: Transforming argument types * * * * * Final function type: { i64, i8* } (%"std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], \22a < b\22)).UniqResult"*) * * * * DtoResolveFunction(std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], "a < b")).UniqResult.back): /usr/include/dlang/ldc/std/algorithm/iteration.d(4147) * * * * * DtoDeclareFunction(std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], "a < b")).UniqResult.back): /usr/include/dlang/ldc/std/algorithm/iteration.d(4147) * * * * * * isMember = this is: UniqResult!(binaryFun, SortedRange!(string[], "a < b")) * * * * * * DtoFunctionType(pure nothrow @nogc @property @safe string()) * * * * * * func = declare { i64, i8* } @_D3std9algorithm9iteration164__T10UniqResultS793std10functional51__T9binaryFunVAyaa6_61203d3d2062VAyaa1_61VAyaa1_62Z9binaryFunTS3std5range39__T11SortedRangeTAAyaVAyaa5_61203c2062Z11SortedRangeZ10UniqResult4backMFNaNbNdNiNfZAya(%"std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], \22a < b\22)).UniqResult"*) * * * * Doing function body for: back * * * * DtoCreateNestedContext for back * * * * * DtoCreateNestedContextType for std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], "a < b")).UniqResult.back * * * * CompoundStatement::toIR(): * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/iteration.d(4147) * * * * * * CallExp::toElem: this._input.back() @ string * * * * * * * DotVarExp::toElem: this._input.back @ pure nothrow @nogc @property ref @safe string() * * * * * * * * DotVarExp::toElem: this._input @ SortedRange!(string[], "a < b") * * * * * * * * * ThisExp::toElem: this @ UniqResult!(binaryFun, SortedRange!(string[], "a < b")) * * * * * * * * * * normal this exp * * * * * * * * * Indexing aggregate field std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], "a < b")).UniqResult._input: * * * * * * * * * * Value: %1 = getelementptr %"std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], \22a < b\22)).UniqResult", %"std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], \22a < b\22)).UniqResult"* %.this_arg, i32 0, i32 0 * * * * * * * DtoCallFunction() * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (1) * * * * * * * * * %1 = getelementptr %"std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], \22a < b\22)).UniqResult", %"std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], \22a < b\22)).UniqResult"* %.this_arg, i32 0, i32 0 * * * * * * * * Function type: pure nothrow @nogc @property ref @safe string() * * * * * * return value is '0x12bca328' * * * DtoDefineFunction(std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], "a < b")).UniqResult.empty): /usr/include/dlang/ldc/std/algorithm/iteration.d(4156) * * * * isMember = this is: UniqResult!(binaryFun, SortedRange!(string[], "a < b")) * * * * DtoFunctionType(pure nothrow @nogc @property @safe bool()) * * * * * x86-64 ABI: Transforming return type * * * * * x86-64 ABI: Transforming argument types * * * * * Final function type: i1 (%"std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], \22a < b\22)).UniqResult"*) * * * * DtoResolveFunction(std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], "a < b")).UniqResult.empty): /usr/include/dlang/ldc/std/algorithm/iteration.d(4156) * * * * * DtoDeclareFunction(std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], "a < b")).UniqResult.empty): /usr/include/dlang/ldc/std/algorithm/iteration.d(4156) * * * * * * isMember = this is: UniqResult!(binaryFun, SortedRange!(string[], "a < b")) * * * * * * DtoFunctionType(pure nothrow @nogc @property @safe bool()) * * * * * * func = declare i1 @_D3std9algorithm9iteration164__T10UniqResultS793std10functional51__T9binaryFunVAyaa6_61203d3d2062VAyaa1_61VAyaa1_62Z9binaryFunTS3std5range39__T11SortedRangeTAAyaVAyaa5_61203c2062Z11SortedRangeZ10UniqResult5emptyMFNaNbNdNiNfZb(%"std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], \22a < b\22)).UniqResult"*) * * * * Doing function body for: empty * * * * DtoCreateNestedContext for empty * * * * * DtoCreateNestedContextType for std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], "a < b")).UniqResult.empty * * * * CompoundStatement::toIR(): * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/iteration.d(4156) * * * * * * CallExp::toElem: this._input.empty() @ bool * * * * * * * DotVarExp::toElem: this._input.empty @ pure nothrow @nogc @property @safe bool() * * * * * * * * DotVarExp::toElem: this._input @ SortedRange!(string[], "a < b") * * * * * * * * * ThisExp::toElem: this @ UniqResult!(binaryFun, SortedRange!(string[], "a < b")) * * * * * * * * * * normal this exp * * * * * * * * * Indexing aggregate field std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], "a < b")).UniqResult._input: * * * * * * * * * * Value: %1 = getelementptr %"std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], \22a < b\22)).UniqResult", %"std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], \22a < b\22)).UniqResult"* %.this_arg, i32 0, i32 0 * * * * * * * DtoCallFunction() * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (1) * * * * * * * * * %1 = getelementptr %"std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], \22a < b\22)).UniqResult", %"std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], \22a < b\22)).UniqResult"* %.this_arg, i32 0, i32 0 * * * * * * * * Function type: pure nothrow @nogc @property @safe bool() * * * * * * return value is '0x12bcdb10' * * * DtoDefineFunction(std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], "a < b")).UniqResult.save): /usr/include/dlang/ldc/std/algorithm/iteration.d(4160) * * * * isMember = this is: UniqResult!(binaryFun, SortedRange!(string[], "a < b")) * * * * DtoFunctionType(pure nothrow @nogc @property @safe UniqResult!(binaryFun, SortedRange!(string[], "a < b"))()) * * * * * x86-64 ABI: Transforming return type * * * * * x86-64 ABI: Transforming argument types * * * * * Final function type: %"std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], \22a < b\22)).UniqResult" (%"std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], \22a < b\22)).UniqResult"*) * * * * DtoResolveFunction(std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], "a < b")).UniqResult.save): /usr/include/dlang/ldc/std/algorithm/iteration.d(4160) * * * * * DtoDeclareFunction(std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], "a < b")).UniqResult.save): /usr/include/dlang/ldc/std/algorithm/iteration.d(4160) * * * * * * isMember = this is: UniqResult!(binaryFun, SortedRange!(string[], "a < b")) * * * * * * DtoFunctionType(pure nothrow @nogc @property @safe UniqResult!(binaryFun, SortedRange!(string[], "a < b"))()) * * * * * * func = declare %"std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], \22a < b\22)).UniqResult" @_D3std9algorithm9iteration164__T10UniqResultS793std10functional51__T9binaryFunVAyaa6_61203d3d2062VAyaa1_61VAyaa1_62Z9binaryFunTS3std5range39__T11SortedRangeTAAyaVAyaa5_61203c2062Z11SortedRangeZ10UniqResult4saveMFNaNbNdNiNfZS3std9algorithm9iteration164__T10UniqResultS793std10functional51__T9binaryFunVAyaa6_61203d3d2062VAyaa1_61VAyaa1_62Z9binaryFunTS3std5range39__T11SortedRangeTAAyaVAyaa5_61203c2062Z11SortedRangeZ10UniqResult(%"std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], \22a < b\22)).UniqResult"*) * * * * Doing function body for: save * * * * DtoCreateNestedContext for save * * * * * DtoCreateNestedContextType for std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], "a < b")).UniqResult.save * * * * CompoundStatement::toIR(): * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/iteration.d(4161) * * * * * * CallExp::toElem: UniqResult(SortedRange(null)).this(this._input.save()) @ UniqResult!(binaryFun, SortedRange!(string[], "a < b")) * * * * * * * DotVarExp::toElem: UniqResult(SortedRange(null)).this @ pure nothrow @nogc ref @safe UniqResult!(binaryFun, SortedRange!(string[], "a < b"))(SortedRange!(string[], "a < b") input) * * * * * * * * StructLiteralExp::toElem: UniqResult(SortedRange(null)) @ UniqResult!(binaryFun, SortedRange!(string[], "a < b")) * * * * * * * * * initializing field: SortedRange!(string[], "a < b") _input (+0) * * * * * * * * * * expr 0 = SortedRange(null) * * * * * * * * * * StructLiteralExp::toElem: SortedRange(null) @ SortedRange!(string[], "a < b") * * * * * * * * * * * initializing field: string[] _input (+0) * * * * * * * * * * * * expr 0 = null * * * * * * * * * * * * NullExp::toElem(type=string[]): null * * * * * * * * * * * * * NullExp::toConstElem(type=string[]): null * * * * * * * * * * * * Indexing aggregate field std.range.SortedRange!(string[], "a < b").SortedRange._input: * * * * * * * * * * * * * Value: %1 = getelementptr %"std.range.SortedRange!(string[], \22a < b\22).SortedRange", %"std.range.SortedRange!(string[], \22a < b\22).SortedRange"* %.structliteral1, i32 0, i32 0 * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * DtoSetArrayToNull * * * * * * * * * * Indexing aggregate field std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], "a < b")).UniqResult._input: * * * * * * * * * * * Value: %2 = getelementptr %"std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], \22a < b\22)).UniqResult", %"std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], \22a < b\22)).UniqResult"* %.structliteral, i32 0, i32 0 * * * * * * * * * * DtoAssign() * * * * * * * DtoCallFunction() * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (1) * * * * * * * * * %.structliteral = alloca %"std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], \22a < b\22)).UniqResult", align 8 * * * * * * * * Function type: pure nothrow @nogc ref @safe UniqResult!(binaryFun, SortedRange!(string[], "a < b"))(SortedRange!(string[], "a < b") input) * * * * * * * * DtoArgument * * * * * * * * * CallExp::toElem: this._input.save() @ SortedRange!(string[], "a < b") * * * * * * * * * * DotVarExp::toElem: this._input.save @ pure nothrow @nogc @property @safe SortedRange!(string[], "a < b")() * * * * * * * * * * * DotVarExp::toElem: this._input @ SortedRange!(string[], "a < b") * * * * * * * * * * * * ThisExp::toElem: this @ UniqResult!(binaryFun, SortedRange!(string[], "a < b")) * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * Indexing aggregate field std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], "a < b")).UniqResult._input: * * * * * * * * * * * * * Value: %5 = getelementptr %"std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], \22a < b\22)).UniqResult", %"std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], \22a < b\22)).UniqResult"* %.this_arg, i32 0, i32 0 * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * Building type: pure nothrow @nogc @property @safe SortedRange!(string[], "a < b")() * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @property @safe SortedRange!(string[], "a < b")()) * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * Final function type: %"std.range.SortedRange!(string[], \22a < b\22).SortedRange" () * * * * * * * * * * * doing normal arguments * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * %5 = getelementptr %"std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], \22a < b\22)).UniqResult", %"std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], \22a < b\22)).UniqResult"* %.this_arg, i32 0, i32 0 * * * * * * * * * * * Function type: pure nothrow @nogc @property @safe SortedRange!(string[], "a < b")() * * * * * * * * * * * Storing return value to stack slot * * * * * * * * Loading struct type for function argument * * * * * * return value is '0x12bd0e28' * * * * * * Loading value for return * * * Building default initializer for std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], "a < b")).UniqResult * * * * Creating initializer constant for UniqResult * * * * * Implicit initializer: _input @+0 * * * * * * DtoConstExpInit(targetType = SortedRange!(string[], "a < b"), exp = SortedRange) * * * * * * * VarExp::toConstElem: SortedRange @ SortedRange!(string[], "a < b") * * * * * * * * Sym: type=SortedRange!(string[], "a < b") * * * * * adding field _input * * * * * final initializer: %"std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], \22a < b\22)).UniqResult_init" zeroinitializer * * * DtoTypeInfoOf(type = 'UniqResult!(binaryFun, SortedRange!(string[], "a < b"))', base='1') * * * * Type::getTypeInfo(): UniqResult!(binaryFun, SortedRange!(string[], "a < b")) * * * * * TypeInfoDeclaration::codegen(typeid(UniqResult!(binaryFun, SortedRange!(string[], "a < b")))) * * * * * * type = 'UniqResult!(binaryFun, SortedRange!(string[], "a < b"))' * * * * * * typeinfo mangle: _D213TypeInfo_S3std9algorithm9iteration164__T10UniqResultS793std10functional51__T9binaryFunVAyaa6_61203d3d2062VAyaa1_61VAyaa1_62Z9binaryFunTS3std5range39__T11SortedRangeTAAyaVAyaa5_61203c2062Z11SortedRangeZ10UniqResult6__initZ * * * * * * TypeInfoStructDeclaration::llvmDefine() typeid(UniqResult!(binaryFun, SortedRange!(string[], "a < b"))) * * * * * * * DtoFunctionType(nothrow @trusted ulong(ref const(UniqResult!(binaryFun, SortedRange!(string[], "a < b"))) p)) * * * * * * * * Building type: const(UniqResult!(binaryFun, SortedRange!(string[], "a < b")))* * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * Final function type: i64 (%"std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], \22a < b\22)).UniqResult"*) * * * * * * * DtoResolveFunction(std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], "a < b")).UniqResult.__xtoHash): * * * * * * * * DtoDeclareFunction(std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], "a < b")).UniqResult.__xtoHash): * * * * * * * * * DtoFunctionType(nothrow @trusted ulong(ref const(UniqResult!(binaryFun, SortedRange!(string[], "a < b"))) p)) * * * * * * * * * func = declare i64 @_D3std9algorithm9iteration164__T10UniqResultS793std10functional51__T9binaryFunVAyaa6_61203d3d2062VAyaa1_61VAyaa1_62Z9binaryFunTS3std5range39__T11SortedRangeTAAyaVAyaa5_61203c2062Z11SortedRangeZ10UniqResult9__xtoHashFNbNeKxS3std9algorithm9iteration164__T10UniqResultS793std10functional51__T9binaryFunVAyaa6_61203d3d2062VAyaa1_61VAyaa1_62Z9binaryFunTS3std5range39__T11SortedRangeTAAyaVAyaa5_61203c2062Z11SortedRangeZ10UniqResultZm(%"std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], \22a < b\22)).UniqResult"*) * * * * * * * DtoFunctionType(bool(ref const(UniqResult!(binaryFun, SortedRange!(string[], "a < b"))) p, ref const(UniqResult!(binaryFun, SortedRange!(string[], "a < b"))) q)) * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * Final function type: i1 (%"std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], \22a < b\22)).UniqResult"*, %"std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], \22a < b\22)).UniqResult"*) * * * * * * * DtoResolveFunction(std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], "a < b")).UniqResult.__xopEquals): * * * * * * * * DtoDeclareFunction(std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], "a < b")).UniqResult.__xopEquals): * * * * * * * * * DtoFunctionType(bool(ref const(UniqResult!(binaryFun, SortedRange!(string[], "a < b"))) p, ref const(UniqResult!(binaryFun, SortedRange!(string[], "a < b"))) q)) * * * * * * * * * func = declare i1 @_D3std9algorithm9iteration164__T10UniqResultS793std10functional51__T9binaryFunVAyaa6_61203d3d2062VAyaa1_61VAyaa1_62Z9binaryFunTS3std5range39__T11SortedRangeTAAyaVAyaa5_61203c2062Z11SortedRangeZ10UniqResult11__xopEqualsFKxS3std9algorithm9iteration164__T10UniqResultS793std10functional51__T9binaryFunVAyaa6_61203d3d2062VAyaa1_61VAyaa1_62Z9binaryFunTS3std5range39__T11SortedRangeTAAyaVAyaa5_61203c2062Z11SortedRangeZ10UniqResultKxS3std9algorithm9iteration164__T10UniqResultS793std10functional51__T9binaryFunVAyaa6_61203d3d2062VAyaa1_61VAyaa1_62Z9binaryFunTS3std5range39__T11SortedRangeTAAyaVAyaa5_61203c2062Z11SortedRangeZ10UniqResultZb(%"std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], \22a < b\22)).UniqResult"*, %"std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], \22a < b\22)).UniqResult"*) * * * * * * * DtoTypeInfoOf(type = 'ulong', base='1') * * * * * * * * Type::getTypeInfo(): ulong * * * * * * * * TypeInfoDeclaration::codegen(typeid(ulong)) * * * * * * * DtoTypeInfoOf(type = 'void*', base='1') * * * * * * * * Type::getTypeInfo(): void* * * * * * * * * TypeInfoDeclaration::codegen(typeid(void*)) * * * * * * * IntegerExp::toConstElem: cast(void*)305419896LU @ void* * * * * * * * * pointer * * * * TypeInfoDeclaration::codegen(typeid(UniqResult!(binaryFun, SortedRange!(string[], "a < b")))) * * * DtoDefineFunction(std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], "a < b")).UniqResult.__xopEquals): * * * * Doing function body for: __xopEquals * * * * DtoCreateNestedContext for __xopEquals * * * * * DtoCreateNestedContextType for std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], "a < b")).UniqResult.__xopEquals * * * * CompoundStatement::toIR(): * * * * * ReturnStatement::toIR(): * * * * * * EqualExp::toElem: p._input._input == q._input._input @ bool * * * * * * * DotVarExp::toElem: p._input._input @ const(string[]) * * * * * * * * DotVarExp::toElem: p._input @ const(SortedRange!(string[], "a < b")) * * * * * * * * * VarExp::toElem: p @ const(UniqResult!(binaryFun, SortedRange!(string[], "a < b"))) * * * * * * * * * * DtoSymbolAddress ('p' of type 'const(UniqResult!(binaryFun, SortedRange!(string[], "a < b")))') * * * * * * * * * * * function param * * * * * * * * * * * type: const(UniqResult!(binaryFun, SortedRange!(string[], "a < b"))) * * * * * * * * * Indexing aggregate field std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], "a < b")).UniqResult._input: * * * * * * * * * * Value: %1 = getelementptr %"std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], \22a < b\22)).UniqResult", %"std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], \22a < b\22)).UniqResult"* %p_arg, i32 0, i32 0 * * * * * * * * Indexing aggregate field std.range.SortedRange!(string[], "a < b").SortedRange._input: * * * * * * * * * Value: %2 = getelementptr %"std.range.SortedRange!(string[], \22a < b\22).SortedRange", %"std.range.SortedRange!(string[], \22a < b\22).SortedRange"* %1, i32 0, i32 0 * * * * * * * DotVarExp::toElem: q._input._input @ const(string[]) * * * * * * * * DotVarExp::toElem: q._input @ const(SortedRange!(string[], "a < b")) * * * * * * * * * VarExp::toElem: q @ const(UniqResult!(binaryFun, SortedRange!(string[], "a < b"))) * * * * * * * * * * DtoSymbolAddress ('q' of type 'const(UniqResult!(binaryFun, SortedRange!(string[], "a < b")))') * * * * * * * * * * * function param * * * * * * * * * * * type: const(UniqResult!(binaryFun, SortedRange!(string[], "a < b"))) * * * * * * * * * Indexing aggregate field std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], "a < b")).UniqResult._input: * * * * * * * * * * Value: %3 = getelementptr %"std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], \22a < b\22)).UniqResult", %"std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], \22a < b\22)).UniqResult"* %q_arg, i32 0, i32 0 * * * * * * * * Indexing aggregate field std.range.SortedRange!(string[], "a < b").SortedRange._input: * * * * * * * * * Value: %4 = getelementptr %"std.range.SortedRange!(string[], \22a < b\22).SortedRange", %"std.range.SortedRange!(string[], \22a < b\22).SortedRange"* %3, i32 0, i32 0 * * * * * * * static or dynamic array * * * * * * * comparing arrays * * * * * * * casting to dynamic arrays * * * * * * * DtoCastArray * * * * * * * * from array or sarray * * * * * * * * to array * * * * * * * * DtoArrayLen * * * * * * * * DtoArrayPtr * * * * * * * * isslice * * * * * * * DtoCastArray * * * * * * * * from array or sarray * * * * * * * * to array * * * * * * * * DtoArrayLen * * * * * * * * DtoArrayPtr * * * * * * * * isslice * * * * * * * DtoTypeInfoOf(type = 'const(string)[]', base='1') * * * * * * * * Type::getTypeInfo(): const(string)[] * * * * * * * * TypeInfoDeclaration::codegen(typeid(const(string)[])) * * * * * * return value is '0x12bdc860' * * * DtoDefineFunction(std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], "a < b")).UniqResult.__xtoHash): * * * * Doing function body for: __xtoHash * * * * DtoCreateNestedContext for __xtoHash * * * * * DtoCreateNestedContextType for std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], "a < b")).UniqResult.__xtoHash * * * * CompoundStatement::toIR(): * * * * * CompoundStatement::toIR(): * * * * * * ExpStatement::toIR(): * * * * * * * DeclarationExp::toElem: ulong h = 0LU; | T=void * * * * * * * * DtoDeclarationExp: h * * * * * * * * * VarDeclaration * * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * * llvm value for decl: %h = alloca i64, align 8 * * * * * * * * * * expression initializer * * * * * * * * * * AssignExp::toElem: h = 0LU | (ulong)(ulong = ulong) * * * * * * * * * * * VarExp::toElem: h @ ulong * * * * * * * * * * * * DtoSymbolAddress ('h' of type 'ulong') * * * * * * * * * * * * * a normal variable * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * lhs: %h = alloca i64, align 8 * * * * * * * * * * * * rhs: i64 0 * * * * * * UnrolledLoopStatement::toIR(): * * * * * * * ScopeStatement::toIR(): * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * ExpStatement::toIR(): * * * * * * * * * * DeclarationExp::toElem: enum ulong i = 0LU; | T=void * * * * * * * * * * * DtoDeclarationExp: i * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * Manifest constant, nothing to do. * * * * * * * * * ExpStatement::toIR(): * * * * * * * * * * DeclarationExp::toElem: alias T = const(SortedRange!(string[], "a < b")); | T=void * * * * * * * * * * * DtoDeclarationExp: T * * * * * * * * * * * * Ignoring Symbol: alias * * * * * * * * * ExpStatement::toIR(): * * * * * * * * * * AddAssignExp::toElem: h += typeid(const(SortedRange!(string[], "a < b"))).getHash(cast(const(void*))&p._input) @ ulong * * * * * * * * * * * Caching l-value of h += typeid(const(SortedRange!(string[], "a < b"))).getHash(cast(const(void*))&p._input) => h * * * * * * * * * * * * VarExp::toElem: h @ ulong * * * * * * * * * * * * * DtoSymbolAddress ('h' of type 'ulong') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * AddExp::toElem: h + typeid(const(SortedRange!(string[], "a < b"))).getHash(cast(const(void*))&p._input) @ ulong * * * * * * * * * * * * VarExp::toElem: h @ ulong * * * * * * * * * * * * CallExp::toElem: typeid(const(SortedRange!(string[], "a < b"))).getHash(cast(const(void*))&p._input) @ ulong * * * * * * * * * * * * * DotVarExp::toElem: typeid(const(SortedRange!(string[], "a < b"))).getHash @ const nothrow @trusted ulong(const(void*) p) * * * * * * * * * * * * * * SymOffExp::toElem: typeid(const(SortedRange!(string[], "a < b"))) @ object.TypeInfo * * * * * * * * * * * * * * * DtoSymbolAddress ('typeid(const(SortedRange!(string[], "a < b")))' of type 'object.TypeInfo_Const') * * * * * * * * * * * * * * * * TypeInfoDeclaration * * * * * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(const(SortedRange!(string[], "a < b")))) * * * * * * * * * * * * * * * * * type = 'const(SortedRange!(string[], "a < b"))' * * * * * * * * * * * * * * * * * typeinfo mangle: _D75TypeInfo_xS3std5range39__T11SortedRangeTAAyaVAyaa5_61203c2062Z11SortedRange6__initZ * * * * * * * * * * * * * * * * * TypeInfoConstDeclaration::llvmDefine() typeid(const(SortedRange!(string[], "a < b"))) * * * * * * * * * * * * * * * * * * DtoTypeInfoOf(type = 'SortedRange!(string[], "a < b")', base='1') * * * * * * * * * * * * * * * * * * * Type::getTypeInfo(): SortedRange!(string[], "a < b") * * * * * * * * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(SortedRange!(string[], "a < b"))) * * * * * * * * * * * * * * * Casting from 'TypeInfo_Const*' to 'object.TypeInfo' * * * * * * * * * * * * * * * * src: %object.TypeInfo_Const* bitcast (%"typeid(const(SortedRange!(string[], \22a < b\22)))"* @_D75TypeInfo_xS3std5range39__T11SortedRangeTAAyaVAyaa5_61203c2062Z11SortedRange6__initZ to %object.TypeInfo_Const*) * * * * * * * * * * * * * * * * to type: %object.TypeInfo* * * * * * * * * * * * * * * vthis: %object.TypeInfo* bitcast (%"typeid(const(SortedRange!(string[], \22a < b\22)))"* @_D75TypeInfo_xS3std5range39__T11SortedRangeTAAyaVAyaa5_61203c2062Z11SortedRange6__initZ to %object.TypeInfo*) * * * * * * * * * * * * * * funcval: %3 = load i64 (%object.TypeInfo*, i8*)*, i64 (%object.TypeInfo*, i8*)** %"typeid(const(SortedRange!(string[], \22a < b\22))).getHash@vtbl", align 8 * * * * * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * * * * * DtoFunctionType(const nothrow @trusted ulong(const(void*) p)) * * * * * * * * * * * * * * funcval casted: %"typeid(const(SortedRange!(string[], \22a < b\22))).getHash" = load i64 (%object.TypeInfo*, i8*)*, i64 (%object.TypeInfo*, i8*)** %"typeid(const(SortedRange!(string[], \22a < b\22))).getHash@vtbl", align 8 * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * %object.TypeInfo* bitcast (%"typeid(const(SortedRange!(string[], \22a < b\22)))"* @_D75TypeInfo_xS3std5range39__T11SortedRangeTAAyaVAyaa5_61203c2062Z11SortedRange6__initZ to %object.TypeInfo*) * * * * * * * * * * * * * * Function type: const nothrow @trusted ulong(const(void*) p) * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * CastExp::toElem: cast(const(void*))&p._input @ const(void*) * * * * * * * * * * * * * * * * AddrExp::toElem: &p._input @ const(SortedRange!(string[], "a < b"))* * * * * * * * * * * * * * * * * * DotVarExp::toElem: p._input @ const(SortedRange!(string[], "a < b")) * * * * * * * * * * * * * * * * * * VarExp::toElem: p @ const(UniqResult!(binaryFun, SortedRange!(string[], "a < b"))) * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('p' of type 'const(UniqResult!(binaryFun, SortedRange!(string[], "a < b")))') * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * type: const(UniqResult!(binaryFun, SortedRange!(string[], "a < b"))) * * * * * * * * * * * * * * * * * * Indexing aggregate field std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], "a < b")).UniqResult._input: * * * * * * * * * * * * * * * * * * * Value: %3 = getelementptr %"std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], \22a < b\22)).UniqResult", %"std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], \22a < b\22)).UniqResult"* %p_arg, i32 0, i32 0 * * * * * * * * * * * * * * * * * is nothing special * * * * * * * * * * * * * * * * * lval: %3 = getelementptr %"std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], \22a < b\22)).UniqResult", %"std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], \22a < b\22)).UniqResult"* %p_arg, i32 0, i32 0 * * * * * * * * * * * * * * * * Casting from 'const(SortedRange!(string[], "a < b"))*' to 'const(void*)' * * * * * * * * * * * * * * * * * src: %3 = getelementptr %"std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], \22a < b\22)).UniqResult", %"std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], \22a < b\22)).UniqResult"* %p_arg, i32 0, i32 0 * * * * * * * * * * * * * * * * * to type: i8* * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * lhs: %h = alloca i64, align 8 * * * * * * * * * * * * rhs: %7 = add i64 %6, %5 * * * * * * ReturnStatement::toIR(): * * * * * * * VarExp::toElem: h @ ulong * * * * * * * * DtoSymbolAddress ('h' of type 'ulong') * * * * * * * * * a normal variable * * * * * * * return value is '0x12be18b8' * TemplateInstance::codegen: 'std.range.primitives.ElementType!(SortedRange!(string[], "a < b"))' * * Ignoring Dsymbol::codegen for std.range.primitives.ElementType!(SortedRange!(string[], "a < b")).ElementType * TemplateInstance::codegen: 'std.range.primitives.isBidirectionalRange!(SortedRange!(string[], "a < b"))' * * VarDeclaration::codegen(): 'std.range.primitives.isBidirectionalRange!(SortedRange!(string[], "a < b")).isBidirectionalRange' * * * DtoResolveVariable(std.range.primitives.isBidirectionalRange!(SortedRange!(string[], "a < b")).isBidirectionalRange) * TemplateInstance::codegen: 'std.range.primitives.isForwardRange!(SortedRange!(string[], "a < b"))' * * VarDeclaration::codegen(): 'std.range.primitives.isForwardRange!(SortedRange!(string[], "a < b")).isForwardRange' * * * DtoResolveVariable(std.range.primitives.isForwardRange!(SortedRange!(string[], "a < b")).isForwardRange) * TemplateInstance::codegen: 'std.range.primitives.isInfinite!(SortedRange!(string[], "a < b"))' * * VarDeclaration::codegen(): 'std.range.primitives.isInfinite!(SortedRange!(string[], "a < b")).isInfinite' * * * DtoResolveVariable(std.range.primitives.isInfinite!(SortedRange!(string[], "a < b")).isInfinite) * TemplateInstance::codegen: 'object.RTInfo!(UniqResult!(binaryFun, SortedRange!(string[], "a < b")))' * * VarDeclaration::codegen(): 'object.RTInfo!(UniqResult!(binaryFun, SortedRange!(string[], "a < b"))).RTInfo' * * * DtoResolveVariable(object.RTInfo!(UniqResult!(binaryFun, SortedRange!(string[], "a < b"))).RTInfo) * TypeInfoDeclaration::codegen(typeid(const(SortedRange!(string[], "a < b")))) * TemplateInstance::codegen: 'std.format.formattedWrite!(LockingTextWriter, char, string, const(char), const(ulong))' * * DtoDefineFunction(std.format.formattedWrite!(LockingTextWriter, char, string, const(char), const(ulong)).formattedWrite): /usr/include/dlang/ldc/std/format.d(420) * * * DtoFunctionType(@safe uint(LockingTextWriter w, const(char[]) fmt, string _param_2, const(char) _param_3, const(ulong) _param_4)) * * * * x86-64 ABI: Transforming return type * * * * x86-64 ABI: Transforming argument types * * * * Final function type: i32 (i64, i8, { i64, i8* }, { i64, i8* }, %std.stdio.File.LockingTextWriter*) * * * DtoResolveFunction(std.format.formattedWrite!(LockingTextWriter, char, string, const(char), const(ulong)).formattedWrite): /usr/include/dlang/ldc/std/format.d(420) * * * * DtoDeclareFunction(std.format.formattedWrite!(LockingTextWriter, char, string, const(char), const(ulong)).formattedWrite): /usr/include/dlang/ldc/std/format.d(420) * * * * * DtoFunctionType(@safe uint(LockingTextWriter w, const(char[]) fmt, string _param_2, const(char) _param_3, const(ulong) _param_4)) * * * * * func = declare i32 @_D3std6format68__T14formattedWriteTS3std5stdio4File17LockingTextWriterTaTAyaTxaTxmZ14formattedWriteFNfS3std5stdio4File17LockingTextWriterxAaAyaxaxmZk(i64, i8, { i64, i8* }, { i64, i8* }, %std.stdio.File.LockingTextWriter*) * * * Doing function body for: formattedWrite * * * DtoCreateNestedContext for formattedWrite * * * * DtoCreateNestedContextType for std.format.formattedWrite!(LockingTextWriter, char, string, const(char), const(ulong)).formattedWrite * * * * * has nested frame * * * * * Function formattedWrite has depth 0 * * * * * Nested var 'spec' of type %"std.format.FormatSpec!char.FormatSpec" = type { i32, i32, i8, i8, i8, i8, [4 x i8], { i64, i8* }, { i64, i8* }, { i64, i8* } } * * * * * frameType = %nest.formattedWrite.10 = type { %"std.format.FormatSpec!char.FormatSpec" } * * * * nested var: spec * * * TryFinallyStatement::toIR(): * * * * ExpStatement::toIR(): * * * * * CallExp::toElem: w.~this() @ void * * * * * * DotVarExp::toElem: w.~this @ @trusted void() * * * * * * * VarExp::toElem: w @ LockingTextWriter * * * * * * * * DtoSymbolAddress ('w' of type 'LockingTextWriter') * * * * * * * * * function param * * * * * * * * * type: LockingTextWriter * * * * * * DtoCallFunction() * * * * * * * doing normal arguments * * * * * * * Arguments so far: (1) * * * * * * * * %std.stdio.File.LockingTextWriter* %w_arg * * * * * * * Function type: @trusted void() * * * * CompoundStatement::toIR(): * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(421) * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(424) * * * * * * * DeclarationExp::toElem: alias FPfmt = void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe; | T=void * * * * * * * * DtoDeclarationExp: FPfmt * * * * * * * * * Ignoring Symbol: alias * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(426) * * * * * * * DeclarationExp::toElem: FormatSpec!char spec = spec = FormatSpec , spec.this(fmt); | T=void * * * * * * * * DtoDeclarationExp: spec * * * * * * * * * VarDeclaration * * * * * * * * * DtoVarDeclaration(vdtype = FormatSpec!char) * * * * * * * * * * has nestedref set (referenced by nested function/delegate) * * * * * * * * * * llvm value for decl: %spec = getelementptr %nest.formattedWrite.10, %nest.formattedWrite.10* %.frame, i32 0, i32 0 * * * * * * * * * * expression initializer * * * * * * * * * * CommaExp::toElem: spec = FormatSpec , spec.this(fmt) @ FormatSpec!char * * * * * * * * * * * AssignExp::toElem: spec = FormatSpec | (FormatSpec!char)(FormatSpec!char = FormatSpec!char) * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(426) * * * * * * * * * * * * VarExp::toElem: FormatSpec @ FormatSpec!char * * * * * * * * * * * * * DtoSymbolAddress ('FormatSpec' of type 'FormatSpec!char') * * * * * * * * * * * * * * Sym: type=FormatSpec!char * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * CallExp::toElem: spec.this(fmt) @ FormatSpec!char * * * * * * * * * * * * DotVarExp::toElem: spec.this @ pure nothrow @nogc ref @safe FormatSpec!char(const(char[]) fmt) * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(426) * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * %spec = getelementptr %nest.formattedWrite.10, %nest.formattedWrite.10* %.frame, i32 0, i32 0 * * * * * * * * * * * * * Function type: pure nothrow @nogc ref @safe FormatSpec!char(const(char[]) fmt) * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * VarExp::toElem: fmt @ const(char[]) * * * * * * * * * * * * * * * DtoSymbolAddress ('fmt' of type 'const(char[])') * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * type: const(char[]) * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(428) * * * * * * * DeclarationExp::toElem: void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe[3] funs = null; | T=void * * * * * * * * DtoDeclarationExp: funs * * * * * * * * * VarDeclaration * * * * * * * * * DtoVarDeclaration(vdtype = void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe[3]) * * * * * * * * * * Building type: void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe[3] * * * * * * * * * * * Building type: void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe * * * * * * * * * * * * Building type: pure nothrow @safe void(LockingTextWriter, const(void)*, ref FormatSpec!char) * * * * * * * * * * * * * DtoFunctionType(pure nothrow @safe void(LockingTextWriter, const(void)*, ref FormatSpec!char)) * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * Final function type: void (%"std.format.FormatSpec!char.FormatSpec"*, i8*, %std.stdio.File.LockingTextWriter*) * * * * * * * * * * llvm value for decl: %funs = alloca [3 x void (%"std.format.FormatSpec!char.FormatSpec"*, i8*, %std.stdio.File.LockingTextWriter*)*], align 8 * * * * * * * * * * expression initializer * * * * * * * * * * AssignExp::toElem: funs[] = null | (void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe[])(void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe[] = void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe) * * * * * * * * * * * performing static array literal assignment * * * * * * * * * * * SliceExp::toElem: funs[] @ void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe[] * * * * * * * * * * * * VarExp::toElem: funs @ void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe[3] * * * * * * * * * * * * * DtoSymbolAddress ('funs' of type 'void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe[3]') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * NullExp::toElem(type=void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe): null * * * * * * * * * * * * NullExp::toConstElem(type=void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe): null * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * DtoArrayInit * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(429) * * * * * * * DeclarationExp::toElem: const(void)*[3] argsAddresses = null; | T=void * * * * * * * * DtoDeclarationExp: argsAddresses * * * * * * * * * VarDeclaration * * * * * * * * * DtoVarDeclaration(vdtype = const(void)*[3]) * * * * * * * * * * Building type: const(void)*[3] * * * * * * * * * * llvm value for decl: %argsAddresses = alloca [3 x i8*], align 8 * * * * * * * * * * expression initializer * * * * * * * * * * AssignExp::toElem: argsAddresses[] = null | (const(void)*[])(const(void)*[] = const(void)*) * * * * * * * * * * * performing static array literal assignment * * * * * * * * * * * SliceExp::toElem: argsAddresses[] @ const(void)*[] * * * * * * * * * * * * VarExp::toElem: argsAddresses @ const(void)*[3] * * * * * * * * * * * * * DtoSymbolAddress ('argsAddresses' of type 'const(void)*[3]') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * NullExp::toElem(type=const(void)*): null * * * * * * * * * * * * NullExp::toConstElem(type=const(void)*): null * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * DtoArrayInit * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(430) * * * * * * * NotExp::toElem: !__ctfe @ bool * * * * * * * * VarExp::toElem: __ctfe @ bool * * * * * * * * * DtoSymbolAddress ('__ctfe' of type 'bool') * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(431) * * * * * * * * UnrolledLoopStatement::toIR(): /usr/include/dlang/ldc/std/format.d(432) * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(432) * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(432) * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(432) * * * * * * * * * * * * DeclarationExp::toElem: enum ulong i = 0LU; | T=void * * * * * * * * * * * * * DtoDeclarationExp: i * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * Manifest constant, nothing to do. * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(432) * * * * * * * * * * * * DeclarationExp::toElem: alias Arg = string; | T=void * * * * * * * * * * * * * DtoDeclarationExp: Arg * * * * * * * * * * * * * * Ignoring Symbol: alias * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(434) * * * * * * * * * * * * AssignExp::toElem: funs[0] = (*() => & formatGeneric)() | (void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe)(void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe = void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe) * * * * * * * * * * * * * IndexExp::toElem: funs[0] @ void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe * * * * * * * * * * * * * * VarExp::toElem: funs @ void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe[3] * * * * * * * * * * * * * * * DtoSymbolAddress ('funs' of type 'void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe[3]') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * CallExp::toElem: (*() => & formatGeneric)() @ void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe * * * * * * * * * * * * * * PtrExp::toElem: *() => & formatGeneric @ pure nothrow @nogc @trusted void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe() * * * * * * * * * * * * * * * FuncExp::toElem: __lambda7 @ void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe function() pure nothrow @nogc @trusted * * * * * * * * * * * * * * * * kind = function * * * * * * * * * * * * * * * * DtoDefineFunction(std.format.formattedWrite!(LockingTextWriter, char, string, const(char), const(ulong)).formattedWrite.__lambda7): /usr/include/dlang/ldc/std/format.d(434) * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe()) * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * Final function type: void (%"std.format.FormatSpec!char.FormatSpec"*, i8*, %std.stdio.File.LockingTextWriter*)* () * * * * * * * * * * * * * * * * * DtoResolveFunction(std.format.formattedWrite!(LockingTextWriter, char, string, const(char), const(ulong)).formattedWrite.__lambda7): /usr/include/dlang/ldc/std/format.d(434) * * * * * * * * * * * * * * * * * * DtoDeclareFunction(std.format.formattedWrite!(LockingTextWriter, char, string, const(char), const(ulong)).formattedWrite.__lambda7): /usr/include/dlang/ldc/std/format.d(434) * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe()) * * * * * * * * * * * * * * * * * * * func = declare void (%"std.format.FormatSpec!char.FormatSpec"*, i8*, %std.stdio.File.LockingTextWriter*)* @_D3std6format68__T14formattedWriteTS3std5stdio4File17LockingTextWriterTaTAyaTxaTxmZ14formattedWriteFS3std5stdio4File17LockingTextWriterxAaAyaxaxmZ9__lambda7FNaNbNiNeZPFNaNbNfS3std5stdio4File17LockingTextWriterPxvKS3std6format18__T10FormatSpecTaZ10FormatSpecZv() * * * * * * * * * * * * * * * * * Doing function body for: __lambda7 * * * * * * * * * * * * * * * * * DtoCreateNestedContext for __lambda7 * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for std.format.formattedWrite!(LockingTextWriter, char, string, const(char), const(ulong)).formattedWrite.__lambda7 * * * * * * * * * * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * * * * * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/format.d(434) * * * * * * * * * * * * * * * * * * * SymOffExp::toElem: & formatGeneric @ void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('formatGeneric' of type '@system void(LockingTextWriter w, const(void)* arg, ref FormatSpec!char f)') * * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * * Casting from 'void function(LockingTextWriter w, const(void)* arg, ref FormatSpec!char f) @system' to 'void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe' * * * * * * * * * * * * * * * * * * * * * src: ; Function Attrs: uwtable define weak_odr void @_D3std6format61__T13formatGenericTS3std5stdio4File17LockingTextWriterTAyaTaZ13formatGenericFS3std5stdio4File17LockingTextWriterPxvKS3std6format18__T10FormatSpecTaZ10FormatSpecZv(%"std.format.FormatSpec!char.FormatSpec"* %f_arg, i8* %arg_arg, %std.stdio.File.LockingTextWriter* byval %w_arg) #0 comdat personality i32 (i32, i32, i64, i8*, i8*)* @_d_eh_personality { %arg = alloca i8*, align 8 %__copytmp3343 = alloca %std.stdio.File.LockingTextWriter, align 8 %eh.ptr = alloca i8* %eh.selector = alloca i32 %branchsel.finally = alloca i32 store i8* %arg_arg, i8** %arg %1 = bitcast %std.stdio.File.LockingTextWriter* %__copytmp3343 to i8* %2 = bitcast %std.stdio.File.LockingTextWriter* %w_arg to i8* call void @llvm.memcpy.p0i8.p0i8.i64(i8* %1, i8* %2, i64 24, i32 1, i1 false) invoke void @_D3std5stdio4File17LockingTextWriter10__postblitMFNeZv(%std.stdio.File.LockingTextWriter* %__copytmp3343) to label %postinvoke unwind label %landingPad finally: ; preds = %postinvoke1, %landingPad call void @_D3std5stdio4File17LockingTextWriter6__dtorMFNeZv(%std.stdio.File.LockingTextWriter* %w_arg) %3 = load i32, i32* %branchsel.finally switch i32 %3, label %unwind.resume [ i32 1, label %try.success ] postinvoke: ; preds = %0 %4 = load i8*, i8** %arg %5 = bitcast i8* %4 to { i64, i8* }* %6 = load { i64, i8* }, { i64, i8* }* %5 invoke void @_D3std6format59__T11formatValueTS3std5stdio4File17LockingTextWriterTAyaTaZ11formatValueFNfS3std5stdio4File17LockingTextWriterAyaKS3std6format18__T10FormatSpecTaZ10FormatSpecZv(%"std.format.FormatSpec!char.FormatSpec"* %f_arg, { i64, i8* } %6, %std.stdio.File.LockingTextWriter* byval %__copytmp3343) to label %postinvoke1 unwind label %landingPad postinvoke1: ; preds = %postinvoke store i32 1, i32* %branchsel.finally br label %finally landingPad: ; preds = %postinvoke, %0 %7 = landingpad { i8*, i32 } cleanup %8 = extractvalue { i8*, i32 } %7, 0 store i8* %8, i8** %eh.ptr %9 = extractvalue { i8*, i32 } %7, 1 store i32 %9, i32* %eh.selector store i32 0, i32* %branchsel.finally br label %finally unwind.resume: ; preds = %finally %10 = load i8*, i8** %eh.ptr call void @_d_eh_resume_unwind(i8* %10) unreachable try.success: ; preds = %finally ret void } * * * * * * * * * * * * * * * * * * * * * to type: void (%"std.format.FormatSpec!char.FormatSpec"*, i8*, %std.stdio.File.LockingTextWriter*)* * * * * * * * * * * * * * * * * * * * return value is '0x127c0f18' * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * Building type: pure nothrow @nogc @trusted void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe() * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe()) * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * Final function type: void (%"std.format.FormatSpec!char.FormatSpec"*, i8*, %std.stdio.File.LockingTextWriter*)* () * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @trusted void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe() * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * lhs: %14 = getelementptr [3 x void (%"std.format.FormatSpec!char.FormatSpec"*, i8*, %std.stdio.File.LockingTextWriter*)*], [3 x void (%"std.format.FormatSpec!char.FormatSpec"*, i8*, %std.stdio.File.LockingTextWriter*)*]* %funs, i32 0, i64 0 * * * * * * * * * * * * * * rhs: %15 = invoke void (%"std.format.FormatSpec!char.FormatSpec"*, i8*, %std.stdio.File.LockingTextWriter*)* @_D3std6format68__T14formattedWriteTS3std5stdio4File17LockingTextWriterTaTAyaTxaTxmZ14formattedWriteFS3std5stdio4File17LockingTextWriterxAaAyaxaxmZ9__lambda7FNaNbNiNeZPFNaNbNfS3std5stdio4File17LockingTextWriterPxvKS3std6format18__T10FormatSpecTaZ10FormatSpecZv() to label %postinvoke4 unwind label %landingPad * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(437) * * * * * * * * * * * * AssignExp::toElem: argsAddresses[0] = (*(ref string arg) => cast(const(void*))&arg)(_param_2) | (const(void)*)(const(void)* = const(void)*) * * * * * * * * * * * * * IndexExp::toElem: argsAddresses[0] @ const(void)* * * * * * * * * * * * * * * VarExp::toElem: argsAddresses @ const(void)*[3] * * * * * * * * * * * * * * * DtoSymbolAddress ('argsAddresses' of type 'const(void)*[3]') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * CallExp::toElem: (*(ref string arg) => cast(const(void*))&arg)(_param_2) @ const(void)* * * * * * * * * * * * * * * PtrExp::toElem: *(ref string arg) => cast(const(void*))&arg @ pure nothrow @nogc @trusted const(void*)(ref string arg) * * * * * * * * * * * * * * * FuncExp::toElem: __lambda8 @ const(void*) function(ref string arg) pure nothrow @nogc @trusted * * * * * * * * * * * * * * * * kind = function * * * * * * * * * * * * * * * * DtoDefineFunction(std.format.formattedWrite!(LockingTextWriter, char, string, const(char), const(ulong)).formattedWrite.__lambda8): /usr/include/dlang/ldc/std/format.d(437) * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted const(void*)(ref string arg)) * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * Final function type: i8* ({ i64, i8* }*) * * * * * * * * * * * * * * * * * DtoResolveFunction(std.format.formattedWrite!(LockingTextWriter, char, string, const(char), const(ulong)).formattedWrite.__lambda8): /usr/include/dlang/ldc/std/format.d(437) * * * * * * * * * * * * * * * * * * DtoDeclareFunction(std.format.formattedWrite!(LockingTextWriter, char, string, const(char), const(ulong)).formattedWrite.__lambda8): /usr/include/dlang/ldc/std/format.d(437) * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted const(void*)(ref string arg)) * * * * * * * * * * * * * * * * * * * func = declare i8* @_D3std6format68__T14formattedWriteTS3std5stdio4File17LockingTextWriterTaTAyaTxaTxmZ14formattedWriteFS3std5stdio4File17LockingTextWriterxAaAyaxaxmZ18__T9__lambda8TAyaZ9__lambda8FNaNbNiNeKAyaZxPv({ i64, i8* }*) * * * * * * * * * * * * * * * * * Doing function body for: __lambda8 * * * * * * * * * * * * * * * * * DtoCreateNestedContext for __lambda8 * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for std.format.formattedWrite!(LockingTextWriter, char, string, const(char), const(ulong)).formattedWrite.__lambda8 * * * * * * * * * * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * * * * * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/format.d(437) * * * * * * * * * * * * * * * * * * * CastExp::toElem: cast(const(void*))&arg @ const(void*) * * * * * * * * * * * * * * * * * * * * AddrExp::toElem: &arg @ string* * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: arg @ string * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('arg' of type 'string') * * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * * type: string * * * * * * * * * * * * * * * * * * * * * is nothing special * * * * * * * * * * * * * * * * * * * * * lval: { i64, i8* }* %arg_arg * * * * * * * * * * * * * * * * * * * * Casting from 'string*' to 'const(void*)' * * * * * * * * * * * * * * * * * * * * * src: { i64, i8* }* %arg_arg * * * * * * * * * * * * * * * * * * * * * to type: i8* * * * * * * * * * * * * * * * * * * * return value is '0x12bf2a68' * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * Building type: pure nothrow @nogc @trusted const(void*)(ref string arg) * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted const(void*)(ref string arg)) * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * Final function type: i8* ({ i64, i8* }*) * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @trusted const(void*)(ref string arg) * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * VarExp::toElem: _param_2 @ string * * * * * * * * * * * * * * * * * DtoSymbolAddress ('_param_2' of type 'string') * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * type: string * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * lhs: %10 = getelementptr [3 x i8*], [3 x i8*]* %argsAddresses, i32 0, i64 0 * * * * * * * * * * * * * * rhs: %11 = invoke i8* @_D3std6format68__T14formattedWriteTS3std5stdio4File17LockingTextWriterTaTAyaTxaTxmZ14formattedWriteFS3std5stdio4File17LockingTextWriterxAaAyaxaxmZ18__T9__lambda8TAyaZ9__lambda8FNaNbNiNeKAyaZxPv({ i64, i8* }* %_param_2) to label %postinvoke5 unwind label %landingPad * * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(440) * * * * * * * * * * * * IntegerExp::toElem: 0 @ int * * * * * * * * * * * * * IntegerExp::toConstElem: 0 @ int * * * * * * * * * * * * * * value = i32 0 * * * * * * * * * * * * if conditional: i32 0 * * * * * * * * * * * * Casting from 'int' to 'bool' * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(440) * * * * * * * * * * * * * CallExp::toElem: formatValue((LockingTextWriter __copytmp3426 = (__copytmp3426 = w).__postblit(); , __copytmp3426), _param_2, spec) @ void * * * * * * * * * * * * * * VarExp::toElem: formatValue @ @safe void(LockingTextWriter w, string obj, ref FormatSpec!char f) * * * * * * * * * * * * * * * DtoSymbolAddress ('formatValue' of type '@safe void(LockingTextWriter w, string obj, ref FormatSpec!char f)') * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * Function type: @safe void(LockingTextWriter w, string obj, ref FormatSpec!char f) * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * CommaExp::toElem: LockingTextWriter __copytmp3426 = (__copytmp3426 = w).__postblit(); , __copytmp3426 @ LockingTextWriter * * * * * * * * * * * * * * * * * DeclarationExp::toElem: LockingTextWriter __copytmp3426 = (__copytmp3426 = w).__postblit(); | T=void * * * * * * * * * * * * * * * * * * DtoDeclarationExp: __copytmp3426 * * * * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = LockingTextWriter) * * * * * * * * * * * * * * * * * * * * llvm value for decl: %__copytmp3426 = alloca %std.stdio.File.LockingTextWriter, align 8 * * * * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * * * * CallExp::toElem: (__copytmp3426 = w).__postblit() @ void * * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: (__copytmp3426 = w).__postblit @ @trusted void() * * * * * * * * * * * * * * * * * * * * * * AssignExp::toElem: __copytmp3426 = w | (LockingTextWriter)(LockingTextWriter = LockingTextWriter) * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: __copytmp3426 @ LockingTextWriter * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__copytmp3426' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: w @ LockingTextWriter * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * * * * type: LockingTextWriter * * * * * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * * * * * * %__copytmp3426 = alloca %std.stdio.File.LockingTextWriter, align 8 * * * * * * * * * * * * * * * * * * * * * * Function type: @trusted void() * * * * * * * * * * * * * * * * * VarExp::toElem: __copytmp3426 @ LockingTextWriter * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__copytmp3426' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * VarExp::toElem: _param_2 @ string * * * * * * * * * * * * * * * * * DtoSymbolAddress ('_param_2' of type 'string') * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * type: string * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(440) * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(432) * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(432) * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(432) * * * * * * * * * * * * DeclarationExp::toElem: enum ulong i = 1LU; | T=void * * * * * * * * * * * * * DtoDeclarationExp: i * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * Manifest constant, nothing to do. * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(432) * * * * * * * * * * * * DeclarationExp::toElem: alias Arg = const(char); | T=void * * * * * * * * * * * * * DtoDeclarationExp: Arg * * * * * * * * * * * * * * Ignoring Symbol: alias * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(434) * * * * * * * * * * * * AssignExp::toElem: funs[1] = (*() => & formatGeneric)() | (void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe)(void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe = void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe) * * * * * * * * * * * * * IndexExp::toElem: funs[1] @ void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe * * * * * * * * * * * * * * VarExp::toElem: funs @ void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe[3] * * * * * * * * * * * * * * * DtoSymbolAddress ('funs' of type 'void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe[3]') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * CallExp::toElem: (*() => & formatGeneric)() @ void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe * * * * * * * * * * * * * * PtrExp::toElem: *() => & formatGeneric @ pure nothrow @nogc @trusted void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe() * * * * * * * * * * * * * * * FuncExp::toElem: __lambda9 @ void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe function() pure nothrow @nogc @trusted * * * * * * * * * * * * * * * * kind = function * * * * * * * * * * * * * * * * DtoDefineFunction(std.format.formattedWrite!(LockingTextWriter, char, string, const(char), const(ulong)).formattedWrite.__lambda9): /usr/include/dlang/ldc/std/format.d(434) * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe()) * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * Final function type: void (%"std.format.FormatSpec!char.FormatSpec"*, i8*, %std.stdio.File.LockingTextWriter*)* () * * * * * * * * * * * * * * * * * DtoResolveFunction(std.format.formattedWrite!(LockingTextWriter, char, string, const(char), const(ulong)).formattedWrite.__lambda9): /usr/include/dlang/ldc/std/format.d(434) * * * * * * * * * * * * * * * * * * DtoDeclareFunction(std.format.formattedWrite!(LockingTextWriter, char, string, const(char), const(ulong)).formattedWrite.__lambda9): /usr/include/dlang/ldc/std/format.d(434) * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe()) * * * * * * * * * * * * * * * * * * * func = declare void (%"std.format.FormatSpec!char.FormatSpec"*, i8*, %std.stdio.File.LockingTextWriter*)* @_D3std6format68__T14formattedWriteTS3std5stdio4File17LockingTextWriterTaTAyaTxaTxmZ14formattedWriteFS3std5stdio4File17LockingTextWriterxAaAyaxaxmZ9__lambda9FNaNbNiNeZPFNaNbNfS3std5stdio4File17LockingTextWriterPxvKS3std6format18__T10FormatSpecTaZ10FormatSpecZv() * * * * * * * * * * * * * * * * * Doing function body for: __lambda9 * * * * * * * * * * * * * * * * * DtoCreateNestedContext for __lambda9 * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for std.format.formattedWrite!(LockingTextWriter, char, string, const(char), const(ulong)).formattedWrite.__lambda9 * * * * * * * * * * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * * * * * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/format.d(434) * * * * * * * * * * * * * * * * * * * SymOffExp::toElem: & formatGeneric @ void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('formatGeneric' of type '@safe void(LockingTextWriter w, const(void)* arg, ref FormatSpec!char f)') * * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(@safe void(LockingTextWriter w, const(void)* arg, ref FormatSpec!char f)) * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * * * Final function type: void (%"std.format.FormatSpec!char.FormatSpec"*, i8*, %std.stdio.File.LockingTextWriter*) * * * * * * * * * * * * * * * * * * * * * DtoResolveFunction(std.format.formatGeneric!(LockingTextWriter, const(char), char).formatGeneric): /usr/include/dlang/ldc/std/format.d(3455) * * * * * * * * * * * * * * * * * * * * * * DtoDeclareFunction(std.format.formatGeneric!(LockingTextWriter, const(char), char).formatGeneric): /usr/include/dlang/ldc/std/format.d(3455) * * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(@safe void(LockingTextWriter w, const(void)* arg, ref FormatSpec!char f)) * * * * * * * * * * * * * * * * * * * * * * * func = declare void @_D3std6format60__T13formatGenericTS3std5stdio4File17LockingTextWriterTxaTaZ13formatGenericFNfS3std5stdio4File17LockingTextWriterPxvKS3std6format18__T10FormatSpecTaZ10FormatSpecZv(%"std.format.FormatSpec!char.FormatSpec"*, i8*, %std.stdio.File.LockingTextWriter*) * * * * * * * * * * * * * * * * * * * * Casting from 'void function(LockingTextWriter w, const(void)* arg, ref FormatSpec!char f) @safe' to 'void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe' * * * * * * * * * * * * * * * * * * * * * src: declare void @_D3std6format60__T13formatGenericTS3std5stdio4File17LockingTextWriterTxaTaZ13formatGenericFNfS3std5stdio4File17LockingTextWriterPxvKS3std6format18__T10FormatSpecTaZ10FormatSpecZv(%"std.format.FormatSpec!char.FormatSpec"*, i8*, %std.stdio.File.LockingTextWriter* byval) * * * * * * * * * * * * * * * * * * * * * to type: void (%"std.format.FormatSpec!char.FormatSpec"*, i8*, %std.stdio.File.LockingTextWriter*)* * * * * * * * * * * * * * * * * * * * return value is '0x12bf9638' * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * Building type: pure nothrow @nogc @trusted void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe() * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe()) * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * Final function type: void (%"std.format.FormatSpec!char.FormatSpec"*, i8*, %std.stdio.File.LockingTextWriter*)* () * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @trusted void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe() * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * lhs: %19 = getelementptr [3 x void (%"std.format.FormatSpec!char.FormatSpec"*, i8*, %std.stdio.File.LockingTextWriter*)*], [3 x void (%"std.format.FormatSpec!char.FormatSpec"*, i8*, %std.stdio.File.LockingTextWriter*)*]* %funs, i32 0, i64 1 * * * * * * * * * * * * * * rhs: %20 = invoke void (%"std.format.FormatSpec!char.FormatSpec"*, i8*, %std.stdio.File.LockingTextWriter*)* @_D3std6format68__T14formattedWriteTS3std5stdio4File17LockingTextWriterTaTAyaTxaTxmZ14formattedWriteFS3std5stdio4File17LockingTextWriterxAaAyaxaxmZ9__lambda9FNaNbNiNeZPFNaNbNfS3std5stdio4File17LockingTextWriterPxvKS3std6format18__T10FormatSpecTaZ10FormatSpecZv() to label %postinvoke10 unwind label %landingPad * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(437) * * * * * * * * * * * * AssignExp::toElem: argsAddresses[1] = (*(ref const(char) arg) => cast(const(void*))&arg)(_param_3) | (const(void)*)(const(void)* = const(void)*) * * * * * * * * * * * * * IndexExp::toElem: argsAddresses[1] @ const(void)* * * * * * * * * * * * * * * VarExp::toElem: argsAddresses @ const(void)*[3] * * * * * * * * * * * * * * * DtoSymbolAddress ('argsAddresses' of type 'const(void)*[3]') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * CallExp::toElem: (*(ref const(char) arg) => cast(const(void*))&arg)(_param_3) @ const(void)* * * * * * * * * * * * * * * PtrExp::toElem: *(ref const(char) arg) => cast(const(void*))&arg @ pure nothrow @nogc @trusted const(void*)(ref const(char) arg) * * * * * * * * * * * * * * * FuncExp::toElem: __lambda10 @ const(void*) function(ref const(char) arg) pure nothrow @nogc @trusted * * * * * * * * * * * * * * * * kind = function * * * * * * * * * * * * * * * * DtoDefineFunction(std.format.formattedWrite!(LockingTextWriter, char, string, const(char), const(ulong)).formattedWrite.__lambda10): /usr/include/dlang/ldc/std/format.d(437) * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted const(void*)(ref const(char) arg)) * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * Final function type: i8* (i8*) * * * * * * * * * * * * * * * * * DtoResolveFunction(std.format.formattedWrite!(LockingTextWriter, char, string, const(char), const(ulong)).formattedWrite.__lambda10): /usr/include/dlang/ldc/std/format.d(437) * * * * * * * * * * * * * * * * * * DtoDeclareFunction(std.format.formattedWrite!(LockingTextWriter, char, string, const(char), const(ulong)).formattedWrite.__lambda10): /usr/include/dlang/ldc/std/format.d(437) * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted const(void*)(ref const(char) arg)) * * * * * * * * * * * * * * * * * * * func = declare i8* @_D3std6format68__T14formattedWriteTS3std5stdio4File17LockingTextWriterTaTAyaTxaTxmZ14formattedWriteFS3std5stdio4File17LockingTextWriterxAaAyaxaxmZ19__T10__lambda10TxaZ10__lambda10FNaNbNiNeKxaZxPv(i8*) * * * * * * * * * * * * * * * * * Doing function body for: __lambda10 * * * * * * * * * * * * * * * * * DtoCreateNestedContext for __lambda10 * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for std.format.formattedWrite!(LockingTextWriter, char, string, const(char), const(ulong)).formattedWrite.__lambda10 * * * * * * * * * * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * * * * * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/format.d(437) * * * * * * * * * * * * * * * * * * * CastExp::toElem: cast(const(void*))&arg @ const(void*) * * * * * * * * * * * * * * * * * * * * AddrExp::toElem: &arg @ const(char)* * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: arg @ const(char) * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('arg' of type 'const(char)') * * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * * type: const(char) * * * * * * * * * * * * * * * * * * * * * is nothing special * * * * * * * * * * * * * * * * * * * * * lval: i8* %arg_arg * * * * * * * * * * * * * * * * * * * * Casting from 'const(char)*' to 'const(void*)' * * * * * * * * * * * * * * * * * * * * * src: i8* %arg_arg * * * * * * * * * * * * * * * * * * * * * to type: i8* * * * * * * * * * * * * * * * * * * * return value is '0x12bff730' * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * Building type: pure nothrow @nogc @trusted const(void*)(ref const(char) arg) * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted const(void*)(ref const(char) arg)) * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * Final function type: i8* (i8*) * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @trusted const(void*)(ref const(char) arg) * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * VarExp::toElem: _param_3 @ const(char) * * * * * * * * * * * * * * * * * DtoSymbolAddress ('_param_3' of type 'const(char)') * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * type: const(char) * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * lhs: %13 = getelementptr [3 x i8*], [3 x i8*]* %argsAddresses, i32 0, i64 1 * * * * * * * * * * * * * * rhs: %14 = invoke i8* @_D3std6format68__T14formattedWriteTS3std5stdio4File17LockingTextWriterTaTAyaTxaTxmZ14formattedWriteFS3std5stdio4File17LockingTextWriterxAaAyaxaxmZ19__T10__lambda10TxaZ10__lambda10FNaNbNiNeKxaZxPv(i8* %_param_3) to label %postinvoke11 unwind label %landingPad * * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(440) * * * * * * * * * * * * IntegerExp::toElem: 0 @ int * * * * * * * * * * * * * IntegerExp::toConstElem: 0 @ int * * * * * * * * * * * * * * value = i32 0 * * * * * * * * * * * * if conditional: i32 0 * * * * * * * * * * * * Casting from 'int' to 'bool' * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(440) * * * * * * * * * * * * * CallExp::toElem: formatValue((LockingTextWriter __copytmp3438 = (__copytmp3438 = w).__postblit(); , __copytmp3438), _param_3, spec) @ void * * * * * * * * * * * * * * VarExp::toElem: formatValue @ @safe void(LockingTextWriter w, const(char) obj, ref FormatSpec!char f) * * * * * * * * * * * * * * * DtoSymbolAddress ('formatValue' of type '@safe void(LockingTextWriter w, const(char) obj, ref FormatSpec!char f)') * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * DtoFunctionType(@safe void(LockingTextWriter w, const(char) obj, ref FormatSpec!char f)) * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * Final function type: void (%"std.format.FormatSpec!char.FormatSpec"*, i8, %std.stdio.File.LockingTextWriter*) * * * * * * * * * * * * * * * * DtoResolveFunction(std.format.formatValue!(LockingTextWriter, const(char), char).formatValue): /usr/include/dlang/ldc/std/format.d(1905) * * * * * * * * * * * * * * * * * DtoDeclareFunction(std.format.formatValue!(LockingTextWriter, const(char), char).formatValue): /usr/include/dlang/ldc/std/format.d(1905) * * * * * * * * * * * * * * * * * * DtoFunctionType(@safe void(LockingTextWriter w, const(char) obj, ref FormatSpec!char f)) * * * * * * * * * * * * * * * * * * func = declare void @_D3std6format58__T11formatValueTS3std5stdio4File17LockingTextWriterTxaTaZ11formatValueFNfS3std5stdio4File17LockingTextWriterxaKS3std6format18__T10FormatSpecTaZ10FormatSpecZv(%"std.format.FormatSpec!char.FormatSpec"*, i8, %std.stdio.File.LockingTextWriter*) * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * Building type: @safe void(LockingTextWriter w, const(char) obj, ref FormatSpec!char f) * * * * * * * * * * * * * * * * DtoFunctionType(@safe void(LockingTextWriter w, const(char) obj, ref FormatSpec!char f)) * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * Final function type: void (%"std.format.FormatSpec!char.FormatSpec"*, i8, %std.stdio.File.LockingTextWriter*) * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * Function type: @safe void(LockingTextWriter w, const(char) obj, ref FormatSpec!char f) * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * CommaExp::toElem: LockingTextWriter __copytmp3438 = (__copytmp3438 = w).__postblit(); , __copytmp3438 @ LockingTextWriter * * * * * * * * * * * * * * * * * DeclarationExp::toElem: LockingTextWriter __copytmp3438 = (__copytmp3438 = w).__postblit(); | T=void * * * * * * * * * * * * * * * * * * DtoDeclarationExp: __copytmp3438 * * * * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = LockingTextWriter) * * * * * * * * * * * * * * * * * * * * llvm value for decl: %__copytmp3438 = alloca %std.stdio.File.LockingTextWriter, align 8 * * * * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * * * * CallExp::toElem: (__copytmp3438 = w).__postblit() @ void * * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: (__copytmp3438 = w).__postblit @ @trusted void() * * * * * * * * * * * * * * * * * * * * * * AssignExp::toElem: __copytmp3438 = w | (LockingTextWriter)(LockingTextWriter = LockingTextWriter) * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: __copytmp3438 @ LockingTextWriter * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__copytmp3438' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: w @ LockingTextWriter * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * * * * type: LockingTextWriter * * * * * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * * * * * * %__copytmp3438 = alloca %std.stdio.File.LockingTextWriter, align 8 * * * * * * * * * * * * * * * * * * * * * * Function type: @trusted void() * * * * * * * * * * * * * * * * * VarExp::toElem: __copytmp3438 @ LockingTextWriter * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__copytmp3438' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * VarExp::toElem: _param_3 @ const(char) * * * * * * * * * * * * * * * * * DtoSymbolAddress ('_param_3' of type 'const(char)') * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * type: const(char) * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(440) * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(432) * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(432) * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(432) * * * * * * * * * * * * DeclarationExp::toElem: enum ulong i = 2LU; | T=void * * * * * * * * * * * * * DtoDeclarationExp: i * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * Manifest constant, nothing to do. * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(432) * * * * * * * * * * * * DeclarationExp::toElem: alias Arg = const(ulong); | T=void * * * * * * * * * * * * * DtoDeclarationExp: Arg * * * * * * * * * * * * * * Ignoring Symbol: alias * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(434) * * * * * * * * * * * * AssignExp::toElem: funs[2] = (*() => & formatGeneric)() | (void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe)(void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe = void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe) * * * * * * * * * * * * * IndexExp::toElem: funs[2] @ void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe * * * * * * * * * * * * * * VarExp::toElem: funs @ void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe[3] * * * * * * * * * * * * * * * DtoSymbolAddress ('funs' of type 'void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe[3]') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * IntegerExp::toElem: 2LU @ ulong * * * * * * * * * * * * * * * IntegerExp::toConstElem: 2LU @ ulong * * * * * * * * * * * * * * * * value = i64 2 * * * * * * * * * * * * * CallExp::toElem: (*() => & formatGeneric)() @ void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe * * * * * * * * * * * * * * PtrExp::toElem: *() => & formatGeneric @ pure nothrow @nogc @trusted void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe() * * * * * * * * * * * * * * * FuncExp::toElem: __lambda11 @ void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe function() pure nothrow @nogc @trusted * * * * * * * * * * * * * * * * kind = function * * * * * * * * * * * * * * * * DtoDefineFunction(std.format.formattedWrite!(LockingTextWriter, char, string, const(char), const(ulong)).formattedWrite.__lambda11): /usr/include/dlang/ldc/std/format.d(434) * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe()) * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * Final function type: void (%"std.format.FormatSpec!char.FormatSpec"*, i8*, %std.stdio.File.LockingTextWriter*)* () * * * * * * * * * * * * * * * * * DtoResolveFunction(std.format.formattedWrite!(LockingTextWriter, char, string, const(char), const(ulong)).formattedWrite.__lambda11): /usr/include/dlang/ldc/std/format.d(434) * * * * * * * * * * * * * * * * * * DtoDeclareFunction(std.format.formattedWrite!(LockingTextWriter, char, string, const(char), const(ulong)).formattedWrite.__lambda11): /usr/include/dlang/ldc/std/format.d(434) * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe()) * * * * * * * * * * * * * * * * * * * func = declare void (%"std.format.FormatSpec!char.FormatSpec"*, i8*, %std.stdio.File.LockingTextWriter*)* @_D3std6format68__T14formattedWriteTS3std5stdio4File17LockingTextWriterTaTAyaTxaTxmZ14formattedWriteFS3std5stdio4File17LockingTextWriterxAaAyaxaxmZ10__lambda11FNaNbNiNeZPFNaNbNfS3std5stdio4File17LockingTextWriterPxvKS3std6format18__T10FormatSpecTaZ10FormatSpecZv() * * * * * * * * * * * * * * * * * Doing function body for: __lambda11 * * * * * * * * * * * * * * * * * DtoCreateNestedContext for __lambda11 * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for std.format.formattedWrite!(LockingTextWriter, char, string, const(char), const(ulong)).formattedWrite.__lambda11 * * * * * * * * * * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * * * * * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/format.d(434) * * * * * * * * * * * * * * * * * * * SymOffExp::toElem: & formatGeneric @ void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('formatGeneric' of type '@system void(LockingTextWriter w, const(void)* arg, ref FormatSpec!char f)') * * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(@system void(LockingTextWriter w, const(void)* arg, ref FormatSpec!char f)) * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * * * Final function type: void (%"std.format.FormatSpec!char.FormatSpec"*, i8*, %std.stdio.File.LockingTextWriter*) * * * * * * * * * * * * * * * * * * * * * DtoResolveFunction(std.format.formatGeneric!(LockingTextWriter, const(ulong), char).formatGeneric): /usr/include/dlang/ldc/std/format.d(3455) * * * * * * * * * * * * * * * * * * * * * * DtoDeclareFunction(std.format.formatGeneric!(LockingTextWriter, const(ulong), char).formatGeneric): /usr/include/dlang/ldc/std/format.d(3455) * * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(@system void(LockingTextWriter w, const(void)* arg, ref FormatSpec!char f)) * * * * * * * * * * * * * * * * * * * * * * * func = declare void @_D3std6format60__T13formatGenericTS3std5stdio4File17LockingTextWriterTxmTaZ13formatGenericFS3std5stdio4File17LockingTextWriterPxvKS3std6format18__T10FormatSpecTaZ10FormatSpecZv(%"std.format.FormatSpec!char.FormatSpec"*, i8*, %std.stdio.File.LockingTextWriter*) * * * * * * * * * * * * * * * * * * * * Casting from 'void function(LockingTextWriter w, const(void)* arg, ref FormatSpec!char f) @system' to 'void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe' * * * * * * * * * * * * * * * * * * * * * src: declare void @_D3std6format60__T13formatGenericTS3std5stdio4File17LockingTextWriterTxmTaZ13formatGenericFS3std5stdio4File17LockingTextWriterPxvKS3std6format18__T10FormatSpecTaZ10FormatSpecZv(%"std.format.FormatSpec!char.FormatSpec"*, i8*, %std.stdio.File.LockingTextWriter* byval) * * * * * * * * * * * * * * * * * * * * * to type: void (%"std.format.FormatSpec!char.FormatSpec"*, i8*, %std.stdio.File.LockingTextWriter*)* * * * * * * * * * * * * * * * * * * * return value is '0x12c05028' * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * Building type: pure nothrow @nogc @trusted void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe() * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe()) * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * Final function type: void (%"std.format.FormatSpec!char.FormatSpec"*, i8*, %std.stdio.File.LockingTextWriter*)* () * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @trusted void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe() * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * lhs: %24 = getelementptr [3 x void (%"std.format.FormatSpec!char.FormatSpec"*, i8*, %std.stdio.File.LockingTextWriter*)*], [3 x void (%"std.format.FormatSpec!char.FormatSpec"*, i8*, %std.stdio.File.LockingTextWriter*)*]* %funs, i32 0, i64 2 * * * * * * * * * * * * * * rhs: %25 = invoke void (%"std.format.FormatSpec!char.FormatSpec"*, i8*, %std.stdio.File.LockingTextWriter*)* @_D3std6format68__T14formattedWriteTS3std5stdio4File17LockingTextWriterTaTAyaTxaTxmZ14formattedWriteFS3std5stdio4File17LockingTextWriterxAaAyaxaxmZ10__lambda11FNaNbNiNeZPFNaNbNfS3std5stdio4File17LockingTextWriterPxvKS3std6format18__T10FormatSpecTaZ10FormatSpecZv() to label %postinvoke16 unwind label %landingPad * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(437) * * * * * * * * * * * * AssignExp::toElem: argsAddresses[2] = (*(ref const(ulong) arg) => cast(const(void*))&arg)(_param_4) | (const(void)*)(const(void)* = const(void)*) * * * * * * * * * * * * * IndexExp::toElem: argsAddresses[2] @ const(void)* * * * * * * * * * * * * * * VarExp::toElem: argsAddresses @ const(void)*[3] * * * * * * * * * * * * * * * DtoSymbolAddress ('argsAddresses' of type 'const(void)*[3]') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * IntegerExp::toElem: 2LU @ ulong * * * * * * * * * * * * * * * IntegerExp::toConstElem: 2LU @ ulong * * * * * * * * * * * * * * * * value = i64 2 * * * * * * * * * * * * * CallExp::toElem: (*(ref const(ulong) arg) => cast(const(void*))&arg)(_param_4) @ const(void)* * * * * * * * * * * * * * * PtrExp::toElem: *(ref const(ulong) arg) => cast(const(void*))&arg @ pure nothrow @nogc @trusted const(void*)(ref const(ulong) arg) * * * * * * * * * * * * * * * FuncExp::toElem: __lambda12 @ const(void*) function(ref const(ulong) arg) pure nothrow @nogc @trusted * * * * * * * * * * * * * * * * kind = function * * * * * * * * * * * * * * * * DtoDefineFunction(std.format.formattedWrite!(LockingTextWriter, char, string, const(char), const(ulong)).formattedWrite.__lambda12): /usr/include/dlang/ldc/std/format.d(437) * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted const(void*)(ref const(ulong) arg)) * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * Final function type: i8* (i64*) * * * * * * * * * * * * * * * * * DtoResolveFunction(std.format.formattedWrite!(LockingTextWriter, char, string, const(char), const(ulong)).formattedWrite.__lambda12): /usr/include/dlang/ldc/std/format.d(437) * * * * * * * * * * * * * * * * * * DtoDeclareFunction(std.format.formattedWrite!(LockingTextWriter, char, string, const(char), const(ulong)).formattedWrite.__lambda12): /usr/include/dlang/ldc/std/format.d(437) * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted const(void*)(ref const(ulong) arg)) * * * * * * * * * * * * * * * * * * * func = declare i8* @_D3std6format68__T14formattedWriteTS3std5stdio4File17LockingTextWriterTaTAyaTxaTxmZ14formattedWriteFS3std5stdio4File17LockingTextWriterxAaAyaxaxmZ19__T10__lambda12TxmZ10__lambda12FNaNbNiNeKxmZxPv(i64*) * * * * * * * * * * * * * * * * * Doing function body for: __lambda12 * * * * * * * * * * * * * * * * * DtoCreateNestedContext for __lambda12 * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for std.format.formattedWrite!(LockingTextWriter, char, string, const(char), const(ulong)).formattedWrite.__lambda12 * * * * * * * * * * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * * * * * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/format.d(437) * * * * * * * * * * * * * * * * * * * CastExp::toElem: cast(const(void*))&arg @ const(void*) * * * * * * * * * * * * * * * * * * * * AddrExp::toElem: &arg @ const(ulong)* * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: arg @ const(ulong) * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('arg' of type 'const(ulong)') * * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * * type: const(ulong) * * * * * * * * * * * * * * * * * * * * * is nothing special * * * * * * * * * * * * * * * * * * * * * lval: i64* %arg_arg * * * * * * * * * * * * * * * * * * * * Casting from 'const(ulong)*' to 'const(void*)' * * * * * * * * * * * * * * * * * * * * * src: i64* %arg_arg * * * * * * * * * * * * * * * * * * * * * to type: i8* * * * * * * * * * * * * * * * * * * * return value is '0x12c0b3c8' * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * Building type: pure nothrow @nogc @trusted const(void*)(ref const(ulong) arg) * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted const(void*)(ref const(ulong) arg)) * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * Final function type: i8* (i64*) * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @trusted const(void*)(ref const(ulong) arg) * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * VarExp::toElem: _param_4 @ const(ulong) * * * * * * * * * * * * * * * * * DtoSymbolAddress ('_param_4' of type 'const(ulong)') * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * type: const(ulong) * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * lhs: %16 = getelementptr [3 x i8*], [3 x i8*]* %argsAddresses, i32 0, i64 2 * * * * * * * * * * * * * * rhs: %17 = invoke i8* @_D3std6format68__T14formattedWriteTS3std5stdio4File17LockingTextWriterTaTAyaTxaTxmZ14formattedWriteFS3std5stdio4File17LockingTextWriterxAaAyaxaxmZ19__T10__lambda12TxmZ10__lambda12FNaNbNiNeKxmZxPv(i64* %_param_4) to label %postinvoke17 unwind label %landingPad * * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(440) * * * * * * * * * * * * IntegerExp::toElem: 0 @ int * * * * * * * * * * * * * IntegerExp::toConstElem: 0 @ int * * * * * * * * * * * * * * value = i32 0 * * * * * * * * * * * * if conditional: i32 0 * * * * * * * * * * * * Casting from 'int' to 'bool' * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(440) * * * * * * * * * * * * * CallExp::toElem: formatValue((LockingTextWriter __copytmp3451 = (__copytmp3451 = w).__postblit(); , __copytmp3451), _param_4, spec) @ void * * * * * * * * * * * * * * VarExp::toElem: formatValue @ @safe void(LockingTextWriter w, const(ulong) obj, ref FormatSpec!char f) * * * * * * * * * * * * * * * DtoSymbolAddress ('formatValue' of type '@safe void(LockingTextWriter w, const(ulong) obj, ref FormatSpec!char f)') * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * DtoFunctionType(@safe void(LockingTextWriter w, const(ulong) obj, ref FormatSpec!char f)) * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * Final function type: void (%"std.format.FormatSpec!char.FormatSpec"*, i64, %std.stdio.File.LockingTextWriter*) * * * * * * * * * * * * * * * * DtoResolveFunction(std.format.formatValue!(LockingTextWriter, const(ulong), char).formatValue): /usr/include/dlang/ldc/std/format.d(1397) * * * * * * * * * * * * * * * * * DtoDeclareFunction(std.format.formatValue!(LockingTextWriter, const(ulong), char).formatValue): /usr/include/dlang/ldc/std/format.d(1397) * * * * * * * * * * * * * * * * * * DtoFunctionType(@safe void(LockingTextWriter w, const(ulong) obj, ref FormatSpec!char f)) * * * * * * * * * * * * * * * * * * func = declare void @_D3std6format58__T11formatValueTS3std5stdio4File17LockingTextWriterTxmTaZ11formatValueFNfS3std5stdio4File17LockingTextWriterxmKS3std6format18__T10FormatSpecTaZ10FormatSpecZv(%"std.format.FormatSpec!char.FormatSpec"*, i64, %std.stdio.File.LockingTextWriter*) * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * Building type: @safe void(LockingTextWriter w, const(ulong) obj, ref FormatSpec!char f) * * * * * * * * * * * * * * * * DtoFunctionType(@safe void(LockingTextWriter w, const(ulong) obj, ref FormatSpec!char f)) * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * Final function type: void (%"std.format.FormatSpec!char.FormatSpec"*, i64, %std.stdio.File.LockingTextWriter*) * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * Function type: @safe void(LockingTextWriter w, const(ulong) obj, ref FormatSpec!char f) * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * CommaExp::toElem: LockingTextWriter __copytmp3451 = (__copytmp3451 = w).__postblit(); , __copytmp3451 @ LockingTextWriter * * * * * * * * * * * * * * * * * DeclarationExp::toElem: LockingTextWriter __copytmp3451 = (__copytmp3451 = w).__postblit(); | T=void * * * * * * * * * * * * * * * * * * DtoDeclarationExp: __copytmp3451 * * * * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = LockingTextWriter) * * * * * * * * * * * * * * * * * * * * llvm value for decl: %__copytmp3451 = alloca %std.stdio.File.LockingTextWriter, align 8 * * * * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * * * * CallExp::toElem: (__copytmp3451 = w).__postblit() @ void * * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: (__copytmp3451 = w).__postblit @ @trusted void() * * * * * * * * * * * * * * * * * * * * * * AssignExp::toElem: __copytmp3451 = w | (LockingTextWriter)(LockingTextWriter = LockingTextWriter) * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: __copytmp3451 @ LockingTextWriter * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__copytmp3451' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: w @ LockingTextWriter * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * * * * type: LockingTextWriter * * * * * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * * * * * * %__copytmp3451 = alloca %std.stdio.File.LockingTextWriter, align 8 * * * * * * * * * * * * * * * * * * * * * * Function type: @trusted void() * * * * * * * * * * * * * * * * * VarExp::toElem: __copytmp3451 @ LockingTextWriter * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__copytmp3451' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * VarExp::toElem: _param_4 @ const(ulong) * * * * * * * * * * * * * * * * * DtoSymbolAddress ('_param_4' of type 'const(ulong)') * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * type: const(ulong) * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(440) * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(445) * * * * * * * DeclarationExp::toElem: uint currentArg = 0u; | T=void * * * * * * * * DtoDeclarationExp: currentArg * * * * * * * * * VarDeclaration * * * * * * * * * DtoVarDeclaration(vdtype = uint) * * * * * * * * * * llvm value for decl: %currentArg = alloca i32, align 4 * * * * * * * * * * expression initializer * * * * * * * * * * AssignExp::toElem: currentArg = 0u | (uint)(uint = uint) * * * * * * * * * * * VarExp::toElem: currentArg @ uint * * * * * * * * * * * * DtoSymbolAddress ('currentArg' of type 'uint') * * * * * * * * * * * * * a normal variable * * * * * * * * * * * IntegerExp::toElem: 0u @ uint * * * * * * * * * * * * IntegerExp::toConstElem: 0u @ uint * * * * * * * * * * * * * value = i32 0 * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * lhs: %currentArg = alloca i32, align 4 * * * * * * * * * * * * rhs: i32 0 * * * * * * ForStatement::toIR(): /usr/include/dlang/ldc/std/format.d(446) * * * * * * * CallExp::toElem: spec.writeUpToNextSpec((LockingTextWriter __copytmp3452 = (__copytmp3452 = w).__postblit(); , __copytmp3452)) @ bool * * * * * * * * DotVarExp::toElem: spec.writeUpToNextSpec @ @safe bool(LockingTextWriter writer) * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * nested variable * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(446) * * * * * * * * DtoCallFunction() * * * * * * * * * doing normal arguments * * * * * * * * * Arguments so far: (1) * * * * * * * * * * %spec = getelementptr %nest.formattedWrite.10, %nest.formattedWrite.10* %.frame, i32 0, i32 0 * * * * * * * * * Function type: @safe bool(LockingTextWriter writer) * * * * * * * * * DtoArgument * * * * * * * * * * CommaExp::toElem: LockingTextWriter __copytmp3452 = (__copytmp3452 = w).__postblit(); , __copytmp3452 @ LockingTextWriter * * * * * * * * * * * DeclarationExp::toElem: LockingTextWriter __copytmp3452 = (__copytmp3452 = w).__postblit(); | T=void * * * * * * * * * * * * DtoDeclarationExp: __copytmp3452 * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * DtoVarDeclaration(vdtype = LockingTextWriter) * * * * * * * * * * * * * * llvm value for decl: %__copytmp3452 = alloca %std.stdio.File.LockingTextWriter, align 8 * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * CallExp::toElem: (__copytmp3452 = w).__postblit() @ void * * * * * * * * * * * * * * * DotVarExp::toElem: (__copytmp3452 = w).__postblit @ @trusted void() * * * * * * * * * * * * * * * * AssignExp::toElem: __copytmp3452 = w | (LockingTextWriter)(LockingTextWriter = LockingTextWriter) * * * * * * * * * * * * * * * * * VarExp::toElem: __copytmp3452 @ LockingTextWriter * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__copytmp3452' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * VarExp::toElem: w @ LockingTextWriter * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * type: LockingTextWriter * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * %__copytmp3452 = alloca %std.stdio.File.LockingTextWriter, align 8 * * * * * * * * * * * * * * * * Function type: @trusted void() * * * * * * * * * * * VarExp::toElem: __copytmp3452 @ LockingTextWriter * * * * * * * * * * * * DtoSymbolAddress ('__copytmp3452' of type 'LockingTextWriter') * * * * * * * * * * * * * a normal variable * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(447) * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(447) * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(448) * * * * * * * * * * AndAndExp::toElem: cast(ulong)currentArg == 3LU && !spec.indexStart @ bool * * * * * * * * * * * EqualExp::toElem: cast(ulong)currentArg == 3LU @ bool * * * * * * * * * * * * CastExp::toElem: cast(ulong)currentArg @ ulong * * * * * * * * * * * * * VarExp::toElem: currentArg @ uint * * * * * * * * * * * * * * DtoSymbolAddress ('currentArg' of type 'uint') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * Casting from 'uint' to 'ulong' * * * * * * * * * * * * * * cast to: i64 * * * * * * * * * * * * IntegerExp::toElem: 3LU @ ulong * * * * * * * * * * * * * IntegerExp::toConstElem: 3LU @ ulong * * * * * * * * * * * * * * value = i64 3 * * * * * * * * * * * * integral or pointer or interface * * * * * * * * * * * * lv: %39 = zext i32 %38 to i64 * * * * * * * * * * * * rv: i64 3 * * * * * * * * * * * NotExp::toElem: !spec.indexStart @ bool * * * * * * * * * * * * DotVarExp::toElem: spec.indexStart @ ubyte * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(448) * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.indexStart: * * * * * * * * * * * * * * Value: %41 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 3 * * * * * * * * * * * * Casting from 'ubyte' to 'bool' * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(449) * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(449) * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(451) * * * * * * * * * * * * * CallExp::toElem: enforceEx(fmt.length == 0LU, delegate string() => text("Orphan format specifier: %", spec.spec), "/usr/include/dlang/ldc/std/format.d", 451LU) @ bool * * * * * * * * * * * * * * VarExp::toElem: enforceEx @ pure @safe bool(bool value, lazy string msg = "", string file = __FILE__, ulong line = cast(ulong)__LINE__) * * * * * * * * * * * * * * * DtoSymbolAddress ('enforceEx' of type 'pure @safe bool(bool value, lazy string msg = "", string file = __FILE__, ulong line = cast(ulong)__LINE__)') * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * Function type: pure @safe bool(bool value, lazy string msg = "", string file = __FILE__, ulong line = cast(ulong)__LINE__) * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * EqualExp::toElem: fmt.length == 0LU @ bool * * * * * * * * * * * * * * * * * ArrayLengthExp::toElem: fmt.length @ ulong * * * * * * * * * * * * * * * * * * VarExp::toElem: fmt @ const(char[]) * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('fmt' of type 'const(char[])') * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * type: const(char[]) * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * * * * * integral or pointer or interface * * * * * * * * * * * * * * * * * lv: %.len = load i64, i64* %45 * * * * * * * * * * * * * * * * * rv: i64 0 * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * FuncExp::toElem: __dgliteral13 @ string delegate() pure @nogc @safe * * * * * * * * * * * * * * * * * nested * * * * * * * * * * * * * * * * * kind = delegate * * * * * * * * * * * * * * * * * DtoDefineFunction(std.format.formattedWrite!(LockingTextWriter, char, string, const(char), const(ulong)).formattedWrite.__dgliteral13): /usr/include/dlang/ldc/std/format.d(452) * * * * * * * * * * * * * * * * * * DtoFunctionType(pure @nogc @safe string()) * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * Final function type: { i64, i8* } (i8*) * * * * * * * * * * * * * * * * * * DtoResolveFunction(std.format.formattedWrite!(LockingTextWriter, char, string, const(char), const(ulong)).formattedWrite.__dgliteral13): /usr/include/dlang/ldc/std/format.d(452) * * * * * * * * * * * * * * * * * * * DtoDeclareFunction(std.format.formattedWrite!(LockingTextWriter, char, string, const(char), const(ulong)).formattedWrite.__dgliteral13): /usr/include/dlang/ldc/std/format.d(452) * * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure @nogc @safe string()) * * * * * * * * * * * * * * * * * * * * func = declare { i64, i8* } @_D3std6format68__T14formattedWriteTS3std5stdio4File17LockingTextWriterTaTAyaTxaTxmZ14formattedWriteFS3std5stdio4File17LockingTextWriterxAaAyaxaxmZ13__dgliteral13MFNaNiNfZAya(i8*) * * * * * * * * * * * * * * * * * * Doing function body for: __dgliteral13 * * * * * * * * * * * * * * * * * * DtoCreateNestedContext for __dgliteral13 * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for std.format.formattedWrite!(LockingTextWriter, char, string, const(char), const(ulong)).formattedWrite.__dgliteral13 * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for std.format.formattedWrite!(LockingTextWriter, char, string, const(char), const(ulong)).formattedWrite * * * * * * * * * * * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * * * * * * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/format.d(452) * * * * * * * * * * * * * * * * * * * * CallExp::toElem: text("Orphan format specifier: %", spec.spec) @ string * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: text @ pure @safe string(string _param_0, char _param_1) * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('text' of type 'pure @safe string(string _param_0, char _param_1)') * * * * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * * * * Function type: pure @safe string(string _param_0, char _param_1) * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * StringExp::toElem: "Orphan format specifier: %" @ string * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: spec.spec @ char * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(452) * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for std.format.formattedWrite!(LockingTextWriter, char, string, const(char), const(ulong)).formattedWrite * * * * * * * * * * * * * * * * * * * * * * * * * * * Context: %2 = bitcast i8* %1 to %nest.formattedWrite.10* * * * * * * * * * * * * * * * * * * * * * * * * * * * of type: %nest.formattedWrite.10 = type { %"std.format.FormatSpec!char.FormatSpec" } * * * * * * * * * * * * * * * * * * * * * * * * * * * Variable: spec * * * * * * * * * * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * * * * * * * * * * Function: __dgliteral13 * * * * * * * * * * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * * * * * * * * * * Addr: %spec = getelementptr %nest.formattedWrite.10, %nest.formattedWrite.10* %2, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * * * * * * * * * of type: %"std.format.FormatSpec!char.FormatSpec"* * * * * * * * * * * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.spec: * * * * * * * * * * * * * * * * * * * * * * * * * Value: %3 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 2 * * * * * * * * * * * * * * * * * * * * return value is '0x12c145d8' * * * * * * * * * * * * * * * * * Building type: string delegate() pure @nogc @safe * * * * * * * * * * * * * * * * * * DtoFunctionType(pure @nogc @safe string()) * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * Final function type: { i64, i8* } (i8*) * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * StringExp::toElem: "/usr/include/dlang/ldc/std/format.d" @ string * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * IntegerExp::toElem: 451LU @ ulong * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 451LU @ ulong * * * * * * * * * * * * * * * * * * value = i64 451 * * * * * * * * * * * * BreakStatement::toIR(): /usr/include/dlang/ldc/std/format.d(453) * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(455) * * * * * * * * * * EqualExp::toElem: spec.width == 2147483647 @ bool * * * * * * * * * * * DotVarExp::toElem: spec.width @ int * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(455) * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.width: * * * * * * * * * * * * * Value: %50 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 0 * * * * * * * * * * * IntegerExp::toElem: 2147483647 @ int * * * * * * * * * * * * IntegerExp::toConstElem: 2147483647 @ int * * * * * * * * * * * * * value = i32 2147483647 * * * * * * * * * * * integral or pointer or interface * * * * * * * * * * * lv: %51 = load i32, i32* %50 * * * * * * * * * * * rv: i32 2147483647 * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(456) * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(456) * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(457) * * * * * * * * * * * * * DeclarationExp::toElem: int width = to(getNthInt(currentArg, _param_2, _param_3, _param_4)); | T=void * * * * * * * * * * * * * * DtoDeclarationExp: width * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = int) * * * * * * * * * * * * * * * * llvm value for decl: %width = alloca i32, align 4 * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * AssignExp::toElem: width = to(getNthInt(currentArg, _param_2, _param_3, _param_4)) | (int)(int = int) * * * * * * * * * * * * * * * * * VarExp::toElem: width @ int * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('width' of type 'int') * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * CallExp::toElem: to(getNthInt(currentArg, _param_2, _param_3, _param_4)) @ int * * * * * * * * * * * * * * * * * * VarExp::toElem: to @ pure nothrow @nogc @safe int(int _param_0) * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('to' of type 'pure nothrow @nogc @safe int(int _param_0)') * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @safe int(int _param_0) * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * CallExp::toElem: getNthInt(currentArg, _param_2, _param_3, _param_4) @ int * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: getNthInt @ pure @safe int(uint index, string _param_1, const(char) _param_2, const(ulong) _param_3) * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('getNthInt' of type 'pure @safe int(uint index, string _param_1, const(char) _param_2, const(ulong) _param_3)') * * * * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure @safe int(uint index, string _param_1, const(char) _param_2, const(ulong) _param_3)) * * * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * * * * * Final function type: i32 (i64, i8, { i64, i8* }, i32) * * * * * * * * * * * * * * * * * * * * * * * DtoResolveFunction(std.format.getNthInt!(string, const(char), const(ulong)).getNthInt): /usr/include/dlang/ldc/std/format.d(3501) * * * * * * * * * * * * * * * * * * * * * * * * DtoDeclareFunction(std.format.getNthInt!(string, const(char), const(ulong)).getNthInt): /usr/include/dlang/ldc/std/format.d(3501) * * * * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure @safe int(uint index, string _param_1, const(char) _param_2, const(ulong) _param_3)) * * * * * * * * * * * * * * * * * * * * * * * * * func = declare i32 @_D3std6format24__T9getNthIntTAyaTxaTxmZ9getNthIntFNaNfkAyaxaxmZi(i64, i8, { i64, i8* }, i32) * * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * * Building type: pure @safe int(uint index, string _param_1, const(char) _param_2, const(ulong) _param_3) * * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure @safe int(uint index, string _param_1, const(char) _param_2, const(ulong) _param_3)) * * * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * * * * * Final function type: i32 (i64, i8, { i64, i8* }, i32) * * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * * * * Function type: pure @safe int(uint index, string _param_1, const(char) _param_2, const(ulong) _param_3) * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: currentArg @ uint * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('currentArg' of type 'uint') * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: _param_2 @ string * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('_param_2' of type 'string') * * * * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * * * * type: string * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: _param_3 @ const(char) * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('_param_3' of type 'const(char)') * * * * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * * * * type: const(char) * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: _param_4 @ const(ulong) * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('_param_4' of type 'const(ulong)') * * * * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * * * * type: const(ulong) * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * lhs: %width = alloca i32, align 4 * * * * * * * * * * * * * * * * * * rhs: %20 = invoke i32 @_D3std4conv9__T2toTiZ9__T2toTiZ2toFNaNbNiNfiZi(i32 %58) to label %postinvoke30 unwind label %landingPad * * * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(458) * * * * * * * * * * * * * CmpExp::toElem: width < 0 @ bool * * * * * * * * * * * * * * VarExp::toElem: width @ int * * * * * * * * * * * * * * * DtoSymbolAddress ('width' of type 'int') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * IntegerExp::toElem: 0 @ int * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0 @ int * * * * * * * * * * * * * * * * value = i32 0 * * * * * * * * * * * * * * type 1: %21 = load i32, i32* %width * * * * * * * * * * * * * * type 2: i32 0 * * * * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(459) * * * * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(459) * * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(460) * * * * * * * * * * * * * * * * CallExp::toElem: spec.flDash(true) @ void * * * * * * * * * * * * * * * * * DotVarExp::toElem: spec.flDash @ pure nothrow @nogc @property @safe void(bool v) * * * * * * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(460) * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * * %spec = getelementptr %nest.formattedWrite.10, %nest.formattedWrite.10* %.frame, i32 0, i32 0 * * * * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @property @safe void(bool v) * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: true @ bool * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: true @ bool * * * * * * * * * * * * * * * * * * * * * value = i1 true * * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(461) * * * * * * * * * * * * * * * * AssignExp::toElem: width = -width | (int)(int = int) * * * * * * * * * * * * * * * * * VarExp::toElem: width @ int * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('width' of type 'int') * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * NegExp::toElem: -width @ int * * * * * * * * * * * * * * * * * * VarExp::toElem: width @ int * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('width' of type 'int') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * lhs: %width = alloca i32, align 4 * * * * * * * * * * * * * * * * * * rhs: %negval = sub i32 0, %23 * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(463) * * * * * * * * * * * * * AssignExp::toElem: spec.width = width | (int)(int = int) * * * * * * * * * * * * * * DotVarExp::toElem: spec.width @ int * * * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(463) * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.width: * * * * * * * * * * * * * * * * Value: %62 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 0 * * * * * * * * * * * * * * VarExp::toElem: width @ int * * * * * * * * * * * * * * * DtoSymbolAddress ('width' of type 'int') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * lhs: %62 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 0 * * * * * * * * * * * * * * * rhs: %63 = load i32, i32* %width * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(464) * * * * * * * * * * * * * AddAssignExp::toElem: currentArg += 1u @ uint * * * * * * * * * * * * * * Caching l-value of currentArg += 1u => currentArg * * * * * * * * * * * * * * * VarExp::toElem: currentArg @ uint * * * * * * * * * * * * * * * * DtoSymbolAddress ('currentArg' of type 'uint') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * AddExp::toElem: currentArg + 1u @ uint * * * * * * * * * * * * * * * VarExp::toElem: currentArg @ uint * * * * * * * * * * * * * * * IntegerExp::toElem: 1u @ uint * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1u @ uint * * * * * * * * * * * * * * * * * value = i32 1 * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * lhs: %currentArg = alloca i32, align 4 * * * * * * * * * * * * * * * rhs: %65 = add i32 %64, 1 * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(466) * * * * * * * * * * * CmpExp::toElem: spec.width < 0 @ bool * * * * * * * * * * * * DotVarExp::toElem: spec.width @ int * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(466) * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.width: * * * * * * * * * * * * * * Value: %62 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 0 * * * * * * * * * * * * IntegerExp::toElem: 0 @ int * * * * * * * * * * * * * IntegerExp::toConstElem: 0 @ int * * * * * * * * * * * * * * value = i32 0 * * * * * * * * * * * * type 1: %63 = load i32, i32* %62 * * * * * * * * * * * * type 2: i32 0 * * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(467) * * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(467) * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(469) * * * * * * * * * * * * * * DeclarationExp::toElem: uint index = cast(uint)-spec.width; | T=void * * * * * * * * * * * * * * * DtoDeclarationExp: index * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = uint) * * * * * * * * * * * * * * * * * llvm value for decl: %index = alloca i32, align 4 * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * AssignExp::toElem: index = cast(uint)-spec.width | (uint)(uint = uint) * * * * * * * * * * * * * * * * * * VarExp::toElem: index @ uint * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('index' of type 'uint') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * CastExp::toElem: cast(uint)-spec.width @ uint * * * * * * * * * * * * * * * * * * * NegExp::toElem: -spec.width @ int * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: spec.width @ int * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(469) * * * * * * * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.width: * * * * * * * * * * * * * * * * * * * * * * Value: %69 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * Casting from 'int' to 'uint' * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * lhs: %index = alloca i32, align 4 * * * * * * * * * * * * * * * * * * * rhs: %negval36 = sub i32 0, %70 * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(470) * * * * * * * * * * * * * * AssertExp::toElem: assert(index > 0u) * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(471) * * * * * * * * * * * * * * DeclarationExp::toElem: int width = to(getNthInt(index - 1u, _param_2, _param_3, _param_4)); | T=void * * * * * * * * * * * * * * * DtoDeclarationExp: width * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = int) * * * * * * * * * * * * * * * * * llvm value for decl: %width37 = alloca i32, align 4 * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * AssignExp::toElem: width = to(getNthInt(index - 1u, _param_2, _param_3, _param_4)) | (int)(int = int) * * * * * * * * * * * * * * * * * * VarExp::toElem: width @ int * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('width' of type 'int') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * CallExp::toElem: to(getNthInt(index - 1u, _param_2, _param_3, _param_4)) @ int * * * * * * * * * * * * * * * * * * * VarExp::toElem: to @ pure nothrow @nogc @safe int(int _param_0) * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('to' of type 'pure nothrow @nogc @safe int(int _param_0)') * * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @safe int(int _param_0) * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * CallExp::toElem: getNthInt(index - 1u, _param_2, _param_3, _param_4) @ int * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: getNthInt @ pure @safe int(uint index, string _param_1, const(char) _param_2, const(ulong) _param_3) * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('getNthInt' of type 'pure @safe int(uint index, string _param_1, const(char) _param_2, const(ulong) _param_3)') * * * * * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * * * * * Function type: pure @safe int(uint index, string _param_1, const(char) _param_2, const(ulong) _param_3) * * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * * MinExp::toElem: index - 1u @ uint * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: index @ uint * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('index' of type 'uint') * * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 1u @ uint * * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1u @ uint * * * * * * * * * * * * * * * * * * * * * * * * * * * value = i32 1 * * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: _param_2 @ string * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('_param_2' of type 'string') * * * * * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * * * * * type: string * * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: _param_3 @ const(char) * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('_param_3' of type 'const(char)') * * * * * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * * * * * type: const(char) * * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: _param_4 @ const(ulong) * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('_param_4' of type 'const(ulong)') * * * * * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * * * * * type: const(ulong) * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * lhs: %width37 = alloca i32, align 4 * * * * * * * * * * * * * * * * * * * rhs: %24 = invoke i32 @_D3std4conv9__T2toTiZ9__T2toTiZ2toFNaNbNiNfiZi(i32 %77) to label %postinvoke39 unwind label %landingPad * * * * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(472) * * * * * * * * * * * * * * CmpExp::toElem: currentArg < index @ bool * * * * * * * * * * * * * * * VarExp::toElem: currentArg @ uint * * * * * * * * * * * * * * * * DtoSymbolAddress ('currentArg' of type 'uint') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * VarExp::toElem: index @ uint * * * * * * * * * * * * * * * * DtoSymbolAddress ('index' of type 'uint') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * type 1: %25 = load i32, i32* %currentArg * * * * * * * * * * * * * * * type 2: %26 = load i32, i32* %index * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(472) * * * * * * * * * * * * * * * AssignExp::toElem: currentArg = index | (uint)(uint = uint) * * * * * * * * * * * * * * * * VarExp::toElem: currentArg @ uint * * * * * * * * * * * * * * * * * DtoSymbolAddress ('currentArg' of type 'uint') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * VarExp::toElem: index @ uint * * * * * * * * * * * * * * * * * DtoSymbolAddress ('index' of type 'uint') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * lhs: %currentArg = alloca i32, align 4 * * * * * * * * * * * * * * * * * rhs: %81 = load i32, i32* %index * * * * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(473) * * * * * * * * * * * * * * CmpExp::toElem: width < 0 @ bool * * * * * * * * * * * * * * * VarExp::toElem: width @ int * * * * * * * * * * * * * * * * DtoSymbolAddress ('width' of type 'int') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * IntegerExp::toElem: 0 @ int * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0 @ int * * * * * * * * * * * * * * * * * value = i32 0 * * * * * * * * * * * * * * * type 1: %82 = load i32, i32* %width37 * * * * * * * * * * * * * * * type 2: i32 0 * * * * * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(474) * * * * * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(474) * * * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(475) * * * * * * * * * * * * * * * * * CallExp::toElem: spec.flDash(true) @ void * * * * * * * * * * * * * * * * * * DotVarExp::toElem: spec.flDash @ pure nothrow @nogc @property @safe void(bool v) * * * * * * * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(475) * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * * * %spec = getelementptr %nest.formattedWrite.10, %nest.formattedWrite.10* %.frame, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @property @safe void(bool v) * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: true @ bool * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: true @ bool * * * * * * * * * * * * * * * * * * * * * * value = i1 true * * * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(476) * * * * * * * * * * * * * * * * * AssignExp::toElem: width = -width | (int)(int = int) * * * * * * * * * * * * * * * * * * VarExp::toElem: width @ int * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('width' of type 'int') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * NegExp::toElem: -width @ int * * * * * * * * * * * * * * * * * * * VarExp::toElem: width @ int * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('width' of type 'int') * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * lhs: %width37 = alloca i32, align 4 * * * * * * * * * * * * * * * * * * * rhs: %negval45 = sub i32 0, %28 * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(478) * * * * * * * * * * * * * * AssignExp::toElem: spec.width = width | (int)(int = int) * * * * * * * * * * * * * * * DotVarExp::toElem: spec.width @ int * * * * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(478) * * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.width: * * * * * * * * * * * * * * * * * Value: %85 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 0 * * * * * * * * * * * * * * * VarExp::toElem: width @ int * * * * * * * * * * * * * * * * DtoSymbolAddress ('width' of type 'int') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * lhs: %85 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 0 * * * * * * * * * * * * * * * * rhs: %86 = load i32, i32* %width37 * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(480) * * * * * * * * * * EqualExp::toElem: spec.precision == 2147483647 @ bool * * * * * * * * * * * DotVarExp::toElem: spec.precision @ int * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(480) * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.precision: * * * * * * * * * * * * * Value: %70 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 1 * * * * * * * * * * * IntegerExp::toElem: 2147483647 @ int * * * * * * * * * * * * IntegerExp::toConstElem: 2147483647 @ int * * * * * * * * * * * * * value = i32 2147483647 * * * * * * * * * * * integral or pointer or interface * * * * * * * * * * * lv: %71 = load i32, i32* %70 * * * * * * * * * * * rv: i32 2147483647 * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(481) * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(481) * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(482) * * * * * * * * * * * * * DeclarationExp::toElem: int precision = to(getNthInt(currentArg, _param_2, _param_3, _param_4)); | T=void * * * * * * * * * * * * * * DtoDeclarationExp: precision * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = int) * * * * * * * * * * * * * * * * llvm value for decl: %precision = alloca i32, align 4 * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * AssignExp::toElem: precision = to(getNthInt(currentArg, _param_2, _param_3, _param_4)) | (int)(int = int) * * * * * * * * * * * * * * * * * VarExp::toElem: precision @ int * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('precision' of type 'int') * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * CallExp::toElem: to(getNthInt(currentArg, _param_2, _param_3, _param_4)) @ int * * * * * * * * * * * * * * * * * * VarExp::toElem: to @ pure nothrow @nogc @safe int(int _param_0) * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('to' of type 'pure nothrow @nogc @safe int(int _param_0)') * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @safe int(int _param_0) * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * CallExp::toElem: getNthInt(currentArg, _param_2, _param_3, _param_4) @ int * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: getNthInt @ pure @safe int(uint index, string _param_1, const(char) _param_2, const(ulong) _param_3) * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('getNthInt' of type 'pure @safe int(uint index, string _param_1, const(char) _param_2, const(ulong) _param_3)') * * * * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * * * * Function type: pure @safe int(uint index, string _param_1, const(char) _param_2, const(ulong) _param_3) * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: currentArg @ uint * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('currentArg' of type 'uint') * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: _param_2 @ string * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('_param_2' of type 'string') * * * * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * * * * type: string * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: _param_3 @ const(char) * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('_param_3' of type 'const(char)') * * * * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * * * * type: const(char) * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: _param_4 @ const(ulong) * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('_param_4' of type 'const(ulong)') * * * * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * * * * type: const(ulong) * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * lhs: %precision = alloca i32, align 4 * * * * * * * * * * * * * * * * * * rhs: %29 = invoke i32 @_D3std4conv9__T2toTiZ9__T2toTiZ2toFNaNbNiNfiZi(i32 %95) to label %postinvoke50 unwind label %landingPad * * * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(484) * * * * * * * * * * * * * CmpExp::toElem: precision >= 0 @ bool * * * * * * * * * * * * * * VarExp::toElem: precision @ int * * * * * * * * * * * * * * * DtoSymbolAddress ('precision' of type 'int') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * IntegerExp::toElem: 0 @ int * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0 @ int * * * * * * * * * * * * * * * * value = i32 0 * * * * * * * * * * * * * * type 1: %30 = load i32, i32* %precision * * * * * * * * * * * * * * type 2: i32 0 * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(484) * * * * * * * * * * * * * * AssignExp::toElem: spec.precision = precision | (int)(int = int) * * * * * * * * * * * * * * * DotVarExp::toElem: spec.precision @ int * * * * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(484) * * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.precision: * * * * * * * * * * * * * * * * * Value: %98 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 1 * * * * * * * * * * * * * * * VarExp::toElem: precision @ int * * * * * * * * * * * * * * * * DtoSymbolAddress ('precision' of type 'int') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * lhs: %98 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 1 * * * * * * * * * * * * * * * * rhs: %99 = load i32, i32* %precision * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(486) * * * * * * * * * * * * * * AssignExp::toElem: spec.precision = 2147483646 | (int)(int = int) * * * * * * * * * * * * * * * DotVarExp::toElem: spec.precision @ int * * * * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(486) * * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.precision: * * * * * * * * * * * * * * * * * Value: %100 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 1 * * * * * * * * * * * * * * * IntegerExp::toElem: 2147483646 @ int * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 2147483646 @ int * * * * * * * * * * * * * * * * * value = i32 2147483646 * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * lhs: %100 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 1 * * * * * * * * * * * * * * * * rhs: i32 2147483646 * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(487) * * * * * * * * * * * * * AddAssignExp::toElem: currentArg += 1u @ uint * * * * * * * * * * * * * * Caching l-value of currentArg += 1u => currentArg * * * * * * * * * * * * * * * VarExp::toElem: currentArg @ uint * * * * * * * * * * * * * * * * DtoSymbolAddress ('currentArg' of type 'uint') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * AddExp::toElem: currentArg + 1u @ uint * * * * * * * * * * * * * * * VarExp::toElem: currentArg @ uint * * * * * * * * * * * * * * * IntegerExp::toElem: 1u @ uint * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1u @ uint * * * * * * * * * * * * * * * * * value = i32 1 * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * lhs: %currentArg = alloca i32, align 4 * * * * * * * * * * * * * * * rhs: %102 = add i32 %101, 1 * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(489) * * * * * * * * * * * CmpExp::toElem: spec.precision < 0 @ bool * * * * * * * * * * * * DotVarExp::toElem: spec.precision @ int * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(489) * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.precision: * * * * * * * * * * * * * * Value: %98 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 1 * * * * * * * * * * * * IntegerExp::toElem: 0 @ int * * * * * * * * * * * * * IntegerExp::toConstElem: 0 @ int * * * * * * * * * * * * * * value = i32 0 * * * * * * * * * * * * type 1: %99 = load i32, i32* %98 * * * * * * * * * * * * type 2: i32 0 * * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(490) * * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(490) * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(492) * * * * * * * * * * * * * * DeclarationExp::toElem: uint index = cast(uint)-spec.precision; | T=void * * * * * * * * * * * * * * * DtoDeclarationExp: index * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = uint) * * * * * * * * * * * * * * * * * llvm value for decl: %index56 = alloca i32, align 4 * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * AssignExp::toElem: index = cast(uint)-spec.precision | (uint)(uint = uint) * * * * * * * * * * * * * * * * * * VarExp::toElem: index @ uint * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('index' of type 'uint') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * CastExp::toElem: cast(uint)-spec.precision @ uint * * * * * * * * * * * * * * * * * * * NegExp::toElem: -spec.precision @ int * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: spec.precision @ int * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(492) * * * * * * * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.precision: * * * * * * * * * * * * * * * * * * * * * * Value: %106 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 1 * * * * * * * * * * * * * * * * * * * Casting from 'int' to 'uint' * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * lhs: %index56 = alloca i32, align 4 * * * * * * * * * * * * * * * * * * * rhs: %negval57 = sub i32 0, %107 * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(493) * * * * * * * * * * * * * * AssertExp::toElem: assert(index > 0u) * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(494) * * * * * * * * * * * * * * DeclarationExp::toElem: int precision = to(getNthInt(index - 1u, _param_2, _param_3, _param_4)); | T=void * * * * * * * * * * * * * * * DtoDeclarationExp: precision * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = int) * * * * * * * * * * * * * * * * * llvm value for decl: %precision58 = alloca i32, align 4 * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * AssignExp::toElem: precision = to(getNthInt(index - 1u, _param_2, _param_3, _param_4)) | (int)(int = int) * * * * * * * * * * * * * * * * * * VarExp::toElem: precision @ int * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('precision' of type 'int') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * CallExp::toElem: to(getNthInt(index - 1u, _param_2, _param_3, _param_4)) @ int * * * * * * * * * * * * * * * * * * * VarExp::toElem: to @ pure nothrow @nogc @safe int(int _param_0) * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('to' of type 'pure nothrow @nogc @safe int(int _param_0)') * * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @safe int(int _param_0) * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * CallExp::toElem: getNthInt(index - 1u, _param_2, _param_3, _param_4) @ int * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: getNthInt @ pure @safe int(uint index, string _param_1, const(char) _param_2, const(ulong) _param_3) * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('getNthInt' of type 'pure @safe int(uint index, string _param_1, const(char) _param_2, const(ulong) _param_3)') * * * * * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * * * * * Function type: pure @safe int(uint index, string _param_1, const(char) _param_2, const(ulong) _param_3) * * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * * MinExp::toElem: index - 1u @ uint * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: index @ uint * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('index' of type 'uint') * * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 1u @ uint * * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1u @ uint * * * * * * * * * * * * * * * * * * * * * * * * * * * value = i32 1 * * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: _param_2 @ string * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('_param_2' of type 'string') * * * * * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * * * * * type: string * * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: _param_3 @ const(char) * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('_param_3' of type 'const(char)') * * * * * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * * * * * type: const(char) * * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: _param_4 @ const(ulong) * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('_param_4' of type 'const(ulong)') * * * * * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * * * * * type: const(ulong) * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * lhs: %precision58 = alloca i32, align 4 * * * * * * * * * * * * * * * * * * * rhs: %32 = invoke i32 @_D3std4conv9__T2toTiZ9__T2toTiZ2toFNaNbNiNfiZi(i32 %114) to label %postinvoke60 unwind label %landingPad * * * * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(496) * * * * * * * * * * * * * * CmpExp::toElem: currentArg < index @ bool * * * * * * * * * * * * * * * VarExp::toElem: currentArg @ uint * * * * * * * * * * * * * * * * DtoSymbolAddress ('currentArg' of type 'uint') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * VarExp::toElem: index @ uint * * * * * * * * * * * * * * * * DtoSymbolAddress ('index' of type 'uint') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * type 1: %33 = load i32, i32* %currentArg * * * * * * * * * * * * * * * type 2: %34 = load i32, i32* %index56 * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(496) * * * * * * * * * * * * * * * AssignExp::toElem: currentArg = index | (uint)(uint = uint) * * * * * * * * * * * * * * * * VarExp::toElem: currentArg @ uint * * * * * * * * * * * * * * * * * DtoSymbolAddress ('currentArg' of type 'uint') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * VarExp::toElem: index @ uint * * * * * * * * * * * * * * * * * DtoSymbolAddress ('index' of type 'uint') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * lhs: %currentArg = alloca i32, align 4 * * * * * * * * * * * * * * * * * rhs: %118 = load i32, i32* %index56 * * * * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(497) * * * * * * * * * * * * * * CmpExp::toElem: precision >= 0 @ bool * * * * * * * * * * * * * * * VarExp::toElem: precision @ int * * * * * * * * * * * * * * * * DtoSymbolAddress ('precision' of type 'int') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * IntegerExp::toElem: 0 @ int * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0 @ int * * * * * * * * * * * * * * * * * value = i32 0 * * * * * * * * * * * * * * * type 1: %119 = load i32, i32* %precision58 * * * * * * * * * * * * * * * type 2: i32 0 * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(497) * * * * * * * * * * * * * * * AssignExp::toElem: spec.precision = precision | (int)(int = int) * * * * * * * * * * * * * * * * DotVarExp::toElem: spec.precision @ int * * * * * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(497) * * * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.precision: * * * * * * * * * * * * * * * * * * Value: %121 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 1 * * * * * * * * * * * * * * * * VarExp::toElem: precision @ int * * * * * * * * * * * * * * * * * DtoSymbolAddress ('precision' of type 'int') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * lhs: %121 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 1 * * * * * * * * * * * * * * * * * rhs: %122 = load i32, i32* %precision58 * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(499) * * * * * * * * * * * * * * * AssignExp::toElem: spec.precision = 2147483646 | (int)(int = int) * * * * * * * * * * * * * * * * DotVarExp::toElem: spec.precision @ int * * * * * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(499) * * * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.precision: * * * * * * * * * * * * * * * * * * Value: %123 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 1 * * * * * * * * * * * * * * * * IntegerExp::toElem: 2147483646 @ int * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 2147483646 @ int * * * * * * * * * * * * * * * * * * value = i32 2147483646 * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * lhs: %123 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 1 * * * * * * * * * * * * * * * * * rhs: i32 2147483646 * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(502) * * * * * * * * * * CmpExp::toElem: cast(int)spec.indexStart > 0 @ bool * * * * * * * * * * * CastExp::toElem: cast(int)spec.indexStart @ int * * * * * * * * * * * * DotVarExp::toElem: spec.indexStart @ ubyte * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(502) * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.indexStart: * * * * * * * * * * * * * * Value: %105 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 3 * * * * * * * * * * * * Casting from 'ubyte' to 'int' * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * IntegerExp::toElem: 0 @ int * * * * * * * * * * * * IntegerExp::toConstElem: 0 @ int * * * * * * * * * * * * * value = i32 0 * * * * * * * * * * * type 1: %107 = zext i8 %106 to i32 * * * * * * * * * * * type 2: i32 0 * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(503) * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(503) * * * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(505) * * * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(505) * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(505) * * * * * * * * * * * * * * * DeclarationExp::toElem: int __key3456 = cast(int)spec.indexStart - 1; | T=void * * * * * * * * * * * * * * * * DtoDeclarationExp: __key3456 * * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = int) * * * * * * * * * * * * * * * * * * llvm value for decl: %__key3456 = alloca i32, align 4 * * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * * AssignExp::toElem: __key3456 = cast(int)spec.indexStart - 1 | (int)(int = int) * * * * * * * * * * * * * * * * * * * VarExp::toElem: __key3456 @ int * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__key3456' of type 'int') * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * MinExp::toElem: cast(int)spec.indexStart - 1 @ int * * * * * * * * * * * * * * * * * * * * CastExp::toElem: cast(int)spec.indexStart @ int * * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: spec.indexStart @ ubyte * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(505) * * * * * * * * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.indexStart: * * * * * * * * * * * * * * * * * * * * * * * Value: %128 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 3 * * * * * * * * * * * * * * * * * * * * * Casting from 'ubyte' to 'int' * * * * * * * * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 1 @ int * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1 @ int * * * * * * * * * * * * * * * * * * * * * * value = i32 1 * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * lhs: %__key3456 = alloca i32, align 4 * * * * * * * * * * * * * * * * * * * * rhs: %131 = sub i32 %130, 1 * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(505) * * * * * * * * * * * * * * * DeclarationExp::toElem: int __limit3457 = cast(int)spec.indexEnd; | T=void * * * * * * * * * * * * * * * * DtoDeclarationExp: __limit3457 * * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = int) * * * * * * * * * * * * * * * * * * llvm value for decl: %__limit3457 = alloca i32, align 4 * * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * * AssignExp::toElem: __limit3457 = cast(int)spec.indexEnd | (int)(int = int) * * * * * * * * * * * * * * * * * * * VarExp::toElem: __limit3457 @ int * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__limit3457' of type 'int') * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * CastExp::toElem: cast(int)spec.indexEnd @ int * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: spec.indexEnd @ ubyte * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(505) * * * * * * * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.indexEnd: * * * * * * * * * * * * * * * * * * * * * * Value: %132 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 4 * * * * * * * * * * * * * * * * * * * * Casting from 'ubyte' to 'int' * * * * * * * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * lhs: %__limit3457 = alloca i32, align 4 * * * * * * * * * * * * * * * * * * * * rhs: %134 = zext i8 %133 to i32 * * * * * * * * * * * * * * ForStatement::toIR(): /usr/include/dlang/ldc/std/format.d(505) * * * * * * * * * * * * * * * CmpExp::toElem: __key3456 < __limit3457 @ bool * * * * * * * * * * * * * * * * VarExp::toElem: __key3456 @ int * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__key3456' of type 'int') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * VarExp::toElem: __limit3457 @ int * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__limit3457' of type 'int') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * type 1: %135 = load i32, i32* %__key3456 * * * * * * * * * * * * * * * * type 2: %136 = load i32, i32* %__limit3457 * * * * * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(505) * * * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(505) * * * * * * * * * * * * * * * * * DeclarationExp::toElem: int i = __key3456; | T=void * * * * * * * * * * * * * * * * * * DtoDeclarationExp: i * * * * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = int) * * * * * * * * * * * * * * * * * * * * llvm value for decl: %i = alloca i32, align 4 * * * * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * * * * AssignExp::toElem: i = __key3456 | (int)(int = int) * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: i @ int * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'int') * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: __key3456 @ int * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__key3456' of type 'int') * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * * * lhs: %i = alloca i32, align 4 * * * * * * * * * * * * * * * * * * * * * * rhs: %138 = load i32, i32* %__key3456 * * * * * * * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(507) * * * * * * * * * * * * * * * * * CmpExp::toElem: 3LU <= cast(ulong)i @ bool * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 3LU @ ulong * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 3LU @ ulong * * * * * * * * * * * * * * * * * * * * value = i64 3 * * * * * * * * * * * * * * * * * * CastExp::toElem: cast(ulong)i @ ulong * * * * * * * * * * * * * * * * * * * VarExp::toElem: i @ int * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'int') * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * Casting from 'int' to 'ulong' * * * * * * * * * * * * * * * * * * * * cast to: i64 * * * * * * * * * * * * * * * * * * type 1: i64 3 * * * * * * * * * * * * * * * * * * type 2: %140 = sext i32 %139 to i64 * * * * * * * * * * * * * * * * * BreakStatement::toIR(): /usr/include/dlang/ldc/std/format.d(507) * * * * * * * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(508) * * * * * * * * * * * * * * * * * VarExp::toElem: __ctfe @ bool * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__ctfe' of type 'bool') * * * * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(509) * * * * * * * * * * * * * * * * * * CallExp::toElem: formatNth((LockingTextWriter __copytmp3470 = (__copytmp3470 = w).__postblit(); , __copytmp3470), spec, cast(ulong)i, _param_2, _param_3, _param_4) @ void * * * * * * * * * * * * * * * * * * * VarExp::toElem: formatNth @ @safe void(LockingTextWriter w, ref FormatSpec!char f, ulong index, string _param_3, const(char) _param_4, const(ulong) _param_5) * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('formatNth' of type '@safe void(LockingTextWriter w, ref FormatSpec!char f, ulong index, string _param_3, const(char) _param_4, const(ulong) _param_5)') * * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(@safe void(LockingTextWriter w, ref FormatSpec!char f, ulong index, string _param_3, const(char) _param_4, const(ulong) _param_5)) * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * * * Final function type: void (i64, i8, { i64, i8* }, i64, %"std.format.FormatSpec!char.FormatSpec"*, %std.stdio.File.LockingTextWriter*) * * * * * * * * * * * * * * * * * * * * * DtoResolveFunction(std.format.formatNth!(LockingTextWriter, char, string, const(char), const(ulong)).formatNth): /usr/include/dlang/ldc/std/format.d(3460) * * * * * * * * * * * * * * * * * * * * * * DtoDeclareFunction(std.format.formatNth!(LockingTextWriter, char, string, const(char), const(ulong)).formatNth): /usr/include/dlang/ldc/std/format.d(3460) * * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(@safe void(LockingTextWriter w, ref FormatSpec!char f, ulong index, string _param_3, const(char) _param_4, const(ulong) _param_5)) * * * * * * * * * * * * * * * * * * * * * * * func = declare void @_D3std6format62__T9formatNthTS3std5stdio4File17LockingTextWriterTaTAyaTxaTxmZ9formatNthFNfS3std5stdio4File17LockingTextWriterKS3std6format18__T10FormatSpecTaZ10FormatSpecmAyaxaxmZv(i64, i8, { i64, i8* }, i64, %"std.format.FormatSpec!char.FormatSpec"*, %std.stdio.File.LockingTextWriter*) * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * Building type: @safe void(LockingTextWriter w, ref FormatSpec!char f, ulong index, string _param_3, const(char) _param_4, const(ulong) _param_5) * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(@safe void(LockingTextWriter w, ref FormatSpec!char f, ulong index, string _param_3, const(char) _param_4, const(ulong) _param_5)) * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * * * Final function type: void (i64, i8, { i64, i8* }, i64, %"std.format.FormatSpec!char.FormatSpec"*, %std.stdio.File.LockingTextWriter*) * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * * Function type: @safe void(LockingTextWriter w, ref FormatSpec!char f, ulong index, string _param_3, const(char) _param_4, const(ulong) _param_5) * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * CommaExp::toElem: LockingTextWriter __copytmp3470 = (__copytmp3470 = w).__postblit(); , __copytmp3470 @ LockingTextWriter * * * * * * * * * * * * * * * * * * * * * * DeclarationExp::toElem: LockingTextWriter __copytmp3470 = (__copytmp3470 = w).__postblit(); | T=void * * * * * * * * * * * * * * * * * * * * * * * DtoDeclarationExp: __copytmp3470 * * * * * * * * * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = LockingTextWriter) * * * * * * * * * * * * * * * * * * * * * * * * * llvm value for decl: %__copytmp3470 = alloca %std.stdio.File.LockingTextWriter, align 8 * * * * * * * * * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * * * * * * * * * CallExp::toElem: (__copytmp3470 = w).__postblit() @ void * * * * * * * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: (__copytmp3470 = w).__postblit @ @trusted void() * * * * * * * * * * * * * * * * * * * * * * * * * * * AssignExp::toElem: __copytmp3470 = w | (LockingTextWriter)(LockingTextWriter = LockingTextWriter) * * * * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: __copytmp3470 @ LockingTextWriter * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__copytmp3470' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: w @ LockingTextWriter * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * type: LockingTextWriter * * * * * * * * * * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * * * * * * * * * * * %__copytmp3470 = alloca %std.stdio.File.LockingTextWriter, align 8 * * * * * * * * * * * * * * * * * * * * * * * * * * * Function type: @trusted void() * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: __copytmp3470 @ LockingTextWriter * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__copytmp3470' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(509) * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * CastExp::toElem: cast(ulong)i @ ulong * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: i @ int * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'int') * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * Casting from 'int' to 'ulong' * * * * * * * * * * * * * * * * * * * * * * * cast to: i64 * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: _param_2 @ string * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('_param_2' of type 'string') * * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * * type: string * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: _param_3 @ const(char) * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('_param_3' of type 'const(char)') * * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * * type: const(char) * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: _param_4 @ const(ulong) * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('_param_4' of type 'const(ulong)') * * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * * type: const(ulong) * * * * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(511) * * * * * * * * * * * * * * * * * * CallExp::toElem: (*funs[cast(ulong)i])((LockingTextWriter __copytmp3471 = (__copytmp3471 = w).__postblit(); , __copytmp3471), argsAddresses[cast(ulong)i], spec) @ void * * * * * * * * * * * * * * * * * * * PtrExp::toElem: *funs[cast(ulong)i] @ pure nothrow @safe void(LockingTextWriter, const(void)*, ref FormatSpec!char) * * * * * * * * * * * * * * * * * * * * IndexExp::toElem: funs[cast(ulong)i] @ void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: funs @ void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe[3] * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('funs' of type 'void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe[3]') * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * CastExp::toElem: cast(ulong)i @ ulong * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: i @ int * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'int') * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * Casting from 'int' to 'ulong' * * * * * * * * * * * * * * * * * * * * * * * cast to: i64 * * * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * * Function type: pure nothrow @safe void(LockingTextWriter, const(void)*, ref FormatSpec!char) * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * CommaExp::toElem: LockingTextWriter __copytmp3471 = (__copytmp3471 = w).__postblit(); , __copytmp3471 @ LockingTextWriter * * * * * * * * * * * * * * * * * * * * * * DeclarationExp::toElem: LockingTextWriter __copytmp3471 = (__copytmp3471 = w).__postblit(); | T=void * * * * * * * * * * * * * * * * * * * * * * * DtoDeclarationExp: __copytmp3471 * * * * * * * * * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = LockingTextWriter) * * * * * * * * * * * * * * * * * * * * * * * * * llvm value for decl: %__copytmp3471 = alloca %std.stdio.File.LockingTextWriter, align 8 * * * * * * * * * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * * * * * * * * * CallExp::toElem: (__copytmp3471 = w).__postblit() @ void * * * * * * * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: (__copytmp3471 = w).__postblit @ @trusted void() * * * * * * * * * * * * * * * * * * * * * * * * * * * AssignExp::toElem: __copytmp3471 = w | (LockingTextWriter)(LockingTextWriter = LockingTextWriter) * * * * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: __copytmp3471 @ LockingTextWriter * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__copytmp3471' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: w @ LockingTextWriter * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * type: LockingTextWriter * * * * * * * * * * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * * * * * * * * * * * %__copytmp3471 = alloca %std.stdio.File.LockingTextWriter, align 8 * * * * * * * * * * * * * * * * * * * * * * * * * * * Function type: @trusted void() * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: __copytmp3471 @ LockingTextWriter * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__copytmp3471' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * IndexExp::toElem: argsAddresses[cast(ulong)i] @ const(void)* * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: argsAddresses @ const(void)*[3] * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('argsAddresses' of type 'const(void)*[3]') * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * CastExp::toElem: cast(ulong)i @ ulong * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: i @ int * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'int') * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * Casting from 'int' to 'ulong' * * * * * * * * * * * * * * * * * * * * * * * * cast to: i64 * * * * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(511) * * * * * * * * * * * * * * * AddAssignExp::toElem: __key3456 += 1 @ int * * * * * * * * * * * * * * * * Caching l-value of __key3456 += 1 => __key3456 * * * * * * * * * * * * * * * * * VarExp::toElem: __key3456 @ int * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__key3456' of type 'int') * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * AddExp::toElem: __key3456 + 1 @ int * * * * * * * * * * * * * * * * * VarExp::toElem: __key3456 @ int * * * * * * * * * * * * * * * * * IntegerExp::toElem: 1 @ int * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1 @ int * * * * * * * * * * * * * * * * * * * value = i32 1 * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * lhs: %__key3456 = alloca i32, align 4 * * * * * * * * * * * * * * * * * rhs: %150 = add i32 %149, 1 * * * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(513) * * * * * * * * * * * * * CmpExp::toElem: currentArg < cast(uint)cast(int)spec.indexEnd @ bool * * * * * * * * * * * * * * VarExp::toElem: currentArg @ uint * * * * * * * * * * * * * * * DtoSymbolAddress ('currentArg' of type 'uint') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * CastExp::toElem: cast(uint)cast(int)spec.indexEnd @ uint * * * * * * * * * * * * * * * CastExp::toElem: cast(int)spec.indexEnd @ int * * * * * * * * * * * * * * * * DotVarExp::toElem: spec.indexEnd @ ubyte * * * * * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(513) * * * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.indexEnd: * * * * * * * * * * * * * * * * * * Value: %151 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 4 * * * * * * * * * * * * * * * * Casting from 'ubyte' to 'int' * * * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * * * * Casting from 'int' to 'uint' * * * * * * * * * * * * * * type 1: %154 = load i32, i32* %currentArg * * * * * * * * * * * * * * type 2: %153 = zext i8 %152 to i32 * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(513) * * * * * * * * * * * * * * AssignExp::toElem: currentArg = cast(uint)spec.indexEnd | (uint)(uint = uint) * * * * * * * * * * * * * * * VarExp::toElem: currentArg @ uint * * * * * * * * * * * * * * * * DtoSymbolAddress ('currentArg' of type 'uint') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * CastExp::toElem: cast(uint)spec.indexEnd @ uint * * * * * * * * * * * * * * * * DotVarExp::toElem: spec.indexEnd @ ubyte * * * * * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(513) * * * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.indexEnd: * * * * * * * * * * * * * * * * * * Value: %166 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %spec, i32 0, i32 4 * * * * * * * * * * * * * * * * Casting from 'ubyte' to 'uint' * * * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * lhs: %currentArg = alloca i32, align 4 * * * * * * * * * * * * * * * * rhs: %168 = zext i8 %167 to i32 * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(516) * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(516) * * * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(517) * * * * * * * * * * * * * VarExp::toElem: __ctfe @ bool * * * * * * * * * * * * * * DtoSymbolAddress ('__ctfe' of type 'bool') * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(518) * * * * * * * * * * * * * * CallExp::toElem: formatNth((LockingTextWriter __copytmp3472 = (__copytmp3472 = w).__postblit(); , __copytmp3472), spec, cast(ulong)currentArg, _param_2, _param_3, _param_4) @ void * * * * * * * * * * * * * * * VarExp::toElem: formatNth @ @safe void(LockingTextWriter w, ref FormatSpec!char f, ulong index, string _param_3, const(char) _param_4, const(ulong) _param_5) * * * * * * * * * * * * * * * * DtoSymbolAddress ('formatNth' of type '@safe void(LockingTextWriter w, ref FormatSpec!char f, ulong index, string _param_3, const(char) _param_4, const(ulong) _param_5)') * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * Function type: @safe void(LockingTextWriter w, ref FormatSpec!char f, ulong index, string _param_3, const(char) _param_4, const(ulong) _param_5) * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * CommaExp::toElem: LockingTextWriter __copytmp3472 = (__copytmp3472 = w).__postblit(); , __copytmp3472 @ LockingTextWriter * * * * * * * * * * * * * * * * * * DeclarationExp::toElem: LockingTextWriter __copytmp3472 = (__copytmp3472 = w).__postblit(); | T=void * * * * * * * * * * * * * * * * * * * DtoDeclarationExp: __copytmp3472 * * * * * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = LockingTextWriter) * * * * * * * * * * * * * * * * * * * * * llvm value for decl: %__copytmp3472 = alloca %std.stdio.File.LockingTextWriter, align 8 * * * * * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * * * * * CallExp::toElem: (__copytmp3472 = w).__postblit() @ void * * * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: (__copytmp3472 = w).__postblit @ @trusted void() * * * * * * * * * * * * * * * * * * * * * * * AssignExp::toElem: __copytmp3472 = w | (LockingTextWriter)(LockingTextWriter = LockingTextWriter) * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: __copytmp3472 @ LockingTextWriter * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__copytmp3472' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: w @ LockingTextWriter * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * * * * * type: LockingTextWriter * * * * * * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * * * * * * * %__copytmp3472 = alloca %std.stdio.File.LockingTextWriter, align 8 * * * * * * * * * * * * * * * * * * * * * * * Function type: @trusted void() * * * * * * * * * * * * * * * * * * VarExp::toElem: __copytmp3472 @ LockingTextWriter * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__copytmp3472' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(518) * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * CastExp::toElem: cast(ulong)currentArg @ ulong * * * * * * * * * * * * * * * * * * VarExp::toElem: currentArg @ uint * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('currentArg' of type 'uint') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * Casting from 'uint' to 'ulong' * * * * * * * * * * * * * * * * * * * cast to: i64 * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * VarExp::toElem: _param_2 @ string * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('_param_2' of type 'string') * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * type: string * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * VarExp::toElem: _param_3 @ const(char) * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('_param_3' of type 'const(char)') * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * type: const(char) * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * VarExp::toElem: _param_4 @ const(ulong) * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('_param_4' of type 'const(ulong)') * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * type: const(ulong) * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(520) * * * * * * * * * * * * * * CallExp::toElem: (*funs[cast(ulong)currentArg])((LockingTextWriter __copytmp3473 = (__copytmp3473 = w).__postblit(); , __copytmp3473), argsAddresses[cast(ulong)currentArg], spec) @ void * * * * * * * * * * * * * * * PtrExp::toElem: *funs[cast(ulong)currentArg] @ pure nothrow @safe void(LockingTextWriter, const(void)*, ref FormatSpec!char) * * * * * * * * * * * * * * * * IndexExp::toElem: funs[cast(ulong)currentArg] @ void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe * * * * * * * * * * * * * * * * * VarExp::toElem: funs @ void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe[3] * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('funs' of type 'void function(LockingTextWriter, const(void)*, ref FormatSpec!char) pure nothrow @safe[3]') * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * CastExp::toElem: cast(ulong)currentArg @ ulong * * * * * * * * * * * * * * * * * * VarExp::toElem: currentArg @ uint * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('currentArg' of type 'uint') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * Casting from 'uint' to 'ulong' * * * * * * * * * * * * * * * * * * * cast to: i64 * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * Function type: pure nothrow @safe void(LockingTextWriter, const(void)*, ref FormatSpec!char) * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * CommaExp::toElem: LockingTextWriter __copytmp3473 = (__copytmp3473 = w).__postblit(); , __copytmp3473 @ LockingTextWriter * * * * * * * * * * * * * * * * * * DeclarationExp::toElem: LockingTextWriter __copytmp3473 = (__copytmp3473 = w).__postblit(); | T=void * * * * * * * * * * * * * * * * * * * DtoDeclarationExp: __copytmp3473 * * * * * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = LockingTextWriter) * * * * * * * * * * * * * * * * * * * * * llvm value for decl: %__copytmp3473 = alloca %std.stdio.File.LockingTextWriter, align 8 * * * * * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * * * * * CallExp::toElem: (__copytmp3473 = w).__postblit() @ void * * * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: (__copytmp3473 = w).__postblit @ @trusted void() * * * * * * * * * * * * * * * * * * * * * * * AssignExp::toElem: __copytmp3473 = w | (LockingTextWriter)(LockingTextWriter = LockingTextWriter) * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: __copytmp3473 @ LockingTextWriter * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__copytmp3473' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: w @ LockingTextWriter * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * * * * * type: LockingTextWriter * * * * * * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * * * * * * * %__copytmp3473 = alloca %std.stdio.File.LockingTextWriter, align 8 * * * * * * * * * * * * * * * * * * * * * * * Function type: @trusted void() * * * * * * * * * * * * * * * * * * VarExp::toElem: __copytmp3473 @ LockingTextWriter * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__copytmp3473' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * IndexExp::toElem: argsAddresses[cast(ulong)currentArg] @ const(void)* * * * * * * * * * * * * * * * * * * VarExp::toElem: argsAddresses @ const(void)*[3] * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('argsAddresses' of type 'const(void)*[3]') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * CastExp::toElem: cast(ulong)currentArg @ ulong * * * * * * * * * * * * * * * * * * * VarExp::toElem: currentArg @ uint * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('currentArg' of type 'uint') * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * Casting from 'uint' to 'ulong' * * * * * * * * * * * * * * * * * * * * cast to: i64 * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * VarExp::toElem: spec @ FormatSpec!char * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('spec' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * * DtoNestedVariable for spec @ /usr/include/dlang/ldc/std/format.d(520) * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(521) * * * * * * * * * * * * * AddAssignExp::toElem: currentArg += 1u @ uint * * * * * * * * * * * * * * Caching l-value of currentArg += 1u => currentArg * * * * * * * * * * * * * * * VarExp::toElem: currentArg @ uint * * * * * * * * * * * * * * * * DtoSymbolAddress ('currentArg' of type 'uint') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * AddExp::toElem: currentArg + 1u @ uint * * * * * * * * * * * * * * * VarExp::toElem: currentArg @ uint * * * * * * * * * * * * * * * IntegerExp::toElem: 1u @ uint * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1u @ uint * * * * * * * * * * * * * * * * * value = i32 1 * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * lhs: %currentArg = alloca i32, align 4 * * * * * * * * * * * * * * * rhs: %181 = add i32 %180, 1 * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/format.d(524) * * * * * * * VarExp::toElem: currentArg @ uint * * * * * * * * DtoSymbolAddress ('currentArg' of type 'uint') * * * * * * * * * a normal variable * * * * * * * return value is '0x12764748' * TemplateInstance::codegen: 'std.format.formattedWrite!(LockingTextWriter, char, string, const(char), const(ulong)).formattedWrite.__lambda8!string' * * DtoDefineFunction(std.format.formattedWrite!(LockingTextWriter, char, string, const(char), const(ulong)).formattedWrite.__lambda8): /usr/include/dlang/ldc/std/format.d(437) * TemplateInstance::codegen: 'std.format.formatGeneric!(LockingTextWriter, const(char), char)' * * DtoDefineFunction(std.format.formatGeneric!(LockingTextWriter, const(char), char).formatGeneric): /usr/include/dlang/ldc/std/format.d(3455) * * * Doing function body for: formatGeneric * * * DtoCreateNestedContext for formatGeneric * * * * DtoCreateNestedContextType for std.format.formatGeneric!(LockingTextWriter, const(char), char).formatGeneric * * * TryFinallyStatement::toIR(): * * * * ExpStatement::toIR(): * * * * * CallExp::toElem: w.~this() @ void * * * * * * DotVarExp::toElem: w.~this @ @trusted void() * * * * * * * VarExp::toElem: w @ LockingTextWriter * * * * * * * * DtoSymbolAddress ('w' of type 'LockingTextWriter') * * * * * * * * * function param * * * * * * * * * type: LockingTextWriter * * * * * * DtoCallFunction() * * * * * * * doing normal arguments * * * * * * * Arguments so far: (1) * * * * * * * * %std.stdio.File.LockingTextWriter* %w_arg * * * * * * * Function type: @trusted void() * * * * CompoundStatement::toIR(): * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3457) * * * * * * CallExp::toElem: formatValue((LockingTextWriter __copytmp3434 = (__copytmp3434 = w).__postblit(); , __copytmp3434), *cast(const(char)*)arg, f) @ void * * * * * * * VarExp::toElem: formatValue @ @safe void(LockingTextWriter w, const(char) obj, ref FormatSpec!char f) * * * * * * * * DtoSymbolAddress ('formatValue' of type '@safe void(LockingTextWriter w, const(char) obj, ref FormatSpec!char f)') * * * * * * * * * FuncDeclaration * * * * * * * DtoCallFunction() * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (0) * * * * * * * * Function type: @safe void(LockingTextWriter w, const(char) obj, ref FormatSpec!char f) * * * * * * * * DtoArgument * * * * * * * * * CommaExp::toElem: LockingTextWriter __copytmp3434 = (__copytmp3434 = w).__postblit(); , __copytmp3434 @ LockingTextWriter * * * * * * * * * * DeclarationExp::toElem: LockingTextWriter __copytmp3434 = (__copytmp3434 = w).__postblit(); | T=void * * * * * * * * * * * DtoDeclarationExp: __copytmp3434 * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * DtoVarDeclaration(vdtype = LockingTextWriter) * * * * * * * * * * * * * llvm value for decl: %__copytmp3434 = alloca %std.stdio.File.LockingTextWriter, align 8 * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * CallExp::toElem: (__copytmp3434 = w).__postblit() @ void * * * * * * * * * * * * * * DotVarExp::toElem: (__copytmp3434 = w).__postblit @ @trusted void() * * * * * * * * * * * * * * * AssignExp::toElem: __copytmp3434 = w | (LockingTextWriter)(LockingTextWriter = LockingTextWriter) * * * * * * * * * * * * * * * * VarExp::toElem: __copytmp3434 @ LockingTextWriter * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__copytmp3434' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * VarExp::toElem: w @ LockingTextWriter * * * * * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * type: LockingTextWriter * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * %__copytmp3434 = alloca %std.stdio.File.LockingTextWriter, align 8 * * * * * * * * * * * * * * * Function type: @trusted void() * * * * * * * * * * VarExp::toElem: __copytmp3434 @ LockingTextWriter * * * * * * * * * * * DtoSymbolAddress ('__copytmp3434' of type 'LockingTextWriter') * * * * * * * * * * * * a normal variable * * * * * * * * DtoArgument * * * * * * * * * PtrExp::toElem: *cast(const(char)*)arg @ const(char) * * * * * * * * * * CastExp::toElem: cast(const(char)*)arg @ const(char)* * * * * * * * * * * * VarExp::toElem: arg @ const(void)* * * * * * * * * * * * * DtoSymbolAddress ('arg' of type 'const(void)*') * * * * * * * * * * * * * function param * * * * * * * * * * * * * type: const(void)* * * * * * * * * * * * Casting from 'const(void)*' to 'const(char)*' * * * * * * * * * * * * src: %3 = load i8*, i8** %arg * * * * * * * * * * * * to type: i8* * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: f @ FormatSpec!char * * * * * * * * * * DtoSymbolAddress ('f' of type 'FormatSpec!char') * * * * * * * * * * * function param * * * * * * * * * * * type: FormatSpec!char * TemplateInstance::codegen: 'std.format.hasToString!(const(char), char)' * TemplateInstance::codegen: 'std.format.formatValue!(LockingTextWriter, const(char), char)' * * DtoDefineFunction(std.format.formatValue!(LockingTextWriter, const(char), char).formatValue): /usr/include/dlang/ldc/std/format.d(1905) * * * Doing function body for: formatValue * * * DtoCreateNestedContext for formatValue * * * * DtoCreateNestedContextType for std.format.formatValue!(LockingTextWriter, const(char), char).formatValue * * * TryFinallyStatement::toIR(): * * * * ExpStatement::toIR(): * * * * * CallExp::toElem: w.~this() @ void * * * * * * DotVarExp::toElem: w.~this @ @trusted void() * * * * * * * VarExp::toElem: w @ LockingTextWriter * * * * * * * * DtoSymbolAddress ('w' of type 'LockingTextWriter') * * * * * * * * * function param * * * * * * * * * type: LockingTextWriter * * * * * * DtoCallFunction() * * * * * * * doing normal arguments * * * * * * * Arguments so far: (1) * * * * * * * * %std.stdio.File.LockingTextWriter* %w_arg * * * * * * * Function type: @trusted void() * * * * CompoundStatement::toIR(): * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1907) * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1908) * * * * * * * DeclarationExp::toElem: const const(char) val = obj; | T=void * * * * * * * * DtoDeclarationExp: val * * * * * * * * * VarDeclaration * * * * * * * * * DtoVarDeclaration(vdtype = const(char)) * * * * * * * * * * llvm value for decl: %val = alloca i8, align 1 * * * * * * * * * * expression initializer * * * * * * * * * * AssignExp::toElem: val = obj | (const(char))(const(char) = const(char)) * * * * * * * * * * * VarExp::toElem: val @ const(char) * * * * * * * * * * * * DtoSymbolAddress ('val' of type 'const(char)') * * * * * * * * * * * * * a normal variable * * * * * * * * * * * VarExp::toElem: obj @ const(char) * * * * * * * * * * * * DtoSymbolAddress ('obj' of type 'const(char)') * * * * * * * * * * * * * function param * * * * * * * * * * * * * type: const(char) * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * lhs: %val = alloca i8, align 1 * * * * * * * * * * * * rhs: %1 = load i8, i8* %obj * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1910) * * * * * * * OrOrExp::toElem: cast(int)f.spec == 115 || cast(int)f.spec == 99 @ bool * * * * * * * * EqualExp::toElem: cast(int)f.spec == 115 @ bool * * * * * * * * * CastExp::toElem: cast(int)f.spec @ int * * * * * * * * * * DotVarExp::toElem: f.spec @ char * * * * * * * * * * * VarExp::toElem: f @ FormatSpec!char * * * * * * * * * * * * DtoSymbolAddress ('f' of type 'FormatSpec!char') * * * * * * * * * * * * * function param * * * * * * * * * * * * * type: FormatSpec!char * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.spec: * * * * * * * * * * * * Value: %2 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %f_arg, i32 0, i32 2 * * * * * * * * * * Casting from 'char' to 'int' * * * * * * * * * * * cast to: i32 * * * * * * * * * IntegerExp::toElem: 115 @ int * * * * * * * * * * IntegerExp::toConstElem: 115 @ int * * * * * * * * * * * value = i32 115 * * * * * * * * * integral or pointer or interface * * * * * * * * * lv: %4 = zext i8 %3 to i32 * * * * * * * * * rv: i32 115 * * * * * * * * EqualExp::toElem: cast(int)f.spec == 99 @ bool * * * * * * * * * CastExp::toElem: cast(int)f.spec @ int * * * * * * * * * * DotVarExp::toElem: f.spec @ char * * * * * * * * * * * VarExp::toElem: f @ FormatSpec!char * * * * * * * * * * * * DtoSymbolAddress ('f' of type 'FormatSpec!char') * * * * * * * * * * * * * function param * * * * * * * * * * * * * type: FormatSpec!char * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.spec: * * * * * * * * * * * * Value: %6 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %f_arg, i32 0, i32 2 * * * * * * * * * * Casting from 'char' to 'int' * * * * * * * * * * * cast to: i32 * * * * * * * * * IntegerExp::toElem: 99 @ int * * * * * * * * * * IntegerExp::toConstElem: 99 @ int * * * * * * * * * * * value = i32 99 * * * * * * * * * integral or pointer or interface * * * * * * * * * lv: %8 = zext i8 %7 to i32 * * * * * * * * * rv: i32 99 * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1911) * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1912) * * * * * * * * * CallExp::toElem: put(w, val) @ void * * * * * * * * * * VarExp::toElem: put @ nothrow @nogc @safe void(ref LockingTextWriter r, const(char) e) * * * * * * * * * * * DtoSymbolAddress ('put' of type 'nothrow @nogc @safe void(ref LockingTextWriter r, const(char) e)') * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * doing normal arguments * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * Function type: nothrow @nogc @safe void(ref LockingTextWriter r, const(char) e) * * * * * * * * * * * DtoArgument * * * * * * * * * * * * VarExp::toElem: w @ LockingTextWriter * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'LockingTextWriter') * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * type: LockingTextWriter * * * * * * * * * * * DtoArgument * * * * * * * * * * * * VarExp::toElem: val @ const(char) * * * * * * * * * * * * * DtoSymbolAddress ('val' of type 'const(char)') * * * * * * * * * * * * * * a normal variable * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1915) * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1915) * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1916) * * * * * * * * * * DeclarationExp::toElem: alias U = ubyte; | T=void * * * * * * * * * * * DtoDeclarationExp: U * * * * * * * * * * * * Ignoring Symbol: alias * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1917) * * * * * * * * * * CallExp::toElem: formatValue((LockingTextWriter __copytmp3433 = (__copytmp3433 = w).__postblit(); , __copytmp3433), cast(ubyte)val, f) @ void * * * * * * * * * * * VarExp::toElem: formatValue @ @safe void(LockingTextWriter w, ubyte obj, ref FormatSpec!char f) * * * * * * * * * * * * DtoSymbolAddress ('formatValue' of type '@safe void(LockingTextWriter w, ubyte obj, ref FormatSpec!char f)') * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * Function type: @safe void(LockingTextWriter w, ubyte obj, ref FormatSpec!char f) * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * CommaExp::toElem: LockingTextWriter __copytmp3433 = (__copytmp3433 = w).__postblit(); , __copytmp3433 @ LockingTextWriter * * * * * * * * * * * * * * DeclarationExp::toElem: LockingTextWriter __copytmp3433 = (__copytmp3433 = w).__postblit(); | T=void * * * * * * * * * * * * * * * DtoDeclarationExp: __copytmp3433 * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = LockingTextWriter) * * * * * * * * * * * * * * * * * llvm value for decl: %__copytmp3433 = alloca %std.stdio.File.LockingTextWriter, align 8 * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * CallExp::toElem: (__copytmp3433 = w).__postblit() @ void * * * * * * * * * * * * * * * * * * DotVarExp::toElem: (__copytmp3433 = w).__postblit @ @trusted void() * * * * * * * * * * * * * * * * * * * AssignExp::toElem: __copytmp3433 = w | (LockingTextWriter)(LockingTextWriter = LockingTextWriter) * * * * * * * * * * * * * * * * * * * * VarExp::toElem: __copytmp3433 @ LockingTextWriter * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__copytmp3433' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * VarExp::toElem: w @ LockingTextWriter * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * type: LockingTextWriter * * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * * * %__copytmp3433 = alloca %std.stdio.File.LockingTextWriter, align 8 * * * * * * * * * * * * * * * * * * * Function type: @trusted void() * * * * * * * * * * * * * * VarExp::toElem: __copytmp3433 @ LockingTextWriter * * * * * * * * * * * * * * * DtoSymbolAddress ('__copytmp3433' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * CastExp::toElem: cast(ubyte)val @ ubyte * * * * * * * * * * * * * * VarExp::toElem: val @ const(char) * * * * * * * * * * * * * * * DtoSymbolAddress ('val' of type 'const(char)') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * Casting from 'const(char)' to 'ubyte' * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * VarExp::toElem: f @ FormatSpec!char * * * * * * * * * * * * * * DtoSymbolAddress ('f' of type 'FormatSpec!char') * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * type: FormatSpec!char * TemplateInstance::codegen: 'std.format.formattedWrite!(LockingTextWriter, char, string, const(char), const(ulong)).formattedWrite.__lambda10!(const(char))' * * DtoDefineFunction(std.format.formattedWrite!(LockingTextWriter, char, string, const(char), const(ulong)).formattedWrite.__lambda10): /usr/include/dlang/ldc/std/format.d(437) * TemplateInstance::codegen: 'std.format.formatGeneric!(LockingTextWriter, const(ulong), char)' * * DtoDefineFunction(std.format.formatGeneric!(LockingTextWriter, const(ulong), char).formatGeneric): /usr/include/dlang/ldc/std/format.d(3455) * * * Doing function body for: formatGeneric * * * DtoCreateNestedContext for formatGeneric * * * * DtoCreateNestedContextType for std.format.formatGeneric!(LockingTextWriter, const(ulong), char).formatGeneric * * * TryFinallyStatement::toIR(): * * * * ExpStatement::toIR(): * * * * * CallExp::toElem: w.~this() @ void * * * * * * DotVarExp::toElem: w.~this @ @trusted void() * * * * * * * VarExp::toElem: w @ LockingTextWriter * * * * * * * * DtoSymbolAddress ('w' of type 'LockingTextWriter') * * * * * * * * * function param * * * * * * * * * type: LockingTextWriter * * * * * * DtoCallFunction() * * * * * * * doing normal arguments * * * * * * * Arguments so far: (1) * * * * * * * * %std.stdio.File.LockingTextWriter* %w_arg * * * * * * * Function type: @trusted void() * * * * CompoundStatement::toIR(): * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3457) * * * * * * CallExp::toElem: formatValue((LockingTextWriter __copytmp3447 = (__copytmp3447 = w).__postblit(); , __copytmp3447), *cast(const(ulong)*)arg, f) @ void * * * * * * * VarExp::toElem: formatValue @ @safe void(LockingTextWriter w, const(ulong) obj, ref FormatSpec!char f) * * * * * * * * DtoSymbolAddress ('formatValue' of type '@safe void(LockingTextWriter w, const(ulong) obj, ref FormatSpec!char f)') * * * * * * * * * FuncDeclaration * * * * * * * DtoCallFunction() * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (0) * * * * * * * * Function type: @safe void(LockingTextWriter w, const(ulong) obj, ref FormatSpec!char f) * * * * * * * * DtoArgument * * * * * * * * * CommaExp::toElem: LockingTextWriter __copytmp3447 = (__copytmp3447 = w).__postblit(); , __copytmp3447 @ LockingTextWriter * * * * * * * * * * DeclarationExp::toElem: LockingTextWriter __copytmp3447 = (__copytmp3447 = w).__postblit(); | T=void * * * * * * * * * * * DtoDeclarationExp: __copytmp3447 * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * DtoVarDeclaration(vdtype = LockingTextWriter) * * * * * * * * * * * * * llvm value for decl: %__copytmp3447 = alloca %std.stdio.File.LockingTextWriter, align 8 * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * CallExp::toElem: (__copytmp3447 = w).__postblit() @ void * * * * * * * * * * * * * * DotVarExp::toElem: (__copytmp3447 = w).__postblit @ @trusted void() * * * * * * * * * * * * * * * AssignExp::toElem: __copytmp3447 = w | (LockingTextWriter)(LockingTextWriter = LockingTextWriter) * * * * * * * * * * * * * * * * VarExp::toElem: __copytmp3447 @ LockingTextWriter * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__copytmp3447' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * VarExp::toElem: w @ LockingTextWriter * * * * * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * type: LockingTextWriter * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * %__copytmp3447 = alloca %std.stdio.File.LockingTextWriter, align 8 * * * * * * * * * * * * * * * Function type: @trusted void() * * * * * * * * * * VarExp::toElem: __copytmp3447 @ LockingTextWriter * * * * * * * * * * * DtoSymbolAddress ('__copytmp3447' of type 'LockingTextWriter') * * * * * * * * * * * * a normal variable * * * * * * * * DtoArgument * * * * * * * * * PtrExp::toElem: *cast(const(ulong)*)arg @ const(ulong) * * * * * * * * * * CastExp::toElem: cast(const(ulong)*)arg @ const(ulong)* * * * * * * * * * * * VarExp::toElem: arg @ const(void)* * * * * * * * * * * * * DtoSymbolAddress ('arg' of type 'const(void)*') * * * * * * * * * * * * * function param * * * * * * * * * * * * * type: const(void)* * * * * * * * * * * * Casting from 'const(void)*' to 'const(ulong)*' * * * * * * * * * * * * src: %3 = load i8*, i8** %arg * * * * * * * * * * * * to type: i64* * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: f @ FormatSpec!char * * * * * * * * * * DtoSymbolAddress ('f' of type 'FormatSpec!char') * * * * * * * * * * * function param * * * * * * * * * * * type: FormatSpec!char * TemplateInstance::codegen: 'std.format.formatValue!(LockingTextWriter, const(ulong), char)' * * DtoDefineFunction(std.format.formatValue!(LockingTextWriter, const(ulong), char).formatValue): /usr/include/dlang/ldc/std/format.d(1397) * * * Doing function body for: formatValue * * * DtoCreateNestedContext for formatValue * * * * DtoCreateNestedContextType for std.format.formatValue!(LockingTextWriter, const(ulong), char).formatValue * * * TryFinallyStatement::toIR(): * * * * ExpStatement::toIR(): * * * * * CallExp::toElem: w.~this() @ void * * * * * * DotVarExp::toElem: w.~this @ @trusted void() * * * * * * * VarExp::toElem: w @ LockingTextWriter * * * * * * * * DtoSymbolAddress ('w' of type 'LockingTextWriter') * * * * * * * * * function param * * * * * * * * * type: LockingTextWriter * * * * * * DtoCallFunction() * * * * * * * doing normal arguments * * * * * * * Arguments so far: (1) * * * * * * * * %std.stdio.File.LockingTextWriter* %w_arg * * * * * * * Function type: @trusted void() * * * * CompoundStatement::toIR(): * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1399) * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1401) * * * * * * * DeclarationExp::toElem: alias U = const(ulong); | T=void * * * * * * * * DtoDeclarationExp: U * * * * * * * * * Ignoring Symbol: alias * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1402) * * * * * * * DeclarationExp::toElem: const const(ulong) val = obj; | T=void * * * * * * * * DtoDeclarationExp: val * * * * * * * * * VarDeclaration * * * * * * * * * DtoVarDeclaration(vdtype = const(ulong)) * * * * * * * * * * llvm value for decl: %val = alloca i64, align 8 * * * * * * * * * * expression initializer * * * * * * * * * * AssignExp::toElem: val = obj | (const(ulong))(const(ulong) = const(ulong)) * * * * * * * * * * * VarExp::toElem: val @ const(ulong) * * * * * * * * * * * * DtoSymbolAddress ('val' of type 'const(ulong)') * * * * * * * * * * * * * a normal variable * * * * * * * * * * * VarExp::toElem: obj @ const(ulong) * * * * * * * * * * * * DtoSymbolAddress ('obj' of type 'const(ulong)') * * * * * * * * * * * * * function param * * * * * * * * * * * * * type: const(ulong) * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * lhs: %val = alloca i64, align 8 * * * * * * * * * * * * rhs: %1 = load i64, i64* %obj * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1404) * * * * * * * EqualExp::toElem: cast(int)f.spec == 114 @ bool * * * * * * * * CastExp::toElem: cast(int)f.spec @ int * * * * * * * * * DotVarExp::toElem: f.spec @ char * * * * * * * * * * VarExp::toElem: f @ FormatSpec!char * * * * * * * * * * * DtoSymbolAddress ('f' of type 'FormatSpec!char') * * * * * * * * * * * * function param * * * * * * * * * * * * type: FormatSpec!char * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.spec: * * * * * * * * * * * Value: %2 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %f_arg, i32 0, i32 2 * * * * * * * * * Casting from 'char' to 'int' * * * * * * * * * * cast to: i32 * * * * * * * * IntegerExp::toElem: 114 @ int * * * * * * * * * IntegerExp::toConstElem: 114 @ int * * * * * * * * * * value = i32 114 * * * * * * * * integral or pointer or interface * * * * * * * * lv: %4 = zext i8 %3 to i32 * * * * * * * * rv: i32 114 * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1405) * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1405) * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1407) * * * * * * * * * * DeclarationExp::toElem: const(char)[] raw = (*(ref const(ulong) val) => (cast(const(char*))&val)[0..8])(val); | T=void * * * * * * * * * * * DtoDeclarationExp: raw * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * DtoVarDeclaration(vdtype = const(char)[]) * * * * * * * * * * * * * llvm value for decl: %raw = alloca { i64, i8* }, align 8 * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * AssignExp::toElem: raw = (*(ref const(ulong) val) => (cast(const(char*))&val)[0..8])(val) | (const(char)[])(const(char)[] = const(char)[]) * * * * * * * * * * * * * * VarExp::toElem: raw @ const(char)[] * * * * * * * * * * * * * * * DtoSymbolAddress ('raw' of type 'const(char)[]') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * CallExp::toElem: (*(ref const(ulong) val) => (cast(const(char*))&val)[0..8])(val) @ const(char)[] * * * * * * * * * * * * * * * PtrExp::toElem: *(ref const(ulong) val) => (cast(const(char*))&val)[0..8] @ pure nothrow @nogc @trusted const(char)[](ref const(ulong) val) * * * * * * * * * * * * * * * * FuncExp::toElem: __lambda4 @ const(char)[] function(ref const(ulong) val) pure nothrow @nogc @trusted * * * * * * * * * * * * * * * * * kind = function * * * * * * * * * * * * * * * * * DtoDefineFunction(std.format.formatValue!(LockingTextWriter, const(ulong), char).formatValue.__lambda4): /usr/include/dlang/ldc/std/format.d(1407) * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted const(char)[](ref const(ulong) val)) * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * Final function type: { i64, i8* } (i64*) * * * * * * * * * * * * * * * * * * DtoResolveFunction(std.format.formatValue!(LockingTextWriter, const(ulong), char).formatValue.__lambda4): /usr/include/dlang/ldc/std/format.d(1407) * * * * * * * * * * * * * * * * * * * DtoDeclareFunction(std.format.formatValue!(LockingTextWriter, const(ulong), char).formatValue.__lambda4): /usr/include/dlang/ldc/std/format.d(1407) * * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted const(char)[](ref const(ulong) val)) * * * * * * * * * * * * * * * * * * * * func = declare { i64, i8* } @_D3std6format58__T11formatValueTS3std5stdio4File17LockingTextWriterTxmTaZ11formatValueFS3std5stdio4File17LockingTextWriterxmKS3std6format18__T10FormatSpecTaZ10FormatSpecZ17__T9__lambda4TxmZ9__lambda4FNaNbNiNeKxmZAxa(i64*) * * * * * * * * * * * * * * * * * * Doing function body for: __lambda4 * * * * * * * * * * * * * * * * * * DtoCreateNestedContext for __lambda4 * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for std.format.formatValue!(LockingTextWriter, const(ulong), char).formatValue.__lambda4 * * * * * * * * * * * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * * * * * * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1408) * * * * * * * * * * * * * * * * * * * * SliceExp::toElem: (cast(const(char*))&val)[0..8] @ const(char)[] * * * * * * * * * * * * * * * * * * * * * CastExp::toElem: cast(const(char*))&val @ const(char*) * * * * * * * * * * * * * * * * * * * * * * AddrExp::toElem: &val @ const(ulong)* * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: val @ const(ulong) * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('val' of type 'const(ulong)') * * * * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * * * * type: const(ulong) * * * * * * * * * * * * * * * * * * * * * * * is nothing special * * * * * * * * * * * * * * * * * * * * * * * lval: i64* %val_arg * * * * * * * * * * * * * * * * * * * * * * Casting from 'const(ulong)*' to 'const(char*)' * * * * * * * * * * * * * * * * * * * * * * * src: i64* %val_arg * * * * * * * * * * * * * * * * * * * * * * * to type: i8* * * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 8LU @ ulong * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 8LU @ ulong * * * * * * * * * * * * * * * * * * * * * * * value = i64 8 * * * * * * * * * * * * * * * * * * * * return value is '0x12c71650' * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * Building type: pure nothrow @nogc @trusted const(char)[](ref const(ulong) val) * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted const(char)[](ref const(ulong) val)) * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * Final function type: { i64, i8* } (i64*) * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @trusted const(char)[](ref const(ulong) val) * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * VarExp::toElem: val @ const(ulong) * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('val' of type 'const(ulong)') * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * SetArray * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1410) * * * * * * * * * * OrOrExp::toElem: !!f.flPlus() || false @ bool * * * * * * * * * * * BoolExp::toElem: !!f.flPlus() @ bool * * * * * * * * * * * * CallExp::toElem: f.flPlus() @ bool * * * * * * * * * * * * * DotVarExp::toElem: f.flPlus @ const pure nothrow @nogc @property @safe bool() * * * * * * * * * * * * * * VarExp::toElem: f @ FormatSpec!char * * * * * * * * * * * * * * * DtoSymbolAddress ('f' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * type: FormatSpec!char * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * %"std.format.FormatSpec!char.FormatSpec"* %f_arg * * * * * * * * * * * * * * Function type: const pure nothrow @nogc @property @safe bool() * * * * * * * * * * * IntegerExp::toElem: false @ bool * * * * * * * * * * * * IntegerExp::toConstElem: false @ bool * * * * * * * * * * * * * value = i1 false * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1412) * * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1414) * * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1414) * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1414) * * * * * * * * * * * * * * DeclarationExp::toElem: const(char)[] __aggr3442 = raw[]; | T=void * * * * * * * * * * * * * * * DtoDeclarationExp: __aggr3442 * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = const(char)[]) * * * * * * * * * * * * * * * * * llvm value for decl: %__aggr3442 = alloca { i64, i8* }, align 8 * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * AssignExp::toElem: __aggr3442 = raw[] | (const(char)[])(const(char)[] = const(char)[]) * * * * * * * * * * * * * * * * * * VarExp::toElem: __aggr3442 @ const(char)[] * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__aggr3442' of type 'const(char)[]') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * SliceExp::toElem: raw[] @ const(char)[] * * * * * * * * * * * * * * * * * * * VarExp::toElem: raw @ const(char)[] * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('raw' of type 'const(char)[]') * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * * * SetArray * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1414) * * * * * * * * * * * * * * DeclarationExp::toElem: ulong __key3443 = __aggr3442.length; | T=void * * * * * * * * * * * * * * * DtoDeclarationExp: __key3443 * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * * * * * * * * * llvm value for decl: %__key3443 = alloca i64, align 8 * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * AssignExp::toElem: __key3443 = __aggr3442.length | (ulong)(ulong = ulong) * * * * * * * * * * * * * * * * * * VarExp::toElem: __key3443 @ ulong * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__key3443' of type 'ulong') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * ArrayLengthExp::toElem: __aggr3442.length @ ulong * * * * * * * * * * * * * * * * * * * VarExp::toElem: __aggr3442 @ const(char)[] * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__aggr3442' of type 'const(char)[]') * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * lhs: %__key3443 = alloca i64, align 8 * * * * * * * * * * * * * * * * * * * rhs: %.len6 = load i64, i64* %18 * * * * * * * * * * * * * ForStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1414) * * * * * * * * * * * * * * PostExp::toElem: __key3443-- @ ulong * * * * * * * * * * * * * * * VarExp::toElem: __key3443 @ ulong * * * * * * * * * * * * * * * * DtoSymbolAddress ('__key3443' of type 'ulong') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * * Casting from 'ulong' to 'bool' * * * * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1414) * * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1414) * * * * * * * * * * * * * * * * DeclarationExp::toElem: const const(char) c = __aggr3442[__key3443]; | T=void * * * * * * * * * * * * * * * * * DtoDeclarationExp: c * * * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = const(char)) * * * * * * * * * * * * * * * * * * * llvm value for decl: %c = alloca i8, align 1 * * * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * * * AssignExp::toElem: c = __aggr3442[__key3443] | (const(char))(const(char) = const(char)) * * * * * * * * * * * * * * * * * * * * VarExp::toElem: c @ const(char) * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('c' of type 'const(char)') * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * IndexExp::toElem: __aggr3442[__key3443] @ const(char) * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: __aggr3442 @ const(char)[] * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__aggr3442' of type 'const(char)[]') * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: __key3443 @ ulong * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__key3443' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * * lhs: %c = alloca i8, align 1 * * * * * * * * * * * * * * * * * * * * * rhs: %27 = load i8, i8* %26 * * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1415) * * * * * * * * * * * * * * * * CallExp::toElem: put(w, c) @ void * * * * * * * * * * * * * * * * * VarExp::toElem: put @ nothrow @nogc @safe void(ref LockingTextWriter r, const(char) e) * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('put' of type 'nothrow @nogc @safe void(ref LockingTextWriter r, const(char) e)') * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * Function type: nothrow @nogc @safe void(ref LockingTextWriter r, const(char) e) * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * VarExp::toElem: w @ LockingTextWriter * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * type: LockingTextWriter * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * VarExp::toElem: c @ const(char) * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('c' of type 'const(char)') * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1418) * * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1419) * * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1419) * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1419) * * * * * * * * * * * * * * DeclarationExp::toElem: const(char)[] __aggr3444 = raw[]; | T=void * * * * * * * * * * * * * * * DtoDeclarationExp: __aggr3444 * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = const(char)[]) * * * * * * * * * * * * * * * * * llvm value for decl: %__aggr3444 = alloca { i64, i8* }, align 8 * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * AssignExp::toElem: __aggr3444 = raw[] | (const(char)[])(const(char)[] = const(char)[]) * * * * * * * * * * * * * * * * * * VarExp::toElem: __aggr3444 @ const(char)[] * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__aggr3444' of type 'const(char)[]') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * SliceExp::toElem: raw[] @ const(char)[] * * * * * * * * * * * * * * * * * * * VarExp::toElem: raw @ const(char)[] * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('raw' of type 'const(char)[]') * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * * * SetArray * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1419) * * * * * * * * * * * * * * DeclarationExp::toElem: ulong __key3445 = 0LU; | T=void * * * * * * * * * * * * * * * DtoDeclarationExp: __key3445 * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * * * * * * * * * llvm value for decl: %__key3445 = alloca i64, align 8 * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * AssignExp::toElem: __key3445 = 0LU | (ulong)(ulong = ulong) * * * * * * * * * * * * * * * * * * VarExp::toElem: __key3445 @ ulong * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__key3445' of type 'ulong') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * lhs: %__key3445 = alloca i64, align 8 * * * * * * * * * * * * * * * * * * * rhs: i64 0 * * * * * * * * * * * * * ForStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1419) * * * * * * * * * * * * * * CmpExp::toElem: __key3445 < __aggr3444.length @ bool * * * * * * * * * * * * * * * VarExp::toElem: __key3445 @ ulong * * * * * * * * * * * * * * * * DtoSymbolAddress ('__key3445' of type 'ulong') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * ArrayLengthExp::toElem: __aggr3444.length @ ulong * * * * * * * * * * * * * * * * VarExp::toElem: __aggr3444 @ const(char)[] * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__aggr3444' of type 'const(char)[]') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * type 1: %34 = load i64, i64* %__key3445 * * * * * * * * * * * * * * * type 2: %.len17 = load i64, i64* %33 * * * * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1419) * * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1419) * * * * * * * * * * * * * * * * DeclarationExp::toElem: const const(char) c = __aggr3444[__key3445]; | T=void * * * * * * * * * * * * * * * * * DtoDeclarationExp: c * * * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = const(char)) * * * * * * * * * * * * * * * * * * * llvm value for decl: %c18 = alloca i8, align 1 * * * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * * * AssignExp::toElem: c = __aggr3444[__key3445] | (const(char))(const(char) = const(char)) * * * * * * * * * * * * * * * * * * * * VarExp::toElem: c @ const(char) * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('c' of type 'const(char)') * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * IndexExp::toElem: __aggr3444[__key3445] @ const(char) * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: __aggr3444 @ const(char)[] * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__aggr3444' of type 'const(char)[]') * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: __key3445 @ ulong * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__key3445' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * * lhs: %c18 = alloca i8, align 1 * * * * * * * * * * * * * * * * * * * * * rhs: %41 = load i8, i8* %40 * * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1420) * * * * * * * * * * * * * * * * CallExp::toElem: put(w, c) @ void * * * * * * * * * * * * * * * * * VarExp::toElem: put @ nothrow @nogc @safe void(ref LockingTextWriter r, const(char) e) * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('put' of type 'nothrow @nogc @safe void(ref LockingTextWriter r, const(char) e)') * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * Function type: nothrow @nogc @safe void(ref LockingTextWriter r, const(char) e) * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * VarExp::toElem: w @ LockingTextWriter * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * type: LockingTextWriter * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * VarExp::toElem: c @ const(char) * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('c' of type 'const(char)') * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * AddAssignExp::toElem: __key3445 += 1LU @ ulong * * * * * * * * * * * * * * * Caching l-value of __key3445 += 1LU => __key3445 * * * * * * * * * * * * * * * * VarExp::toElem: __key3445 @ ulong * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__key3445' of type 'ulong') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * AddExp::toElem: __key3445 + 1LU @ ulong * * * * * * * * * * * * * * * * VarExp::toElem: __key3445 @ ulong * * * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * lhs: %__key3445 = alloca i64, align 8 * * * * * * * * * * * * * * * * rhs: %39 = add i64 %38, 1 * * * * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1422) * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1425) * * * * * * * DeclarationExp::toElem: uint base = cast(int)f.spec == 120 || cast(int)f.spec == 88 ? 16u : cast(int)f.spec == 111 ? 8u : cast(int)f.spec == 98 ? 2u : cast(int)f.spec == 115 || cast(int)f.spec == 100 || cast(int)f.spec == 117 ? 10u : 0u; | T=void * * * * * * * * DtoDeclarationExp: base * * * * * * * * * VarDeclaration * * * * * * * * * DtoVarDeclaration(vdtype = uint) * * * * * * * * * * llvm value for decl: %base = alloca i32, align 4 * * * * * * * * * * expression initializer * * * * * * * * * * AssignExp::toElem: base = cast(int)f.spec == 120 || cast(int)f.spec == 88 ? 16u : cast(int)f.spec == 111 ? 8u : cast(int)f.spec == 98 ? 2u : cast(int)f.spec == 115 || cast(int)f.spec == 100 || cast(int)f.spec == 117 ? 10u : 0u | (uint)(uint = uint) * * * * * * * * * * * VarExp::toElem: base @ uint * * * * * * * * * * * * DtoSymbolAddress ('base' of type 'uint') * * * * * * * * * * * * * a normal variable * * * * * * * * * * * CondExp::toElem: cast(int)f.spec == 120 || cast(int)f.spec == 88 ? 16u : cast(int)f.spec == 111 ? 8u : cast(int)f.spec == 98 ? 2u : cast(int)f.spec == 115 || cast(int)f.spec == 100 || cast(int)f.spec == 117 ? 10u : 0u @ uint * * * * * * * * * * * * OrOrExp::toElem: cast(int)f.spec == 120 || cast(int)f.spec == 88 @ bool * * * * * * * * * * * * * EqualExp::toElem: cast(int)f.spec == 120 @ bool * * * * * * * * * * * * * * CastExp::toElem: cast(int)f.spec @ int * * * * * * * * * * * * * * * DotVarExp::toElem: f.spec @ char * * * * * * * * * * * * * * * * VarExp::toElem: f @ FormatSpec!char * * * * * * * * * * * * * * * * * DtoSymbolAddress ('f' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * type: FormatSpec!char * * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.spec: * * * * * * * * * * * * * * * * * Value: %8 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %f_arg, i32 0, i32 2 * * * * * * * * * * * * * * * Casting from 'char' to 'int' * * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * * * IntegerExp::toElem: 120 @ int * * * * * * * * * * * * * * * IntegerExp::toConstElem: 120 @ int * * * * * * * * * * * * * * * * value = i32 120 * * * * * * * * * * * * * * integral or pointer or interface * * * * * * * * * * * * * * lv: %10 = zext i8 %9 to i32 * * * * * * * * * * * * * * rv: i32 120 * * * * * * * * * * * * * EqualExp::toElem: cast(int)f.spec == 88 @ bool * * * * * * * * * * * * * * CastExp::toElem: cast(int)f.spec @ int * * * * * * * * * * * * * * * DotVarExp::toElem: f.spec @ char * * * * * * * * * * * * * * * * VarExp::toElem: f @ FormatSpec!char * * * * * * * * * * * * * * * * * DtoSymbolAddress ('f' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * type: FormatSpec!char * * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.spec: * * * * * * * * * * * * * * * * * Value: %50 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %f_arg, i32 0, i32 2 * * * * * * * * * * * * * * * Casting from 'char' to 'int' * * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * * * IntegerExp::toElem: 88 @ int * * * * * * * * * * * * * * * IntegerExp::toConstElem: 88 @ int * * * * * * * * * * * * * * * * value = i32 88 * * * * * * * * * * * * * * integral or pointer or interface * * * * * * * * * * * * * * lv: %52 = zext i8 %51 to i32 * * * * * * * * * * * * * * rv: i32 88 * * * * * * * * * * * * IntegerExp::toElem: 16u @ uint * * * * * * * * * * * * * IntegerExp::toConstElem: 16u @ uint * * * * * * * * * * * * * * value = i32 16 * * * * * * * * * * * * CondExp::toElem: cast(int)f.spec == 111 ? 8u : cast(int)f.spec == 98 ? 2u : cast(int)f.spec == 115 || cast(int)f.spec == 100 || cast(int)f.spec == 117 ? 10u : 0u @ uint * * * * * * * * * * * * * EqualExp::toElem: cast(int)f.spec == 111 @ bool * * * * * * * * * * * * * * CastExp::toElem: cast(int)f.spec @ int * * * * * * * * * * * * * * * DotVarExp::toElem: f.spec @ char * * * * * * * * * * * * * * * * VarExp::toElem: f @ FormatSpec!char * * * * * * * * * * * * * * * * * DtoSymbolAddress ('f' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * type: FormatSpec!char * * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.spec: * * * * * * * * * * * * * * * * * Value: %50 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %f_arg, i32 0, i32 2 * * * * * * * * * * * * * * * Casting from 'char' to 'int' * * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * * * IntegerExp::toElem: 111 @ int * * * * * * * * * * * * * * * IntegerExp::toConstElem: 111 @ int * * * * * * * * * * * * * * * * value = i32 111 * * * * * * * * * * * * * * integral or pointer or interface * * * * * * * * * * * * * * lv: %52 = zext i8 %51 to i32 * * * * * * * * * * * * * * rv: i32 111 * * * * * * * * * * * * * IntegerExp::toElem: 8u @ uint * * * * * * * * * * * * * * IntegerExp::toConstElem: 8u @ uint * * * * * * * * * * * * * * * value = i32 8 * * * * * * * * * * * * * CondExp::toElem: cast(int)f.spec == 98 ? 2u : cast(int)f.spec == 115 || cast(int)f.spec == 100 || cast(int)f.spec == 117 ? 10u : 0u @ uint * * * * * * * * * * * * * * EqualExp::toElem: cast(int)f.spec == 98 @ bool * * * * * * * * * * * * * * * CastExp::toElem: cast(int)f.spec @ int * * * * * * * * * * * * * * * * DotVarExp::toElem: f.spec @ char * * * * * * * * * * * * * * * * * VarExp::toElem: f @ FormatSpec!char * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('f' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * type: FormatSpec!char * * * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.spec: * * * * * * * * * * * * * * * * * * Value: %58 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %f_arg, i32 0, i32 2 * * * * * * * * * * * * * * * * Casting from 'char' to 'int' * * * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * * * * IntegerExp::toElem: 98 @ int * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 98 @ int * * * * * * * * * * * * * * * * * value = i32 98 * * * * * * * * * * * * * * * integral or pointer or interface * * * * * * * * * * * * * * * lv: %60 = zext i8 %59 to i32 * * * * * * * * * * * * * * * rv: i32 98 * * * * * * * * * * * * * * IntegerExp::toElem: 2u @ uint * * * * * * * * * * * * * * * IntegerExp::toConstElem: 2u @ uint * * * * * * * * * * * * * * * * value = i32 2 * * * * * * * * * * * * * * CondExp::toElem: cast(int)f.spec == 115 || cast(int)f.spec == 100 || cast(int)f.spec == 117 ? 10u : 0u @ uint * * * * * * * * * * * * * * * OrOrExp::toElem: cast(int)f.spec == 115 || cast(int)f.spec == 100 || cast(int)f.spec == 117 @ bool * * * * * * * * * * * * * * * * OrOrExp::toElem: cast(int)f.spec == 115 || cast(int)f.spec == 100 @ bool * * * * * * * * * * * * * * * * * EqualExp::toElem: cast(int)f.spec == 115 @ bool * * * * * * * * * * * * * * * * * * CastExp::toElem: cast(int)f.spec @ int * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: f.spec @ char * * * * * * * * * * * * * * * * * * * * VarExp::toElem: f @ FormatSpec!char * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('f' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * type: FormatSpec!char * * * * * * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.spec: * * * * * * * * * * * * * * * * * * * * * Value: %62 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %f_arg, i32 0, i32 2 * * * * * * * * * * * * * * * * * * * Casting from 'char' to 'int' * * * * * * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 115 @ int * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 115 @ int * * * * * * * * * * * * * * * * * * * * value = i32 115 * * * * * * * * * * * * * * * * * * integral or pointer or interface * * * * * * * * * * * * * * * * * * lv: %64 = zext i8 %63 to i32 * * * * * * * * * * * * * * * * * * rv: i32 115 * * * * * * * * * * * * * * * * * EqualExp::toElem: cast(int)f.spec == 100 @ bool * * * * * * * * * * * * * * * * * * CastExp::toElem: cast(int)f.spec @ int * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: f.spec @ char * * * * * * * * * * * * * * * * * * * * VarExp::toElem: f @ FormatSpec!char * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('f' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * type: FormatSpec!char * * * * * * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.spec: * * * * * * * * * * * * * * * * * * * * * Value: %66 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %f_arg, i32 0, i32 2 * * * * * * * * * * * * * * * * * * * Casting from 'char' to 'int' * * * * * * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 100 @ int * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 100 @ int * * * * * * * * * * * * * * * * * * * * value = i32 100 * * * * * * * * * * * * * * * * * * integral or pointer or interface * * * * * * * * * * * * * * * * * * lv: %68 = zext i8 %67 to i32 * * * * * * * * * * * * * * * * * * rv: i32 100 * * * * * * * * * * * * * * * * EqualExp::toElem: cast(int)f.spec == 117 @ bool * * * * * * * * * * * * * * * * * CastExp::toElem: cast(int)f.spec @ int * * * * * * * * * * * * * * * * * * DotVarExp::toElem: f.spec @ char * * * * * * * * * * * * * * * * * * * VarExp::toElem: f @ FormatSpec!char * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('f' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * type: FormatSpec!char * * * * * * * * * * * * * * * * * * * Indexing aggregate field std.format.FormatSpec!char.FormatSpec.spec: * * * * * * * * * * * * * * * * * * * * Value: %70 = getelementptr %"std.format.FormatSpec!char.FormatSpec", %"std.format.FormatSpec!char.FormatSpec"* %f_arg, i32 0, i32 2 * * * * * * * * * * * * * * * * * * Casting from 'char' to 'int' * * * * * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * * * * * * IntegerExp::toElem: 117 @ int * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 117 @ int * * * * * * * * * * * * * * * * * * * value = i32 117 * * * * * * * * * * * * * * * * * integral or pointer or interface * * * * * * * * * * * * * * * * * lv: %72 = zext i8 %71 to i32 * * * * * * * * * * * * * * * * * rv: i32 117 * * * * * * * * * * * * * * * IntegerExp::toElem: 10u @ uint * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 10u @ uint * * * * * * * * * * * * * * * * * value = i32 10 * * * * * * * * * * * * * * * IntegerExp::toElem: 0u @ uint * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0u @ uint * * * * * * * * * * * * * * * * * value = i32 0 * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * lhs: %base = alloca i32, align 4 * * * * * * * * * * * * rhs: %55 = load i32, i32* %54 * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1431) * * * * * * * CallExp::toElem: enforceEx(base > 0u, delegate string() => "integral", "/usr/include/dlang/ldc/std/format.d", 1431LU) @ bool * * * * * * * * VarExp::toElem: enforceEx @ pure @safe bool(bool value, lazy string msg = "", string file = __FILE__, ulong line = cast(ulong)__LINE__) * * * * * * * * * DtoSymbolAddress ('enforceEx' of type 'pure @safe bool(bool value, lazy string msg = "", string file = __FILE__, ulong line = cast(ulong)__LINE__)') * * * * * * * * * * FuncDeclaration * * * * * * * * DtoCallFunction() * * * * * * * * * doing normal arguments * * * * * * * * * Arguments so far: (0) * * * * * * * * * Function type: pure @safe bool(bool value, lazy string msg = "", string file = __FILE__, ulong line = cast(ulong)__LINE__) * * * * * * * * * DtoArgument * * * * * * * * * * CmpExp::toElem: base > 0u @ bool * * * * * * * * * * * VarExp::toElem: base @ uint * * * * * * * * * * * * DtoSymbolAddress ('base' of type 'uint') * * * * * * * * * * * * * a normal variable * * * * * * * * * * * IntegerExp::toElem: 0u @ uint * * * * * * * * * * * * IntegerExp::toConstElem: 0u @ uint * * * * * * * * * * * * * value = i32 0 * * * * * * * * * * * type 1: %56 = load i32, i32* %base * * * * * * * * * * * type 2: i32 0 * * * * * * * * * DtoArgument * * * * * * * * * * FuncExp::toElem: __dgliteral5 @ string delegate() pure nothrow @nogc @safe * * * * * * * * * * * nested * * * * * * * * * * * kind = delegate * * * * * * * * * * * DtoDefineFunction(std.format.formatValue!(LockingTextWriter, const(ulong), char).formatValue.__dgliteral5): /usr/include/dlang/ldc/std/format.d(1432) * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe string()) * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * Final function type: { i64, i8* } (i8*) * * * * * * * * * * * * DtoResolveFunction(std.format.formatValue!(LockingTextWriter, const(ulong), char).formatValue.__dgliteral5): /usr/include/dlang/ldc/std/format.d(1432) * * * * * * * * * * * * * DtoDeclareFunction(std.format.formatValue!(LockingTextWriter, const(ulong), char).formatValue.__dgliteral5): /usr/include/dlang/ldc/std/format.d(1432) * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe string()) * * * * * * * * * * * * * * func = declare { i64, i8* } @_D3std6format58__T11formatValueTS3std5stdio4File17LockingTextWriterTxmTaZ11formatValueFS3std5stdio4File17LockingTextWriterxmKS3std6format18__T10FormatSpecTaZ10FormatSpecZ12__dgliteral5MFNaNbNiNfZAya(i8*) * * * * * * * * * * * * Doing function body for: __dgliteral5 * * * * * * * * * * * * DtoCreateNestedContext for __dgliteral5 * * * * * * * * * * * * * DtoCreateNestedContextType for std.format.formatValue!(LockingTextWriter, const(ulong), char).formatValue.__dgliteral5 * * * * * * * * * * * * * * DtoCreateNestedContextType for std.format.formatValue!(LockingTextWriter, const(ulong), char).formatValue * * * * * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1432) * * * * * * * * * * * * * * StringExp::toElem: "integral" @ string * * * * * * * * * * * * * * return value is '0x123bb390' * * * * * * * * * * * Building type: string delegate() pure nothrow @nogc @safe * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe string()) * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * Final function type: { i64, i8* } (i8*) * * * * * * * * * DtoArgument * * * * * * * * * * StringExp::toElem: "/usr/include/dlang/ldc/std/format.d" @ string * * * * * * * * * DtoArgument * * * * * * * * * * IntegerExp::toElem: 1431LU @ ulong * * * * * * * * * * * IntegerExp::toConstElem: 1431LU @ ulong * * * * * * * * * * * * value = i64 1431 * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1441) * * * * * * * DeclarationExp::toElem: alias C = ulong; | T=void * * * * * * * * DtoDeclarationExp: C * * * * * * * * * Ignoring Symbol: alias * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(1442) * * * * * * * CallExp::toElem: formatIntegral((LockingTextWriter __copytmp3446 = (__copytmp3446 = w).__postblit(); , __copytmp3446), val, f, base, 18446744073709551615LU) @ void * * * * * * * * VarExp::toElem: formatIntegral @ @safe void(LockingTextWriter w, const(ulong) val, ref FormatSpec!char f, uint base, ulong mask) * * * * * * * * * DtoSymbolAddress ('formatIntegral' of type '@safe void(LockingTextWriter w, const(ulong) val, ref FormatSpec!char f, uint base, ulong mask)') * * * * * * * * * * FuncDeclaration * * * * * * * * DtoCallFunction() * * * * * * * * * doing normal arguments * * * * * * * * * Arguments so far: (0) * * * * * * * * * Function type: @safe void(LockingTextWriter w, const(ulong) val, ref FormatSpec!char f, uint base, ulong mask) * * * * * * * * * DtoArgument * * * * * * * * * * CommaExp::toElem: LockingTextWriter __copytmp3446 = (__copytmp3446 = w).__postblit(); , __copytmp3446 @ LockingTextWriter * * * * * * * * * * * DeclarationExp::toElem: LockingTextWriter __copytmp3446 = (__copytmp3446 = w).__postblit(); | T=void * * * * * * * * * * * * DtoDeclarationExp: __copytmp3446 * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * DtoVarDeclaration(vdtype = LockingTextWriter) * * * * * * * * * * * * * * llvm value for decl: %__copytmp3446 = alloca %std.stdio.File.LockingTextWriter, align 8 * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * CallExp::toElem: (__copytmp3446 = w).__postblit() @ void * * * * * * * * * * * * * * * DotVarExp::toElem: (__copytmp3446 = w).__postblit @ @trusted void() * * * * * * * * * * * * * * * * AssignExp::toElem: __copytmp3446 = w | (LockingTextWriter)(LockingTextWriter = LockingTextWriter) * * * * * * * * * * * * * * * * * VarExp::toElem: __copytmp3446 @ LockingTextWriter * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__copytmp3446' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * VarExp::toElem: w @ LockingTextWriter * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * type: LockingTextWriter * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * %__copytmp3446 = alloca %std.stdio.File.LockingTextWriter, align 8 * * * * * * * * * * * * * * * * Function type: @trusted void() * * * * * * * * * * * VarExp::toElem: __copytmp3446 @ LockingTextWriter * * * * * * * * * * * * DtoSymbolAddress ('__copytmp3446' of type 'LockingTextWriter') * * * * * * * * * * * * * a normal variable * * * * * * * * * DtoArgument * * * * * * * * * * VarExp::toElem: val @ const(ulong) * * * * * * * * * * * DtoSymbolAddress ('val' of type 'const(ulong)') * * * * * * * * * * * * a normal variable * * * * * * * * * DtoArgument * * * * * * * * * * VarExp::toElem: f @ FormatSpec!char * * * * * * * * * * * DtoSymbolAddress ('f' of type 'FormatSpec!char') * * * * * * * * * * * * function param * * * * * * * * * * * * type: FormatSpec!char * * * * * * * * * DtoArgument * * * * * * * * * * VarExp::toElem: base @ uint * * * * * * * * * * * DtoSymbolAddress ('base' of type 'uint') * * * * * * * * * * * * a normal variable * * * * * * * * * DtoArgument * * * * * * * * * * IntegerExp::toElem: 18446744073709551615LU @ ulong * * * * * * * * * * * IntegerExp::toConstElem: 18446744073709551615LU @ ulong * * * * * * * * * * * * value = i64 -1 * TemplateInstance::codegen: 'std.format.formatValue!(LockingTextWriter, const(ulong), char).formatValue.__lambda4!(const(ulong))' * * DtoDefineFunction(std.format.formatValue!(LockingTextWriter, const(ulong), char).formatValue.__lambda4): /usr/include/dlang/ldc/std/format.d(1407) * TemplateInstance::codegen: 'std.format.formattedWrite!(LockingTextWriter, char, string, const(char), const(ulong)).formattedWrite.__lambda12!(const(ulong))' * * DtoDefineFunction(std.format.formattedWrite!(LockingTextWriter, char, string, const(char), const(ulong)).formattedWrite.__lambda12): /usr/include/dlang/ldc/std/format.d(437) * TemplateInstance::codegen: 'std.format.getNthInt!(string, const(char), const(ulong))' * * DtoDefineFunction(std.format.getNthInt!(string, const(char), const(ulong)).getNthInt): /usr/include/dlang/ldc/std/format.d(3501) * * * Doing function body for: getNthInt * * * DtoCreateNestedContext for getNthInt * * * * DtoCreateNestedContextType for std.format.getNthInt!(string, const(char), const(ulong)).getNthInt * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3502) * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3506) * * * * * * VarExp::toElem: index @ uint * * * * * * * DtoSymbolAddress ('index' of type 'uint') * * * * * * * * function param * * * * * * * * type: uint * * * * * * if conditional: %1 = load i32, i32* %index * * * * * * Casting from 'uint' to 'bool' * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3507) * * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3508) * * * * * * * * CallExp::toElem: getNthInt(index - 1u, _param_2, _param_3) @ int * * * * * * * * * VarExp::toElem: getNthInt @ pure @safe int(uint index, const(char) _param_1, const(ulong) _param_2) * * * * * * * * * * DtoSymbolAddress ('getNthInt' of type 'pure @safe int(uint index, const(char) _param_1, const(ulong) _param_2)') * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * DtoFunctionType(pure @safe int(uint index, const(char) _param_1, const(ulong) _param_2)) * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * Final function type: i32 (i64, i8, i32) * * * * * * * * * * * DtoResolveFunction(std.format.getNthInt!(const(char), const(ulong)).getNthInt): /usr/include/dlang/ldc/std/format.d(3501) * * * * * * * * * * * * DtoDeclareFunction(std.format.getNthInt!(const(char), const(ulong)).getNthInt): /usr/include/dlang/ldc/std/format.d(3501) * * * * * * * * * * * * * DtoFunctionType(pure @safe int(uint index, const(char) _param_1, const(ulong) _param_2)) * * * * * * * * * * * * * func = declare i32 @_D3std6format20__T9getNthIntTxaTxmZ9getNthIntFNaNfkxaxmZi(i64, i8, i32) * * * * * * * * * DtoCallFunction() * * * * * * * * * * Building type: pure @safe int(uint index, const(char) _param_1, const(ulong) _param_2) * * * * * * * * * * * DtoFunctionType(pure @safe int(uint index, const(char) _param_1, const(ulong) _param_2)) * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * Final function type: i32 (i64, i8, i32) * * * * * * * * * * doing normal arguments * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * Function type: pure @safe int(uint index, const(char) _param_1, const(ulong) _param_2) * * * * * * * * * * DtoArgument * * * * * * * * * * * MinExp::toElem: index - 1u @ uint * * * * * * * * * * * * VarExp::toElem: index @ uint * * * * * * * * * * * * * DtoSymbolAddress ('index' of type 'uint') * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * type: uint * * * * * * * * * * * * IntegerExp::toElem: 1u @ uint * * * * * * * * * * * * * IntegerExp::toConstElem: 1u @ uint * * * * * * * * * * * * * * value = i32 1 * * * * * * * * * * DtoArgument * * * * * * * * * * * VarExp::toElem: _param_2 @ const(char) * * * * * * * * * * * * DtoSymbolAddress ('_param_2' of type 'const(char)') * * * * * * * * * * * * * function param * * * * * * * * * * * * * type: const(char) * * * * * * * * * * DtoArgument * * * * * * * * * * * VarExp::toElem: _param_3 @ const(ulong) * * * * * * * * * * * * DtoSymbolAddress ('_param_3' of type 'const(ulong)') * * * * * * * * * * * * * function param * * * * * * * * * * * * * type: const(ulong) * * * * * * * * return value is '0x12c8df90' * * * * * ThrowStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3516) * * * * * * NewExp::toElem: new FormatException("int expected", "/usr/include/dlang/ldc/std/format.d", 3516LU, null) @ std.format.FormatException * * * * * * * new class * * * * * * * Calling constructor * * * * * * * DtoCallFunction() * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (1) * * * * * * * * * %.newclass_gc = bitcast %object.Object* %.newclass_gc_alloc to %std.format.FormatException* * * * * * * * * Function type: pure nothrow @safe FormatException(string msg, string fn = __FILE__, ulong ln = cast(ulong)__LINE__, Throwable next = null) * * * * * * * * DtoArgument * * * * * * * * * StringExp::toElem: "int expected" @ string * * * * * * * * DtoArgument * * * * * * * * * StringExp::toElem: "/usr/include/dlang/ldc/std/format.d" @ string * * * * * * * * DtoArgument * * * * * * * * * IntegerExp::toElem: 3516LU @ ulong * * * * * * * * * * IntegerExp::toConstElem: 3516LU @ ulong * * * * * * * * * * * value = i64 3516 * * * * * * * * DtoArgument * * * * * * * * * NullExp::toElem(type=object.Throwable): null * * * * * * * * * * NullExp::toConstElem(type=object.Throwable): null * * * * * * * * Rewrite: putParam * TemplateInstance::codegen: 'std.format.getNthInt!(const(char), const(ulong))' * * DtoDefineFunction(std.format.getNthInt!(const(char), const(ulong)).getNthInt): /usr/include/dlang/ldc/std/format.d(3501) * * * Doing function body for: getNthInt * * * DtoCreateNestedContext for getNthInt * * * * DtoCreateNestedContextType for std.format.getNthInt!(const(char), const(ulong)).getNthInt * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3502) * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3506) * * * * * * VarExp::toElem: index @ uint * * * * * * * DtoSymbolAddress ('index' of type 'uint') * * * * * * * * function param * * * * * * * * type: uint * * * * * * if conditional: %1 = load i32, i32* %index * * * * * * Casting from 'uint' to 'bool' * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3507) * * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3508) * * * * * * * * CallExp::toElem: getNthInt(index - 1u, _param_2) @ int * * * * * * * * * VarExp::toElem: getNthInt @ pure @safe int(uint index, const(ulong) _param_1) * * * * * * * * * * DtoSymbolAddress ('getNthInt' of type 'pure @safe int(uint index, const(ulong) _param_1)') * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * DtoFunctionType(pure @safe int(uint index, const(ulong) _param_1)) * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * Final function type: i32 (i64, i32) * * * * * * * * * * * DtoResolveFunction(std.format.getNthInt!(const(ulong)).getNthInt): /usr/include/dlang/ldc/std/format.d(3501) * * * * * * * * * * * * DtoDeclareFunction(std.format.getNthInt!(const(ulong)).getNthInt): /usr/include/dlang/ldc/std/format.d(3501) * * * * * * * * * * * * * DtoFunctionType(pure @safe int(uint index, const(ulong) _param_1)) * * * * * * * * * * * * * func = declare i32 @_D3std6format17__T9getNthIntTxmZ9getNthIntFNaNfkxmZi(i64, i32) * * * * * * * * * DtoCallFunction() * * * * * * * * * * Building type: pure @safe int(uint index, const(ulong) _param_1) * * * * * * * * * * * DtoFunctionType(pure @safe int(uint index, const(ulong) _param_1)) * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * Final function type: i32 (i64, i32) * * * * * * * * * * doing normal arguments * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * Function type: pure @safe int(uint index, const(ulong) _param_1) * * * * * * * * * * DtoArgument * * * * * * * * * * * MinExp::toElem: index - 1u @ uint * * * * * * * * * * * * VarExp::toElem: index @ uint * * * * * * * * * * * * * DtoSymbolAddress ('index' of type 'uint') * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * type: uint * * * * * * * * * * * * IntegerExp::toElem: 1u @ uint * * * * * * * * * * * * * IntegerExp::toConstElem: 1u @ uint * * * * * * * * * * * * * * value = i32 1 * * * * * * * * * * DtoArgument * * * * * * * * * * * VarExp::toElem: _param_2 @ const(ulong) * * * * * * * * * * * * DtoSymbolAddress ('_param_2' of type 'const(ulong)') * * * * * * * * * * * * * function param * * * * * * * * * * * * * type: const(ulong) * * * * * * * * return value is '0x12c92c58' * * * * * ThrowStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3516) * * * * * * NewExp::toElem: new FormatException("int expected", "/usr/include/dlang/ldc/std/format.d", 3516LU, null) @ std.format.FormatException * * * * * * * new class * * * * * * * Calling constructor * * * * * * * DtoCallFunction() * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (1) * * * * * * * * * %.newclass_gc = bitcast %object.Object* %.newclass_gc_alloc to %std.format.FormatException* * * * * * * * * Function type: pure nothrow @safe FormatException(string msg, string fn = __FILE__, ulong ln = cast(ulong)__LINE__, Throwable next = null) * * * * * * * * DtoArgument * * * * * * * * * StringExp::toElem: "int expected" @ string * * * * * * * * DtoArgument * * * * * * * * * StringExp::toElem: "/usr/include/dlang/ldc/std/format.d" @ string * * * * * * * * DtoArgument * * * * * * * * * IntegerExp::toElem: 3516LU @ ulong * * * * * * * * * * IntegerExp::toConstElem: 3516LU @ ulong * * * * * * * * * * * value = i64 3516 * * * * * * * * DtoArgument * * * * * * * * * NullExp::toElem(type=object.Throwable): null * * * * * * * * * * NullExp::toConstElem(type=object.Throwable): null * * * * * * * * Rewrite: putParam * TemplateInstance::codegen: 'std.format.getNthInt!(const(ulong))' * * DtoDefineFunction(std.format.getNthInt!(const(ulong)).getNthInt): /usr/include/dlang/ldc/std/format.d(3501) * * * Doing function body for: getNthInt * * * DtoCreateNestedContext for getNthInt * * * * DtoCreateNestedContextType for std.format.getNthInt!(const(ulong)).getNthInt * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3502) * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3506) * * * * * * VarExp::toElem: index @ uint * * * * * * * DtoSymbolAddress ('index' of type 'uint') * * * * * * * * function param * * * * * * * * type: uint * * * * * * if conditional: %1 = load i32, i32* %index * * * * * * Casting from 'uint' to 'bool' * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3507) * * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3508) * * * * * * * * CallExp::toElem: getNthInt(index - 1u) @ int * * * * * * * * * VarExp::toElem: getNthInt @ pure @safe int(uint index) * * * * * * * * * * DtoSymbolAddress ('getNthInt' of type 'pure @safe int(uint index)') * * * * * * * * * * * FuncDeclaration * * * * * * * * * DtoCallFunction() * * * * * * * * * * doing normal arguments * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * Function type: pure @safe int(uint index) * * * * * * * * * * DtoArgument * * * * * * * * * * * MinExp::toElem: index - 1u @ uint * * * * * * * * * * * * VarExp::toElem: index @ uint * * * * * * * * * * * * * DtoSymbolAddress ('index' of type 'uint') * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * type: uint * * * * * * * * * * * * IntegerExp::toElem: 1u @ uint * * * * * * * * * * * * * IntegerExp::toConstElem: 1u @ uint * * * * * * * * * * * * * * value = i32 1 * * * * * * * * return value is '0x12c95b80' * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3512) * * * * * * CallExp::toElem: to(_param_1) @ int * * * * * * * VarExp::toElem: to @ pure @safe int(const(ulong) _param_0) * * * * * * * * DtoSymbolAddress ('to' of type 'pure @safe int(const(ulong) _param_0)') * * * * * * * * * FuncDeclaration * * * * * * * * * DtoFunctionType(pure @safe int(const(ulong) _param_0)) * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: i32 (i64) * * * * * * * * * DtoResolveFunction(std.conv.to!int.to!(const(ulong)).to): /usr/include/dlang/ldc/std/conv.d(292) * * * * * * * * * * DtoDeclareFunction(std.conv.to!int.to!(const(ulong)).to): /usr/include/dlang/ldc/std/conv.d(292) * * * * * * * * * * * DtoFunctionType(pure @safe int(const(ulong) _param_0)) * * * * * * * * * * * func = declare i32 @_D3std4conv9__T2toTiZ10__T2toTxmZ2toFNaNfxmZi(i64) * * * * * * * DtoCallFunction() * * * * * * * * Building type: pure @safe int(const(ulong) _param_0) * * * * * * * * * DtoFunctionType(pure @safe int(const(ulong) _param_0)) * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: i32 (i64) * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (0) * * * * * * * * Function type: pure @safe int(const(ulong) _param_0) * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_1 @ const(ulong) * * * * * * * * * * DtoSymbolAddress ('_param_1' of type 'const(ulong)') * * * * * * * * * * * function param * * * * * * * * * * * type: const(ulong) * * * * * * return value is '0x12c977b0' * TemplateInstance::codegen: 'std.traits.isIntegral!(const(ulong))' * * VarDeclaration::codegen(): 'std.traits.isIntegral!(const(ulong)).isIntegral' * * * DtoResolveVariable(std.traits.isIntegral!(const(ulong)).isIntegral) * TemplateInstance::codegen: 'std.conv.isRawStaticArray!(const(ulong))' * TemplateInstance::codegen: 'std.traits.isStaticArray!(const(ulong))' * TemplateInstance::codegen: 'std.conv.to!int.to!(const(ulong))' * * DtoDefineFunction(std.conv.to!int.to!(const(ulong)).to): /usr/include/dlang/ldc/std/conv.d(292) * * * Doing function body for: to * * * DtoCreateNestedContext for to * * * * DtoCreateNestedContextType for std.conv.to!int.to!(const(ulong)).to * * * CompoundStatement::toIR(): * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(295) * * * * * CallExp::toElem: toImpl(_param_0) @ int * * * * * * VarExp::toElem: toImpl @ pure @safe int(const(ulong) value) * * * * * * * DtoSymbolAddress ('toImpl' of type 'pure @safe int(const(ulong) value)') * * * * * * * * FuncDeclaration * * * * * * * * DtoFunctionType(pure @safe int(const(ulong) value)) * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * Final function type: i32 (i64) * * * * * * * * DtoResolveFunction(std.conv.toImpl!(int, const(ulong)).toImpl): /usr/include/dlang/ldc/std/conv.d(1317) * * * * * * * * * DtoDeclareFunction(std.conv.toImpl!(int, const(ulong)).toImpl): /usr/include/dlang/ldc/std/conv.d(1317) * * * * * * * * * * DtoFunctionType(pure @safe int(const(ulong) value)) * * * * * * * * * * func = declare i32 @_D3std4conv16__T6toImplTiTxmZ6toImplFNaNfxmZi(i64) * * * * * * DtoCallFunction() * * * * * * * Building type: pure @safe int(const(ulong) value) * * * * * * * * DtoFunctionType(pure @safe int(const(ulong) value)) * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * Final function type: i32 (i64) * * * * * * * doing normal arguments * * * * * * * Arguments so far: (0) * * * * * * * Function type: pure @safe int(const(ulong) value) * * * * * * * DtoArgument * * * * * * * * VarExp::toElem: _param_0 @ const(ulong) * * * * * * * * * DtoSymbolAddress ('_param_0' of type 'const(ulong)') * * * * * * * * * * function param * * * * * * * * * * type: const(ulong) * * * * * return value is '0x12c99d20' * TemplateInstance::codegen: 'std.traits.isImplicitlyConvertible!(const(ulong), int)' * TemplateInstance::codegen: 'std.range.primitives.isInfinite!(const(ulong))' * TemplateInstance::codegen: 'std.range.primitives.isInputRange!(const(ulong))' * TemplateInstance::codegen: 'std.traits.isNumeric!(const(ulong))' * TemplateInstance::codegen: 'std.traits.NumericTypeOf!(const(ulong))' * TemplateInstance::codegen: 'std.traits.isSomeString!(const(ulong))' * TemplateInstance::codegen: 'std.traits.isDynamicArray!(const(ulong))' * TemplateInstance::codegen: 'std.traits.isAssociativeArray!(const(ulong))' * TemplateInstance::codegen: 'std.conv.isExactSomeString!(const(ulong))' * TemplateInstance::codegen: 'std.conv.toImpl!(int, const(ulong))' * * DtoDefineFunction(std.conv.toImpl!(int, const(ulong)).toImpl): /usr/include/dlang/ldc/std/conv.d(1317) * * * Doing function body for: toImpl * * * DtoCreateNestedContext for toImpl * * * * DtoCreateNestedContextType for std.conv.toImpl!(int, const(ulong)).toImpl * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(1321) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(1322) * * * * * * DeclarationExp::toElem: enum byte sSmallest = cast(byte)0; | T=void * * * * * * * DtoDeclarationExp: sSmallest * * * * * * * * VarDeclaration * * * * * * * * Manifest constant, nothing to do. * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(1323) * * * * * * DeclarationExp::toElem: enum int tSmallest = -2147483648; | T=void * * * * * * * DtoDeclarationExp: tSmallest * * * * * * * * VarDeclaration * * * * * * * * Manifest constant, nothing to do. * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(1342) * * * * * * CmpExp::toElem: value > 2147483647LU @ bool * * * * * * * VarExp::toElem: value @ ulong * * * * * * * * DtoSymbolAddress ('value' of type 'const(ulong)') * * * * * * * * * function param * * * * * * * * * type: const(ulong) * * * * * * * IntegerExp::toElem: 2147483647LU @ ulong * * * * * * * * IntegerExp::toConstElem: 2147483647LU @ ulong * * * * * * * * * value = i64 2147483647 * * * * * * * type 1: %1 = load i64, i64* %value * * * * * * * type 2: i64 2147483647 * * * * * * ThrowStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(1343) * * * * * * * NewExp::toElem: new ConvOverflowException("Conversion positive overflow", "/usr/include/dlang/ldc/std/conv.d", 1343LU) @ std.conv.ConvOverflowException * * * * * * * * new class * * * * * * * * Calling constructor * * * * * * * * DtoCallFunction() * * * * * * * * * doing normal arguments * * * * * * * * * Arguments so far: (1) * * * * * * * * * * %.newclass_gc = bitcast %object.Object* %.newclass_gc_alloc to %std.conv.ConvOverflowException* * * * * * * * * * Function type: pure nothrow @safe ConvOverflowException(string s, string fn = __FILE__, ulong ln = cast(ulong)__LINE__) * * * * * * * * * DtoArgument * * * * * * * * * * StringExp::toElem: "Conversion positive overflow" @ string * * * * * * * * * DtoArgument * * * * * * * * * * StringExp::toElem: "/usr/include/dlang/ldc/std/conv.d" @ string * * * * * * * * * DtoArgument * * * * * * * * * * IntegerExp::toElem: 1343LU @ ulong * * * * * * * * * * * IntegerExp::toConstElem: 1343LU @ ulong * * * * * * * * * * * * value = i64 1343 * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(1345) * * * * * * CallExp::toElem: (*(ref const(ulong) value) => cast(int)value)(value) @ int * * * * * * * PtrExp::toElem: *(ref const(ulong) value) => cast(int)value @ pure nothrow @nogc @trusted int(ref const(ulong) value) * * * * * * * * FuncExp::toElem: __lambda2 @ int function(ref const(ulong) value) pure nothrow @nogc @trusted * * * * * * * * * kind = function * * * * * * * * * DtoDefineFunction(std.conv.toImpl!(int, const(ulong)).toImpl.__lambda2): /usr/include/dlang/ldc/std/conv.d(1345) * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted int(ref const(ulong) value)) * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * Final function type: i32 (i64*) * * * * * * * * * * DtoResolveFunction(std.conv.toImpl!(int, const(ulong)).toImpl.__lambda2): /usr/include/dlang/ldc/std/conv.d(1345) * * * * * * * * * * * DtoDeclareFunction(std.conv.toImpl!(int, const(ulong)).toImpl.__lambda2): /usr/include/dlang/ldc/std/conv.d(1345) * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted int(ref const(ulong) value)) * * * * * * * * * * * * func = declare i32 @_D3std4conv16__T6toImplTiTxmZ6toImplFxmZ17__T9__lambda2TxmZ9__lambda2FNaNbNiNeKxmZi(i64*) * * * * * * * * * * Doing function body for: __lambda2 * * * * * * * * * * DtoCreateNestedContext for __lambda2 * * * * * * * * * * * DtoCreateNestedContextType for std.conv.toImpl!(int, const(ulong)).toImpl.__lambda2 * * * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/conv.d(1345) * * * * * * * * * * * * CastExp::toElem: cast(int)value @ int * * * * * * * * * * * * * VarExp::toElem: value @ const(ulong) * * * * * * * * * * * * * * DtoSymbolAddress ('value' of type 'const(ulong)') * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * type: const(ulong) * * * * * * * * * * * * * Casting from 'const(ulong)' to 'int' * * * * * * * * * * * * return value is '0x12c9e408' * * * * * * * DtoCallFunction() * * * * * * * * Building type: pure nothrow @nogc @trusted int(ref const(ulong) value) * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted int(ref const(ulong) value)) * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: i32 (i64*) * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (0) * * * * * * * * Function type: pure nothrow @nogc @trusted int(ref const(ulong) value) * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: value @ const(ulong) * * * * * * * * * * DtoSymbolAddress ('value' of type 'const(ulong)') * * * * * * * * * * * function param * * * * * * * * * * * type: const(ulong) * * * * * * return value is '0x12c9e9d0' * TemplateInstance::codegen: 'std.traits.mostNegative!(const(ulong))' * * VarDeclaration::codegen(): 'std.traits.mostNegative!(const(ulong)).mostNegative' * * * DtoResolveVariable(std.traits.mostNegative!(const(ulong)).mostNegative) * TemplateInstance::codegen: 'std.conv.toImpl!(int, const(ulong)).toImpl.__lambda2!(const(ulong))' * * DtoDefineFunction(std.conv.toImpl!(int, const(ulong)).toImpl.__lambda2): /usr/include/dlang/ldc/std/conv.d(1345) * TemplateInstance::codegen: 'std.traits.isIntegral!(const(char))' * * VarDeclaration::codegen(): 'std.traits.isIntegral!(const(char)).isIntegral' * * * DtoResolveVariable(std.traits.isIntegral!(const(char)).isIntegral) * TemplateInstance::codegen: 'std.format.formatNth!(LockingTextWriter, char, string, const(char), const(ulong))' * * DtoDefineFunction(std.format.formatNth!(LockingTextWriter, char, string, const(char), const(ulong)).formatNth): /usr/include/dlang/ldc/std/format.d(3460) * * * Doing function body for: formatNth * * * DtoCreateNestedContext for formatNth * * * * DtoCreateNestedContextType for std.format.formatNth!(LockingTextWriter, char, string, const(char), const(ulong)).formatNth * * * TryFinallyStatement::toIR(): * * * * ExpStatement::toIR(): * * * * * CallExp::toElem: w.~this() @ void * * * * * * DotVarExp::toElem: w.~this @ @trusted void() * * * * * * * VarExp::toElem: w @ LockingTextWriter * * * * * * * * DtoSymbolAddress ('w' of type 'LockingTextWriter') * * * * * * * * * function param * * * * * * * * * type: LockingTextWriter * * * * * * DtoCallFunction() * * * * * * * doing normal arguments * * * * * * * Arguments so far: (1) * * * * * * * * %std.stdio.File.LockingTextWriter* %w_arg * * * * * * * Function type: @trusted void() * * * * CompoundStatement::toIR(): * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3461) * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3463) * * * * * * * DeclarationExp::toElem: static template gencode(ulong count) | T=void * * * * * * * * DtoDeclarationExp: __anonymous * * * * * * * * * AttribDeclaration * * * * * * * * * DtoDeclarationExp: gencode(ulong count)() * * * * * * * * * * Ignoring Symbol: template * * * * * * SwitchStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3477) * * * * * * * has default * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3478) * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3478) * * * * * * * * * CaseStatement::toIR(): /usr/include/dlang/ldc/std/format.d-mixin-3479(3479) * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * value = i64 0 * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d-mixin-3479(3479) * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d-mixin-3479(3479) * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d-mixin-3479(3479) * * * * * * * * * * * * * CallExp::toElem: formatValue((LockingTextWriter __copytmp3461 = (__copytmp3461 = w).__postblit(); , __copytmp3461), _param_3, f) @ void * * * * * * * * * * * * * * VarExp::toElem: formatValue @ @safe void(LockingTextWriter w, string obj, ref FormatSpec!char f) * * * * * * * * * * * * * * * DtoSymbolAddress ('formatValue' of type '@safe void(LockingTextWriter w, string obj, ref FormatSpec!char f)') * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * Function type: @safe void(LockingTextWriter w, string obj, ref FormatSpec!char f) * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * CommaExp::toElem: LockingTextWriter __copytmp3461 = (__copytmp3461 = w).__postblit(); , __copytmp3461 @ LockingTextWriter * * * * * * * * * * * * * * * * * DeclarationExp::toElem: LockingTextWriter __copytmp3461 = (__copytmp3461 = w).__postblit(); | T=void * * * * * * * * * * * * * * * * * * DtoDeclarationExp: __copytmp3461 * * * * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = LockingTextWriter) * * * * * * * * * * * * * * * * * * * * llvm value for decl: %__copytmp3461 = alloca %std.stdio.File.LockingTextWriter, align 8 * * * * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * * * * CallExp::toElem: (__copytmp3461 = w).__postblit() @ void * * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: (__copytmp3461 = w).__postblit @ @trusted void() * * * * * * * * * * * * * * * * * * * * * * AssignExp::toElem: __copytmp3461 = w | (LockingTextWriter)(LockingTextWriter = LockingTextWriter) * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: __copytmp3461 @ LockingTextWriter * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__copytmp3461' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: w @ LockingTextWriter * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * * * * type: LockingTextWriter * * * * * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * * * * * * %__copytmp3461 = alloca %std.stdio.File.LockingTextWriter, align 8 * * * * * * * * * * * * * * * * * * * * * * Function type: @trusted void() * * * * * * * * * * * * * * * * * VarExp::toElem: __copytmp3461 @ LockingTextWriter * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__copytmp3461' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * VarExp::toElem: _param_3 @ string * * * * * * * * * * * * * * * * * DtoSymbolAddress ('_param_3' of type 'string') * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * type: string * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * VarExp::toElem: f @ FormatSpec!char * * * * * * * * * * * * * * * * * DtoSymbolAddress ('f' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * type: FormatSpec!char * * * * * * * * * * * * BreakStatement::toIR(): /usr/include/dlang/ldc/std/format.d-mixin-3479(3479) * * * * * * * * * CaseStatement::toIR(): /usr/include/dlang/ldc/std/format.d-mixin-3479(3479) * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * value = i64 1 * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d-mixin-3479(3479) * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d-mixin-3479(3479) * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d-mixin-3479(3479) * * * * * * * * * * * * * CallExp::toElem: formatValue((LockingTextWriter __copytmp3465 = (__copytmp3465 = w).__postblit(); , __copytmp3465), _param_4, f) @ void * * * * * * * * * * * * * * VarExp::toElem: formatValue @ @safe void(LockingTextWriter w, const(char) obj, ref FormatSpec!char f) * * * * * * * * * * * * * * * DtoSymbolAddress ('formatValue' of type '@safe void(LockingTextWriter w, const(char) obj, ref FormatSpec!char f)') * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * Function type: @safe void(LockingTextWriter w, const(char) obj, ref FormatSpec!char f) * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * CommaExp::toElem: LockingTextWriter __copytmp3465 = (__copytmp3465 = w).__postblit(); , __copytmp3465 @ LockingTextWriter * * * * * * * * * * * * * * * * * DeclarationExp::toElem: LockingTextWriter __copytmp3465 = (__copytmp3465 = w).__postblit(); | T=void * * * * * * * * * * * * * * * * * * DtoDeclarationExp: __copytmp3465 * * * * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = LockingTextWriter) * * * * * * * * * * * * * * * * * * * * llvm value for decl: %__copytmp3465 = alloca %std.stdio.File.LockingTextWriter, align 8 * * * * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * * * * CallExp::toElem: (__copytmp3465 = w).__postblit() @ void * * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: (__copytmp3465 = w).__postblit @ @trusted void() * * * * * * * * * * * * * * * * * * * * * * AssignExp::toElem: __copytmp3465 = w | (LockingTextWriter)(LockingTextWriter = LockingTextWriter) * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: __copytmp3465 @ LockingTextWriter * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__copytmp3465' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: w @ LockingTextWriter * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * * * * type: LockingTextWriter * * * * * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * * * * * * %__copytmp3465 = alloca %std.stdio.File.LockingTextWriter, align 8 * * * * * * * * * * * * * * * * * * * * * * Function type: @trusted void() * * * * * * * * * * * * * * * * * VarExp::toElem: __copytmp3465 @ LockingTextWriter * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__copytmp3465' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * VarExp::toElem: _param_4 @ const(char) * * * * * * * * * * * * * * * * * DtoSymbolAddress ('_param_4' of type 'const(char)') * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * type: const(char) * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * VarExp::toElem: f @ FormatSpec!char * * * * * * * * * * * * * * * * * DtoSymbolAddress ('f' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * type: FormatSpec!char * * * * * * * * * * * * BreakStatement::toIR(): /usr/include/dlang/ldc/std/format.d-mixin-3479(3479) * * * * * * * * * CaseStatement::toIR(): /usr/include/dlang/ldc/std/format.d-mixin-3479(3479) * * * * * * * * * * IntegerExp::toConstElem: 2LU @ ulong * * * * * * * * * * * value = i64 2 * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d-mixin-3479(3479) * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d-mixin-3479(3479) * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d-mixin-3479(3479) * * * * * * * * * * * * * CallExp::toElem: formatValue((LockingTextWriter __copytmp3469 = (__copytmp3469 = w).__postblit(); , __copytmp3469), _param_5, f) @ void * * * * * * * * * * * * * * VarExp::toElem: formatValue @ @safe void(LockingTextWriter w, const(ulong) obj, ref FormatSpec!char f) * * * * * * * * * * * * * * * DtoSymbolAddress ('formatValue' of type '@safe void(LockingTextWriter w, const(ulong) obj, ref FormatSpec!char f)') * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * Function type: @safe void(LockingTextWriter w, const(ulong) obj, ref FormatSpec!char f) * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * CommaExp::toElem: LockingTextWriter __copytmp3469 = (__copytmp3469 = w).__postblit(); , __copytmp3469 @ LockingTextWriter * * * * * * * * * * * * * * * * * DeclarationExp::toElem: LockingTextWriter __copytmp3469 = (__copytmp3469 = w).__postblit(); | T=void * * * * * * * * * * * * * * * * * * DtoDeclarationExp: __copytmp3469 * * * * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = LockingTextWriter) * * * * * * * * * * * * * * * * * * * * llvm value for decl: %__copytmp3469 = alloca %std.stdio.File.LockingTextWriter, align 8 * * * * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * * * * CallExp::toElem: (__copytmp3469 = w).__postblit() @ void * * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: (__copytmp3469 = w).__postblit @ @trusted void() * * * * * * * * * * * * * * * * * * * * * * AssignExp::toElem: __copytmp3469 = w | (LockingTextWriter)(LockingTextWriter = LockingTextWriter) * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: __copytmp3469 @ LockingTextWriter * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__copytmp3469' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: w @ LockingTextWriter * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * * * * type: LockingTextWriter * * * * * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * * * * * * %__copytmp3469 = alloca %std.stdio.File.LockingTextWriter, align 8 * * * * * * * * * * * * * * * * * * * * * * Function type: @trusted void() * * * * * * * * * * * * * * * * * VarExp::toElem: __copytmp3469 @ LockingTextWriter * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__copytmp3469' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * VarExp::toElem: _param_5 @ const(ulong) * * * * * * * * * * * * * * * * * DtoSymbolAddress ('_param_5' of type 'const(ulong)') * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * type: const(ulong) * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * VarExp::toElem: f @ FormatSpec!char * * * * * * * * * * * * * * * * * DtoSymbolAddress ('f' of type 'FormatSpec!char') * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * type: FormatSpec!char * * * * * * * * * * * * BreakStatement::toIR(): /usr/include/dlang/ldc/std/format.d-mixin-3479(3479) * * * * * * * * * DefaultStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3481) * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3481) * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3482) * * * * * * * * * * * * HaltExp::toElem: halt * * * * * * * VarExp::toElem: index @ ulong * * * * * * * * DtoSymbolAddress ('index' of type 'ulong') * * * * * * * * * function param * * * * * * * * * type: ulong * TemplateInstance::codegen: 'std.format.formatNth!(LockingTextWriter, char, string, const(char), const(ulong)).formatNth.gencode!3LU' * * DtoDefineFunction(std.format.formatNth!(LockingTextWriter, char, string, const(char), const(ulong)).formatNth.gencode!3LU.gencode): /usr/include/dlang/ldc/std/format.d(3463) * * * DtoFunctionType(pure nothrow @safe string()) * * * * x86-64 ABI: Transforming return type * * * * x86-64 ABI: Transforming argument types * * * * Final function type: { i64, i8* } () * * * DtoResolveFunction(std.format.formatNth!(LockingTextWriter, char, string, const(char), const(ulong)).formatNth.gencode!3LU.gencode): /usr/include/dlang/ldc/std/format.d(3463) * * * * DtoDeclareFunction(std.format.formatNth!(LockingTextWriter, char, string, const(char), const(ulong)).formatNth.gencode!3LU.gencode): /usr/include/dlang/ldc/std/format.d(3463) * * * * * DtoFunctionType(pure nothrow @safe string()) * * * * * func = declare { i64, i8* } @_D3std6format62__T9formatNthTS3std5stdio4File17LockingTextWriterTaTAyaTxaTxmZ9formatNthFS3std5stdio4File17LockingTextWriterKS3std6format18__T10FormatSpecTaZ10FormatSpecmAyaxaxmZ16__T7gencodeVmi3Z7gencodeFNaNbNfZAya() * * * Doing function body for: gencode * * * DtoCreateNestedContext for gencode * * * * DtoCreateNestedContextType for std.format.formatNth!(LockingTextWriter, char, string, const(char), const(ulong)).formatNth.gencode!3LU.gencode * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3464) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3465) * * * * * * DeclarationExp::toElem: string result = null; | T=void * * * * * * * DtoDeclarationExp: result * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = string) * * * * * * * * * llvm value for decl: %result = alloca { i64, i8* }, align 8 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: result = null | (string)(string = string) * * * * * * * * * * VarExp::toElem: result @ string * * * * * * * * * * * DtoSymbolAddress ('result' of type 'string') * * * * * * * * * * * * a normal variable * * * * * * * * * * NullExp::toElem(type=string): null * * * * * * * * * * * NullExp::toConstElem(type=string): null * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * DtoSetArrayToNull * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3466) * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3466) * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3466) * * * * * * * * DeclarationExp::toElem: ulong __key3458 = 0LU; | T=void * * * * * * * * * DtoDeclarationExp: __key3458 * * * * * * * * * * VarDeclaration * * * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * * * llvm value for decl: %__key3458 = alloca i64, align 8 * * * * * * * * * * * expression initializer * * * * * * * * * * * AssignExp::toElem: __key3458 = 0LU | (ulong)(ulong = ulong) * * * * * * * * * * * * VarExp::toElem: __key3458 @ ulong * * * * * * * * * * * * * DtoSymbolAddress ('__key3458' of type 'ulong') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * lhs: %__key3458 = alloca i64, align 8 * * * * * * * * * * * * * rhs: i64 0 * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3466) * * * * * * * * DeclarationExp::toElem: ulong __limit3459 = 3LU; | T=void * * * * * * * * * DtoDeclarationExp: __limit3459 * * * * * * * * * * VarDeclaration * * * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * * * llvm value for decl: %__limit3459 = alloca i64, align 8 * * * * * * * * * * * expression initializer * * * * * * * * * * * AssignExp::toElem: __limit3459 = 3LU | (ulong)(ulong = ulong) * * * * * * * * * * * * VarExp::toElem: __limit3459 @ ulong * * * * * * * * * * * * * DtoSymbolAddress ('__limit3459' of type 'ulong') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * IntegerExp::toElem: 3LU @ ulong * * * * * * * * * * * * * IntegerExp::toConstElem: 3LU @ ulong * * * * * * * * * * * * * * value = i64 3 * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * lhs: %__limit3459 = alloca i64, align 8 * * * * * * * * * * * * * rhs: i64 3 * * * * * * * ForStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3466) * * * * * * * * CmpExp::toElem: __key3458 < __limit3459 @ bool * * * * * * * * * VarExp::toElem: __key3458 @ ulong * * * * * * * * * * DtoSymbolAddress ('__key3458' of type 'ulong') * * * * * * * * * * * a normal variable * * * * * * * * * VarExp::toElem: __limit3459 @ ulong * * * * * * * * * * DtoSymbolAddress ('__limit3459' of type 'ulong') * * * * * * * * * * * a normal variable * * * * * * * * * type 1: %1 = load i64, i64* %__key3458 * * * * * * * * * type 2: %2 = load i64, i64* %__limit3459 * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3466) * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3466) * * * * * * * * * * DeclarationExp::toElem: ulong n = __key3458; | T=void * * * * * * * * * * * DtoDeclarationExp: n * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * * * * * llvm value for decl: %n = alloca i64, align 8 * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * AssignExp::toElem: n = __key3458 | (ulong)(ulong = ulong) * * * * * * * * * * * * * * VarExp::toElem: n @ ulong * * * * * * * * * * * * * * * DtoSymbolAddress ('n' of type 'ulong') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * VarExp::toElem: __key3458 @ ulong * * * * * * * * * * * * * * * DtoSymbolAddress ('__key3458' of type 'ulong') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * lhs: %n = alloca i64, align 8 * * * * * * * * * * * * * * * rhs: %4 = load i64, i64* %__key3458 * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3468) * * * * * * * * * * DeclarationExp::toElem: string num = to(n); | T=void * * * * * * * * * * * DtoDeclarationExp: num * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * DtoVarDeclaration(vdtype = string) * * * * * * * * * * * * * llvm value for decl: %num = alloca { i64, i8* }, align 8 * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * AssignExp::toElem: num = to(n) | (string)(string = string) * * * * * * * * * * * * * * VarExp::toElem: num @ string * * * * * * * * * * * * * * * DtoSymbolAddress ('num' of type 'string') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * CallExp::toElem: to(n) @ string * * * * * * * * * * * * * * * VarExp::toElem: to @ pure nothrow @safe string(ulong _param_0) * * * * * * * * * * * * * * * * DtoSymbolAddress ('to' of type 'pure nothrow @safe string(ulong _param_0)') * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * Function type: pure nothrow @safe string(ulong _param_0) * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * VarExp::toElem: n @ ulong * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('n' of type 'ulong') * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * SetArray * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3469) * * * * * * * * * * CatAssignExp::toElem: result ~= "case " ~ num ~ ": formatValue(w, args[" ~ num ~ "], f); break;" @ string * * * * * * * * * * * VarExp::toElem: result @ string * * * * * * * * * * * * DtoSymbolAddress ('result' of type 'string') * * * * * * * * * * * * * a normal variable * * * * * * * * * * * DtoCatAssignArray * * * * * * * * * * * * CatExp::toElem: "case " ~ num ~ ": formatValue(w, args[" ~ num ~ "], f); break;" @ string * * * * * * * * * * * * * DtoCatAssignArray * * * * * * * * * * * * * * StringExp::toElem: "], f); break;" @ string * * * * * * * * * * * * * * VarExp::toElem: num @ string * * * * * * * * * * * * * * * DtoSymbolAddress ('num' of type 'string') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * StringExp::toElem: ": formatValue(w, args[" @ string * * * * * * * * * * * * * * VarExp::toElem: num @ string * * * * * * * * * * * * * * * DtoSymbolAddress ('num' of type 'string') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * StringExp::toElem: "case " @ string * * * * * * * * * * * * * * DtoTypeInfoOf(type = 'string', base='1') * * * * * * * * * * * * * * * Type::getTypeInfo(): string * * * * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(string)) * * * * * * * * * * * * DtoTypeInfoOf(type = 'string', base='1') * * * * * * * * * * * * * Type::getTypeInfo(): string * * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(string)) * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * SetArray * * * * * * * * AddAssignExp::toElem: __key3458 += 1LU @ ulong * * * * * * * * * Caching l-value of __key3458 += 1LU => __key3458 * * * * * * * * * * VarExp::toElem: __key3458 @ ulong * * * * * * * * * * * DtoSymbolAddress ('__key3458' of type 'ulong') * * * * * * * * * * * * a normal variable * * * * * * * * * AddExp::toElem: __key3458 + 1LU @ ulong * * * * * * * * * * VarExp::toElem: __key3458 @ ulong * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * value = i64 1 * * * * * * * * * DtoAssign() * * * * * * * * * * lhs: %__key3458 = alloca i64, align 8 * * * * * * * * * * rhs: %21 = add i64 %20, 1 * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/format.d(3474) * * * * * * VarExp::toElem: result @ string * * * * * * * DtoSymbolAddress ('result' of type 'string') * * * * * * * * a normal variable * * * * * * return value is '0x12caf918' * TemplateInstance::codegen: 'std.range.primitives.isInputRange!(const(string)[])' * TemplateInstance::codegen: 'std.traits.isNarrowString!(const(string)[])' * TemplateInstance::codegen: 'std.range.primitives.popFront!(const(string))' * TemplateInstance::codegen: 'std.range.primitives.front!(const(string))' * TemplateInstance::codegen: 'std.range.primitives.isForwardRange!(const(string)[])' * TemplateInstance::codegen: 'std.range.primitives.save!(const(string))' * TemplateInstance::codegen: 'object.RTInfo!(SizeChecker)' * TemplateInstance::codegen: 'std.typetuple.staticIndexOf!(const(VariantN!32LU))' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(const(VariantN!32LU))' * TemplateInstance::codegen: 'std.typetuple.Alias!(const(VariantN!32LU))' * TemplateInstance::codegen: 'object.RTInfo!(VariantN!32LU)' * TemplateInstance::codegen: 'std.traits.Unqual!(const(VariantN!32LU))' * TemplateInstance::codegen: 'std.typetuple.staticIndexOf!(VariantN!32LU)' * TemplateInstance::codegen: 'std.typetuple.genericIndexOf!(VariantN!32LU)' * TemplateInstance::codegen: 'std.traits.Unqual!(VariantN!32LU)' * TemplateInstance::codegen: 'std.typetuple.staticIndexOf!ulong' * TemplateInstance::codegen: 'std.traits.ImplicitConversionTargets!ulong' * TemplateInstance::codegen: 'std.typetuple.TypeTuple!(ulong, float, double, real)' * TemplateInstance::codegen: 'std.typetuple.staticMap!(ConstOf, ulong, float, double, real)' * TemplateInstance::codegen: 'std.typetuple.staticMap!(ConstOf, ulong, float)' * TemplateInstance::codegen: 'std.typetuple.staticMap!(ConstOf, ulong)' * TemplateInstance::codegen: 'std.traits.F!ulong' * TemplateInstance::codegen: 'std.typetuple.TypeTuple!(const(ulong))' * TemplateInstance::codegen: 'std.typetuple.staticMap!(ConstOf, float)' * TemplateInstance::codegen: 'std.traits.F!float' * TemplateInstance::codegen: 'std.typetuple.TypeTuple!(const(float))' * TemplateInstance::codegen: 'std.typetuple.TypeTuple!(const(ulong), const(float))' * TemplateInstance::codegen: 'std.typetuple.staticMap!(ConstOf, double, real)' * TemplateInstance::codegen: 'std.typetuple.staticMap!(ConstOf, double)' * TemplateInstance::codegen: 'std.traits.F!double' * TemplateInstance::codegen: 'std.typetuple.TypeTuple!(const(double))' * TemplateInstance::codegen: 'std.typetuple.staticMap!(ConstOf, real)' * TemplateInstance::codegen: 'std.traits.F!real' * TemplateInstance::codegen: 'std.typetuple.TypeTuple!(const(real))' * TemplateInstance::codegen: 'std.typetuple.TypeTuple!(const(double), const(real))' * TemplateInstance::codegen: 'std.typetuple.TypeTuple!(const(ulong), const(float), const(double), const(real))' * TemplateInstance::codegen: 'std.typetuple.staticMap!(SharedOf, ulong, float, double, real)' * TemplateInstance::codegen: 'std.typetuple.staticMap!(SharedOf, ulong, float)' * TemplateInstance::codegen: 'std.typetuple.staticMap!(SharedOf, ulong)' * TemplateInstance::codegen: 'std.traits.F!ulong' * TemplateInstance::codegen: 'std.typetuple.TypeTuple!(shared(ulong))' * TemplateInstance::codegen: 'std.typetuple.staticMap!(SharedOf, float)' * TemplateInstance::codegen: 'std.traits.F!float' * TemplateInstance::codegen: 'std.typetuple.TypeTuple!(shared(float))' * TemplateInstance::codegen: 'std.typetuple.TypeTuple!(shared(ulong), shared(float))' * TemplateInstance::codegen: 'std.typetuple.staticMap!(SharedOf, double, real)' * TemplateInstance::codegen: 'std.typetuple.staticMap!(SharedOf, double)' * TemplateInstance::codegen: 'std.traits.F!double' * TemplateInstance::codegen: 'std.typetuple.TypeTuple!(shared(double))' * TemplateInstance::codegen: 'std.typetuple.staticMap!(SharedOf, real)' * TemplateInstance::codegen: 'std.traits.F!real' * TemplateInstance::codegen: 'std.typetuple.TypeTuple!(shared(real))' * TemplateInstance::codegen: 'std.typetuple.TypeTuple!(shared(double), shared(real))' * TemplateInstance::codegen: 'std.typetuple.TypeTuple!(shared(ulong), shared(float), shared(double), shared(real))' * TemplateInstance::codegen: 'std.typetuple.staticMap!(SharedConstOf, ulong, float, double, real)' * TemplateInstance::codegen: 'std.typetuple.staticMap!(SharedConstOf, ulong, float)' * TemplateInstance::codegen: 'std.typetuple.staticMap!(SharedConstOf, ulong)' * TemplateInstance::codegen: 'std.traits.F!ulong' * TemplateInstance::codegen: 'std.typetuple.TypeTuple!(shared(const(ulong)))' * TemplateInstance::codegen: 'std.typetuple.staticMap!(SharedConstOf, float)' * TemplateInstance::codegen: 'std.traits.F!float' * TemplateInstance::codegen: 'std.typetuple.TypeTuple!(shared(const(float)))' * TemplateInstance::codegen: 'std.typetuple.TypeTuple!(shared(const(ulong)), shared(const(float)))' * TemplateInstance::codegen: 'std.typetuple.staticMap!(SharedConstOf, double, real)' * TemplateInstance::codegen: 'std.typetuple.staticMap!(SharedConstOf, double)' * TemplateInstance::codegen: 'std.traits.F!double' * TemplateInstance::codegen: 'std.typetuple.TypeTuple!(shared(const(double)))' * TemplateInstance::codegen: 'std.typetuple.staticMap!(SharedConstOf, real)' * TemplateInstance::codegen: 'std.traits.F!real' * TemplateInstance::codegen: 'std.typetuple.TypeTuple!(shared(const(real)))' * TemplateInstance::codegen: 'std.typetuple.TypeTuple!(shared(const(double)), shared(const(real)))' * TemplateInstance::codegen: 'std.typetuple.TypeTuple!(shared(const(ulong)), shared(const(float)), shared(const(double)), shared(const(real)))' * TemplateInstance::codegen: 'std.typetuple.staticMap!(ImmutableOf, ulong, float, double, real)' * TemplateInstance::codegen: 'std.typetuple.staticMap!(ImmutableOf, ulong, float)' * TemplateInstance::codegen: 'std.typetuple.staticMap!(ImmutableOf, ulong)' * TemplateInstance::codegen: 'std.traits.F!ulong' * TemplateInstance::codegen: 'std.typetuple.TypeTuple!(immutable(ulong))' * TemplateInstance::codegen: 'std.typetuple.staticMap!(ImmutableOf, float)' * TemplateInstance::codegen: 'std.traits.F!float' * TemplateInstance::codegen: 'std.typetuple.TypeTuple!(immutable(float))' * TemplateInstance::codegen: 'std.typetuple.TypeTuple!(immutable(ulong), immutable(float))' * TemplateInstance::codegen: 'std.typetuple.staticMap!(ImmutableOf, double, real)' * TemplateInstance::codegen: 'std.typetuple.staticMap!(ImmutableOf, double)' * TemplateInstance::codegen: 'std.traits.F!double' * TemplateInstance::codegen: 'std.typetuple.TypeTuple!(immutable(double))' * TemplateInstance::codegen: 'std.typetuple.staticMap!(ImmutableOf, real)' * TemplateInstance::codegen: 'std.traits.F!real' * TemplateInstance::codegen: 'std.typetuple.TypeTuple!(immutable(real))' * TemplateInstance::codegen: 'std.typetuple.TypeTuple!(immutable(double), immutable(real))' * TemplateInstance::codegen: 'std.typetuple.TypeTuple!(immutable(ulong), immutable(float), immutable(double), immutable(real))' * TemplateInstance::codegen: 'std.typetuple.TypeTuple!(ulong, float, double, real, const(ulong), const(float), const(double), const(real))' * TemplateInstance::codegen: 'std.exception.enforce!(Exception, int)' * TemplateInstance::codegen: 'std.exception.enforce!(Exception, Node*)' * TemplateInstance::codegen: 'object.RTInfo!(Range)' * TemplateInstance::codegen: 'object.destroy!(Message)' * TypeInfoDeclaration::codegen(typeid(Message)) * * type = 'Message' * * typeinfo mangle: _D35TypeInfo_S3std11concurrency7Message6__initZ * * TypeInfoStructDeclaration::llvmDefine() typeid(Message) * * * Resolving struct type: Message (/usr/include/dlang/ldc/std/concurrency.d(102)) * * * DtoFunctionType(nothrow @trusted ulong(ref const(Message) p)) * * * * Building type: const(Message)* * * * * x86-64 ABI: Transforming return type * * * * x86-64 ABI: Transforming argument types * * * * Final function type: i64 (%std.concurrency.Message*) * * * DtoResolveFunction(std.concurrency.Message.__xtoHash): * * * * DtoDeclareFunction(std.concurrency.Message.__xtoHash): * * * * * DtoFunctionType(nothrow @trusted ulong(ref const(Message) p)) * * * * * func = declare i64 @_D3std11concurrency7Message9__xtoHashFNbNeKxS3std11concurrency7MessageZm(%std.concurrency.Message*) * * * DtoFunctionType(bool(ref const(Message) p, ref const(Message) q)) * * * * x86-64 ABI: Transforming return type * * * * x86-64 ABI: Transforming argument types * * * * Final function type: i1 (%std.concurrency.Message*, %std.concurrency.Message*) * * * DtoResolveFunction(std.concurrency.Message.__xopEquals): * * * * DtoDeclareFunction(std.concurrency.Message.__xopEquals): * * * * * DtoFunctionType(bool(ref const(Message) p, ref const(Message) q)) * * * * * func = declare i1 @_D3std11concurrency7Message11__xopEqualsFKxS3std11concurrency7MessageKxS3std11concurrency7MessageZb(%std.concurrency.Message*, %std.concurrency.Message*) * * * isMember = this is: Message * * * DtoFunctionType(@trusted void()) * * * * Building type: Message* * * * * x86-64 ABI: Transforming argument types * * * * Final function type: void (%std.concurrency.Message*) * * * DtoResolveFunction(std.concurrency.Message.~this): /usr/include/dlang/ldc/std/concurrency.d(102) * * * * DtoDeclareFunction(std.concurrency.Message.~this): /usr/include/dlang/ldc/std/concurrency.d(102) * * * * * isMember = this is: Message * * * * * DtoFunctionType(@trusted void()) * * * * * func = declare void @_D3std11concurrency7Message11__fieldDtorMFNeZv(%std.concurrency.Message*) * * * isMember = this is: Message * * * DtoFunctionType(@trusted void()) * * * * x86-64 ABI: Transforming argument types * * * * Final function type: void (%std.concurrency.Message*) * * * DtoResolveFunction(std.concurrency.Message.__fieldPostBlit): /usr/include/dlang/ldc/std/concurrency.d(102) * * * * DtoDeclareFunction(std.concurrency.Message.__fieldPostBlit): /usr/include/dlang/ldc/std/concurrency.d(102) * * * * * isMember = this is: Message * * * * * DtoFunctionType(@trusted void()) * * * * * func = declare void @_D3std11concurrency7Message15__fieldPostBlitMFNeZv(%std.concurrency.Message*) * TemplateInstance::codegen: 'object.RTInfo!(Node)' * TemplateInstance::codegen: 'object.RTInfo!(SpinLock)' * TemplateInstance::codegen: 'object.RTInfo!(List!(Message))' * TemplateInstance::codegen: 'object.RTInfo!(MessagePackException)' * * VarDeclaration::codegen(): 'object.RTInfo!(MessagePackException).RTInfo' * * * DtoResolveVariable(object.RTInfo!(MessagePackException).RTInfo) * TemplateInstance::codegen: 'object.RTInfo!(nonPacked)' * * VarDeclaration::codegen(): 'object.RTInfo!(nonPacked).RTInfo' * * * DtoResolveVariable(object.RTInfo!(nonPacked).RTInfo) * TemplateInstance::codegen: 'object.RTInfo!(Chunk)' * * VarDeclaration::codegen(): 'object.RTInfo!(Chunk).RTInfo' * * * DtoResolveVariable(object.RTInfo!(Chunk).RTInfo) * TemplateInstance::codegen: 'object.RTInfo!(RefBuffer)' * * VarDeclaration::codegen(): 'object.RTInfo!(RefBuffer).RTInfo' * * * DtoResolveVariable(object.RTInfo!(RefBuffer).RTInfo) * TemplateInstance::codegen: 'object.RTInfo!(UnpackException)' * * VarDeclaration::codegen(): 'object.RTInfo!(UnpackException).RTInfo' * * * DtoResolveVariable(object.RTInfo!(UnpackException).RTInfo) * TemplateInstance::codegen: 'std.array.overlap!ubyte' * * DtoDefineFunction(std.array.overlap!ubyte.overlap): /usr/include/dlang/ldc/std/array.d(710) * * * DtoFunctionType(pure nothrow @nogc @trusted inout(ubyte)[](inout(ubyte)[] r1, inout(ubyte)[] r2)) * * * * x86-64 ABI: Transforming return type * * * * x86-64 ABI: Transforming argument types * * * * Final function type: { i64, i8* } ({ i64, i8* }, { i64, i8* }) * * * DtoResolveFunction(std.array.overlap!ubyte.overlap): /usr/include/dlang/ldc/std/array.d(710) * * * * DtoDeclareFunction(std.array.overlap!ubyte.overlap): /usr/include/dlang/ldc/std/array.d(710) * * * * * DtoFunctionType(pure nothrow @nogc @trusted inout(ubyte)[](inout(ubyte)[] r1, inout(ubyte)[] r2)) * * * * * func = declare { i64, i8* } @_D3std5array14__T7overlapThZ7overlapFNaNbNiNeANghANghZANgh({ i64, i8* }, { i64, i8* }) * * * Doing function body for: overlap * * * DtoCreateNestedContext for overlap * * * * DtoCreateNestedContextType for std.array.overlap!ubyte.overlap * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/array.d(711) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/array.d(712) * * * * * * DeclarationExp::toElem: alias U = inout(ubyte); | T=void * * * * * * * DtoDeclarationExp: U * * * * * * * * Ignoring Symbol: alias * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/array.d(713) * * * * * * DeclarationExp::toElem: static pure nothrow @nogc @safe inout(ubyte)* max(inout(ubyte)* a, inout(ubyte)* b) { return a > b ? a : b; } | T=void * * * * * * * DtoDeclarationExp: max * * * * * * * * FuncDeclaration * * * * * * * * DtoDefineFunction(std.array.overlap!ubyte.overlap.max): /usr/include/dlang/ldc/std/array.d(713) * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe inout(ubyte)*(inout(ubyte)* a, inout(ubyte)* b)) * * * * * * * * * * Building type: inout(ubyte)* * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: i8* (i8*, i8*) * * * * * * * * * DtoResolveFunction(std.array.overlap!ubyte.overlap.max): /usr/include/dlang/ldc/std/array.d(713) * * * * * * * * * * DtoDeclareFunction(std.array.overlap!ubyte.overlap.max): /usr/include/dlang/ldc/std/array.d(713) * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe inout(ubyte)*(inout(ubyte)* a, inout(ubyte)* b)) * * * * * * * * * * * func = declare i8* @_D3std5array14__T7overlapThZ7overlapFNaNbNeANghANghZ3maxFNaNbNiNfPNghPNghZPNgh(i8*, i8*) * * * * * * * * * Doing function body for: max * * * * * * * * * DtoCreateNestedContext for max * * * * * * * * * * DtoCreateNestedContextType for std.array.overlap!ubyte.overlap.max * * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/array.d(713) * * * * * * * * * * * CondExp::toElem: a > b ? a : b @ inout(ubyte)* * * * * * * * * * * * * Building type: inout(ubyte)** * * * * * * * * * * * * CmpExp::toElem: a > b @ bool * * * * * * * * * * * * * VarExp::toElem: a @ inout(ubyte)* * * * * * * * * * * * * * * DtoSymbolAddress ('a' of type 'inout(ubyte)*') * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * type: inout(ubyte)* * * * * * * * * * * * * * VarExp::toElem: b @ inout(ubyte)* * * * * * * * * * * * * * * DtoSymbolAddress ('b' of type 'inout(ubyte)*') * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * type: inout(ubyte)* * * * * * * * * * * * * * type 1: %1 = load i8*, i8** %a * * * * * * * * * * * * * type 2: %2 = load i8*, i8** %b * * * * * * * * * * * * VarExp::toElem: a @ inout(ubyte)* * * * * * * * * * * * * * DtoSymbolAddress ('a' of type 'inout(ubyte)*') * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * type: inout(ubyte)* * * * * * * * * * * * * VarExp::toElem: b @ inout(ubyte)* * * * * * * * * * * * * * DtoSymbolAddress ('b' of type 'inout(ubyte)*') * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * type: inout(ubyte)* * * * * * * * * * * * return value is '0x12cbec18' * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/array.d(714) * * * * * * DeclarationExp::toElem: static pure nothrow @nogc @safe inout(ubyte)* min(inout(ubyte)* a, inout(ubyte)* b) { return a < b ? a : b; } | T=void * * * * * * * DtoDeclarationExp: min * * * * * * * * FuncDeclaration * * * * * * * * DtoDefineFunction(std.array.overlap!ubyte.overlap.min): /usr/include/dlang/ldc/std/array.d(714) * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe inout(ubyte)*(inout(ubyte)* a, inout(ubyte)* b)) * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: i8* (i8*, i8*) * * * * * * * * * DtoResolveFunction(std.array.overlap!ubyte.overlap.min): /usr/include/dlang/ldc/std/array.d(714) * * * * * * * * * * DtoDeclareFunction(std.array.overlap!ubyte.overlap.min): /usr/include/dlang/ldc/std/array.d(714) * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe inout(ubyte)*(inout(ubyte)* a, inout(ubyte)* b)) * * * * * * * * * * * func = declare i8* @_D3std5array14__T7overlapThZ7overlapFNaNbNeANghANghZ3minFNaNbNiNfPNghPNghZPNgh(i8*, i8*) * * * * * * * * * Doing function body for: min * * * * * * * * * DtoCreateNestedContext for min * * * * * * * * * * DtoCreateNestedContextType for std.array.overlap!ubyte.overlap.min * * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/array.d(714) * * * * * * * * * * * CondExp::toElem: a < b ? a : b @ inout(ubyte)* * * * * * * * * * * * * CmpExp::toElem: a < b @ bool * * * * * * * * * * * * * VarExp::toElem: a @ inout(ubyte)* * * * * * * * * * * * * * * DtoSymbolAddress ('a' of type 'inout(ubyte)*') * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * type: inout(ubyte)* * * * * * * * * * * * * * VarExp::toElem: b @ inout(ubyte)* * * * * * * * * * * * * * * DtoSymbolAddress ('b' of type 'inout(ubyte)*') * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * type: inout(ubyte)* * * * * * * * * * * * * * type 1: %1 = load i8*, i8** %a * * * * * * * * * * * * * type 2: %2 = load i8*, i8** %b * * * * * * * * * * * * VarExp::toElem: a @ inout(ubyte)* * * * * * * * * * * * * * DtoSymbolAddress ('a' of type 'inout(ubyte)*') * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * type: inout(ubyte)* * * * * * * * * * * * * VarExp::toElem: b @ inout(ubyte)* * * * * * * * * * * * * * DtoSymbolAddress ('b' of type 'inout(ubyte)*') * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * type: inout(ubyte)* * * * * * * * * * * * return value is '0x12cc12d8' * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/array.d(716) * * * * * * DeclarationExp::toElem: inout(ubyte)* b = max(cast(inout(ubyte)*)r1, cast(inout(ubyte)*)r2); | T=void * * * * * * * DtoDeclarationExp: b * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = inout(ubyte)*) * * * * * * * * * llvm value for decl: %b = alloca i8*, align 8 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: b = max(cast(inout(ubyte)*)r1, cast(inout(ubyte)*)r2) | (inout(ubyte)*)(inout(ubyte)* = inout(ubyte)*) * * * * * * * * * * VarExp::toElem: b @ inout(ubyte)* * * * * * * * * * * * DtoSymbolAddress ('b' of type 'inout(ubyte)*') * * * * * * * * * * * * a normal variable * * * * * * * * * * CallExp::toElem: max(cast(inout(ubyte)*)r1, cast(inout(ubyte)*)r2) @ inout(ubyte)* * * * * * * * * * * * VarExp::toElem: max @ pure nothrow @nogc @safe inout(ubyte)*(inout(ubyte)* a, inout(ubyte)* b) * * * * * * * * * * * * DtoSymbolAddress ('max' of type 'pure nothrow @nogc @safe inout(ubyte)*(inout(ubyte)* a, inout(ubyte)* b)') * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * Building type: pure nothrow @nogc @safe inout(ubyte)*(inout(ubyte)* a, inout(ubyte)* b) * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe inout(ubyte)*(inout(ubyte)* a, inout(ubyte)* b)) * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * Final function type: i8* (i8*, i8*) * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * Function type: pure nothrow @nogc @safe inout(ubyte)*(inout(ubyte)* a, inout(ubyte)* b) * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * CastExp::toElem: cast(inout(ubyte)*)r1 @ inout(ubyte)* * * * * * * * * * * * * * * VarExp::toElem: r1 @ inout(ubyte)[] * * * * * * * * * * * * * * * DtoSymbolAddress ('r1' of type 'inout(ubyte)[]') * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * type: inout(ubyte)[] * * * * * * * * * * * * * * Casting from 'inout(ubyte)[]' to 'inout(ubyte)*' * * * * * * * * * * * * * * * DtoCastArray * * * * * * * * * * * * * * * * from array or sarray * * * * * * * * * * * * * * * * to pointer * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * CastExp::toElem: cast(inout(ubyte)*)r2 @ inout(ubyte)* * * * * * * * * * * * * * * VarExp::toElem: r2 @ inout(ubyte)[] * * * * * * * * * * * * * * * DtoSymbolAddress ('r2' of type 'inout(ubyte)[]') * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * type: inout(ubyte)[] * * * * * * * * * * * * * * Casting from 'inout(ubyte)[]' to 'inout(ubyte)*' * * * * * * * * * * * * * * * DtoCastArray * * * * * * * * * * * * * * * * from array or sarray * * * * * * * * * * * * * * * * to pointer * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %b = alloca i8*, align 8 * * * * * * * * * * * rhs: %3 = call i8* @_D3std5array14__T7overlapThZ7overlapFNaNbNeANghANghZ3maxFNaNbNiNfPNghPNghZPNgh(i8* %.ptr1, i8* %.ptr) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/array.d(717) * * * * * * DeclarationExp::toElem: inout(ubyte)* e = min(cast(inout(ubyte)*)r1 + cast(long)r1.length * 1L, cast(inout(ubyte)*)r2 + cast(long)r2.length * 1L); | T=void * * * * * * * DtoDeclarationExp: e * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = inout(ubyte)*) * * * * * * * * * llvm value for decl: %e = alloca i8*, align 8 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: e = min(cast(inout(ubyte)*)r1 + cast(long)r1.length * 1L, cast(inout(ubyte)*)r2 + cast(long)r2.length * 1L) | (inout(ubyte)*)(inout(ubyte)* = inout(ubyte)*) * * * * * * * * * * VarExp::toElem: e @ inout(ubyte)* * * * * * * * * * * * DtoSymbolAddress ('e' of type 'inout(ubyte)*') * * * * * * * * * * * * a normal variable * * * * * * * * * * CallExp::toElem: min(cast(inout(ubyte)*)r1 + cast(long)r1.length * 1L, cast(inout(ubyte)*)r2 + cast(long)r2.length * 1L) @ inout(ubyte)* * * * * * * * * * * * VarExp::toElem: min @ pure nothrow @nogc @safe inout(ubyte)*(inout(ubyte)* a, inout(ubyte)* b) * * * * * * * * * * * * DtoSymbolAddress ('min' of type 'pure nothrow @nogc @safe inout(ubyte)*(inout(ubyte)* a, inout(ubyte)* b)') * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * Building type: pure nothrow @nogc @safe inout(ubyte)*(inout(ubyte)* a, inout(ubyte)* b) * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe inout(ubyte)*(inout(ubyte)* a, inout(ubyte)* b)) * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * Final function type: i8* (i8*, i8*) * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * Function type: pure nothrow @nogc @safe inout(ubyte)*(inout(ubyte)* a, inout(ubyte)* b) * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * AddExp::toElem: cast(inout(ubyte)*)r1 + cast(long)r1.length * 1L @ inout(ubyte)* * * * * * * * * * * * * * * CastExp::toElem: cast(inout(ubyte)*)r1 @ inout(ubyte)* * * * * * * * * * * * * * * * VarExp::toElem: r1 @ inout(ubyte)[] * * * * * * * * * * * * * * * * DtoSymbolAddress ('r1' of type 'inout(ubyte)[]') * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * type: inout(ubyte)[] * * * * * * * * * * * * * * * Casting from 'inout(ubyte)[]' to 'inout(ubyte)*' * * * * * * * * * * * * * * * * DtoCastArray * * * * * * * * * * * * * * * * * from array or sarray * * * * * * * * * * * * * * * * * to pointer * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * Adding integer to pointer * * * * * * * * * * * * * * CastExp::toElem: cast(long)r1.length @ long * * * * * * * * * * * * * * * ArrayLengthExp::toElem: r1.length @ ulong * * * * * * * * * * * * * * * * VarExp::toElem: r1 @ inout(ubyte)[] * * * * * * * * * * * * * * * * * DtoSymbolAddress ('r1' of type 'inout(ubyte)[]') * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * type: inout(ubyte)[] * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * Casting from 'ulong' to 'long' * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * AddExp::toElem: cast(inout(ubyte)*)r2 + cast(long)r2.length * 1L @ inout(ubyte)* * * * * * * * * * * * * * * CastExp::toElem: cast(inout(ubyte)*)r2 @ inout(ubyte)* * * * * * * * * * * * * * * * VarExp::toElem: r2 @ inout(ubyte)[] * * * * * * * * * * * * * * * * DtoSymbolAddress ('r2' of type 'inout(ubyte)[]') * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * type: inout(ubyte)[] * * * * * * * * * * * * * * * Casting from 'inout(ubyte)[]' to 'inout(ubyte)*' * * * * * * * * * * * * * * * * DtoCastArray * * * * * * * * * * * * * * * * * from array or sarray * * * * * * * * * * * * * * * * * to pointer * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * Adding integer to pointer * * * * * * * * * * * * * * CastExp::toElem: cast(long)r2.length @ long * * * * * * * * * * * * * * * ArrayLengthExp::toElem: r2.length @ ulong * * * * * * * * * * * * * * * * VarExp::toElem: r2 @ inout(ubyte)[] * * * * * * * * * * * * * * * * * DtoSymbolAddress ('r2' of type 'inout(ubyte)[]') * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * type: inout(ubyte)[] * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * Casting from 'ulong' to 'long' * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %e = alloca i8*, align 8 * * * * * * * * * * * rhs: %10 = call i8* @_D3std5array14__T7overlapThZ7overlapFNaNbNeANghANghZ3minFNaNbNiNfPNghPNghZPNgh(i8* %9, i8* %6) * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/array.d(718) * * * * * * CondExp::toElem: b < e ? b[0..cast(ulong)((e - b) / 1L)] : null @ inout(ubyte)[] * * * * * * * CmpExp::toElem: b < e @ bool * * * * * * * * VarExp::toElem: b @ inout(ubyte)* * * * * * * * * * DtoSymbolAddress ('b' of type 'inout(ubyte)*') * * * * * * * * * * a normal variable * * * * * * * * VarExp::toElem: e @ inout(ubyte)* * * * * * * * * * DtoSymbolAddress ('e' of type 'inout(ubyte)*') * * * * * * * * * * a normal variable * * * * * * * * type 1: %11 = load i8*, i8** %b * * * * * * * * type 2: %12 = load i8*, i8** %e * * * * * * * SliceExp::toElem: b[0..cast(ulong)((e - b) / 1L)] @ inout(ubyte)[] * * * * * * * * VarExp::toElem: b @ inout(ubyte)* * * * * * * * * * DtoSymbolAddress ('b' of type 'inout(ubyte)*') * * * * * * * * * * a normal variable * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * value = i64 0 * * * * * * * * CastExp::toElem: cast(ulong)((e - b) / 1L) @ ulong * * * * * * * * * DivExp::toElem: (e - b) / 1L @ long * * * * * * * * * * MinExp::toElem: e - b @ long * * * * * * * * * * * VarExp::toElem: e @ inout(ubyte)* * * * * * * * * * * * * DtoSymbolAddress ('e' of type 'inout(ubyte)*') * * * * * * * * * * * * * a normal variable * * * * * * * * * * * VarExp::toElem: b @ inout(ubyte)* * * * * * * * * * * * * DtoSymbolAddress ('b' of type 'inout(ubyte)*') * * * * * * * * * * * * * a normal variable * * * * * * * * * * * lv: %15 = load i8*, i8** %e rv: %16 = load i8*, i8** %b * * * * * * * * * * IntegerExp::toElem: 1L @ long * * * * * * * * * * * IntegerExp::toConstElem: 1L @ long * * * * * * * * * * * * value = i64 1 * * * * * * * * * Casting from 'long' to 'ulong' * * * * * * * DtoAssign() * * * * * * * * DtoArrayAssign * * * * * * * * * DtoArrayPtr * * * * * * * * * DtoArrayLen * * * * * * * * * SetArray * * * * * * * NullExp::toElem(type=inout(ubyte)[]): null * * * * * * * * NullExp::toConstElem(type=inout(ubyte)[]): null * * * * * * return value is '0x12cc6bf8' * TemplateInstance::codegen: 'object.dup!ubyte' * * DtoDefineFunction(object.dup!ubyte.dup): /usr/include/dlang/ldc/object.di(750) * * * DtoFunctionType(pure nothrow @property @safe ubyte[](const(ubyte)[] a)) * * * * x86-64 ABI: Transforming return type * * * * x86-64 ABI: Transforming argument types * * * * Final function type: { i64, i8* } ({ i64, i8* }) * * * DtoResolveFunction(object.dup!ubyte.dup): /usr/include/dlang/ldc/object.di(750) * * * * DtoDeclareFunction(object.dup!ubyte.dup): /usr/include/dlang/ldc/object.di(750) * * * * * DtoFunctionType(pure nothrow @property @safe ubyte[](const(ubyte)[] a)) * * * * * func = declare { i64, i8* } @_D6object10__T3dupThZ3dupFNaNbNdNfAxhZAh({ i64, i8* }) * * * Doing function body for: dup * * * DtoCreateNestedContext for dup * * * * DtoCreateNestedContextType for object.dup!ubyte.dup * * * CompoundStatement::toIR(): * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/object.di(755) * * * * * CallExp::toElem: _trustedDup(a) @ ubyte[] * * * * * * VarExp::toElem: _trustedDup @ pure nothrow @trusted ubyte[](const(ubyte)[] a) * * * * * * * DtoSymbolAddress ('_trustedDup' of type 'pure nothrow @trusted ubyte[](const(ubyte)[] a)') * * * * * * * * FuncDeclaration * * * * * * * * DtoFunctionType(pure nothrow @trusted ubyte[](const(ubyte)[] a)) * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * Final function type: { i64, i8* } ({ i64, i8* }) * * * * * * * * DtoResolveFunction(object._trustedDup!(const(ubyte), ubyte)._trustedDup): /usr/include/dlang/ldc/object.di(786) * * * * * * * * * DtoDeclareFunction(object._trustedDup!(const(ubyte), ubyte)._trustedDup): /usr/include/dlang/ldc/object.di(786) * * * * * * * * * * DtoFunctionType(pure nothrow @trusted ubyte[](const(ubyte)[] a)) * * * * * * * * * * func = declare { i64, i8* } @_D6object22__T11_trustedDupTxhThZ11_trustedDupFNaNbNeAxhZAh({ i64, i8* }) * * * * * * DtoCallFunction() * * * * * * * Building type: pure nothrow @trusted ubyte[](const(ubyte)[] a) * * * * * * * * DtoFunctionType(pure nothrow @trusted ubyte[](const(ubyte)[] a)) * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * Final function type: { i64, i8* } ({ i64, i8* }) * * * * * * * doing normal arguments * * * * * * * Arguments so far: (0) * * * * * * * Function type: pure nothrow @trusted ubyte[](const(ubyte)[] a) * * * * * * * DtoArgument * * * * * * * * VarExp::toElem: a @ const(ubyte)[] * * * * * * * * * DtoSymbolAddress ('a' of type 'const(ubyte)[]') * * * * * * * * * * function param * * * * * * * * * * type: const(ubyte)[] * * * * * return value is '0x12cc9ba0' * TemplateInstance::codegen: 'object._trustedDup!(const(ubyte), ubyte)' * * DtoDefineFunction(object._trustedDup!(const(ubyte), ubyte)._trustedDup): /usr/include/dlang/ldc/object.di(786) * * * Doing function body for: _trustedDup * * * DtoCreateNestedContext for _trustedDup * * * * DtoCreateNestedContextType for object._trustedDup!(const(ubyte), ubyte)._trustedDup * * * CompoundStatement::toIR(): * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/object.di(788) * * * * * CallExp::toElem: _dup(a) @ ubyte[] * * * * * * VarExp::toElem: _dup @ pure nothrow @system ubyte[](const(ubyte)[] a) * * * * * * * DtoSymbolAddress ('_dup' of type 'pure nothrow @system ubyte[](const(ubyte)[] a)') * * * * * * * * FuncDeclaration * * * * * * * * DtoFunctionType(pure nothrow @system ubyte[](const(ubyte)[] a)) * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * Final function type: { i64, i8* } ({ i64, i8* }) * * * * * * * * DtoResolveFunction(object._dup!(const(ubyte), ubyte)._dup): /usr/include/dlang/ldc/object.di(791) * * * * * * * * * DtoDeclareFunction(object._dup!(const(ubyte), ubyte)._dup): /usr/include/dlang/ldc/object.di(791) * * * * * * * * * * DtoFunctionType(pure nothrow @system ubyte[](const(ubyte)[] a)) * * * * * * * * * * func = declare { i64, i8* } @_D6object14__T4_dupTxhThZ4_dupFNaNbAxhZAh({ i64, i8* }) * * * * * * DtoCallFunction() * * * * * * * Building type: pure nothrow @system ubyte[](const(ubyte)[] a) * * * * * * * * DtoFunctionType(pure nothrow @system ubyte[](const(ubyte)[] a)) * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * Final function type: { i64, i8* } ({ i64, i8* }) * * * * * * * doing normal arguments * * * * * * * Arguments so far: (0) * * * * * * * Function type: pure nothrow @system ubyte[](const(ubyte)[] a) * * * * * * * DtoArgument * * * * * * * * VarExp::toElem: a @ const(ubyte)[] * * * * * * * * * DtoSymbolAddress ('a' of type 'const(ubyte)[]') * * * * * * * * * * function param * * * * * * * * * * type: const(ubyte)[] * * * * * return value is '0x12ccbb80' * TemplateInstance::codegen: 'object._dup!(const(ubyte), ubyte)' * * DtoDefineFunction(object._dup!(const(ubyte), ubyte)._dup): /usr/include/dlang/ldc/object.di(791) * * * Doing function body for: _dup * * * DtoCreateNestedContext for _dup * * * * DtoCreateNestedContextType for object._dup!(const(ubyte), ubyte)._dup * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/object.di(792) * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/object.di(793) * * * * * * VarExp::toElem: __ctfe @ bool * * * * * * * DtoSymbolAddress ('__ctfe' of type 'bool') * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/object.di(794) * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/object.di(794) * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/object.di(795) * * * * * * * * * DeclarationExp::toElem: ubyte[] res = null; | T=void * * * * * * * * * * DtoDeclarationExp: res * * * * * * * * * * * VarDeclaration * * * * * * * * * * * DtoVarDeclaration(vdtype = ubyte[]) * * * * * * * * * * * * llvm value for decl: %res = alloca { i64, i8* }, align 8 * * * * * * * * * * * * expression initializer * * * * * * * * * * * * AssignExp::toElem: res = null | (ubyte[])(ubyte[] = ubyte[]) * * * * * * * * * * * * * VarExp::toElem: res @ ubyte[] * * * * * * * * * * * * * * DtoSymbolAddress ('res' of type 'ubyte[]') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * NullExp::toElem(type=ubyte[]): null * * * * * * * * * * * * * * NullExp::toConstElem(type=ubyte[]): null * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * DtoSetArrayToNull * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/object.di(796) * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/object.di(796) * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/object.di(796) * * * * * * * * * * * DeclarationExp::toElem: const(ubyte)[] __aggr3499 = a[]; | T=void * * * * * * * * * * * * DtoDeclarationExp: __aggr3499 * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * DtoVarDeclaration(vdtype = const(ubyte)[]) * * * * * * * * * * * * * * llvm value for decl: %__aggr3499 = alloca { i64, i8* }, align 8 * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * AssignExp::toElem: __aggr3499 = a[] | (const(ubyte)[])(const(ubyte)[] = const(ubyte)[]) * * * * * * * * * * * * * * * VarExp::toElem: __aggr3499 @ const(ubyte)[] * * * * * * * * * * * * * * * * DtoSymbolAddress ('__aggr3499' of type 'const(ubyte)[]') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * SliceExp::toElem: a[] @ const(ubyte)[] * * * * * * * * * * * * * * * * VarExp::toElem: a @ const(ubyte)[] * * * * * * * * * * * * * * * * * DtoSymbolAddress ('a' of type 'const(ubyte)[]') * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * type: const(ubyte)[] * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * SetArray * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/object.di(796) * * * * * * * * * * * DeclarationExp::toElem: ulong __key3500 = 0LU; | T=void * * * * * * * * * * * * DtoDeclarationExp: __key3500 * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * * * * * * llvm value for decl: %__key3500 = alloca i64, align 8 * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * AssignExp::toElem: __key3500 = 0LU | (ulong)(ulong = ulong) * * * * * * * * * * * * * * * VarExp::toElem: __key3500 @ ulong * * * * * * * * * * * * * * * * DtoSymbolAddress ('__key3500' of type 'ulong') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * lhs: %__key3500 = alloca i64, align 8 * * * * * * * * * * * * * * * * rhs: i64 0 * * * * * * * * * * ForStatement::toIR(): /usr/include/dlang/ldc/object.di(796) * * * * * * * * * * * CmpExp::toElem: __key3500 < __aggr3499.length @ bool * * * * * * * * * * * * VarExp::toElem: __key3500 @ ulong * * * * * * * * * * * * * DtoSymbolAddress ('__key3500' of type 'ulong') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * ArrayLengthExp::toElem: __aggr3499.length @ ulong * * * * * * * * * * * * * VarExp::toElem: __aggr3499 @ const(ubyte)[] * * * * * * * * * * * * * * DtoSymbolAddress ('__aggr3499' of type 'const(ubyte)[]') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * type 1: %6 = load i64, i64* %__key3500 * * * * * * * * * * * * type 2: %.len1 = load i64, i64* %5 * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/object.di(796) * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/object.di(796) * * * * * * * * * * * * * DeclarationExp::toElem: const ref const(ubyte) e = __aggr3499[__key3500]; | T=void * * * * * * * * * * * * * * DtoDeclarationExp: e * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = const(ubyte)) * * * * * * * * * * * * * * * * Building type: const(ubyte)* * * * * * * * * * * * * * * * * llvm value for decl: %e = alloca i8*, align 8 * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * AssignExp::toElem: e = __aggr3499[__key3500] | (const(ubyte))(const(ubyte) = const(ubyte)) * * * * * * * * * * * * * * * * * performing ref variable initialization * * * * * * * * * * * * * * * * * VarExp::toElem: e @ const(ubyte) * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('e' of type 'const(ubyte)') * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * IndexExp::toElem: __aggr3499[__key3500] @ const(ubyte) * * * * * * * * * * * * * * * * * * VarExp::toElem: __aggr3499 @ const(ubyte)[] * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__aggr3499' of type 'const(ubyte)[]') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * VarExp::toElem: __key3500 @ ulong * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__key3500' of type 'ulong') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/object.di(797) * * * * * * * * * * * * * CatAssignExp::toElem: res ~= e @ ubyte[] * * * * * * * * * * * * * * VarExp::toElem: res @ ubyte[] * * * * * * * * * * * * * * * DtoSymbolAddress ('res' of type 'ubyte[]') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * DtoCatAssignElement * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * VarExp::toElem: e @ ubyte * * * * * * * * * * * * * * * * DtoSymbolAddress ('e' of type 'const(ubyte)') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * DtoTypeInfoOf(type = 'ubyte[]', base='1') * * * * * * * * * * * * * * * * Type::getTypeInfo(): ubyte[] * * * * * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(ubyte[])) * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * lhs: %.lastElem = getelementptr i8, i8* %.ptr4, i64 %.len3 * * * * * * * * * * * * * * * * rhs: %14 = load i8, i8* %13 * * * * * * * * * * * AddAssignExp::toElem: __key3500 += 1LU @ ulong * * * * * * * * * * * * Caching l-value of __key3500 += 1LU => __key3500 * * * * * * * * * * * * * VarExp::toElem: __key3500 @ ulong * * * * * * * * * * * * * * DtoSymbolAddress ('__key3500' of type 'ulong') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * AddExp::toElem: __key3500 + 1LU @ ulong * * * * * * * * * * * * * VarExp::toElem: __key3500 @ ulong * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * lhs: %__key3500 = alloca i64, align 8 * * * * * * * * * * * * * rhs: %16 = add i64 %15, 1 * * * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/object.di(798) * * * * * * * * * VarExp::toElem: res @ ubyte[] * * * * * * * * * * DtoSymbolAddress ('res' of type 'ubyte[]') * * * * * * * * * * * a normal variable * * * * * * * * * return value is '0x12cd0d28' * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/object.di(801) * * * * * * AssignExp::toElem: a = _rawDup(a) | (const(ubyte)[])(const(ubyte)[] = const(ubyte)[]) * * * * * * * VarExp::toElem: a @ const(ubyte)[] * * * * * * * * DtoSymbolAddress ('a' of type 'const(ubyte)[]') * * * * * * * * * function param * * * * * * * * * type: const(ubyte)[] * * * * * * * CallExp::toElem: _rawDup(a) @ const(ubyte)[] * * * * * * * * VarExp::toElem: _rawDup @ pure nothrow @system inout(ubyte)[](inout(ubyte)[] a) * * * * * * * * * DtoSymbolAddress ('_rawDup' of type 'pure nothrow @system inout(ubyte)[](inout(ubyte)[] a)') * * * * * * * * * * FuncDeclaration * * * * * * * * * * DtoFunctionType(pure nothrow @system inout(ubyte)[](inout(ubyte)[] a)) * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * Final function type: { i64, i8* } ({ i64, i8* }) * * * * * * * * * * DtoResolveFunction(object._rawDup!ubyte._rawDup): /usr/include/dlang/ldc/object.di(809) * * * * * * * * * * * DtoDeclareFunction(object._rawDup!ubyte._rawDup): /usr/include/dlang/ldc/object.di(809) * * * * * * * * * * * * DtoFunctionType(pure nothrow @system inout(ubyte)[](inout(ubyte)[] a)) * * * * * * * * * * * * func = declare { i64, i8* } @_D6object14__T7_rawDupThZ7_rawDupFNaNbANghZANgh({ i64, i8* }) * * * * * * * * DtoCallFunction() * * * * * * * * * Building type: pure nothrow @system inout(ubyte)[](inout(ubyte)[] a) * * * * * * * * * * DtoFunctionType(pure nothrow @system inout(ubyte)[](inout(ubyte)[] a)) * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * Final function type: { i64, i8* } ({ i64, i8* }) * * * * * * * * * doing normal arguments * * * * * * * * * Arguments so far: (0) * * * * * * * * * Function type: pure nothrow @system inout(ubyte)[](inout(ubyte)[] a) * * * * * * * * * DtoArgument * * * * * * * * * * VarExp::toElem: a @ const(ubyte)[] * * * * * * * * * * * DtoSymbolAddress ('a' of type 'const(ubyte)[]') * * * * * * * * * * * * function param * * * * * * * * * * * * type: const(ubyte)[] * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * DtoAssign() * * * * * * * * DtoArrayAssign * * * * * * * * * DtoArrayPtr * * * * * * * * * DtoArrayLen * * * * * * * * * SetArray * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/object.di(802) * * * * * * DeclarationExp::toElem: ubyte[] res = *& a; | T=void * * * * * * * DtoDeclarationExp: res * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = ubyte[]) * * * * * * * * * llvm value for decl: %res7 = alloca { i64, i8* }, align 8 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: res = *& a | (ubyte[])(ubyte[] = ubyte[]) * * * * * * * * * * VarExp::toElem: res @ ubyte[] * * * * * * * * * * * DtoSymbolAddress ('res' of type 'ubyte[]') * * * * * * * * * * * * a normal variable * * * * * * * * * * PtrExp::toElem: *& a @ ubyte[] * * * * * * * * * * * SymOffExp::toElem: & a @ ubyte[]* * * * * * * * * * * * * DtoSymbolAddress ('a' of type 'const(ubyte)[]') * * * * * * * * * * * * * function param * * * * * * * * * * * * * type: const(ubyte)[] * * * * * * * * * * * * Casting from 'const(ubyte)[]*' to 'ubyte[]*' * * * * * * * * * * * * * src: %a = alloca { i64, i8* }, align 8 * * * * * * * * * * * * * to type: { i64, i8* }* * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * DtoAssign() * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * SetArray * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/object.di(803) * * * * * * CallExp::toElem: _doPostblit(res) @ void * * * * * * * VarExp::toElem: _doPostblit @ pure nothrow @nogc @safe void(ubyte[] arr) * * * * * * * * DtoSymbolAddress ('_doPostblit' of type 'pure nothrow @nogc @safe void(ubyte[] arr)') * * * * * * * * * FuncDeclaration * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe void(ubyte[] arr)) * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: void ({ i64, i8* }) * * * * * * * * * DtoResolveFunction(object._doPostblit!ubyte._doPostblit): /usr/include/dlang/ldc/object.di(845) * * * * * * * * * * DtoDeclareFunction(object._doPostblit!ubyte._doPostblit): /usr/include/dlang/ldc/object.di(845) * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe void(ubyte[] arr)) * * * * * * * * * * * func = declare void @_D6object19__T11_doPostblitThZ11_doPostblitFNaNbNiNfAhZv({ i64, i8* }) * * * * * * * DtoCallFunction() * * * * * * * * Building type: pure nothrow @nogc @safe void(ubyte[] arr) * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe void(ubyte[] arr)) * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: void ({ i64, i8* }) * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (0) * * * * * * * * Function type: pure nothrow @nogc @safe void(ubyte[] arr) * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: res @ ubyte[] * * * * * * * * * * DtoSymbolAddress ('res' of type 'ubyte[]') * * * * * * * * * * * a normal variable * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/object.di(804) * * * * * * VarExp::toElem: res @ ubyte[] * * * * * * * DtoSymbolAddress ('res' of type 'ubyte[]') * * * * * * * * a normal variable * * * * * * return value is '0x12cd5818' * TemplateInstance::codegen: 'object._rawDup!ubyte' * * DtoDefineFunction(object._rawDup!ubyte._rawDup): /usr/include/dlang/ldc/object.di(809) * * * Doing function body for: _rawDup * * * DtoCreateNestedContext for _rawDup * * * * DtoCreateNestedContextType for object._rawDup!ubyte._rawDup * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/object.di(810) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/object.di(813) * * * * * * DeclarationExp::toElem: void[] arr = _d_newarrayU(typeid(ubyte[]), a.length); | T=void * * * * * * * DtoDeclarationExp: arr * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = void[]) * * * * * * * * * llvm value for decl: %arr = alloca { i64, i8* }, align 8 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: arr = _d_newarrayU(typeid(ubyte[]), a.length) | (void[])(void[] = void[]) * * * * * * * * * * VarExp::toElem: arr @ void[] * * * * * * * * * * * DtoSymbolAddress ('arr' of type 'void[]') * * * * * * * * * * * * a normal variable * * * * * * * * * * CallExp::toElem: _d_newarrayU(typeid(ubyte[]), a.length) @ void[] * * * * * * * * * * * VarExp::toElem: _d_newarrayU @ pure nothrow extern (C) void[](const(TypeInfo) ti, ulong length) * * * * * * * * * * * * DtoSymbolAddress ('_d_newarrayU' of type 'pure nothrow extern (C) void[](const(TypeInfo) ti, ulong length)') * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * DtoFunctionType(pure nothrow extern (C) void[](const(TypeInfo) ti, ulong length)) * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * Final function type: { i64, i8* } (%object.TypeInfo*, i64) * * * * * * * * * * * * * DtoResolveFunction(object._d_newarrayU): /usr/include/dlang/ldc/object.di(807) * * * * * * * * * * * * * * DtoDeclareFunction(object._d_newarrayU): /usr/include/dlang/ldc/object.di(807) * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow extern (C) void[](const(TypeInfo) ti, ulong length)) * * * * * * * * * * * * * * * func = declare { i64, i8* } @_d_newarrayU(%object.TypeInfo*, i64) * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * Building type: pure nothrow extern (C) void[](const(TypeInfo) ti, ulong length) * * * * * * * * * * * * * DtoFunctionType(pure nothrow extern (C) void[](const(TypeInfo) ti, ulong length)) * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * Final function type: { i64, i8* } (%object.TypeInfo*, i64) * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * Function type: pure nothrow extern (C) void[](const(TypeInfo) ti, ulong length) * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * SymOffExp::toElem: typeid(ubyte[]) @ const(TypeInfo) * * * * * * * * * * * * * * DtoSymbolAddress ('typeid(ubyte[])' of type 'object.TypeInfo_Array') * * * * * * * * * * * * * * * TypeInfoDeclaration * * * * * * * * * * * * * * Casting from 'TypeInfo_Array*' to 'const(TypeInfo)' * * * * * * * * * * * * * * * src: %object.TypeInfo_Array* bitcast (%object.TypeInfo* @_D11TypeInfo_Ah6__initZ to %object.TypeInfo_Array*) * * * * * * * * * * * * * * * to type: %object.TypeInfo* * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * ArrayLengthExp::toElem: a.length @ ulong * * * * * * * * * * * * * * VarExp::toElem: a @ inout(ubyte)[] * * * * * * * * * * * * * * * DtoSymbolAddress ('a' of type 'inout(ubyte)[]') * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * type: inout(ubyte)[] * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * SetArray * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/object.di(814) * * * * * * CallExp::toElem: memcpy(cast(void*)arr, cast(void*)cast(inout(ubyte)*)a, 1LU * a.length) @ void* * * * * * * * VarExp::toElem: memcpy @ pure nothrow @nogc @system extern (C) void*(void* s1, const(void*) s2, ulong n) * * * * * * * * DtoSymbolAddress ('memcpy' of type 'pure nothrow @nogc @system extern (C) void*(void* s1, const(void*) s2, ulong n)') * * * * * * * * * FuncDeclaration * * * * * * * DtoCallFunction() * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (0) * * * * * * * * Function type: pure nothrow @nogc @system extern (C) void*(void* s1, const(void*) s2, ulong n) * * * * * * * * DtoArgument * * * * * * * * * CastExp::toElem: cast(void*)arr @ void* * * * * * * * * * * VarExp::toElem: arr @ void[] * * * * * * * * * * * DtoSymbolAddress ('arr' of type 'void[]') * * * * * * * * * * * * a normal variable * * * * * * * * * * Casting from 'void[]' to 'void*' * * * * * * * * * * * DtoCastArray * * * * * * * * * * * * from array or sarray * * * * * * * * * * * * to pointer * * * * * * * * * * * * DtoArrayPtr * * * * * * * * DtoArgument * * * * * * * * * CastExp::toElem: cast(void*)cast(inout(ubyte)*)a @ const(void*) * * * * * * * * * * CastExp::toElem: cast(inout(ubyte)*)a @ inout(ubyte)* * * * * * * * * * * * VarExp::toElem: a @ inout(ubyte)[] * * * * * * * * * * * * DtoSymbolAddress ('a' of type 'inout(ubyte)[]') * * * * * * * * * * * * * function param * * * * * * * * * * * * * type: inout(ubyte)[] * * * * * * * * * * * Casting from 'inout(ubyte)[]' to 'inout(ubyte)*' * * * * * * * * * * * * DtoCastArray * * * * * * * * * * * * * from array or sarray * * * * * * * * * * * * * to pointer * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * Casting from 'inout(ubyte)*' to 'void*' * * * * * * * * * * * src: %.ptr3 = load i8*, i8** %6 * * * * * * * * * * * to type: i8* * * * * * * * * * * repainting from 'void*' to 'const(void*)' * * * * * * * * DtoArgument * * * * * * * * * MulExp::toElem: 1LU * a.length @ ulong * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * value = i64 1 * * * * * * * * * * ArrayLengthExp::toElem: a.length @ ulong * * * * * * * * * * * VarExp::toElem: a @ inout(ubyte)[] * * * * * * * * * * * * DtoSymbolAddress ('a' of type 'inout(ubyte)[]') * * * * * * * * * * * * * function param * * * * * * * * * * * * * type: inout(ubyte)[] * * * * * * * * * * * DtoArrayLen * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/object.di(815) * * * * * * PtrExp::toElem: *& arr @ inout(ubyte)[] * * * * * * * SymOffExp::toElem: & arr @ inout(ubyte)[]* * * * * * * * * DtoSymbolAddress ('arr' of type 'void[]') * * * * * * * * * a normal variable * * * * * * * * Casting from 'void[]*' to 'inout(ubyte)[]*' * * * * * * * * * src: %arr = alloca { i64, i8* }, align 8 * * * * * * * * * to type: { i64, i8* }* * * * * * * return value is '0x12cd7908' * TemplateInstance::codegen: 'object._doPostblit!ubyte' * * DtoDefineFunction(object._doPostblit!ubyte._doPostblit): /usr/include/dlang/ldc/object.di(845) * * * Doing function body for: _doPostblit * * * DtoCreateNestedContext for _doPostblit * * * * DtoCreateNestedContextType for object._doPostblit!ubyte._doPostblit * * * CompoundStatement::toIR(): * * * * IfStatement::toIR(): /usr/include/dlang/ldc/object.di(848) * * * * * Building type: void delegate(ref ubyte t) pure nothrow @nogc @safe * * * * * * DtoFunctionType(pure nothrow @nogc @safe void(ref ubyte t)) * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * Final function type: void (i8*, i8*) * * * * * CommaExp::toElem: void delegate(ref ubyte t) pure nothrow @nogc @safe postblit = _getPostblit(); , postblit @ void delegate(ref ubyte t) pure nothrow @nogc @safe * * * * * * DeclarationExp::toElem: void delegate(ref ubyte t) pure nothrow @nogc @safe postblit = _getPostblit(); | T=void * * * * * * * DtoDeclarationExp: postblit * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = void delegate(ref ubyte t) pure nothrow @nogc @safe) * * * * * * * * * llvm value for decl: %postblit = alloca { i8*, void (i8*, i8*)* }, align 8 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: postblit = _getPostblit() | (void delegate(ref ubyte t) pure nothrow @nogc @safe)(void delegate(ref ubyte t) pure nothrow @nogc @safe = void delegate(ref ubyte t) pure nothrow @nogc @safe) * * * * * * * * * * VarExp::toElem: postblit @ void delegate(ref ubyte t) pure nothrow @nogc @safe * * * * * * * * * * * DtoSymbolAddress ('postblit' of type 'void delegate(ref ubyte t) pure nothrow @nogc @safe') * * * * * * * * * * * * a normal variable * * * * * * * * * * CallExp::toElem: _getPostblit() @ void delegate(ref ubyte t) pure nothrow @nogc @safe * * * * * * * * * * * VarExp::toElem: _getPostblit @ pure nothrow @nogc @trusted void delegate(ref ubyte t) pure nothrow @nogc @safe() * * * * * * * * * * * * DtoSymbolAddress ('_getPostblit' of type 'pure nothrow @nogc @trusted void delegate(ref ubyte t) pure nothrow @nogc @safe()') * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted void delegate(ref ubyte t) pure nothrow @nogc @safe()) * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * Final function type: { i8*, void (i8*, i8*)* } () * * * * * * * * * * * * * DtoResolveFunction(object._getPostblit!ubyte._getPostblit): /usr/include/dlang/ldc/object.di(828) * * * * * * * * * * * * * * DtoDeclareFunction(object._getPostblit!ubyte._getPostblit): /usr/include/dlang/ldc/object.di(828) * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted void delegate(ref ubyte t) pure nothrow @nogc @safe()) * * * * * * * * * * * * * * * func = declare { i8*, void (i8*, i8*)* } @_D6object20__T12_getPostblitThZ12_getPostblitFNaNbNiNeZDFNaNbNiNfKhZv() * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * Building type: pure nothrow @nogc @trusted void delegate(ref ubyte t) pure nothrow @nogc @safe() * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted void delegate(ref ubyte t) pure nothrow @nogc @safe()) * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * Final function type: { i8*, void (i8*, i8*)* } () * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * Function type: pure nothrow @nogc @trusted void delegate(ref ubyte t) pure nothrow @nogc @safe() * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %postblit = alloca { i8*, void (i8*, i8*)* }, align 8 * * * * * * * * * * * rhs: %1 = call { i8*, void (i8*, i8*)* } @_D6object20__T12_getPostblitThZ12_getPostblitFNaNbNiNeZDFNaNbNiNfKhZv() * * * * * * VarExp::toElem: postblit @ void delegate(ref ubyte t) pure nothrow @nogc @safe * * * * * * * DtoSymbolAddress ('postblit' of type 'void delegate(ref ubyte t) pure nothrow @nogc @safe') * * * * * * * * a normal variable * * * * * if conditional: %2 = load { i8*, void (i8*, i8*)* }, { i8*, void (i8*, i8*)* }* %postblit * * * * * Casting from 'void delegate(ref ubyte t) pure nothrow @nogc @safe' to 'bool' * * * * * * Doing delegate equality * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/object.di(849) * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/object.di(850) * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/object.di(850) * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/object.di(850) * * * * * * * * * DeclarationExp::toElem: ubyte[] __aggr3501 = arr[]; | T=void * * * * * * * * * * DtoDeclarationExp: __aggr3501 * * * * * * * * * * * VarDeclaration * * * * * * * * * * * DtoVarDeclaration(vdtype = ubyte[]) * * * * * * * * * * * * llvm value for decl: %__aggr3501 = alloca { i64, i8* }, align 8 * * * * * * * * * * * * expression initializer * * * * * * * * * * * * AssignExp::toElem: __aggr3501 = arr[] | (ubyte[])(ubyte[] = ubyte[]) * * * * * * * * * * * * * VarExp::toElem: __aggr3501 @ ubyte[] * * * * * * * * * * * * * * DtoSymbolAddress ('__aggr3501' of type 'ubyte[]') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * SliceExp::toElem: arr[] @ ubyte[] * * * * * * * * * * * * * * VarExp::toElem: arr @ ubyte[] * * * * * * * * * * * * * * * DtoSymbolAddress ('arr' of type 'ubyte[]') * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * type: ubyte[] * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * SetArray * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/object.di(850) * * * * * * * * * DeclarationExp::toElem: ulong __key3502 = 0LU; | T=void * * * * * * * * * * DtoDeclarationExp: __key3502 * * * * * * * * * * * VarDeclaration * * * * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * * * * llvm value for decl: %__key3502 = alloca i64, align 8 * * * * * * * * * * * * expression initializer * * * * * * * * * * * * AssignExp::toElem: __key3502 = 0LU | (ulong)(ulong = ulong) * * * * * * * * * * * * * VarExp::toElem: __key3502 @ ulong * * * * * * * * * * * * * * DtoSymbolAddress ('__key3502' of type 'ulong') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * lhs: %__key3502 = alloca i64, align 8 * * * * * * * * * * * * * * rhs: i64 0 * * * * * * * * ForStatement::toIR(): /usr/include/dlang/ldc/object.di(850) * * * * * * * * * CmpExp::toElem: __key3502 < __aggr3501.length @ bool * * * * * * * * * * VarExp::toElem: __key3502 @ ulong * * * * * * * * * * * DtoSymbolAddress ('__key3502' of type 'ulong') * * * * * * * * * * * * a normal variable * * * * * * * * * * ArrayLengthExp::toElem: __aggr3501.length @ ulong * * * * * * * * * * * VarExp::toElem: __aggr3501 @ ubyte[] * * * * * * * * * * * * DtoSymbolAddress ('__aggr3501' of type 'ubyte[]') * * * * * * * * * * * * * a normal variable * * * * * * * * * * * DtoArrayLen * * * * * * * * * * type 1: %15 = load i64, i64* %__key3502 * * * * * * * * * * type 2: %.len1 = load i64, i64* %14 * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/object.di(850) * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/object.di(850) * * * * * * * * * * * DeclarationExp::toElem: ref ubyte elem = __aggr3501[__key3502]; | T=void * * * * * * * * * * * * DtoDeclarationExp: elem * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * DtoVarDeclaration(vdtype = ubyte) * * * * * * * * * * * * * * llvm value for decl: %elem = alloca i8*, align 8 * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * AssignExp::toElem: elem = __aggr3501[__key3502] | (ubyte)(ubyte = ubyte) * * * * * * * * * * * * * * * performing ref variable initialization * * * * * * * * * * * * * * * VarExp::toElem: elem @ ubyte * * * * * * * * * * * * * * * * DtoSymbolAddress ('elem' of type 'ubyte') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * IndexExp::toElem: __aggr3501[__key3502] @ ubyte * * * * * * * * * * * * * * * * VarExp::toElem: __aggr3501 @ ubyte[] * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__aggr3501' of type 'ubyte[]') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * VarExp::toElem: __key3502 @ ulong * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__key3502' of type 'ulong') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/object.di(851) * * * * * * * * * * * CallExp::toElem: postblit(elem) @ void * * * * * * * * * * * * VarExp::toElem: postblit @ void delegate(ref ubyte t) pure nothrow @nogc @safe * * * * * * * * * * * * * DtoSymbolAddress ('postblit' of type 'void delegate(ref ubyte t) pure nothrow @nogc @safe') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * %.ptr4 = load i8*, i8** %23 * * * * * * * * * * * * * Function type: pure nothrow @nogc @safe void(ref ubyte t) * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * VarExp::toElem: elem @ ubyte * * * * * * * * * * * * * * * DtoSymbolAddress ('elem' of type 'ubyte') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * AddAssignExp::toElem: __key3502 += 1LU @ ulong * * * * * * * * * * Caching l-value of __key3502 += 1LU => __key3502 * * * * * * * * * * * VarExp::toElem: __key3502 @ ulong * * * * * * * * * * * * DtoSymbolAddress ('__key3502' of type 'ulong') * * * * * * * * * * * * * a normal variable * * * * * * * * * * AddExp::toElem: __key3502 + 1LU @ ulong * * * * * * * * * * * VarExp::toElem: __key3502 @ ulong * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %__key3502 = alloca i64, align 8 * * * * * * * * * * * rhs: %20 = add i64 %19, 1 * TemplateInstance::codegen: 'object._getPostblit!ubyte' * * DtoDefineFunction(object._getPostblit!ubyte._getPostblit): /usr/include/dlang/ldc/object.di(828) * * * Doing function body for: _getPostblit * * * DtoCreateNestedContext for _getPostblit * * * * DtoCreateNestedContextType for object._getPostblit!ubyte._getPostblit * * * CompoundStatement::toIR(): * * * * IfStatement::toIR(): /usr/include/dlang/ldc/object.di(837) * * * * * IdentityExp::toElem: (&typeid(ubyte).postblit).funcptr !is & postblit @ bool * * * * * * DelegateFuncptrExp::toElem: (&typeid(ubyte).postblit).funcptr @ void function(void* p) const * * * * * * * DelegateExp::toElem: &typeid(ubyte).postblit @ void delegate(void* p) const * * * * * * * * Building type: void delegate(void* p) const * * * * * * * * * DtoFunctionType(const void(void* p)) * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: void (i8*, i8*) * * * * * * * * SymOffExp::toElem: typeid(ubyte) @ object.TypeInfo * * * * * * * * * DtoSymbolAddress ('typeid(ubyte)' of type 'object.TypeInfo') * * * * * * * * * * TypeInfoDeclaration * * * * * * * * * Casting from 'TypeInfo*' to 'object.TypeInfo' * * * * * * * * * * src: @_D10TypeInfo_h6__initZ = external constant %object.TypeInfo * * * * * * * * * * to type: %object.TypeInfo* * * * * * * * * context = @_D10TypeInfo_h6__initZ = external constant %object.TypeInfo * * * * * * * * func: 'object.TypeInfo.postblit' * * * * * * * * vthis: @_D10TypeInfo_h6__initZ = external constant %object.TypeInfo * * * * * * * * funcval: %3 = load void (%object.TypeInfo*, i8*)*, void (%object.TypeInfo*, i8*)** %"&typeid(ubyte).postblit@vtbl", align 8 * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * DtoFunctionType(const void(void* p)) * * * * * * * * funcval casted: %"&typeid(ubyte).postblit" = load void (%object.TypeInfo*, i8*)*, void (%object.TypeInfo*, i8*)** %"&typeid(ubyte).postblit@vtbl", align 8 * * * * * * * Building type: void function(void* p) const * * * * * * * * Building type: const void(void* p) * * * * * * * * * DtoFunctionType(const void(void* p)) * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: void (i8*) * * * * * * SymOffExp::toElem: & postblit @ void function(void* p) const * * * * * * * DtoSymbolAddress ('postblit' of type 'const void(void* p)') * * * * * * * * FuncDeclaration * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * DtoFunctionType(const void(void* p)) * * * * * * * * DtoResolveFunction(object.TypeInfo.postblit): /usr/include/dlang/ldc/object.di(127) * * * * * * * * * DtoDeclareFunction(object.TypeInfo.postblit): /usr/include/dlang/ldc/object.di(127) * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * DtoFunctionType(const void(void* p)) * * * * * * * * * * func = declare void @_D6object8TypeInfo8postblitMxFPvZv(%object.TypeInfo*, i8*) * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/object.di(838) * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/object.di(839) * * * * * * * CastExp::toElem: cast(void delegate(ref ubyte t) pure nothrow @nogc @safe)&typeid(ubyte).postblit @ void delegate(ref ubyte t) pure nothrow @nogc @safe * * * * * * * * DelegateExp::toElem: &typeid(ubyte).postblit @ void delegate(void* p) const * * * * * * * * * Building type: void delegate(void* p) const * * * * * * * * * * DtoFunctionType(const void(void* p)) * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * Final function type: void (i8*, i8*) * * * * * * * * * SymOffExp::toElem: typeid(ubyte) @ object.TypeInfo * * * * * * * * * * DtoSymbolAddress ('typeid(ubyte)' of type 'object.TypeInfo') * * * * * * * * * * * TypeInfoDeclaration * * * * * * * * * * Casting from 'TypeInfo*' to 'object.TypeInfo' * * * * * * * * * * * src: @_D10TypeInfo_h6__initZ = external constant %object.TypeInfo * * * * * * * * * * * to type: %object.TypeInfo* * * * * * * * * * context = @_D10TypeInfo_h6__initZ = external constant %object.TypeInfo * * * * * * * * * func: 'object.TypeInfo.postblit' * * * * * * * * * vthis: @_D10TypeInfo_h6__initZ = external constant %object.TypeInfo * * * * * * * * * funcval: %10 = load void (%object.TypeInfo*, i8*)*, void (%object.TypeInfo*, i8*)** %"&typeid(ubyte).postblit@vtbl1", align 8 * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * DtoFunctionType(const void(void* p)) * * * * * * * * * funcval casted: %"&typeid(ubyte).postblit2" = load void (%object.TypeInfo*, i8*)*, void (%object.TypeInfo*, i8*)** %"&typeid(ubyte).postblit@vtbl1", align 8 * * * * * * * * Casting from 'void delegate(void* p) const' to 'void delegate(ref ubyte t) pure nothrow @nogc @safe' * * * * * * * * * repainting from 'void delegate(void* p) const' to 'void delegate(ref ubyte t) pure nothrow @nogc @safe' * * * * * * * * * dg: %12 = insertvalue { i8*, void (i8*, i8*)* } %11, void (i8*, i8*)* %.funcptr, 1 * * * * * * * return value is '0x12ce57b0' * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/object.di(842) * * * * * * CastExp::toElem: cast(void delegate(ref ubyte t) pure nothrow @nogc @safe)null @ void delegate(ref ubyte t) pure nothrow @nogc @safe * * * * * * * NullExp::toElem(type=typeof(null)): null * * * * * * * * NullExp::toConstElem(type=typeof(null)): null * * * * * * * * * Building type: typeof(null) * * * * * * * Casting from 'typeof(null)' to 'void delegate(ref ubyte t) pure nothrow @nogc @safe' * * * * * * return value is '0x12cda2e0' * TemplateInstance::codegen: 'object._PostBlitType!ubyte' * * Ignoring Dsymbol::codegen for object._PostBlitType!ubyte._PostBlitType * TemplateInstance::codegen: 'object.RTInfo!(Unpacker)' * * VarDeclaration::codegen(): 'object.RTInfo!(Unpacker).RTInfo' * * * DtoResolveVariable(object.RTInfo!(Unpacker).RTInfo) * TemplateInstance::codegen: 'object.RTInfo!(Via)' * * VarDeclaration::codegen(): 'object.RTInfo!(Via).RTInfo' * * * DtoResolveVariable(object.RTInfo!(Via).RTInfo) * TemplateInstance::codegen: 'object.RTInfo!(Value)' * * VarDeclaration::codegen(): 'object.RTInfo!(Value).RTInfo' * * * DtoResolveVariable(object.RTInfo!(Value).RTInfo) * TemplateInstance::codegen: 'object._ArrayEq!(const(Value), const(Value))' * * DtoDefineFunction(object._ArrayEq!(const(Value), const(Value))._ArrayEq): /usr/include/dlang/ldc/object.di(683) * * * DtoFunctionType(@safe bool(const(Value)[] a1, const(Value)[] a2)) * * * * Building type: const(Value)[] * * * * * Building type: Value * * * * * * Building struct type msgpack.Value @ msgpack-d/src/msgpack.d(3104) * * * * * * * adding default initializer for struct field type * * * * * * * adding default initializer for struct field via * * * * * * * Building type: Type * * * * * * * Building type: Type * * * * * * * Building type: Via * * * * * * * * Building struct type msgpack.Value.Via @ msgpack-d/src/msgpack.d(3124) * * * * * * * * * adding default initializer for struct field boolean * * * * * * * * * final struct type: %msgpack.Value.Via = type <{ i8, [15 x i8] }> * * * * * * * final struct type: %msgpack.Value = type { i32, [12 x i8], %msgpack.Value.Via } * * * * x86-64 ABI: Transforming return type * * * * x86-64 ABI: Transforming argument types * * * * Final function type: i1 ({ i64, %msgpack.Value* }, { i64, %msgpack.Value* }) * * * DtoResolveFunction(object._ArrayEq!(const(Value), const(Value))._ArrayEq): /usr/include/dlang/ldc/object.di(683) * * * * DtoDeclareFunction(object._ArrayEq!(const(Value), const(Value))._ArrayEq): /usr/include/dlang/ldc/object.di(683) * * * * * DtoFunctionType(@safe bool(const(Value)[] a1, const(Value)[] a2)) * * * * * func = declare i1 @_D6object47__T8_ArrayEqTxS7msgpack5ValueTxS7msgpack5ValueZ8_ArrayEqFNfAxS7msgpack5ValueAxS7msgpack5ValueZb({ i64, %msgpack.Value* }, { i64, %msgpack.Value* }) * * * Doing function body for: _ArrayEq * * * DtoCreateNestedContext for _ArrayEq * * * * DtoCreateNestedContextType for object._ArrayEq!(const(Value), const(Value))._ArrayEq * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/object.di(684) * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/object.di(685) * * * * * * EqualExp::toElem: a1.length != a2.length @ bool * * * * * * * ArrayLengthExp::toElem: a1.length @ ulong * * * * * * * * VarExp::toElem: a1 @ const(Value)[] * * * * * * * * * DtoSymbolAddress ('a1' of type 'const(Value)[]') * * * * * * * * * * function param * * * * * * * * * * type: const(Value)[] * * * * * * * * DtoArrayLen * * * * * * * ArrayLengthExp::toElem: a2.length @ ulong * * * * * * * * VarExp::toElem: a2 @ const(Value)[] * * * * * * * * * DtoSymbolAddress ('a2' of type 'const(Value)[]') * * * * * * * * * * function param * * * * * * * * * * type: const(Value)[] * * * * * * * * DtoArrayLen * * * * * * * integral or pointer or interface * * * * * * * lv: %.len = load i64, i64* %1 * * * * * * * rv: %.len1 = load i64, i64* %2 * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/object.di(686) * * * * * * * IntegerExp::toElem: false @ bool * * * * * * * * IntegerExp::toConstElem: false @ bool * * * * * * * * * value = i1 false * * * * * * * return value is '0x120e69a0' * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/object.di(687) * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/object.di(687) * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/object.di(687) * * * * * * * * DeclarationExp::toElem: const(Value)[] __aggr3506 = a1[]; | T=void * * * * * * * * * DtoDeclarationExp: __aggr3506 * * * * * * * * * * VarDeclaration * * * * * * * * * * DtoVarDeclaration(vdtype = const(Value)[]) * * * * * * * * * * * llvm value for decl: %__aggr3506 = alloca { i64, %msgpack.Value* }, align 8 * * * * * * * * * * * expression initializer * * * * * * * * * * * AssignExp::toElem: __aggr3506 = a1[] | (const(Value)[])(const(Value)[] = const(Value)[]) * * * * * * * * * * * * VarExp::toElem: __aggr3506 @ const(Value)[] * * * * * * * * * * * * * DtoSymbolAddress ('__aggr3506' of type 'const(Value)[]') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * SliceExp::toElem: a1[] @ const(Value)[] * * * * * * * * * * * * * VarExp::toElem: a1 @ const(Value)[] * * * * * * * * * * * * * * DtoSymbolAddress ('a1' of type 'const(Value)[]') * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * type: const(Value)[] * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * SetArray * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/object.di(687) * * * * * * * * DeclarationExp::toElem: ulong __key3505 = 0LU; | T=void * * * * * * * * * DtoDeclarationExp: __key3505 * * * * * * * * * * VarDeclaration * * * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * * * llvm value for decl: %__key3505 = alloca i64, align 8 * * * * * * * * * * * expression initializer * * * * * * * * * * * AssignExp::toElem: __key3505 = 0LU | (ulong)(ulong = ulong) * * * * * * * * * * * * VarExp::toElem: __key3505 @ ulong * * * * * * * * * * * * * DtoSymbolAddress ('__key3505' of type 'ulong') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * lhs: %__key3505 = alloca i64, align 8 * * * * * * * * * * * * * rhs: i64 0 * * * * * * * ForStatement::toIR(): /usr/include/dlang/ldc/object.di(687) * * * * * * * * CmpExp::toElem: __key3505 < __aggr3506.length @ bool * * * * * * * * * VarExp::toElem: __key3505 @ ulong * * * * * * * * * * DtoSymbolAddress ('__key3505' of type 'ulong') * * * * * * * * * * * a normal variable * * * * * * * * * ArrayLengthExp::toElem: __aggr3506.length @ ulong * * * * * * * * * * VarExp::toElem: __aggr3506 @ const(Value)[] * * * * * * * * * * * DtoSymbolAddress ('__aggr3506' of type 'const(Value)[]') * * * * * * * * * * * * a normal variable * * * * * * * * * * DtoArrayLen * * * * * * * * * type 1: %9 = load i64, i64* %__key3505 * * * * * * * * * type 2: %.len3 = load i64, i64* %8 * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/object.di(687) * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/object.di(687) * * * * * * * * * * DeclarationExp::toElem: const const(Value) a = __aggr3506[__key3505]; | T=void * * * * * * * * * * * DtoDeclarationExp: a * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * DtoVarDeclaration(vdtype = const(Value)) * * * * * * * * * * * * * llvm value for decl: %a = alloca %msgpack.Value, align 16 * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * AssignExp::toElem: a = __aggr3506[__key3505] | (const(Value))(const(Value) = const(Value)) * * * * * * * * * * * * * * VarExp::toElem: a @ const(Value) * * * * * * * * * * * * * * * DtoSymbolAddress ('a' of type 'const(Value)') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * IndexExp::toElem: __aggr3506[__key3505] @ const(Value) * * * * * * * * * * * * * * * VarExp::toElem: __aggr3506 @ const(Value)[] * * * * * * * * * * * * * * * * DtoSymbolAddress ('__aggr3506' of type 'const(Value)[]') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * VarExp::toElem: __key3505 @ ulong * * * * * * * * * * * * * * * * DtoSymbolAddress ('__key3505' of type 'ulong') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/object.di(687) * * * * * * * * * * DeclarationExp::toElem: ulong i = __key3505; | T=void * * * * * * * * * * * DtoDeclarationExp: i * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * * * * * llvm value for decl: %i = alloca i64, align 8 * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * AssignExp::toElem: i = __key3505 | (ulong)(ulong = ulong) * * * * * * * * * * * * * * VarExp::toElem: i @ ulong * * * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'ulong') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * VarExp::toElem: __key3505 @ ulong * * * * * * * * * * * * * * * DtoSymbolAddress ('__key3505' of type 'ulong') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * lhs: %i = alloca i64, align 8 * * * * * * * * * * * * * * * rhs: %18 = load i64, i64* %__key3505 * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/object.di(688) * * * * * * * * * * NotExp::toElem: !a.opEquals(a2[i]) @ bool * * * * * * * * * * * CallExp::toElem: a.opEquals(a2[i]) @ bool * * * * * * * * * * * * DotVarExp::toElem: a.opEquals @ const @trusted bool(ref const(Value) other) * * * * * * * * * * * * * VarExp::toElem: a @ const(Value) * * * * * * * * * * * * * * DtoSymbolAddress ('a' of type 'const(Value)') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * isMember = this is: Value * * * * * * * * * * * * * DtoFunctionType(const @trusted bool(ref const(Value) other)) * * * * * * * * * * * * * * Building type: Value* * * * * * * * * * * * * * * Building type: const(Value)* * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * Final function type: i1 (%msgpack.Value*, %msgpack.Value*) * * * * * * * * * * * * * DtoResolveFunction(msgpack.Value.opEquals!void.opEquals): msgpack-d/src/msgpack.d(3481) * * * * * * * * * * * * * * DtoDeclareFunction(msgpack.Value.opEquals!void.opEquals): msgpack-d/src/msgpack.d(3481) * * * * * * * * * * * * * * * isMember = this is: Value * * * * * * * * * * * * * * * DtoFunctionType(const @trusted bool(ref const(Value) other)) * * * * * * * * * * * * * * * func = declare i1 @_D7msgpack5Value15__T8opEqualsTvZ8opEqualsMxFNeKxS7msgpack5ValueZb(%msgpack.Value*, %msgpack.Value*) * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * Building type: const @trusted bool(ref const(Value) other) * * * * * * * * * * * * * * DtoFunctionType(const @trusted bool(ref const(Value) other)) * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * Final function type: i1 (%msgpack.Value*) * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * %a = alloca %msgpack.Value, align 16 * * * * * * * * * * * * * Function type: const @trusted bool(ref const(Value) other) * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * IndexExp::toElem: a2[i] @ const(Value) * * * * * * * * * * * * * * * VarExp::toElem: a2 @ const(Value)[] * * * * * * * * * * * * * * * * DtoSymbolAddress ('a2' of type 'const(Value)[]') * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * type: const(Value)[] * * * * * * * * * * * * * * * VarExp::toElem: i @ ulong * * * * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'ulong') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/object.di(689) * * * * * * * * * * * IntegerExp::toElem: false @ bool * * * * * * * * * * * * IntegerExp::toConstElem: false @ bool * * * * * * * * * * * * * value = i1 false * * * * * * * * * * * return value is '0x120e69a0' * * * * * * * * AddAssignExp::toElem: __key3505 += 1LU @ ulong * * * * * * * * * Caching l-value of __key3505 += 1LU => __key3505 * * * * * * * * * * VarExp::toElem: __key3505 @ ulong * * * * * * * * * * * DtoSymbolAddress ('__key3505' of type 'ulong') * * * * * * * * * * * * a normal variable * * * * * * * * * AddExp::toElem: __key3505 + 1LU @ ulong * * * * * * * * * * VarExp::toElem: __key3505 @ ulong * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * value = i64 1 * * * * * * * * * DtoAssign() * * * * * * * * * * lhs: %__key3505 = alloca i64, align 8 * * * * * * * * * * rhs: %14 = add i64 %13, 1 * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/object.di(691) * * * * * * IntegerExp::toElem: true @ bool * * * * * * * IntegerExp::toConstElem: true @ bool * * * * * * * * value = i1 true * * * * * * return value is '0x12188b90' * TemplateInstance::codegen: 'std.traits.isNarrowString!(Value[])' * TemplateInstance::codegen: 'std.traits.isAggregateType!(Value[])' * TemplateInstance::codegen: 'std.traits.isStaticArray!(Value[])' * TemplateInstance::codegen: 'std.traits.OriginalType!(Value[])' * TemplateInstance::codegen: 'std.traits.ModifyTypePreservingSTC!(Impl, Value[])' * TemplateInstance::codegen: 'std.traits.OriginalType!(Value[]).Modifier!(Value[])' * TemplateInstance::codegen: 'std.range.primitives.front!(Value)' * * DtoDefineFunction(std.range.primitives.front!(Value).front): /usr/include/dlang/ldc/std/range/primitives.d(2157) * * * DtoFunctionType(pure nothrow @nogc @property ref @safe Value(Value[] a)) * * * * Building type: Value[] * * * * x86-64 ABI: Transforming argument types * * * * Final function type: %msgpack.Value* ({ i64, %msgpack.Value* }) * * * DtoResolveFunction(std.range.primitives.front!(Value).front): /usr/include/dlang/ldc/std/range/primitives.d(2157) * * * * DtoDeclareFunction(std.range.primitives.front!(Value).front): /usr/include/dlang/ldc/std/range/primitives.d(2157) * * * * * DtoFunctionType(pure nothrow @nogc @property ref @safe Value(Value[] a)) * * * * * func = declare %msgpack.Value* @_D3std5range10primitives26__T5frontTS7msgpack5ValueZ5frontFNaNbNcNdNiNfAS7msgpack5ValueZS7msgpack5Value({ i64, %msgpack.Value* }) * * * Doing function body for: front * * * DtoCreateNestedContext for front * * * * DtoCreateNestedContextType for std.range.primitives.front!(Value).front * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/range/primitives.d(2159) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/range/primitives.d(2160) * * * * * * AssertExp::toElem: assert(a.length, "Attempting to fetch the front of an empty array of Value") * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/range/primitives.d(2161) * * * * * * AddrExp::toElem: &a[0] @ Value* * * * * * * * IndexExp::toElem: a[0] @ Value * * * * * * * * VarExp::toElem: a @ Value[] * * * * * * * * * DtoSymbolAddress ('a' of type 'Value[]') * * * * * * * * * * function param * * * * * * * * * * type: Value[] * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * value = i64 0 * * * * * * * * DtoArrayLen * * * * * * * * DtoArrayPtr * * * * * * * is nothing special * * * * * * * lval: %3 = getelementptr %msgpack.Value, %msgpack.Value* %.ptr, i64 0 * * * * * * return value is '0x12cf2080' * TemplateInstance::codegen: 'std.range.primitives.popFront!(Value)' * * DtoDefineFunction(std.range.primitives.popFront!(Value).popFront): /usr/include/dlang/ldc/std/range/primitives.d(1992) * * * DtoFunctionType(pure nothrow @nogc @safe void(ref Value[] a)) * * * * Building type: Value[]* * * * * x86-64 ABI: Transforming argument types * * * * Final function type: void ({ i64, %msgpack.Value* }*) * * * DtoResolveFunction(std.range.primitives.popFront!(Value).popFront): /usr/include/dlang/ldc/std/range/primitives.d(1992) * * * * DtoDeclareFunction(std.range.primitives.popFront!(Value).popFront): /usr/include/dlang/ldc/std/range/primitives.d(1992) * * * * * DtoFunctionType(pure nothrow @nogc @safe void(ref Value[] a)) * * * * * func = declare void @_D3std5range10primitives29__T8popFrontTS7msgpack5ValueZ8popFrontFNaNbNiNfKAS7msgpack5ValueZv({ i64, %msgpack.Value* }*) * * * Doing function body for: popFront * * * DtoCreateNestedContext for popFront * * * * DtoCreateNestedContextType for std.range.primitives.popFront!(Value).popFront * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/range/primitives.d(1994) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/range/primitives.d(1995) * * * * * * AssertExp::toElem: assert(a.length, "Attempting to popFront() past the end of an array of Value") * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/range/primitives.d(1996) * * * * * * AssignExp::toElem: a = a[1..__dollar] | (Value[])(Value[] = Value[]) * * * * * * * VarExp::toElem: a @ Value[] * * * * * * * * DtoSymbolAddress ('a' of type 'Value[]') * * * * * * * * * function param * * * * * * * * * type: Value[] * * * * * * * SliceExp::toElem: a[1..__dollar] @ Value[] * * * * * * * * VarExp::toElem: a @ Value[] * * * * * * * * * DtoSymbolAddress ('a' of type 'Value[]') * * * * * * * * * * function param * * * * * * * * * * type: Value[] * * * * * * * * DtoArrayPtr * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * value = i64 1 * * * * * * * * VarExp::toElem: __dollar @ ulong * * * * * * * * * DtoSymbolAddress ('__dollar' of type 'ulong') * * * * * * * * * * Id::dollar * * * * * * * * * * DtoArrayLen * * * * * * * * DtoArrayLen * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * DtoAssign() * * * * * * * * DtoArrayAssign * * * * * * * * * DtoArrayPtr * * * * * * * * * DtoArrayLen * * * * * * * * * SetArray * TemplateInstance::codegen: 'object.RTInfo!(Unpacked)' * * VarDeclaration::codegen(): 'object.RTInfo!(Unpacked).RTInfo' * * * DtoResolveVariable(object.RTInfo!(Unpacked).RTInfo) * TemplateInstance::codegen: 'object.RTInfo!(Container)' * * VarDeclaration::codegen(): 'object.RTInfo!(Container).RTInfo' * * * DtoResolveVariable(object.RTInfo!(Container).RTInfo) * TemplateInstance::codegen: 'object.RTInfo!(Context)' * * VarDeclaration::codegen(): 'object.RTInfo!(Context).RTInfo' * * * DtoResolveVariable(object.RTInfo!(Context).RTInfo) * TemplateInstance::codegen: 'object.RTInfo!(StreamingUnpacker)' * * VarDeclaration::codegen(): 'object.RTInfo!(StreamingUnpacker).RTInfo' * * * DtoResolveVariable(object.RTInfo!(StreamingUnpacker).RTInfo) * TemplateInstance::codegen: 'object.reserve!(Value)' * * DtoDefineFunction(object.reserve!(Value).reserve): /usr/include/dlang/ldc/object.di(672) * * * DtoFunctionType(pure nothrow @trusted ulong(ref Value[] arr, ulong newcapacity)) * * * * x86-64 ABI: Transforming return type * * * * x86-64 ABI: Transforming argument types * * * * Final function type: i64 (i64, { i64, %msgpack.Value* }*) * * * DtoResolveFunction(object.reserve!(Value).reserve): /usr/include/dlang/ldc/object.di(672) * * * * DtoDeclareFunction(object.reserve!(Value).reserve): /usr/include/dlang/ldc/object.di(672) * * * * * DtoFunctionType(pure nothrow @trusted ulong(ref Value[] arr, ulong newcapacity)) * * * * * func = declare i64 @_D6object28__T7reserveTS7msgpack5ValueZ7reserveFNaNbNeKAS7msgpack5ValuemZm(i64, { i64, %msgpack.Value* }*) * * * Doing function body for: reserve * * * DtoCreateNestedContext for reserve * * * * DtoCreateNestedContextType for object.reserve!(Value).reserve * * * CompoundStatement::toIR(): * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/object.di(674) * * * * * CallExp::toElem: _d_arraysetcapacity(typeid(Value[]), newcapacity, cast(void[]*)&arr) @ ulong * * * * * * VarExp::toElem: _d_arraysetcapacity @ pure nothrow extern (C) ulong(TypeInfo ti, ulong newcapacity, void[]* arrptr) * * * * * * * DtoSymbolAddress ('_d_arraysetcapacity' of type 'pure nothrow extern (C) ulong(TypeInfo ti, ulong newcapacity, void[]* arrptr)') * * * * * * * * FuncDeclaration * * * * * * DtoCallFunction() * * * * * * * doing normal arguments * * * * * * * Arguments so far: (0) * * * * * * * Function type: pure nothrow extern (C) ulong(TypeInfo ti, ulong newcapacity, void[]* arrptr) * * * * * * * DtoArgument * * * * * * * * SymOffExp::toElem: typeid(Value[]) @ object.TypeInfo * * * * * * * * * DtoSymbolAddress ('typeid(Value[])' of type 'object.TypeInfo_Array') * * * * * * * * * * TypeInfoDeclaration * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(Value[])) * * * * * * * * * * * type = 'Value[]' * * * * * * * * * * * typeinfo mangle: _D25TypeInfo_AS7msgpack5Value6__initZ * * * * * * * * * * * TypeInfoArrayDeclaration::llvmDefine() typeid(Value[]) * * * * * * * * * * * * DtoTypeInfoOf(type = 'Value', base='1') * * * * * * * * * * * * * Type::getTypeInfo(): Value * * * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(Value)) * * * * * * * * * * * * * * * type = 'Value' * * * * * * * * * * * * * * * typeinfo mangle: _D24TypeInfo_S7msgpack5Value6__initZ * * * * * * * * * * * * * * * TypeInfoStructDeclaration::llvmDefine() typeid(Value) * * * * * * * * * * * * * * * * Resolving struct type: Value (msgpack-d/src/msgpack.d(3104)) * * * * * * * * * * * * * * * * isMember = this is: Value * * * * * * * * * * * * * * * * DtoFunctionType(const nothrow @trusted ulong()) * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * Final function type: i64 (%msgpack.Value*) * * * * * * * * * * * * * * * * DtoResolveFunction(msgpack.Value.toHash): msgpack-d/src/msgpack.d(3593) * * * * * * * * * * * * * * * * * DtoDeclareFunction(msgpack.Value.toHash): msgpack-d/src/msgpack.d(3593) * * * * * * * * * * * * * * * * * * isMember = this is: Value * * * * * * * * * * * * * * * * * * DtoFunctionType(const nothrow @trusted ulong()) * * * * * * * * * * * * * * * * * * func = declare i64 @_D7msgpack5Value6toHashMxFNbNeZm(%msgpack.Value*) * * * * * * * * * * * * * * * * DtoFunctionType(bool(ref const(Value) p, ref const(Value) q)) * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * Final function type: i1 (%msgpack.Value*, %msgpack.Value*) * * * * * * * * * * * * * * * * DtoResolveFunction(msgpack.Value.__xopEquals): * * * * * * * * * * * * * * * * * DtoDeclareFunction(msgpack.Value.__xopEquals): * * * * * * * * * * * * * * * * * * DtoFunctionType(bool(ref const(Value) p, ref const(Value) q)) * * * * * * * * * * * * * * * * * * func = declare i1 @_D7msgpack5Value11__xopEqualsFKxS7msgpack5ValueKxS7msgpack5ValueZb(%msgpack.Value*, %msgpack.Value*) * * * * * * * * * * * * * * * * IntegerExp::toConstElem: cast(void*)305419896LU @ void* * * * * * * * * * * * * * * * * * pointer * * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(Value)) * * * * * * * * * Casting from 'TypeInfo_Array*' to 'object.TypeInfo' * * * * * * * * * * src: %object.TypeInfo_Array* bitcast (%"typeid(Value[])"* @_D25TypeInfo_AS7msgpack5Value6__initZ to %object.TypeInfo_Array*) * * * * * * * * * * to type: %object.TypeInfo* * * * * * * * DtoArgument * * * * * * * * VarExp::toElem: newcapacity @ ulong * * * * * * * * * DtoSymbolAddress ('newcapacity' of type 'ulong') * * * * * * * * * * function param * * * * * * * * * * type: ulong * * * * * * * DtoArgument * * * * * * * * CastExp::toElem: cast(void[]*)&arr @ void[]* * * * * * * * * * AddrExp::toElem: &arr @ Value[]* * * * * * * * * * * VarExp::toElem: arr @ Value[] * * * * * * * * * * * DtoSymbolAddress ('arr' of type 'Value[]') * * * * * * * * * * * * function param * * * * * * * * * * * * type: Value[] * * * * * * * * * * is nothing special * * * * * * * * * * lval: { i64, %msgpack.Value* }* %arr_arg * * * * * * * * * Casting from 'Value[]*' to 'void[]*' * * * * * * * * * * src: { i64, %msgpack.Value* }* %arr_arg * * * * * * * * * * to type: { i64, i8* }* * * * * * return value is '0x12cfa1a0' * TypeInfoDeclaration::codegen(typeid(Value[])) * TemplateInstance::codegen: 'object.RTInfo!(_f)' * * VarDeclaration::codegen(): 'object.RTInfo!(_f).RTInfo' * * * DtoResolveVariable(object.RTInfo!(_f).RTInfo) * TemplateInstance::codegen: 'object.RTInfo!(_d)' * * VarDeclaration::codegen(): 'object.RTInfo!(_d).RTInfo' * * * DtoResolveVariable(object.RTInfo!(_d).RTInfo) * TemplateInstance::codegen: 'object.RTInfo!(_r)' * * VarDeclaration::codegen(): 'object.RTInfo!(_r).RTInfo' * * * DtoResolveVariable(object.RTInfo!(_r).RTInfo) * TemplateInstance::codegen: 'object.RTInfo!(PackerImpl!(Appender!(ubyte[])))' * * VarDeclaration::codegen(): 'object.RTInfo!(PackerImpl!(Appender!(ubyte[]))).RTInfo' * * * DtoResolveVariable(object.RTInfo!(PackerImpl!(Appender!(ubyte[]))).RTInfo) * TemplateInstance::codegen: 'std.uni.CodepointInterval.opEquals!(const(CodepointInterval))' * TemplateInstance::codegen: 'object.RTInfo!(Data)' * * VarDeclaration::codegen(): 'object.RTInfo!(Data).RTInfo' * * * DtoResolveVariable(object.RTInfo!(Data).RTInfo) * TemplateInstance::codegen: 'object.RTInfo!(Appender!(string[]))' * * VarDeclaration::codegen(): 'object.RTInfo!(Appender!(string[])).RTInfo' * * * DtoResolveVariable(object.RTInfo!(Appender!(string[])).RTInfo) * TemplateInstance::codegen: 'std.algorithm.mutation.move!(string[])' * * DtoDefineFunction(std.algorithm.mutation.move!(string[]).move): /usr/include/dlang/ldc/std/algorithm/mutation.d(945) * * * Doing function body for: move * * * DtoCreateNestedContext for move * * * * DtoCreateNestedContextType for std.algorithm.mutation.move!(string[]).move * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/mutation.d(946) * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/mutation.d(952) * * * * * * NotExp::toElem: !__ctfe @ bool * * * * * * * VarExp::toElem: __ctfe @ bool * * * * * * * * DtoSymbolAddress ('__ctfe' of type 'bool') * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/mutation.d(953) * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/mutation.d(953) * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/mutation.d(955) * * * * * * * * * AssertExp::toElem: assert(!doesPointTo(source, source), "Cannot move object with internal pointer.") * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/mutation.d(958) * * * * * * DeclarationExp::toElem: string[] result = void; | T=void * * * * * * * DtoDeclarationExp: result * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = string[]) * * * * * * * * * llvm value for decl: %result = alloca { i64, { i64, i8* }* }, align 8 * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/mutation.d(990) * * * * * * AssignExp::toElem: result = source | (string[])(string[] = string[]) * * * * * * * VarExp::toElem: result @ string[] * * * * * * * * DtoSymbolAddress ('result' of type 'string[]') * * * * * * * * * a normal variable * * * * * * * VarExp::toElem: source @ string[] * * * * * * * * DtoSymbolAddress ('source' of type 'string[]') * * * * * * * * * function param * * * * * * * * * type: string[] * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * DtoAssign() * * * * * * * * DtoArrayAssign * * * * * * * * * DtoArrayPtr * * * * * * * * * DtoArrayLen * * * * * * * * * SetArray * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/mutation.d(992) * * * * * * VarExp::toElem: result @ string[] * * * * * * * DtoSymbolAddress ('result' of type 'string[]') * * * * * * * * a normal variable * * * * * * return value is '0x12cfd108' * TemplateInstance::codegen: 'object.RTInfo!(SortedRange!(string[], "a < b"))' * * VarDeclaration::codegen(): 'object.RTInfo!(SortedRange!(string[], "a < b")).RTInfo' * * * DtoResolveVariable(object.RTInfo!(SortedRange!(string[], "a < b")).RTInfo) * Resolving struct type: ModuleInfo (/usr/include/dlang/ldc/object.di(324)) code socket CodeGenerator::emit(common.socket) * *** Initializing D runtime declarations *** * Ignoring Dsymbol::codegen for common.socket.object * Ignoring Dsymbol::codegen for common.socket.core * Ignoring Dsymbol::codegen for common.socket.std * Ignoring Dsymbol::codegen for common.socket.std * Ignoring Dsymbol::codegen for common.socket.std * Ignoring Dsymbol::codegen for haveUnixSockets * DtoDefineFunction(common.socket.generateSocketName): src/common/socket.d(31) * * DtoFunctionType(string()) * * * x86-64 ABI: Transforming return type * * * x86-64 ABI: Transforming argument types * * * Final function type: { i64, i8* } () * * DtoResolveFunction(common.socket.generateSocketName): src/common/socket.d(31) * * * DtoDeclareFunction(common.socket.generateSocketName): src/common/socket.d(31) * * * * DtoFunctionType(string()) * * * * func = declare { i64, i8* } @_D6common6socket18generateSocketNameFZAya() * * Doing function body for: generateSocketName * * DtoCreateNestedContext for generateSocketName * * * DtoCreateNestedContextType for common.socket.generateSocketName * * CompoundStatement::toIR(): * * * CompoundStatement::toIR(): src/common/socket.d(32) * * * * ExpStatement::toIR(): src/common/socket.d(35) * * * * * DeclarationExp::toElem: immutable immutable(string) socketFileName = format("dcd-%d.socket", getuid()); | T=void * * * * * * DtoDeclarationExp: socketFileName * * * * * * * VarDeclaration * * * * * * * DtoVarDeclaration(vdtype = immutable(string)) * * * * * * * * llvm value for decl: %socketFileName = alloca { i64, i8* }, align 8 * * * * * * * * expression initializer * * * * * * * * AssignExp::toElem: socketFileName = format("dcd-%d.socket", getuid()) | (immutable(string))(immutable(string) = immutable(string)) * * * * * * * * * VarExp::toElem: socketFileName @ immutable(string) * * * * * * * * * * DtoSymbolAddress ('socketFileName' of type 'immutable(string)') * * * * * * * * * * * a normal variable * * * * * * * * * CallExp::toElem: format("dcd-%d.socket", getuid()) @ immutable(string) * * * * * * * * * * VarExp::toElem: format @ pure @safe string(const(char[]) fmt, uint _param_1) * * * * * * * * * * * DtoSymbolAddress ('format' of type 'pure @safe string(const(char[]) fmt, uint _param_1)') * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * Building type: pure @safe string(const(char[]) fmt, uint _param_1) * * * * * * * * * * * * DtoFunctionType(pure @safe string(const(char[]) fmt, uint _param_1)) * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * Final function type: { i64, i8* } (i32, { i64, i8* }) * * * * * * * * * * * doing normal arguments * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * Function type: pure @safe string(const(char[]) fmt, uint _param_1) * * * * * * * * * * * DtoArgument * * * * * * * * * * * * StringExp::toElem: "dcd-%d.socket" @ const(char[]) * * * * * * * * * * * * * type: [14 x i8] * * * * * * * * * * * * * init: [14 x i8] c"dcd-%d.socket\00" * * * * * * * * * * * DtoArgument * * * * * * * * * * * * CallExp::toElem: getuid() @ uint * * * * * * * * * * * * * VarExp::toElem: getuid @ nothrow @nogc @trusted extern (C) uint() * * * * * * * * * * * * * * DtoSymbolAddress ('getuid' of type 'nothrow @nogc @trusted extern (C) uint()') * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * DtoFunctionType(nothrow @nogc @trusted extern (C) uint()) * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * Final function type: i32 () * * * * * * * * * * * * * * * DtoResolveFunction(core.sys.posix.unistd.getuid): /usr/include/dlang/ldc/core/sys/posix/unistd.d(69) * * * * * * * * * * * * * * * * DtoDeclareFunction(core.sys.posix.unistd.getuid): /usr/include/dlang/ldc/core/sys/posix/unistd.d(69) * * * * * * * * * * * * * * * * * DtoFunctionType(nothrow @nogc @trusted extern (C) uint()) * * * * * * * * * * * * * * * * * func = declare i32 @getuid() * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * Building type: nothrow @nogc @trusted extern (C) uint() * * * * * * * * * * * * * * * DtoFunctionType(nothrow @nogc @trusted extern (C) uint()) * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * Final function type: i32 () * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * Function type: nothrow @nogc @trusted extern (C) uint() * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * DtoAssign() * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * SetArray * * * * ExpStatement::toIR(): src/common/socket.d(40) * * * * * DeclarationExp::toElem: immutable immutable(string) xdg = get("XDG_RUNTIME_DIR", null); | T=void * * * * * * DtoDeclarationExp: xdg * * * * * * * VarDeclaration * * * * * * * DtoVarDeclaration(vdtype = immutable(string)) * * * * * * * * llvm value for decl: %xdg = alloca { i64, i8* }, align 8 * * * * * * * * expression initializer * * * * * * * * AssignExp::toElem: xdg = get("XDG_RUNTIME_DIR", null) | (immutable(string))(immutable(string) = immutable(string)) * * * * * * * * * VarExp::toElem: xdg @ immutable(string) * * * * * * * * * * DtoSymbolAddress ('xdg' of type 'immutable(string)') * * * * * * * * * * * a normal variable * * * * * * * * * CallExp::toElem: get("XDG_RUNTIME_DIR", null) @ immutable(string) * * * * * * * * * * VarExp::toElem: get @ @safe string(const(char[]) name, string defaultValue = null) * * * * * * * * * * * DtoSymbolAddress ('get' of type '@safe string(const(char[]) name, string defaultValue = null)') * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * DtoFunctionType(@safe string(const(char[]) name, string defaultValue = null)) * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * Final function type: { i64, i8* } ({ i64, i8* }, { i64, i8* }) * * * * * * * * * * * * DtoResolveFunction(std.process.environment.get): /usr/include/dlang/ldc/std/process.d(2853) * * * * * * * * * * * * * DtoDeclareFunction(std.process.environment.get): /usr/include/dlang/ldc/std/process.d(2853) * * * * * * * * * * * * * * DtoFunctionType(@safe string(const(char[]) name, string defaultValue = null)) * * * * * * * * * * * * * * func = declare { i64, i8* } @_D3std7process11environment3getFNfxAaAyaZAya({ i64, i8* }, { i64, i8* }) * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * Building type: @safe string(const(char[]) name, string defaultValue = null) * * * * * * * * * * * * DtoFunctionType(@safe string(const(char[]) name, string defaultValue = null)) * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * Final function type: { i64, i8* } ({ i64, i8* }, { i64, i8* }) * * * * * * * * * * * doing normal arguments * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * Function type: @safe string(const(char[]) name, string defaultValue = null) * * * * * * * * * * * DtoArgument * * * * * * * * * * * * StringExp::toElem: "XDG_RUNTIME_DIR" @ const(char[]) * * * * * * * * * * * * * type: [16 x i8] * * * * * * * * * * * * * init: [16 x i8] c"XDG_RUNTIME_DIR\00" * * * * * * * * * * * DtoArgument * * * * * * * * * * * * NullExp::toElem(type=string): null * * * * * * * * * * * * * NullExp::toConstElem(type=string): null * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * DtoAssign() * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * SetArray * * * * ReturnStatement::toIR(): src/common/socket.d(41) * * * * * CondExp::toElem: xdg is null ? buildPath(["/", "tmp", socketFileName][]) : buildPath([xdg, "dcd.socket"][]) @ string * * * * * * IdentityExp::toElem: xdg is null @ bool * * * * * * * VarExp::toElem: xdg @ immutable(string) * * * * * * * * DtoSymbolAddress ('xdg' of type 'immutable(string)') * * * * * * * * * a normal variable * * * * * * * NullExp::toElem(type=immutable(string)): null * * * * * * * * NullExp::toConstElem(type=immutable(string)): null * * * * * * * DtoArrayLen * * * * * * * DtoArrayLen * * * * * * * DtoArrayPtr * * * * * * * DtoArrayPtr * * * * * * CallExp::toElem: buildPath(["/", "tmp", socketFileName][]) @ string * * * * * * * VarExp::toElem: buildPath @ pure nothrow @safe string(const(char[])[] paths...) * * * * * * * * DtoSymbolAddress ('buildPath' of type 'pure nothrow @safe string(const(char[])[] paths...)') * * * * * * * * * FuncDeclaration * * * * * * * * * DtoFunctionType(pure nothrow @safe string(const(char[])[] paths...)) * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: { i64, i8* } ({ i64, { i64, i8* }* }, ...) * * * * * * * * * DtoResolveFunction(std.path.buildPath!char.buildPath): /usr/include/dlang/ldc/std/path.d(1024) * * * * * * * * * * DtoDeclareFunction(std.path.buildPath!char.buildPath): /usr/include/dlang/ldc/std/path.d(1024) * * * * * * * * * * * DtoFunctionType(pure nothrow @safe string(const(char[])[] paths...)) * * * * * * * * * * * func = declare { i64, i8* } @_D3std4path16__T9buildPathTaZ9buildPathFNaNbNfAxAaXAya({ i64, { i64, i8* }* }, ...) * * * * * * * DtoCallFunction() * * * * * * * * Building type: pure nothrow @safe string(const(char[])[] paths...) * * * * * * * * * DtoFunctionType(pure nothrow @safe string(const(char[])[] paths...)) * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: { i64, i8* } ({ i64, { i64, i8* }* }, ...) * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (0) * * * * * * * * Function type: pure nothrow @safe string(const(char[])[] paths...) * * * * * * * * DtoArgument * * * * * * * * * SliceExp::toElem: ["/", "tmp", socketFileName][] @ const(char[])[] * * * * * * * * * * ArrayLiteralExp::toElem: ["/", "tmp", socketFileName] @ const(char[][3]) * * * * * * * * * * * Building type: const(char)[][3] * * * * * * * * * * * static array literal with length 3 of D type: 'const(char[][3])' has llvm type: '[3 x { i64, i8* }]' * * * * * * * * * * * llvm storage type: '[3 x { i64, i8* }]' * * * * * * * * * * * StringExp::toElem: "/" @ const(char[]) * * * * * * * * * * * * type: [2 x i8] * * * * * * * * * * * * init: [2 x i8] c"/\00" * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * SetArray * * * * * * * * * * * StringExp::toElem: "tmp" @ const(char[]) * * * * * * * * * * * * type: [4 x i8] * * * * * * * * * * * * init: [4 x i8] c"tmp\00" * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * SetArray * * * * * * * * * * * VarExp::toElem: socketFileName @ const(char[]) * * * * * * * * * * * * DtoSymbolAddress ('socketFileName' of type 'immutable(string)') * * * * * * * * * * * * * a normal variable * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * SetArray * * * * * * * * * * DtoArrayPtr * * * * * * CallExp::toElem: buildPath([xdg, "dcd.socket"][]) @ string * * * * * * * VarExp::toElem: buildPath @ pure nothrow @safe string(const(char[])[] paths...) * * * * * * * * DtoSymbolAddress ('buildPath' of type 'pure nothrow @safe string(const(char[])[] paths...)') * * * * * * * * * FuncDeclaration * * * * * * * DtoCallFunction() * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (0) * * * * * * * * Function type: pure nothrow @safe string(const(char[])[] paths...) * * * * * * * * DtoArgument * * * * * * * * * SliceExp::toElem: [xdg, "dcd.socket"][] @ const(char[])[] * * * * * * * * * * ArrayLiteralExp::toElem: [xdg, "dcd.socket"] @ const(char[][2]) * * * * * * * * * * * Building type: const(char)[][2] * * * * * * * * * * * static array literal with length 2 of D type: 'const(char[][2])' has llvm type: '[2 x { i64, i8* }]' * * * * * * * * * * * llvm storage type: '[2 x { i64, i8* }]' * * * * * * * * * * * VarExp::toElem: xdg @ const(char[]) * * * * * * * * * * * * DtoSymbolAddress ('xdg' of type 'immutable(string)') * * * * * * * * * * * * * a normal variable * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * SetArray * * * * * * * * * * * StringExp::toElem: "dcd.socket" @ const(char[]) * * * * * * * * * * * * type: [11 x i8] * * * * * * * * * * * * init: [11 x i8] c"dcd.socket\00" * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * SetArray * * * * * * * * * * DtoArrayPtr * * * * * return value is '0x12d0f5a8' * TemplateInstance::codegen: 'ldc.intrinsics.llvm_log10!real' * TemplateInstance::codegen: 'ldc.intrinsics.llvm_log2!real' * TemplateInstance::codegen: 'ldc.intrinsics.llvm_fabs!real' * TemplateInstance::codegen: 'ldc.intrinsics.llvm_ceil!real' * TemplateInstance::codegen: 'ldc.intrinsics.llvm_floor!real' * TemplateInstance::codegen: 'ldc.intrinsics.llvm_nearbyint!real' * TemplateInstance::codegen: 'ldc.intrinsics.llvm_rint!real' * TemplateInstance::codegen: 'ldc.intrinsics.llvm_round!real' * TemplateInstance::codegen: 'ldc.intrinsics.llvm_trunc!real' * TemplateInstance::codegen: 'ldc.intrinsics.llvm_copysign!real' * TemplateInstance::codegen: 'std.path.buildPath!char' * * DtoDefineFunction(std.path.buildPath!char.buildPath): /usr/include/dlang/ldc/std/path.d(1024) * * * Doing function body for: buildPath * * * DtoCreateNestedContext for buildPath * * * * DtoCreateNestedContextType for std.path.buildPath!char.buildPath * * * CompoundStatement::toIR(): * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/path.d(1028) * * * * * CallExp::toElem: buildPath(paths) @ string * * * * * * VarExp::toElem: buildPath @ pure nothrow @safe string(const(char[])[] segments) * * * * * * * DtoSymbolAddress ('buildPath' of type 'pure nothrow @safe string(const(char[])[] segments)') * * * * * * * * FuncDeclaration * * * * * * * * DtoFunctionType(pure nothrow @safe string(const(char[])[] segments)) * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * Final function type: { i64, i8* } ({ i64, { i64, i8* }* }) * * * * * * * * DtoResolveFunction(std.path.buildPath!(const(char[])[]).buildPath): /usr/include/dlang/ldc/std/path.d(968) * * * * * * * * * DtoDeclareFunction(std.path.buildPath!(const(char[])[]).buildPath): /usr/include/dlang/ldc/std/path.d(968) * * * * * * * * * * DtoFunctionType(pure nothrow @safe string(const(char[])[] segments)) * * * * * * * * * * func = declare { i64, i8* } @_D3std4path19__T9buildPathTAxAaZ9buildPathFNaNbNfAxAaZAya({ i64, { i64, i8* }* }) * * * * * * DtoCallFunction() * * * * * * * Building type: pure nothrow @safe string(const(char[])[] segments) * * * * * * * * DtoFunctionType(pure nothrow @safe string(const(char[])[] segments)) * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * Final function type: { i64, i8* } ({ i64, { i64, i8* }* }) * * * * * * * doing normal arguments * * * * * * * Arguments so far: (0) * * * * * * * Function type: pure nothrow @safe string(const(char[])[] segments) * * * * * * * DtoArgument * * * * * * * * VarExp::toElem: paths @ const(char[])[] * * * * * * * * * DtoSymbolAddress ('paths' of type 'const(char[])[]') * * * * * * * * * * function param * * * * * * * * * * type: const(char[])[] * * * * * return value is '0x12d11e10' * TemplateInstance::codegen: 'std.path.buildPath!(const(char[])[])' * * DtoDefineFunction(std.path.buildPath!(const(char[])[]).buildPath): /usr/include/dlang/ldc/std/path.d(968) * * * Doing function body for: buildPath * * * DtoCreateNestedContext for buildPath * * * * DtoCreateNestedContextType for std.path.buildPath!(const(char[])[]).buildPath * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/path.d(970) * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/path.d(971) * * * * * * CallExp::toElem: empty(segments) @ bool * * * * * * * VarExp::toElem: empty @ pure nothrow @nogc @property @safe bool(const(char[][]) a) * * * * * * * * DtoSymbolAddress ('empty' of type 'pure nothrow @nogc @property @safe bool(const(char[][]) a)') * * * * * * * * * FuncDeclaration * * * * * * * DtoCallFunction() * * * * * * * * Building type: pure nothrow @nogc @property @safe bool(const(char[][]) a) * * * * * * * * * DtoFunctionType(pure nothrow @nogc @property @safe bool(const(char[][]) a)) * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: i1 ({ i64, { i64, i8* }* }) * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (0) * * * * * * * * Function type: pure nothrow @nogc @property @safe bool(const(char[][]) a) * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: segments @ const(char[][]) * * * * * * * * * * DtoSymbolAddress ('segments' of type 'const(char[])[]') * * * * * * * * * * * function param * * * * * * * * * * * type: const(char[])[] * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/path.d(971) * * * * * * * NullExp::toElem(type=string): null * * * * * * * * NullExp::toConstElem(type=string): null * * * * * * * return value is '0x120dd7b0' * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/path.d(976) * * * * * * DeclarationExp::toElem: const(char[])[] segments2 = save(segments); | T=void * * * * * * * DtoDeclarationExp: segments2 * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = const(char[])[]) * * * * * * * * * llvm value for decl: %segments2 = alloca { i64, { i64, i8* }* }, align 8 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: segments2 = save(segments) | (const(char[])[])(const(char[])[] = const(char[])[]) * * * * * * * * * * VarExp::toElem: segments2 @ const(char[])[] * * * * * * * * * * * DtoSymbolAddress ('segments2' of type 'const(char[])[]') * * * * * * * * * * * * a normal variable * * * * * * * * * * CallExp::toElem: save(segments) @ const(char[])[] * * * * * * * * * * * VarExp::toElem: save @ pure nothrow @nogc @property @safe const(char[])[](const(char[])[] a) * * * * * * * * * * * * DtoSymbolAddress ('save' of type 'pure nothrow @nogc @property @safe const(char[])[](const(char[])[] a)') * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * Building type: pure nothrow @nogc @property @safe const(char[])[](const(char[])[] a) * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @property @safe const(char[])[](const(char[])[] a)) * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * Final function type: { i64, { i64, i8* }* } ({ i64, { i64, i8* }* }) * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * Function type: pure nothrow @nogc @property @safe const(char[])[](const(char[])[] a) * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * VarExp::toElem: segments @ const(char[])[] * * * * * * * * * * * * * * DtoSymbolAddress ('segments' of type 'const(char[])[]') * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * type: const(char[])[] * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * SetArray * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/path.d(977) * * * * * * DeclarationExp::toElem: ulong precalc = 0LU; | T=void * * * * * * * DtoDeclarationExp: precalc * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * llvm value for decl: %precalc = alloca i64, align 8 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: precalc = 0LU | (ulong)(ulong = ulong) * * * * * * * * * * VarExp::toElem: precalc @ ulong * * * * * * * * * * * DtoSymbolAddress ('precalc' of type 'ulong') * * * * * * * * * * * * a normal variable * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * value = i64 0 * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %precalc = alloca i64, align 8 * * * * * * * * * * * rhs: i64 0 * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/path.d(978) * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/path.d(978) * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/path.d(978) * * * * * * * * DeclarationExp::toElem: const(char[])[] __aggr3179 = segments2[]; | T=void * * * * * * * * * DtoDeclarationExp: __aggr3179 * * * * * * * * * * VarDeclaration * * * * * * * * * * DtoVarDeclaration(vdtype = const(char[])[]) * * * * * * * * * * * llvm value for decl: %__aggr3179 = alloca { i64, { i64, i8* }* }, align 8 * * * * * * * * * * * expression initializer * * * * * * * * * * * AssignExp::toElem: __aggr3179 = segments2[] | (const(char[])[])(const(char[])[] = const(char[])[]) * * * * * * * * * * * * VarExp::toElem: __aggr3179 @ const(char[])[] * * * * * * * * * * * * * DtoSymbolAddress ('__aggr3179' of type 'const(char[])[]') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * SliceExp::toElem: segments2[] @ const(char[])[] * * * * * * * * * * * * * VarExp::toElem: segments2 @ const(char[])[] * * * * * * * * * * * * * * DtoSymbolAddress ('segments2' of type 'const(char[])[]') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * SetArray * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/path.d(978) * * * * * * * * DeclarationExp::toElem: ulong __key3180 = 0LU; | T=void * * * * * * * * * DtoDeclarationExp: __key3180 * * * * * * * * * * VarDeclaration * * * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * * * llvm value for decl: %__key3180 = alloca i64, align 8 * * * * * * * * * * * expression initializer * * * * * * * * * * * AssignExp::toElem: __key3180 = 0LU | (ulong)(ulong = ulong) * * * * * * * * * * * * VarExp::toElem: __key3180 @ ulong * * * * * * * * * * * * * DtoSymbolAddress ('__key3180' of type 'ulong') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * lhs: %__key3180 = alloca i64, align 8 * * * * * * * * * * * * * rhs: i64 0 * * * * * * * ForStatement::toIR(): /usr/include/dlang/ldc/std/path.d(978) * * * * * * * * CmpExp::toElem: __key3180 < __aggr3179.length @ bool * * * * * * * * * VarExp::toElem: __key3180 @ ulong * * * * * * * * * * DtoSymbolAddress ('__key3180' of type 'ulong') * * * * * * * * * * * a normal variable * * * * * * * * * ArrayLengthExp::toElem: __aggr3179.length @ ulong * * * * * * * * * * VarExp::toElem: __aggr3179 @ const(char[])[] * * * * * * * * * * * DtoSymbolAddress ('__aggr3179' of type 'const(char[])[]') * * * * * * * * * * * * a normal variable * * * * * * * * * * DtoArrayLen * * * * * * * * * type 1: %12 = load i64, i64* %__key3180 * * * * * * * * * type 2: %.len3 = load i64, i64* %11 * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/path.d(978) * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/path.d(978) * * * * * * * * * * DeclarationExp::toElem: const const(char[]) segment = __aggr3179[__key3180]; | T=void * * * * * * * * * * * DtoDeclarationExp: segment * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * DtoVarDeclaration(vdtype = const(char[])) * * * * * * * * * * * * * llvm value for decl: %segment = alloca { i64, i8* }, align 8 * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * AssignExp::toElem: segment = __aggr3179[__key3180] | (const(char[]))(const(char[]) = const(char[])) * * * * * * * * * * * * * * VarExp::toElem: segment @ const(char[]) * * * * * * * * * * * * * * * DtoSymbolAddress ('segment' of type 'const(char[])') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * IndexExp::toElem: __aggr3179[__key3180] @ const(char[]) * * * * * * * * * * * * * * * VarExp::toElem: __aggr3179 @ const(char[])[] * * * * * * * * * * * * * * * * DtoSymbolAddress ('__aggr3179' of type 'const(char[])[]') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * VarExp::toElem: __key3180 @ ulong * * * * * * * * * * * * * * * * DtoSymbolAddress ('__key3180' of type 'ulong') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * SetArray * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/path.d(978) * * * * * * * * * * AddAssignExp::toElem: precalc += segment.length + 1LU @ ulong * * * * * * * * * * * Caching l-value of precalc += segment.length + 1LU => precalc * * * * * * * * * * * * VarExp::toElem: precalc @ ulong * * * * * * * * * * * * * DtoSymbolAddress ('precalc' of type 'ulong') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * AddExp::toElem: precalc + (segment.length + 1LU) @ ulong * * * * * * * * * * * * VarExp::toElem: precalc @ ulong * * * * * * * * * * * * AddExp::toElem: segment.length + 1LU @ ulong * * * * * * * * * * * * * ArrayLengthExp::toElem: segment.length @ ulong * * * * * * * * * * * * * * VarExp::toElem: segment @ const(char[]) * * * * * * * * * * * * * * * DtoSymbolAddress ('segment' of type 'const(char[])') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * lhs: %precalc = alloca i64, align 8 * * * * * * * * * * * * rhs: %26 = add i64 %25, %24 * * * * * * * * AddAssignExp::toElem: __key3180 += 1LU @ ulong * * * * * * * * * Caching l-value of __key3180 += 1LU => __key3180 * * * * * * * * * * VarExp::toElem: __key3180 @ ulong * * * * * * * * * * * DtoSymbolAddress ('__key3180' of type 'ulong') * * * * * * * * * * * * a normal variable * * * * * * * * * AddExp::toElem: __key3180 + 1LU @ ulong * * * * * * * * * * VarExp::toElem: __key3180 @ ulong * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * value = i64 1 * * * * * * * * * DtoAssign() * * * * * * * * * * lhs: %__key3180 = alloca i64, align 8 * * * * * * * * * * rhs: %17 = add i64 %16, 1 * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/path.d(983) * * * * * * DeclarationExp::toElem: char[] buf = new char[](precalc); | T=void * * * * * * * DtoDeclarationExp: buf * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = char[]) * * * * * * * * * llvm value for decl: %buf = alloca { i64, i8* }, align 8 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: buf = new char[](precalc) | (char[])(char[] = char[]) * * * * * * * * * * VarExp::toElem: buf @ char[] * * * * * * * * * * * DtoSymbolAddress ('buf' of type 'char[]') * * * * * * * * * * * * a normal variable * * * * * * * * * * NewExp::toElem: new char[](precalc) @ char[] * * * * * * * * * * * new dynamic array: char[] * * * * * * * * * * * VarExp::toElem: precalc @ ulong * * * * * * * * * * * * DtoSymbolAddress ('precalc' of type 'ulong') * * * * * * * * * * * * * a normal variable * * * * * * * * * * * DtoNewDynArray : char[] * * * * * * * * * * * * DtoTypeInfoOf(type = 'char[]', base='1') * * * * * * * * * * * * * Type::getTypeInfo(): char[] * * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(char[])) * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * SetArray * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/path.d(984) * * * * * * DeclarationExp::toElem: ulong pos = 0LU; | T=void * * * * * * * DtoDeclarationExp: pos * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * llvm value for decl: %pos = alloca i64, align 8 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: pos = 0LU | (ulong)(ulong = ulong) * * * * * * * * * * VarExp::toElem: pos @ ulong * * * * * * * * * * * DtoSymbolAddress ('pos' of type 'ulong') * * * * * * * * * * * * a normal variable * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * value = i64 0 * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %pos = alloca i64, align 8 * * * * * * * * * * * rhs: i64 0 * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/path.d(985) * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/path.d(985) * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/path.d(985) * * * * * * * * DeclarationExp::toElem: const(char[])[] __aggr3181 = segments[]; | T=void * * * * * * * * * DtoDeclarationExp: __aggr3181 * * * * * * * * * * VarDeclaration * * * * * * * * * * DtoVarDeclaration(vdtype = const(char[])[]) * * * * * * * * * * * llvm value for decl: %__aggr3181 = alloca { i64, { i64, i8* }* }, align 8 * * * * * * * * * * * expression initializer * * * * * * * * * * * AssignExp::toElem: __aggr3181 = segments[] | (const(char[])[])(const(char[])[] = const(char[])[]) * * * * * * * * * * * * VarExp::toElem: __aggr3181 @ const(char[])[] * * * * * * * * * * * * * DtoSymbolAddress ('__aggr3181' of type 'const(char[])[]') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * SliceExp::toElem: segments[] @ const(char[])[] * * * * * * * * * * * * * VarExp::toElem: segments @ const(char[])[] * * * * * * * * * * * * * * DtoSymbolAddress ('segments' of type 'const(char[])[]') * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * type: const(char[])[] * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * SetArray * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/path.d(985) * * * * * * * * DeclarationExp::toElem: ulong __key3182 = 0LU; | T=void * * * * * * * * * DtoDeclarationExp: __key3182 * * * * * * * * * * VarDeclaration * * * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * * * llvm value for decl: %__key3182 = alloca i64, align 8 * * * * * * * * * * * expression initializer * * * * * * * * * * * AssignExp::toElem: __key3182 = 0LU | (ulong)(ulong = ulong) * * * * * * * * * * * * VarExp::toElem: __key3182 @ ulong * * * * * * * * * * * * * DtoSymbolAddress ('__key3182' of type 'ulong') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * lhs: %__key3182 = alloca i64, align 8 * * * * * * * * * * * * * rhs: i64 0 * * * * * * * ForStatement::toIR(): /usr/include/dlang/ldc/std/path.d(985) * * * * * * * * CmpExp::toElem: __key3182 < __aggr3181.length @ bool * * * * * * * * * VarExp::toElem: __key3182 @ ulong * * * * * * * * * * DtoSymbolAddress ('__key3182' of type 'ulong') * * * * * * * * * * * a normal variable * * * * * * * * * ArrayLengthExp::toElem: __aggr3181.length @ ulong * * * * * * * * * * VarExp::toElem: __aggr3181 @ const(char[])[] * * * * * * * * * * * DtoSymbolAddress ('__aggr3181' of type 'const(char[])[]') * * * * * * * * * * * * a normal variable * * * * * * * * * * DtoArrayLen * * * * * * * * * type 1: %37 = load i64, i64* %__key3182 * * * * * * * * * type 2: %.len17 = load i64, i64* %36 * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/path.d(985) * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/path.d(985) * * * * * * * * * * DeclarationExp::toElem: const const(char[]) segment = __aggr3181[__key3182]; | T=void * * * * * * * * * * * DtoDeclarationExp: segment * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * DtoVarDeclaration(vdtype = const(char[])) * * * * * * * * * * * * * llvm value for decl: %segment18 = alloca { i64, i8* }, align 8 * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * AssignExp::toElem: segment = __aggr3181[__key3182] | (const(char[]))(const(char[]) = const(char[])) * * * * * * * * * * * * * * VarExp::toElem: segment @ const(char[]) * * * * * * * * * * * * * * * DtoSymbolAddress ('segment' of type 'const(char[])') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * IndexExp::toElem: __aggr3181[__key3182] @ const(char[]) * * * * * * * * * * * * * * * VarExp::toElem: __aggr3181 @ const(char[])[] * * * * * * * * * * * * * * * * DtoSymbolAddress ('__aggr3181' of type 'const(char[])[]') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * VarExp::toElem: __key3182 @ ulong * * * * * * * * * * * * * * * * DtoSymbolAddress ('__key3182' of type 'ulong') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * SetArray * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/path.d(987) * * * * * * * * * * CallExp::toElem: empty(segment) @ bool * * * * * * * * * * * VarExp::toElem: empty @ pure nothrow @nogc @property @safe bool(const(char[]) a) * * * * * * * * * * * * DtoSymbolAddress ('empty' of type 'pure nothrow @nogc @property @safe bool(const(char[]) a)') * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * Function type: pure nothrow @nogc @property @safe bool(const(char[]) a) * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * VarExp::toElem: segment @ const(char[]) * * * * * * * * * * * * * * DtoSymbolAddress ('segment' of type 'const(char[])') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * ContinueStatement::toIR(): /usr/include/dlang/ldc/std/path.d(987) * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/path.d(994) * * * * * * * * * * CmpExp::toElem: pos > 0LU @ bool * * * * * * * * * * * VarExp::toElem: pos @ ulong * * * * * * * * * * * * DtoSymbolAddress ('pos' of type 'ulong') * * * * * * * * * * * * * a normal variable * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * type 1: %50 = load i64, i64* %pos * * * * * * * * * * * type 2: i64 0 * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/path.d(995) * * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/path.d(996) * * * * * * * * * * * * CallExp::toElem: isRooted(segment) @ bool * * * * * * * * * * * * * VarExp::toElem: isRooted @ pure nothrow @nogc @safe bool(inout(char[]) path) * * * * * * * * * * * * * * DtoSymbolAddress ('isRooted' of type 'pure nothrow @nogc @safe bool(inout(char[]) path)') * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe bool(inout(char[]) path)) * * * * * * * * * * * * * * * * Building type: inout(char)[] * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * Final function type: i1 ({ i64, i8* }) * * * * * * * * * * * * * * * DtoResolveFunction(std.path.isRooted!(char[]).isRooted): /usr/include/dlang/ldc/std/path.d(1877) * * * * * * * * * * * * * * * * DtoDeclareFunction(std.path.isRooted!(char[]).isRooted): /usr/include/dlang/ldc/std/path.d(1877) * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe bool(inout(char[]) path)) * * * * * * * * * * * * * * * * * func = declare i1 @_D3std4path16__T8isRootedTAaZ8isRootedFNaNbNiNfNgAaZb({ i64, i8* }) * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * Building type: pure nothrow @nogc @safe bool(inout(char[]) path) * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe bool(inout(char[]) path)) * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * Final function type: i1 ({ i64, i8* }) * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * Function type: pure nothrow @nogc @safe bool(inout(char[]) path) * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * VarExp::toElem: segment @ const(char[]) * * * * * * * * * * * * * * * * DtoSymbolAddress ('segment' of type 'const(char[])') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/path.d(997) * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/path.d(1000) * * * * * * * * * * * * * * AssignExp::toElem: pos = 0LU | (ulong)(ulong = ulong) * * * * * * * * * * * * * * * VarExp::toElem: pos @ ulong * * * * * * * * * * * * * * * * DtoSymbolAddress ('pos' of type 'ulong') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * lhs: %pos = alloca i64, align 8 * * * * * * * * * * * * * * * * rhs: i64 0 * * * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/path.d(1013) * * * * * * * * * * * * * NotExp::toElem: !isDirSeparator(cast(dchar)buf[pos - 1LU]) @ bool * * * * * * * * * * * * * * CallExp::toElem: isDirSeparator(cast(dchar)buf[pos - 1LU]) @ bool * * * * * * * * * * * * * * * VarExp::toElem: isDirSeparator @ pure nothrow @nogc @safe bool(dchar c) * * * * * * * * * * * * * * * * DtoSymbolAddress ('isDirSeparator' of type 'pure nothrow @nogc @safe bool(dchar c)') * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe bool(dchar c)) * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * Final function type: i1 (i32) * * * * * * * * * * * * * * * * * DtoResolveFunction(std.path.isDirSeparator): /usr/include/dlang/ldc/std/path.d(87) * * * * * * * * * * * * * * * * * * DtoDeclareFunction(std.path.isDirSeparator): /usr/include/dlang/ldc/std/path.d(87) * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe bool(dchar c)) * * * * * * * * * * * * * * * * * * * func = declare i1 @_D3std4path14isDirSeparatorFNaNbNiNfwZb(i32) * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * Building type: pure nothrow @nogc @safe bool(dchar c) * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe bool(dchar c)) * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * Final function type: i1 (i32) * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @safe bool(dchar c) * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * CastExp::toElem: cast(dchar)buf[pos - 1LU] @ dchar * * * * * * * * * * * * * * * * * * IndexExp::toElem: buf[pos - 1LU] @ char * * * * * * * * * * * * * * * * * * * VarExp::toElem: buf @ char[] * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('buf' of type 'char[]') * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * MinExp::toElem: pos - 1LU @ ulong * * * * * * * * * * * * * * * * * * * * VarExp::toElem: pos @ ulong * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('pos' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * Casting from 'char' to 'dchar' * * * * * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/path.d(1014) * * * * * * * * * * * * * * AssignExp::toElem: buf[pos++] = '/' | (char)(char = char) * * * * * * * * * * * * * * * IndexExp::toElem: buf[pos++] @ char * * * * * * * * * * * * * * * * VarExp::toElem: buf @ char[] * * * * * * * * * * * * * * * * * DtoSymbolAddress ('buf' of type 'char[]') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * PostExp::toElem: pos++ @ ulong * * * * * * * * * * * * * * * * * VarExp::toElem: pos @ ulong * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('pos' of type 'ulong') * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * IntegerExp::toElem: '/' @ char * * * * * * * * * * * * * * * * IntegerExp::toConstElem: '/' @ char * * * * * * * * * * * * * * * * * value = i8 47 * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * lhs: %67 = getelementptr i8, i8* %.ptr43, i64 %63 * * * * * * * * * * * * * * * * rhs: i8 47 * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/path.d(1016) * * * * * * * * * * AssignExp::toElem: buf[pos..pos + segment.length] = segment[] | (char[])(char[] = const(char[])) * * * * * * * * * * * performing static array literal assignment * * * * * * * * * * * SliceExp::toElem: buf[pos..pos + segment.length] @ char[] * * * * * * * * * * * * VarExp::toElem: buf @ char[] * * * * * * * * * * * * * DtoSymbolAddress ('buf' of type 'char[]') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * VarExp::toElem: pos @ ulong * * * * * * * * * * * * * DtoSymbolAddress ('pos' of type 'ulong') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * AddExp::toElem: pos + segment.length @ ulong * * * * * * * * * * * * * VarExp::toElem: pos @ ulong * * * * * * * * * * * * * * DtoSymbolAddress ('pos' of type 'ulong') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * ArrayLengthExp::toElem: segment.length @ ulong * * * * * * * * * * * * * * VarExp::toElem: segment @ const(char[]) * * * * * * * * * * * * * * * DtoSymbolAddress ('segment' of type 'const(char[])') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * SliceExp::toElem: segment[] @ const(char[]) * * * * * * * * * * * * VarExp::toElem: segment @ const(char[]) * * * * * * * * * * * * * DtoSymbolAddress ('segment' of type 'const(char[])') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/path.d(1017) * * * * * * * * * * AddAssignExp::toElem: pos += segment.length @ ulong * * * * * * * * * * * Caching l-value of pos += segment.length => pos * * * * * * * * * * * * VarExp::toElem: pos @ ulong * * * * * * * * * * * * * DtoSymbolAddress ('pos' of type 'ulong') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * AddExp::toElem: pos + segment.length @ ulong * * * * * * * * * * * * VarExp::toElem: pos @ ulong * * * * * * * * * * * * ArrayLengthExp::toElem: segment.length @ ulong * * * * * * * * * * * * * VarExp::toElem: segment @ const(char[]) * * * * * * * * * * * * * * DtoSymbolAddress ('segment' of type 'const(char[])') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * lhs: %pos = alloca i64, align 8 * * * * * * * * * * * * rhs: %82 = add i64 %81, %.len51 * * * * * * * * AddAssignExp::toElem: __key3182 += 1LU @ ulong * * * * * * * * * Caching l-value of __key3182 += 1LU => __key3182 * * * * * * * * * * VarExp::toElem: __key3182 @ ulong * * * * * * * * * * * DtoSymbolAddress ('__key3182' of type 'ulong') * * * * * * * * * * * * a normal variable * * * * * * * * * AddExp::toElem: __key3182 + 1LU @ ulong * * * * * * * * * * VarExp::toElem: __key3182 @ ulong * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * value = i64 1 * * * * * * * * * DtoAssign() * * * * * * * * * * lhs: %__key3182 = alloca i64, align 8 * * * * * * * * * * rhs: %42 = add i64 %41, 1 * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/path.d(1019) * * * * * * DeclarationExp::toElem: static template trustedCast(U, V) | T=void * * * * * * * DtoDeclarationExp: __anonymous * * * * * * * * AttribDeclaration * * * * * * * * DtoDeclarationExp: trustedCast(U, V)(V v) * * * * * * * * * Ignoring Symbol: template * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/path.d(1020) * * * * * * CallExp::toElem: trustedCast(buf[0..pos]) @ string * * * * * * * VarExp::toElem: trustedCast @ pure nothrow @nogc @trusted string(char[] v) * * * * * * * * DtoSymbolAddress ('trustedCast' of type 'pure nothrow @nogc @trusted string(char[] v)') * * * * * * * * * FuncDeclaration * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted string(char[] v)) * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: { i64, i8* } ({ i64, i8* }) * * * * * * * * * DtoResolveFunction(std.path.buildPath!(const(char[])[]).buildPath.trustedCast!(string, char[]).trustedCast): /usr/include/dlang/ldc/std/path.d(1019) * * * * * * * * * * DtoDeclareFunction(std.path.buildPath!(const(char[])[]).buildPath.trustedCast!(string, char[]).trustedCast): /usr/include/dlang/ldc/std/path.d(1019) * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted string(char[] v)) * * * * * * * * * * * func = declare { i64, i8* } @_D3std4path19__T9buildPathTAxAaZ9buildPathFAxAaZ24__T11trustedCastTAyaTAaZ11trustedCastFNaNbNiNeAaZAya({ i64, i8* }) * * * * * * * DtoCallFunction() * * * * * * * * Building type: pure nothrow @nogc @trusted string(char[] v) * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted string(char[] v)) * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: { i64, i8* } ({ i64, i8* }) * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (0) * * * * * * * * Function type: pure nothrow @nogc @trusted string(char[] v) * * * * * * * * DtoArgument * * * * * * * * * SliceExp::toElem: buf[0..pos] @ char[] * * * * * * * * * * VarExp::toElem: buf @ char[] * * * * * * * * * * * DtoSymbolAddress ('buf' of type 'char[]') * * * * * * * * * * * * a normal variable * * * * * * * * * * DtoArrayPtr * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * value = i64 0 * * * * * * * * * * VarExp::toElem: pos @ ulong * * * * * * * * * * * DtoSymbolAddress ('pos' of type 'ulong') * * * * * * * * * * * * a normal variable * * * * * * * * * * DtoArrayLen * * * * * * return value is '0x12d2b180' * TemplateInstance::codegen: 'std.path.isRooted!(char[])' * * DtoDefineFunction(std.path.isRooted!(char[]).isRooted): /usr/include/dlang/ldc/std/path.d(1877) * * * Doing function body for: isRooted * * * DtoCreateNestedContext for isRooted * * * * DtoCreateNestedContextType for std.path.isRooted!(char[]).isRooted * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/path.d(1880) * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/path.d(1881) * * * * * * AndAndExp::toElem: path.length >= 1LU && isDirSeparator(cast(dchar)path[0]) @ bool * * * * * * * CmpExp::toElem: path.length >= 1LU @ bool * * * * * * * * ArrayLengthExp::toElem: path.length @ ulong * * * * * * * * * VarExp::toElem: path @ inout(char[]) * * * * * * * * * * DtoSymbolAddress ('path' of type 'inout(char[])') * * * * * * * * * * * function param * * * * * * * * * * * type: inout(char[]) * * * * * * * * * DtoArrayLen * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * value = i64 1 * * * * * * * * type 1: %.len = load i64, i64* %1 * * * * * * * * type 2: i64 1 * * * * * * * CallExp::toElem: isDirSeparator(cast(dchar)path[0]) @ bool * * * * * * * * VarExp::toElem: isDirSeparator @ pure nothrow @nogc @safe bool(dchar c) * * * * * * * * * DtoSymbolAddress ('isDirSeparator' of type 'pure nothrow @nogc @safe bool(dchar c)') * * * * * * * * * * FuncDeclaration * * * * * * * * DtoCallFunction() * * * * * * * * * doing normal arguments * * * * * * * * * Arguments so far: (0) * * * * * * * * * Function type: pure nothrow @nogc @safe bool(dchar c) * * * * * * * * * DtoArgument * * * * * * * * * * CastExp::toElem: cast(dchar)path[0] @ dchar * * * * * * * * * * * IndexExp::toElem: path[0] @ inout(char) * * * * * * * * * * * * VarExp::toElem: path @ inout(char[]) * * * * * * * * * * * * * DtoSymbolAddress ('path' of type 'inout(char[])') * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * type: inout(char[]) * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * Casting from 'inout(char)' to 'dchar' * * * * * * * * * * * * cast to: i32 * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/path.d(1881) * * * * * * * IntegerExp::toElem: true @ bool * * * * * * * * IntegerExp::toConstElem: true @ bool * * * * * * * * * value = i1 true * * * * * * * return value is '0x12188b90' * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/path.d(1882) * * * * * * IntegerExp::toElem: false @ bool * * * * * * * IntegerExp::toConstElem: false @ bool * * * * * * * * value = i1 false * * * * * * return value is '0x120e69a0' * TemplateInstance::codegen: 'std.path.buildPath!(const(char[])[]).buildPath.trustedCast!(string, char[])' * * DtoDefineFunction(std.path.buildPath!(const(char[])[]).buildPath.trustedCast!(string, char[]).trustedCast): /usr/include/dlang/ldc/std/path.d(1019) * * * Doing function body for: trustedCast * * * DtoCreateNestedContext for trustedCast * * * * DtoCreateNestedContextType for std.path.buildPath!(const(char[])[]).buildPath.trustedCast!(string, char[]).trustedCast * * * CompoundStatement::toIR(): * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/path.d(1019) * * * * * CastExp::toElem: cast(string)v @ string * * * * * * VarExp::toElem: v @ char[] * * * * * * * DtoSymbolAddress ('v' of type 'char[]') * * * * * * * * function param * * * * * * * * type: char[] * * * * * * Casting from 'char[]' to 'string' * * * * * * * DtoCastArray * * * * * * * * from array or sarray * * * * * * * * to array * * * * * * * * DtoArrayLen * * * * * * * * DtoArrayPtr * * * * * * * * isslice * * * * * return value is '0x12d2f0f0' * TemplateInstance::codegen: 'core.atomic.cas!(bool, bool, bool)' * TemplateInstance::codegen: 'core.atomic.casImpl!(bool, const(bool), bool)' * TemplateInstance::codegen: 'ldc.intrinsics.llvm_atomic_cmp_swap!ubyte' * TemplateInstance::codegen: 'core.atomic.atomicStore!(cast(MemoryOrder)2, bool, bool)' * TemplateInstance::codegen: 'core.atomic._AtomicType!bool' * TemplateInstance::codegen: 'ldc.intrinsics.llvm_atomic_store!ubyte' * TemplateInstance::codegen: 'core.atomic._ordering!cast(MemoryOrder)2' * TypeInfoDeclaration::codegen(typeid(const(DIR*))) * * type = 'const(DIR*)' * * typeinfo mangle: _D38TypeInfo_xPS4core3sys5posix6dirent3DIR6__initZ * * Building type: const(DIR)* * * TypeInfoConstDeclaration::llvmDefine() typeid(const(DIR*)) * * * DtoTypeInfoOf(type = 'const(DIR)*', base='1') * * * * Type::getTypeInfo(): const(DIR)* * * * * * TypeInfoDeclaration::codegen(typeid(const(DIR)*)) * * * * * * type = 'const(DIR)*' * * * * * * typeinfo mangle: _D38TypeInfo_PxS4core3sys5posix6dirent3DIR6__initZ * * * * * * TypeInfoPointerDeclaration::llvmDefine() typeid(const(DIR)*) * * * * * * * DtoTypeInfoOf(type = 'const(DIR)', base='1') * * * * * * * * Type::getTypeInfo(): const(DIR) * * * * * * * * * TypeInfoDeclaration::codegen(typeid(const(DIR))) * * * * * * * * * * type = 'const(DIR)' * * * * * * * * * * typeinfo mangle: _D37TypeInfo_xS4core3sys5posix6dirent3DIR6__initZ * * * * * * * * * * TypeInfoConstDeclaration::llvmDefine() typeid(const(DIR)) * * * * * * * * * * * DtoTypeInfoOf(type = 'DIR', base='1') * * * * * * * * * * * * Type::getTypeInfo(): DIR * * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(DIR)) * * * * * * * * * * * * * * type = 'DIR' * * * * * * * * * * * * * * typeinfo mangle: _D36TypeInfo_S4core3sys5posix6dirent3DIR6__initZ * * * * * * * * * * * * * * TypeInfoStructDeclaration::llvmDefine() typeid(DIR) * * * * * * * * * * * * * * * Resolving struct type: DIR (/usr/include/dlang/ldc/core/sys/posix/dirent.d(69)) * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(DIR)) * * * * * * * * TypeInfoDeclaration::codegen(typeid(const(DIR))) * * * * TypeInfoDeclaration::codegen(typeid(const(DIR)*)) * TypeInfoDeclaration::codegen(typeid(const(stat_t))) * * type = 'const(stat_t)' * * typeinfo mangle: _D42TypeInfo_xS4core3sys5posix3sys4stat6stat_t6__initZ * * TypeInfoConstDeclaration::llvmDefine() typeid(const(stat_t)) * * * DtoTypeInfoOf(type = 'stat_t', base='1') * * * * Type::getTypeInfo(): stat_t * * * * * TypeInfoDeclaration::codegen(typeid(stat_t)) * * * * * * type = 'stat_t' * * * * * * typeinfo mangle: _D41TypeInfo_S4core3sys5posix3sys4stat6stat_t6__initZ * * * * * * TypeInfoStructDeclaration::llvmDefine() typeid(stat_t) * * * * * * * Resolving struct type: stat_t (/usr/include/dlang/ldc/core/sys/posix/sys/stat.d(141)) * * * * TypeInfoDeclaration::codegen(typeid(stat_t)) * TypeInfoDeclaration::codegen(typeid(const(SpanMode))) * * type = 'const(SpanMode)' * * typeinfo mangle: _D29TypeInfo_xE3std4file8SpanMode6__initZ * * Building type: SpanMode * * TypeInfoConstDeclaration::llvmDefine() typeid(const(SpanMode)) * * * DtoTypeInfoOf(type = 'SpanMode', base='1') * * * * Type::getTypeInfo(): SpanMode * * * * * TypeInfoDeclaration::codegen(typeid(SpanMode)) * * * * * * type = 'SpanMode' * * * * * * typeinfo mangle: _D28TypeInfo_E3std4file8SpanMode6__initZ * * * * * * Building type: SpanMode * * * * * * TypeInfoEnumDeclaration::llvmDefine() typeid(SpanMode) * * * * * * * DtoTypeInfoOf(type = 'int', base='1') * * * * * * * * Type::getTypeInfo(): int * * * * * * * * TypeInfoDeclaration::codegen(typeid(int)) * * * * TypeInfoDeclaration::codegen(typeid(SpanMode)) * TypeInfoDeclaration::codegen(typeid(const(DirEntry))) * TypeInfoDeclaration::codegen(typeid(const(Appender!(DirHandle[])))) * * type = 'const(Appender!(DirHandle[]))' * * typeinfo mangle: _D84TypeInfo_xS3std5array52__T8AppenderTAS3std4file15DirIteratorImpl9DirHandleZ8Appender6__initZ * * TypeInfoConstDeclaration::llvmDefine() typeid(const(Appender!(DirHandle[]))) * * * DtoTypeInfoOf(type = 'Appender!(DirHandle[])', base='1') * * * * Type::getTypeInfo(): Appender!(DirHandle[]) * * * * * TypeInfoDeclaration::codegen(typeid(Appender!(DirHandle[]))) * * * * * * type = 'Appender!(DirHandle[])' * * * * * * typeinfo mangle: _D83TypeInfo_S3std5array52__T8AppenderTAS3std4file15DirIteratorImpl9DirHandleZ8Appender6__initZ * * * * * * TypeInfoStructDeclaration::llvmDefine() typeid(Appender!(DirHandle[])) * * * * * * * Resolving struct type: Appender (/usr/include/dlang/ldc/std/array.d(2591)) * * * * * * * DtoTypeInfoOf(type = 'void*', base='1') * * * * * * * * Type::getTypeInfo(): void* * * * * * * * * TypeInfoDeclaration::codegen(typeid(void*)) * * * * * * * IntegerExp::toConstElem: cast(void*)305419896LU @ void* * * * * * * * * pointer * * * * TypeInfoDeclaration::codegen(typeid(Appender!(DirHandle[]))) * TypeInfoDeclaration::codegen(typeid(const(Appender!(DirEntry[])))) * * type = 'const(Appender!(DirEntry[]))' * * typeinfo mangle: _D66TypeInfo_xS3std5array34__T8AppenderTAS3std4file8DirEntryZ8Appender6__initZ * * TypeInfoConstDeclaration::llvmDefine() typeid(const(Appender!(DirEntry[]))) * * * DtoTypeInfoOf(type = 'Appender!(DirEntry[])', base='1') * * * * Type::getTypeInfo(): Appender!(DirEntry[]) * * * * * TypeInfoDeclaration::codegen(typeid(Appender!(DirEntry[]))) * * * * * * type = 'Appender!(DirEntry[])' * * * * * * typeinfo mangle: _D65TypeInfo_S3std5array34__T8AppenderTAS3std4file8DirEntryZ8Appender6__initZ * * * * * * TypeInfoStructDeclaration::llvmDefine() typeid(Appender!(DirEntry[])) * * * * * * * Resolving struct type: Appender (/usr/include/dlang/ldc/std/array.d(2591)) * * * * * * * DtoTypeInfoOf(type = 'void*', base='1') * * * * * * * * Type::getTypeInfo(): void* * * * * * * * * TypeInfoDeclaration::codegen(typeid(void*)) * * * * * * * IntegerExp::toConstElem: cast(void*)305419896LU @ void* * * * * * * * * pointer * * * * TypeInfoDeclaration::codegen(typeid(Appender!(DirEntry[]))) code constants CodeGenerator::emit(common.constants) * *** Initializing D runtime declarations *** * Ignoring Dsymbol::codegen for common.constants.object * VarDeclaration::codegen(): 'common.constants.pragmas' * * DtoResolveVariable(common.constants.pragmas) * * * data segment * * * parent: constants (module) * * * Building type: immutable(string)[] * * * @_D6common9constants7pragmasyAAa = external constant { i64, { i64, i8* }* }, align 8 * * data segment * * const array initializer * * DtoConstArrayInitializer: ["inline", "lib", "mangle", "msg", "startaddress"] | immutable(string[]) * * * const expression initializer * * * DtoConstExpInit(targetType = immutable(string), exp = "inline") * * * * StringExp::toConstElem: "inline" @ immutable(string) * * * const expression initializer * * * DtoConstExpInit(targetType = immutable(string), exp = "lib") * * * * StringExp::toConstElem: "lib" @ immutable(string) * * * const expression initializer * * * DtoConstExpInit(targetType = immutable(string), exp = "mangle") * * * * StringExp::toConstElem: "mangle" @ immutable(string) * * * const expression initializer * * * DtoConstExpInit(targetType = immutable(string), exp = "msg") * * * * StringExp::toConstElem: "msg" @ immutable(string) * * * const expression initializer * * * DtoConstExpInit(targetType = immutable(string), exp = "startaddress") * * * * StringExp::toConstElem: "startaddress" @ immutable(string) * * @_D6common9constants7pragmasyAAa = constant { i64, { i64, i8* }* } { i64 5, { i64, i8* }* getelementptr inbounds ([5 x { i64, i8* }], [5 x { i64, i8* }]* @.constarray, i32 0, i32 0) }, align 8 * VarDeclaration::codegen(): 'common.constants.linkages' * * DtoResolveVariable(common.constants.linkages) * * * data segment * * * parent: constants (module) * * * @_D6common9constants8linkagesyAAa = external constant { i64, { i64, i8* }* }, align 8 * * data segment * * const array initializer * * DtoConstArrayInitializer: ["C", "C++", "D", "Pascal", "System", "Windows"] | immutable(string[]) * * * const expression initializer * * * DtoConstExpInit(targetType = immutable(string), exp = "C") * * * * StringExp::toConstElem: "C" @ immutable(string) * * * const expression initializer * * * DtoConstExpInit(targetType = immutable(string), exp = "C++") * * * * StringExp::toConstElem: "C++" @ immutable(string) * * * const expression initializer * * * DtoConstExpInit(targetType = immutable(string), exp = "D") * * * * StringExp::toConstElem: "D" @ immutable(string) * * * const expression initializer * * * DtoConstExpInit(targetType = immutable(string), exp = "Pascal") * * * * StringExp::toConstElem: "Pascal" @ immutable(string) * * * const expression initializer * * * DtoConstExpInit(targetType = immutable(string), exp = "System") * * * * StringExp::toConstElem: "System" @ immutable(string) * * * const expression initializer * * * DtoConstExpInit(targetType = immutable(string), exp = "Windows") * * * * StringExp::toConstElem: "Windows" @ immutable(string) * * @_D6common9constants8linkagesyAAa = constant { i64, { i64, i8* }* } { i64 6, { i64, i8* }* getelementptr inbounds ([6 x { i64, i8* }], [6 x { i64, i8* }]* @.constarray.93, i32 0, i32 0) }, align 8 * VarDeclaration::codegen(): 'common.constants.traits' * * DtoResolveVariable(common.constants.traits) * * * data segment * * * parent: constants (module) * * * @_D6common9constants6traitsyAAa = external constant { i64, { i64, i8* }* }, align 8 * * data segment * * const array initializer * * DtoConstArrayInitializer: ["allMembers", "classInstanceSize", "compiles", "derivedMembers", "getAliasThis", "getAttributes", "getFunctionAttributes", "getMember", "getOverloads", "getPointerBitmap", "getProtection", "getUnitTests", "getVirtualFunctions", "getVirtualIndex", "getVirtualMethods", "hasMember", "identifier", "isAbstractClass", "isAbstractFunction", "isArithmetic", "isAssociativeArray", "isFinalClass", "isFinalFunction", "isFloating", "isIntegral", "isLazy", "isNested", "isOut", "isOverrideFunction", "isPOD", "isRef", "isSame", "isScalar", "isStaticArray", "isStaticFunction", "isTemplate", "isUnsigned", "isVirtualFunction", "isVirtualMethod", "parent"] | immutable(string[]) * * * const expression initializer * * * DtoConstExpInit(targetType = immutable(string), exp = "allMembers") * * * * StringExp::toConstElem: "allMembers" @ immutable(string) * * * const expression initializer * * * DtoConstExpInit(targetType = immutable(string), exp = "classInstanceSize") * * * * StringExp::toConstElem: "classInstanceSize" @ immutable(string) * * * const expression initializer * * * DtoConstExpInit(targetType = immutable(string), exp = "compiles") * * * * StringExp::toConstElem: "compiles" @ immutable(string) * * * const expression initializer * * * DtoConstExpInit(targetType = immutable(string), exp = "derivedMembers") * * * * StringExp::toConstElem: "derivedMembers" @ immutable(string) * * * const expression initializer * * * DtoConstExpInit(targetType = immutable(string), exp = "getAliasThis") * * * * StringExp::toConstElem: "getAliasThis" @ immutable(string) * * * const expression initializer * * * DtoConstExpInit(targetType = immutable(string), exp = "getAttributes") * * * * StringExp::toConstElem: "getAttributes" @ immutable(string) * * * const expression initializer * * * DtoConstExpInit(targetType = immutable(string), exp = "getFunctionAttributes") * * * * StringExp::toConstElem: "getFunctionAttributes" @ immutable(string) * * * const expression initializer * * * DtoConstExpInit(targetType = immutable(string), exp = "getMember") * * * * StringExp::toConstElem: "getMember" @ immutable(string) * * * const expression initializer * * * DtoConstExpInit(targetType = immutable(string), exp = "getOverloads") * * * * StringExp::toConstElem: "getOverloads" @ immutable(string) * * * const expression initializer * * * DtoConstExpInit(targetType = immutable(string), exp = "getPointerBitmap") * * * * StringExp::toConstElem: "getPointerBitmap" @ immutable(string) * * * const expression initializer * * * DtoConstExpInit(targetType = immutable(string), exp = "getProtection") * * * * StringExp::toConstElem: "getProtection" @ immutable(string) * * * const expression initializer * * * DtoConstExpInit(targetType = immutable(string), exp = "getUnitTests") * * * * StringExp::toConstElem: "getUnitTests" @ immutable(string) * * * const expression initializer * * * DtoConstExpInit(targetType = immutable(string), exp = "getVirtualFunctions") * * * * StringExp::toConstElem: "getVirtualFunctions" @ immutable(string) * * * const expression initializer * * * DtoConstExpInit(targetType = immutable(string), exp = "getVirtualIndex") * * * * StringExp::toConstElem: "getVirtualIndex" @ immutable(string) * * * const expression initializer * * * DtoConstExpInit(targetType = immutable(string), exp = "getVirtualMethods") * * * * StringExp::toConstElem: "getVirtualMethods" @ immutable(string) * * * const expression initializer * * * DtoConstExpInit(targetType = immutable(string), exp = "hasMember") * * * * StringExp::toConstElem: "hasMember" @ immutable(string) * * * const expression initializer * * * DtoConstExpInit(targetType = immutable(string), exp = "identifier") * * * * StringExp::toConstElem: "identifier" @ immutable(string) * * * const expression initializer * * * DtoConstExpInit(targetType = immutable(string), exp = "isAbstractClass") * * * * StringExp::toConstElem: "isAbstractClass" @ immutable(string) * * * const expression initializer * * * DtoConstExpInit(targetType = immutable(string), exp = "isAbstractFunction") * * * * StringExp::toConstElem: "isAbstractFunction" @ immutable(string) * * * const expression initializer * * * DtoConstExpInit(targetType = immutable(string), exp = "isArithmetic") * * * * StringExp::toConstElem: "isArithmetic" @ immutable(string) * * * const expression initializer * * * DtoConstExpInit(targetType = immutable(string), exp = "isAssociativeArray") * * * * StringExp::toConstElem: "isAssociativeArray" @ immutable(string) * * * const expression initializer * * * DtoConstExpInit(targetType = immutable(string), exp = "isFinalClass") * * * * StringExp::toConstElem: "isFinalClass" @ immutable(string) * * * const expression initializer * * * DtoConstExpInit(targetType = immutable(string), exp = "isFinalFunction") * * * * StringExp::toConstElem: "isFinalFunction" @ immutable(string) * * * const expression initializer * * * DtoConstExpInit(targetType = immutable(string), exp = "isFloating") * * * * StringExp::toConstElem: "isFloating" @ immutable(string) * * * const expression initializer * * * DtoConstExpInit(targetType = immutable(string), exp = "isIntegral") * * * * StringExp::toConstElem: "isIntegral" @ immutable(string) * * * const expression initializer * * * DtoConstExpInit(targetType = immutable(string), exp = "isLazy") * * * * StringExp::toConstElem: "isLazy" @ immutable(string) * * * const expression initializer * * * DtoConstExpInit(targetType = immutable(string), exp = "isNested") * * * * StringExp::toConstElem: "isNested" @ immutable(string) * * * const expression initializer * * * DtoConstExpInit(targetType = immutable(string), exp = "isOut") * * * * StringExp::toConstElem: "isOut" @ immutable(string) * * * const expression initializer * * * DtoConstExpInit(targetType = immutable(string), exp = "isOverrideFunction") * * * * StringExp::toConstElem: "isOverrideFunction" @ immutable(string) * * * const expression initializer * * * DtoConstExpInit(targetType = immutable(string), exp = "isPOD") * * * * StringExp::toConstElem: "isPOD" @ immutable(string) * * * const expression initializer * * * DtoConstExpInit(targetType = immutable(string), exp = "isRef") * * * * StringExp::toConstElem: "isRef" @ immutable(string) * * * const expression initializer * * * DtoConstExpInit(targetType = immutable(string), exp = "isSame") * * * * StringExp::toConstElem: "isSame" @ immutable(string) * * * const expression initializer * * * DtoConstExpInit(targetType = immutable(string), exp = "isScalar") * * * * StringExp::toConstElem: "isScalar" @ immutable(string) * * * const expression initializer * * * DtoConstExpInit(targetType = immutable(string), exp = "isStaticArray") * * * * StringExp::toConstElem: "isStaticArray" @ immutable(string) * * * const expression initializer * * * DtoConstExpInit(targetType = immutable(string), exp = "isStaticFunction") * * * * StringExp::toConstElem: "isStaticFunction" @ immutable(string) * * * const expression initializer * * * DtoConstExpInit(targetType = immutable(string), exp = "isTemplate") * * * * StringExp::toConstElem: "isTemplate" @ immutable(string) * * * const expression initializer * * * DtoConstExpInit(targetType = immutable(string), exp = "isUnsigned") * * * * StringExp::toConstElem: "isUnsigned" @ immutable(string) * * * const expression initializer * * * DtoConstExpInit(targetType = immutable(string), exp = "isVirtualFunction") * * * * StringExp::toConstElem: "isVirtualFunction" @ immutable(string) * * * const expression initializer * * * DtoConstExpInit(targetType = immutable(string), exp = "isVirtualMethod") * * * * StringExp::toConstElem: "isVirtualMethod" @ immutable(string) * * * const expression initializer * * * DtoConstExpInit(targetType = immutable(string), exp = "parent") * * * * StringExp::toConstElem: "parent" @ immutable(string) * * @_D6common9constants6traitsyAAa = constant { i64, { i64, i8* }* } { i64 40, { i64, i8* }* getelementptr inbounds ([40 x { i64, i8* }], [40 x { i64, i8* }]* @.constarray.134, i32 0, i32 0) }, align 8 * VarDeclaration::codegen(): 'common.constants.scopes' * * DtoResolveVariable(common.constants.scopes) * * * data segment * * * parent: constants (module) * * * @_D6common9constants6scopesyAAa = external constant { i64, { i64, i8* }* }, align 8 * * data segment * * const array initializer * * DtoConstArrayInitializer: ["exit", "failure", "success"] | immutable(string[]) * * * const expression initializer * * * DtoConstExpInit(targetType = immutable(string), exp = "exit") * * * * StringExp::toConstElem: "exit" @ immutable(string) * * * const expression initializer * * * DtoConstExpInit(targetType = immutable(string), exp = "failure") * * * * StringExp::toConstElem: "failure" @ immutable(string) * * * const expression initializer * * * DtoConstExpInit(targetType = immutable(string), exp = "success") * * * * StringExp::toConstElem: "success" @ immutable(string) * * @_D6common9constants6scopesyAAa = constant { i64, { i64, i8* }* } { i64 3, { i64, i8* }* getelementptr inbounds ([3 x { i64, i8* }], [3 x { i64, i8* }]* @.constarray.138, i32 0, i32 0) }, align 8 * VarDeclaration::codegen(): 'common.constants.predefinedVersions' * * DtoResolveVariable(common.constants.predefinedVersions) * * * data segment * * * parent: constants (module) * * * @_D6common9constants18predefinedVersionsyAAa = external constant { i64, { i64, i8* }* }, align 8 * * data segment * * const array initializer * * DtoConstArrayInitializer: ["AArch64", "AIX", "all", "Alpha", "Alpha_HardFloat", "Alpha_SoftFloat", "Android", "ARM", "ARM_HardFloat", "ARM_SoftFloat", "ARM_SoftFP", "ARM_Thumb", "assert", "BigEndian", "BSD", "Cygwin", "D_Coverage", "D_Ddoc", "D_HardFloat", "DigitalMars", "D_InlineAsm_X86", "D_InlineAsm_X86_64", "D_LP64", "D_NoBoundsChecks", "D_PIC", "DragonFlyBSD", "D_SIMD", "D_SoftFloat", "D_Version2", "D_X32", "FreeBSD", "FreeStanding", "GNU", "Haiku", "HPPA", "HPPA64", "Hurd", "IA64", "LDC", "linux", "LittleEndian", "MIPS32", "MIPS64", "MIPS_EABI", "MIPS_HardFloat", "MIPS_N32", "MIPS_N64", "MIPS_O32", "MIPS_O64", "MIPS_SoftFloat", "NetBSD", "none", "OpenBSD", "OSX", "Posix", "PPC", "PPC64", "PPC_HardFloat", "PPC_SoftFloat", "S390", "S390X", "SDC", "SH", "SH64", "SkyOS", "Solaris", "SPARC", "SPARC64", "SPARC_HardFloat", "SPARC_SoftFloat", "SPARC_V8Plus", "SysV3", "SysV4", "unittest", "Win32", "Win64", "Windows", "X86", "X86_64"] | immutable(string[]) * * * const expression initializer * * * DtoConstExpInit(targetType = immutable(string), exp = "AArch64") * * * * StringExp::toConstElem: "AArch64" @ immutable(string) * * * const expression initializer * * * DtoConstExpInit(targetType = immutable(string), exp = "AIX") * * * * StringExp::toConstElem: "AIX" @ immutable(string) * * * const expression initializer * * * DtoConstExpInit(targetType = immutable(string), exp = "all") * * * * StringExp::toConstElem: "all" @ immutable(string) * * * const expression initializer * * * DtoConstExpInit(targetType = immutable(string), exp = "Alpha") * * * * StringExp::toConstElem: "Alpha" @ immutable(string) * * * const expression initializer * * * DtoConstExpInit(targetType = immutable(string), exp = "Alpha_HardFloat") * * * * StringExp::toConstElem: "Alpha_HardFloat" @ immutable(string) * * * const expression initializer * * * DtoConstExpInit(targetType = immutable(string), exp = "Alpha_SoftFloat") * * * * StringExp::toConstElem: "Alpha_SoftFloat" @ immutable(string) * * * const expression initializer * * * DtoConstExpInit(targetType = immutable(string), exp = "Android") * * * * StringExp::toConstElem: "Android" @ immutable(string) * * * const expression initializer * * * DtoConstExpInit(targetType = immutable(string), exp = "ARM") * * * * StringExp::toConstElem: "ARM" @ immutable(string) * * * const expression initializer * * * DtoConstExpInit(targetType = immutable(string), exp = "ARM_HardFloat") * * * * StringExp::toConstElem: "ARM_HardFloat" @ immutable(string) * * * const expression initializer * * * DtoConstExpInit(targetType = immutable(string), exp = "ARM_SoftFloat") * * * * StringExp::toConstElem: "ARM_SoftFloat" @ immutable(string) * * * const expression initializer * * * DtoConstExpInit(targetType = immutable(string), exp = "ARM_SoftFP") * * * * StringExp::toConstElem: "ARM_SoftFP" @ immutable(string) * * * const expression initializer * * * DtoConstExpInit(targetType = immutable(string), exp = "ARM_Thumb") * * * * StringExp::toConstElem: "ARM_Thumb" @ immutable(string) * * * const expression initializer * * * DtoConstExpInit(targetType = immutable(string), exp = "assert") * * * * StringExp::toConstElem: "assert" @ immutable(string) * * * const expression initializer * * * DtoConstExpInit(targetType = immutable(string), exp = "BigEndian") * * * * StringExp::toConstElem: "BigEndian" @ immutable(string) * * * const expression initializer * * * DtoConstExpInit(targetType = immutable(string), exp = "BSD") * * * * StringExp::toConstElem: "BSD" @ immutable(string) * * * const expression initializer * * * DtoConstExpInit(targetType = immutable(string), exp = "Cygwin") * * * * StringExp::toConstElem: "Cygwin" @ immutable(string) * * * const expression initializer * * * DtoConstExpInit(targetType = immutable(string), exp = "D_Coverage") * * * * StringExp::toConstElem: "D_Coverage" @ immutable(string) * * * const expression initializer * * * DtoConstExpInit(targetType = immutable(string), exp = "D_Ddoc") * * * * StringExp::toConstElem: "D_Ddoc" @ immutable(string) * * * const expression initializer * * * DtoConstExpInit(targetType = immutable(string), exp = "D_HardFloat") * * * * StringExp::toConstElem: "D_HardFloat" @ immutable(string) * * * const expression initializer * * * DtoConstExpInit(targetType = immutable(string), exp = "DigitalMars") * * * * StringExp::toConstElem: "DigitalMars" @ immutable(string) * * * const expression initializer * * * DtoConstExpInit(targetType = immutable(string), exp = "D_InlineAsm_X86") * * * * StringExp::toConstElem: "D_InlineAsm_X86" @ immutable(string) * * * const expression initializer * * * DtoConstExpInit(targetType = immutable(string), exp = "D_InlineAsm_X86_64") * * * * StringExp::toConstElem: "D_InlineAsm_X86_64" @ immutable(string) * * * const expression initializer * * * DtoConstExpInit(targetType = immutable(string), exp = "D_LP64") * * * * StringExp::toConstElem: "D_LP64" @ immutable(string) * * * const expression initializer * * * DtoConstExpInit(targetType = immutable(string), exp = "D_NoBoundsChecks") * * * * StringExp::toConstElem: "D_NoBoundsChecks" @ immutable(string) * * * const expression initializer * * * DtoConstExpInit(targetType = immutable(string), exp = "D_PIC") * * * * StringExp::toConstElem: "D_PIC" @ immutable(string) * * * const expression initializer * * * DtoConstExpInit(targetType = immutable(string), exp = "DragonFlyBSD") * * * * StringExp::toConstElem: "DragonFlyBSD" @ immutable(string) * * * const expression initializer * * * DtoConstExpInit(targetType = immutable(string), exp = "D_SIMD") * * * * StringExp::toConstElem: "D_SIMD" @ immutable(string) * * * const expression initializer * * * DtoConstExpInit(targetType = immutable(string), exp = "D_SoftFloat") * * * * StringExp::toConstElem: "D_SoftFloat" @ immutable(string) * * * const expression initializer * * * DtoConstExpInit(targetType = immutable(string), exp = "D_Version2") * * * * StringExp::toConstElem: "D_Version2" @ immutable(string) * * * const expression initializer * * * DtoConstExpInit(targetType = immutable(string), exp = "D_X32") * * * * StringExp::toConstElem: "D_X32" @ immutable(string) * * * const expression initializer * * * DtoConstExpInit(targetType = immutable(string), exp = "FreeBSD") * * * * StringExp::toConstElem: "FreeBSD" @ immutable(string) * * * const expression initializer * * * DtoConstExpInit(targetType = immutable(string), exp = "FreeStanding") * * * * StringExp::toConstElem: "FreeStanding" @ immutable(string) * * * const expression initializer * * * DtoConstExpInit(targetType = immutable(string), exp = "GNU") * * * * StringExp::toConstElem: "GNU" @ immutable(string) * * * const expression initializer * * * DtoConstExpInit(targetType = immutable(string), exp = "Haiku") * * * * StringExp::toConstElem: "Haiku" @ immutable(string) * * * const expression initializer * * * DtoConstExpInit(targetType = immutable(string), exp = "HPPA") * * * * StringExp::toConstElem: "HPPA" @ immutable(string) * * * const expression initializer * * * DtoConstExpInit(targetType = immutable(string), exp = "HPPA64") * * * * StringExp::toConstElem: "HPPA64" @ immutable(string) * * * const expression initializer * * * DtoConstExpInit(targetType = immutable(string), exp = "Hurd") * * * * StringExp::toConstElem: "Hurd" @ immutable(string) * * * const expression initializer * * * DtoConstExpInit(targetType = immutable(string), exp = "IA64") * * * * StringExp::toConstElem: "IA64" @ immutable(string) * * * const expression initializer * * * DtoConstExpInit(targetType = immutable(string), exp = "LDC") * * * * StringExp::toConstElem: "LDC" @ immutable(string) * * * const expression initializer * * * DtoConstExpInit(targetType = immutable(string), exp = "linux") * * * * StringExp::toConstElem: "linux" @ immutable(string) * * * const expression initializer * * * DtoConstExpInit(targetType = immutable(string), exp = "LittleEndian") * * * * StringExp::toConstElem: "LittleEndian" @ immutable(string) * * * const expression initializer * * * DtoConstExpInit(targetType = immutable(string), exp = "MIPS32") * * * * StringExp::toConstElem: "MIPS32" @ immutable(string) * * * const expression initializer * * * DtoConstExpInit(targetType = immutable(string), exp = "MIPS64") * * * * StringExp::toConstElem: "MIPS64" @ immutable(string) * * * const expression initializer * * * DtoConstExpInit(targetType = immutable(string), exp = "MIPS_EABI") * * * * StringExp::toConstElem: "MIPS_EABI" @ immutable(string) * * * const expression initializer * * * DtoConstExpInit(targetType = immutable(string), exp = "MIPS_HardFloat") * * * * StringExp::toConstElem: "MIPS_HardFloat" @ immutable(string) * * * const expression initializer * * * DtoConstExpInit(targetType = immutable(string), exp = "MIPS_N32") * * * * StringExp::toConstElem: "MIPS_N32" @ immutable(string) * * * const expression initializer * * * DtoConstExpInit(targetType = immutable(string), exp = "MIPS_N64") * * * * StringExp::toConstElem: "MIPS_N64" @ immutable(string) * * * const expression initializer * * * DtoConstExpInit(targetType = immutable(string), exp = "MIPS_O32") * * * * StringExp::toConstElem: "MIPS_O32" @ immutable(string) * * * const expression initializer * * * DtoConstExpInit(targetType = immutable(string), exp = "MIPS_O64") * * * * StringExp::toConstElem: "MIPS_O64" @ immutable(string) * * * const expression initializer * * * DtoConstExpInit(targetType = immutable(string), exp = "MIPS_SoftFloat") * * * * StringExp::toConstElem: "MIPS_SoftFloat" @ immutable(string) * * * const expression initializer * * * DtoConstExpInit(targetType = immutable(string), exp = "NetBSD") * * * * StringExp::toConstElem: "NetBSD" @ immutable(string) * * * const expression initializer * * * DtoConstExpInit(targetType = immutable(string), exp = "none") * * * * StringExp::toConstElem: "none" @ immutable(string) * * * const expression initializer * * * DtoConstExpInit(targetType = immutable(string), exp = "OpenBSD") * * * * StringExp::toConstElem: "OpenBSD" @ immutable(string) * * * const expression initializer * * * DtoConstExpInit(targetType = immutable(string), exp = "OSX") * * * * StringExp::toConstElem: "OSX" @ immutable(string) * * * const expression initializer * * * DtoConstExpInit(targetType = immutable(string), exp = "Posix") * * * * StringExp::toConstElem: "Posix" @ immutable(string) * * * const expression initializer * * * DtoConstExpInit(targetType = immutable(string), exp = "PPC") * * * * StringExp::toConstElem: "PPC" @ immutable(string) * * * const expression initializer * * * DtoConstExpInit(targetType = immutable(string), exp = "PPC64") * * * * StringExp::toConstElem: "PPC64" @ immutable(string) * * * const expression initializer * * * DtoConstExpInit(targetType = immutable(string), exp = "PPC_HardFloat") * * * * StringExp::toConstElem: "PPC_HardFloat" @ immutable(string) * * * const expression initializer * * * DtoConstExpInit(targetType = immutable(string), exp = "PPC_SoftFloat") * * * * StringExp::toConstElem: "PPC_SoftFloat" @ immutable(string) * * * const expression initializer * * * DtoConstExpInit(targetType = immutable(string), exp = "S390") * * * * StringExp::toConstElem: "S390" @ immutable(string) * * * const expression initializer * * * DtoConstExpInit(targetType = immutable(string), exp = "S390X") * * * * StringExp::toConstElem: "S390X" @ immutable(string) * * * const expression initializer * * * DtoConstExpInit(targetType = immutable(string), exp = "SDC") * * * * StringExp::toConstElem: "SDC" @ immutable(string) * * * const expression initializer * * * DtoConstExpInit(targetType = immutable(string), exp = "SH") * * * * StringExp::toConstElem: "SH" @ immutable(string) * * * const expression initializer * * * DtoConstExpInit(targetType = immutable(string), exp = "SH64") * * * * StringExp::toConstElem: "SH64" @ immutable(string) * * * const expression initializer * * * DtoConstExpInit(targetType = immutable(string), exp = "SkyOS") * * * * StringExp::toConstElem: "SkyOS" @ immutable(string) * * * const expression initializer * * * DtoConstExpInit(targetType = immutable(string), exp = "Solaris") * * * * StringExp::toConstElem: "Solaris" @ immutable(string) * * * const expression initializer * * * DtoConstExpInit(targetType = immutable(string), exp = "SPARC") * * * * StringExp::toConstElem: "SPARC" @ immutable(string) * * * const expression initializer * * * DtoConstExpInit(targetType = immutable(string), exp = "SPARC64") * * * * StringExp::toConstElem: "SPARC64" @ immutable(string) * * * const expression initializer * * * DtoConstExpInit(targetType = immutable(string), exp = "SPARC_HardFloat") * * * * StringExp::toConstElem: "SPARC_HardFloat" @ immutable(string) * * * const expression initializer * * * DtoConstExpInit(targetType = immutable(string), exp = "SPARC_SoftFloat") * * * * StringExp::toConstElem: "SPARC_SoftFloat" @ immutable(string) * * * const expression initializer * * * DtoConstExpInit(targetType = immutable(string), exp = "SPARC_V8Plus") * * * * StringExp::toConstElem: "SPARC_V8Plus" @ immutable(string) * * * const expression initializer * * * DtoConstExpInit(targetType = immutable(string), exp = "SysV3") * * * * StringExp::toConstElem: "SysV3" @ immutable(string) * * * const expression initializer * * * DtoConstExpInit(targetType = immutable(string), exp = "SysV4") * * * * StringExp::toConstElem: "SysV4" @ immutable(string) * * * const expression initializer * * * DtoConstExpInit(targetType = immutable(string), exp = "unittest") * * * * StringExp::toConstElem: "unittest" @ immutable(string) * * * const expression initializer * * * DtoConstExpInit(targetType = immutable(string), exp = "Win32") * * * * StringExp::toConstElem: "Win32" @ immutable(string) * * * const expression initializer * * * DtoConstExpInit(targetType = immutable(string), exp = "Win64") * * * * StringExp::toConstElem: "Win64" @ immutable(string) * * * const expression initializer * * * DtoConstExpInit(targetType = immutable(string), exp = "Windows") * * * * StringExp::toConstElem: "Windows" @ immutable(string) * * * const expression initializer * * * DtoConstExpInit(targetType = immutable(string), exp = "X86") * * * * StringExp::toConstElem: "X86" @ immutable(string) * * * const expression initializer * * * DtoConstExpInit(targetType = immutable(string), exp = "X86_64") * * * * StringExp::toConstElem: "X86_64" @ immutable(string) * * @_D6common9constants18predefinedVersionsyAAa = constant { i64, { i64, i8* }* } { i64 79, { i64, i8* }* getelementptr inbounds ([79 x { i64, i8* }], [79 x { i64, i8* }]* @.constarray.217, i32 0, i32 0) }, align 8 code dcd_version CodeGenerator::emit(common.dcd_version) * *** Initializing D runtime declarations *** * Ignoring Dsymbol::codegen for common.dcd_version.object * VarDeclaration::codegen(): 'common.dcd_version.DCD_VERSION' * * DtoResolveVariable(common.dcd_version.DCD_VERSION) * VarDeclaration::codegen(): 'common.dcd_version.GIT_HASH' * * DtoResolveVariable(common.dcd_version.GIT_HASH) code client CodeGenerator::emit(client.client) * *** Initializing D runtime declarations *** * Ignoring Dsymbol::codegen for client.client.object * Ignoring Dsymbol::codegen for client.client.std * Ignoring Dsymbol::codegen for client.client.std * Ignoring Dsymbol::codegen for client.client.std * Ignoring Dsymbol::codegen for client.client.std * Ignoring Dsymbol::codegen for client.client.std * Ignoring Dsymbol::codegen for client.client.std * Ignoring Dsymbol::codegen for client.client.std * Ignoring Dsymbol::codegen for client.client.std * Ignoring Dsymbol::codegen for client.client.std * Ignoring Dsymbol::codegen for client.client.std * Ignoring Dsymbol::codegen for client.client.std * Ignoring Dsymbol::codegen for client.client.common * Ignoring Dsymbol::codegen for client.client.common * Ignoring Dsymbol::codegen for client.client.common * DtoDefineFunction(D main): src/client/client.d(37) * * DtoFunctionType(int(string[] args)) * * * x86-64 ABI: Transforming return type * * * x86-64 ABI: Transforming argument types * * * Final function type: i32 ({ i64, { i64, i8* }* }) * * DtoResolveFunction(D main): src/client/client.d(37) * * * DtoDeclareFunction(D main): src/client/client.d(37) * * * * DtoFunctionType(int(string[] args)) * * * * func = declare i32 @_Dmain({ i64, { i64, i8* }* }) * * Doing function body for: main * * DtoCreateNestedContext for main * * * DtoCreateNestedContextType for D main * * * * has nested frame * * * * Function main has depth 0 * * * * Nested var 'e' of type %std.conv.ConvException* * * * * frameType = %nest.main = type { %std.conv.ConvException* } * * * nested var: e * * CompoundStatement::toIR(): * * * CompoundStatement::toIR(): src/client/client.d(38) * * * * ExpStatement::toIR(): src/client/client.d(39) * * * * * CallExp::toElem: sharedLog().fatalHandler(() { } ) @ void * * * * * * DotVarExp::toElem: sharedLog().fatalHandler @ pure @nogc @property @safe void(void delegate() @safe fh) * * * * * * * CallExp::toElem: sharedLog() @ std.experimental.logger.core.Logger * * * * * * * * VarExp::toElem: sharedLog @ @property @safe Logger() * * * * * * * * * DtoSymbolAddress ('sharedLog' of type '@property @safe Logger()') * * * * * * * * * * FuncDeclaration * * * * * * * * * * DtoFunctionType(@property @safe Logger()) * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * Final function type: %std.experimental.logger.core.Logger* () * * * * * * * * * * DtoResolveFunction(std.experimental.logger.core.sharedLog): /usr/include/dlang/ldc/std/experimental/logger/core.d(1681) * * * * * * * * * * * DtoDeclareFunction(std.experimental.logger.core.sharedLog): /usr/include/dlang/ldc/std/experimental/logger/core.d(1681) * * * * * * * * * * * * DtoFunctionType(@property @safe Logger()) * * * * * * * * * * * * func = declare %std.experimental.logger.core.Logger* @_D3std12experimental6logger4core9sharedLogFNdNfZC3std12experimental6logger4core6Logger() * * * * * * * * DtoCallFunction() * * * * * * * * * Building type: @property @safe Logger() * * * * * * * * * * DtoFunctionType(@property @safe Logger()) * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * Final function type: %std.experimental.logger.core.Logger* () * * * * * * * * * doing normal arguments * * * * * * * * * Arguments so far: (0) * * * * * * * * * Function type: @property @safe Logger() * * * * * * * isMember = this is: std.experimental.logger.core.Logger * * * * * * * DtoFunctionType(pure @nogc @property @safe void(void delegate() @safe fh)) * * * * * * * * Building type: void delegate() @safe * * * * * * * * * DtoFunctionType(@safe void()) * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: void (i8*) * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * Final function type: void (%std.experimental.logger.core.Logger*, { i8*, void (i8*)* }) * * * * * * * DtoResolveFunction(std.experimental.logger.core.Logger.fatalHandler): /usr/include/dlang/ldc/std/experimental/logger/core.d(899) * * * * * * * * DtoDeclareFunction(std.experimental.logger.core.Logger.fatalHandler): /usr/include/dlang/ldc/std/experimental/logger/core.d(899) * * * * * * * * * isMember = this is: std.experimental.logger.core.Logger * * * * * * * * * DtoFunctionType(pure @nogc @property @safe void(void delegate() @safe fh)) * * * * * * * * * func = declare void @_D3std12experimental6logger4core6Logger12fatalHandlerMFNaNdNiNfDFNfZvZv(%std.experimental.logger.core.Logger*, { i8*, void (i8*)* }) * * * * * * DtoCallFunction() * * * * * * * Building type: pure @nogc @property @safe void(void delegate() @safe fh) * * * * * * * * DtoFunctionType(pure @nogc @property @safe void(void delegate() @safe fh)) * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * Final function type: void ({ i8*, void (i8*)* }) * * * * * * * doing normal arguments * * * * * * * Arguments so far: (1) * * * * * * * * %1 = call %std.experimental.logger.core.Logger* @_D3std12experimental6logger4core9sharedLogFNdNfZC3std12experimental6logger4core6Logger() * * * * * * * Function type: pure @nogc @property @safe void(void delegate() @safe fh) * * * * * * * DtoArgument * * * * * * * * FuncExp::toElem: __lambda2 @ void delegate() @safe * * * * * * * * * nested * * * * * * * * * kind = delegate * * * * * * * * * DtoDefineFunction(client.client.main.__lambda2): src/client/client.d(39) * * * * * * * * * * DtoFunctionType(@safe void()) * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * Final function type: void (i8*) * * * * * * * * * * DtoResolveFunction(client.client.main.__lambda2): src/client/client.d(39) * * * * * * * * * * * DtoDeclareFunction(client.client.main.__lambda2): src/client/client.d(39) * * * * * * * * * * * * DtoFunctionType(@safe void()) * * * * * * * * * * * * func = declare void @_D6client6client4mainFAAyaZ9__lambda2MFNfZv(i8*) * * * * * * * * * * Doing function body for: __lambda2 * * * * * * * * * * DtoCreateNestedContext for __lambda2 * * * * * * * * * * * DtoCreateNestedContextType for client.client.main.__lambda2 * * * * * * * * * * * * DtoCreateNestedContextType for D main * * * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * * * CompoundStatement::toIR(): src/client/client.d(39) * * * * ExpStatement::toIR(): src/client/client.d(41) * * * * * DeclarationExp::toElem: ulong cursorPos = 18446744073709551615LU; | T=void * * * * * * DtoDeclarationExp: cursorPos * * * * * * * VarDeclaration * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * llvm value for decl: %cursorPos = alloca i64, align 8 * * * * * * * * expression initializer * * * * * * * * AssignExp::toElem: cursorPos = 18446744073709551615LU | (ulong)(ulong = ulong) * * * * * * * * * VarExp::toElem: cursorPos @ ulong * * * * * * * * * * DtoSymbolAddress ('cursorPos' of type 'ulong') * * * * * * * * * * * a normal variable * * * * * * * * * IntegerExp::toElem: 18446744073709551615LU @ ulong * * * * * * * * * * IntegerExp::toConstElem: 18446744073709551615LU @ ulong * * * * * * * * * * * value = i64 -1 * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * DtoAssign() * * * * * * * * * * lhs: %cursorPos = alloca i64, align 8 * * * * * * * * * * rhs: i64 -1 * * * * ExpStatement::toIR(): src/client/client.d(42) * * * * * DeclarationExp::toElem: string[] importPaths = null; | T=void * * * * * * DtoDeclarationExp: importPaths * * * * * * * VarDeclaration * * * * * * * DtoVarDeclaration(vdtype = string[]) * * * * * * * * llvm value for decl: %importPaths = alloca { i64, { i64, i8* }* }, align 8 * * * * * * * * expression initializer * * * * * * * * AssignExp::toElem: importPaths = null | (string[])(string[] = string[]) * * * * * * * * * VarExp::toElem: importPaths @ string[] * * * * * * * * * * DtoSymbolAddress ('importPaths' of type 'string[]') * * * * * * * * * * * a normal variable * * * * * * * * * NullExp::toElem(type=string[]): null * * * * * * * * * * NullExp::toConstElem(type=string[]): null * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * DtoAssign() * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * DtoSetArrayToNull * * * * ExpStatement::toIR(): src/client/client.d(43) * * * * * DeclarationExp::toElem: ushort port = cast(ushort)9166u; | T=void * * * * * * DtoDeclarationExp: port * * * * * * * VarDeclaration * * * * * * * DtoVarDeclaration(vdtype = ushort) * * * * * * * * llvm value for decl: %port = alloca i16, align 2 * * * * * * * * expression initializer * * * * * * * * AssignExp::toElem: port = cast(ushort)9166u | (ushort)(ushort = ushort) * * * * * * * * * VarExp::toElem: port @ ushort * * * * * * * * * * DtoSymbolAddress ('port' of type 'ushort') * * * * * * * * * * * a normal variable * * * * * * * * * IntegerExp::toElem: cast(ushort)9166u @ ushort * * * * * * * * * * IntegerExp::toConstElem: cast(ushort)9166u @ ushort * * * * * * * * * * * value = i16 9166 * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * DtoAssign() * * * * * * * * * * lhs: %port = alloca i16, align 2 * * * * * * * * * * rhs: i16 9166 * * * * ExpStatement::toIR(): src/client/client.d(44) * * * * * DeclarationExp::toElem: bool help = false; | T=void * * * * * * DtoDeclarationExp: help * * * * * * * VarDeclaration * * * * * * * DtoVarDeclaration(vdtype = bool) * * * * * * * * llvm value for decl: %help = alloca i8, align 1 * * * * * * * * expression initializer * * * * * * * * AssignExp::toElem: help = false | (bool)(bool = bool) * * * * * * * * * VarExp::toElem: help @ bool * * * * * * * * * * DtoSymbolAddress ('help' of type 'bool') * * * * * * * * * * * a normal variable * * * * * * * * * IntegerExp::toElem: false @ bool * * * * * * * * * * IntegerExp::toConstElem: false @ bool * * * * * * * * * * * value = i1 false * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * DtoAssign() * * * * ExpStatement::toIR(): src/client/client.d(45) * * * * * DeclarationExp::toElem: bool shutdown = false; | T=void * * * * * * DtoDeclarationExp: shutdown * * * * * * * VarDeclaration * * * * * * * DtoVarDeclaration(vdtype = bool) * * * * * * * * llvm value for decl: %shutdown = alloca i8, align 1 * * * * * * * * expression initializer * * * * * * * * AssignExp::toElem: shutdown = false | (bool)(bool = bool) * * * * * * * * * VarExp::toElem: shutdown @ bool * * * * * * * * * * DtoSymbolAddress ('shutdown' of type 'bool') * * * * * * * * * * * a normal variable * * * * * * * * * IntegerExp::toElem: false @ bool * * * * * * * * * * IntegerExp::toConstElem: false @ bool * * * * * * * * * * * value = i1 false * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * DtoAssign() * * * * ExpStatement::toIR(): src/client/client.d(46) * * * * * DeclarationExp::toElem: bool clearCache = false; | T=void * * * * * * DtoDeclarationExp: clearCache * * * * * * * VarDeclaration * * * * * * * DtoVarDeclaration(vdtype = bool) * * * * * * * * llvm value for decl: %clearCache = alloca i8, align 1 * * * * * * * * expression initializer * * * * * * * * AssignExp::toElem: clearCache = false | (bool)(bool = bool) * * * * * * * * * VarExp::toElem: clearCache @ bool * * * * * * * * * * DtoSymbolAddress ('clearCache' of type 'bool') * * * * * * * * * * * a normal variable * * * * * * * * * IntegerExp::toElem: false @ bool * * * * * * * * * * IntegerExp::toConstElem: false @ bool * * * * * * * * * * * value = i1 false * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * DtoAssign() * * * * ExpStatement::toIR(): src/client/client.d(47) * * * * * DeclarationExp::toElem: bool symbolLocation = false; | T=void * * * * * * DtoDeclarationExp: symbolLocation * * * * * * * VarDeclaration * * * * * * * DtoVarDeclaration(vdtype = bool) * * * * * * * * llvm value for decl: %symbolLocation = alloca i8, align 1 * * * * * * * * expression initializer * * * * * * * * AssignExp::toElem: symbolLocation = false | (bool)(bool = bool) * * * * * * * * * VarExp::toElem: symbolLocation @ bool * * * * * * * * * * DtoSymbolAddress ('symbolLocation' of type 'bool') * * * * * * * * * * * a normal variable * * * * * * * * * IntegerExp::toElem: false @ bool * * * * * * * * * * IntegerExp::toConstElem: false @ bool * * * * * * * * * * * value = i1 false * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * DtoAssign() * * * * ExpStatement::toIR(): src/client/client.d(48) * * * * * DeclarationExp::toElem: bool doc = false; | T=void * * * * * * DtoDeclarationExp: doc * * * * * * * VarDeclaration * * * * * * * DtoVarDeclaration(vdtype = bool) * * * * * * * * llvm value for decl: %doc = alloca i8, align 1 * * * * * * * * expression initializer * * * * * * * * AssignExp::toElem: doc = false | (bool)(bool = bool) * * * * * * * * * VarExp::toElem: doc @ bool * * * * * * * * * * DtoSymbolAddress ('doc' of type 'bool') * * * * * * * * * * * a normal variable * * * * * * * * * IntegerExp::toElem: false @ bool * * * * * * * * * * IntegerExp::toConstElem: false @ bool * * * * * * * * * * * value = i1 false * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * DtoAssign() * * * * ExpStatement::toIR(): src/client/client.d(49) * * * * * DeclarationExp::toElem: bool query = false; | T=void * * * * * * DtoDeclarationExp: query * * * * * * * VarDeclaration * * * * * * * DtoVarDeclaration(vdtype = bool) * * * * * * * * llvm value for decl: %query = alloca i8, align 1 * * * * * * * * expression initializer * * * * * * * * AssignExp::toElem: query = false | (bool)(bool = bool) * * * * * * * * * VarExp::toElem: query @ bool * * * * * * * * * * DtoSymbolAddress ('query' of type 'bool') * * * * * * * * * * * a normal variable * * * * * * * * * IntegerExp::toElem: false @ bool * * * * * * * * * * IntegerExp::toConstElem: false @ bool * * * * * * * * * * * value = i1 false * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * DtoAssign() * * * * ExpStatement::toIR(): src/client/client.d(50) * * * * * DeclarationExp::toElem: bool printVersion = false; | T=void * * * * * * DtoDeclarationExp: printVersion * * * * * * * VarDeclaration * * * * * * * DtoVarDeclaration(vdtype = bool) * * * * * * * * llvm value for decl: %printVersion = alloca i8, align 1 * * * * * * * * expression initializer * * * * * * * * AssignExp::toElem: printVersion = false | (bool)(bool = bool) * * * * * * * * * VarExp::toElem: printVersion @ bool * * * * * * * * * * DtoSymbolAddress ('printVersion' of type 'bool') * * * * * * * * * * * a normal variable * * * * * * * * * IntegerExp::toElem: false @ bool * * * * * * * * * * IntegerExp::toConstElem: false @ bool * * * * * * * * * * * value = i1 false * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * DtoAssign() * * * * ExpStatement::toIR(): src/client/client.d(51) * * * * * DeclarationExp::toElem: bool listImports = false; | T=void * * * * * * DtoDeclarationExp: listImports * * * * * * * VarDeclaration * * * * * * * DtoVarDeclaration(vdtype = bool) * * * * * * * * llvm value for decl: %listImports = alloca i8, align 1 * * * * * * * * expression initializer * * * * * * * * AssignExp::toElem: listImports = false | (bool)(bool = bool) * * * * * * * * * VarExp::toElem: listImports @ bool * * * * * * * * * * DtoSymbolAddress ('listImports' of type 'bool') * * * * * * * * * * * a normal variable * * * * * * * * * IntegerExp::toElem: false @ bool * * * * * * * * * * IntegerExp::toConstElem: false @ bool * * * * * * * * * * * value = i1 false * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * DtoAssign() * * * * ExpStatement::toIR(): src/client/client.d(52) * * * * * DeclarationExp::toElem: string search = null; | T=void * * * * * * DtoDeclarationExp: search * * * * * * * VarDeclaration * * * * * * * DtoVarDeclaration(vdtype = string) * * * * * * * * llvm value for decl: %search = alloca { i64, i8* }, align 8 * * * * * * * * expression initializer * * * * * * * * AssignExp::toElem: search = null | (string)(string = string) * * * * * * * * * VarExp::toElem: search @ string * * * * * * * * * * DtoSymbolAddress ('search' of type 'string') * * * * * * * * * * * a normal variable * * * * * * * * * NullExp::toElem(type=string): null * * * * * * * * * * NullExp::toConstElem(type=string): null * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * DtoAssign() * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * DtoSetArrayToNull * * * * ExpStatement::toIR(): src/client/client.d(60) * * * * * DeclarationExp::toElem: bool useTCP = false; | T=void * * * * * * DtoDeclarationExp: useTCP * * * * * * * VarDeclaration * * * * * * * DtoVarDeclaration(vdtype = bool) * * * * * * * * llvm value for decl: %useTCP = alloca i8, align 1 * * * * * * * * expression initializer * * * * * * * * AssignExp::toElem: useTCP = false | (bool)(bool = bool) * * * * * * * * * VarExp::toElem: useTCP @ bool * * * * * * * * * * DtoSymbolAddress ('useTCP' of type 'bool') * * * * * * * * * * * a normal variable * * * * * * * * * IntegerExp::toElem: false @ bool * * * * * * * * * * IntegerExp::toConstElem: false @ bool * * * * * * * * * * * value = i1 false * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * DtoAssign() * * * * ExpStatement::toIR(): src/client/client.d(61) * * * * * DeclarationExp::toElem: string socketFile = generateSocketName(); | T=void * * * * * * DtoDeclarationExp: socketFile * * * * * * * VarDeclaration * * * * * * * DtoVarDeclaration(vdtype = string) * * * * * * * * llvm value for decl: %socketFile = alloca { i64, i8* }, align 8 * * * * * * * * expression initializer * * * * * * * * AssignExp::toElem: socketFile = generateSocketName() | (string)(string = string) * * * * * * * * * VarExp::toElem: socketFile @ string * * * * * * * * * * DtoSymbolAddress ('socketFile' of type 'string') * * * * * * * * * * * a normal variable * * * * * * * * * CallExp::toElem: generateSocketName() @ string * * * * * * * * * * VarExp::toElem: generateSocketName @ string() * * * * * * * * * * * DtoSymbolAddress ('generateSocketName' of type 'string()') * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * Building type: string() * * * * * * * * * * * * DtoFunctionType(string()) * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * Final function type: { i64, i8* } () * * * * * * * * * * * doing normal arguments * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * Function type: string() * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * DtoAssign() * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * SetArray * * * * TryCatchStatement::toIR(): src/client/client.d(64) * * * * * DtoDeclarationExp: e * * * * * * VarDeclaration * * * * * * DtoVarDeclaration(vdtype = std.conv.ConvException) * * * * * * * has nestedref set (referenced by nested function/delegate) * * * * * * * llvm value for decl: %e = getelementptr %nest.main, %nest.main* %.frame, i32 0, i32 0 * * * * * * * expression initializer * * * * * * * AssignExp::toElem: e = null | (std.conv.ConvException)(std.conv.ConvException = std.conv.ConvException) * * * * * * * * VarExp::toElem: e @ std.conv.ConvException * * * * * * * * * DtoSymbolAddress ('e' of type 'std.conv.ConvException') * * * * * * * * * * nested variable * * * * * * * * * * DtoNestedVariable for e @ src/client/client.d(73) * * * * * * * * NullExp::toElem(type=std.conv.ConvException): null * * * * * * * * * NullExp::toConstElem(type=std.conv.ConvException): null * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * DtoAssign() * * * * * * * * * l : %e = getelementptr %nest.main, %nest.main* %.frame, i32 0, i32 0 * * * * * * * * * r : %std.conv.ConvException* null * * * * * CompoundStatement::toIR(): src/client/client.d(74) * * * * * * ExpStatement::toIR(): src/client/client.d(75) * * * * * * * CallExp::toElem: defaultLogFunction(delegate string() => e.msg) @ void * * * * * * * * VarExp::toElem: defaultLogFunction @ @safe void(lazy string _param_0) * * * * * * * * * DtoSymbolAddress ('defaultLogFunction' of type '@safe void(lazy string _param_0)') * * * * * * * * * * FuncDeclaration * * * * * * * * * * DtoFunctionType(@safe void(lazy string _param_0)) * * * * * * * * * * * lazy param * * * * * * * * * * * Building type: string delegate() * * * * * * * * * * * * DtoFunctionType(string()) * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * Final function type: { i64, i8* } (i8*) * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * Final function type: void ({ i8*, { i64, i8* } (i8*)* }) * * * * * * * * * * DtoResolveFunction(std.experimental.logger.core.defaultLogFunction!cast(LogLevel)cast(ubyte)192u.defaultLogFunction!(75, "src/client/client.d", "client.client.main", "int client.client.main(string[] args)", "client.client", string).defaultLogFunction): /usr/include/dlang/ldc/std/experimental/logger/core.d(478) * * * * * * * * * * * DtoDeclareFunction(std.experimental.logger.core.defaultLogFunction!cast(LogLevel)cast(ubyte)192u.defaultLogFunction!(75, "src/client/client.d", "client.client.main", "int client.client.main(string[] args)", "client.client", string).defaultLogFunction): /usr/include/dlang/ldc/std/experimental/logger/core.d(478) * * * * * * * * * * * * DtoFunctionType(@safe void(lazy string _param_0)) * * * * * * * * * * * * func = declare void @_D3std12experimental6logger4core69__T18defaultLogFunctionVE3std12experimental6logger4core8LogLeveli192Z239__T18defaultLogFunctionVii75VAyaa19_7372632f636c69656e742f636c69656e742e64VAyaa18_636c69656e742e636c69656e742e6d61696eVAyaa37_696e7420636c69656e742e636c69656e742e6d61696e28737472696e675b5d206172677329VAyaa13_636c69656e742e636c69656e74TAyaZ18defaultLogFunctionFNfLAyaZv({ i8*, { i64, i8* } (i8*)* }) * * * * * * * * DtoCallFunction() * * * * * * * * * Building type: @safe void(lazy string _param_0) * * * * * * * * * * DtoFunctionType(@safe void(lazy string _param_0)) * * * * * * * * * * * lazy param * * * * * * * * * * * Building type: string delegate() * * * * * * * * * * * * DtoFunctionType(string()) * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * Final function type: { i64, i8* } (i8*) * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * Final function type: void ({ i8*, { i64, i8* } (i8*)* }) * * * * * * * * * doing normal arguments * * * * * * * * * Arguments so far: (0) * * * * * * * * * Function type: @safe void(lazy string _param_0) * * * * * * * * * DtoArgument * * * * * * * * * * FuncExp::toElem: __dgliteral3 @ string delegate() pure nothrow @nogc @safe * * * * * * * * * * * nested * * * * * * * * * * * kind = delegate * * * * * * * * * * * DtoDefineFunction(client.client.main.__dgliteral3): src/client/client.d(75) * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe string()) * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * Final function type: { i64, i8* } (i8*) * * * * * * * * * * * * DtoResolveFunction(client.client.main.__dgliteral3): src/client/client.d(75) * * * * * * * * * * * * * DtoDeclareFunction(client.client.main.__dgliteral3): src/client/client.d(75) * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe string()) * * * * * * * * * * * * * * func = declare { i64, i8* } @_D6client6client4mainFAAyaZ12__dgliteral3MFNaNbNiNfZAya(i8*) * * * * * * * * * * * * Doing function body for: __dgliteral3 * * * * * * * * * * * * DtoCreateNestedContext for __dgliteral3 * * * * * * * * * * * * * DtoCreateNestedContextType for client.client.main.__dgliteral3 * * * * * * * * * * * * * * DtoCreateNestedContextType for D main * * * * * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * * * * * ReturnStatement::toIR(): src/client/client.d(75) * * * * * * * * * * * * * * DotVarExp::toElem: e.msg @ string * * * * * * * * * * * * * * * VarExp::toElem: e @ std.conv.ConvException * * * * * * * * * * * * * * * * DtoSymbolAddress ('e' of type 'std.conv.ConvException') * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * DtoNestedVariable for e @ src/client/client.d(75) * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for D main * * * * * * * * * * * * * * * * * * Context: %2 = bitcast i8* %1 to %nest.main* * * * * * * * * * * * * * * * * * * of type: %nest.main = type { %std.conv.ConvException* } * * * * * * * * * * * * * * * * * * Variable: e * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * Function: __dgliteral3 * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * Addr: %e = getelementptr %nest.main, %nest.main* %2, i32 0, i32 0 * * * * * * * * * * * * * * * * * * of type: %std.conv.ConvException** * * * * * * * * * * * * * * * Indexing aggregate field object.Throwable.msg: * * * * * * * * * * * * * * * * Value: %4 = getelementptr %std.conv.ConvException, %std.conv.ConvException* %3, i32 0, i32 2 * * * * * * * * * * * * * * return value is '0x12d90aa8' * * * * * * * * * * * Building type: string delegate() pure nothrow @nogc @safe * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe string()) * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * Final function type: { i64, i8* } (i8*) * * * * * * ExpStatement::toIR(): src/client/client.d(76) * * * * * * * CallExp::toElem: printHelp(args[0]) @ void * * * * * * * * VarExp::toElem: printHelp @ void(string programName) * * * * * * * * * DtoSymbolAddress ('printHelp' of type 'void(string programName)') * * * * * * * * * * FuncDeclaration * * * * * * * * * * DtoFunctionType(void(string programName)) * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * Final function type: void ({ i64, i8* }) * * * * * * * * * * DtoResolveFunction(client.client.printHelp): src/client/client.d(230) * * * * * * * * * * * DtoDeclareFunction(client.client.printHelp): src/client/client.d(230) * * * * * * * * * * * * DtoFunctionType(void(string programName)) * * * * * * * * * * * * func = declare void @_D6client6client9printHelpFAyaZv({ i64, i8* }) * * * * * * * * DtoCallFunction() * * * * * * * * * Building type: void(string programName) * * * * * * * * * * DtoFunctionType(void(string programName)) * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * Final function type: void ({ i64, i8* }) * * * * * * * * * doing normal arguments * * * * * * * * * Arguments so far: (0) * * * * * * * * * Function type: void(string programName) * * * * * * * * * DtoArgument * * * * * * * * * * IndexExp::toElem: args[0] @ string * * * * * * * * * * * VarExp::toElem: args @ string[] * * * * * * * * * * * * DtoSymbolAddress ('args' of type 'string[]') * * * * * * * * * * * * * function param * * * * * * * * * * * * * type: string[] * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * DtoArrayPtr * * * * * * ReturnStatement::toIR(): src/client/client.d(77) * * * * * * * IntegerExp::toElem: 1 @ int * * * * * * * * IntegerExp::toConstElem: 1 @ int * * * * * * * * * value = i32 1 * * * * * * * return value is '0x120e3000' * * * * * ScopeStatement::toIR(): src/client/client.d(65) * * * * * * ExpStatement::toIR(): src/client/client.d(66) * * * * * * * CallExp::toElem: getopt(args, "cursorPos|c", & cursorPos, "I", & importPaths, "port|p", & port, "help|h", & help, "shutdown", & shutdown, "clearCache", & clearCache, "symbolLocation|l", & symbolLocation, "doc|d", & doc, "query|status|q", & query, "search|s", & search, "version", & printVersion, "listImports", & listImports, "tcp", & useTCP, "socketFile", & socketFile) @ GetoptResult * * * * * * * * VarExp::toElem: getopt @ @system GetoptResult(ref string[] args, string _param_1, ulong* _param_2, string _param_3, string[]* _param_4, string _param_5, ushort* _param_6, string _param_7, bool* _param_8, string _param_9, bool* _param_10, string _param_11, bool* _param_12, string _param_13, bool* _param_14, string _param_15, bool* _param_16, string _param_17, bool* _param_18, string _param_19, string* _param_20, string _param_21, bool* _param_22, string _param_23, bool* _param_24, string _param_25, bool* _param_26, string _param_27, string* _param_28) * * * * * * * * * DtoSymbolAddress ('getopt' of type '@system GetoptResult(ref string[] args, string _param_1, ulong* _param_2, string _param_3, string[]* _param_4, string _param_5, ushort* _param_6, string _param_7, bool* _param_8, string _param_9, bool* _param_10, string _param_11, bool* _param_12, string _param_13, bool* _param_14, string _param_15, bool* _param_16, string _param_17, bool* _param_18, string _param_19, string* _param_20, string _param_21, bool* _param_22, string _param_23, bool* _param_24, string _param_25, bool* _param_26, string _param_27, string* _param_28)') * * * * * * * * * * FuncDeclaration * * * * * * * * * * DtoFunctionType(@system GetoptResult(ref string[] args, string _param_1, ulong* _param_2, string _param_3, string[]* _param_4, string _param_5, ushort* _param_6, string _param_7, bool* _param_8, string _param_9, bool* _param_10, string _param_11, bool* _param_12, string _param_13, bool* _param_14, string _param_15, bool* _param_16, string _param_17, bool* _param_18, string _param_19, string* _param_20, string _param_21, bool* _param_22, string _param_23, bool* _param_24, string _param_25, bool* _param_26, string _param_27, string* _param_28)) * * * * * * * * * * * Building type: GetoptResult* * * * * * * * * * * * * Building type: GetoptResult * * * * * * * * * * * * * Building struct type std.getopt.GetoptResult @ /usr/include/dlang/ldc/std/getopt.d(491) * * * * * * * * * * * * * * adding default initializer for struct field helpWanted * * * * * * * * * * * * * * adding default initializer for struct field options * * * * * * * * * * * * * * Building type: Option[] * * * * * * * * * * * * * * * Building type: Option * * * * * * * * * * * * * * * * Building struct type std.getopt.Option @ /usr/include/dlang/ldc/std/getopt.d(498) * * * * * * * * * * * * * * * * * adding default initializer for struct field optShort * * * * * * * * * * * * * * * * * adding default initializer for struct field optLong * * * * * * * * * * * * * * * * * adding default initializer for struct field help * * * * * * * * * * * * * * * * * adding default initializer for struct field required * * * * * * * * * * * * * * * * * final struct type: %std.getopt.Option = type { { i64, i8* }, { i64, i8* }, { i64, i8* }, i8, [7 x i8] } * * * * * * * * * * * * * * final struct type: %std.getopt.GetoptResult = type { i8, [7 x i8], { i64, %std.getopt.Option* } } * * * * * * * * * * * Building type: ushort* * * * * * * * * * * * Building type: bool* * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * Passing implicitly ByVal: string ({ i64, i8* }) * * * * * * * * * * * Final function type: void (%std.getopt.GetoptResult*, { i64, i8* }*, { i64, i8* }, i8*, { i64, i8* }*, i8*, { i64, i8* }, i8*, { i64, i8* }, { i64, i8* }*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, i16*, { i64, i8* }, { i64, { i64, i8* }* }*, { i64, i8* }, i64*, { i64, i8* }, { i64, { i64, i8* }* }*) * * * * * * * * * * DtoResolveFunction(std.getopt.getopt!(string, ulong*, string, string[]*, string, ushort*, string, bool*, string, bool*, string, bool*, string, bool*, string, bool*, string, bool*, string, string*, string, bool*, string, bool*, string, bool*, string, string*).getopt): /usr/include/dlang/ldc/std/getopt.d(428) * * * * * * * * * * * DtoDeclareFunction(std.getopt.getopt!(string, ulong*, string, string[]*, string, ushort*, string, bool*, string, bool*, string, bool*, string, bool*, string, bool*, string, bool*, string, string*, string, bool*, string, bool*, string, bool*, string, string*).getopt): /usr/include/dlang/ldc/std/getopt.d(428) * * * * * * * * * * * * DtoFunctionType(@system GetoptResult(ref string[] args, string _param_1, ulong* _param_2, string _param_3, string[]* _param_4, string _param_5, ushort* _param_6, string _param_7, bool* _param_8, string _param_9, bool* _param_10, string _param_11, bool* _param_12, string _param_13, bool* _param_14, string _param_15, bool* _param_16, string _param_17, bool* _param_18, string _param_19, string* _param_20, string _param_21, bool* _param_22, string _param_23, bool* _param_24, string _param_25, bool* _param_26, string _param_27, string* _param_28)) * * * * * * * * * * * * func = declare void @_D3std6getopt116__T6getoptTAyaTPmTAyaTPAAyaTAyaTPtTAyaTPbTAyaTPbTAyaTPbTAyaTPbTAyaTPbTAyaTPbTAyaTPAyaTAyaTPbTAyaTPbTAyaTPbTAyaTPAyaZ6getoptFKAAyaAyaPmAyaPAAyaAyaPtAyaPbAyaPbAyaPbAyaPbAyaPbAyaPbAyaPAyaAyaPbAyaPbAyaPbAyaPAyaZS3std6getopt12GetoptResult(%std.getopt.GetoptResult*, { i64, i8* }*, { i64, i8* }, i8*, { i64, i8* }*, i8*, { i64, i8* }, i8*, { i64, i8* }, { i64, i8* }*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, i16*, { i64, i8* }, { i64, { i64, i8* }* }*, { i64, i8* }, i64*, { i64, i8* }, { i64, { i64, i8* }* }*) * * * * * * * * DtoCallFunction() * * * * * * * * * Building type: @system GetoptResult(ref string[] args, string _param_1, ulong* _param_2, string _param_3, string[]* _param_4, string _param_5, ushort* _param_6, string _param_7, bool* _param_8, string _param_9, bool* _param_10, string _param_11, bool* _param_12, string _param_13, bool* _param_14, string _param_15, bool* _param_16, string _param_17, bool* _param_18, string _param_19, string* _param_20, string _param_21, bool* _param_22, string _param_23, bool* _param_24, string _param_25, bool* _param_26, string _param_27, string* _param_28) * * * * * * * * * * DtoFunctionType(@system GetoptResult(ref string[] args, string _param_1, ulong* _param_2, string _param_3, string[]* _param_4, string _param_5, ushort* _param_6, string _param_7, bool* _param_8, string _param_9, bool* _param_10, string _param_11, bool* _param_12, string _param_13, bool* _param_14, string _param_15, bool* _param_16, string _param_17, bool* _param_18, string _param_19, string* _param_20, string _param_21, bool* _param_22, string _param_23, bool* _param_24, string _param_25, bool* _param_26, string _param_27, string* _param_28)) * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * Passing implicitly ByVal: string ({ i64, i8* }) * * * * * * * * * * * Final function type: void (%std.getopt.GetoptResult*, { i64, i8* }*, { i64, i8* }, i8*, { i64, i8* }*, i8*, { i64, i8* }, i8*, { i64, i8* }, { i64, i8* }*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, i16*, { i64, i8* }, { i64, { i64, i8* }* }*, { i64, i8* }, i64*, { i64, i8* }, { i64, { i64, i8* }* }*) * * * * * * * * * doing normal arguments * * * * * * * * * Arguments so far: (1) * * * * * * * * * * %.rettmp = alloca %std.getopt.GetoptResult, align 8 * * * * * * * * * Function type: @system GetoptResult(ref string[] args, string _param_1, ulong* _param_2, string _param_3, string[]* _param_4, string _param_5, ushort* _param_6, string _param_7, bool* _param_8, string _param_9, bool* _param_10, string _param_11, bool* _param_12, string _param_13, bool* _param_14, string _param_15, bool* _param_16, string _param_17, bool* _param_18, string _param_19, string* _param_20, string _param_21, bool* _param_22, string _param_23, bool* _param_24, string _param_25, bool* _param_26, string _param_27, string* _param_28) * * * * * * * * * DtoArgument * * * * * * * * * * VarExp::toElem: args @ string[] * * * * * * * * * * * DtoSymbolAddress ('args' of type 'string[]') * * * * * * * * * * * * function param * * * * * * * * * * * * type: string[] * * * * * * * * * DtoArgument * * * * * * * * * * StringExp::toElem: "cursorPos|c" @ string * * * * * * * * * * * type: [12 x i8] * * * * * * * * * * * init: [12 x i8] c"cursorPos|c\00" * * * * * * * * * DtoArgument * * * * * * * * * * SymOffExp::toElem: & cursorPos @ ulong* * * * * * * * * * * * DtoSymbolAddress ('cursorPos' of type 'ulong') * * * * * * * * * * * * a normal variable * * * * * * * * * DtoArgument * * * * * * * * * * StringExp::toElem: "I" @ string * * * * * * * * * * * type: [2 x i8] * * * * * * * * * * * init: [2 x i8] c"I\00" * * * * * * * * * DtoArgument * * * * * * * * * * SymOffExp::toElem: & importPaths @ string[]* * * * * * * * * * * * DtoSymbolAddress ('importPaths' of type 'string[]') * * * * * * * * * * * * a normal variable * * * * * * * * * DtoArgument * * * * * * * * * * StringExp::toElem: "port|p" @ string * * * * * * * * * * * type: [7 x i8] * * * * * * * * * * * init: [7 x i8] c"port|p\00" * * * * * * * * * DtoArgument * * * * * * * * * * SymOffExp::toElem: & port @ ushort* * * * * * * * * * * * DtoSymbolAddress ('port' of type 'ushort') * * * * * * * * * * * * a normal variable * * * * * * * * * DtoArgument * * * * * * * * * * StringExp::toElem: "help|h" @ string * * * * * * * * * * * type: [7 x i8] * * * * * * * * * * * init: [7 x i8] c"help|h\00" * * * * * * * * * DtoArgument * * * * * * * * * * SymOffExp::toElem: & help @ bool* * * * * * * * * * * * DtoSymbolAddress ('help' of type 'bool') * * * * * * * * * * * * a normal variable * * * * * * * * * DtoArgument * * * * * * * * * * StringExp::toElem: "shutdown" @ string * * * * * * * * * * * type: [9 x i8] * * * * * * * * * * * init: [9 x i8] c"shutdown\00" * * * * * * * * * DtoArgument * * * * * * * * * * SymOffExp::toElem: & shutdown @ bool* * * * * * * * * * * * DtoSymbolAddress ('shutdown' of type 'bool') * * * * * * * * * * * * a normal variable * * * * * * * * * DtoArgument * * * * * * * * * * StringExp::toElem: "clearCache" @ string * * * * * * * * * * * type: [11 x i8] * * * * * * * * * * * init: [11 x i8] c"clearCache\00" * * * * * * * * * DtoArgument * * * * * * * * * * SymOffExp::toElem: & clearCache @ bool* * * * * * * * * * * * DtoSymbolAddress ('clearCache' of type 'bool') * * * * * * * * * * * * a normal variable * * * * * * * * * DtoArgument * * * * * * * * * * StringExp::toElem: "symbolLocation|l" @ string * * * * * * * * * * * type: [17 x i8] * * * * * * * * * * * init: [17 x i8] c"symbolLocation|l\00" * * * * * * * * * DtoArgument * * * * * * * * * * SymOffExp::toElem: & symbolLocation @ bool* * * * * * * * * * * * DtoSymbolAddress ('symbolLocation' of type 'bool') * * * * * * * * * * * * a normal variable * * * * * * * * * DtoArgument * * * * * * * * * * StringExp::toElem: "doc|d" @ string * * * * * * * * * * * type: [6 x i8] * * * * * * * * * * * init: [6 x i8] c"doc|d\00" * * * * * * * * * DtoArgument * * * * * * * * * * SymOffExp::toElem: & doc @ bool* * * * * * * * * * * * DtoSymbolAddress ('doc' of type 'bool') * * * * * * * * * * * * a normal variable * * * * * * * * * DtoArgument * * * * * * * * * * StringExp::toElem: "query|status|q" @ string * * * * * * * * * * * type: [15 x i8] * * * * * * * * * * * init: [15 x i8] c"query|status|q\00" * * * * * * * * * DtoArgument * * * * * * * * * * SymOffExp::toElem: & query @ bool* * * * * * * * * * * * DtoSymbolAddress ('query' of type 'bool') * * * * * * * * * * * * a normal variable * * * * * * * * * DtoArgument * * * * * * * * * * StringExp::toElem: "search|s" @ string * * * * * * * * * * * type: [9 x i8] * * * * * * * * * * * init: [9 x i8] c"search|s\00" * * * * * * * * * DtoArgument * * * * * * * * * * SymOffExp::toElem: & search @ string* * * * * * * * * * * * DtoSymbolAddress ('search' of type 'string') * * * * * * * * * * * * a normal variable * * * * * * * * * DtoArgument * * * * * * * * * * StringExp::toElem: "version" @ string * * * * * * * * * * * type: [8 x i8] * * * * * * * * * * * init: [8 x i8] c"version\00" * * * * * * * * * DtoArgument * * * * * * * * * * SymOffExp::toElem: & printVersion @ bool* * * * * * * * * * * * DtoSymbolAddress ('printVersion' of type 'bool') * * * * * * * * * * * * a normal variable * * * * * * * * * DtoArgument * * * * * * * * * * StringExp::toElem: "listImports" @ string * * * * * * * * * * * type: [12 x i8] * * * * * * * * * * * init: [12 x i8] c"listImports\00" * * * * * * * * * DtoArgument * * * * * * * * * * SymOffExp::toElem: & listImports @ bool* * * * * * * * * * * * DtoSymbolAddress ('listImports' of type 'bool') * * * * * * * * * * * * a normal variable * * * * * * * * * DtoArgument * * * * * * * * * * StringExp::toElem: "tcp" @ string * * * * * * * * * * * type: [4 x i8] * * * * * * * * * * * init: [4 x i8] c"tcp\00" * * * * * * * * * DtoArgument * * * * * * * * * * SymOffExp::toElem: & useTCP @ bool* * * * * * * * * * * * DtoSymbolAddress ('useTCP' of type 'bool') * * * * * * * * * * * * a normal variable * * * * * * * * * DtoArgument * * * * * * * * * * StringExp::toElem: "socketFile" @ string * * * * * * * * * * * type: [11 x i8] * * * * * * * * * * * init: [11 x i8] c"socketFile\00" * * * * * * * * * DtoArgument * * * * * * * * * * SymOffExp::toElem: & socketFile @ string* * * * * * * * * * * * DtoSymbolAddress ('socketFile' of type 'string') * * * * * * * * * * * * a normal variable * * * * * * * * * Rewrite: putParam * * * * ExpStatement::toIR(): src/client/client.d(80) * * * * * DeclarationExp::toElem: AutocompleteRequest request = 0; | T=void * * * * * * DtoDeclarationExp: request * * * * * * * VarDeclaration * * * * * * * DtoVarDeclaration(vdtype = AutocompleteRequest) * * * * * * * * llvm value for decl: %request = alloca %common.messages.AutocompleteRequest, align 8 * * * * * * * * expression initializer * * * * * * * * AssignExp::toElem: request = 0 | (AutocompleteRequest)(AutocompleteRequest = int) * * * * * * * * * VarExp::toElem: request @ AutocompleteRequest * * * * * * * * * * DtoSymbolAddress ('request' of type 'AutocompleteRequest') * * * * * * * * * * * a normal variable * * * * * * * * * IntegerExp::toElem: 0 @ int * * * * * * * * * * IntegerExp::toConstElem: 0 @ int * * * * * * * * * * * value = i32 0 * * * * * * * * * performing aggregate zero initialization * * * * IfStatement::toIR(): src/client/client.d(82) * * * * * VarExp::toElem: help @ bool * * * * * * DtoSymbolAddress ('help' of type 'bool') * * * * * * * a normal variable * * * * * ScopeStatement::toIR(): src/client/client.d(83) * * * * * * CompoundStatement::toIR(): src/client/client.d(83) * * * * * * * ExpStatement::toIR(): src/client/client.d(84) * * * * * * * * CallExp::toElem: printHelp(args[0]) @ void * * * * * * * * * VarExp::toElem: printHelp @ void(string programName) * * * * * * * * * * DtoSymbolAddress ('printHelp' of type 'void(string programName)') * * * * * * * * * * * FuncDeclaration * * * * * * * * * DtoCallFunction() * * * * * * * * * * doing normal arguments * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * Function type: void(string programName) * * * * * * * * * * DtoArgument * * * * * * * * * * * IndexExp::toElem: args[0] @ string * * * * * * * * * * * * VarExp::toElem: args @ string[] * * * * * * * * * * * * * DtoSymbolAddress ('args' of type 'string[]') * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * type: string[] * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * DtoArrayPtr * * * * * * * ReturnStatement::toIR(): src/client/client.d(85) * * * * * * * * IntegerExp::toElem: 0 @ int * * * * * * * * * IntegerExp::toConstElem: 0 @ int * * * * * * * * * * value = i32 0 * * * * * * * * return value is '0x120e1350' * * * * IfStatement::toIR(): src/client/client.d(88) * * * * * VarExp::toElem: printVersion @ bool * * * * * * DtoSymbolAddress ('printVersion' of type 'bool') * * * * * * * a normal variable * * * * * ScopeStatement::toIR(): src/client/client.d(89) * * * * * * CompoundStatement::toIR(): src/client/client.d(89) * * * * * * * ExpStatement::toIR(): src/client/client.d(95) * * * * * * * * CallExp::toElem: write("v0.8.0-beta2", " ", "9204b082d2130d77898260827bc7e7124cdccab2\x0a") @ void * * * * * * * * * VarExp::toElem: write @ @safe void(string _param_0, string _param_1, string _param_2) * * * * * * * * * * DtoSymbolAddress ('write' of type '@safe void(string _param_0, string _param_1, string _param_2)') * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * DtoFunctionType(@safe void(string _param_0, string _param_1, string _param_2)) * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * Final function type: void ({ i64, i8* }, { i64, i8* }, { i64, i8* }) * * * * * * * * * * * DtoResolveFunction(std.stdio.write!(string, string, string).write): /usr/include/dlang/ldc/std/stdio.d(2963) * * * * * * * * * * * * DtoDeclareFunction(std.stdio.write!(string, string, string).write): /usr/include/dlang/ldc/std/stdio.d(2963) * * * * * * * * * * * * * DtoFunctionType(@safe void(string _param_0, string _param_1, string _param_2)) * * * * * * * * * * * * * func = declare void @_D3std5stdio22__T5writeTAyaTAyaTAyaZ5writeFNfAyaAyaAyaZv({ i64, i8* }, { i64, i8* }, { i64, i8* }) * * * * * * * * * DtoCallFunction() * * * * * * * * * * Building type: @safe void(string _param_0, string _param_1, string _param_2) * * * * * * * * * * * DtoFunctionType(@safe void(string _param_0, string _param_1, string _param_2)) * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * Final function type: void ({ i64, i8* }, { i64, i8* }, { i64, i8* }) * * * * * * * * * * doing normal arguments * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * Function type: @safe void(string _param_0, string _param_1, string _param_2) * * * * * * * * * * DtoArgument * * * * * * * * * * * StringExp::toElem: "v0.8.0-beta2" @ string * * * * * * * * * * * * type: [13 x i8] * * * * * * * * * * * * init: [13 x i8] c"v0.8.0-beta2\00" * * * * * * * * * * DtoArgument * * * * * * * * * * * StringExp::toElem: " " @ string * * * * * * * * * * * * type: [2 x i8] * * * * * * * * * * * * init: [2 x i8] c" \00" * * * * * * * * * * DtoArgument * * * * * * * * * * * StringExp::toElem: "9204b082d2130d77898260827bc7e7124cdccab2\x0a" @ string * * * * * * * * * * * * type: [42 x i8] * * * * * * * * * * * * init: [42 x i8] c"9204b082d2130d77898260827bc7e7124cdccab2\0A\00" * * * * * * * ReturnStatement::toIR(): src/client/client.d(96) * * * * * * * * IntegerExp::toElem: 0 @ int * * * * * * * * * IntegerExp::toConstElem: 0 @ int * * * * * * * * * * value = i32 0 * * * * * * * * return value is '0x120e1350' * * * * IfStatement::toIR(): src/client/client.d(105) * * * * * VarExp::toElem: useTCP @ bool * * * * * * DtoSymbolAddress ('useTCP' of type 'bool') * * * * * * * a normal variable * * * * * ExpStatement::toIR(): src/client/client.d(106) * * * * * * AssignExp::toElem: socketFile = null | (string)(string = string) * * * * * * * VarExp::toElem: socketFile @ string * * * * * * * * DtoSymbolAddress ('socketFile' of type 'string') * * * * * * * * * a normal variable * * * * * * * NullExp::toElem(type=string): null * * * * * * * * NullExp::toConstElem(type=string): null * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * DtoAssign() * * * * * * * * DtoArrayAssign * * * * * * * * * DtoSetArrayToNull * * * * IfStatement::toIR(): src/client/client.d(108) * * * * * VarExp::toElem: query @ bool * * * * * * DtoSymbolAddress ('query' of type 'bool') * * * * * * * a normal variable * * * * * ScopeStatement::toIR(): src/client/client.d(109) * * * * * * IfStatement::toIR(): src/client/client.d(110) * * * * * * * CallExp::toElem: serverIsRunning(useTCP, socketFile, port) @ bool * * * * * * * * VarExp::toElem: serverIsRunning @ bool(bool useTCP, string socketFile, ushort port) * * * * * * * * * DtoSymbolAddress ('serverIsRunning' of type 'bool(bool useTCP, string socketFile, ushort port)') * * * * * * * * * * FuncDeclaration * * * * * * * * DtoCallFunction() * * * * * * * * * Building type: bool(bool useTCP, string socketFile, ushort port) * * * * * * * * * * DtoFunctionType(bool(bool useTCP, string socketFile, ushort port)) * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * Final function type: i1 (i16, { i64, i8* }, i1) * * * * * * * * * doing normal arguments * * * * * * * * * Arguments so far: (0) * * * * * * * * * Function type: bool(bool useTCP, string socketFile, ushort port) * * * * * * * * * DtoArgument * * * * * * * * * * VarExp::toElem: useTCP @ bool * * * * * * * * * * * DtoSymbolAddress ('useTCP' of type 'bool') * * * * * * * * * * * * a normal variable * * * * * * * * * DtoArgument * * * * * * * * * * VarExp::toElem: socketFile @ string * * * * * * * * * * * DtoSymbolAddress ('socketFile' of type 'string') * * * * * * * * * * * * a normal variable * * * * * * * * * DtoArgument * * * * * * * * * * VarExp::toElem: port @ ushort * * * * * * * * * * * DtoSymbolAddress ('port' of type 'ushort') * * * * * * * * * * * * a normal variable * * * * * * * ScopeStatement::toIR(): src/client/client.d(111) * * * * * * * * CompoundStatement::toIR(): src/client/client.d(111) * * * * * * * * * ExpStatement::toIR(): src/client/client.d(112) * * * * * * * * * * CallExp::toElem: writeln("Server is running") @ void * * * * * * * * * * * VarExp::toElem: writeln @ @safe void(string _param_0) * * * * * * * * * * * * DtoSymbolAddress ('writeln' of type '@safe void(string _param_0)') * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * DtoFunctionType(@safe void(string _param_0)) * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * Final function type: void ({ i64, i8* }) * * * * * * * * * * * * * DtoResolveFunction(std.stdio.writeln!(string).writeln): /usr/include/dlang/ldc/std/stdio.d(2999) * * * * * * * * * * * * * * DtoDeclareFunction(std.stdio.writeln!(string).writeln): /usr/include/dlang/ldc/std/stdio.d(2999) * * * * * * * * * * * * * * * DtoFunctionType(@safe void(string _param_0)) * * * * * * * * * * * * * * * func = declare void @_D3std5stdio16__T7writelnTAyaZ7writelnFNfAyaZv({ i64, i8* }) * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * Building type: @safe void(string _param_0) * * * * * * * * * * * * * DtoFunctionType(@safe void(string _param_0)) * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * Final function type: void ({ i64, i8* }) * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * Function type: @safe void(string _param_0) * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * StringExp::toElem: "Server is running" @ string * * * * * * * * * * * * * * type: [18 x i8] * * * * * * * * * * * * * * init: [18 x i8] c"Server is running\00" * * * * * * * * * ReturnStatement::toIR(): src/client/client.d(113) * * * * * * * * * * IntegerExp::toElem: 0 @ int * * * * * * * * * * * IntegerExp::toConstElem: 0 @ int * * * * * * * * * * * * value = i32 0 * * * * * * * * * * return value is '0x120e1350' * * * * * * * ScopeStatement::toIR(): src/client/client.d(116) * * * * * * * * CompoundStatement::toIR(): src/client/client.d(116) * * * * * * * * * ExpStatement::toIR(): src/client/client.d(117) * * * * * * * * * * CallExp::toElem: writeln("Server is not running") @ void * * * * * * * * * * * VarExp::toElem: writeln @ @safe void(string _param_0) * * * * * * * * * * * * DtoSymbolAddress ('writeln' of type '@safe void(string _param_0)') * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * Function type: @safe void(string _param_0) * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * StringExp::toElem: "Server is not running" @ string * * * * * * * * * * * * * * type: [22 x i8] * * * * * * * * * * * * * * init: [22 x i8] c"Server is not running\00" * * * * * * * * * ReturnStatement::toIR(): src/client/client.d(118) * * * * * * * * * * IntegerExp::toElem: 1 @ int * * * * * * * * * * * IntegerExp::toConstElem: 1 @ int * * * * * * * * * * * * value = i32 1 * * * * * * * * * * return value is '0x120e3000' * * * * * IfStatement::toIR(): src/client/client.d(121) * * * * * * OrOrExp::toElem: shutdown || clearCache @ bool * * * * * * * VarExp::toElem: shutdown @ bool * * * * * * * * DtoSymbolAddress ('shutdown' of type 'bool') * * * * * * * * * a normal variable * * * * * * * VarExp::toElem: clearCache @ bool * * * * * * * * DtoSymbolAddress ('clearCache' of type 'bool') * * * * * * * * * a normal variable * * * * * * ScopeStatement::toIR(): src/client/client.d(122) * * * * * * * CompoundStatement::toIR(): src/client/client.d(122) * * * * * * * * IfStatement::toIR(): src/client/client.d(123) * * * * * * * * * VarExp::toElem: shutdown @ bool * * * * * * * * * * DtoSymbolAddress ('shutdown' of type 'bool') * * * * * * * * * * * a normal variable * * * * * * * * * ExpStatement::toIR(): src/client/client.d(124) * * * * * * * * * * AssignExp::toElem: request.kind = cast(RequestKind)cast(ushort)8u | (RequestKind)(RequestKind = RequestKind) * * * * * * * * * * * DotVarExp::toElem: request.kind @ RequestKind * * * * * * * * * * * * VarExp::toElem: request @ AutocompleteRequest * * * * * * * * * * * * * DtoSymbolAddress ('request' of type 'AutocompleteRequest') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * Indexing aggregate field common.messages.AutocompleteRequest.kind: * * * * * * * * * * * * * Building type: RequestKind * * * * * * * * * * * * * Value: %45 = getelementptr %common.messages.AutocompleteRequest, %common.messages.AutocompleteRequest* %request, i32 0, i32 1 * * * * * * * * * * * IntegerExp::toElem: cast(RequestKind)cast(ushort)8u @ RequestKind * * * * * * * * * * * * IntegerExp::toConstElem: cast(RequestKind)cast(ushort)8u @ RequestKind * * * * * * * * * * * * * Building type: RequestKind * * * * * * * * * * * * * value = i16 8 * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * lhs: %45 = getelementptr %common.messages.AutocompleteRequest, %common.messages.AutocompleteRequest* %request, i32 0, i32 1 * * * * * * * * * * * * rhs: i16 8 * * * * * * * * * IfStatement::toIR(): src/client/client.d(125) * * * * * * * * * * VarExp::toElem: clearCache @ bool * * * * * * * * * * * DtoSymbolAddress ('clearCache' of type 'bool') * * * * * * * * * * * * a normal variable * * * * * * * * * * ExpStatement::toIR(): src/client/client.d(126) * * * * * * * * * * * AssignExp::toElem: request.kind = cast(RequestKind)cast(ushort)2u | (RequestKind)(RequestKind = RequestKind) * * * * * * * * * * * * DotVarExp::toElem: request.kind @ RequestKind * * * * * * * * * * * * * VarExp::toElem: request @ AutocompleteRequest * * * * * * * * * * * * * * DtoSymbolAddress ('request' of type 'AutocompleteRequest') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * Indexing aggregate field common.messages.AutocompleteRequest.kind: * * * * * * * * * * * * * * Building type: RequestKind * * * * * * * * * * * * * * Value: %48 = getelementptr %common.messages.AutocompleteRequest, %common.messages.AutocompleteRequest* %request, i32 0, i32 1 * * * * * * * * * * * * IntegerExp::toElem: cast(RequestKind)cast(ushort)2u @ RequestKind * * * * * * * * * * * * * IntegerExp::toConstElem: cast(RequestKind)cast(ushort)2u @ RequestKind * * * * * * * * * * * * * * Building type: RequestKind * * * * * * * * * * * * * * value = i16 2 * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * lhs: %48 = getelementptr %common.messages.AutocompleteRequest, %common.messages.AutocompleteRequest* %request, i32 0, i32 1 * * * * * * * * * * * * * rhs: i16 2 * * * * * * * * ExpStatement::toIR(): src/client/client.d(127) * * * * * * * * * DeclarationExp::toElem: Socket socket = createSocket(socketFile, port); | T=void * * * * * * * * * * DtoDeclarationExp: socket * * * * * * * * * * * VarDeclaration * * * * * * * * * * * DtoVarDeclaration(vdtype = std.socket.Socket) * * * * * * * * * * * * llvm value for decl: %socket = alloca %std.socket.Socket*, align 8 * * * * * * * * * * * * expression initializer * * * * * * * * * * * * AssignExp::toElem: socket = createSocket(socketFile, port) | (std.socket.Socket)(std.socket.Socket = std.socket.Socket) * * * * * * * * * * * * * VarExp::toElem: socket @ std.socket.Socket * * * * * * * * * * * * * * DtoSymbolAddress ('socket' of type 'std.socket.Socket') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * CallExp::toElem: createSocket(socketFile, port) @ std.socket.Socket * * * * * * * * * * * * * * VarExp::toElem: createSocket @ Socket(string socketFile, ushort port) * * * * * * * * * * * * * * * DtoSymbolAddress ('createSocket' of type 'Socket(string socketFile, ushort port)') * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * DtoFunctionType(Socket(string socketFile, ushort port)) * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * Final function type: %std.socket.Socket* (i16, { i64, i8* }) * * * * * * * * * * * * * * * * DtoResolveFunction(client.client.createSocket): src/client/client.d(292) * * * * * * * * * * * * * * * * * DtoDeclareFunction(client.client.createSocket): src/client/client.d(292) * * * * * * * * * * * * * * * * * * DtoFunctionType(Socket(string socketFile, ushort port)) * * * * * * * * * * * * * * * * * * func = declare %std.socket.Socket* @_D6client6client12createSocketFAyatZC3std6socket6Socket(i16, { i64, i8* }) * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * Building type: Socket(string socketFile, ushort port) * * * * * * * * * * * * * * * * DtoFunctionType(Socket(string socketFile, ushort port)) * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * Final function type: %std.socket.Socket* (i16, { i64, i8* }) * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * Function type: Socket(string socketFile, ushort port) * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * VarExp::toElem: socketFile @ string * * * * * * * * * * * * * * * * * DtoSymbolAddress ('socketFile' of type 'string') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * VarExp::toElem: port @ ushort * * * * * * * * * * * * * * * * * DtoSymbolAddress ('port' of type 'ushort') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * l : %socket = alloca %std.socket.Socket*, align 8 * * * * * * * * * * * * * * r : %50 = call %std.socket.Socket* @_D6client6client12createSocketFAyatZC3std6socket6Socket(i16 zeroext %49, { i64, i8* } %48) * * * * * * * * TryFinallyStatement::toIR(): * * * * * * * * * ScopeStatement::toIR(): src/client/client.d(128) * * * * * * * * * * CompoundStatement::toIR(): src/client/client.d(128) * * * * * * * * * * * ExpStatement::toIR(): src/client/client.d(128) * * * * * * * * * * * * CallExp::toElem: socket.shutdown(cast(SocketShutdown)2) @ void * * * * * * * * * * * * * DotVarExp::toElem: socket.shutdown @ nothrow @nogc @trusted void(SocketShutdown how) * * * * * * * * * * * * * * VarExp::toElem: socket @ std.socket.Socket * * * * * * * * * * * * * * * DtoSymbolAddress ('socket' of type 'std.socket.Socket') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * vthis: %52 = load %std.socket.Socket*, %std.socket.Socket** %socket * * * * * * * * * * * * * * funcval: %55 = load void (%std.socket.Socket*, i32)*, void (%std.socket.Socket*, i32)** %"socket.shutdown@vtbl", align 8 * * * * * * * * * * * * * * isMember = this is: std.socket.Socket * * * * * * * * * * * * * * DtoFunctionType(nothrow @nogc @trusted void(SocketShutdown how)) * * * * * * * * * * * * * * funcval casted: %socket.shutdown = load void (%std.socket.Socket*, i32)*, void (%std.socket.Socket*, i32)** %"socket.shutdown@vtbl", align 8 * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * %55 = load %std.socket.Socket*, %std.socket.Socket** %socket * * * * * * * * * * * * * * Function type: nothrow @nogc @trusted void(SocketShutdown how) * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * IntegerExp::toElem: cast(SocketShutdown)2 @ SocketShutdown * * * * * * * * * * * * * * * * IntegerExp::toConstElem: cast(SocketShutdown)2 @ SocketShutdown * * * * * * * * * * * * * * * * * Building type: SocketShutdown * * * * * * * * * * * * * * * * * value = i32 2 * * * * * * * * * * * ExpStatement::toIR(): src/client/client.d(128) * * * * * * * * * * * * CallExp::toElem: socket.close() @ void * * * * * * * * * * * * * DotVarExp::toElem: socket.close @ nothrow @nogc @trusted void() * * * * * * * * * * * * * * VarExp::toElem: socket @ std.socket.Socket * * * * * * * * * * * * * * * DtoSymbolAddress ('socket' of type 'std.socket.Socket') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * vthis: %56 = load %std.socket.Socket*, %std.socket.Socket** %socket * * * * * * * * * * * * * * funcval: %59 = load void (%std.socket.Socket*)*, void (%std.socket.Socket*)** %"socket.close@vtbl", align 8 * * * * * * * * * * * * * * isMember = this is: std.socket.Socket * * * * * * * * * * * * * * DtoFunctionType(nothrow @nogc @trusted void()) * * * * * * * * * * * * * * funcval casted: %socket.close = load void (%std.socket.Socket*)*, void (%std.socket.Socket*)** %"socket.close@vtbl", align 8 * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * %59 = load %std.socket.Socket*, %std.socket.Socket** %socket * * * * * * * * * * * * * * Function type: nothrow @nogc @trusted void() * * * * * * * * * ReturnStatement::toIR(): src/client/client.d(129) * * * * * * * * * * CondExp::toElem: sendRequest(socket, request) ? 0 : 1 @ int * * * * * * * * * * * CallExp::toElem: sendRequest(socket, request) @ bool * * * * * * * * * * * * VarExp::toElem: sendRequest @ bool(Socket socket, AutocompleteRequest request) * * * * * * * * * * * * * DtoSymbolAddress ('sendRequest' of type 'bool(Socket socket, AutocompleteRequest request)') * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * Function type: bool(Socket socket, AutocompleteRequest request) * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * VarExp::toElem: socket @ std.socket.Socket * * * * * * * * * * * * * * * DtoSymbolAddress ('socket' of type 'std.socket.Socket') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * VarExp::toElem: request @ AutocompleteRequest * * * * * * * * * * * * * * * DtoSymbolAddress ('request' of type 'AutocompleteRequest') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * IntegerExp::toElem: 0 @ int * * * * * * * * * * * * IntegerExp::toConstElem: 0 @ int * * * * * * * * * * * * * value = i32 0 * * * * * * * * * * * IntegerExp::toElem: 1 @ int * * * * * * * * * * * * IntegerExp::toConstElem: 1 @ int * * * * * * * * * * * * * value = i32 1 * * * * * * * * * * return value is '0x12db6478' * * * * * * IfStatement::toIR(): src/client/client.d(131) * * * * * * * CmpExp::toElem: importPaths.length > 0LU @ bool * * * * * * * * ArrayLengthExp::toElem: importPaths.length @ ulong * * * * * * * * * VarExp::toElem: importPaths @ string[] * * * * * * * * * * DtoSymbolAddress ('importPaths' of type 'string[]') * * * * * * * * * * * a normal variable * * * * * * * * * DtoArrayLen * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * value = i64 0 * * * * * * * * type 1: %.len29 = load i64, i64* %45 * * * * * * * * type 2: i64 0 * * * * * * * ScopeStatement::toIR(): src/client/client.d(132) * * * * * * * * CompoundStatement::toIR(): src/client/client.d(132) * * * * * * * * * ExpStatement::toIR(): src/client/client.d(133) * * * * * * * * * * OrAssignExp::toElem: cast(int)request.kind |= 4 @ RequestKind * * * * * * * * * * * Caching l-value of cast(int)request.kind |= 4 => request.kind * * * * * * * * * * * * DotVarExp::toElem: request.kind @ RequestKind * * * * * * * * * * * * * VarExp::toElem: request @ AutocompleteRequest * * * * * * * * * * * * * * DtoSymbolAddress ('request' of type 'AutocompleteRequest') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * Indexing aggregate field common.messages.AutocompleteRequest.kind: * * * * * * * * * * * * * * Building type: RequestKind * * * * * * * * * * * * * * Value: %72 = getelementptr %common.messages.AutocompleteRequest, %common.messages.AutocompleteRequest* %request, i32 0, i32 1 * * * * * * * * * * * OrExp::toElem: cast(int)request.kind | 4 @ int * * * * * * * * * * * * CastExp::toElem: cast(int)request.kind @ int * * * * * * * * * * * * * DotVarExp::toElem: request.kind @ RequestKind * * * * * * * * * * * * * * using cached lvalue * * * * * * * * * * * * * Casting from 'ushort' to 'int' * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * IntegerExp::toElem: 4 @ int * * * * * * * * * * * * * IntegerExp::toConstElem: 4 @ int * * * * * * * * * * * * * * value = i32 4 * * * * * * * * * * * Casting from 'int' to 'RequestKind' * * * * * * * * * * * * Building type: RequestKind * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * lhs: %72 = getelementptr %common.messages.AutocompleteRequest, %common.messages.AutocompleteRequest* %request, i32 0, i32 1 * * * * * * * * * * * * rhs: %76 = trunc i32 %75 to i16 * * * * * * * * * ExpStatement::toIR(): src/client/client.d(134) * * * * * * * * * * AssignExp::toElem: request.importPaths = array(map(importPaths)) | (string[])(string[] = string[]) * * * * * * * * * * * DotVarExp::toElem: request.importPaths @ string[] * * * * * * * * * * * * VarExp::toElem: request @ AutocompleteRequest * * * * * * * * * * * * * DtoSymbolAddress ('request' of type 'AutocompleteRequest') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * Indexing aggregate field common.messages.AutocompleteRequest.importPaths: * * * * * * * * * * * * * Value: %77 = getelementptr %common.messages.AutocompleteRequest, %common.messages.AutocompleteRequest* %request, i32 0, i32 3 * * * * * * * * * * * CallExp::toElem: array(map(importPaths)) @ string[] * * * * * * * * * * * * VarExp::toElem: array @ pure @safe string[](MapResult!(__lambda4, string[]) r) * * * * * * * * * * * * * DtoSymbolAddress ('array' of type 'pure @safe string[](MapResult!(__lambda4, string[]) r)') * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * Building type: pure @safe string[](MapResult!(__lambda4, string[]) r) * * * * * * * * * * * * * * DtoFunctionType(pure @safe string[](MapResult!(__lambda4, string[]) r)) * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * Final function type: { i64, { i64, i8* }* } (%"client.client.main.MapResult!(__lambda4, string[]).MapResult"*) * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * Function type: pure @safe string[](MapResult!(__lambda4, string[]) r) * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * CallExp::toElem: map(importPaths) @ MapResult!(__lambda4, string[]) * * * * * * * * * * * * * * * VarExp::toElem: map @ pure nothrow @nogc @safe MapResult!(__lambda4, string[])(string[] r) * * * * * * * * * * * * * * * * DtoSymbolAddress ('map' of type 'pure nothrow @nogc @safe MapResult!(__lambda4, string[])(string[] r)') * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe MapResult!(__lambda4, string[])(string[] r)) * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * Final function type: void (%"client.client.main.MapResult!(__lambda4, string[]).MapResult"*, i8*, { i64, { i64, i8* }* }) * * * * * * * * * * * * * * * * * DtoResolveFunction(client.client.main.map!((a) => absolutePath(a)).map!(string[]).map): /usr/include/dlang/ldc/std/algorithm/iteration.d(431) * * * * * * * * * * * * * * * * * * DtoDeclareFunction(client.client.main.map!((a) => absolutePath(a)).map!(string[]).map): /usr/include/dlang/ldc/std/algorithm/iteration.d(431) * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe MapResult!(__lambda4, string[])(string[] r)) * * * * * * * * * * * * * * * * * * * func = declare void @_D3std9algorithm9iteration46__T3mapS356client6client4mainFAAyaZ9__lambda4Z13__T3mapTAAyaZ3mapMFNaNbNiNfAAyaZS3std9algorithm9iteration57__T9MapResultS356client6client4mainFAAyaZ9__lambda4TAAyaZ9MapResult(%"client.client.main.MapResult!(__lambda4, string[]).MapResult"*, i8*, { i64, { i64, i8* }* }) * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * Building type: pure nothrow @nogc @safe MapResult!(__lambda4, string[])(string[] r) * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe MapResult!(__lambda4, string[])(string[] r)) * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * Final function type: void (%"client.client.main.MapResult!(__lambda4, string[]).MapResult"*, { i64, { i64, i8* }* }) * * * * * * * * * * * * * * * * DtoNestedContext for client.client.main.map!((a) => absolutePath(a)).map!(string[]).map * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for client.client.main.map!((a) => absolutePath(a)).map!(string[]).map * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for D main * * * * * * * * * * * * * * * * * Parent frame is from main * * * * * * * * * * * * * * * * * Current function is main * * * * * * * * * * * * * * * * * Context is from main * * * * * * * * * * * * * * * * * Needed depth: 0 * * * * * * * * * * * * * * * * * Context depth: 0 * * * * * * * * * * * * * * * * * Calling sibling function or directly nested function * * * * * * * * * * * * * * * * * result = %.frame = alloca %nest.main, align 8 * * * * * * * * * * * * * * * * * of type %nest.main* * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * Arguments so far: (2) * * * * * * * * * * * * * * * * * %.rettmp33 = alloca %"client.client.main.MapResult!(__lambda4, string[]).MapResult", align 8 * * * * * * * * * * * * * * * * * %78 = bitcast %nest.main* %.frame to i8* * * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @safe MapResult!(__lambda4, string[])(string[] r) * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * VarExp::toElem: importPaths @ string[] * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('importPaths' of type 'string[]') * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * SetArray * * * * * * * * * IfStatement::toIR(): src/client/client.d(135) * * * * * * * * * * EqualExp::toElem: cursorPos == 18446744073709551615LU @ bool * * * * * * * * * * * VarExp::toElem: cursorPos @ ulong * * * * * * * * * * * * DtoSymbolAddress ('cursorPos' of type 'ulong') * * * * * * * * * * * * * a normal variable * * * * * * * * * * * IntegerExp::toElem: 18446744073709551615LU @ ulong * * * * * * * * * * * * IntegerExp::toConstElem: 18446744073709551615LU @ ulong * * * * * * * * * * * * * value = i64 -1 * * * * * * * * * * * integral or pointer or interface * * * * * * * * * * * lv: %83 = load i64, i64* %cursorPos * * * * * * * * * * * rv: i64 -1 * * * * * * * * * * ScopeStatement::toIR(): src/client/client.d(136) * * * * * * * * * * * CompoundStatement::toIR(): src/client/client.d(136) * * * * * * * * * * * * ExpStatement::toIR(): src/client/client.d(137) * * * * * * * * * * * * * DeclarationExp::toElem: Socket socket = createSocket(socketFile, port); | T=void * * * * * * * * * * * * * * DtoDeclarationExp: socket * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = std.socket.Socket) * * * * * * * * * * * * * * * * llvm value for decl: %socket38 = alloca %std.socket.Socket*, align 8 * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * AssignExp::toElem: socket = createSocket(socketFile, port) | (std.socket.Socket)(std.socket.Socket = std.socket.Socket) * * * * * * * * * * * * * * * * * VarExp::toElem: socket @ std.socket.Socket * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('socket' of type 'std.socket.Socket') * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * CallExp::toElem: createSocket(socketFile, port) @ std.socket.Socket * * * * * * * * * * * * * * * * * * VarExp::toElem: createSocket @ Socket(string socketFile, ushort port) * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('createSocket' of type 'Socket(string socketFile, ushort port)') * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * Function type: Socket(string socketFile, ushort port) * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * VarExp::toElem: socketFile @ string * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('socketFile' of type 'string') * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * VarExp::toElem: port @ ushort * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('port' of type 'ushort') * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * l : %socket38 = alloca %std.socket.Socket*, align 8 * * * * * * * * * * * * * * * * * * r : %87 = call %std.socket.Socket* @_D6client6client12createSocketFAyatZC3std6socket6Socket(i16 zeroext %86, { i64, i8* } %85) * * * * * * * * * * * * TryFinallyStatement::toIR(): * * * * * * * * * * * * * ScopeStatement::toIR(): src/client/client.d(138) * * * * * * * * * * * * * * CompoundStatement::toIR(): src/client/client.d(138) * * * * * * * * * * * * * * * ExpStatement::toIR(): src/client/client.d(138) * * * * * * * * * * * * * * * * CallExp::toElem: socket.shutdown(cast(SocketShutdown)2) @ void * * * * * * * * * * * * * * * * * DotVarExp::toElem: socket.shutdown @ nothrow @nogc @trusted void(SocketShutdown how) * * * * * * * * * * * * * * * * * * VarExp::toElem: socket @ std.socket.Socket * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('socket' of type 'std.socket.Socket') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * vthis: %88 = load %std.socket.Socket*, %std.socket.Socket** %socket38 * * * * * * * * * * * * * * * * * * funcval: %91 = load void (%std.socket.Socket*, i32)*, void (%std.socket.Socket*, i32)** %"socket.shutdown@vtbl40", align 8 * * * * * * * * * * * * * * * * * * isMember = this is: std.socket.Socket * * * * * * * * * * * * * * * * * * DtoFunctionType(nothrow @nogc @trusted void(SocketShutdown how)) * * * * * * * * * * * * * * * * * * funcval casted: %socket.shutdown41 = load void (%std.socket.Socket*, i32)*, void (%std.socket.Socket*, i32)** %"socket.shutdown@vtbl40", align 8 * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * * %91 = load %std.socket.Socket*, %std.socket.Socket** %socket38 * * * * * * * * * * * * * * * * * * Function type: nothrow @nogc @trusted void(SocketShutdown how) * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: cast(SocketShutdown)2 @ SocketShutdown * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: cast(SocketShutdown)2 @ SocketShutdown * * * * * * * * * * * * * * * * * * * * * Building type: SocketShutdown * * * * * * * * * * * * * * * * * * * * * value = i32 2 * * * * * * * * * * * * * * * ExpStatement::toIR(): src/client/client.d(138) * * * * * * * * * * * * * * * * CallExp::toElem: socket.close() @ void * * * * * * * * * * * * * * * * * DotVarExp::toElem: socket.close @ nothrow @nogc @trusted void() * * * * * * * * * * * * * * * * * * VarExp::toElem: socket @ std.socket.Socket * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('socket' of type 'std.socket.Socket') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * vthis: %92 = load %std.socket.Socket*, %std.socket.Socket** %socket38 * * * * * * * * * * * * * * * * * * funcval: %95 = load void (%std.socket.Socket*)*, void (%std.socket.Socket*)** %"socket.close@vtbl42", align 8 * * * * * * * * * * * * * * * * * * isMember = this is: std.socket.Socket * * * * * * * * * * * * * * * * * * DtoFunctionType(nothrow @nogc @trusted void()) * * * * * * * * * * * * * * * * * * funcval casted: %socket.close43 = load void (%std.socket.Socket*)*, void (%std.socket.Socket*)** %"socket.close@vtbl42", align 8 * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * * %95 = load %std.socket.Socket*, %std.socket.Socket** %socket38 * * * * * * * * * * * * * * * * * * Function type: nothrow @nogc @trusted void() * * * * * * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * * * * * * IfStatement::toIR(): src/client/client.d(139) * * * * * * * * * * * * * * * NotExp::toElem: !sendRequest(socket, request) @ bool * * * * * * * * * * * * * * * * CallExp::toElem: sendRequest(socket, request) @ bool * * * * * * * * * * * * * * * * * VarExp::toElem: sendRequest @ bool(Socket socket, AutocompleteRequest request) * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('sendRequest' of type 'bool(Socket socket, AutocompleteRequest request)') * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * Function type: bool(Socket socket, AutocompleteRequest request) * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * VarExp::toElem: socket @ std.socket.Socket * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('socket' of type 'std.socket.Socket') * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * VarExp::toElem: request @ AutocompleteRequest * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('request' of type 'AutocompleteRequest') * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * ReturnStatement::toIR(): src/client/client.d(140) * * * * * * * * * * * * * * * * IntegerExp::toElem: 1 @ int * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1 @ int * * * * * * * * * * * * * * * * * * value = i32 1 * * * * * * * * * * * * * * * * return value is '0x120e3000' * * * * * * * * * * * * * * ReturnStatement::toIR(): src/client/client.d(141) * * * * * * * * * * * * * * * IntegerExp::toElem: 0 @ int * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0 @ int * * * * * * * * * * * * * * * * * value = i32 0 * * * * * * * * * * * * * * * return value is '0x120e1350' * * * * * * * IfStatement::toIR(): src/client/client.d(144) * * * * * * * * VarExp::toElem: listImports @ bool * * * * * * * * * DtoSymbolAddress ('listImports' of type 'bool') * * * * * * * * * * a normal variable * * * * * * * * ScopeStatement::toIR(): src/client/client.d(145) * * * * * * * * * CompoundStatement::toIR(): src/client/client.d(145) * * * * * * * * * * ExpStatement::toIR(): src/client/client.d(146) * * * * * * * * * * * OrAssignExp::toElem: cast(int)request.kind |= 256 @ RequestKind * * * * * * * * * * * * Caching l-value of cast(int)request.kind |= 256 => request.kind * * * * * * * * * * * * * DotVarExp::toElem: request.kind @ RequestKind * * * * * * * * * * * * * * VarExp::toElem: request @ AutocompleteRequest * * * * * * * * * * * * * * * DtoSymbolAddress ('request' of type 'AutocompleteRequest') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * Indexing aggregate field common.messages.AutocompleteRequest.kind: * * * * * * * * * * * * * * * Building type: RequestKind * * * * * * * * * * * * * * * Value: %105 = getelementptr %common.messages.AutocompleteRequest, %common.messages.AutocompleteRequest* %request, i32 0, i32 1 * * * * * * * * * * * * OrExp::toElem: cast(int)request.kind | 256 @ int * * * * * * * * * * * * * CastExp::toElem: cast(int)request.kind @ int * * * * * * * * * * * * * * DotVarExp::toElem: request.kind @ RequestKind * * * * * * * * * * * * * * * using cached lvalue * * * * * * * * * * * * * * Casting from 'ushort' to 'int' * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * * IntegerExp::toElem: 256 @ int * * * * * * * * * * * * * * IntegerExp::toConstElem: 256 @ int * * * * * * * * * * * * * * * value = i32 256 * * * * * * * * * * * * Casting from 'int' to 'RequestKind' * * * * * * * * * * * * * Building type: RequestKind * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * lhs: %105 = getelementptr %common.messages.AutocompleteRequest, %common.messages.AutocompleteRequest* %request, i32 0, i32 1 * * * * * * * * * * * * * rhs: %109 = trunc i32 %108 to i16 * * * * * * * * * * ExpStatement::toIR(): src/client/client.d(147) * * * * * * * * * * * DeclarationExp::toElem: Socket socket = createSocket(socketFile, port); | T=void * * * * * * * * * * * * DtoDeclarationExp: socket * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * DtoVarDeclaration(vdtype = std.socket.Socket) * * * * * * * * * * * * * * llvm value for decl: %socket51 = alloca %std.socket.Socket*, align 8 * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * AssignExp::toElem: socket = createSocket(socketFile, port) | (std.socket.Socket)(std.socket.Socket = std.socket.Socket) * * * * * * * * * * * * * * * VarExp::toElem: socket @ std.socket.Socket * * * * * * * * * * * * * * * * DtoSymbolAddress ('socket' of type 'std.socket.Socket') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * CallExp::toElem: createSocket(socketFile, port) @ std.socket.Socket * * * * * * * * * * * * * * * * VarExp::toElem: createSocket @ Socket(string socketFile, ushort port) * * * * * * * * * * * * * * * * * DtoSymbolAddress ('createSocket' of type 'Socket(string socketFile, ushort port)') * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * Function type: Socket(string socketFile, ushort port) * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * VarExp::toElem: socketFile @ string * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('socketFile' of type 'string') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * VarExp::toElem: port @ ushort * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('port' of type 'ushort') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * l : %socket51 = alloca %std.socket.Socket*, align 8 * * * * * * * * * * * * * * * * r : %112 = call %std.socket.Socket* @_D6client6client12createSocketFAyatZC3std6socket6Socket(i16 zeroext %111, { i64, i8* } %110) * * * * * * * * * * TryFinallyStatement::toIR(): * * * * * * * * * * * ScopeStatement::toIR(): src/client/client.d(148) * * * * * * * * * * * * CompoundStatement::toIR(): src/client/client.d(148) * * * * * * * * * * * * * ExpStatement::toIR(): src/client/client.d(148) * * * * * * * * * * * * * * CallExp::toElem: socket.shutdown(cast(SocketShutdown)2) @ void * * * * * * * * * * * * * * * DotVarExp::toElem: socket.shutdown @ nothrow @nogc @trusted void(SocketShutdown how) * * * * * * * * * * * * * * * * VarExp::toElem: socket @ std.socket.Socket * * * * * * * * * * * * * * * * * DtoSymbolAddress ('socket' of type 'std.socket.Socket') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * vthis: %113 = load %std.socket.Socket*, %std.socket.Socket** %socket51 * * * * * * * * * * * * * * * * funcval: %116 = load void (%std.socket.Socket*, i32)*, void (%std.socket.Socket*, i32)** %"socket.shutdown@vtbl53", align 8 * * * * * * * * * * * * * * * * isMember = this is: std.socket.Socket * * * * * * * * * * * * * * * * DtoFunctionType(nothrow @nogc @trusted void(SocketShutdown how)) * * * * * * * * * * * * * * * * funcval casted: %socket.shutdown54 = load void (%std.socket.Socket*, i32)*, void (%std.socket.Socket*, i32)** %"socket.shutdown@vtbl53", align 8 * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * %116 = load %std.socket.Socket*, %std.socket.Socket** %socket51 * * * * * * * * * * * * * * * * Function type: nothrow @nogc @trusted void(SocketShutdown how) * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * IntegerExp::toElem: cast(SocketShutdown)2 @ SocketShutdown * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: cast(SocketShutdown)2 @ SocketShutdown * * * * * * * * * * * * * * * * * * * Building type: SocketShutdown * * * * * * * * * * * * * * * * * * * value = i32 2 * * * * * * * * * * * * * ExpStatement::toIR(): src/client/client.d(148) * * * * * * * * * * * * * * CallExp::toElem: socket.close() @ void * * * * * * * * * * * * * * * DotVarExp::toElem: socket.close @ nothrow @nogc @trusted void() * * * * * * * * * * * * * * * * VarExp::toElem: socket @ std.socket.Socket * * * * * * * * * * * * * * * * * DtoSymbolAddress ('socket' of type 'std.socket.Socket') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * vthis: %117 = load %std.socket.Socket*, %std.socket.Socket** %socket51 * * * * * * * * * * * * * * * * funcval: %120 = load void (%std.socket.Socket*)*, void (%std.socket.Socket*)** %"socket.close@vtbl55", align 8 * * * * * * * * * * * * * * * * isMember = this is: std.socket.Socket * * * * * * * * * * * * * * * * DtoFunctionType(nothrow @nogc @trusted void()) * * * * * * * * * * * * * * * * funcval casted: %socket.close56 = load void (%std.socket.Socket*)*, void (%std.socket.Socket*)** %"socket.close@vtbl55", align 8 * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * %120 = load %std.socket.Socket*, %std.socket.Socket** %socket51 * * * * * * * * * * * * * * * * Function type: nothrow @nogc @trusted void() * * * * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * * * * ExpStatement::toIR(): src/client/client.d(149) * * * * * * * * * * * * * CallExp::toElem: sendRequest(socket, request) @ bool * * * * * * * * * * * * * * VarExp::toElem: sendRequest @ bool(Socket socket, AutocompleteRequest request) * * * * * * * * * * * * * * * DtoSymbolAddress ('sendRequest' of type 'bool(Socket socket, AutocompleteRequest request)') * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * Function type: bool(Socket socket, AutocompleteRequest request) * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * VarExp::toElem: socket @ std.socket.Socket * * * * * * * * * * * * * * * * * DtoSymbolAddress ('socket' of type 'std.socket.Socket') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * VarExp::toElem: request @ AutocompleteRequest * * * * * * * * * * * * * * * * * DtoSymbolAddress ('request' of type 'AutocompleteRequest') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * ExpStatement::toIR(): src/client/client.d(150) * * * * * * * * * * * * * DeclarationExp::toElem: AutocompleteResponse response = getResponse(socket); | T=void * * * * * * * * * * * * * * DtoDeclarationExp: response * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = AutocompleteResponse) * * * * * * * * * * * * * * * * VarExp::toElem: getResponse @ AutocompleteResponse(Socket socket) * * * * * * * * * * * * * * * * * DtoSymbolAddress ('getResponse' of type 'AutocompleteResponse(Socket socket)') * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * %response = alloca %common.messages.AutocompleteResponse, align 8 * * * * * * * * * * * * * * * * * Function type: AutocompleteResponse(Socket socket) * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * VarExp::toElem: socket @ std.socket.Socket * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('socket' of type 'std.socket.Socket') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * ExpStatement::toIR(): src/client/client.d(151) * * * * * * * * * * * * * CallExp::toElem: printImportList(response) @ void * * * * * * * * * * * * * * VarExp::toElem: printImportList @ void(const(AutocompleteResponse) response) * * * * * * * * * * * * * * * DtoSymbolAddress ('printImportList' of type 'void(const(AutocompleteResponse) response)') * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * DtoFunctionType(void(const(AutocompleteResponse) response)) * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * Final function type: void (%common.messages.AutocompleteResponse*) * * * * * * * * * * * * * * * * DtoResolveFunction(client.client.printImportList): src/client/client.d(367) * * * * * * * * * * * * * * * * * DtoDeclareFunction(client.client.printImportList): src/client/client.d(367) * * * * * * * * * * * * * * * * * * DtoFunctionType(void(const(AutocompleteResponse) response)) * * * * * * * * * * * * * * * * * * func = declare void @_D6client6client15printImportListFxS6common8messages20AutocompleteResponseZv(%common.messages.AutocompleteResponse*) * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * Building type: void(const(AutocompleteResponse) response) * * * * * * * * * * * * * * * * DtoFunctionType(void(const(AutocompleteResponse) response)) * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * Final function type: void (%common.messages.AutocompleteResponse*) * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * Function type: void(const(AutocompleteResponse) response) * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * VarExp::toElem: response @ const(AutocompleteResponse) * * * * * * * * * * * * * * * * * DtoSymbolAddress ('response' of type 'AutocompleteResponse') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * ReturnStatement::toIR(): src/client/client.d(152) * * * * * * * * * * * * * IntegerExp::toElem: 0 @ int * * * * * * * * * * * * * * IntegerExp::toConstElem: 0 @ int * * * * * * * * * * * * * * * value = i32 0 * * * * * * * * * * * * * return value is '0x120e1350' * * * * * * * * IfStatement::toIR(): src/client/client.d(154) * * * * * * * * * AndAndExp::toElem: search == null && cursorPos == 18446744073709551615LU @ bool * * * * * * * * * * EqualExp::toElem: search == null @ bool * * * * * * * * * * * VarExp::toElem: search @ string * * * * * * * * * * * * DtoSymbolAddress ('search' of type 'string') * * * * * * * * * * * * * a normal variable * * * * * * * * * * * NullExp::toElem(type=string): null * * * * * * * * * * * * NullExp::toConstElem(type=string): null * * * * * * * * * * * static or dynamic array * * * * * * * * * * * comparing arrays * * * * * * * * * * * casting to dynamic arrays * * * * * * * * * * * DtoCastArray * * * * * * * * * * * * from array or sarray * * * * * * * * * * * * to array * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * isslice * * * * * * * * * * * DtoCastArray * * * * * * * * * * * * from array or sarray * * * * * * * * * * * * to array * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * isslice * * * * * * * * * * * DtoTypeInfoOf(type = 'string', base='1') * * * * * * * * * * * * Type::getTypeInfo(): string * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(string)) * * * * * * * * * * EqualExp::toElem: cursorPos == 18446744073709551615LU @ bool * * * * * * * * * * * VarExp::toElem: cursorPos @ ulong * * * * * * * * * * * * DtoSymbolAddress ('cursorPos' of type 'ulong') * * * * * * * * * * * * * a normal variable * * * * * * * * * * * IntegerExp::toElem: 18446744073709551615LU @ ulong * * * * * * * * * * * * IntegerExp::toConstElem: 18446744073709551615LU @ ulong * * * * * * * * * * * * * value = i64 -1 * * * * * * * * * * * integral or pointer or interface * * * * * * * * * * * lv: %135 = load i64, i64* %cursorPos * * * * * * * * * * * rv: i64 -1 * * * * * * * * * ScopeStatement::toIR(): src/client/client.d(155) * * * * * * * * * * CompoundStatement::toIR(): src/client/client.d(155) * * * * * * * * * * * ExpStatement::toIR(): src/client/client.d(157) * * * * * * * * * * * * CallExp::toElem: printHelp(args[0]) @ void * * * * * * * * * * * * * VarExp::toElem: printHelp @ void(string programName) * * * * * * * * * * * * * * DtoSymbolAddress ('printHelp' of type 'void(string programName)') * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * Function type: void(string programName) * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * IndexExp::toElem: args[0] @ string * * * * * * * * * * * * * * * * VarExp::toElem: args @ string[] * * * * * * * * * * * * * * * * * DtoSymbolAddress ('args' of type 'string[]') * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * type: string[] * * * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * ReturnStatement::toIR(): src/client/client.d(158) * * * * * * * * * * * * IntegerExp::toElem: 1 @ int * * * * * * * * * * * * * IntegerExp::toConstElem: 1 @ int * * * * * * * * * * * * * * value = i32 1 * * * * * * * * * * * * return value is '0x120e3000' * * * * ExpStatement::toIR(): src/client/client.d(162) * * * * * DeclarationExp::toElem: immutable immutable(bool) usingStdin = args.length <= 1LU; | T=void * * * * * * DtoDeclarationExp: usingStdin * * * * * * * VarDeclaration * * * * * * * DtoVarDeclaration(vdtype = immutable(bool)) * * * * * * * * llvm value for decl: %usingStdin = alloca i8, align 1 * * * * * * * * expression initializer * * * * * * * * AssignExp::toElem: usingStdin = args.length <= 1LU | (immutable(bool))(immutable(bool) = immutable(bool)) * * * * * * * * * VarExp::toElem: usingStdin @ immutable(bool) * * * * * * * * * * DtoSymbolAddress ('usingStdin' of type 'immutable(bool)') * * * * * * * * * * * a normal variable * * * * * * * * * CmpExp::toElem: args.length <= 1LU @ immutable(bool) * * * * * * * * * * ArrayLengthExp::toElem: args.length @ ulong * * * * * * * * * * * VarExp::toElem: args @ string[] * * * * * * * * * * * * DtoSymbolAddress ('args' of type 'string[]') * * * * * * * * * * * * * function param * * * * * * * * * * * * * type: string[] * * * * * * * * * * * DtoArrayLen * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * value = i64 1 * * * * * * * * * * type 1: %.len67 = load i64, i64* %41 * * * * * * * * * * type 2: i64 1 * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * DtoAssign() * * * * ExpStatement::toIR(): src/client/client.d(163) * * * * * DeclarationExp::toElem: string fileName = usingStdin ? "stdin" : args[1]; | T=void * * * * * * DtoDeclarationExp: fileName * * * * * * * VarDeclaration * * * * * * * DtoVarDeclaration(vdtype = string) * * * * * * * * llvm value for decl: %fileName = alloca { i64, i8* }, align 8 * * * * * * * * expression initializer * * * * * * * * AssignExp::toElem: fileName = usingStdin ? "stdin" : args[1] | (string)(string = string) * * * * * * * * * VarExp::toElem: fileName @ string * * * * * * * * * * DtoSymbolAddress ('fileName' of type 'string') * * * * * * * * * * * a normal variable * * * * * * * * * CondExp::toElem: usingStdin ? "stdin" : args[1] @ string * * * * * * * * * * VarExp::toElem: usingStdin @ immutable(bool) * * * * * * * * * * * DtoSymbolAddress ('usingStdin' of type 'immutable(bool)') * * * * * * * * * * * * a normal variable * * * * * * * * * * Casting from 'immutable(bool)' to 'bool' * * * * * * * * * * StringExp::toElem: "stdin" @ string * * * * * * * * * * * type: [6 x i8] * * * * * * * * * * * init: [6 x i8] c"stdin\00" * * * * * * * * * * IndexExp::toElem: args[1] @ string * * * * * * * * * * * VarExp::toElem: args @ string[] * * * * * * * * * * * * DtoSymbolAddress ('args' of type 'string[]') * * * * * * * * * * * * * function param * * * * * * * * * * * * * type: string[] * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * DtoArrayPtr * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * DtoAssign() * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * SetArray * * * * IfStatement::toIR(): src/client/client.d(164) * * * * * AndAndExp::toElem: !usingStdin && !exists(args[1]) @ bool * * * * * * NotExp::toElem: !usingStdin @ bool * * * * * * * VarExp::toElem: usingStdin @ immutable(bool) * * * * * * * * DtoSymbolAddress ('usingStdin' of type 'immutable(bool)') * * * * * * * * * a normal variable * * * * * * * Casting from 'immutable(bool)' to 'bool' * * * * * * NotExp::toElem: !exists(args[1]) @ bool * * * * * * * CallExp::toElem: exists(args[1]) @ bool * * * * * * * * VarExp::toElem: exists @ nothrow @nogc @trusted bool(const(char[]) name) * * * * * * * * * DtoSymbolAddress ('exists' of type 'nothrow @nogc @trusted bool(const(char[]) name)') * * * * * * * * * * FuncDeclaration * * * * * * * * * * DtoFunctionType(nothrow @nogc @trusted bool(const(char[]) name)) * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * Final function type: i1 ({ i64, i8* }) * * * * * * * * * * DtoResolveFunction(std.file.exists): /usr/include/dlang/ldc/std/file.d(964) * * * * * * * * * * * DtoDeclareFunction(std.file.exists): /usr/include/dlang/ldc/std/file.d(964) * * * * * * * * * * * * DtoFunctionType(nothrow @nogc @trusted bool(const(char[]) name)) * * * * * * * * * * * * func = declare i1 @_D3std4file6existsFNbNiNexAaZb({ i64, i8* }) * * * * * * * * DtoCallFunction() * * * * * * * * * Building type: nothrow @nogc @trusted bool(const(char[]) name) * * * * * * * * * * DtoFunctionType(nothrow @nogc @trusted bool(const(char[]) name)) * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * Final function type: i1 ({ i64, i8* }) * * * * * * * * * doing normal arguments * * * * * * * * * Arguments so far: (0) * * * * * * * * * Function type: nothrow @nogc @trusted bool(const(char[]) name) * * * * * * * * * DtoArgument * * * * * * * * * * IndexExp::toElem: args[1] @ const(char[]) * * * * * * * * * * * VarExp::toElem: args @ string[] * * * * * * * * * * * * DtoSymbolAddress ('args' of type 'string[]') * * * * * * * * * * * * * function param * * * * * * * * * * * * * type: string[] * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * DtoArrayPtr * * * * * ScopeStatement::toIR(): src/client/client.d(165) * * * * * * CompoundStatement::toIR(): src/client/client.d(165) * * * * * * * ExpStatement::toIR(): src/client/client.d(166) * * * * * * * * CallExp::toElem: stderr.writefln("%s does not exist", args[1]) @ void * * * * * * * * * DotVarExp::toElem: stderr.writefln @ @safe void(const(char[]) fmt, string _param_1) * * * * * * * * * * VarExp::toElem: stderr @ File * * * * * * * * * * * DtoSymbolAddress ('stderr' of type 'File') * * * * * * * * * * * * a normal variable * * * * * * * * * * * * DtoResolveVariable(std.stdio.stderr) * * * * * * * * * * * * * data segment * * * * * * * * * * * * * parent: stdio (module) * * * * * * * * * * * * * Building type: File * * * * * * * * * * * * * * Building struct type std.stdio.File @ /usr/include/dlang/ldc/std/stdio.d(426) * * * * * * * * * * * * * * * adding default initializer for struct field _p * * * * * * * * * * * * * * * adding default initializer for struct field _name * * * * * * * * * * * * * * * Building type: Impl* * * * * * * * * * * * * * * * * Building type: Impl * * * * * * * * * * * * * * * * * Building struct type std.stdio.File.Impl @ /usr/include/dlang/ldc/std/stdio.d(431) * * * * * * * * * * * * * * * * * * adding explicit initializer for struct field handle * * * * * * * * * * * * * * * * * * adding explicit initializer for struct field refs * * * * * * * * * * * * * * * * * * adding default initializer for struct field isPopened * * * * * * * * * * * * * * * * * * final struct type: %std.stdio.File.Impl = type { %core.stdc.stdio._IO_FILE*, i32, i8, [3 x i8] } * * * * * * * * * * * * * * * final struct type: %std.stdio.File = type { %std.stdio.File.Impl*, { i64, i8* } } * * * * * * * * * * * * * @_D3std5stdio6stderrS3std5stdio4File = external global %std.stdio.File, align 8 * * * * * * * * * * isMember = this is: File * * * * * * * * * * DtoFunctionType(@safe void(const(char[]) fmt, string _param_1)) * * * * * * * * * * * Building type: File* * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * Final function type: void (%std.stdio.File*, { i64, i8* }, { i64, i8* }) * * * * * * * * * * DtoResolveFunction(std.stdio.File.writefln!(char, string).writefln): /usr/include/dlang/ldc/std/stdio.d(1364) * * * * * * * * * * * DtoDeclareFunction(std.stdio.File.writefln!(char, string).writefln): /usr/include/dlang/ldc/std/stdio.d(1364) * * * * * * * * * * * * isMember = this is: File * * * * * * * * * * * * DtoFunctionType(@safe void(const(char[]) fmt, string _param_1)) * * * * * * * * * * * * func = declare void @_D3std5stdio4File19__T8writeflnTaTAyaZ8writeflnMFNfxAaAyaZv(%std.stdio.File*, { i64, i8* }, { i64, i8* }) * * * * * * * * * DtoCallFunction() * * * * * * * * * * Building type: @safe void(const(char[]) fmt, string _param_1) * * * * * * * * * * * DtoFunctionType(@safe void(const(char[]) fmt, string _param_1)) * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * Final function type: void ({ i64, i8* }, { i64, i8* }) * * * * * * * * * * doing normal arguments * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * @_D3std5stdio6stderrS3std5stdio4File = external global %std.stdio.File, align 8 * * * * * * * * * * Function type: @safe void(const(char[]) fmt, string _param_1) * * * * * * * * * * DtoArgument * * * * * * * * * * * StringExp::toElem: "%s does not exist" @ const(char[]) * * * * * * * * * * * * type: [18 x i8] * * * * * * * * * * * * init: [18 x i8] c"%s does not exist\00" * * * * * * * * * * DtoArgument * * * * * * * * * * * IndexExp::toElem: args[1] @ string * * * * * * * * * * * * VarExp::toElem: args @ string[] * * * * * * * * * * * * * DtoSymbolAddress ('args' of type 'string[]') * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * type: string[] * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * DtoArrayPtr * * * * * * * ReturnStatement::toIR(): src/client/client.d(167) * * * * * * * * IntegerExp::toElem: 1 @ int * * * * * * * * * IntegerExp::toConstElem: 1 @ int * * * * * * * * * * value = i32 1 * * * * * * * * return value is '0x120e3000' * * * * ExpStatement::toIR(): src/client/client.d(169) * * * * * DeclarationExp::toElem: ubyte[] sourceCode = null; | T=void * * * * * * DtoDeclarationExp: sourceCode * * * * * * * VarDeclaration * * * * * * * DtoVarDeclaration(vdtype = ubyte[]) * * * * * * * * llvm value for decl: %sourceCode = alloca { i64, i8* }, align 8 * * * * * * * * expression initializer * * * * * * * * AssignExp::toElem: sourceCode = null | (ubyte[])(ubyte[] = ubyte[]) * * * * * * * * * VarExp::toElem: sourceCode @ ubyte[] * * * * * * * * * * DtoSymbolAddress ('sourceCode' of type 'ubyte[]') * * * * * * * * * * * a normal variable * * * * * * * * * NullExp::toElem(type=ubyte[]): null * * * * * * * * * * NullExp::toConstElem(type=ubyte[]): null * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * DtoAssign() * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * DtoSetArrayToNull * * * * IfStatement::toIR(): src/client/client.d(170) * * * * * VarExp::toElem: usingStdin @ immutable(bool) * * * * * * DtoSymbolAddress ('usingStdin' of type 'immutable(bool)') * * * * * * * a normal variable * * * * * ScopeStatement::toIR(): src/client/client.d(171) * * * * * * CompoundStatement::toIR(): src/client/client.d(171) * * * * * * * ExpStatement::toIR(): src/client/client.d(172) * * * * * * * * DeclarationExp::toElem: ubyte[4096] buf = cast(ubyte)0u; | T=void * * * * * * * * * DtoDeclarationExp: buf * * * * * * * * * * VarDeclaration * * * * * * * * * * DtoVarDeclaration(vdtype = ubyte[4096]) * * * * * * * * * * * Building type: ubyte[4096] * * * * * * * * * * * llvm value for decl: %buf = alloca [4096 x i8], align 1 * * * * * * * * * * * expression initializer * * * * * * * * * * * AssignExp::toElem: buf[] = cast(ubyte)0u | (ubyte[])(ubyte[] = ubyte) * * * * * * * * * * * * performing static array literal assignment * * * * * * * * * * * * SliceExp::toElem: buf[] @ ubyte[] * * * * * * * * * * * * * VarExp::toElem: buf @ ubyte[4096] * * * * * * * * * * * * * * DtoSymbolAddress ('buf' of type 'ubyte[4096]') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * IntegerExp::toElem: cast(ubyte)0u @ ubyte * * * * * * * * * * * * * IntegerExp::toConstElem: cast(ubyte)0u @ ubyte * * * * * * * * * * * * * * value = i8 0 * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * DtoArrayInit * * * * * * * ForStatement::toIR(): src/client/client.d(173) * * * * * * * * IntegerExp::toElem: true @ bool * * * * * * * * * IntegerExp::toConstElem: true @ bool * * * * * * * * * * value = i1 true * * * * * * * * ScopeStatement::toIR(): src/client/client.d(174) * * * * * * * * * CompoundStatement::toIR(): src/client/client.d(174) * * * * * * * * * * ExpStatement::toIR(): src/client/client.d(175) * * * * * * * * * * * DeclarationExp::toElem: ubyte[] b = stdin.rawRead(cast(ubyte[])buf); | T=void * * * * * * * * * * * * DtoDeclarationExp: b * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * DtoVarDeclaration(vdtype = ubyte[]) * * * * * * * * * * * * * * llvm value for decl: %b = alloca { i64, i8* }, align 8 * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * AssignExp::toElem: b = stdin.rawRead(cast(ubyte[])buf) | (ubyte[])(ubyte[] = ubyte[]) * * * * * * * * * * * * * * * VarExp::toElem: b @ ubyte[] * * * * * * * * * * * * * * * * DtoSymbolAddress ('b' of type 'ubyte[]') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * CallExp::toElem: stdin.rawRead(cast(ubyte[])buf) @ ubyte[] * * * * * * * * * * * * * * * * DotVarExp::toElem: stdin.rawRead @ @system ubyte[](ubyte[] buffer) * * * * * * * * * * * * * * * * * VarExp::toElem: stdin @ File * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('stdin' of type 'File') * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * DtoResolveVariable(std.stdio.stdin) * * * * * * * * * * * * * * * * * * * * data segment * * * * * * * * * * * * * * * * * * * * parent: stdio (module) * * * * * * * * * * * * * * * * * * * * @_D3std5stdio5stdinS3std5stdio4File = external global %std.stdio.File, align 8 * * * * * * * * * * * * * * * * * isMember = this is: File * * * * * * * * * * * * * * * * * DtoFunctionType(@system ubyte[](ubyte[] buffer)) * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * Final function type: { i64, i8* } (%std.stdio.File*, { i64, i8* }) * * * * * * * * * * * * * * * * * DtoResolveFunction(std.stdio.File.rawRead!ubyte.rawRead): /usr/include/dlang/ldc/std/stdio.d(811) * * * * * * * * * * * * * * * * * * DtoDeclareFunction(std.stdio.File.rawRead!ubyte.rawRead): /usr/include/dlang/ldc/std/stdio.d(811) * * * * * * * * * * * * * * * * * * * isMember = this is: File * * * * * * * * * * * * * * * * * * * DtoFunctionType(@system ubyte[](ubyte[] buffer)) * * * * * * * * * * * * * * * * * * * func = declare { i64, i8* } @_D3std5stdio4File14__T7rawReadThZ7rawReadMFAhZAh(%std.stdio.File*, { i64, i8* }) * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * Building type: @system ubyte[](ubyte[] buffer) * * * * * * * * * * * * * * * * * * DtoFunctionType(@system ubyte[](ubyte[] buffer)) * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * Final function type: { i64, i8* } ({ i64, i8* }) * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * @_D3std5stdio5stdinS3std5stdio4File = external global %std.stdio.File, align 8 * * * * * * * * * * * * * * * * * Function type: @system ubyte[](ubyte[] buffer) * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * CastExp::toElem: cast(ubyte[])buf @ ubyte[] * * * * * * * * * * * * * * * * * * * VarExp::toElem: buf @ ubyte[4096] * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('buf' of type 'ubyte[4096]') * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * Casting from 'ubyte[4096]' to 'ubyte[]' * * * * * * * * * * * * * * * * * * * * DtoCastArray * * * * * * * * * * * * * * * * * * * * * from array or sarray * * * * * * * * * * * * * * * * * * * * * to array * * * * * * * * * * * * * * * * * * * * * uvalTy = [4096 x i8]* * * * * * * * * * * * * * * * * * * * * * isslice * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * SetArray * * * * * * * * * * IfStatement::toIR(): src/client/client.d(176) * * * * * * * * * * * EqualExp::toElem: b.length == 0LU @ bool * * * * * * * * * * * * ArrayLengthExp::toElem: b.length @ ulong * * * * * * * * * * * * * VarExp::toElem: b @ ubyte[] * * * * * * * * * * * * * * DtoSymbolAddress ('b' of type 'ubyte[]') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * integral or pointer or interface * * * * * * * * * * * * lv: %.len89 = load i64, i64* %170 * * * * * * * * * * * * rv: i64 0 * * * * * * * * * * * BreakStatement::toIR(): src/client/client.d(177) * * * * * * * * * * ExpStatement::toIR(): src/client/client.d(178) * * * * * * * * * * * CatAssignExp::toElem: sourceCode ~= b @ ubyte[] * * * * * * * * * * * * VarExp::toElem: sourceCode @ ubyte[] * * * * * * * * * * * * * DtoSymbolAddress ('sourceCode' of type 'ubyte[]') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * DtoCatAssignArray * * * * * * * * * * * * * VarExp::toElem: b @ ubyte[] * * * * * * * * * * * * * * DtoSymbolAddress ('b' of type 'ubyte[]') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * DtoTypeInfoOf(type = 'ubyte[]', base='1') * * * * * * * * * * * * * * Type::getTypeInfo(): ubyte[] * * * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(ubyte[])) * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * SetArray * * * * * ScopeStatement::toIR(): src/client/client.d(182) * * * * * * CompoundStatement::toIR(): src/client/client.d(182) * * * * * * * IfStatement::toIR(): src/client/client.d(183) * * * * * * * * NotExp::toElem: !exists(args[1]) @ bool * * * * * * * * * CallExp::toElem: exists(args[1]) @ bool * * * * * * * * * * VarExp::toElem: exists @ nothrow @nogc @trusted bool(const(char[]) name) * * * * * * * * * * * DtoSymbolAddress ('exists' of type 'nothrow @nogc @trusted bool(const(char[]) name)') * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * doing normal arguments * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * Function type: nothrow @nogc @trusted bool(const(char[]) name) * * * * * * * * * * * DtoArgument * * * * * * * * * * * * IndexExp::toElem: args[1] @ const(char[]) * * * * * * * * * * * * * VarExp::toElem: args @ string[] * * * * * * * * * * * * * * DtoSymbolAddress ('args' of type 'string[]') * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * type: string[] * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * ScopeStatement::toIR(): src/client/client.d(184) * * * * * * * * * CompoundStatement::toIR(): src/client/client.d(184) * * * * * * * * * * ExpStatement::toIR(): src/client/client.d(185) * * * * * * * * * * * CallExp::toElem: stderr.writeln("Could not find ", args[1]) @ void * * * * * * * * * * * * DotVarExp::toElem: stderr.writeln @ @safe void(string _param_0, string _param_1) * * * * * * * * * * * * * VarExp::toElem: stderr @ File * * * * * * * * * * * * * * DtoSymbolAddress ('stderr' of type 'File') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * DtoResolveVariable(std.stdio.stderr) * * * * * * * * * * * * * * * * data segment * * * * * * * * * * * * * isMember = this is: File * * * * * * * * * * * * * DtoFunctionType(@safe void(string _param_0, string _param_1)) * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * Final function type: void (%std.stdio.File*, { i64, i8* }, { i64, i8* }) * * * * * * * * * * * * * DtoResolveFunction(std.stdio.File.writeln!(string, string).writeln): /usr/include/dlang/ldc/std/stdio.d(1338) * * * * * * * * * * * * * * DtoDeclareFunction(std.stdio.File.writeln!(string, string).writeln): /usr/include/dlang/ldc/std/stdio.d(1338) * * * * * * * * * * * * * * * isMember = this is: File * * * * * * * * * * * * * * * DtoFunctionType(@safe void(string _param_0, string _param_1)) * * * * * * * * * * * * * * * func = declare void @_D3std5stdio4File20__T7writelnTAyaTAyaZ7writelnMFNfAyaAyaZv(%std.stdio.File*, { i64, i8* }, { i64, i8* }) * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * Building type: @safe void(string _param_0, string _param_1) * * * * * * * * * * * * * * DtoFunctionType(@safe void(string _param_0, string _param_1)) * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * Final function type: void ({ i64, i8* }, { i64, i8* }) * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * @_D3std5stdio6stderrS3std5stdio4File = external global %std.stdio.File, align 8 * * * * * * * * * * * * * Function type: @safe void(string _param_0, string _param_1) * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * StringExp::toElem: "Could not find " @ string * * * * * * * * * * * * * * * type: [16 x i8] * * * * * * * * * * * * * * * init: [16 x i8] c"Could not find \00" * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * IndexExp::toElem: args[1] @ string * * * * * * * * * * * * * * * VarExp::toElem: args @ string[] * * * * * * * * * * * * * * * * DtoSymbolAddress ('args' of type 'string[]') * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * type: string[] * * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * ReturnStatement::toIR(): src/client/client.d(186) * * * * * * * * * * * IntegerExp::toElem: 1 @ int * * * * * * * * * * * * IntegerExp::toConstElem: 1 @ int * * * * * * * * * * * * * value = i32 1 * * * * * * * * * * * return value is '0x120e3000' * * * * * * * ExpStatement::toIR(): src/client/client.d(188) * * * * * * * * DeclarationExp::toElem: File f = f = 0 , f.this(args[1], "rb"); | T=void * * * * * * * * * DtoDeclarationExp: f * * * * * * * * * * VarDeclaration * * * * * * * * * * DtoVarDeclaration(vdtype = File) * * * * * * * * * * * llvm value for decl: %f = alloca %std.stdio.File, align 8 * * * * * * * * * * * expression initializer * * * * * * * * * * * CommaExp::toElem: f = 0 , f.this(args[1], "rb") @ File * * * * * * * * * * * * AssignExp::toElem: f = 0 | (File)(File = int) * * * * * * * * * * * * * VarExp::toElem: f @ File * * * * * * * * * * * * * * DtoSymbolAddress ('f' of type 'File') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * IntegerExp::toElem: 0 @ int * * * * * * * * * * * * * * IntegerExp::toConstElem: 0 @ int * * * * * * * * * * * * * * * value = i32 0 * * * * * * * * * * * * * performing aggregate zero initialization * * * * * * * * * * * * CallExp::toElem: f.this(args[1], "rb") @ File * * * * * * * * * * * * * DotVarExp::toElem: f.this @ ref @safe File(string name, const(char[]) stdioOpenmode = "rb") * * * * * * * * * * * * * * VarExp::toElem: f @ File * * * * * * * * * * * * * * * DtoSymbolAddress ('f' of type 'File') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * isMember = this is: File * * * * * * * * * * * * * * DtoFunctionType(ref @safe File(string name, const(char[]) stdioOpenmode = "rb")) * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * Final function type: %std.stdio.File* (%std.stdio.File*, { i64, i8* }, { i64, i8* }) * * * * * * * * * * * * * * DtoResolveFunction(std.stdio.File.this): /usr/include/dlang/ldc/std/stdio.d(467) * * * * * * * * * * * * * * * DtoDeclareFunction(std.stdio.File.this): /usr/include/dlang/ldc/std/stdio.d(467) * * * * * * * * * * * * * * * * isMember = this is: File * * * * * * * * * * * * * * * * DtoFunctionType(ref @safe File(string name, const(char[]) stdioOpenmode = "rb")) * * * * * * * * * * * * * * * * func = declare %std.stdio.File* @_D3std5stdio4File6__ctorMFNcNfAyaxAaZS3std5stdio4File(%std.stdio.File*, { i64, i8* }, { i64, i8* }) * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * Building type: ref @safe File(string name, const(char[]) stdioOpenmode = "rb") * * * * * * * * * * * * * * * DtoFunctionType(ref @safe File(string name, const(char[]) stdioOpenmode = "rb")) * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * Final function type: %std.stdio.File* ({ i64, i8* }, { i64, i8* }) * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * %f = alloca %std.stdio.File, align 8 * * * * * * * * * * * * * * Function type: ref @safe File(string name, const(char[]) stdioOpenmode = "rb") * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * IndexExp::toElem: args[1] @ string * * * * * * * * * * * * * * * * VarExp::toElem: args @ string[] * * * * * * * * * * * * * * * * * DtoSymbolAddress ('args' of type 'string[]') * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * type: string[] * * * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * StringExp::toElem: "rb" @ const(char[]) * * * * * * * * * * * * * * * * type: [3 x i8] * * * * * * * * * * * * * * * * init: [3 x i8] c"rb\00" * * * * * * * TryFinallyStatement::toIR(): * * * * * * * * ExpStatement::toIR(): src/client/client.d(188) * * * * * * * * * CallExp::toElem: f.~this() @ void * * * * * * * * * * DotVarExp::toElem: f.~this @ @safe void() * * * * * * * * * * * VarExp::toElem: f @ File * * * * * * * * * * * * DtoSymbolAddress ('f' of type 'File') * * * * * * * * * * * * * a normal variable * * * * * * * * * * * isMember = this is: File * * * * * * * * * * * DtoFunctionType(@safe void()) * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * Final function type: void (%std.stdio.File*) * * * * * * * * * * * DtoResolveFunction(std.stdio.File.~this): /usr/include/dlang/ldc/std/stdio.d(478) * * * * * * * * * * * * DtoDeclareFunction(std.stdio.File.~this): /usr/include/dlang/ldc/std/stdio.d(478) * * * * * * * * * * * * * isMember = this is: File * * * * * * * * * * * * * DtoFunctionType(@safe void()) * * * * * * * * * * * * * func = declare void @_D3std5stdio4File6__dtorMFNfZv(%std.stdio.File*) * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * Building type: @safe void() * * * * * * * * * * * * DtoFunctionType(@safe void()) * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * Final function type: void () * * * * * * * * * * * doing normal arguments * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * %f = alloca %std.stdio.File, align 8 * * * * * * * * * * * Function type: @safe void() * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * ExpStatement::toIR(): src/client/client.d(189) * * * * * * * * * * AssignExp::toElem: sourceCode = uninitializedArray(to(f.size())) | (ubyte[])(ubyte[] = ubyte[]) * * * * * * * * * * * VarExp::toElem: sourceCode @ ubyte[] * * * * * * * * * * * * DtoSymbolAddress ('sourceCode' of type 'ubyte[]') * * * * * * * * * * * * * a normal variable * * * * * * * * * * * CallExp::toElem: uninitializedArray(to(f.size())) @ ubyte[] * * * * * * * * * * * * VarExp::toElem: uninitializedArray @ pure nothrow @trusted ubyte[](ulong _param_0) * * * * * * * * * * * * * DtoSymbolAddress ('uninitializedArray' of type 'pure nothrow @trusted ubyte[](ulong _param_0)') * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * Building type: pure nothrow @trusted ubyte[](ulong _param_0) * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @trusted ubyte[](ulong _param_0)) * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * Final function type: { i64, i8* } (i64) * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * Function type: pure nothrow @trusted ubyte[](ulong _param_0) * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * CallExp::toElem: to(f.size()) @ ulong * * * * * * * * * * * * * * * VarExp::toElem: to @ pure nothrow @nogc @safe ulong(ulong _param_0) * * * * * * * * * * * * * * * * DtoSymbolAddress ('to' of type 'pure nothrow @nogc @safe ulong(ulong _param_0)') * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * Building type: pure nothrow @nogc @safe ulong(ulong _param_0) * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe ulong(ulong _param_0)) * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * Final function type: i64 (i64) * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @safe ulong(ulong _param_0) * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * CallExp::toElem: f.size() @ ulong * * * * * * * * * * * * * * * * * * DotVarExp::toElem: f.size @ @property @safe ulong() * * * * * * * * * * * * * * * * * * * VarExp::toElem: f @ File * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('f' of type 'File') * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * isMember = this is: File * * * * * * * * * * * * * * * * * * * DtoFunctionType(@property @safe ulong()) * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * Final function type: i64 (%std.stdio.File*) * * * * * * * * * * * * * * * * * * * DtoResolveFunction(std.stdio.File.size): /usr/include/dlang/ldc/std/stdio.d(2555) * * * * * * * * * * * * * * * * * * * * DtoDeclareFunction(std.stdio.File.size): /usr/include/dlang/ldc/std/stdio.d(2555) * * * * * * * * * * * * * * * * * * * * * isMember = this is: File * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(@property @safe ulong()) * * * * * * * * * * * * * * * * * * * * * func = declare i64 @_D3std5stdio4File4sizeMFNdNfZm(%std.stdio.File*) * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * Building type: @property @safe ulong() * * * * * * * * * * * * * * * * * * * * DtoFunctionType(@property @safe ulong()) * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * * Final function type: i64 () * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * * * %f = alloca %std.stdio.File, align 8 * * * * * * * * * * * * * * * * * * * Function type: @property @safe ulong() * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * SetArray * * * * * * * * * ExpStatement::toIR(): src/client/client.d(190) * * * * * * * * * * CallExp::toElem: f.rawRead(sourceCode) @ ubyte[] * * * * * * * * * * * DotVarExp::toElem: f.rawRead @ @system ubyte[](ubyte[] buffer) * * * * * * * * * * * * VarExp::toElem: f @ File * * * * * * * * * * * * * DtoSymbolAddress ('f' of type 'File') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * %f = alloca %std.stdio.File, align 8 * * * * * * * * * * * * Function type: @system ubyte[](ubyte[] buffer) * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * VarExp::toElem: sourceCode @ ubyte[] * * * * * * * * * * * * * * DtoSymbolAddress ('sourceCode' of type 'ubyte[]') * * * * * * * * * * * * * * * a normal variable * * * * ExpStatement::toIR(): src/client/client.d(193) * * * * * AssignExp::toElem: request.fileName = fileName | (string)(string = string) * * * * * * DotVarExp::toElem: request.fileName @ string * * * * * * * VarExp::toElem: request @ AutocompleteRequest * * * * * * * * DtoSymbolAddress ('request' of type 'AutocompleteRequest') * * * * * * * * * a normal variable * * * * * * * Indexing aggregate field common.messages.AutocompleteRequest.fileName: * * * * * * * * Value: %170 = getelementptr %common.messages.AutocompleteRequest, %common.messages.AutocompleteRequest* %request, i32 0, i32 0 * * * * * * VarExp::toElem: fileName @ string * * * * * * * DtoSymbolAddress ('fileName' of type 'string') * * * * * * * * a normal variable * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * DtoAssign() * * * * * * * DtoArrayAssign * * * * * * * * DtoArrayPtr * * * * * * * * DtoArrayLen * * * * * * * * SetArray * * * * ExpStatement::toIR(): src/client/client.d(194) * * * * * AssignExp::toElem: request.importPaths = importPaths | (string[])(string[] = string[]) * * * * * * DotVarExp::toElem: request.importPaths @ string[] * * * * * * * VarExp::toElem: request @ AutocompleteRequest * * * * * * * * DtoSymbolAddress ('request' of type 'AutocompleteRequest') * * * * * * * * * a normal variable * * * * * * * Indexing aggregate field common.messages.AutocompleteRequest.importPaths: * * * * * * * * Value: %175 = getelementptr %common.messages.AutocompleteRequest, %common.messages.AutocompleteRequest* %request, i32 0, i32 3 * * * * * * VarExp::toElem: importPaths @ string[] * * * * * * * DtoSymbolAddress ('importPaths' of type 'string[]') * * * * * * * * a normal variable * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * DtoAssign() * * * * * * * DtoArrayAssign * * * * * * * * DtoArrayPtr * * * * * * * * DtoArrayLen * * * * * * * * SetArray * * * * ExpStatement::toIR(): src/client/client.d(195) * * * * * AssignExp::toElem: request.sourceCode = sourceCode | (ubyte[])(ubyte[] = ubyte[]) * * * * * * DotVarExp::toElem: request.sourceCode @ ubyte[] * * * * * * * VarExp::toElem: request @ AutocompleteRequest * * * * * * * * DtoSymbolAddress ('request' of type 'AutocompleteRequest') * * * * * * * * * a normal variable * * * * * * * Indexing aggregate field common.messages.AutocompleteRequest.sourceCode: * * * * * * * * Value: %180 = getelementptr %common.messages.AutocompleteRequest, %common.messages.AutocompleteRequest* %request, i32 0, i32 4 * * * * * * VarExp::toElem: sourceCode @ ubyte[] * * * * * * * DtoSymbolAddress ('sourceCode' of type 'ubyte[]') * * * * * * * * a normal variable * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * DtoAssign() * * * * * * * DtoArrayAssign * * * * * * * * DtoArrayPtr * * * * * * * * DtoArrayLen * * * * * * * * SetArray * * * * ExpStatement::toIR(): src/client/client.d(196) * * * * * AssignExp::toElem: request.cursorPosition = cursorPos | (ulong)(ulong = ulong) * * * * * * DotVarExp::toElem: request.cursorPosition @ ulong * * * * * * * VarExp::toElem: request @ AutocompleteRequest * * * * * * * * DtoSymbolAddress ('request' of type 'AutocompleteRequest') * * * * * * * * * a normal variable * * * * * * * Indexing aggregate field common.messages.AutocompleteRequest.cursorPosition: * * * * * * * * Value: %185 = getelementptr %common.messages.AutocompleteRequest, %common.messages.AutocompleteRequest* %request, i32 0, i32 5 * * * * * * VarExp::toElem: cursorPos @ ulong * * * * * * * DtoSymbolAddress ('cursorPos' of type 'ulong') * * * * * * * * a normal variable * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * DtoAssign() * * * * * * * lhs: %185 = getelementptr %common.messages.AutocompleteRequest, %common.messages.AutocompleteRequest* %request, i32 0, i32 5 * * * * * * * rhs: %186 = load i64, i64* %cursorPos * * * * ExpStatement::toIR(): src/client/client.d(197) * * * * * AssignExp::toElem: request.searchName = search | (string)(string = string) * * * * * * DotVarExp::toElem: request.searchName @ string * * * * * * * VarExp::toElem: request @ AutocompleteRequest * * * * * * * * DtoSymbolAddress ('request' of type 'AutocompleteRequest') * * * * * * * * * a normal variable * * * * * * * Indexing aggregate field common.messages.AutocompleteRequest.searchName: * * * * * * * * Value: %187 = getelementptr %common.messages.AutocompleteRequest, %common.messages.AutocompleteRequest* %request, i32 0, i32 6 * * * * * * VarExp::toElem: search @ string * * * * * * * DtoSymbolAddress ('search' of type 'string') * * * * * * * * a normal variable * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * DtoAssign() * * * * * * * DtoArrayAssign * * * * * * * * DtoArrayPtr * * * * * * * * DtoArrayLen * * * * * * * * SetArray * * * * IfStatement::toIR(): src/client/client.d(199) * * * * * VarExp::toElem: symbolLocation @ bool * * * * * * DtoSymbolAddress ('symbolLocation' of type 'bool') * * * * * * * a normal variable * * * * * ExpStatement::toIR(): src/client/client.d(200) * * * * * * OrAssignExp::toElem: cast(int)request.kind |= 16 @ RequestKind * * * * * * * Caching l-value of cast(int)request.kind |= 16 => request.kind * * * * * * * * DotVarExp::toElem: request.kind @ RequestKind * * * * * * * * * VarExp::toElem: request @ AutocompleteRequest * * * * * * * * * * DtoSymbolAddress ('request' of type 'AutocompleteRequest') * * * * * * * * * * * a normal variable * * * * * * * * * Indexing aggregate field common.messages.AutocompleteRequest.kind: * * * * * * * * * * Building type: RequestKind * * * * * * * * * * Value: %223 = getelementptr %common.messages.AutocompleteRequest, %common.messages.AutocompleteRequest* %request, i32 0, i32 1 * * * * * * * OrExp::toElem: cast(int)request.kind | 16 @ int * * * * * * * * CastExp::toElem: cast(int)request.kind @ int * * * * * * * * * DotVarExp::toElem: request.kind @ RequestKind * * * * * * * * * * using cached lvalue * * * * * * * * * Casting from 'ushort' to 'int' * * * * * * * * * * cast to: i32 * * * * * * * * IntegerExp::toElem: 16 @ int * * * * * * * * * IntegerExp::toConstElem: 16 @ int * * * * * * * * * * value = i32 16 * * * * * * * Casting from 'int' to 'RequestKind' * * * * * * * * Building type: RequestKind * * * * * * * DtoAssign() * * * * * * * * lhs: %223 = getelementptr %common.messages.AutocompleteRequest, %common.messages.AutocompleteRequest* %request, i32 0, i32 1 * * * * * * * * rhs: %227 = trunc i32 %226 to i16 * * * * * IfStatement::toIR(): src/client/client.d(201) * * * * * * VarExp::toElem: doc @ bool * * * * * * * DtoSymbolAddress ('doc' of type 'bool') * * * * * * * * a normal variable * * * * * * ExpStatement::toIR(): src/client/client.d(202) * * * * * * * OrAssignExp::toElem: cast(int)request.kind |= 32 @ RequestKind * * * * * * * * Caching l-value of cast(int)request.kind |= 32 => request.kind * * * * * * * * * DotVarExp::toElem: request.kind @ RequestKind * * * * * * * * * * VarExp::toElem: request @ AutocompleteRequest * * * * * * * * * * * DtoSymbolAddress ('request' of type 'AutocompleteRequest') * * * * * * * * * * * * a normal variable * * * * * * * * * * Indexing aggregate field common.messages.AutocompleteRequest.kind: * * * * * * * * * * * Building type: RequestKind * * * * * * * * * * * Value: %230 = getelementptr %common.messages.AutocompleteRequest, %common.messages.AutocompleteRequest* %request, i32 0, i32 1 * * * * * * * * OrExp::toElem: cast(int)request.kind | 32 @ int * * * * * * * * * CastExp::toElem: cast(int)request.kind @ int * * * * * * * * * * DotVarExp::toElem: request.kind @ RequestKind * * * * * * * * * * * using cached lvalue * * * * * * * * * * Casting from 'ushort' to 'int' * * * * * * * * * * * cast to: i32 * * * * * * * * * IntegerExp::toElem: 32 @ int * * * * * * * * * * IntegerExp::toConstElem: 32 @ int * * * * * * * * * * * value = i32 32 * * * * * * * * Casting from 'int' to 'RequestKind' * * * * * * * * * Building type: RequestKind * * * * * * * * DtoAssign() * * * * * * * * * lhs: %230 = getelementptr %common.messages.AutocompleteRequest, %common.messages.AutocompleteRequest* %request, i32 0, i32 1 * * * * * * * * * rhs: %234 = trunc i32 %233 to i16 * * * * * * IfStatement::toIR(): src/client/client.d(203) * * * * * * * VarExp::toElem: search @ string * * * * * * * * DtoSymbolAddress ('search' of type 'string') * * * * * * * * * a normal variable * * * * * * * if conditional: %235 = load { i64, i8* }, { i64, i8* }* %search * * * * * * * Casting from 'string' to 'bool' * * * * * * * * DtoCastArray * * * * * * * * * from array or sarray * * * * * * * * * DtoArrayPtr * * * * * * * ExpStatement::toIR(): src/client/client.d(204) * * * * * * * * OrAssignExp::toElem: cast(int)request.kind |= 128 @ RequestKind * * * * * * * * * Caching l-value of cast(int)request.kind |= 128 => request.kind * * * * * * * * * * DotVarExp::toElem: request.kind @ RequestKind * * * * * * * * * * * VarExp::toElem: request @ AutocompleteRequest * * * * * * * * * * * * DtoSymbolAddress ('request' of type 'AutocompleteRequest') * * * * * * * * * * * * * a normal variable * * * * * * * * * * * Indexing aggregate field common.messages.AutocompleteRequest.kind: * * * * * * * * * * * * Building type: RequestKind * * * * * * * * * * * * Value: %238 = getelementptr %common.messages.AutocompleteRequest, %common.messages.AutocompleteRequest* %request, i32 0, i32 1 * * * * * * * * * OrExp::toElem: cast(int)request.kind | 128 @ int * * * * * * * * * * CastExp::toElem: cast(int)request.kind @ int * * * * * * * * * * * DotVarExp::toElem: request.kind @ RequestKind * * * * * * * * * * * * using cached lvalue * * * * * * * * * * * Casting from 'ushort' to 'int' * * * * * * * * * * * * cast to: i32 * * * * * * * * * * IntegerExp::toElem: 128 @ int * * * * * * * * * * * IntegerExp::toConstElem: 128 @ int * * * * * * * * * * * * value = i32 128 * * * * * * * * * Casting from 'int' to 'RequestKind' * * * * * * * * * * Building type: RequestKind * * * * * * * * * DtoAssign() * * * * * * * * * * lhs: %238 = getelementptr %common.messages.AutocompleteRequest, %common.messages.AutocompleteRequest* %request, i32 0, i32 1 * * * * * * * * * * rhs: %242 = trunc i32 %241 to i16 * * * * * * * ExpStatement::toIR(): src/client/client.d(206) * * * * * * * * OrAssignExp::toElem: cast(int)request.kind |= 1 @ RequestKind * * * * * * * * * Caching l-value of cast(int)request.kind |= 1 => request.kind * * * * * * * * * * DotVarExp::toElem: request.kind @ RequestKind * * * * * * * * * * * VarExp::toElem: request @ AutocompleteRequest * * * * * * * * * * * * DtoSymbolAddress ('request' of type 'AutocompleteRequest') * * * * * * * * * * * * * a normal variable * * * * * * * * * * * Indexing aggregate field common.messages.AutocompleteRequest.kind: * * * * * * * * * * * * Building type: RequestKind * * * * * * * * * * * * Value: %243 = getelementptr %common.messages.AutocompleteRequest, %common.messages.AutocompleteRequest* %request, i32 0, i32 1 * * * * * * * * * OrExp::toElem: cast(int)request.kind | 1 @ int * * * * * * * * * * CastExp::toElem: cast(int)request.kind @ int * * * * * * * * * * * DotVarExp::toElem: request.kind @ RequestKind * * * * * * * * * * * * using cached lvalue * * * * * * * * * * * Casting from 'ushort' to 'int' * * * * * * * * * * * * cast to: i32 * * * * * * * * * * IntegerExp::toElem: 1 @ int * * * * * * * * * * * IntegerExp::toConstElem: 1 @ int * * * * * * * * * * * * value = i32 1 * * * * * * * * * Casting from 'int' to 'RequestKind' * * * * * * * * * * Building type: RequestKind * * * * * * * * * DtoAssign() * * * * * * * * * * lhs: %243 = getelementptr %common.messages.AutocompleteRequest, %common.messages.AutocompleteRequest* %request, i32 0, i32 1 * * * * * * * * * * rhs: %247 = trunc i32 %246 to i16 * * * * ExpStatement::toIR(): src/client/client.d(209) * * * * * DeclarationExp::toElem: Socket socket = createSocket(socketFile, port); | T=void * * * * * * DtoDeclarationExp: socket * * * * * * * VarDeclaration * * * * * * * DtoVarDeclaration(vdtype = std.socket.Socket) * * * * * * * * llvm value for decl: %socket127 = alloca %std.socket.Socket*, align 8 * * * * * * * * expression initializer * * * * * * * * AssignExp::toElem: socket = createSocket(socketFile, port) | (std.socket.Socket)(std.socket.Socket = std.socket.Socket) * * * * * * * * * VarExp::toElem: socket @ std.socket.Socket * * * * * * * * * * DtoSymbolAddress ('socket' of type 'std.socket.Socket') * * * * * * * * * * * a normal variable * * * * * * * * * CallExp::toElem: createSocket(socketFile, port) @ std.socket.Socket * * * * * * * * * * VarExp::toElem: createSocket @ Socket(string socketFile, ushort port) * * * * * * * * * * * DtoSymbolAddress ('createSocket' of type 'Socket(string socketFile, ushort port)') * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * doing normal arguments * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * Function type: Socket(string socketFile, ushort port) * * * * * * * * * * * DtoArgument * * * * * * * * * * * * VarExp::toElem: socketFile @ string * * * * * * * * * * * * * DtoSymbolAddress ('socketFile' of type 'string') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * DtoArgument * * * * * * * * * * * * VarExp::toElem: port @ ushort * * * * * * * * * * * * * DtoSymbolAddress ('port' of type 'ushort') * * * * * * * * * * * * * * a normal variable * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * DtoAssign() * * * * * * * * * * l : %socket127 = alloca %std.socket.Socket*, align 8 * * * * * * * * * * r : %232 = call %std.socket.Socket* @_D6client6client12createSocketFAyatZC3std6socket6Socket(i16 zeroext %231, { i64, i8* } %230) * * * * TryFinallyStatement::toIR(): * * * * * ScopeStatement::toIR(): src/client/client.d(210) * * * * * * CompoundStatement::toIR(): src/client/client.d(210) * * * * * * * ExpStatement::toIR(): src/client/client.d(210) * * * * * * * * CallExp::toElem: socket.shutdown(cast(SocketShutdown)2) @ void * * * * * * * * * DotVarExp::toElem: socket.shutdown @ nothrow @nogc @trusted void(SocketShutdown how) * * * * * * * * * * VarExp::toElem: socket @ std.socket.Socket * * * * * * * * * * * DtoSymbolAddress ('socket' of type 'std.socket.Socket') * * * * * * * * * * * * a normal variable * * * * * * * * * * vthis: %251 = load %std.socket.Socket*, %std.socket.Socket** %socket127 * * * * * * * * * * funcval: %254 = load void (%std.socket.Socket*, i32)*, void (%std.socket.Socket*, i32)** %"socket.shutdown@vtbl129", align 8 * * * * * * * * * * isMember = this is: std.socket.Socket * * * * * * * * * * DtoFunctionType(nothrow @nogc @trusted void(SocketShutdown how)) * * * * * * * * * * funcval casted: %socket.shutdown130 = load void (%std.socket.Socket*, i32)*, void (%std.socket.Socket*, i32)** %"socket.shutdown@vtbl129", align 8 * * * * * * * * * DtoCallFunction() * * * * * * * * * * doing normal arguments * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * %254 = load %std.socket.Socket*, %std.socket.Socket** %socket127 * * * * * * * * * * Function type: nothrow @nogc @trusted void(SocketShutdown how) * * * * * * * * * * DtoArgument * * * * * * * * * * * IntegerExp::toElem: cast(SocketShutdown)2 @ SocketShutdown * * * * * * * * * * * * IntegerExp::toConstElem: cast(SocketShutdown)2 @ SocketShutdown * * * * * * * * * * * * * Building type: SocketShutdown * * * * * * * * * * * * * value = i32 2 * * * * * * * ExpStatement::toIR(): src/client/client.d(210) * * * * * * * * CallExp::toElem: socket.close() @ void * * * * * * * * * DotVarExp::toElem: socket.close @ nothrow @nogc @trusted void() * * * * * * * * * * VarExp::toElem: socket @ std.socket.Socket * * * * * * * * * * * DtoSymbolAddress ('socket' of type 'std.socket.Socket') * * * * * * * * * * * * a normal variable * * * * * * * * * * vthis: %255 = load %std.socket.Socket*, %std.socket.Socket** %socket127 * * * * * * * * * * funcval: %258 = load void (%std.socket.Socket*)*, void (%std.socket.Socket*)** %"socket.close@vtbl131", align 8 * * * * * * * * * * isMember = this is: std.socket.Socket * * * * * * * * * * DtoFunctionType(nothrow @nogc @trusted void()) * * * * * * * * * * funcval casted: %socket.close132 = load void (%std.socket.Socket*)*, void (%std.socket.Socket*)** %"socket.close@vtbl131", align 8 * * * * * * * * * DtoCallFunction() * * * * * * * * * * doing normal arguments * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * %258 = load %std.socket.Socket*, %std.socket.Socket** %socket127 * * * * * * * * * * Function type: nothrow @nogc @trusted void() * * * * * CompoundStatement::toIR(): * * * * * * IfStatement::toIR(): src/client/client.d(211) * * * * * * * NotExp::toElem: !sendRequest(socket, request) @ bool * * * * * * * * CallExp::toElem: sendRequest(socket, request) @ bool * * * * * * * * * VarExp::toElem: sendRequest @ bool(Socket socket, AutocompleteRequest request) * * * * * * * * * * DtoSymbolAddress ('sendRequest' of type 'bool(Socket socket, AutocompleteRequest request)') * * * * * * * * * * * FuncDeclaration * * * * * * * * * DtoCallFunction() * * * * * * * * * * doing normal arguments * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * Function type: bool(Socket socket, AutocompleteRequest request) * * * * * * * * * * DtoArgument * * * * * * * * * * * VarExp::toElem: socket @ std.socket.Socket * * * * * * * * * * * * DtoSymbolAddress ('socket' of type 'std.socket.Socket') * * * * * * * * * * * * * a normal variable * * * * * * * * * * DtoArgument * * * * * * * * * * * VarExp::toElem: request @ AutocompleteRequest * * * * * * * * * * * * DtoSymbolAddress ('request' of type 'AutocompleteRequest') * * * * * * * * * * * * * a normal variable * * * * * * * ReturnStatement::toIR(): src/client/client.d(212) * * * * * * * * IntegerExp::toElem: 1 @ int * * * * * * * * * IntegerExp::toConstElem: 1 @ int * * * * * * * * * * value = i32 1 * * * * * * * * return value is '0x120e3000' * * * * * * ExpStatement::toIR(): src/client/client.d(214) * * * * * * * DeclarationExp::toElem: AutocompleteResponse response = getResponse(socket); | T=void * * * * * * * * DtoDeclarationExp: response * * * * * * * * * VarDeclaration * * * * * * * * * DtoVarDeclaration(vdtype = AutocompleteResponse) * * * * * * * * * * VarExp::toElem: getResponse @ AutocompleteResponse(Socket socket) * * * * * * * * * * * DtoSymbolAddress ('getResponse' of type 'AutocompleteResponse(Socket socket)') * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * doing normal arguments * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * %response137 = alloca %common.messages.AutocompleteResponse, align 8 * * * * * * * * * * * Function type: AutocompleteResponse(Socket socket) * * * * * * * * * * * DtoArgument * * * * * * * * * * * * VarExp::toElem: socket @ std.socket.Socket * * * * * * * * * * * * * DtoSymbolAddress ('socket' of type 'std.socket.Socket') * * * * * * * * * * * * * * a normal variable * * * * * * IfStatement::toIR(): src/client/client.d(216) * * * * * * * VarExp::toElem: symbolLocation @ bool * * * * * * * * DtoSymbolAddress ('symbolLocation' of type 'bool') * * * * * * * * * a normal variable * * * * * * * ExpStatement::toIR(): src/client/client.d(217) * * * * * * * * CallExp::toElem: printLocationResponse(response) @ void * * * * * * * * * VarExp::toElem: printLocationResponse @ void(AutocompleteResponse response) * * * * * * * * * * DtoSymbolAddress ('printLocationResponse' of type 'void(AutocompleteResponse response)') * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * DtoFunctionType(void(AutocompleteResponse response)) * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * Final function type: void (%common.messages.AutocompleteResponse*) * * * * * * * * * * * DtoResolveFunction(client.client.printLocationResponse): src/client/client.d(326) * * * * * * * * * * * * DtoDeclareFunction(client.client.printLocationResponse): src/client/client.d(326) * * * * * * * * * * * * * DtoFunctionType(void(AutocompleteResponse response)) * * * * * * * * * * * * * func = declare void @_D6client6client21printLocationResponseFS6common8messages20AutocompleteResponseZv(%common.messages.AutocompleteResponse*) * * * * * * * * * DtoCallFunction() * * * * * * * * * * Building type: void(AutocompleteResponse response) * * * * * * * * * * * DtoFunctionType(void(AutocompleteResponse response)) * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * Final function type: void (%common.messages.AutocompleteResponse*) * * * * * * * * * * doing normal arguments * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * Function type: void(AutocompleteResponse response) * * * * * * * * * * DtoArgument * * * * * * * * * * * VarExp::toElem: response @ AutocompleteResponse * * * * * * * * * * * * DtoSymbolAddress ('response' of type 'AutocompleteResponse') * * * * * * * * * * * * * a normal variable * * * * * * * IfStatement::toIR(): src/client/client.d(218) * * * * * * * * VarExp::toElem: doc @ bool * * * * * * * * * DtoSymbolAddress ('doc' of type 'bool') * * * * * * * * * * a normal variable * * * * * * * * ExpStatement::toIR(): src/client/client.d(219) * * * * * * * * * CallExp::toElem: printDocResponse(response) @ void * * * * * * * * * * VarExp::toElem: printDocResponse @ void(AutocompleteResponse response) * * * * * * * * * * * DtoSymbolAddress ('printDocResponse' of type 'void(AutocompleteResponse response)') * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * DtoFunctionType(void(AutocompleteResponse response)) * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * Final function type: void (%common.messages.AutocompleteResponse*) * * * * * * * * * * * * DtoResolveFunction(client.client.printDocResponse): src/client/client.d(320) * * * * * * * * * * * * * DtoDeclareFunction(client.client.printDocResponse): src/client/client.d(320) * * * * * * * * * * * * * * DtoFunctionType(void(AutocompleteResponse response)) * * * * * * * * * * * * * * func = declare void @_D6client6client16printDocResponseFS6common8messages20AutocompleteResponseZv(%common.messages.AutocompleteResponse*) * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * Building type: void(AutocompleteResponse response) * * * * * * * * * * * * DtoFunctionType(void(AutocompleteResponse response)) * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * Final function type: void (%common.messages.AutocompleteResponse*) * * * * * * * * * * * doing normal arguments * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * Function type: void(AutocompleteResponse response) * * * * * * * * * * * DtoArgument * * * * * * * * * * * * VarExp::toElem: response @ AutocompleteResponse * * * * * * * * * * * * * DtoSymbolAddress ('response' of type 'AutocompleteResponse') * * * * * * * * * * * * * * a normal variable * * * * * * * * IfStatement::toIR(): src/client/client.d(220) * * * * * * * * * IdentityExp::toElem: search !is null @ bool * * * * * * * * * * VarExp::toElem: search @ string * * * * * * * * * * * DtoSymbolAddress ('search' of type 'string') * * * * * * * * * * * * a normal variable * * * * * * * * * * NullExp::toElem(type=string): null * * * * * * * * * * * NullExp::toConstElem(type=string): null * * * * * * * * * * DtoArrayLen * * * * * * * * * * DtoArrayLen * * * * * * * * * * DtoArrayPtr * * * * * * * * * * DtoArrayPtr * * * * * * * * * ExpStatement::toIR(): src/client/client.d(221) * * * * * * * * * * CallExp::toElem: printSearchResponse(response) @ void * * * * * * * * * * * VarExp::toElem: printSearchResponse @ void(const(AutocompleteResponse) response) * * * * * * * * * * * * DtoSymbolAddress ('printSearchResponse' of type 'void(const(AutocompleteResponse) response)') * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * DtoFunctionType(void(const(AutocompleteResponse) response)) * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * Final function type: void (%common.messages.AutocompleteResponse*) * * * * * * * * * * * * * DtoResolveFunction(client.client.printSearchResponse): src/client/client.d(358) * * * * * * * * * * * * * * DtoDeclareFunction(client.client.printSearchResponse): src/client/client.d(358) * * * * * * * * * * * * * * * DtoFunctionType(void(const(AutocompleteResponse) response)) * * * * * * * * * * * * * * * func = declare void @_D6client6client19printSearchResponseFxS6common8messages20AutocompleteResponseZv(%common.messages.AutocompleteResponse*) * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * Building type: void(const(AutocompleteResponse) response) * * * * * * * * * * * * * DtoFunctionType(void(const(AutocompleteResponse) response)) * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * Final function type: void (%common.messages.AutocompleteResponse*) * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * Function type: void(const(AutocompleteResponse) response) * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * VarExp::toElem: response @ const(AutocompleteResponse) * * * * * * * * * * * * * * DtoSymbolAddress ('response' of type 'AutocompleteResponse') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * ExpStatement::toIR(): src/client/client.d(223) * * * * * * * * * * CallExp::toElem: printCompletionResponse(response) @ void * * * * * * * * * * * VarExp::toElem: printCompletionResponse @ void(AutocompleteResponse response) * * * * * * * * * * * * DtoSymbolAddress ('printCompletionResponse' of type 'void(AutocompleteResponse response)') * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * DtoFunctionType(void(AutocompleteResponse response)) * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * Final function type: void (%common.messages.AutocompleteResponse*) * * * * * * * * * * * * * DtoResolveFunction(client.client.printCompletionResponse): src/client/client.d(334) * * * * * * * * * * * * * * DtoDeclareFunction(client.client.printCompletionResponse): src/client/client.d(334) * * * * * * * * * * * * * * * DtoFunctionType(void(AutocompleteResponse response)) * * * * * * * * * * * * * * * func = declare void @_D6client6client23printCompletionResponseFS6common8messages20AutocompleteResponseZv(%common.messages.AutocompleteResponse*) * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * Building type: void(AutocompleteResponse response) * * * * * * * * * * * * * DtoFunctionType(void(AutocompleteResponse response)) * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * Final function type: void (%common.messages.AutocompleteResponse*) * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * Function type: void(AutocompleteResponse response) * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * VarExp::toElem: response @ AutocompleteResponse * * * * * * * * * * * * * * DtoSymbolAddress ('response' of type 'AutocompleteResponse') * * * * * * * * * * * * * * * a normal variable * * * * * * ReturnStatement::toIR(): src/client/client.d(225) * * * * * * * IntegerExp::toElem: 0 @ int * * * * * * * * IntegerExp::toConstElem: 0 @ int * * * * * * * * * value = i32 0 * * * * * * * return value is '0x120e1350' * DtoDefineFunction(client.client.printHelp): src/client/client.d(230) * * Doing function body for: printHelp * * DtoCreateNestedContext for printHelp * * * DtoCreateNestedContextType for client.client.printHelp * * CompoundStatement::toIR(): * * * ExpStatement::toIR(): src/client/client.d(232) * * * * CallExp::toElem: writefln("\x0a Usage: %1$s [Options] [FILENAME]\x0a\x0a A file name is optional. If it is given, autocomplete information will be\x0a given for the file specified. If it is missing, input will be read from\x0a stdin instead.\x0a\x0a Source code is assumed to be UTF-8 encoded and must not exceed 4 megabytes.\x0a\x0aOptions:\x0a --help | -h\x0a Displays this help message\x0a\x0a --cursorPos | -c position\x0a Provides auto-completion at the given cursor position. The cursor\x0a position is measured in bytes from the beginning of the source code.\x0a\x0a --clearCache\x0a Instructs the server to clear out its autocompletion cache.\x0a\x0a --shutdown\x0a Instructs the server to shut down.\x0a\x0a --symbolLocation | -l\x0a Get the file name and position that the symbol at the cursor location\x0a was defined.\x0a\x0a --doc | -d\x0a Gets documentation comments associated with the symbol at the cursor\x0a location.\x0a\x0a --search | -s symbolName\x0a Searches for symbolName in both stdin / the given file name as well as\x0a others files cached by the server.\x0a\x0a --query | -q | --status\x0a Query the server statis. Returns 0 if the server is running. Returns\x0a 1 if the server could not be contacted.\x0a\x0a -I PATH\x0a Instructs the server to add PATH to its list of paths searched for\x0a imported modules.\x0a\x0a --version\x0a Prints the version number and then exits.\x0a\x0a --port PORTNUMBER | -p PORTNUMBER\x0a Uses PORTNUMBER to communicate with the server instead of the default\x0a port 9166. Only used on Windows or when the --tcp option is set.\x0a\x0a --tcp\x0a Send requests on a TCP socket instead of a UNIX domain socket. This\x0a switch has no effect on Windows.\x0a\x0a --socketFile FILENAME\x0a Use the given FILENAME as the path to the UNIX domain socket. Using\x0a this switch is an error on Windows.", programName) @ void * * * * * VarExp::toElem: writefln @ @safe void(string _param_0, string _param_1) * * * * * * DtoSymbolAddress ('writefln' of type '@safe void(string _param_0, string _param_1)') * * * * * * * FuncDeclaration * * * * * * * DtoFunctionType(@safe void(string _param_0, string _param_1)) * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * Final function type: void ({ i64, i8* }, { i64, i8* }) * * * * * * * DtoResolveFunction(std.stdio.writefln!(string, string).writefln): /usr/include/dlang/ldc/std/stdio.d(3205) * * * * * * * * DtoDeclareFunction(std.stdio.writefln!(string, string).writefln): /usr/include/dlang/ldc/std/stdio.d(3205) * * * * * * * * * DtoFunctionType(@safe void(string _param_0, string _param_1)) * * * * * * * * * func = declare void @_D3std5stdio21__T8writeflnTAyaTAyaZ8writeflnFNfAyaAyaZv({ i64, i8* }, { i64, i8* }) * * * * * DtoCallFunction() * * * * * * Building type: @safe void(string _param_0, string _param_1) * * * * * * * DtoFunctionType(@safe void(string _param_0, string _param_1)) * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * Final function type: void ({ i64, i8* }, { i64, i8* }) * * * * * * doing normal arguments * * * * * * Arguments so far: (0) * * * * * * Function type: @safe void(string _param_0, string _param_1) * * * * * * DtoArgument * * * * * * * StringExp::toElem: "\x0a Usage: %1$s [Options] [FILENAME]\x0a\x0a A file name is optional. If it is given, autocomplete information will be\x0a given for the file specified. If it is missing, input will be read from\x0a stdin instead.\x0a\x0a Source code is assumed to be UTF-8 encoded and must not exceed 4 megabytes.\x0a\x0aOptions:\x0a --help | -h\x0a Displays this help message\x0a\x0a --cursorPos | -c position\x0a Provides auto-completion at the given cursor position. The cursor\x0a position is measured in bytes from the beginning of the source code.\x0a\x0a --clearCache\x0a Instructs the server to clear out its autocompletion cache.\x0a\x0a --shutdown\x0a Instructs the server to shut down.\x0a\x0a --symbolLocation | -l\x0a Get the file name and position that the symbol at the cursor location\x0a was defined.\x0a\x0a --doc | -d\x0a Gets documentation comments associated with the symbol at the cursor\x0a location.\x0a\x0a --search | -s symbolName\x0a Searches for symbolName in both stdin / the given file name as well as\x0a others files cached by the server.\x0a\x0a --query | -q | --status\x0a Query the server statis. Returns 0 if the server is running. Returns\x0a 1 if the server could not be contacted.\x0a\x0a -I PATH\x0a Instructs the server to add PATH to its list of paths searched for\x0a imported modules.\x0a\x0a --version\x0a Prints the version number and then exits.\x0a\x0a --port PORTNUMBER | -p PORTNUMBER\x0a Uses PORTNUMBER to communicate with the server instead of the default\x0a port 9166. Only used on Windows or when the --tcp option is set.\x0a\x0a --tcp\x0a Send requests on a TCP socket instead of a UNIX domain socket. This\x0a switch has no effect on Windows.\x0a\x0a --socketFile FILENAME\x0a Use the given FILENAME as the path to the UNIX domain socket. Using\x0a this switch is an error on Windows." @ string * * * * * * * * type: [1868 x i8] * * * * * * * * init: [1868 x i8] c"\0A Usage: %1$s [Options] [FILENAME]\0A\0A A file name is optional. If it is given, autocomplete information will be\0A given for the file specified. If it is missing, input will be read from\0A stdin instead.\0A\0A Source code is assumed to be UTF-8 encoded and must not exceed 4 megabytes.\0A\0AOptions:\0A --help | -h\0A Displays this help message\0A\0A --cursorPos | -c position\0A Provides auto-completion at the given cursor position. The cursor\0A position is measured in bytes from the beginning of the source code.\0A\0A --clearCache\0A Instructs the server to clear out its autocompletion cache.\0A\0A --shutdown\0A Instructs the server to shut down.\0A\0A --symbolLocation | -l\0A Get the file name and position that the symbol at the cursor location\0A was defined.\0A\0A --doc | -d\0A Gets documentation comments associated with the symbol at the cursor\0A location.\0A\0A --search | -s symbolName\0A Searches for symbolName in both stdin / the given file name as well as\0A others files cached by the server.\0A\0A --query | -q | --status\0A Query the server statis. Returns 0 if the server is running. Returns\0A 1 if the server could not be contacted.\0A\0A -I PATH\0A Instructs the server to add PATH to its list of paths searched for\0A imported modules.\0A\0A --version\0A Prints the version number and then exits.\0A\0A --port PORTNUMBER | -p PORTNUMBER\0A Uses PORTNUMBER to communicate with the server instead of the default\0A port 9166. Only used on Windows or when the --tcp option is set.\0A\0A --tcp\0A Send requests on a TCP socket instead of a UNIX domain socket. This\0A switch has no effect on Windows.\0A\0A --socketFile FILENAME\0A Use the given FILENAME as the path to the UNIX domain socket. Using\0A this switch is an error on Windows.\00" * * * * * * DtoArgument * * * * * * * VarExp::toElem: programName @ string * * * * * * * * DtoSymbolAddress ('programName' of type 'string') * * * * * * * * * function param * * * * * * * * * type: string * DtoDefineFunction(client.client.createSocket): src/client/client.d(292) * * Doing function body for: createSocket * * DtoCreateNestedContext for createSocket * * * DtoCreateNestedContextType for client.client.createSocket * * CompoundStatement::toIR(): * * * CompoundStatement::toIR(): src/client/client.d(293) * * * * ExpStatement::toIR(): src/client/client.d(296) * * * * * DeclarationExp::toElem: Socket socket = null; | T=void * * * * * * DtoDeclarationExp: socket * * * * * * * VarDeclaration * * * * * * * DtoVarDeclaration(vdtype = std.socket.Socket) * * * * * * * * llvm value for decl: %socket = alloca %std.socket.Socket*, align 8 * * * * * * * * expression initializer * * * * * * * * AssignExp::toElem: socket = null | (std.socket.Socket)(std.socket.Socket = std.socket.Socket) * * * * * * * * * VarExp::toElem: socket @ std.socket.Socket * * * * * * * * * * DtoSymbolAddress ('socket' of type 'std.socket.Socket') * * * * * * * * * * * a normal variable * * * * * * * * * NullExp::toElem(type=std.socket.Socket): null * * * * * * * * * * NullExp::toConstElem(type=std.socket.Socket): null * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * DtoAssign() * * * * * * * * * * l : %socket = alloca %std.socket.Socket*, align 8 * * * * * * * * * * r : %std.socket.Socket* null * * * * IfStatement::toIR(): src/client/client.d(297) * * * * * IdentityExp::toElem: socketFile is null @ bool * * * * * * VarExp::toElem: socketFile @ string * * * * * * * DtoSymbolAddress ('socketFile' of type 'string') * * * * * * * * function param * * * * * * * * type: string * * * * * * NullExp::toElem(type=string): null * * * * * * * NullExp::toConstElem(type=string): null * * * * * * DtoArrayLen * * * * * * DtoArrayLen * * * * * * DtoArrayPtr * * * * * * DtoArrayPtr * * * * * ScopeStatement::toIR(): src/client/client.d(298) * * * * * * CompoundStatement::toIR(): src/client/client.d(298) * * * * * * * ExpStatement::toIR(): src/client/client.d(299) * * * * * * * * AssignExp::toElem: socket = new TcpSocket(cast(AddressFamily)2) | (std.socket.Socket)(std.socket.Socket = std.socket.Socket) * * * * * * * * * VarExp::toElem: socket @ std.socket.Socket * * * * * * * * * * DtoSymbolAddress ('socket' of type 'std.socket.Socket') * * * * * * * * * * * a normal variable * * * * * * * * * NewExp::toElem: new TcpSocket(cast(AddressFamily)2) @ std.socket.Socket * * * * * * * * * * new class * * * * * * * * * * Calling constructor * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * doing normal arguments * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * %.newclass_gc = bitcast %object.Object* %.newclass_gc_alloc to %std.socket.TcpSocket* * * * * * * * * * * * Function type: @safe TcpSocket(AddressFamily family) * * * * * * * * * * * DtoArgument * * * * * * * * * * * * IntegerExp::toElem: cast(AddressFamily)2 @ AddressFamily * * * * * * * * * * * * * IntegerExp::toConstElem: cast(AddressFamily)2 @ AddressFamily * * * * * * * * * * * * * * Building type: AddressFamily * * * * * * * * * * * * * * value = i32 2 * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * DtoAssign() * * * * * * * * * * l : %socket = alloca %std.socket.Socket*, align 8 * * * * * * * * * * r : %11 = call %std.socket.TcpSocket* @_D3std6socket9TcpSocket6__ctorMFNfE3std6socket13AddressFamilyZC3std6socket9TcpSocket(%std.socket.TcpSocket* returned %.newclass_gc, i32 2) * * * * * * * ExpStatement::toIR(): src/client/client.d(300) * * * * * * * * CallExp::toElem: socket.connect(new InternetAddress("localhost", port)) @ void * * * * * * * * * DotVarExp::toElem: socket.connect @ @trusted void(Address to) * * * * * * * * * * VarExp::toElem: socket @ std.socket.Socket * * * * * * * * * * * DtoSymbolAddress ('socket' of type 'std.socket.Socket') * * * * * * * * * * * * a normal variable * * * * * * * * * * vthis: %13 = load %std.socket.Socket*, %std.socket.Socket** %socket * * * * * * * * * * funcval: %16 = load void (%std.socket.Socket*, %std.socket.Address*)*, void (%std.socket.Socket*, %std.socket.Address*)** %"socket.connect@vtbl", align 8 * * * * * * * * * * isMember = this is: std.socket.Socket * * * * * * * * * * DtoFunctionType(@trusted void(Address to)) * * * * * * * * * * funcval casted: %socket.connect = load void (%std.socket.Socket*, %std.socket.Address*)*, void (%std.socket.Socket*, %std.socket.Address*)** %"socket.connect@vtbl", align 8 * * * * * * * * * DtoCallFunction() * * * * * * * * * * doing normal arguments * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * %16 = load %std.socket.Socket*, %std.socket.Socket** %socket * * * * * * * * * * Function type: @trusted void(Address to) * * * * * * * * * * DtoArgument * * * * * * * * * * * NewExp::toElem: new InternetAddress("localhost", port) @ std.socket.Address * * * * * * * * * * * * new class * * * * * * * * * * * * Calling constructor * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * %.newclass_gc2 = bitcast %object.Object* %.newclass_gc_alloc1 to %std.socket.InternetAddress* * * * * * * * * * * * * * Function type: @safe InternetAddress(const(char[]) addr, ushort port) * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * StringExp::toElem: "localhost" @ const(char[]) * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * VarExp::toElem: port @ ushort * * * * * * * * * * * * * * * DtoSymbolAddress ('port' of type 'ushort') * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * type: ushort * * * * * * * * * * arg: %22 = call %std.socket.InternetAddress* @_D3std6socket15InternetAddress6__ctorMFNfxAatZC3std6socket15InternetAddress(%std.socket.InternetAddress* returned %.newclass_gc2, i16 zeroext %21, { i64, i8* } { i64 9, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.6, i32 0, i32 0) }) * * * * * * * * * * expects: %std.socket.Address* * * * * * ScopeStatement::toIR(): src/client/client.d(303) * * * * * * CompoundStatement::toIR(): src/client/client.d(303) * * * * * * * ExpStatement::toIR(): src/client/client.d(311) * * * * * * * * AssignExp::toElem: socket = new Socket(cast(AddressFamily)1, cast(SocketType)1) | (std.socket.Socket)(std.socket.Socket = std.socket.Socket) * * * * * * * * * VarExp::toElem: socket @ std.socket.Socket * * * * * * * * * * DtoSymbolAddress ('socket' of type 'std.socket.Socket') * * * * * * * * * * * a normal variable * * * * * * * * * NewExp::toElem: new Socket(cast(AddressFamily)1, cast(SocketType)1) @ std.socket.Socket * * * * * * * * * * new class * * * * * * * * * * Calling constructor * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * doing normal arguments * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * %.newclass_gc6 = bitcast %object.Object* %.newclass_gc_alloc5 to %std.socket.Socket* * * * * * * * * * * * Function type: @safe Socket(AddressFamily af, SocketType type) * * * * * * * * * * * DtoArgument * * * * * * * * * * * * IntegerExp::toElem: cast(AddressFamily)1 @ AddressFamily * * * * * * * * * * * * * IntegerExp::toConstElem: cast(AddressFamily)1 @ AddressFamily * * * * * * * * * * * * * * Building type: AddressFamily * * * * * * * * * * * * * * value = i32 1 * * * * * * * * * * * DtoArgument * * * * * * * * * * * * IntegerExp::toElem: cast(SocketType)1 @ SocketType * * * * * * * * * * * * * IntegerExp::toConstElem: cast(SocketType)1 @ SocketType * * * * * * * * * * * * * * Building type: SocketType * * * * * * * * * * * * * * value = i32 1 * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * DtoAssign() * * * * * * * * * * l : %socket = alloca %std.socket.Socket*, align 8 * * * * * * * * * * r : %28 = call %std.socket.Socket* @_D3std6socket6Socket6__ctorMFNfE3std6socket13AddressFamilyE3std6socket10SocketTypeZC3std6socket6Socket(%std.socket.Socket* returned %.newclass_gc6, i32 1, i32 1) * * * * * * * ExpStatement::toIR(): src/client/client.d(312) * * * * * * * * CallExp::toElem: socket.connect(new UnixAddress(socketFile)) @ void * * * * * * * * * DotVarExp::toElem: socket.connect @ @trusted void(Address to) * * * * * * * * * * VarExp::toElem: socket @ std.socket.Socket * * * * * * * * * * * DtoSymbolAddress ('socket' of type 'std.socket.Socket') * * * * * * * * * * * * a normal variable * * * * * * * * * * vthis: %29 = load %std.socket.Socket*, %std.socket.Socket** %socket * * * * * * * * * * funcval: %32 = load void (%std.socket.Socket*, %std.socket.Address*)*, void (%std.socket.Socket*, %std.socket.Address*)** %"socket.connect@vtbl9", align 8 * * * * * * * * * * isMember = this is: std.socket.Socket * * * * * * * * * * DtoFunctionType(@trusted void(Address to)) * * * * * * * * * * funcval casted: %socket.connect10 = load void (%std.socket.Socket*, %std.socket.Address*)*, void (%std.socket.Socket*, %std.socket.Address*)** %"socket.connect@vtbl9", align 8 * * * * * * * * * DtoCallFunction() * * * * * * * * * * doing normal arguments * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * %32 = load %std.socket.Socket*, %std.socket.Socket** %socket * * * * * * * * * * Function type: @trusted void(Address to) * * * * * * * * * * DtoArgument * * * * * * * * * * * NewExp::toElem: new UnixAddress(socketFile) @ std.socket.Address * * * * * * * * * * * * new class * * * * * * * * * * * * Calling constructor * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * %.newclass_gc12 = bitcast %object.Object* %.newclass_gc_alloc11 to %std.socket.UnixAddress* * * * * * * * * * * * * * Function type: pure nothrow @trusted UnixAddress(const(char[]) path) * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * VarExp::toElem: socketFile @ const(char[]) * * * * * * * * * * * * * * * DtoSymbolAddress ('socketFile' of type 'string') * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * type: string * * * * * * * * * * arg: %38 = call %std.socket.UnixAddress* @_D3std6socket11UnixAddress6__ctorMFNaNbNexAaZC3std6socket11UnixAddress(%std.socket.UnixAddress* returned %.newclass_gc12, { i64, i8* } %37) * * * * * * * * * * expects: %std.socket.Address* * * * * ExpStatement::toIR(): src/client/client.d(315) * * * * * CallExp::toElem: socket.setOption(cast(SocketOptionLevel)1, cast(SocketOption)20, dur(5L)) @ void * * * * * * DotVarExp::toElem: socket.setOption @ @trusted void(SocketOptionLevel level, SocketOption option, Duration value) * * * * * * * VarExp::toElem: socket @ std.socket.Socket * * * * * * * * DtoSymbolAddress ('socket' of type 'std.socket.Socket') * * * * * * * * * a normal variable * * * * * * * vthis: %40 = load %std.socket.Socket*, %std.socket.Socket** %socket * * * * * * * funcval: %43 = load void (%std.socket.Socket*, %core.time.Duration, i32, i32)*, void (%std.socket.Socket*, %core.time.Duration, i32, i32)** %"socket.setOption@vtbl", align 8 * * * * * * * isMember = this is: std.socket.Socket * * * * * * * DtoFunctionType(@trusted void(SocketOptionLevel level, SocketOption option, Duration value)) * * * * * * * funcval casted: %socket.setOption = load void (%std.socket.Socket*, %core.time.Duration, i32, i32)*, void (%std.socket.Socket*, %core.time.Duration, i32, i32)** %"socket.setOption@vtbl", align 8 * * * * * * DtoCallFunction() * * * * * * * doing normal arguments * * * * * * * Arguments so far: (1) * * * * * * * * %43 = load %std.socket.Socket*, %std.socket.Socket** %socket * * * * * * * Function type: @trusted void(SocketOptionLevel level, SocketOption option, Duration value) * * * * * * * DtoArgument * * * * * * * * IntegerExp::toElem: cast(SocketOptionLevel)1 @ SocketOptionLevel * * * * * * * * * IntegerExp::toConstElem: cast(SocketOptionLevel)1 @ SocketOptionLevel * * * * * * * * * * Building type: SocketOptionLevel * * * * * * * * * * value = i32 1 * * * * * * * DtoArgument * * * * * * * * IntegerExp::toElem: cast(SocketOption)20 @ SocketOption * * * * * * * * * IntegerExp::toConstElem: cast(SocketOption)20 @ SocketOption * * * * * * * * * * Building type: SocketOption * * * * * * * * * * value = i32 20 * * * * * * * DtoArgument * * * * * * * * CallExp::toElem: dur(5L) @ Duration * * * * * * * * * VarExp::toElem: dur @ pure nothrow @nogc @safe Duration(long length) * * * * * * * * * * DtoSymbolAddress ('dur' of type 'pure nothrow @nogc @safe Duration(long length)') * * * * * * * * * * * FuncDeclaration * * * * * * * * * DtoCallFunction() * * * * * * * * * * doing normal arguments * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * Function type: pure nothrow @nogc @safe Duration(long length) * * * * * * * * * * DtoArgument * * * * * * * * * * * IntegerExp::toElem: 5L @ long * * * * * * * * * * * * IntegerExp::toConstElem: 5L @ long * * * * * * * * * * * * * value = i64 5 * * * * * * * * * * Storing return value to stack slot * * * * * * * Loading struct type for function argument * * * * ExpStatement::toIR(): src/client/client.d(316) * * * * * CallExp::toElem: socket.blocking(true) @ void * * * * * * DotVarExp::toElem: socket.blocking @ @property @trusted void(bool byes) * * * * * * * VarExp::toElem: socket @ std.socket.Socket * * * * * * * * DtoSymbolAddress ('socket' of type 'std.socket.Socket') * * * * * * * * * a normal variable * * * * * * * vthis: %47 = load %std.socket.Socket*, %std.socket.Socket** %socket * * * * * * * funcval: %50 = load void (%std.socket.Socket*, i1)*, void (%std.socket.Socket*, i1)** %"socket.blocking@vtbl", align 8 * * * * * * * isMember = this is: std.socket.Socket * * * * * * * DtoFunctionType(@property @trusted void(bool byes)) * * * * * * * funcval casted: %socket.blocking = load void (%std.socket.Socket*, i1)*, void (%std.socket.Socket*, i1)** %"socket.blocking@vtbl", align 8 * * * * * * DtoCallFunction() * * * * * * * doing normal arguments * * * * * * * Arguments so far: (1) * * * * * * * * %50 = load %std.socket.Socket*, %std.socket.Socket** %socket * * * * * * * Function type: @property @trusted void(bool byes) * * * * * * * DtoArgument * * * * * * * * IntegerExp::toElem: true @ bool * * * * * * * * * IntegerExp::toConstElem: true @ bool * * * * * * * * * * value = i1 true * * * * ReturnStatement::toIR(): src/client/client.d(317) * * * * * VarExp::toElem: socket @ std.socket.Socket * * * * * * DtoSymbolAddress ('socket' of type 'std.socket.Socket') * * * * * * * a normal variable * * * * * return value is '0x12e05cc8' * DtoDefineFunction(client.client.printDocResponse): src/client/client.d(320) * * Doing function body for: printDocResponse * * DtoCreateNestedContext for printDocResponse * * * DtoCreateNestedContextType for client.client.printDocResponse * * CompoundStatement::toIR(): * * * CompoundStatement::toIR(): src/client/client.d(321) * * * * ExpStatement::toIR(): src/client/client.d(323) * * * * * CallExp::toElem: writeln(join(response.docComments, "\\n\\n")) @ void * * * * * * VarExp::toElem: writeln @ @safe void(string _param_0) * * * * * * * DtoSymbolAddress ('writeln' of type '@safe void(string _param_0)') * * * * * * * * FuncDeclaration * * * * * * DtoCallFunction() * * * * * * * doing normal arguments * * * * * * * Arguments so far: (0) * * * * * * * Function type: @safe void(string _param_0) * * * * * * * DtoArgument * * * * * * * * CallExp::toElem: join(response.docComments, "\\n\\n") @ string * * * * * * * * * VarExp::toElem: join @ pure nothrow @safe string(string[] ror, string sep) * * * * * * * * * * DtoSymbolAddress ('join' of type 'pure nothrow @safe string(string[] ror, string sep)') * * * * * * * * * * * FuncDeclaration * * * * * * * * * DtoCallFunction() * * * * * * * * * * Building type: pure nothrow @safe string(string[] ror, string sep) * * * * * * * * * * * DtoFunctionType(pure nothrow @safe string(string[] ror, string sep)) * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * Final function type: { i64, i8* } ({ i64, i8* }, { i64, { i64, i8* }* }) * * * * * * * * * * doing normal arguments * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * Function type: pure nothrow @safe string(string[] ror, string sep) * * * * * * * * * * DtoArgument * * * * * * * * * * * DotVarExp::toElem: response.docComments @ string[] * * * * * * * * * * * * VarExp::toElem: response @ AutocompleteResponse * * * * * * * * * * * * * DtoSymbolAddress ('response' of type 'AutocompleteResponse') * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * type: AutocompleteResponse * * * * * * * * * * * * Indexing aggregate field common.messages.AutocompleteResponse.docComments: * * * * * * * * * * * * * Value: %1 = getelementptr %common.messages.AutocompleteResponse, %common.messages.AutocompleteResponse* %response_arg, i32 0, i32 3 * * * * * * * * * * DtoArgument * * * * * * * * * * * StringExp::toElem: "\\n\\n" @ string * * * * * * * * * * * * type: [5 x i8] * * * * * * * * * * * * init: [5 x i8] c"\5Cn\5Cn\00" * DtoDefineFunction(client.client.printLocationResponse): src/client/client.d(326) * * Doing function body for: printLocationResponse * * DtoCreateNestedContext for printLocationResponse * * * DtoCreateNestedContextType for client.client.printLocationResponse * * CompoundStatement::toIR(): * * * IfStatement::toIR(): src/client/client.d(328) * * * * IdentityExp::toElem: response.symbolFilePath is null @ bool * * * * * DotVarExp::toElem: response.symbolFilePath @ string * * * * * * VarExp::toElem: response @ AutocompleteResponse * * * * * * * DtoSymbolAddress ('response' of type 'AutocompleteResponse') * * * * * * * * function param * * * * * * * * type: AutocompleteResponse * * * * * * Indexing aggregate field common.messages.AutocompleteResponse.symbolFilePath: * * * * * * * Value: %1 = getelementptr %common.messages.AutocompleteResponse, %common.messages.AutocompleteResponse* %response_arg, i32 0, i32 1 * * * * * NullExp::toElem(type=string): null * * * * * * NullExp::toConstElem(type=string): null * * * * * DtoArrayLen * * * * * DtoArrayLen * * * * * DtoArrayPtr * * * * * DtoArrayPtr * * * * ExpStatement::toIR(): src/client/client.d(329) * * * * * CallExp::toElem: writeln("Not found") @ void * * * * * * VarExp::toElem: writeln @ @safe void(string _param_0) * * * * * * * DtoSymbolAddress ('writeln' of type '@safe void(string _param_0)') * * * * * * * * FuncDeclaration * * * * * * DtoCallFunction() * * * * * * * doing normal arguments * * * * * * * Arguments so far: (0) * * * * * * * Function type: @safe void(string _param_0) * * * * * * * DtoArgument * * * * * * * * StringExp::toElem: "Not found" @ string * * * * * * * * * type: [10 x i8] * * * * * * * * * init: [10 x i8] c"Not found\00" * * * * ExpStatement::toIR(): src/client/client.d(331) * * * * * CallExp::toElem: writefln("%s\x09%d", response.symbolFilePath, response.symbolLocation) @ void * * * * * * VarExp::toElem: writefln @ @safe void(string _param_0, string _param_1, ulong _param_2) * * * * * * * DtoSymbolAddress ('writefln' of type '@safe void(string _param_0, string _param_1, ulong _param_2)') * * * * * * * * FuncDeclaration * * * * * * * * DtoFunctionType(@safe void(string _param_0, string _param_1, ulong _param_2)) * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * Final function type: void (i64, { i64, i8* }, { i64, i8* }) * * * * * * * * DtoResolveFunction(std.stdio.writefln!(string, string, ulong).writefln): /usr/include/dlang/ldc/std/stdio.d(3205) * * * * * * * * * DtoDeclareFunction(std.stdio.writefln!(string, string, ulong).writefln): /usr/include/dlang/ldc/std/stdio.d(3205) * * * * * * * * * * DtoFunctionType(@safe void(string _param_0, string _param_1, ulong _param_2)) * * * * * * * * * * func = declare void @_D3std5stdio23__T8writeflnTAyaTAyaTmZ8writeflnFNfAyaAyamZv(i64, { i64, i8* }, { i64, i8* }) * * * * * * DtoCallFunction() * * * * * * * Building type: @safe void(string _param_0, string _param_1, ulong _param_2) * * * * * * * * DtoFunctionType(@safe void(string _param_0, string _param_1, ulong _param_2)) * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * Final function type: void (i64, { i64, i8* }, { i64, i8* }) * * * * * * * doing normal arguments * * * * * * * Arguments so far: (0) * * * * * * * Function type: @safe void(string _param_0, string _param_1, ulong _param_2) * * * * * * * DtoArgument * * * * * * * * StringExp::toElem: "%s\x09%d" @ string * * * * * * * * * type: [6 x i8] * * * * * * * * * init: [6 x i8] c"%s\09%d\00" * * * * * * * DtoArgument * * * * * * * * DotVarExp::toElem: response.symbolFilePath @ string * * * * * * * * * VarExp::toElem: response @ AutocompleteResponse * * * * * * * * * * DtoSymbolAddress ('response' of type 'AutocompleteResponse') * * * * * * * * * * * function param * * * * * * * * * * * type: AutocompleteResponse * * * * * * * * * Indexing aggregate field common.messages.AutocompleteResponse.symbolFilePath: * * * * * * * * * * Value: %8 = getelementptr %common.messages.AutocompleteResponse, %common.messages.AutocompleteResponse* %response_arg, i32 0, i32 1 * * * * * * * DtoArgument * * * * * * * * DotVarExp::toElem: response.symbolLocation @ ulong * * * * * * * * * VarExp::toElem: response @ AutocompleteResponse * * * * * * * * * * DtoSymbolAddress ('response' of type 'AutocompleteResponse') * * * * * * * * * * * function param * * * * * * * * * * * type: AutocompleteResponse * * * * * * * * * Indexing aggregate field common.messages.AutocompleteResponse.symbolLocation: * * * * * * * * * * Value: %9 = getelementptr %common.messages.AutocompleteResponse, %common.messages.AutocompleteResponse* %response_arg, i32 0, i32 2 * DtoDefineFunction(client.client.printCompletionResponse): src/client/client.d(334) * * Doing function body for: printCompletionResponse * * DtoCreateNestedContext for printCompletionResponse * * * DtoCreateNestedContextType for client.client.printCompletionResponse * * CompoundStatement::toIR(): * * * IfStatement::toIR(): src/client/client.d(336) * * * * CmpExp::toElem: response.completions.length > 0LU @ bool * * * * * ArrayLengthExp::toElem: response.completions.length @ ulong * * * * * * DotVarExp::toElem: response.completions @ string[] * * * * * * * VarExp::toElem: response @ AutocompleteResponse * * * * * * * * DtoSymbolAddress ('response' of type 'AutocompleteResponse') * * * * * * * * * function param * * * * * * * * * type: AutocompleteResponse * * * * * * * Indexing aggregate field common.messages.AutocompleteResponse.completions: * * * * * * * * Value: %1 = getelementptr %common.messages.AutocompleteResponse, %common.messages.AutocompleteResponse* %response_arg, i32 0, i32 4 * * * * * * DtoArrayLen * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * value = i64 0 * * * * * type 1: %.len = load i64, i64* %2 * * * * * type 2: i64 0 * * * * ScopeStatement::toIR(): src/client/client.d(337) * * * * * CompoundStatement::toIR(): src/client/client.d(337) * * * * * * ExpStatement::toIR(): src/client/client.d(338) * * * * * * * CallExp::toElem: writeln(response.completionType) @ void * * * * * * * * VarExp::toElem: writeln @ @safe void(string _param_0) * * * * * * * * * DtoSymbolAddress ('writeln' of type '@safe void(string _param_0)') * * * * * * * * * * FuncDeclaration * * * * * * * * DtoCallFunction() * * * * * * * * * doing normal arguments * * * * * * * * * Arguments so far: (0) * * * * * * * * * Function type: @safe void(string _param_0) * * * * * * * * * DtoArgument * * * * * * * * * * DotVarExp::toElem: response.completionType @ string * * * * * * * * * * * VarExp::toElem: response @ AutocompleteResponse * * * * * * * * * * * * DtoSymbolAddress ('response' of type 'AutocompleteResponse') * * * * * * * * * * * * * function param * * * * * * * * * * * * * type: AutocompleteResponse * * * * * * * * * * * Indexing aggregate field common.messages.AutocompleteResponse.completionType: * * * * * * * * * * * * Value: %4 = getelementptr %common.messages.AutocompleteResponse, %common.messages.AutocompleteResponse* %response_arg, i32 0, i32 0 * * * * * * ExpStatement::toIR(): src/client/client.d(339) * * * * * * * DeclarationExp::toElem: Appender!(string[]) app = appender(); | T=void * * * * * * * * DtoDeclarationExp: app * * * * * * * * * VarDeclaration * * * * * * * * * DtoVarDeclaration(vdtype = Appender!(string[])) * * * * * * * * * * llvm value for decl: %app = alloca %"std.array.Appender!(string[]).Appender", align 8 * * * * * * * * * * expression initializer * * * * * * * * * * AssignExp::toElem: app = appender() | (Appender!(string[]))(Appender!(string[]) = Appender!(string[])) * * * * * * * * * * * VarExp::toElem: app @ Appender!(string[]) * * * * * * * * * * * * DtoSymbolAddress ('app' of type 'Appender!(string[])') * * * * * * * * * * * * * a normal variable * * * * * * * * * * * CallExp::toElem: appender() @ Appender!(string[]) * * * * * * * * * * * * VarExp::toElem: appender @ pure nothrow @safe Appender!(string[])() * * * * * * * * * * * * * DtoSymbolAddress ('appender' of type 'pure nothrow @safe Appender!(string[])()') * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * Building type: pure nothrow @safe Appender!(string[])() * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @safe Appender!(string[])()) * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * Final function type: %"std.array.Appender!(string[]).Appender" () * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * Function type: pure nothrow @safe Appender!(string[])() * * * * * * * * * * * * * Storing return value to stack slot * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * DtoAssign() * * * * * * IfStatement::toIR(): src/client/client.d(340) * * * * * * * EqualExp::toElem: response.completionType == "identifiers" @ bool * * * * * * * * DotVarExp::toElem: response.completionType @ string * * * * * * * * * VarExp::toElem: response @ AutocompleteResponse * * * * * * * * * * DtoSymbolAddress ('response' of type 'AutocompleteResponse') * * * * * * * * * * * function param * * * * * * * * * * * type: AutocompleteResponse * * * * * * * * * Indexing aggregate field common.messages.AutocompleteResponse.completionType: * * * * * * * * * * Value: %10 = getelementptr %common.messages.AutocompleteResponse, %common.messages.AutocompleteResponse* %response_arg, i32 0, i32 0 * * * * * * * * StringExp::toElem: "identifiers" @ CompletionType * * * * * * * * * type: [12 x i8] * * * * * * * * * init: [12 x i8] c"identifiers\00" * * * * * * * * static or dynamic array * * * * * * * * comparing arrays * * * * * * * * casting to dynamic arrays * * * * * * * * DtoCastArray * * * * * * * * * from array or sarray * * * * * * * * * to array * * * * * * * * * DtoArrayLen * * * * * * * * * DtoArrayPtr * * * * * * * * * isslice * * * * * * * * DtoCastArray * * * * * * * * * from array or sarray * * * * * * * * * to array * * * * * * * * * DtoArrayLen * * * * * * * * * DtoArrayPtr * * * * * * * * * isslice * * * * * * * * DtoTypeInfoOf(type = 'string', base='1') * * * * * * * * * Type::getTypeInfo(): string * * * * * * * * * TypeInfoDeclaration::codegen(typeid(string)) * * * * * * * ScopeStatement::toIR(): src/client/client.d(341) * * * * * * * * ScopeStatement::toIR(): src/client/client.d(342) * * * * * * * * * CompoundStatement::toIR(): src/client/client.d(342) * * * * * * * * * * ExpStatement::toIR(): src/client/client.d(342) * * * * * * * * * * * DeclarationExp::toElem: ulong i = 0LU; | T=void * * * * * * * * * * * * DtoDeclarationExp: i * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * * * * * * llvm value for decl: %i = alloca i64, align 8 * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * AssignExp::toElem: i = 0LU | (ulong)(ulong = ulong) * * * * * * * * * * * * * * * VarExp::toElem: i @ ulong * * * * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'ulong') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * lhs: %i = alloca i64, align 8 * * * * * * * * * * * * * * * * rhs: i64 0 * * * * * * * * * * ForStatement::toIR(): src/client/client.d(342) * * * * * * * * * * * CmpExp::toElem: i < response.completions.length @ bool * * * * * * * * * * * * VarExp::toElem: i @ ulong * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'ulong') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * ArrayLengthExp::toElem: response.completions.length @ ulong * * * * * * * * * * * * * DotVarExp::toElem: response.completions @ string[] * * * * * * * * * * * * * * VarExp::toElem: response @ AutocompleteResponse * * * * * * * * * * * * * * * DtoSymbolAddress ('response' of type 'AutocompleteResponse') * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * type: AutocompleteResponse * * * * * * * * * * * * * * Indexing aggregate field common.messages.AutocompleteResponse.completions: * * * * * * * * * * * * * * * Value: %18 = getelementptr %common.messages.AutocompleteResponse, %common.messages.AutocompleteResponse* %response_arg, i32 0, i32 4 * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * type 1: %20 = load i64, i64* %i * * * * * * * * * * * * type 2: %.len4 = load i64, i64* %19 * * * * * * * * * * * ExpStatement::toIR(): src/client/client.d(343) * * * * * * * * * * * * CallExp::toElem: app.put(format("%s\x09%s", response.completions[i], response.completionKinds[i])) @ void * * * * * * * * * * * * * DotVarExp::toElem: app.put @ pure nothrow @safe void(string item) * * * * * * * * * * * * * * VarExp::toElem: app @ Appender!(string[]) * * * * * * * * * * * * * * * DtoSymbolAddress ('app' of type 'Appender!(string[])') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * Building type: pure nothrow @safe void(string item) * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @safe void(string item)) * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * Final function type: void ({ i64, i8* }) * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * %app = alloca %"std.array.Appender!(string[]).Appender", align 8 * * * * * * * * * * * * * * Function type: pure nothrow @safe void(string item) * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * CallExp::toElem: format("%s\x09%s", response.completions[i], response.completionKinds[i]) @ string * * * * * * * * * * * * * * * * VarExp::toElem: format @ pure @safe string(const(char[]) fmt, string _param_1, char _param_2) * * * * * * * * * * * * * * * * * DtoSymbolAddress ('format' of type 'pure @safe string(const(char[]) fmt, string _param_1, char _param_2)') * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * Building type: pure @safe string(const(char[]) fmt, string _param_1, char _param_2) * * * * * * * * * * * * * * * * * * DtoFunctionType(pure @safe string(const(char[]) fmt, string _param_1, char _param_2)) * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * Final function type: { i64, i8* } (i8, { i64, i8* }, { i64, i8* }) * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * Function type: pure @safe string(const(char[]) fmt, string _param_1, char _param_2) * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * StringExp::toElem: "%s\x09%s" @ const(char[]) * * * * * * * * * * * * * * * * * * * type: [6 x i8] * * * * * * * * * * * * * * * * * * * init: [6 x i8] c"%s\09%s\00" * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * IndexExp::toElem: response.completions[i] @ string * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: response.completions @ string[] * * * * * * * * * * * * * * * * * * * * VarExp::toElem: response @ AutocompleteResponse * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('response' of type 'AutocompleteResponse') * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * type: AutocompleteResponse * * * * * * * * * * * * * * * * * * * * Indexing aggregate field common.messages.AutocompleteResponse.completions: * * * * * * * * * * * * * * * * * * * * * Value: %22 = getelementptr %common.messages.AutocompleteResponse, %common.messages.AutocompleteResponse* %response_arg, i32 0, i32 4 * * * * * * * * * * * * * * * * * * * VarExp::toElem: i @ ulong * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * IndexExp::toElem: response.completionKinds[i] @ char * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: response.completionKinds @ char[] * * * * * * * * * * * * * * * * * * * * VarExp::toElem: response @ AutocompleteResponse * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('response' of type 'AutocompleteResponse') * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * type: AutocompleteResponse * * * * * * * * * * * * * * * * * * * * Indexing aggregate field common.messages.AutocompleteResponse.completionKinds: * * * * * * * * * * * * * * * * * * * * * Value: %26 = getelementptr %common.messages.AutocompleteResponse, %common.messages.AutocompleteResponse* %response_arg, i32 0, i32 5 * * * * * * * * * * * * * * * * * * * VarExp::toElem: i @ ulong * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * PostExp::toElem: i++ @ ulong * * * * * * * * * * * * VarExp::toElem: i @ ulong * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'ulong') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * value = i64 1 * * * * * * * ScopeStatement::toIR(): src/client/client.d(346) * * * * * * * * ScopeStatement::toIR(): src/client/client.d(347) * * * * * * * * * CompoundStatement::toIR(): src/client/client.d(347) * * * * * * * * * * ExpStatement::toIR(): src/client/client.d(347) * * * * * * * * * * * DeclarationExp::toElem: string[] __aggr3417 = response.completions[]; | T=void * * * * * * * * * * * * DtoDeclarationExp: __aggr3417 * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * DtoVarDeclaration(vdtype = string[]) * * * * * * * * * * * * * * llvm value for decl: %__aggr3417 = alloca { i64, { i64, i8* }* }, align 8 * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * AssignExp::toElem: __aggr3417 = response.completions[] | (string[])(string[] = string[]) * * * * * * * * * * * * * * * VarExp::toElem: __aggr3417 @ string[] * * * * * * * * * * * * * * * * DtoSymbolAddress ('__aggr3417' of type 'string[]') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * SliceExp::toElem: response.completions[] @ string[] * * * * * * * * * * * * * * * * DotVarExp::toElem: response.completions @ string[] * * * * * * * * * * * * * * * * * VarExp::toElem: response @ AutocompleteResponse * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('response' of type 'AutocompleteResponse') * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * type: AutocompleteResponse * * * * * * * * * * * * * * * * * Indexing aggregate field common.messages.AutocompleteResponse.completions: * * * * * * * * * * * * * * * * * * Value: %18 = getelementptr %common.messages.AutocompleteResponse, %common.messages.AutocompleteResponse* %response_arg, i32 0, i32 4 * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * SetArray * * * * * * * * * * ExpStatement::toIR(): src/client/client.d(347) * * * * * * * * * * * DeclarationExp::toElem: ulong __key3418 = 0LU; | T=void * * * * * * * * * * * * DtoDeclarationExp: __key3418 * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * * * * * * llvm value for decl: %__key3418 = alloca i64, align 8 * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * AssignExp::toElem: __key3418 = 0LU | (ulong)(ulong = ulong) * * * * * * * * * * * * * * * VarExp::toElem: __key3418 @ ulong * * * * * * * * * * * * * * * * DtoSymbolAddress ('__key3418' of type 'ulong') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * lhs: %__key3418 = alloca i64, align 8 * * * * * * * * * * * * * * * * rhs: i64 0 * * * * * * * * * * ForStatement::toIR(): src/client/client.d(347) * * * * * * * * * * * CmpExp::toElem: __key3418 < __aggr3417.length @ bool * * * * * * * * * * * * VarExp::toElem: __key3418 @ ulong * * * * * * * * * * * * * DtoSymbolAddress ('__key3418' of type 'ulong') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * ArrayLengthExp::toElem: __aggr3417.length @ ulong * * * * * * * * * * * * * VarExp::toElem: __aggr3417 @ string[] * * * * * * * * * * * * * * DtoSymbolAddress ('__aggr3417' of type 'string[]') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * type 1: %41 = load i64, i64* %__key3418 * * * * * * * * * * * * type 2: %.len13 = load i64, i64* %40 * * * * * * * * * * * CompoundStatement::toIR(): src/client/client.d(347) * * * * * * * * * * * * ExpStatement::toIR(): src/client/client.d(347) * * * * * * * * * * * * * DeclarationExp::toElem: string completion = __aggr3417[__key3418]; | T=void * * * * * * * * * * * * * * DtoDeclarationExp: completion * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = string) * * * * * * * * * * * * * * * * llvm value for decl: %completion = alloca { i64, i8* }, align 8 * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * AssignExp::toElem: completion = __aggr3417[__key3418] | (string)(string = string) * * * * * * * * * * * * * * * * * VarExp::toElem: completion @ string * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('completion' of type 'string') * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * IndexExp::toElem: __aggr3417[__key3418] @ string * * * * * * * * * * * * * * * * * * VarExp::toElem: __aggr3417 @ string[] * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__aggr3417' of type 'string[]') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * VarExp::toElem: __key3418 @ ulong * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__key3418' of type 'ulong') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * * SetArray * * * * * * * * * * * * ExpStatement::toIR(): src/client/client.d(349) * * * * * * * * * * * * * CallExp::toElem: app.put(completion) @ void * * * * * * * * * * * * * * DotVarExp::toElem: app.put @ pure nothrow @safe void(string item) * * * * * * * * * * * * * * * VarExp::toElem: app @ Appender!(string[]) * * * * * * * * * * * * * * * * DtoSymbolAddress ('app' of type 'Appender!(string[])') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * %app = alloca %"std.array.Appender!(string[]).Appender", align 8 * * * * * * * * * * * * * * * Function type: pure nothrow @safe void(string item) * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * VarExp::toElem: completion @ string * * * * * * * * * * * * * * * * * DtoSymbolAddress ('completion' of type 'string') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * AddAssignExp::toElem: __key3418 += 1LU @ ulong * * * * * * * * * * * * Caching l-value of __key3418 += 1LU => __key3418 * * * * * * * * * * * * * VarExp::toElem: __key3418 @ ulong * * * * * * * * * * * * * * DtoSymbolAddress ('__key3418' of type 'ulong') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * AddExp::toElem: __key3418 + 1LU @ ulong * * * * * * * * * * * * * VarExp::toElem: __key3418 @ ulong * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * lhs: %__key3418 = alloca i64, align 8 * * * * * * * * * * * * * rhs: %52 = add i64 %51, 1 * * * * * * ScopeStatement::toIR(): src/client/client.d(353) * * * * * * * CompoundStatement::toIR(): src/client/client.d(353) * * * * * * * * ExpStatement::toIR(): src/client/client.d(353) * * * * * * * * * DeclarationExp::toElem: UniqResult!(binaryFun, SortedRange!(string[], "a < b")) __r3422 = uniq(sort(app.data())).opSlice(); | T=void * * * * * * * * * * DtoDeclarationExp: __r3422 * * * * * * * * * * * VarDeclaration * * * * * * * * * * * DtoVarDeclaration(vdtype = UniqResult!(binaryFun, SortedRange!(string[], "a < b"))) * * * * * * * * * * * * llvm value for decl: %__r3422 = alloca %"std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], \22a < b\22)).UniqResult", align 8 * * * * * * * * * * * * expression initializer * * * * * * * * * * * * AssignExp::toElem: __r3422 = uniq(sort(app.data())).opSlice() | (UniqResult!(binaryFun, SortedRange!(string[], "a < b")))(UniqResult!(binaryFun, SortedRange!(string[], "a < b")) = UniqResult!(binaryFun, SortedRange!(string[], "a < b"))) * * * * * * * * * * * * * VarExp::toElem: __r3422 @ UniqResult!(binaryFun, SortedRange!(string[], "a < b")) * * * * * * * * * * * * * * DtoSymbolAddress ('__r3422' of type 'UniqResult!(binaryFun, SortedRange!(string[], "a < b"))') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * CallExp::toElem: uniq(sort(app.data())).opSlice() @ UniqResult!(binaryFun, SortedRange!(string[], "a < b")) * * * * * * * * * * * * * * DotVarExp::toElem: uniq(sort(app.data())).opSlice @ pure nothrow @nogc @safe UniqResult!(binaryFun, SortedRange!(string[], "a < b"))() * * * * * * * * * * * * * * * CallExp::toElem: uniq(sort(app.data())) @ UniqResult!(binaryFun, SortedRange!(string[], "a < b")) * * * * * * * * * * * * * * * * VarExp::toElem: uniq @ pure nothrow @nogc @safe UniqResult!(binaryFun, SortedRange!(string[], "a < b"))(SortedRange!(string[], "a < b") r) * * * * * * * * * * * * * * * * * DtoSymbolAddress ('uniq' of type 'pure nothrow @nogc @safe UniqResult!(binaryFun, SortedRange!(string[], "a < b"))(SortedRange!(string[], "a < b") r)') * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * Building type: pure nothrow @nogc @safe UniqResult!(binaryFun, SortedRange!(string[], "a < b"))(SortedRange!(string[], "a < b") r) * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe UniqResult!(binaryFun, SortedRange!(string[], "a < b"))(SortedRange!(string[], "a < b") r)) * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * Final function type: %"std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], \22a < b\22)).UniqResult" (%"std.range.SortedRange!(string[], \22a < b\22).SortedRange") * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @safe UniqResult!(binaryFun, SortedRange!(string[], "a < b"))(SortedRange!(string[], "a < b") r) * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * CallExp::toElem: sort(app.data()) @ SortedRange!(string[], "a < b") * * * * * * * * * * * * * * * * * * * VarExp::toElem: sort @ pure nothrow @nogc @safe SortedRange!(string[], "a < b")(string[] r) * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('sort' of type 'pure nothrow @nogc @safe SortedRange!(string[], "a < b")(string[] r)') * * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * Building type: pure nothrow @nogc @safe SortedRange!(string[], "a < b")(string[] r) * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe SortedRange!(string[], "a < b")(string[] r)) * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * * * Final function type: %"std.range.SortedRange!(string[], \22a < b\22).SortedRange" ({ i64, { i64, i8* }* }) * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @safe SortedRange!(string[], "a < b")(string[] r) * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * CallExp::toElem: app.data() @ string[] * * * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: app.data @ inout pure nothrow @nogc @property @trusted inout(string)[]() * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: app @ Appender!(string[]) * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('app' of type 'Appender!(string[])') * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * * * Building type: inout pure nothrow @nogc @property @trusted inout(string)[]() * * * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(inout pure nothrow @nogc @property @trusted inout(string)[]()) * * * * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * * * * * * Final function type: { i64, { i64, i8* }* } () * * * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * * * * * * * %app = alloca %"std.array.Appender!(string[]).Appender", align 8 * * * * * * * * * * * * * * * * * * * * * * * Function type: inout pure nothrow @nogc @property @trusted inout(string)[]() * * * * * * * * * * * * * * * * * * * * Storing return value to stack slot * * * * * * * * * * * * * * * * * Loading struct type for function argument * * * * * * * * * * * * * * * * * Storing return value to stack slot * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * Building type: pure nothrow @nogc @safe UniqResult!(binaryFun, SortedRange!(string[], "a < b"))() * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe UniqResult!(binaryFun, SortedRange!(string[], "a < b"))()) * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * Final function type: %"std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], \22a < b\22)).UniqResult" () * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * %3 = alloca %"std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], \22a < b\22)).UniqResult", align 8 * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @safe UniqResult!(binaryFun, SortedRange!(string[], "a < b"))() * * * * * * * * * * * * * * * Storing return value to stack slot * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * DtoAssign() * * * * * * * * ForStatement::toIR(): src/client/client.d(353) * * * * * * * * * NotExp::toElem: !__r3422.empty() @ bool * * * * * * * * * * CallExp::toElem: __r3422.empty() @ bool * * * * * * * * * * * DotVarExp::toElem: __r3422.empty @ pure nothrow @nogc @property @safe bool() * * * * * * * * * * * * VarExp::toElem: __r3422 @ UniqResult!(binaryFun, SortedRange!(string[], "a < b")) * * * * * * * * * * * * * DtoSymbolAddress ('__r3422' of type 'UniqResult!(binaryFun, SortedRange!(string[], "a < b"))') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * Building type: pure nothrow @nogc @property @safe bool() * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @property @safe bool()) * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * Final function type: i1 () * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * %__r3422 = alloca %"std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], \22a < b\22)).UniqResult", align 8 * * * * * * * * * * * * Function type: pure nothrow @nogc @property @safe bool() * * * * * * * * * CompoundStatement::toIR(): src/client/client.d(353) * * * * * * * * * * ExpStatement::toIR(): src/client/client.d(353) * * * * * * * * * * * DeclarationExp::toElem: string line = __r3422.front(); | T=void * * * * * * * * * * * * DtoDeclarationExp: line * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * DtoVarDeclaration(vdtype = string) * * * * * * * * * * * * * * llvm value for decl: %line = alloca { i64, i8* }, align 8 * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * AssignExp::toElem: line = __r3422.front() | (string)(string = string) * * * * * * * * * * * * * * * VarExp::toElem: line @ string * * * * * * * * * * * * * * * * DtoSymbolAddress ('line' of type 'string') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * CallExp::toElem: __r3422.front() @ string * * * * * * * * * * * * * * * * DotVarExp::toElem: __r3422.front @ pure nothrow @nogc @property @safe string() * * * * * * * * * * * * * * * * * VarExp::toElem: __r3422 @ UniqResult!(binaryFun, SortedRange!(string[], "a < b")) * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__r3422' of type 'UniqResult!(binaryFun, SortedRange!(string[], "a < b"))') * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * Building type: pure nothrow @nogc @property @safe string() * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @property @safe string()) * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * Final function type: { i64, i8* } () * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * %__r3422 = alloca %"std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], \22a < b\22)).UniqResult", align 8 * * * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @property @safe string() * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * SetArray * * * * * * * * * * ExpStatement::toIR(): src/client/client.d(354) * * * * * * * * * * * CallExp::toElem: writeln(line) @ void * * * * * * * * * * * * VarExp::toElem: writeln @ @safe void(string _param_0) * * * * * * * * * * * * * DtoSymbolAddress ('writeln' of type '@safe void(string _param_0)') * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * Function type: @safe void(string _param_0) * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * VarExp::toElem: line @ string * * * * * * * * * * * * * * * DtoSymbolAddress ('line' of type 'string') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * CallExp::toElem: __r3422.popFront() @ void * * * * * * * * * * DotVarExp::toElem: __r3422.popFront @ pure nothrow @nogc @safe void() * * * * * * * * * * * VarExp::toElem: __r3422 @ UniqResult!(binaryFun, SortedRange!(string[], "a < b")) * * * * * * * * * * * * DtoSymbolAddress ('__r3422' of type 'UniqResult!(binaryFun, SortedRange!(string[], "a < b"))') * * * * * * * * * * * * * a normal variable * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * Building type: pure nothrow @nogc @safe void() * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe void()) * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * Final function type: void () * * * * * * * * * * * doing normal arguments * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * %__r3422 = alloca %"std.algorithm.iteration.UniqResult!(binaryFun, SortedRange!(string[], \22a < b\22)).UniqResult", align 8 * * * * * * * * * * * Function type: pure nothrow @nogc @safe void() * DtoDefineFunction(client.client.printSearchResponse): src/client/client.d(358) * * Doing function body for: printSearchResponse * * DtoCreateNestedContext for printSearchResponse * * * DtoCreateNestedContextType for client.client.printSearchResponse * * CompoundStatement::toIR(): * * * ScopeStatement::toIR(): src/client/client.d(360) * * * * CompoundStatement::toIR(): src/client/client.d(360) * * * * * ExpStatement::toIR(): src/client/client.d(360) * * * * * * DeclarationExp::toElem: ulong __key3423 = 0LU; | T=void * * * * * * * DtoDeclarationExp: __key3423 * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * llvm value for decl: %__key3423 = alloca i64, align 8 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: __key3423 = 0LU | (ulong)(ulong = ulong) * * * * * * * * * * VarExp::toElem: __key3423 @ ulong * * * * * * * * * * * DtoSymbolAddress ('__key3423' of type 'ulong') * * * * * * * * * * * * a normal variable * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * value = i64 0 * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %__key3423 = alloca i64, align 8 * * * * * * * * * * * rhs: i64 0 * * * * * ExpStatement::toIR(): src/client/client.d(360) * * * * * * DeclarationExp::toElem: ulong __limit3424 = response.completions.length; | T=void * * * * * * * DtoDeclarationExp: __limit3424 * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * llvm value for decl: %__limit3424 = alloca i64, align 8 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: __limit3424 = response.completions.length | (ulong)(ulong = ulong) * * * * * * * * * * VarExp::toElem: __limit3424 @ ulong * * * * * * * * * * * DtoSymbolAddress ('__limit3424' of type 'ulong') * * * * * * * * * * * * a normal variable * * * * * * * * * * ArrayLengthExp::toElem: response.completions.length @ ulong * * * * * * * * * * * DotVarExp::toElem: response.completions @ const(string[]) * * * * * * * * * * * * VarExp::toElem: response @ const(AutocompleteResponse) * * * * * * * * * * * * * DtoSymbolAddress ('response' of type 'const(AutocompleteResponse)') * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * type: const(AutocompleteResponse) * * * * * * * * * * * * Indexing aggregate field common.messages.AutocompleteResponse.completions: * * * * * * * * * * * * * Value: %1 = getelementptr %common.messages.AutocompleteResponse, %common.messages.AutocompleteResponse* %response_arg, i32 0, i32 4 * * * * * * * * * * * DtoArrayLen * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %__limit3424 = alloca i64, align 8 * * * * * * * * * * * rhs: %.len = load i64, i64* %2 * * * * * ForStatement::toIR(): src/client/client.d(360) * * * * * * CmpExp::toElem: __key3423 < __limit3424 @ bool * * * * * * * VarExp::toElem: __key3423 @ ulong * * * * * * * * DtoSymbolAddress ('__key3423' of type 'ulong') * * * * * * * * * a normal variable * * * * * * * VarExp::toElem: __limit3424 @ ulong * * * * * * * * DtoSymbolAddress ('__limit3424' of type 'ulong') * * * * * * * * * a normal variable * * * * * * * type 1: %3 = load i64, i64* %__key3423 * * * * * * * type 2: %4 = load i64, i64* %__limit3424 * * * * * * CompoundStatement::toIR(): src/client/client.d(360) * * * * * * * ExpStatement::toIR(): src/client/client.d(360) * * * * * * * * DeclarationExp::toElem: ulong i = __key3423; | T=void * * * * * * * * * DtoDeclarationExp: i * * * * * * * * * * VarDeclaration * * * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * * * llvm value for decl: %i = alloca i64, align 8 * * * * * * * * * * * expression initializer * * * * * * * * * * * AssignExp::toElem: i = __key3423 | (ulong)(ulong = ulong) * * * * * * * * * * * * VarExp::toElem: i @ ulong * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'ulong') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * VarExp::toElem: __key3423 @ ulong * * * * * * * * * * * * * DtoSymbolAddress ('__key3423' of type 'ulong') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * lhs: %i = alloca i64, align 8 * * * * * * * * * * * * * rhs: %6 = load i64, i64* %__key3423 * * * * * * * ExpStatement::toIR(): src/client/client.d(362) * * * * * * * * CallExp::toElem: writefln("%s\x09%s\x09%s", response.completions[i], response.completionKinds[i], response.locations[i]) @ void * * * * * * * * * VarExp::toElem: writefln @ @safe void(string _param_0, string _param_1, const(char) _param_2, const(ulong) _param_3) * * * * * * * * * * DtoSymbolAddress ('writefln' of type '@safe void(string _param_0, string _param_1, const(char) _param_2, const(ulong) _param_3)') * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * DtoFunctionType(@safe void(string _param_0, string _param_1, const(char) _param_2, const(ulong) _param_3)) * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * Final function type: void (i64, i8, { i64, i8* }, { i64, i8* }) * * * * * * * * * * * DtoResolveFunction(std.stdio.writefln!(string, string, const(char), const(ulong)).writefln): /usr/include/dlang/ldc/std/stdio.d(3205) * * * * * * * * * * * * DtoDeclareFunction(std.stdio.writefln!(string, string, const(char), const(ulong)).writefln): /usr/include/dlang/ldc/std/stdio.d(3205) * * * * * * * * * * * * * DtoFunctionType(@safe void(string _param_0, string _param_1, const(char) _param_2, const(ulong) _param_3)) * * * * * * * * * * * * * func = declare void @_D3std5stdio27__T8writeflnTAyaTAyaTxaTxmZ8writeflnFNfAyaAyaxaxmZv(i64, i8, { i64, i8* }, { i64, i8* }) * * * * * * * * * DtoCallFunction() * * * * * * * * * * Building type: @safe void(string _param_0, string _param_1, const(char) _param_2, const(ulong) _param_3) * * * * * * * * * * * DtoFunctionType(@safe void(string _param_0, string _param_1, const(char) _param_2, const(ulong) _param_3)) * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * Final function type: void (i64, i8, { i64, i8* }, { i64, i8* }) * * * * * * * * * * doing normal arguments * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * Function type: @safe void(string _param_0, string _param_1, const(char) _param_2, const(ulong) _param_3) * * * * * * * * * * DtoArgument * * * * * * * * * * * StringExp::toElem: "%s\x09%s\x09%s" @ string * * * * * * * * * * * * type: [9 x i8] * * * * * * * * * * * * init: [9 x i8] c"%s\09%s\09%s\00" * * * * * * * * * * DtoArgument * * * * * * * * * * * IndexExp::toElem: response.completions[i] @ string * * * * * * * * * * * * DotVarExp::toElem: response.completions @ const(string[]) * * * * * * * * * * * * * VarExp::toElem: response @ const(AutocompleteResponse) * * * * * * * * * * * * * * DtoSymbolAddress ('response' of type 'const(AutocompleteResponse)') * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * type: const(AutocompleteResponse) * * * * * * * * * * * * * Indexing aggregate field common.messages.AutocompleteResponse.completions: * * * * * * * * * * * * * * Value: %7 = getelementptr %common.messages.AutocompleteResponse, %common.messages.AutocompleteResponse* %response_arg, i32 0, i32 4 * * * * * * * * * * * * VarExp::toElem: i @ ulong * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'ulong') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * DtoArgument * * * * * * * * * * * IndexExp::toElem: response.completionKinds[i] @ const(char) * * * * * * * * * * * * DotVarExp::toElem: response.completionKinds @ const(char[]) * * * * * * * * * * * * * VarExp::toElem: response @ const(AutocompleteResponse) * * * * * * * * * * * * * * DtoSymbolAddress ('response' of type 'const(AutocompleteResponse)') * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * type: const(AutocompleteResponse) * * * * * * * * * * * * * Indexing aggregate field common.messages.AutocompleteResponse.completionKinds: * * * * * * * * * * * * * * Value: %11 = getelementptr %common.messages.AutocompleteResponse, %common.messages.AutocompleteResponse* %response_arg, i32 0, i32 5 * * * * * * * * * * * * VarExp::toElem: i @ ulong * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'ulong') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * DtoArgument * * * * * * * * * * * IndexExp::toElem: response.locations[i] @ const(ulong) * * * * * * * * * * * * DotVarExp::toElem: response.locations @ const(ulong[]) * * * * * * * * * * * * * VarExp::toElem: response @ const(AutocompleteResponse) * * * * * * * * * * * * * * DtoSymbolAddress ('response' of type 'const(AutocompleteResponse)') * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * type: const(AutocompleteResponse) * * * * * * * * * * * * * Indexing aggregate field common.messages.AutocompleteResponse.locations: * * * * * * * * * * * * * * Value: %15 = getelementptr %common.messages.AutocompleteResponse, %common.messages.AutocompleteResponse* %response_arg, i32 0, i32 6 * * * * * * * * * * * * VarExp::toElem: i @ ulong * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'ulong') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * DtoArrayPtr * * * * * * AddAssignExp::toElem: __key3423 += 1LU @ ulong * * * * * * * Caching l-value of __key3423 += 1LU => __key3423 * * * * * * * * VarExp::toElem: __key3423 @ ulong * * * * * * * * * DtoSymbolAddress ('__key3423' of type 'ulong') * * * * * * * * * * a normal variable * * * * * * * AddExp::toElem: __key3423 + 1LU @ ulong * * * * * * * * VarExp::toElem: __key3423 @ ulong * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * value = i64 1 * * * * * * * DtoAssign() * * * * * * * * lhs: %__key3423 = alloca i64, align 8 * * * * * * * * rhs: %23 = add i64 %22, 1 * DtoDefineFunction(client.client.printImportList): src/client/client.d(367) * * Doing function body for: printImportList * * DtoCreateNestedContext for printImportList * * * DtoCreateNestedContextType for client.client.printImportList * * CompoundStatement::toIR(): * * * CompoundStatement::toIR(): src/client/client.d(368) * * * * ExpStatement::toIR(): src/client/client.d(371) * * * * * CallExp::toElem: each(response.importPaths) @ void * * * * * * VarExp::toElem: each @ @safe void(const(string)[] r) * * * * * * * DtoSymbolAddress ('each' of type '@safe void(const(string)[] r)') * * * * * * * * FuncDeclaration * * * * * * * * DtoFunctionType(@safe void(const(string)[] r)) * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * Final function type: void (i8*, { i64, { i64, i8* }* }) * * * * * * * * DtoResolveFunction(client.client.printImportList.each!((a) => writeln(a)).each!(const(string)[]).each): /usr/include/dlang/ldc/std/algorithm/iteration.d(873) * * * * * * * * * DtoDeclareFunction(client.client.printImportList.each!((a) => writeln(a)).each!(const(string)[]).each): /usr/include/dlang/ldc/std/algorithm/iteration.d(873) * * * * * * * * * * DtoFunctionType(@safe void(const(string)[] r)) * * * * * * * * * * func = declare void @_D3std9algorithm9iteration95__T4eachS836client6client15printImportListFxS6common8messages20AutocompleteResponseZ9__lambda2Z15__T4eachTAxAyaZ4eachMFNfAxAyaZv(i8*, { i64, { i64, i8* }* }) * * * * * * DtoCallFunction() * * * * * * * Building type: @safe void(const(string)[] r) * * * * * * * * DtoFunctionType(@safe void(const(string)[] r)) * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * Final function type: void ({ i64, { i64, i8* }* }) * * * * * * * DtoNestedContext for client.client.printImportList.each!((a) => writeln(a)).each!(const(string)[]).each * * * * * * * doing normal arguments * * * * * * * Arguments so far: (1) * * * * * * * * i8* null * * * * * * * Function type: @safe void(const(string)[] r) * * * * * * * DtoArgument * * * * * * * * DotVarExp::toElem: response.importPaths @ const(string)[] * * * * * * * * * VarExp::toElem: response @ const(AutocompleteResponse) * * * * * * * * * * DtoSymbolAddress ('response' of type 'const(AutocompleteResponse)') * * * * * * * * * * * function param * * * * * * * * * * * type: const(AutocompleteResponse) * * * * * * * * * Indexing aggregate field common.messages.AutocompleteResponse.importPaths: * * * * * * * * * * Value: %1 = getelementptr %common.messages.AutocompleteResponse, %common.messages.AutocompleteResponse* %response_arg, i32 0, i32 7 * TemplateInstance::codegen: 'std.variant.maxSize!(creal, char[], void delegate() @trusted)' * TemplateInstance::codegen: 'std.variant.maxSize!(char[], void delegate() @trusted)' * TemplateInstance::codegen: 'std.variant.maxSize!(void delegate() @trusted)' * TemplateInstance::codegen: 'std.variant.VariantN!32LU' * TemplateInstance::codegen: 'std.variant.This2Variant!(VariantN!32LU)' * TemplateInstance::codegen: 'std.variant.VariantN!32LU.VariantN.opAssign!(VariantN!32LU)' * TemplateInstance::codegen: 'std.variant.VariantN!32LU.VariantN.opEquals!(VariantN!32LU)' * TemplateInstance::codegen: 'std.variant.VariantN!32LU.VariantN.opCall!()' * TemplateInstance::codegen: 'std.variant.VariantN!32LU.VariantN.handler!void' * TemplateInstance::codegen: 'std.variant.VariantN!32LU.VariantN.peek!void' * TemplateInstance::codegen: 'std.concurrency.List!(Message)' * TemplateInstance::codegen: 'std.experimental.logger.core.Logger.memLogFunctions!cast(LogLevel)cast(ubyte)32u' * TemplateInstance::codegen: 'std.experimental.logger.core.Logger.memLogFunctions!cast(LogLevel)cast(ubyte)64u' * TemplateInstance::codegen: 'std.experimental.logger.core.Logger.memLogFunctions!cast(LogLevel)cast(ubyte)96u' * TemplateInstance::codegen: 'std.experimental.logger.core.Logger.memLogFunctions!cast(LogLevel)cast(ubyte)128u' * TemplateInstance::codegen: 'std.experimental.logger.core.Logger.memLogFunctions!cast(LogLevel)cast(ubyte)160u' * TemplateInstance::codegen: 'std.experimental.logger.core.Logger.memLogFunctions!cast(LogLevel)cast(ubyte)192u' * TemplateInstance::codegen: 'std.experimental.logger.core.isLoggingActiveAt!cast(LogLevel)cast(ubyte)1u' * TemplateInstance::codegen: 'std.experimental.logger.core.defaultLogFunction!cast(LogLevel)cast(ubyte)32u' * TemplateInstance::codegen: 'std.experimental.logger.core.defaultLogFunction!cast(LogLevel)cast(ubyte)64u' * TemplateInstance::codegen: 'std.experimental.logger.core.defaultLogFunction!cast(LogLevel)cast(ubyte)96u' * TemplateInstance::codegen: 'std.experimental.logger.core.defaultLogFunction!cast(LogLevel)cast(ubyte)128u' * TemplateInstance::codegen: 'std.experimental.logger.core.defaultLogFunction!cast(LogLevel)cast(ubyte)160u' * TemplateInstance::codegen: 'std.experimental.logger.core.defaultLogFunction!cast(LogLevel)cast(ubyte)192u' * TemplateInstance::codegen: 'std.experimental.logger.core.defaultLogFunctionf!cast(LogLevel)cast(ubyte)32u' * TemplateInstance::codegen: 'std.experimental.logger.core.defaultLogFunctionf!cast(LogLevel)cast(ubyte)64u' * TemplateInstance::codegen: 'std.experimental.logger.core.defaultLogFunctionf!cast(LogLevel)cast(ubyte)96u' * TemplateInstance::codegen: 'std.experimental.logger.core.defaultLogFunctionf!cast(LogLevel)cast(ubyte)128u' * TemplateInstance::codegen: 'std.experimental.logger.core.defaultLogFunctionf!cast(LogLevel)cast(ubyte)160u' * TemplateInstance::codegen: 'std.experimental.logger.core.defaultLogFunctionf!cast(LogLevel)cast(ubyte)192u' * TemplateInstance::codegen: 'std.getopt.getopt!(string, ulong*, string, string[]*, string, ushort*, string, bool*, string, bool*, string, bool*, string, bool*, string, bool*, string, bool*, string, string*, string, bool*, string, bool*, string, bool*, string, string*)' * * DtoDefineFunction(std.getopt.getopt!(string, ulong*, string, string[]*, string, ushort*, string, bool*, string, bool*, string, bool*, string, bool*, string, bool*, string, bool*, string, string*, string, bool*, string, bool*, string, bool*, string, string*).getopt): /usr/include/dlang/ldc/std/getopt.d(428) * * * Doing function body for: getopt * * * Rewrite: getParam (getL) * * * DtoCreateNestedContext for getopt * * * * DtoCreateNestedContextType for std.getopt.getopt!(string, ulong*, string, string[]*, string, ushort*, string, bool*, string, bool*, string, bool*, string, bool*, string, bool*, string, bool*, string, string*, string, bool*, string, bool*, string, bool*, string, string*).getopt * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(429) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(431) * * * * * * CallExp::toElem: enforce(args.length, delegate const(char)[]() => "Invalid arguments string passed: program name missing", "/usr/include/dlang/ldc/std/getopt.d", 431LU) @ ulong * * * * * * * VarExp::toElem: enforce @ pure @safe ulong(ulong value, lazy const(char)[] msg = null, string file = __FILE__, ulong line = cast(ulong)__LINE__) * * * * * * * * DtoSymbolAddress ('enforce' of type 'pure @safe ulong(ulong value, lazy const(char)[] msg = null, string file = __FILE__, ulong line = cast(ulong)__LINE__)') * * * * * * * * * FuncDeclaration * * * * * * * DtoCallFunction() * * * * * * * * Building type: pure @safe ulong(ulong value, lazy const(char)[] msg = null, string file = __FILE__, ulong line = cast(ulong)__LINE__) * * * * * * * * * DtoFunctionType(pure @safe ulong(ulong value, lazy const(char)[] msg = null, string file = __FILE__, ulong line = cast(ulong)__LINE__)) * * * * * * * * * * lazy param * * * * * * * * * * Building type: const(char)[] delegate() * * * * * * * * * * * DtoFunctionType(const(char)[]()) * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * Final function type: { i64, i8* } (i8*) * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: i64 (i64, { i64, i8* }, { i8*, { i64, i8* } (i8*)* }, i64) * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (0) * * * * * * * * Function type: pure @safe ulong(ulong value, lazy const(char)[] msg = null, string file = __FILE__, ulong line = cast(ulong)__LINE__) * * * * * * * * DtoArgument * * * * * * * * * ArrayLengthExp::toElem: args.length @ ulong * * * * * * * * * * VarExp::toElem: args @ string[] * * * * * * * * * * * DtoSymbolAddress ('args' of type 'string[]') * * * * * * * * * * * * function param * * * * * * * * * * * * type: string[] * * * * * * * * * * DtoArrayLen * * * * * * * * DtoArgument * * * * * * * * * FuncExp::toElem: __dgliteral31 @ const(char)[] delegate() pure nothrow @nogc @safe * * * * * * * * * * nested * * * * * * * * * * kind = delegate * * * * * * * * * * DtoDefineFunction(std.getopt.getopt!(string, ulong*, string, string[]*, string, ushort*, string, bool*, string, bool*, string, bool*, string, bool*, string, bool*, string, bool*, string, string*, string, bool*, string, bool*, string, bool*, string, string*).getopt.__dgliteral31): /usr/include/dlang/ldc/std/getopt.d(432) * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe const(char)[]()) * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * Final function type: { i64, i8* } (i8*) * * * * * * * * * * * DtoResolveFunction(std.getopt.getopt!(string, ulong*, string, string[]*, string, ushort*, string, bool*, string, bool*, string, bool*, string, bool*, string, bool*, string, bool*, string, string*, string, bool*, string, bool*, string, bool*, string, string*).getopt.__dgliteral31): /usr/include/dlang/ldc/std/getopt.d(432) * * * * * * * * * * * * DtoDeclareFunction(std.getopt.getopt!(string, ulong*, string, string[]*, string, ushort*, string, bool*, string, bool*, string, bool*, string, bool*, string, bool*, string, bool*, string, string*, string, bool*, string, bool*, string, bool*, string, string*).getopt.__dgliteral31): /usr/include/dlang/ldc/std/getopt.d(432) * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe const(char)[]()) * * * * * * * * * * * * * func = declare { i64, i8* } @_D3std6getopt116__T6getoptTAyaTPmTAyaTPAAyaTAyaTPtTAyaTPbTAyaTPbTAyaTPbTAyaTPbTAyaTPbTAyaTPbTAyaTPAyaTAyaTPbTAyaTPbTAyaTPbTAyaTPAyaZ6getoptFKAAyaAyaPmAyaPAAyaAyaPtAyaPbAyaPbAyaPbAyaPbAyaPbAyaPbAyaPAyaAyaPbAyaPbAyaPbAyaPAyaZ13__dgliteral31MFNaNbNiNfZAxa(i8*) * * * * * * * * * * * Doing function body for: __dgliteral31 * * * * * * * * * * * DtoCreateNestedContext for __dgliteral31 * * * * * * * * * * * * DtoCreateNestedContextType for std.getopt.getopt!(string, ulong*, string, string[]*, string, ushort*, string, bool*, string, bool*, string, bool*, string, bool*, string, bool*, string, bool*, string, string*, string, bool*, string, bool*, string, bool*, string, string*).getopt.__dgliteral31 * * * * * * * * * * * * * DtoCreateNestedContextType for std.getopt.getopt!(string, ulong*, string, string[]*, string, ushort*, string, bool*, string, bool*, string, bool*, string, bool*, string, bool*, string, bool*, string, string*, string, bool*, string, bool*, string, bool*, string, string*).getopt * * * * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(432) * * * * * * * * * * * * * StringExp::toElem: "Invalid arguments string passed: program name missing" @ const(char)[] * * * * * * * * * * * * * * type: [54 x i8] * * * * * * * * * * * * * * init: [54 x i8] c"Invalid arguments string passed: program name missing\00" * * * * * * * * * * * * * return value is '0x12e36660' * * * * * * * * * * Building type: const(char)[] delegate() pure nothrow @nogc @safe * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe const(char)[]()) * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * Final function type: { i64, i8* } (i8*) * * * * * * * * DtoArgument * * * * * * * * * StringExp::toElem: "/usr/include/dlang/ldc/std/getopt.d" @ string * * * * * * * * * * type: [36 x i8] * * * * * * * * * * init: [36 x i8] c"/usr/include/dlang/ldc/std/getopt.d\00" * * * * * * * * DtoArgument * * * * * * * * * IntegerExp::toElem: 431LU @ ulong * * * * * * * * * * IntegerExp::toConstElem: 431LU @ ulong * * * * * * * * * * * value = i64 431 * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(433) * * * * * * DeclarationExp::toElem: configuration cfg = 0; | T=void * * * * * * * DtoDeclarationExp: cfg * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = configuration) * * * * * * * * * Building type: configuration * * * * * * * * * * Building struct type std.getopt.configuration @ /usr/include/dlang/ldc/std/getopt.d(885) * * * * * * * * * * * adding default initializer for struct field _caseSensitive_bundling_passThrough_stopOnFirstNonOption_keepEndOfOptions_required_ * * * * * * * * * * * final struct type: %std.getopt.configuration = type { i8 } * * * * * * * * * llvm value for decl: %cfg = alloca %std.getopt.configuration, align 1 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: cfg = 0 | (configuration)(configuration = int) * * * * * * * * * * VarExp::toElem: cfg @ configuration * * * * * * * * * * * DtoSymbolAddress ('cfg' of type 'configuration') * * * * * * * * * * * * a normal variable * * * * * * * * * * IntegerExp::toElem: 0 @ int * * * * * * * * * * * IntegerExp::toConstElem: 0 @ int * * * * * * * * * * * * value = i32 0 * * * * * * * * * * performing aggregate zero initialization * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(434) * * * * * * DeclarationExp::toElem: GetoptResult rslt = 0; | T=void * * * * * * * DtoDeclarationExp: rslt * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = GetoptResult) * * * * * * * * * llvm value for decl: %std.getopt.GetoptResult* %.sret_arg * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: rslt = 0 | (GetoptResult)(GetoptResult = int) * * * * * * * * * * VarExp::toElem: rslt @ GetoptResult * * * * * * * * * * * DtoSymbolAddress ('rslt' of type 'GetoptResult') * * * * * * * * * * * * a normal variable * * * * * * * * * * IntegerExp::toElem: 0 @ int * * * * * * * * * * * IntegerExp::toConstElem: 0 @ int * * * * * * * * * * * * value = i32 0 * * * * * * * * * * performing aggregate zero initialization * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(436) * * * * * * CallExp::toElem: getoptImpl(args, cfg, rslt, _param_1, _param_2, _param_3, _param_4, _param_5, _param_6, _param_7, _param_8, _param_9, _param_10, _param_11, _param_12, _param_13, _param_14, _param_15, _param_16, _param_17, _param_18, _param_19, _param_20, _param_21, _param_22, _param_23, _param_24, _param_25, _param_26, _param_27, _param_28) @ void * * * * * * * VarExp::toElem: getoptImpl @ @system void(ref string[] args, ref configuration cfg, ref GetoptResult rslt, string _param_3, ulong* _param_4, string _param_5, string[]* _param_6, string _param_7, ushort* _param_8, string _param_9, bool* _param_10, string _param_11, bool* _param_12, string _param_13, bool* _param_14, string _param_15, bool* _param_16, string _param_17, bool* _param_18, string _param_19, bool* _param_20, string _param_21, string* _param_22, string _param_23, bool* _param_24, string _param_25, bool* _param_26, string _param_27, bool* _param_28, string _param_29, string* _param_30) * * * * * * * * DtoSymbolAddress ('getoptImpl' of type '@system void(ref string[] args, ref configuration cfg, ref GetoptResult rslt, string _param_3, ulong* _param_4, string _param_5, string[]* _param_6, string _param_7, ushort* _param_8, string _param_9, bool* _param_10, string _param_11, bool* _param_12, string _param_13, bool* _param_14, string _param_15, bool* _param_16, string _param_17, bool* _param_18, string _param_19, bool* _param_20, string _param_21, string* _param_22, string _param_23, bool* _param_24, string _param_25, bool* _param_26, string _param_27, bool* _param_28, string _param_29, string* _param_30)') * * * * * * * * * FuncDeclaration * * * * * * * * * DtoFunctionType(@system void(ref string[] args, ref configuration cfg, ref GetoptResult rslt, string _param_3, ulong* _param_4, string _param_5, string[]* _param_6, string _param_7, ushort* _param_8, string _param_9, bool* _param_10, string _param_11, bool* _param_12, string _param_13, bool* _param_14, string _param_15, bool* _param_16, string _param_17, bool* _param_18, string _param_19, bool* _param_20, string _param_21, string* _param_22, string _param_23, bool* _param_24, string _param_25, bool* _param_26, string _param_27, bool* _param_28, string _param_29, string* _param_30)) * * * * * * * * * * Building type: configuration* * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: void ({ i64, i8* }*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, { i64, i8* }*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, i16*, { i64, i8* }, { i64, { i64, i8* }* }*, { i64, i8* }, i64*, { i64, i8* }, %std.getopt.GetoptResult*, %std.getopt.configuration*, { i64, { i64, i8* }* }*) * * * * * * * * * DtoResolveFunction(std.getopt.getoptImpl!(string, ulong*, string, string[]*, string, ushort*, string, bool*, string, bool*, string, bool*, string, bool*, string, bool*, string, bool*, string, string*, string, bool*, string, bool*, string, bool*, string, string*).getoptImpl): /usr/include/dlang/ldc/std/getopt.d(526) * * * * * * * * * * DtoDeclareFunction(std.getopt.getoptImpl!(string, ulong*, string, string[]*, string, ushort*, string, bool*, string, bool*, string, bool*, string, bool*, string, bool*, string, bool*, string, string*, string, bool*, string, bool*, string, bool*, string, string*).getoptImpl): /usr/include/dlang/ldc/std/getopt.d(526) * * * * * * * * * * * DtoFunctionType(@system void(ref string[] args, ref configuration cfg, ref GetoptResult rslt, string _param_3, ulong* _param_4, string _param_5, string[]* _param_6, string _param_7, ushort* _param_8, string _param_9, bool* _param_10, string _param_11, bool* _param_12, string _param_13, bool* _param_14, string _param_15, bool* _param_16, string _param_17, bool* _param_18, string _param_19, bool* _param_20, string _param_21, string* _param_22, string _param_23, bool* _param_24, string _param_25, bool* _param_26, string _param_27, bool* _param_28, string _param_29, string* _param_30)) * * * * * * * * * * * func = declare void @_D3std6getopt121__T10getoptImplTAyaTPmTAyaTPAAyaTAyaTPtTAyaTPbTAyaTPbTAyaTPbTAyaTPbTAyaTPbTAyaTPbTAyaTPAyaTAyaTPbTAyaTPbTAyaTPbTAyaTPAyaZ10getoptImplFKAAyaKS3std6getopt13configurationKS3std6getopt12GetoptResultAyaPmAyaPAAyaAyaPtAyaPbAyaPbAyaPbAyaPbAyaPbAyaPbAyaPAyaAyaPbAyaPbAyaPbAyaPAyaZv({ i64, i8* }*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, { i64, i8* }*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, i16*, { i64, i8* }, { i64, { i64, i8* }* }*, { i64, i8* }, i64*, { i64, i8* }, %std.getopt.GetoptResult*, %std.getopt.configuration*, { i64, { i64, i8* }* }*) * * * * * * * DtoCallFunction() * * * * * * * * Building type: @system void(ref string[] args, ref configuration cfg, ref GetoptResult rslt, string _param_3, ulong* _param_4, string _param_5, string[]* _param_6, string _param_7, ushort* _param_8, string _param_9, bool* _param_10, string _param_11, bool* _param_12, string _param_13, bool* _param_14, string _param_15, bool* _param_16, string _param_17, bool* _param_18, string _param_19, bool* _param_20, string _param_21, string* _param_22, string _param_23, bool* _param_24, string _param_25, bool* _param_26, string _param_27, bool* _param_28, string _param_29, string* _param_30) * * * * * * * * * DtoFunctionType(@system void(ref string[] args, ref configuration cfg, ref GetoptResult rslt, string _param_3, ulong* _param_4, string _param_5, string[]* _param_6, string _param_7, ushort* _param_8, string _param_9, bool* _param_10, string _param_11, bool* _param_12, string _param_13, bool* _param_14, string _param_15, bool* _param_16, string _param_17, bool* _param_18, string _param_19, bool* _param_20, string _param_21, string* _param_22, string _param_23, bool* _param_24, string _param_25, bool* _param_26, string _param_27, bool* _param_28, string _param_29, string* _param_30)) * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: void ({ i64, i8* }*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, { i64, i8* }*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, i16*, { i64, i8* }, { i64, { i64, i8* }* }*, { i64, i8* }, i64*, { i64, i8* }, %std.getopt.GetoptResult*, %std.getopt.configuration*, { i64, { i64, i8* }* }*) * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (0) * * * * * * * * Function type: @system void(ref string[] args, ref configuration cfg, ref GetoptResult rslt, string _param_3, ulong* _param_4, string _param_5, string[]* _param_6, string _param_7, ushort* _param_8, string _param_9, bool* _param_10, string _param_11, bool* _param_12, string _param_13, bool* _param_14, string _param_15, bool* _param_16, string _param_17, bool* _param_18, string _param_19, bool* _param_20, string _param_21, string* _param_22, string _param_23, bool* _param_24, string _param_25, bool* _param_26, string _param_27, bool* _param_28, string _param_29, string* _param_30) * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: args @ string[] * * * * * * * * * * DtoSymbolAddress ('args' of type 'string[]') * * * * * * * * * * * function param * * * * * * * * * * * type: string[] * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: cfg @ configuration * * * * * * * * * * DtoSymbolAddress ('cfg' of type 'configuration') * * * * * * * * * * * a normal variable * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: rslt @ GetoptResult * * * * * * * * * * DtoSymbolAddress ('rslt' of type 'GetoptResult') * * * * * * * * * * * a normal variable * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_1 @ string * * * * * * * * * * DtoSymbolAddress ('_param_1' of type 'string') * * * * * * * * * * * function param * * * * * * * * * * * type: string * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_2 @ ulong* * * * * * * * * * * DtoSymbolAddress ('_param_2' of type 'ulong*') * * * * * * * * * * * function param * * * * * * * * * * * type: ulong* * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_3 @ string * * * * * * * * * * DtoSymbolAddress ('_param_3' of type 'string') * * * * * * * * * * * function param * * * * * * * * * * * type: string * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_4 @ string[]* * * * * * * * * * * DtoSymbolAddress ('_param_4' of type 'string[]*') * * * * * * * * * * * function param * * * * * * * * * * * type: string[]* * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_5 @ string * * * * * * * * * * DtoSymbolAddress ('_param_5' of type 'string') * * * * * * * * * * * function param * * * * * * * * * * * type: string * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_6 @ ushort* * * * * * * * * * * DtoSymbolAddress ('_param_6' of type 'ushort*') * * * * * * * * * * * function param * * * * * * * * * * * type: ushort* * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_7 @ string * * * * * * * * * * DtoSymbolAddress ('_param_7' of type 'string') * * * * * * * * * * * function param * * * * * * * * * * * type: string * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_8 @ bool* * * * * * * * * * * DtoSymbolAddress ('_param_8' of type 'bool*') * * * * * * * * * * * function param * * * * * * * * * * * type: bool* * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_9 @ string * * * * * * * * * * DtoSymbolAddress ('_param_9' of type 'string') * * * * * * * * * * * function param * * * * * * * * * * * type: string * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_10 @ bool* * * * * * * * * * * DtoSymbolAddress ('_param_10' of type 'bool*') * * * * * * * * * * * function param * * * * * * * * * * * type: bool* * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_11 @ string * * * * * * * * * * DtoSymbolAddress ('_param_11' of type 'string') * * * * * * * * * * * function param * * * * * * * * * * * type: string * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_12 @ bool* * * * * * * * * * * DtoSymbolAddress ('_param_12' of type 'bool*') * * * * * * * * * * * function param * * * * * * * * * * * type: bool* * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_13 @ string * * * * * * * * * * DtoSymbolAddress ('_param_13' of type 'string') * * * * * * * * * * * function param * * * * * * * * * * * type: string * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_14 @ bool* * * * * * * * * * * DtoSymbolAddress ('_param_14' of type 'bool*') * * * * * * * * * * * function param * * * * * * * * * * * type: bool* * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_15 @ string * * * * * * * * * * DtoSymbolAddress ('_param_15' of type 'string') * * * * * * * * * * * function param * * * * * * * * * * * type: string * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_16 @ bool* * * * * * * * * * * DtoSymbolAddress ('_param_16' of type 'bool*') * * * * * * * * * * * function param * * * * * * * * * * * type: bool* * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_17 @ string * * * * * * * * * * DtoSymbolAddress ('_param_17' of type 'string') * * * * * * * * * * * function param * * * * * * * * * * * type: string * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_18 @ bool* * * * * * * * * * * DtoSymbolAddress ('_param_18' of type 'bool*') * * * * * * * * * * * function param * * * * * * * * * * * type: bool* * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_19 @ string * * * * * * * * * * DtoSymbolAddress ('_param_19' of type 'string') * * * * * * * * * * * function param * * * * * * * * * * * type: string * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_20 @ string* * * * * * * * * * * DtoSymbolAddress ('_param_20' of type 'string*') * * * * * * * * * * * function param * * * * * * * * * * * type: string* * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_21 @ string * * * * * * * * * * DtoSymbolAddress ('_param_21' of type 'string') * * * * * * * * * * * function param * * * * * * * * * * * type: string * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_22 @ bool* * * * * * * * * * * DtoSymbolAddress ('_param_22' of type 'bool*') * * * * * * * * * * * function param * * * * * * * * * * * type: bool* * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_23 @ string * * * * * * * * * * DtoSymbolAddress ('_param_23' of type 'string') * * * * * * * * * * * function param * * * * * * * * * * * type: string * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_24 @ bool* * * * * * * * * * * DtoSymbolAddress ('_param_24' of type 'bool*') * * * * * * * * * * * function param * * * * * * * * * * * type: bool* * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_25 @ string * * * * * * * * * * DtoSymbolAddress ('_param_25' of type 'string') * * * * * * * * * * * function param * * * * * * * * * * * type: string * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_26 @ bool* * * * * * * * * * * DtoSymbolAddress ('_param_26' of type 'bool*') * * * * * * * * * * * function param * * * * * * * * * * * type: bool* * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_27 @ string * * * * * * * * * * DtoSymbolAddress ('_param_27' of type 'string') * * * * * * * * * * * function param * * * * * * * * * * * type: string * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_28 @ string* * * * * * * * * * * DtoSymbolAddress ('_param_28' of type 'string*') * * * * * * * * * * * function param * * * * * * * * * * * type: string* * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(438) * * * * * * VarExp::toElem: rslt @ GetoptResult * * * * * * * DtoSymbolAddress ('rslt' of type 'GetoptResult') * * * * * * * * a normal variable * TemplateInstance::codegen: 'std.getopt.getoptImpl!(string, ulong*, string, string[]*, string, ushort*, string, bool*, string, bool*, string, bool*, string, bool*, string, bool*, string, bool*, string, string*, string, bool*, string, bool*, string, bool*, string, string*)' * * DtoDefineFunction(std.getopt.getoptImpl!(string, ulong*, string, string[]*, string, ushort*, string, bool*, string, bool*, string, bool*, string, bool*, string, bool*, string, bool*, string, string*, string, bool*, string, bool*, string, bool*, string, string*).getoptImpl): /usr/include/dlang/ldc/std/getopt.d(526) * * * Doing function body for: getoptImpl * * * DtoCreateNestedContext for getoptImpl * * * * DtoCreateNestedContextType for std.getopt.getoptImpl!(string, ulong*, string, string[]*, string, ushort*, string, bool*, string, bool*, string, bool*, string, bool*, string, bool*, string, bool*, string, string*, string, bool*, string, bool*, string, bool*, string, string*).getoptImpl * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(528) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(542) * * * * * * DeclarationExp::toElem: string option = to(_param_3); | T=void * * * * * * * DtoDeclarationExp: option * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = string) * * * * * * * * * llvm value for decl: %option = alloca { i64, i8* }, align 8 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: option = to(_param_3) | (string)(string = string) * * * * * * * * * * VarExp::toElem: option @ string * * * * * * * * * * * DtoSymbolAddress ('option' of type 'string') * * * * * * * * * * * * a normal variable * * * * * * * * * * CallExp::toElem: to(_param_3) @ string * * * * * * * * * * * VarExp::toElem: to @ pure nothrow @nogc @safe string(string _param_0) * * * * * * * * * * * * DtoSymbolAddress ('to' of type 'pure nothrow @nogc @safe string(string _param_0)') * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe string(string _param_0)) * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * Final function type: { i64, i8* } ({ i64, i8* }) * * * * * * * * * * * * * DtoResolveFunction(std.conv.to!string.to!(string).to): /usr/include/dlang/ldc/std/conv.d(292) * * * * * * * * * * * * * * DtoDeclareFunction(std.conv.to!string.to!(string).to): /usr/include/dlang/ldc/std/conv.d(292) * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe string(string _param_0)) * * * * * * * * * * * * * * * func = declare { i64, i8* } @_D3std4conv11__T2toTAyaZ11__T2toTAyaZ2toFNaNbNiNfAyaZAya({ i64, i8* }) * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * Building type: pure nothrow @nogc @safe string(string _param_0) * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe string(string _param_0)) * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * Final function type: { i64, i8* } ({ i64, i8* }) * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * Function type: pure nothrow @nogc @safe string(string _param_0) * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * VarExp::toElem: _param_3 @ string * * * * * * * * * * * * * * DtoSymbolAddress ('_param_3' of type 'string') * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * type: string * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * SetArray * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(543) * * * * * * DeclarationExp::toElem: Option optionHelp = splitAndGet(option); | T=void * * * * * * * DtoDeclarationExp: optionHelp * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = Option) * * * * * * * * * VarExp::toElem: splitAndGet @ pure nothrow @trusted Option(string opt) * * * * * * * * * * DtoSymbolAddress ('splitAndGet' of type 'pure nothrow @trusted Option(string opt)') * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * DtoFunctionType(pure nothrow @trusted Option(string opt)) * * * * * * * * * * * * Building type: Option* * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * Final function type: void (%std.getopt.Option*, { i64, i8* }) * * * * * * * * * * * DtoResolveFunction(std.getopt.splitAndGet): /usr/include/dlang/ldc/std/getopt.d(506) * * * * * * * * * * * * DtoDeclareFunction(std.getopt.splitAndGet): /usr/include/dlang/ldc/std/getopt.d(506) * * * * * * * * * * * * * DtoFunctionType(pure nothrow @trusted Option(string opt)) * * * * * * * * * * * * * func = declare void @_D3std6getopt11splitAndGetFNaNbNeAyaZS3std6getopt6Option(%std.getopt.Option*, { i64, i8* }) * * * * * * * * * DtoCallFunction() * * * * * * * * * * Building type: pure nothrow @trusted Option(string opt) * * * * * * * * * * * DtoFunctionType(pure nothrow @trusted Option(string opt)) * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * Final function type: void (%std.getopt.Option*, { i64, i8* }) * * * * * * * * * * doing normal arguments * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * %optionHelp = alloca %std.getopt.Option, align 8 * * * * * * * * * * Function type: pure nothrow @trusted Option(string opt) * * * * * * * * * * DtoArgument * * * * * * * * * * * VarExp::toElem: option @ string * * * * * * * * * * * * DtoSymbolAddress ('option' of type 'string') * * * * * * * * * * * * * a normal variable * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(544) * * * * * * AssignExp::toElem: optionHelp.required = cfg.required() | (bool)(bool = bool) * * * * * * * DotVarExp::toElem: optionHelp.required @ bool * * * * * * * * VarExp::toElem: optionHelp @ Option * * * * * * * * * DtoSymbolAddress ('optionHelp' of type 'Option') * * * * * * * * * * a normal variable * * * * * * * * Indexing aggregate field std.getopt.Option.required: * * * * * * * * * Resolving struct type: Option (/usr/include/dlang/ldc/std/getopt.d(498)) * * * * * * * * * Value: %6 = getelementptr %std.getopt.Option, %std.getopt.Option* %optionHelp, i32 0, i32 3 * * * * * * * CallExp::toElem: cfg.required() @ bool * * * * * * * * DotVarExp::toElem: cfg.required @ const pure nothrow @nogc @property @safe bool() * * * * * * * * * VarExp::toElem: cfg @ configuration * * * * * * * * * * DtoSymbolAddress ('cfg' of type 'configuration') * * * * * * * * * * * function param * * * * * * * * * * * type: configuration * * * * * * * * * isMember = this is: configuration * * * * * * * * * DtoFunctionType(const pure nothrow @nogc @property @safe bool()) * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: i1 (%std.getopt.configuration*) * * * * * * * * * DtoResolveFunction(std.getopt.configuration.required): /usr/include/dlang/ldc/std/getopt.d-mixin-888(898) * * * * * * * * * * DtoDeclareFunction(std.getopt.configuration.required): /usr/include/dlang/ldc/std/getopt.d-mixin-888(898) * * * * * * * * * * * isMember = this is: configuration * * * * * * * * * * * DtoFunctionType(const pure nothrow @nogc @property @safe bool()) * * * * * * * * * * * func = declare i1 @_D3std6getopt13configuration8requiredMxFNaNbNdNiNfZb(%std.getopt.configuration*) * * * * * * * * DtoCallFunction() * * * * * * * * * Building type: const pure nothrow @nogc @property @safe bool() * * * * * * * * * * DtoFunctionType(const pure nothrow @nogc @property @safe bool()) * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * Final function type: i1 () * * * * * * * * * doing normal arguments * * * * * * * * * Arguments so far: (1) * * * * * * * * * * %std.getopt.configuration* %cfg_arg * * * * * * * * * Function type: const pure nothrow @nogc @property @safe bool() * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * DtoAssign() * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(554) * * * * * * DeclarationExp::toElem: ulong* receiver = _param_4; | T=void * * * * * * * DtoDeclarationExp: receiver * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = ulong*) * * * * * * * * * llvm value for decl: %receiver = alloca i64*, align 8 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: receiver = _param_4 | (ulong*)(ulong* = ulong*) * * * * * * * * * * VarExp::toElem: receiver @ ulong* * * * * * * * * * * * DtoSymbolAddress ('receiver' of type 'ulong*') * * * * * * * * * * * * a normal variable * * * * * * * * * * VarExp::toElem: _param_4 @ ulong* * * * * * * * * * * * DtoSymbolAddress ('_param_4' of type 'ulong*') * * * * * * * * * * * * function param * * * * * * * * * * * * type: ulong* * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %receiver = alloca i64*, align 8 * * * * * * * * * * * rhs: %9 = load i64*, i64** %_param_4 * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(555) * * * * * * DeclarationExp::toElem: immutable immutable(int) lowSliceIdx = 2; | T=void * * * * * * * DtoDeclarationExp: lowSliceIdx * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = immutable(int)) * * * * * * * * * llvm value for decl: %lowSliceIdx = alloca i32, align 4 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: lowSliceIdx = 2 | (immutable(int))(immutable(int) = immutable(int)) * * * * * * * * * * VarExp::toElem: lowSliceIdx @ immutable(int) * * * * * * * * * * * DtoSymbolAddress ('lowSliceIdx' of type 'immutable(int)') * * * * * * * * * * * * a normal variable * * * * * * * * * * IntegerExp::toElem: 2 @ immutable(int) * * * * * * * * * * * IntegerExp::toConstElem: 2 @ immutable(int) * * * * * * * * * * * * value = i32 2 * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %lowSliceIdx = alloca i32, align 4 * * * * * * * * * * * rhs: i32 2 * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(558) * * * * * * CatAssignExp::toElem: rslt.options ~= optionHelp @ Option[] * * * * * * * DotVarExp::toElem: rslt.options @ Option[] * * * * * * * * VarExp::toElem: rslt @ GetoptResult * * * * * * * * * DtoSymbolAddress ('rslt' of type 'GetoptResult') * * * * * * * * * * function param * * * * * * * * * * type: GetoptResult * * * * * * * * Indexing aggregate field std.getopt.GetoptResult.options: * * * * * * * * * Resolving struct type: GetoptResult (/usr/include/dlang/ldc/std/getopt.d(491)) * * * * * * * * * Value: %10 = getelementptr %std.getopt.GetoptResult, %std.getopt.GetoptResult* %rslt_arg, i32 0, i32 2 * * * * * * * DtoCatAssignElement * * * * * * * * DtoArrayLen * * * * * * * * VarExp::toElem: optionHelp @ Option * * * * * * * * * DtoSymbolAddress ('optionHelp' of type 'Option') * * * * * * * * * * a normal variable * * * * * * * * DtoTypeInfoOf(type = 'Option[]', base='1') * * * * * * * * * Type::getTypeInfo(): Option[] * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(Option[])) * * * * * * * * * * * type = 'Option[]' * * * * * * * * * * * typeinfo mangle: _D29TypeInfo_AS3std6getopt6Option6__initZ * * * * * * * * * * * TypeInfoArrayDeclaration::llvmDefine() typeid(Option[]) * * * * * * * * * * * * DtoTypeInfoOf(type = 'Option', base='1') * * * * * * * * * * * * * Type::getTypeInfo(): Option * * * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(Option)) * * * * * * * * * * * * * * * type = 'Option' * * * * * * * * * * * * * * * typeinfo mangle: _D28TypeInfo_S3std6getopt6Option6__initZ * * * * * * * * * * * * * * * TypeInfoStructDeclaration::llvmDefine() typeid(Option) * * * * * * * * * * * * * * * * DtoFunctionType(nothrow @trusted ulong(ref const(Option) p)) * * * * * * * * * * * * * * * * * Building type: const(Option)* * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * Final function type: i64 (%std.getopt.Option*) * * * * * * * * * * * * * * * * DtoResolveFunction(std.getopt.Option.__xtoHash): * * * * * * * * * * * * * * * * * DtoDeclareFunction(std.getopt.Option.__xtoHash): * * * * * * * * * * * * * * * * * * DtoFunctionType(nothrow @trusted ulong(ref const(Option) p)) * * * * * * * * * * * * * * * * * * func = declare i64 @_D3std6getopt6Option9__xtoHashFNbNeKxS3std6getopt6OptionZm(%std.getopt.Option*) * * * * * * * * * * * * * * * * DtoFunctionType(bool(ref const(Option) p, ref const(Option) q)) * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * Final function type: i1 (%std.getopt.Option*, %std.getopt.Option*) * * * * * * * * * * * * * * * * DtoResolveFunction(std.getopt.Option.__xopEquals): * * * * * * * * * * * * * * * * * DtoDeclareFunction(std.getopt.Option.__xopEquals): * * * * * * * * * * * * * * * * * * DtoFunctionType(bool(ref const(Option) p, ref const(Option) q)) * * * * * * * * * * * * * * * * * * func = declare i1 @_D3std6getopt6Option11__xopEqualsFKxS3std6getopt6OptionKxS3std6getopt6OptionZb(%std.getopt.Option*, %std.getopt.Option*) * * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(Option)) * * * * * * * * * TypeInfoDeclaration::codegen(typeid(Option[])) * * * * * * * * DtoArrayPtr * * * * * * * * DtoAssign() * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(560) * * * * * * DeclarationExp::toElem: bool incremental = false; | T=void * * * * * * * DtoDeclarationExp: incremental * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = bool) * * * * * * * * * llvm value for decl: %incremental = alloca i8, align 1 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: incremental = false | (bool)(bool = bool) * * * * * * * * * * VarExp::toElem: incremental @ bool * * * * * * * * * * * DtoSymbolAddress ('incremental' of type 'bool') * * * * * * * * * * * * a normal variable * * * * * * * * * * IntegerExp::toElem: false @ bool * * * * * * * * * * * IntegerExp::toConstElem: false @ bool * * * * * * * * * * * * value = i1 false * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(562) * * * * * * AndAndExp::toElem: option.length && cast(int)option[__dollar - 1LU] == 43 @ bool * * * * * * * ArrayLengthExp::toElem: option.length @ ulong * * * * * * * * VarExp::toElem: option @ string * * * * * * * * * DtoSymbolAddress ('option' of type 'string') * * * * * * * * * * a normal variable * * * * * * * * DtoArrayLen * * * * * * * Casting from 'ulong' to 'bool' * * * * * * * EqualExp::toElem: cast(int)option[__dollar - 1LU] == 43 @ bool * * * * * * * * CastExp::toElem: cast(int)option[__dollar - 1LU] @ int * * * * * * * * * IndexExp::toElem: option[__dollar - 1LU] @ immutable(char) * * * * * * * * * * VarExp::toElem: option @ string * * * * * * * * * * * DtoSymbolAddress ('option' of type 'string') * * * * * * * * * * * * a normal variable * * * * * * * * * * MinExp::toElem: __dollar - 1LU @ ulong * * * * * * * * * * * VarExp::toElem: __dollar @ ulong * * * * * * * * * * * * DtoSymbolAddress ('__dollar' of type 'ulong') * * * * * * * * * * * * * Id::dollar * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * DtoArrayPtr * * * * * * * * * Casting from 'immutable(char)' to 'int' * * * * * * * * * * cast to: i32 * * * * * * * * IntegerExp::toElem: 43 @ int * * * * * * * * * IntegerExp::toConstElem: 43 @ int * * * * * * * * * * value = i32 43 * * * * * * * * integral or pointer or interface * * * * * * * * lv: %28 = zext i8 %27 to i32 * * * * * * * * rv: i32 43 * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(563) * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(563) * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(564) * * * * * * * * * AssignExp::toElem: option = option[0..__dollar - 1LU] | (string)(string = string) * * * * * * * * * * VarExp::toElem: option @ string * * * * * * * * * * * DtoSymbolAddress ('option' of type 'string') * * * * * * * * * * * * a normal variable * * * * * * * * * * SliceExp::toElem: option[0..__dollar - 1LU] @ string * * * * * * * * * * * VarExp::toElem: option @ string * * * * * * * * * * * * DtoSymbolAddress ('option' of type 'string') * * * * * * * * * * * * * a normal variable * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * MinExp::toElem: __dollar - 1LU @ ulong * * * * * * * * * * * * VarExp::toElem: __dollar @ ulong * * * * * * * * * * * * * DtoSymbolAddress ('__dollar' of type 'ulong') * * * * * * * * * * * * * * Id::dollar * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * DtoAssign() * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * SetArray * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(565) * * * * * * * * * AssignExp::toElem: incremental = true | (bool)(bool = bool) * * * * * * * * * * VarExp::toElem: incremental @ bool * * * * * * * * * * * DtoSymbolAddress ('incremental' of type 'bool') * * * * * * * * * * * * a normal variable * * * * * * * * * * IntegerExp::toElem: true @ bool * * * * * * * * * * * IntegerExp::toConstElem: true @ bool * * * * * * * * * * * * value = i1 true * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(568) * * * * * * DeclarationExp::toElem: bool optWasHandled = handleOption(option, receiver, args, cfg, incremental); | T=void * * * * * * * DtoDeclarationExp: optWasHandled * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = bool) * * * * * * * * * llvm value for decl: %optWasHandled = alloca i8, align 1 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: optWasHandled = handleOption(option, receiver, args, cfg, incremental) | (bool)(bool = bool) * * * * * * * * * * VarExp::toElem: optWasHandled @ bool * * * * * * * * * * * DtoSymbolAddress ('optWasHandled' of type 'bool') * * * * * * * * * * * * a normal variable * * * * * * * * * * CallExp::toElem: handleOption(option, receiver, args, cfg, incremental) @ bool * * * * * * * * * * * VarExp::toElem: handleOption @ @system bool(string option, ulong* receiver, ref string[] args, ref configuration cfg, bool incremental) * * * * * * * * * * * * DtoSymbolAddress ('handleOption' of type '@system bool(string option, ulong* receiver, ref string[] args, ref configuration cfg, bool incremental)') * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * DtoFunctionType(@system bool(string option, ulong* receiver, ref string[] args, ref configuration cfg, bool incremental)) * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * Final function type: i1 (i1, %std.getopt.configuration*, { i64, { i64, i8* }* }*, i64*, { i64, i8* }) * * * * * * * * * * * * * DtoResolveFunction(std.getopt.handleOption!(ulong*).handleOption): /usr/include/dlang/ldc/std/getopt.d(621) * * * * * * * * * * * * * * DtoDeclareFunction(std.getopt.handleOption!(ulong*).handleOption): /usr/include/dlang/ldc/std/getopt.d(621) * * * * * * * * * * * * * * * DtoFunctionType(@system bool(string option, ulong* receiver, ref string[] args, ref configuration cfg, bool incremental)) * * * * * * * * * * * * * * * func = declare i1 @_D3std6getopt21__T12handleOptionTPmZ12handleOptionFAyaPmKAAyaKS3std6getopt13configurationbZb(i1, %std.getopt.configuration*, { i64, { i64, i8* }* }*, i64*, { i64, i8* }) * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * Building type: @system bool(string option, ulong* receiver, ref string[] args, ref configuration cfg, bool incremental) * * * * * * * * * * * * * DtoFunctionType(@system bool(string option, ulong* receiver, ref string[] args, ref configuration cfg, bool incremental)) * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * Final function type: i1 (i1, %std.getopt.configuration*, { i64, { i64, i8* }* }*, i64*, { i64, i8* }) * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * Function type: @system bool(string option, ulong* receiver, ref string[] args, ref configuration cfg, bool incremental) * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * VarExp::toElem: option @ string * * * * * * * * * * * * * * DtoSymbolAddress ('option' of type 'string') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * VarExp::toElem: receiver @ ulong* * * * * * * * * * * * * * * DtoSymbolAddress ('receiver' of type 'ulong*') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * VarExp::toElem: args @ string[] * * * * * * * * * * * * * * DtoSymbolAddress ('args' of type 'string[]') * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * type: string[] * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * VarExp::toElem: cfg @ configuration * * * * * * * * * * * * * * DtoSymbolAddress ('cfg' of type 'configuration') * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * type: configuration * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * VarExp::toElem: incremental @ bool * * * * * * * * * * * * * * DtoSymbolAddress ('incremental' of type 'bool') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(570) * * * * * * AndAndExp::toElem: cfg.required() && !optWasHandled @ bool * * * * * * * CallExp::toElem: cfg.required() @ bool * * * * * * * * DotVarExp::toElem: cfg.required @ const pure nothrow @nogc @property @safe bool() * * * * * * * * * VarExp::toElem: cfg @ configuration * * * * * * * * * * DtoSymbolAddress ('cfg' of type 'configuration') * * * * * * * * * * * function param * * * * * * * * * * * type: configuration * * * * * * * * DtoCallFunction() * * * * * * * * * doing normal arguments * * * * * * * * * Arguments so far: (1) * * * * * * * * * * %std.getopt.configuration* %cfg_arg * * * * * * * * * Function type: const pure nothrow @nogc @property @safe bool() * * * * * * * NotExp::toElem: !optWasHandled @ bool * * * * * * * * VarExp::toElem: optWasHandled @ bool * * * * * * * * * DtoSymbolAddress ('optWasHandled' of type 'bool') * * * * * * * * * * a normal variable * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(571) * * * * * * * ThrowStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(572) * * * * * * * * NewExp::toElem: new GetOptException("Required option " ~ option ~ "was not supplied", "/usr/include/dlang/ldc/std/getopt.d", 572LU) @ std.getopt.GetOptException * * * * * * * * * new class * * * * * * * * * DtoResolveClass(std.getopt.GetOptException): /usr/include/dlang/ldc/std/getopt.d(42) * * * * * * * * * * Building type: std.getopt.GetOptException * * * * * * * * * * * Building class type std.getopt.GetOptException @ /usr/include/dlang/ldc/std/getopt.d(42) * * * * * * * * * * * * Instance size: 72 * * * * * * * * * * * * adding default initializer for struct field msg * * * * * * * * * * * * adding default initializer for struct field file * * * * * * * * * * * * adding default initializer for struct field line * * * * * * * * * * * * adding default initializer for struct field info * * * * * * * * * * * * adding default initializer for struct field next * * * * * * * * * * * * Building vtbl type for class std.getopt.GetOptException * * * * * * * * * * * * * Adding type of object.Throwable.toString * * * * * * * * * * * * * isMember = this is: object.Throwable * * * * * * * * * * * * * DtoFunctionType(string()) * * * * * * * * * * * * * Adding type of object.Object.toHash * * * * * * * * * * * * * isMember = this is: object.Object * * * * * * * * * * * * * DtoFunctionType(nothrow @trusted ulong()) * * * * * * * * * * * * * Adding type of object.Object.opCmp * * * * * * * * * * * * * isMember = this is: object.Object * * * * * * * * * * * * * DtoFunctionType(int(Object o)) * * * * * * * * * * * * * Adding type of object.Object.opEquals * * * * * * * * * * * * * isMember = this is: object.Object * * * * * * * * * * * * * DtoFunctionType(bool(Object o)) * * * * * * * * * * * * * Adding type of object.Throwable.toString * * * * * * * * * * * * * isMember = this is: object.Throwable * * * * * * * * * * * * * DtoFunctionType(const void(scope void delegate(const(char[])) sink)) * * * * * * * * * * * * class type: %std.getopt.GetOptException = type { %std.getopt.GetOptException.__vtbl*, i8*, { i64, i8* }, { i64, i8* }, i64, %object.Throwable.TraceInfo*, %object.Throwable* } * * * * * * * * * Calling constructor * * * * * * * * * isMember = this is: std.getopt.GetOptException * * * * * * * * * DtoFunctionType(pure nothrow @safe GetOptException(string msg, string file = __FILE__, ulong line = cast(ulong)__LINE__)) * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: %std.getopt.GetOptException* (%std.getopt.GetOptException*, i64, { i64, i8* }, { i64, i8* }) * * * * * * * * * DtoResolveFunction(std.getopt.GetOptException.this): /usr/include/dlang/ldc/std/getopt.d(45) * * * * * * * * * * DtoDeclareFunction(std.getopt.GetOptException.this): /usr/include/dlang/ldc/std/getopt.d(45) * * * * * * * * * * * isMember = this is: std.getopt.GetOptException * * * * * * * * * * * DtoFunctionType(pure nothrow @safe GetOptException(string msg, string file = __FILE__, ulong line = cast(ulong)__LINE__)) * * * * * * * * * * * func = declare %std.getopt.GetOptException* @_D3std6getopt15GetOptException6__ctorMFNaNbNfAyaAyamZC3std6getopt15GetOptException(%std.getopt.GetOptException*, i64, { i64, i8* }, { i64, i8* }) * * * * * * * * * DtoCallFunction() * * * * * * * * * * Building type: pure nothrow @safe GetOptException(string msg, string file = __FILE__, ulong line = cast(ulong)__LINE__) * * * * * * * * * * * DtoFunctionType(pure nothrow @safe GetOptException(string msg, string file = __FILE__, ulong line = cast(ulong)__LINE__)) * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * Final function type: %std.getopt.GetOptException* (i64, { i64, i8* }, { i64, i8* }) * * * * * * * * * * doing normal arguments * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * %.newclass_gc = bitcast %object.Object* %.newclass_gc_alloc to %std.getopt.GetOptException* * * * * * * * * * * Function type: pure nothrow @safe GetOptException(string msg, string file = __FILE__, ulong line = cast(ulong)__LINE__) * * * * * * * * * * DtoArgument * * * * * * * * * * * CatExp::toElem: "Required option " ~ option ~ "was not supplied" @ string * * * * * * * * * * * * DtoCatAssignArray * * * * * * * * * * * * * StringExp::toElem: "was not supplied" @ string * * * * * * * * * * * * * * type: [17 x i8] * * * * * * * * * * * * * * init: [17 x i8] c"was not supplied\00" * * * * * * * * * * * * * VarExp::toElem: option @ string * * * * * * * * * * * * * * DtoSymbolAddress ('option' of type 'string') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * StringExp::toElem: "Required option " @ string * * * * * * * * * * * * * * type: [17 x i8] * * * * * * * * * * * * * * init: [17 x i8] c"Required option \00" * * * * * * * * * * * * * DtoTypeInfoOf(type = 'string', base='1') * * * * * * * * * * * * * * Type::getTypeInfo(): string * * * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(string)) * * * * * * * * * * DtoArgument * * * * * * * * * * * StringExp::toElem: "/usr/include/dlang/ldc/std/getopt.d" @ string * * * * * * * * * * DtoArgument * * * * * * * * * * * IntegerExp::toElem: 572LU @ ulong * * * * * * * * * * * * IntegerExp::toConstElem: 572LU @ ulong * * * * * * * * * * * * * value = i64 572 * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(575) * * * * * * CallExp::toElem: cfg.required(false) @ void * * * * * * * DotVarExp::toElem: cfg.required @ pure nothrow @nogc @property @safe void(bool v) * * * * * * * * VarExp::toElem: cfg @ configuration * * * * * * * * * DtoSymbolAddress ('cfg' of type 'configuration') * * * * * * * * * * function param * * * * * * * * * * type: configuration * * * * * * * * isMember = this is: configuration * * * * * * * * DtoFunctionType(pure nothrow @nogc @property @safe void(bool v)) * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * Final function type: void (%std.getopt.configuration*, i1) * * * * * * * * DtoResolveFunction(std.getopt.configuration.required): /usr/include/dlang/ldc/std/getopt.d-mixin-888(899) * * * * * * * * * DtoDeclareFunction(std.getopt.configuration.required): /usr/include/dlang/ldc/std/getopt.d-mixin-888(899) * * * * * * * * * * isMember = this is: configuration * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @property @safe void(bool v)) * * * * * * * * * * func = declare void @_D3std6getopt13configuration8requiredMFNaNbNdNiNfbZv(%std.getopt.configuration*, i1) * * * * * * * DtoCallFunction() * * * * * * * * Building type: pure nothrow @nogc @property @safe void(bool v) * * * * * * * * * DtoFunctionType(pure nothrow @nogc @property @safe void(bool v)) * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: void (i1) * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (1) * * * * * * * * * %std.getopt.configuration* %cfg_arg * * * * * * * * Function type: pure nothrow @nogc @property @safe void(bool v) * * * * * * * * DtoArgument * * * * * * * * * IntegerExp::toElem: false @ bool * * * * * * * * * * IntegerExp::toConstElem: false @ bool * * * * * * * * * * * value = i1 false * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(577) * * * * * * CallExp::toElem: getoptImpl(args, cfg, rslt, _param_5, _param_6, _param_7, _param_8, _param_9, _param_10, _param_11, _param_12, _param_13, _param_14, _param_15, _param_16, _param_17, _param_18, _param_19, _param_20, _param_21, _param_22, _param_23, _param_24, _param_25, _param_26, _param_27, _param_28, _param_29, _param_30) @ void * * * * * * * VarExp::toElem: getoptImpl @ @system void(ref string[] args, ref configuration cfg, ref GetoptResult rslt, string _param_3, string[]* _param_4, string _param_5, ushort* _param_6, string _param_7, bool* _param_8, string _param_9, bool* _param_10, string _param_11, bool* _param_12, string _param_13, bool* _param_14, string _param_15, bool* _param_16, string _param_17, bool* _param_18, string _param_19, string* _param_20, string _param_21, bool* _param_22, string _param_23, bool* _param_24, string _param_25, bool* _param_26, string _param_27, string* _param_28) * * * * * * * * DtoSymbolAddress ('getoptImpl' of type '@system void(ref string[] args, ref configuration cfg, ref GetoptResult rslt, string _param_3, string[]* _param_4, string _param_5, ushort* _param_6, string _param_7, bool* _param_8, string _param_9, bool* _param_10, string _param_11, bool* _param_12, string _param_13, bool* _param_14, string _param_15, bool* _param_16, string _param_17, bool* _param_18, string _param_19, string* _param_20, string _param_21, bool* _param_22, string _param_23, bool* _param_24, string _param_25, bool* _param_26, string _param_27, string* _param_28)') * * * * * * * * * FuncDeclaration * * * * * * * * * DtoFunctionType(@system void(ref string[] args, ref configuration cfg, ref GetoptResult rslt, string _param_3, string[]* _param_4, string _param_5, ushort* _param_6, string _param_7, bool* _param_8, string _param_9, bool* _param_10, string _param_11, bool* _param_12, string _param_13, bool* _param_14, string _param_15, bool* _param_16, string _param_17, bool* _param_18, string _param_19, string* _param_20, string _param_21, bool* _param_22, string _param_23, bool* _param_24, string _param_25, bool* _param_26, string _param_27, string* _param_28)) * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: void ({ i64, i8* }*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, { i64, i8* }*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, i16*, { i64, i8* }, { i64, { i64, i8* }* }*, { i64, i8* }, %std.getopt.GetoptResult*, %std.getopt.configuration*, { i64, { i64, i8* }* }*) * * * * * * * * * DtoResolveFunction(std.getopt.getoptImpl!(string, string[]*, string, ushort*, string, bool*, string, bool*, string, bool*, string, bool*, string, bool*, string, bool*, string, string*, string, bool*, string, bool*, string, bool*, string, string*).getoptImpl): /usr/include/dlang/ldc/std/getopt.d(526) * * * * * * * * * * DtoDeclareFunction(std.getopt.getoptImpl!(string, string[]*, string, ushort*, string, bool*, string, bool*, string, bool*, string, bool*, string, bool*, string, bool*, string, string*, string, bool*, string, bool*, string, bool*, string, string*).getoptImpl): /usr/include/dlang/ldc/std/getopt.d(526) * * * * * * * * * * * DtoFunctionType(@system void(ref string[] args, ref configuration cfg, ref GetoptResult rslt, string _param_3, string[]* _param_4, string _param_5, ushort* _param_6, string _param_7, bool* _param_8, string _param_9, bool* _param_10, string _param_11, bool* _param_12, string _param_13, bool* _param_14, string _param_15, bool* _param_16, string _param_17, bool* _param_18, string _param_19, string* _param_20, string _param_21, bool* _param_22, string _param_23, bool* _param_24, string _param_25, bool* _param_26, string _param_27, string* _param_28)) * * * * * * * * * * * func = declare void @_D3std6getopt114__T10getoptImplTAyaTPAAyaTAyaTPtTAyaTPbTAyaTPbTAyaTPbTAyaTPbTAyaTPbTAyaTPbTAyaTPAyaTAyaTPbTAyaTPbTAyaTPbTAyaTPAyaZ10getoptImplFKAAyaKS3std6getopt13configurationKS3std6getopt12GetoptResultAyaPAAyaAyaPtAyaPbAyaPbAyaPbAyaPbAyaPbAyaPbAyaPAyaAyaPbAyaPbAyaPbAyaPAyaZv({ i64, i8* }*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, { i64, i8* }*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, i16*, { i64, i8* }, { i64, { i64, i8* }* }*, { i64, i8* }, %std.getopt.GetoptResult*, %std.getopt.configuration*, { i64, { i64, i8* }* }*) * * * * * * * DtoCallFunction() * * * * * * * * Building type: @system void(ref string[] args, ref configuration cfg, ref GetoptResult rslt, string _param_3, string[]* _param_4, string _param_5, ushort* _param_6, string _param_7, bool* _param_8, string _param_9, bool* _param_10, string _param_11, bool* _param_12, string _param_13, bool* _param_14, string _param_15, bool* _param_16, string _param_17, bool* _param_18, string _param_19, string* _param_20, string _param_21, bool* _param_22, string _param_23, bool* _param_24, string _param_25, bool* _param_26, string _param_27, string* _param_28) * * * * * * * * * DtoFunctionType(@system void(ref string[] args, ref configuration cfg, ref GetoptResult rslt, string _param_3, string[]* _param_4, string _param_5, ushort* _param_6, string _param_7, bool* _param_8, string _param_9, bool* _param_10, string _param_11, bool* _param_12, string _param_13, bool* _param_14, string _param_15, bool* _param_16, string _param_17, bool* _param_18, string _param_19, string* _param_20, string _param_21, bool* _param_22, string _param_23, bool* _param_24, string _param_25, bool* _param_26, string _param_27, string* _param_28)) * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: void ({ i64, i8* }*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, { i64, i8* }*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, i16*, { i64, i8* }, { i64, { i64, i8* }* }*, { i64, i8* }, %std.getopt.GetoptResult*, %std.getopt.configuration*, { i64, { i64, i8* }* }*) * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (0) * * * * * * * * Function type: @system void(ref string[] args, ref configuration cfg, ref GetoptResult rslt, string _param_3, string[]* _param_4, string _param_5, ushort* _param_6, string _param_7, bool* _param_8, string _param_9, bool* _param_10, string _param_11, bool* _param_12, string _param_13, bool* _param_14, string _param_15, bool* _param_16, string _param_17, bool* _param_18, string _param_19, string* _param_20, string _param_21, bool* _param_22, string _param_23, bool* _param_24, string _param_25, bool* _param_26, string _param_27, string* _param_28) * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: args @ string[] * * * * * * * * * * DtoSymbolAddress ('args' of type 'string[]') * * * * * * * * * * * function param * * * * * * * * * * * type: string[] * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: cfg @ configuration * * * * * * * * * * DtoSymbolAddress ('cfg' of type 'configuration') * * * * * * * * * * * function param * * * * * * * * * * * type: configuration * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: rslt @ GetoptResult * * * * * * * * * * DtoSymbolAddress ('rslt' of type 'GetoptResult') * * * * * * * * * * * function param * * * * * * * * * * * type: GetoptResult * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_5 @ string * * * * * * * * * * DtoSymbolAddress ('_param_5' of type 'string') * * * * * * * * * * * function param * * * * * * * * * * * type: string * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_6 @ string[]* * * * * * * * * * * DtoSymbolAddress ('_param_6' of type 'string[]*') * * * * * * * * * * * function param * * * * * * * * * * * type: string[]* * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_7 @ string * * * * * * * * * * DtoSymbolAddress ('_param_7' of type 'string') * * * * * * * * * * * function param * * * * * * * * * * * type: string * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_8 @ ushort* * * * * * * * * * * DtoSymbolAddress ('_param_8' of type 'ushort*') * * * * * * * * * * * function param * * * * * * * * * * * type: ushort* * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_9 @ string * * * * * * * * * * DtoSymbolAddress ('_param_9' of type 'string') * * * * * * * * * * * function param * * * * * * * * * * * type: string * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_10 @ bool* * * * * * * * * * * DtoSymbolAddress ('_param_10' of type 'bool*') * * * * * * * * * * * function param * * * * * * * * * * * type: bool* * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_11 @ string * * * * * * * * * * DtoSymbolAddress ('_param_11' of type 'string') * * * * * * * * * * * function param * * * * * * * * * * * type: string * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_12 @ bool* * * * * * * * * * * DtoSymbolAddress ('_param_12' of type 'bool*') * * * * * * * * * * * function param * * * * * * * * * * * type: bool* * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_13 @ string * * * * * * * * * * DtoSymbolAddress ('_param_13' of type 'string') * * * * * * * * * * * function param * * * * * * * * * * * type: string * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_14 @ bool* * * * * * * * * * * DtoSymbolAddress ('_param_14' of type 'bool*') * * * * * * * * * * * function param * * * * * * * * * * * type: bool* * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_15 @ string * * * * * * * * * * DtoSymbolAddress ('_param_15' of type 'string') * * * * * * * * * * * function param * * * * * * * * * * * type: string * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_16 @ bool* * * * * * * * * * * DtoSymbolAddress ('_param_16' of type 'bool*') * * * * * * * * * * * function param * * * * * * * * * * * type: bool* * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_17 @ string * * * * * * * * * * DtoSymbolAddress ('_param_17' of type 'string') * * * * * * * * * * * function param * * * * * * * * * * * type: string * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_18 @ bool* * * * * * * * * * * DtoSymbolAddress ('_param_18' of type 'bool*') * * * * * * * * * * * function param * * * * * * * * * * * type: bool* * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_19 @ string * * * * * * * * * * DtoSymbolAddress ('_param_19' of type 'string') * * * * * * * * * * * function param * * * * * * * * * * * type: string * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_20 @ bool* * * * * * * * * * * DtoSymbolAddress ('_param_20' of type 'bool*') * * * * * * * * * * * function param * * * * * * * * * * * type: bool* * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_21 @ string * * * * * * * * * * DtoSymbolAddress ('_param_21' of type 'string') * * * * * * * * * * * function param * * * * * * * * * * * type: string * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_22 @ string* * * * * * * * * * * DtoSymbolAddress ('_param_22' of type 'string*') * * * * * * * * * * * function param * * * * * * * * * * * type: string* * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_23 @ string * * * * * * * * * * DtoSymbolAddress ('_param_23' of type 'string') * * * * * * * * * * * function param * * * * * * * * * * * type: string * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_24 @ bool* * * * * * * * * * * DtoSymbolAddress ('_param_24' of type 'bool*') * * * * * * * * * * * function param * * * * * * * * * * * type: bool* * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_25 @ string * * * * * * * * * * DtoSymbolAddress ('_param_25' of type 'string') * * * * * * * * * * * function param * * * * * * * * * * * type: string * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_26 @ bool* * * * * * * * * * * DtoSymbolAddress ('_param_26' of type 'bool*') * * * * * * * * * * * function param * * * * * * * * * * * type: bool* * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_27 @ string * * * * * * * * * * DtoSymbolAddress ('_param_27' of type 'string') * * * * * * * * * * * function param * * * * * * * * * * * type: string * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_28 @ bool* * * * * * * * * * * DtoSymbolAddress ('_param_28' of type 'bool*') * * * * * * * * * * * function param * * * * * * * * * * * type: bool* * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_29 @ string * * * * * * * * * * DtoSymbolAddress ('_param_29' of type 'string') * * * * * * * * * * * function param * * * * * * * * * * * type: string * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_30 @ string* * * * * * * * * * * DtoSymbolAddress ('_param_30' of type 'string*') * * * * * * * * * * * function param * * * * * * * * * * * type: string* * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(577) * TemplateInstance::codegen: 'std.getopt.handleOption!(ulong*)' * * DtoDefineFunction(std.getopt.handleOption!(ulong*).handleOption): /usr/include/dlang/ldc/std/getopt.d(621) * * * Doing function body for: handleOption * * * DtoCreateNestedContext for handleOption * * * * DtoCreateNestedContextType for std.getopt.handleOption!(ulong*).handleOption * * * * * has nested frame * * * * * Function handleOption has depth 0 * * * * * Nested var 'expanded' of type { i64, { i64, i8* }* } * * * * * Nested var 'a' of type { i64, i8* } * * * * * frameType = %nest.handleOption = type { { i64, { i64, i8* }* }, { i64, i8* } } * * * * nested var: expanded * * * * nested var: a * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(623) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(628) * * * * * * DeclarationExp::toElem: bool ret = false; | T=void * * * * * * * DtoDeclarationExp: ret * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = bool) * * * * * * * * * llvm value for decl: %ret = alloca i8, align 1 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: ret = false | (bool)(bool = bool) * * * * * * * * * * VarExp::toElem: ret @ bool * * * * * * * * * * * DtoSymbolAddress ('ret' of type 'bool') * * * * * * * * * * * * a normal variable * * * * * * * * * * IntegerExp::toElem: false @ bool * * * * * * * * * * * IntegerExp::toConstElem: false @ bool * * * * * * * * * * * * value = i1 false * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(629) * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(629) * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(629) * * * * * * * * DeclarationExp::toElem: ulong i = 1LU; | T=void * * * * * * * * * DtoDeclarationExp: i * * * * * * * * * * VarDeclaration * * * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * * * llvm value for decl: %i = alloca i64, align 8 * * * * * * * * * * * expression initializer * * * * * * * * * * * AssignExp::toElem: i = 1LU | (ulong)(ulong = ulong) * * * * * * * * * * * * VarExp::toElem: i @ ulong * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'ulong') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * lhs: %i = alloca i64, align 8 * * * * * * * * * * * * * rhs: i64 1 * * * * * * * ForStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(629) * * * * * * * * CmpExp::toElem: i < args.length @ bool * * * * * * * * * VarExp::toElem: i @ ulong * * * * * * * * * * DtoSymbolAddress ('i' of type 'ulong') * * * * * * * * * * * a normal variable * * * * * * * * * ArrayLengthExp::toElem: args.length @ ulong * * * * * * * * * * VarExp::toElem: args @ string[] * * * * * * * * * * * DtoSymbolAddress ('args' of type 'string[]') * * * * * * * * * * * * function param * * * * * * * * * * * * type: string[] * * * * * * * * * * DtoArrayLen * * * * * * * * * type 1: %3 = load i64, i64* %i * * * * * * * * * type 2: %.len = load i64, i64* %2 * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(630) * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(630) * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(631) * * * * * * * * * * * DeclarationExp::toElem: string a = args[i]; | T=void * * * * * * * * * * * * DtoDeclarationExp: a * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * DtoVarDeclaration(vdtype = string) * * * * * * * * * * * * * * has nestedref set (referenced by nested function/delegate) * * * * * * * * * * * * * * llvm value for decl: %a = getelementptr %nest.handleOption, %nest.handleOption* %.frame, i32 0, i32 1 * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * AssignExp::toElem: a = args[i] | (string)(string = string) * * * * * * * * * * * * * * * VarExp::toElem: a @ string * * * * * * * * * * * * * * * * DtoSymbolAddress ('a' of type 'string') * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * DtoNestedVariable for a @ /usr/include/dlang/ldc/std/getopt.d(631) * * * * * * * * * * * * * * * IndexExp::toElem: args[i] @ string * * * * * * * * * * * * * * * * VarExp::toElem: args @ string[] * * * * * * * * * * * * * * * * * DtoSymbolAddress ('args' of type 'string[]') * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * type: string[] * * * * * * * * * * * * * * * * VarExp::toElem: i @ ulong * * * * * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'ulong') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * SetArray * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(632) * * * * * * * * * * * AndAndExp::toElem: endOfOptions.length && a == endOfOptions @ bool * * * * * * * * * * * * ArrayLengthExp::toElem: endOfOptions.length @ ulong * * * * * * * * * * * * * VarExp::toElem: endOfOptions @ string * * * * * * * * * * * * * * DtoSymbolAddress ('endOfOptions' of type 'string') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * DtoResolveVariable(std.getopt.endOfOptions) * * * * * * * * * * * * * * * * data segment * * * * * * * * * * * * * * * * parent: getopt (module) * * * * * * * * * * * * * * * * @_D3std6getopt12endOfOptionsAya = external thread_local global { i64, i8* }, align 8 * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * Casting from 'ulong' to 'bool' * * * * * * * * * * * * EqualExp::toElem: a == endOfOptions @ bool * * * * * * * * * * * * * VarExp::toElem: a @ string * * * * * * * * * * * * * * DtoSymbolAddress ('a' of type 'string') * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * DtoNestedVariable for a @ /usr/include/dlang/ldc/std/getopt.d(632) * * * * * * * * * * * * * VarExp::toElem: endOfOptions @ string * * * * * * * * * * * * * * DtoSymbolAddress ('endOfOptions' of type 'string') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * DtoResolveVariable(std.getopt.endOfOptions) * * * * * * * * * * * * * * * * data segment * * * * * * * * * * * * * static or dynamic array * * * * * * * * * * * * * comparing arrays * * * * * * * * * * * * * casting to dynamic arrays * * * * * * * * * * * * * DtoCastArray * * * * * * * * * * * * * * from array or sarray * * * * * * * * * * * * * * to array * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * isslice * * * * * * * * * * * * * DtoCastArray * * * * * * * * * * * * * * from array or sarray * * * * * * * * * * * * * * to array * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * isslice * * * * * * * * * * * * * DtoTypeInfoOf(type = 'string', base='1') * * * * * * * * * * * * * * Type::getTypeInfo(): string * * * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(string)) * * * * * * * * * * * BreakStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(632) * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(633) * * * * * * * * * * * AndAndExp::toElem: cfg.stopOnFirstNonOption() && (!a.length || cast(uint)cast(int)a[0] != cast(uint)optionChar) @ bool * * * * * * * * * * * * CallExp::toElem: cfg.stopOnFirstNonOption() @ bool * * * * * * * * * * * * * DotVarExp::toElem: cfg.stopOnFirstNonOption @ const pure nothrow @nogc @property @safe bool() * * * * * * * * * * * * * * VarExp::toElem: cfg @ configuration * * * * * * * * * * * * * * * DtoSymbolAddress ('cfg' of type 'configuration') * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * type: configuration * * * * * * * * * * * * * * isMember = this is: configuration * * * * * * * * * * * * * * DtoFunctionType(const pure nothrow @nogc @property @safe bool()) * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * Final function type: i1 (%std.getopt.configuration*) * * * * * * * * * * * * * * DtoResolveFunction(std.getopt.configuration.stopOnFirstNonOption): /usr/include/dlang/ldc/std/getopt.d-mixin-888(894) * * * * * * * * * * * * * * * DtoDeclareFunction(std.getopt.configuration.stopOnFirstNonOption): /usr/include/dlang/ldc/std/getopt.d-mixin-888(894) * * * * * * * * * * * * * * * * isMember = this is: configuration * * * * * * * * * * * * * * * * DtoFunctionType(const pure nothrow @nogc @property @safe bool()) * * * * * * * * * * * * * * * * func = declare i1 @_D3std6getopt13configuration20stopOnFirstNonOptionMxFNaNbNdNiNfZb(%std.getopt.configuration*) * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * Building type: const pure nothrow @nogc @property @safe bool() * * * * * * * * * * * * * * * DtoFunctionType(const pure nothrow @nogc @property @safe bool()) * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * Final function type: i1 () * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * %std.getopt.configuration* %cfg_arg * * * * * * * * * * * * * * Function type: const pure nothrow @nogc @property @safe bool() * * * * * * * * * * * * OrOrExp::toElem: !a.length || cast(uint)cast(int)a[0] != cast(uint)optionChar @ bool * * * * * * * * * * * * * NotExp::toElem: !a.length @ bool * * * * * * * * * * * * * * ArrayLengthExp::toElem: a.length @ ulong * * * * * * * * * * * * * * * VarExp::toElem: a @ string * * * * * * * * * * * * * * * * DtoSymbolAddress ('a' of type 'string') * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * DtoNestedVariable for a @ /usr/include/dlang/ldc/std/getopt.d(633) * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * Casting from 'ulong' to 'bool' * * * * * * * * * * * * * EqualExp::toElem: cast(uint)cast(int)a[0] != cast(uint)optionChar @ bool * * * * * * * * * * * * * * CastExp::toElem: cast(uint)cast(int)a[0] @ uint * * * * * * * * * * * * * * * CastExp::toElem: cast(int)a[0] @ int * * * * * * * * * * * * * * * * IndexExp::toElem: a[0] @ immutable(char) * * * * * * * * * * * * * * * * * VarExp::toElem: a @ string * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('a' of type 'string') * * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * * DtoNestedVariable for a @ /usr/include/dlang/ldc/std/getopt.d(633) * * * * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * Casting from 'immutable(char)' to 'int' * * * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * * * * Casting from 'int' to 'uint' * * * * * * * * * * * * * * CastExp::toElem: cast(uint)optionChar @ uint * * * * * * * * * * * * * * * VarExp::toElem: optionChar @ dchar * * * * * * * * * * * * * * * * DtoSymbolAddress ('optionChar' of type 'dchar') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * DtoResolveVariable(std.getopt.optionChar) * * * * * * * * * * * * * * * * * * data segment * * * * * * * * * * * * * * * * * * parent: getopt (module) * * * * * * * * * * * * * * * * * * @_D3std6getopt10optionCharw = external thread_local global i32, align 8 * * * * * * * * * * * * * * * Casting from 'dchar' to 'uint' * * * * * * * * * * * * * * integral or pointer or interface * * * * * * * * * * * * * * lv: %33 = zext i8 %32 to i32 * * * * * * * * * * * * * * rv: %34 = load i32, i32* @_D3std6getopt10optionCharw * * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(634) * * * * * * * * * * * * BreakStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(636) * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(639) * * * * * * * * * * * AndAndExp::toElem: cfg.bundling() && a.length > 2LU && cast(uint)cast(int)a[0] == cast(uint)optionChar && cast(uint)cast(int)a[1] != cast(uint)optionChar @ bool * * * * * * * * * * * * AndAndExp::toElem: cfg.bundling() && a.length > 2LU && cast(uint)cast(int)a[0] == cast(uint)optionChar @ bool * * * * * * * * * * * * * AndAndExp::toElem: cfg.bundling() && a.length > 2LU @ bool * * * * * * * * * * * * * * CallExp::toElem: cfg.bundling() @ bool * * * * * * * * * * * * * * * DotVarExp::toElem: cfg.bundling @ const pure nothrow @nogc @property @safe bool() * * * * * * * * * * * * * * * * VarExp::toElem: cfg @ configuration * * * * * * * * * * * * * * * * * DtoSymbolAddress ('cfg' of type 'configuration') * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * type: configuration * * * * * * * * * * * * * * * * isMember = this is: configuration * * * * * * * * * * * * * * * * DtoFunctionType(const pure nothrow @nogc @property @safe bool()) * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * Final function type: i1 (%std.getopt.configuration*) * * * * * * * * * * * * * * * * DtoResolveFunction(std.getopt.configuration.bundling): /usr/include/dlang/ldc/std/getopt.d-mixin-888(890) * * * * * * * * * * * * * * * * * DtoDeclareFunction(std.getopt.configuration.bundling): /usr/include/dlang/ldc/std/getopt.d-mixin-888(890) * * * * * * * * * * * * * * * * * * isMember = this is: configuration * * * * * * * * * * * * * * * * * * DtoFunctionType(const pure nothrow @nogc @property @safe bool()) * * * * * * * * * * * * * * * * * * func = declare i1 @_D3std6getopt13configuration8bundlingMxFNaNbNdNiNfZb(%std.getopt.configuration*) * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * Building type: const pure nothrow @nogc @property @safe bool() * * * * * * * * * * * * * * * * * DtoFunctionType(const pure nothrow @nogc @property @safe bool()) * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * Final function type: i1 () * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * %std.getopt.configuration* %cfg_arg * * * * * * * * * * * * * * * * Function type: const pure nothrow @nogc @property @safe bool() * * * * * * * * * * * * * * CmpExp::toElem: a.length > 2LU @ bool * * * * * * * * * * * * * * * ArrayLengthExp::toElem: a.length @ ulong * * * * * * * * * * * * * * * * VarExp::toElem: a @ string * * * * * * * * * * * * * * * * * DtoSymbolAddress ('a' of type 'string') * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * DtoNestedVariable for a @ /usr/include/dlang/ldc/std/getopt.d(639) * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * IntegerExp::toElem: 2LU @ ulong * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 2LU @ ulong * * * * * * * * * * * * * * * * * value = i64 2 * * * * * * * * * * * * * * * type 1: %.len18 = load i64, i64* %37 * * * * * * * * * * * * * * * type 2: i64 2 * * * * * * * * * * * * * EqualExp::toElem: cast(uint)cast(int)a[0] == cast(uint)optionChar @ bool * * * * * * * * * * * * * * CastExp::toElem: cast(uint)cast(int)a[0] @ uint * * * * * * * * * * * * * * * CastExp::toElem: cast(int)a[0] @ int * * * * * * * * * * * * * * * * IndexExp::toElem: a[0] @ immutable(char) * * * * * * * * * * * * * * * * * VarExp::toElem: a @ string * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('a' of type 'string') * * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * * DtoNestedVariable for a @ /usr/include/dlang/ldc/std/getopt.d(639) * * * * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * Casting from 'immutable(char)' to 'int' * * * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * * * * Casting from 'int' to 'uint' * * * * * * * * * * * * * * CastExp::toElem: cast(uint)optionChar @ uint * * * * * * * * * * * * * * * VarExp::toElem: optionChar @ dchar * * * * * * * * * * * * * * * * DtoSymbolAddress ('optionChar' of type 'dchar') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * DtoResolveVariable(std.getopt.optionChar) * * * * * * * * * * * * * * * * * * data segment * * * * * * * * * * * * * * * Casting from 'dchar' to 'uint' * * * * * * * * * * * * * * integral or pointer or interface * * * * * * * * * * * * * * lv: %42 = zext i8 %41 to i32 * * * * * * * * * * * * * * rv: %43 = load i32, i32* @_D3std6getopt10optionCharw * * * * * * * * * * * * EqualExp::toElem: cast(uint)cast(int)a[1] != cast(uint)optionChar @ bool * * * * * * * * * * * * * CastExp::toElem: cast(uint)cast(int)a[1] @ uint * * * * * * * * * * * * * * CastExp::toElem: cast(int)a[1] @ int * * * * * * * * * * * * * * * IndexExp::toElem: a[1] @ immutable(char) * * * * * * * * * * * * * * * * VarExp::toElem: a @ string * * * * * * * * * * * * * * * * * DtoSymbolAddress ('a' of type 'string') * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * DtoNestedVariable for a @ /usr/include/dlang/ldc/std/getopt.d(640) * * * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * Casting from 'immutable(char)' to 'int' * * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * * * Casting from 'int' to 'uint' * * * * * * * * * * * * * CastExp::toElem: cast(uint)optionChar @ uint * * * * * * * * * * * * * * VarExp::toElem: optionChar @ dchar * * * * * * * * * * * * * * * DtoSymbolAddress ('optionChar' of type 'dchar') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * DtoResolveVariable(std.getopt.optionChar) * * * * * * * * * * * * * * * * * data segment * * * * * * * * * * * * * * Casting from 'dchar' to 'uint' * * * * * * * * * * * * * integral or pointer or interface * * * * * * * * * * * * * lv: %48 = zext i8 %47 to i32 * * * * * * * * * * * * * rv: %49 = load i32, i32* @_D3std6getopt10optionCharw * * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(641) * * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(641) * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(642) * * * * * * * * * * * * * * DeclarationExp::toElem: string[] expanded = null; | T=void * * * * * * * * * * * * * * * DtoDeclarationExp: expanded * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = string[]) * * * * * * * * * * * * * * * * * has nestedref set (referenced by nested function/delegate) * * * * * * * * * * * * * * * * * llvm value for decl: %expanded = getelementptr %nest.handleOption, %nest.handleOption* %.frame, i32 0, i32 0 * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * AssignExp::toElem: expanded = null | (string[])(string[] = string[]) * * * * * * * * * * * * * * * * * * VarExp::toElem: expanded @ string[] * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('expanded' of type 'string[]') * * * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for expanded @ /usr/include/dlang/ldc/std/getopt.d(642) * * * * * * * * * * * * * * * * * * NullExp::toElem(type=string[]): null * * * * * * * * * * * * * * * * * * * NullExp::toConstElem(type=string[]): null * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * * * * * * DtoSetArrayToNull * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(643) * * * * * * * * * * * * * * CallExp::toElem: _aApplycd2(a[1..__dollar], delegate int(ref ulong __applyArg0, ref dchar __applyArg1) => 0) @ int * * * * * * * * * * * * * * * VarExp::toElem: _aApplycd2 @ extern (C) int(in string, int delegate(void*, void*)) * * * * * * * * * * * * * * * * DtoSymbolAddress ('_aApplycd2' of type 'extern (C) int(in string, int delegate(void*, void*))') * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * DtoFunctionType(extern (C) int(in string, int delegate(void*, void*))) * * * * * * * * * * * * * * * * * * Building type: int delegate(void*, void*) * * * * * * * * * * * * * * * * * * * DtoFunctionType(int(void*, void*)) * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * Final function type: i32 (i8*, i8*, i8*) * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * Final function type: i32 ({ i64, i8* }, { i8*, i32 (i8*, i8*, i8*)* }) * * * * * * * * * * * * * * * * * DtoResolveFunction(_aApplycd2): * * * * * * * * * * * * * * * * * * DtoDeclareFunction(_aApplycd2): * * * * * * * * * * * * * * * * * * * DtoFunctionType(extern (C) int(in string, int delegate(void*, void*))) * * * * * * * * * * * * * * * * * * * func = declare i32 @_aApplycd2({ i64, i8* }, { i8*, i32 (i8*, i8*, i8*)* }) * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * Building type: extern (C) int(in string, int delegate(void*, void*)) * * * * * * * * * * * * * * * * * DtoFunctionType(extern (C) int(in string, int delegate(void*, void*))) * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * Final function type: i32 ({ i64, i8* }, { i8*, i32 (i8*, i8*, i8*)* }) * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * Function type: extern (C) int(in string, int delegate(void*, void*)) * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * SliceExp::toElem: a[1..__dollar] @ string * * * * * * * * * * * * * * * * * * VarExp::toElem: a @ string * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('a' of type 'string') * * * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for a @ /usr/include/dlang/ldc/std/getopt.d(643) * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * * * * * * VarExp::toElem: __dollar @ ulong * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__dollar' of type 'ulong') * * * * * * * * * * * * * * * * * * * * Id::dollar * * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * FuncExp::toElem: __foreachbody6 @ int delegate(void*, void*) * * * * * * * * * * * * * * * * * * nested * * * * * * * * * * * * * * * * * * kind = delegate * * * * * * * * * * * * * * * * * * DtoDefineFunction(std.getopt.handleOption!(ulong*).handleOption.__foreachbody6): /usr/include/dlang/ldc/std/getopt.d(643) * * * * * * * * * * * * * * * * * * * DtoFunctionType(@safe int(ref ulong __applyArg0, ref dchar __applyArg1)) * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * Final function type: i32 (i8*, i32*, i64*) * * * * * * * * * * * * * * * * * * * DtoResolveFunction(std.getopt.handleOption!(ulong*).handleOption.__foreachbody6): /usr/include/dlang/ldc/std/getopt.d(643) * * * * * * * * * * * * * * * * * * * * DtoDeclareFunction(std.getopt.handleOption!(ulong*).handleOption.__foreachbody6): /usr/include/dlang/ldc/std/getopt.d(643) * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(@safe int(ref ulong __applyArg0, ref dchar __applyArg1)) * * * * * * * * * * * * * * * * * * * * * func = declare i32 @_D3std6getopt21__T12handleOptionTPmZ12handleOptionFAyaPmKAAyaKS3std6getopt13configurationbZ14__foreachbody6MFNfKmKwZi(i8*, i32*, i64*) * * * * * * * * * * * * * * * * * * * Doing function body for: __foreachbody6 * * * * * * * * * * * * * * * * * * * DtoCreateNestedContext for __foreachbody6 * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for std.getopt.handleOption!(ulong*).handleOption.__foreachbody6 * * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for std.getopt.handleOption!(ulong*).handleOption * * * * * * * * * * * * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * * * * * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * * * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(643) * * * * * * * * * * * * * * * * * * * * * * ExpStatement::toIR(): * * * * * * * * * * * * * * * * * * * * * * * DeclarationExp::toElem: dchar c = __applyArg1; | T=void * * * * * * * * * * * * * * * * * * * * * * * * DtoDeclarationExp: c * * * * * * * * * * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = dchar) * * * * * * * * * * * * * * * * * * * * * * * * * * llvm value for decl: %c = alloca i32, align 4 * * * * * * * * * * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * * * * * * * * * * AssignExp::toElem: c = __applyArg1 | (dchar)(dchar = dchar) * * * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: c @ dchar * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('c' of type 'dchar') * * * * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: __applyArg1 @ dchar * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__applyArg1' of type 'dchar') * * * * * * * * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * * * * * * * * type: dchar * * * * * * * * * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * * * * * * * * * lhs: %c = alloca i32, align 4 * * * * * * * * * * * * * * * * * * * * * * * * * * * * rhs: %1 = load i32, i32* %__applyArg1_arg * * * * * * * * * * * * * * * * * * * * * * ExpStatement::toIR(): * * * * * * * * * * * * * * * * * * * * * * * DeclarationExp::toElem: ulong j = __applyArg0; | T=void * * * * * * * * * * * * * * * * * * * * * * * * DtoDeclarationExp: j * * * * * * * * * * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * * * * * * * * * * * * * * * * * * llvm value for decl: %j = alloca i64, align 8 * * * * * * * * * * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * * * * * * * * * * AssignExp::toElem: j = __applyArg0 | (ulong)(ulong = ulong) * * * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: j @ ulong * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('j' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: __applyArg0 @ ulong * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__applyArg0' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * * * * * * * * type: ulong * * * * * * * * * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * * * * * * * * * lhs: %j = alloca i64, align 8 * * * * * * * * * * * * * * * * * * * * * * * * * * * * rhs: %2 = load i64, i64* %__applyArg0_arg * * * * * * * * * * * * * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(647) * * * * * * * * * * * * * * * * * * * * * * * NotExp::toElem: !isAlpha(c) @ bool * * * * * * * * * * * * * * * * * * * * * * * * CallExp::toElem: isAlpha(c) @ bool * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: isAlpha @ pure nothrow @nogc @safe bool(dchar c) * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('isAlpha' of type 'pure nothrow @nogc @safe bool(dchar c)') * * * * * * * * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe bool(dchar c)) * * * * * * * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * * * * * * * * * Final function type: i1 (i32) * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoResolveFunction(std.ascii.isAlpha): /usr/include/dlang/ldc/std/ascii.d(86) * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoDeclareFunction(std.ascii.isAlpha): /usr/include/dlang/ldc/std/ascii.d(86) * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe bool(dchar c)) * * * * * * * * * * * * * * * * * * * * * * * * * * * * * func = declare i1 @_D3std5ascii7isAlphaFNaNbNiNfwZb(i32) * * * * * * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * * * * * * Building type: pure nothrow @nogc @safe bool(dchar c) * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe bool(dchar c)) * * * * * * * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * * * * * * * * * Final function type: i1 (i32) * * * * * * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @safe bool(dchar c) * * * * * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: c @ dchar * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('c' of type 'dchar') * * * * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(648) * * * * * * * * * * * * * * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(648) * * * * * * * * * * * * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(649) * * * * * * * * * * * * * * * * * * * * * * * * * * CatAssignExp::toElem: expanded ~= a[j + 1LU..__dollar] @ string[] * * * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: expanded @ string[] * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('expanded' of type 'string[]') * * * * * * * * * * * * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for expanded @ /usr/include/dlang/ldc/std/getopt.d(649) * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for std.getopt.handleOption!(ulong*).handleOption * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Context: %7 = bitcast i8* %6 to %nest.handleOption* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * of type: %nest.handleOption = type { { i64, { i64, i8* }* }, { i64, i8* } } * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Variable: expanded * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Function: __foreachbody6 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Addr: %expanded = getelementptr %nest.handleOption, %nest.handleOption* %7, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * of type: { i64, { i64, i8* }* }* * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoCatAssignElement * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * * * * * * * * * * * SliceExp::toElem: a[j + 1LU..__dollar] @ string * * * * * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: a @ string * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('a' of type 'string') * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for a @ /usr/include/dlang/ldc/std/getopt.d(649) * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for std.getopt.handleOption!(ulong*).handleOption * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Context: %10 = bitcast i8* %9 to %nest.handleOption* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * of type: %nest.handleOption = type { { i64, { i64, i8* }* }, { i64, i8* } } * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Variable: a * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Function: __foreachbody6 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Addr: %a = getelementptr %nest.handleOption, %nest.handleOption* %10, i32 0, i32 1 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * of type: { i64, i8* }* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * * * * * * * * * * * * AddExp::toElem: j + 1LU @ ulong * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: j @ ulong * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('j' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: __dollar @ ulong * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__dollar' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Id::dollar * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoTypeInfoOf(type = 'string[]', base='1') * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Type::getTypeInfo(): string[] * * * * * * * * * * * * * * * * * * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(string[])) * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * SetArray * * * * * * * * * * * * * * * * * * * * * * * * * ReturnStatement::toIR(): * * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 1 @ int * * * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1 @ int * * * * * * * * * * * * * * * * * * * * * * * * * * * * value = i32 1 * * * * * * * * * * * * * * * * * * * * * * * * * * return value is '0x120e3000' * * * * * * * * * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(652) * * * * * * * * * * * * * * * * * * * * * * * CatAssignExp::toElem: expanded ~= text(optionChar, c) @ string[] * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: expanded @ string[] * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('expanded' of type 'string[]') * * * * * * * * * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for expanded @ /usr/include/dlang/ldc/std/getopt.d(652) * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for std.getopt.handleOption!(ulong*).handleOption * * * * * * * * * * * * * * * * * * * * * * * * * * * Context: %18 = bitcast i8* %17 to %nest.handleOption* * * * * * * * * * * * * * * * * * * * * * * * * * * * of type: %nest.handleOption = type { { i64, { i64, i8* }* }, { i64, i8* } } * * * * * * * * * * * * * * * * * * * * * * * * * * * Variable: expanded * * * * * * * * * * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * * * * * * * * * * Function: __foreachbody6 * * * * * * * * * * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * * * * * * * * * * Addr: %expanded4 = getelementptr %nest.handleOption, %nest.handleOption* %18, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * * * * * * * * * of type: { i64, { i64, i8* }* }* * * * * * * * * * * * * * * * * * * * * * * * * DtoCatAssignElement * * * * * * * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * * * * * * * * CallExp::toElem: text(optionChar, c) @ string * * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: text @ pure @safe string(dchar _param_0, dchar _param_1) * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('text' of type 'pure @safe string(dchar _param_0, dchar _param_1)') * * * * * * * * * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * * * * * * * Building type: pure @safe string(dchar _param_0, dchar _param_1) * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure @safe string(dchar _param_0, dchar _param_1)) * * * * * * * * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Final function type: { i64, i8* } (i32, i32) * * * * * * * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * * * * * * * * * Function type: pure @safe string(dchar _param_0, dchar _param_1) * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: optionChar @ dchar * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('optionChar' of type 'dchar') * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoResolveVariable(std.getopt.optionChar) * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * data segment * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: c @ dchar * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('c' of type 'dchar') * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * * * DtoTypeInfoOf(type = 'string[]', base='1') * * * * * * * * * * * * * * * * * * * * * * * * * * Type::getTypeInfo(): string[] * * * * * * * * * * * * * * * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(string[])) * * * * * * * * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * * * * * * * * * * SetArray * * * * * * * * * * * * * * * * * * * * * ReturnStatement::toIR(): * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 0 @ int * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0 @ int * * * * * * * * * * * * * * * * * * * * * * * * value = i32 0 * * * * * * * * * * * * * * * * * * * * * * return value is '0x120e1350' * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(654) * * * * * * * * * * * * * * AssignExp::toElem: args = args[0..i] ~ expanded ~ args[i + 1LU..__dollar] | (string[])(string[] = string[]) * * * * * * * * * * * * * * * VarExp::toElem: args @ string[] * * * * * * * * * * * * * * * * DtoSymbolAddress ('args' of type 'string[]') * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * type: string[] * * * * * * * * * * * * * * * CatExp::toElem: args[0..i] ~ expanded ~ args[i + 1LU..__dollar] @ string[] * * * * * * * * * * * * * * * * DtoCatAssignArray * * * * * * * * * * * * * * * * * SliceExp::toElem: args[i + 1LU..__dollar] @ string[] * * * * * * * * * * * * * * * * * * VarExp::toElem: args @ string[] * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('args' of type 'string[]') * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * type: string[] * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * AddExp::toElem: i + 1LU @ ulong * * * * * * * * * * * * * * * * * * * VarExp::toElem: i @ ulong * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * * * * * * VarExp::toElem: __dollar @ ulong * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__dollar' of type 'ulong') * * * * * * * * * * * * * * * * * * * * Id::dollar * * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * * SetArray * * * * * * * * * * * * * * * * * VarExp::toElem: expanded @ string[] * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('expanded' of type 'string[]') * * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * * DtoNestedVariable for expanded @ /usr/include/dlang/ldc/std/getopt.d(654) * * * * * * * * * * * * * * * * * SliceExp::toElem: args[0..i] @ string[] * * * * * * * * * * * * * * * * * * VarExp::toElem: args @ string[] * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('args' of type 'string[]') * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * type: string[] * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * * * * * * VarExp::toElem: i @ ulong * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'ulong') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * * SetArray * * * * * * * * * * * * * * * * * DtoTypeInfoOf(type = 'string[]', base='1') * * * * * * * * * * * * * * * * * * Type::getTypeInfo(): string[] * * * * * * * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(string[])) * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * SetArray * * * * * * * * * * * * * ContinueStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(655) * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(658) * * * * * * * * * * * DeclarationExp::toElem: string val = null; | T=void * * * * * * * * * * * * DtoDeclarationExp: val * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * DtoVarDeclaration(vdtype = string) * * * * * * * * * * * * * * llvm value for decl: %val = alloca { i64, i8* }, align 8 * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * AssignExp::toElem: val = null | (string)(string = string) * * * * * * * * * * * * * * * VarExp::toElem: val @ string * * * * * * * * * * * * * * * * DtoSymbolAddress ('val' of type 'string') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * NullExp::toElem(type=string): null * * * * * * * * * * * * * * * * NullExp::toConstElem(type=string): null * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * * * DtoSetArrayToNull * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(659) * * * * * * * * * * * NotExp::toElem: !optMatch(a, option, val, cfg) @ bool * * * * * * * * * * * * CallExp::toElem: optMatch(a, option, val, cfg) @ bool * * * * * * * * * * * * * VarExp::toElem: optMatch @ bool(string arg, string optPattern, ref string value, configuration cfg) * * * * * * * * * * * * * * DtoSymbolAddress ('optMatch' of type 'bool(string arg, string optPattern, ref string value, configuration cfg)') * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * DtoFunctionType(bool(string arg, string optPattern, ref string value, configuration cfg)) * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * Final function type: i1 (%std.getopt.configuration, { i64, i8* }*, { i64, i8* }, { i64, i8* }) * * * * * * * * * * * * * * * DtoResolveFunction(std.getopt.optMatch): /usr/include/dlang/ldc/std/getopt.d(898) * * * * * * * * * * * * * * * * DtoDeclareFunction(std.getopt.optMatch): /usr/include/dlang/ldc/std/getopt.d(898) * * * * * * * * * * * * * * * * * DtoFunctionType(bool(string arg, string optPattern, ref string value, configuration cfg)) * * * * * * * * * * * * * * * * * func = declare i1 @_D3std6getopt8optMatchFAyaAyaKAyaS3std6getopt13configurationZb(%std.getopt.configuration, { i64, i8* }*, { i64, i8* }, { i64, i8* }) * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * Building type: bool(string arg, string optPattern, ref string value, configuration cfg) * * * * * * * * * * * * * * * DtoFunctionType(bool(string arg, string optPattern, ref string value, configuration cfg)) * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * Final function type: i1 (%std.getopt.configuration, { i64, i8* }*, { i64, i8* }, { i64, i8* }) * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * Function type: bool(string arg, string optPattern, ref string value, configuration cfg) * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * VarExp::toElem: a @ string * * * * * * * * * * * * * * * * DtoSymbolAddress ('a' of type 'string') * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * DtoNestedVariable for a @ /usr/include/dlang/ldc/std/getopt.d(659) * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * VarExp::toElem: option @ string * * * * * * * * * * * * * * * * DtoSymbolAddress ('option' of type 'string') * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * type: string * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * VarExp::toElem: val @ string * * * * * * * * * * * * * * * * DtoSymbolAddress ('val' of type 'string') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * VarExp::toElem: cfg @ configuration * * * * * * * * * * * * * * * * DtoSymbolAddress ('cfg' of type 'configuration') * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * type: configuration * * * * * * * * * * * * * * Loading struct type for function argument * * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(660) * * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(660) * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(661) * * * * * * * * * * * * * * AddAssignExp::toElem: i += 1LU @ ulong * * * * * * * * * * * * * * * Caching l-value of i += 1LU => i * * * * * * * * * * * * * * * * VarExp::toElem: i @ ulong * * * * * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'ulong') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * AddExp::toElem: i + 1LU @ ulong * * * * * * * * * * * * * * * * VarExp::toElem: i @ ulong * * * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * lhs: %i = alloca i64, align 8 * * * * * * * * * * * * * * * * rhs: %85 = add i64 %84, 1 * * * * * * * * * * * * * ContinueStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(662) * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(665) * * * * * * * * * * * AssignExp::toElem: ret = true | (bool)(bool = bool) * * * * * * * * * * * * VarExp::toElem: ret @ bool * * * * * * * * * * * * * DtoSymbolAddress ('ret' of type 'bool') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * IntegerExp::toElem: true @ bool * * * * * * * * * * * * * IntegerExp::toConstElem: true @ bool * * * * * * * * * * * * * * value = i1 true * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * DtoAssign() * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(670) * * * * * * * * * * * AssignExp::toElem: args = args[0..i] ~ args[i + 1LU..__dollar] | (string[])(string[] = string[]) * * * * * * * * * * * * VarExp::toElem: args @ string[] * * * * * * * * * * * * * DtoSymbolAddress ('args' of type 'string[]') * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * type: string[] * * * * * * * * * * * * CatExp::toElem: args[0..i] ~ args[i + 1LU..__dollar] @ string[] * * * * * * * * * * * * * DtoCatAssignArray * * * * * * * * * * * * * * DtoTypeInfoOf(type = 'string[]', base='1') * * * * * * * * * * * * * * * Type::getTypeInfo(): string[] * * * * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(string[])) * * * * * * * * * * * * * * SliceExp::toElem: args[0..i] @ string[] * * * * * * * * * * * * * * * VarExp::toElem: args @ string[] * * * * * * * * * * * * * * * * DtoSymbolAddress ('args' of type 'string[]') * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * type: string[] * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * * * VarExp::toElem: i @ ulong * * * * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'ulong') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * SetArray * * * * * * * * * * * * * * SliceExp::toElem: args[i + 1LU..__dollar] @ string[] * * * * * * * * * * * * * * * VarExp::toElem: args @ string[] * * * * * * * * * * * * * * * * DtoSymbolAddress ('args' of type 'string[]') * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * type: string[] * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * AddExp::toElem: i + 1LU @ ulong * * * * * * * * * * * * * * * * VarExp::toElem: i @ ulong * * * * * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'ulong') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * * * VarExp::toElem: __dollar @ ulong * * * * * * * * * * * * * * * * DtoSymbolAddress ('__dollar' of type 'ulong') * * * * * * * * * * * * * * * * * Id::dollar * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * SetArray * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * SetArray * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(690) * * * * * * * * * * * DeclarationExp::toElem: enum bool isCallbackWithLessThanTwoParameters = false; | T=void * * * * * * * * * * * * DtoDeclarationExp: isCallbackWithLessThanTwoParameters * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * Manifest constant, nothing to do. * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(693) * * * * * * * * * * * AndAndExp::toElem: !!!val.length && !incremental @ bool * * * * * * * * * * * * BoolExp::toElem: !!!val.length @ bool * * * * * * * * * * * * * NotExp::toElem: !val.length @ bool * * * * * * * * * * * * * * ArrayLengthExp::toElem: val.length @ ulong * * * * * * * * * * * * * * * VarExp::toElem: val @ string * * * * * * * * * * * * * * * * DtoSymbolAddress ('val' of type 'string') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * Casting from 'ulong' to 'bool' * * * * * * * * * * * * NotExp::toElem: !incremental @ bool * * * * * * * * * * * * * VarExp::toElem: incremental @ bool * * * * * * * * * * * * * * DtoSymbolAddress ('incremental' of type 'bool') * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * type: bool * * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(694) * * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(694) * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(697) * * * * * * * * * * * * * * CallExp::toElem: enforce(i < args.length, delegate const(char)[]() => "Missing value for argument " ~ a ~ ".", "/usr/include/dlang/ldc/std/getopt.d", 697LU) @ bool * * * * * * * * * * * * * * * VarExp::toElem: enforce @ pure @safe bool(bool value, lazy const(char)[] msg = null, string file = __FILE__, ulong line = cast(ulong)__LINE__) * * * * * * * * * * * * * * * * DtoSymbolAddress ('enforce' of type 'pure @safe bool(bool value, lazy const(char)[] msg = null, string file = __FILE__, ulong line = cast(ulong)__LINE__)') * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * Function type: pure @safe bool(bool value, lazy const(char)[] msg = null, string file = __FILE__, ulong line = cast(ulong)__LINE__) * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * CmpExp::toElem: i < args.length @ bool * * * * * * * * * * * * * * * * * * VarExp::toElem: i @ ulong * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'ulong') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * ArrayLengthExp::toElem: args.length @ ulong * * * * * * * * * * * * * * * * * * * VarExp::toElem: args @ string[] * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('args' of type 'string[]') * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * type: string[] * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * type 1: %119 = load i64, i64* %i * * * * * * * * * * * * * * * * * * type 2: %.len65 = load i64, i64* %118 * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * FuncExp::toElem: __dgliteral7 @ const(char)[] delegate() pure nothrow @safe * * * * * * * * * * * * * * * * * * nested * * * * * * * * * * * * * * * * * * kind = delegate * * * * * * * * * * * * * * * * * * DtoDefineFunction(std.getopt.handleOption!(ulong*).handleOption.__dgliteral7): /usr/include/dlang/ldc/std/getopt.d(698) * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @safe const(char)[]()) * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * Final function type: { i64, i8* } (i8*) * * * * * * * * * * * * * * * * * * * DtoResolveFunction(std.getopt.handleOption!(ulong*).handleOption.__dgliteral7): /usr/include/dlang/ldc/std/getopt.d(698) * * * * * * * * * * * * * * * * * * * * DtoDeclareFunction(std.getopt.handleOption!(ulong*).handleOption.__dgliteral7): /usr/include/dlang/ldc/std/getopt.d(698) * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @safe const(char)[]()) * * * * * * * * * * * * * * * * * * * * * func = declare { i64, i8* } @_D3std6getopt21__T12handleOptionTPmZ12handleOptionFAyaPmKAAyaKS3std6getopt13configurationbZ12__dgliteral7MFNaNbNfZAxa(i8*) * * * * * * * * * * * * * * * * * * * Doing function body for: __dgliteral7 * * * * * * * * * * * * * * * * * * * DtoCreateNestedContext for __dgliteral7 * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for std.getopt.handleOption!(ulong*).handleOption.__dgliteral7 * * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for std.getopt.handleOption!(ulong*).handleOption * * * * * * * * * * * * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * * * * * * * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(698) * * * * * * * * * * * * * * * * * * * * * CatExp::toElem: "Missing value for argument " ~ a ~ "." @ const(char)[] * * * * * * * * * * * * * * * * * * * * * * DtoCatAssignArray * * * * * * * * * * * * * * * * * * * * * * * StringExp::toElem: "." @ string * * * * * * * * * * * * * * * * * * * * * * * * type: [2 x i8] * * * * * * * * * * * * * * * * * * * * * * * * init: [2 x i8] c".\00" * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: a @ string * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('a' of type 'string') * * * * * * * * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for a @ /usr/include/dlang/ldc/std/getopt.d(698) * * * * * * * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for std.getopt.handleOption!(ulong*).handleOption * * * * * * * * * * * * * * * * * * * * * * * * * * Context: %2 = bitcast i8* %1 to %nest.handleOption* * * * * * * * * * * * * * * * * * * * * * * * * * * of type: %nest.handleOption = type { { i64, { i64, i8* }* }, { i64, i8* } } * * * * * * * * * * * * * * * * * * * * * * * * * * Variable: a * * * * * * * * * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * * * * * * * * * Function: __dgliteral7 * * * * * * * * * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * * * * * * * * * Addr: %a = getelementptr %nest.handleOption, %nest.handleOption* %2, i32 0, i32 1 * * * * * * * * * * * * * * * * * * * * * * * * * * of type: { i64, i8* }* * * * * * * * * * * * * * * * * * * * * * * * StringExp::toElem: "Missing value for argument " @ string * * * * * * * * * * * * * * * * * * * * * * * * type: [28 x i8] * * * * * * * * * * * * * * * * * * * * * * * * init: [28 x i8] c"Missing value for argument \00" * * * * * * * * * * * * * * * * * * * * * * * DtoTypeInfoOf(type = 'const(char)[]', base='1') * * * * * * * * * * * * * * * * * * * * * * * * Type::getTypeInfo(): const(char)[] * * * * * * * * * * * * * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(const(char)[])) * * * * * * * * * * * * * * * * * * * * * return value is '0x12e9a7d0' * * * * * * * * * * * * * * * * * * Building type: const(char)[] delegate() pure nothrow @safe * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @safe const(char)[]()) * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * Final function type: { i64, i8* } (i8*) * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * StringExp::toElem: "/usr/include/dlang/ldc/std/getopt.d" @ string * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * IntegerExp::toElem: 697LU @ ulong * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 697LU @ ulong * * * * * * * * * * * * * * * * * * * value = i64 697 * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(699) * * * * * * * * * * * * * * AssignExp::toElem: val = args[i] | (string)(string = string) * * * * * * * * * * * * * * * VarExp::toElem: val @ string * * * * * * * * * * * * * * * * DtoSymbolAddress ('val' of type 'string') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * IndexExp::toElem: args[i] @ string * * * * * * * * * * * * * * * * VarExp::toElem: args @ string[] * * * * * * * * * * * * * * * * * DtoSymbolAddress ('args' of type 'string[]') * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * type: string[] * * * * * * * * * * * * * * * * VarExp::toElem: i @ ulong * * * * * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'ulong') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * SetArray * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(700) * * * * * * * * * * * * * * AssignExp::toElem: args = args[0..i] ~ args[i + 1LU..__dollar] | (string[])(string[] = string[]) * * * * * * * * * * * * * * * VarExp::toElem: args @ string[] * * * * * * * * * * * * * * * * DtoSymbolAddress ('args' of type 'string[]') * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * type: string[] * * * * * * * * * * * * * * * CatExp::toElem: args[0..i] ~ args[i + 1LU..__dollar] @ string[] * * * * * * * * * * * * * * * * DtoCatAssignArray * * * * * * * * * * * * * * * * * DtoTypeInfoOf(type = 'string[]', base='1') * * * * * * * * * * * * * * * * * * Type::getTypeInfo(): string[] * * * * * * * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(string[])) * * * * * * * * * * * * * * * * * SliceExp::toElem: args[0..i] @ string[] * * * * * * * * * * * * * * * * * * VarExp::toElem: args @ string[] * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('args' of type 'string[]') * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * type: string[] * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * * * * * * VarExp::toElem: i @ ulong * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'ulong') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * * SetArray * * * * * * * * * * * * * * * * * SliceExp::toElem: args[i + 1LU..__dollar] @ string[] * * * * * * * * * * * * * * * * * * VarExp::toElem: args @ string[] * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('args' of type 'string[]') * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * type: string[] * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * AddExp::toElem: i + 1LU @ ulong * * * * * * * * * * * * * * * * * * * VarExp::toElem: i @ ulong * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * * * * * * VarExp::toElem: __dollar @ ulong * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__dollar' of type 'ulong') * * * * * * * * * * * * * * * * * * * * Id::dollar * * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * * SetArray * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * SetArray * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(709) * * * * * * * * * * * VarExp::toElem: incremental @ bool * * * * * * * * * * * * DtoSymbolAddress ('incremental' of type 'bool') * * * * * * * * * * * * * function param * * * * * * * * * * * * * type: bool * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(709) * * * * * * * * * * * * AddAssignExp::toElem: *receiver += 1LU @ ulong * * * * * * * * * * * * * Caching l-value of *receiver += 1LU => *receiver * * * * * * * * * * * * * * PtrExp::toElem: *receiver @ ulong * * * * * * * * * * * * * * * VarExp::toElem: receiver @ ulong* * * * * * * * * * * * * * * * * DtoSymbolAddress ('receiver' of type 'ulong*') * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * type: ulong* * * * * * * * * * * * * * AddExp::toElem: *receiver + 1LU @ ulong * * * * * * * * * * * * * * PtrExp::toElem: *receiver @ ulong * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * lhs: %159 = load i64*, i64** %receiver * * * * * * * * * * * * * * rhs: %161 = add i64 %160, 1 * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(710) * * * * * * * * * * * * AssignExp::toElem: *receiver = to(val) | (ulong)(ulong = ulong) * * * * * * * * * * * * * PtrExp::toElem: *receiver @ ulong * * * * * * * * * * * * * * VarExp::toElem: receiver @ ulong* * * * * * * * * * * * * * * * DtoSymbolAddress ('receiver' of type 'ulong*') * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * type: ulong* * * * * * * * * * * * * * CallExp::toElem: to(val) @ ulong * * * * * * * * * * * * * * VarExp::toElem: to @ pure @safe ulong(string _param_0) * * * * * * * * * * * * * * * DtoSymbolAddress ('to' of type 'pure @safe ulong(string _param_0)') * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * Building type: pure @safe ulong(string _param_0) * * * * * * * * * * * * * * * * DtoFunctionType(pure @safe ulong(string _param_0)) * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * Final function type: i64 ({ i64, i8* }) * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * Function type: pure @safe ulong(string _param_0) * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * VarExp::toElem: val @ string * * * * * * * * * * * * * * * * * DtoSymbolAddress ('val' of type 'string') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * lhs: %162 = load i64*, i64** %receiver * * * * * * * * * * * * * * rhs: %164 = call i64 @_D3std4conv9__T2toTmZ11__T2toTAyaZ2toFNaNfAyaZm({ i64, i8* } %163) * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(791) * * * * * * VarExp::toElem: ret @ bool * * * * * * * DtoSymbolAddress ('ret' of type 'bool') * * * * * * * * a normal variable * * * * * * return value is '0x12ea0b38' * TemplateInstance::codegen: 'std.getopt.getoptImpl!(string, string[]*, string, ushort*, string, bool*, string, bool*, string, bool*, string, bool*, string, bool*, string, bool*, string, string*, string, bool*, string, bool*, string, bool*, string, string*)' * * DtoDefineFunction(std.getopt.getoptImpl!(string, string[]*, string, ushort*, string, bool*, string, bool*, string, bool*, string, bool*, string, bool*, string, bool*, string, string*, string, bool*, string, bool*, string, bool*, string, string*).getoptImpl): /usr/include/dlang/ldc/std/getopt.d(526) * * * Doing function body for: getoptImpl * * * DtoCreateNestedContext for getoptImpl * * * * DtoCreateNestedContextType for std.getopt.getoptImpl!(string, string[]*, string, ushort*, string, bool*, string, bool*, string, bool*, string, bool*, string, bool*, string, bool*, string, string*, string, bool*, string, bool*, string, bool*, string, string*).getoptImpl * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(528) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(542) * * * * * * DeclarationExp::toElem: string option = to(_param_3); | T=void * * * * * * * DtoDeclarationExp: option * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = string) * * * * * * * * * llvm value for decl: %option = alloca { i64, i8* }, align 8 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: option = to(_param_3) | (string)(string = string) * * * * * * * * * * VarExp::toElem: option @ string * * * * * * * * * * * DtoSymbolAddress ('option' of type 'string') * * * * * * * * * * * * a normal variable * * * * * * * * * * CallExp::toElem: to(_param_3) @ string * * * * * * * * * * * VarExp::toElem: to @ pure nothrow @nogc @safe string(string _param_0) * * * * * * * * * * * * DtoSymbolAddress ('to' of type 'pure nothrow @nogc @safe string(string _param_0)') * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * Function type: pure nothrow @nogc @safe string(string _param_0) * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * VarExp::toElem: _param_3 @ string * * * * * * * * * * * * * * DtoSymbolAddress ('_param_3' of type 'string') * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * type: string * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * SetArray * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(543) * * * * * * DeclarationExp::toElem: Option optionHelp = splitAndGet(option); | T=void * * * * * * * DtoDeclarationExp: optionHelp * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = Option) * * * * * * * * * VarExp::toElem: splitAndGet @ pure nothrow @trusted Option(string opt) * * * * * * * * * * DtoSymbolAddress ('splitAndGet' of type 'pure nothrow @trusted Option(string opt)') * * * * * * * * * * * FuncDeclaration * * * * * * * * * DtoCallFunction() * * * * * * * * * * doing normal arguments * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * %optionHelp = alloca %std.getopt.Option, align 8 * * * * * * * * * * Function type: pure nothrow @trusted Option(string opt) * * * * * * * * * * DtoArgument * * * * * * * * * * * VarExp::toElem: option @ string * * * * * * * * * * * * DtoSymbolAddress ('option' of type 'string') * * * * * * * * * * * * * a normal variable * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(544) * * * * * * AssignExp::toElem: optionHelp.required = cfg.required() | (bool)(bool = bool) * * * * * * * DotVarExp::toElem: optionHelp.required @ bool * * * * * * * * VarExp::toElem: optionHelp @ Option * * * * * * * * * DtoSymbolAddress ('optionHelp' of type 'Option') * * * * * * * * * * a normal variable * * * * * * * * Indexing aggregate field std.getopt.Option.required: * * * * * * * * * Value: %6 = getelementptr %std.getopt.Option, %std.getopt.Option* %optionHelp, i32 0, i32 3 * * * * * * * CallExp::toElem: cfg.required() @ bool * * * * * * * * DotVarExp::toElem: cfg.required @ const pure nothrow @nogc @property @safe bool() * * * * * * * * * VarExp::toElem: cfg @ configuration * * * * * * * * * * DtoSymbolAddress ('cfg' of type 'configuration') * * * * * * * * * * * function param * * * * * * * * * * * type: configuration * * * * * * * * DtoCallFunction() * * * * * * * * * doing normal arguments * * * * * * * * * Arguments so far: (1) * * * * * * * * * * %std.getopt.configuration* %cfg_arg * * * * * * * * * Function type: const pure nothrow @nogc @property @safe bool() * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * DtoAssign() * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(554) * * * * * * DeclarationExp::toElem: string[]* receiver = _param_4; | T=void * * * * * * * DtoDeclarationExp: receiver * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = string[]*) * * * * * * * * * llvm value for decl: %receiver = alloca { i64, { i64, i8* }* }*, align 8 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: receiver = _param_4 | (string[]*)(string[]* = string[]*) * * * * * * * * * * VarExp::toElem: receiver @ string[]* * * * * * * * * * * * DtoSymbolAddress ('receiver' of type 'string[]*') * * * * * * * * * * * * a normal variable * * * * * * * * * * VarExp::toElem: _param_4 @ string[]* * * * * * * * * * * * DtoSymbolAddress ('_param_4' of type 'string[]*') * * * * * * * * * * * * function param * * * * * * * * * * * * type: string[]* * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %receiver = alloca { i64, { i64, i8* }* }*, align 8 * * * * * * * * * * * rhs: %9 = load { i64, { i64, i8* }* }*, { i64, { i64, i8* }* }** %_param_4 * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(555) * * * * * * DeclarationExp::toElem: immutable immutable(int) lowSliceIdx = 2; | T=void * * * * * * * DtoDeclarationExp: lowSliceIdx * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = immutable(int)) * * * * * * * * * llvm value for decl: %lowSliceIdx = alloca i32, align 4 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: lowSliceIdx = 2 | (immutable(int))(immutable(int) = immutable(int)) * * * * * * * * * * VarExp::toElem: lowSliceIdx @ immutable(int) * * * * * * * * * * * DtoSymbolAddress ('lowSliceIdx' of type 'immutable(int)') * * * * * * * * * * * * a normal variable * * * * * * * * * * IntegerExp::toElem: 2 @ immutable(int) * * * * * * * * * * * IntegerExp::toConstElem: 2 @ immutable(int) * * * * * * * * * * * * value = i32 2 * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %lowSliceIdx = alloca i32, align 4 * * * * * * * * * * * rhs: i32 2 * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(558) * * * * * * CatAssignExp::toElem: rslt.options ~= optionHelp @ Option[] * * * * * * * DotVarExp::toElem: rslt.options @ Option[] * * * * * * * * VarExp::toElem: rslt @ GetoptResult * * * * * * * * * DtoSymbolAddress ('rslt' of type 'GetoptResult') * * * * * * * * * * function param * * * * * * * * * * type: GetoptResult * * * * * * * * Indexing aggregate field std.getopt.GetoptResult.options: * * * * * * * * * Value: %10 = getelementptr %std.getopt.GetoptResult, %std.getopt.GetoptResult* %rslt_arg, i32 0, i32 2 * * * * * * * DtoCatAssignElement * * * * * * * * DtoArrayLen * * * * * * * * VarExp::toElem: optionHelp @ Option * * * * * * * * * DtoSymbolAddress ('optionHelp' of type 'Option') * * * * * * * * * * a normal variable * * * * * * * * DtoTypeInfoOf(type = 'Option[]', base='1') * * * * * * * * * Type::getTypeInfo(): Option[] * * * * * * * * * TypeInfoDeclaration::codegen(typeid(Option[])) * * * * * * * * DtoArrayPtr * * * * * * * * DtoAssign() * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(560) * * * * * * DeclarationExp::toElem: bool incremental = false; | T=void * * * * * * * DtoDeclarationExp: incremental * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = bool) * * * * * * * * * llvm value for decl: %incremental = alloca i8, align 1 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: incremental = false | (bool)(bool = bool) * * * * * * * * * * VarExp::toElem: incremental @ bool * * * * * * * * * * * DtoSymbolAddress ('incremental' of type 'bool') * * * * * * * * * * * * a normal variable * * * * * * * * * * IntegerExp::toElem: false @ bool * * * * * * * * * * * IntegerExp::toConstElem: false @ bool * * * * * * * * * * * * value = i1 false * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(562) * * * * * * AndAndExp::toElem: option.length && cast(int)option[__dollar - 1LU] == 43 @ bool * * * * * * * ArrayLengthExp::toElem: option.length @ ulong * * * * * * * * VarExp::toElem: option @ string * * * * * * * * * DtoSymbolAddress ('option' of type 'string') * * * * * * * * * * a normal variable * * * * * * * * DtoArrayLen * * * * * * * Casting from 'ulong' to 'bool' * * * * * * * EqualExp::toElem: cast(int)option[__dollar - 1LU] == 43 @ bool * * * * * * * * CastExp::toElem: cast(int)option[__dollar - 1LU] @ int * * * * * * * * * IndexExp::toElem: option[__dollar - 1LU] @ immutable(char) * * * * * * * * * * VarExp::toElem: option @ string * * * * * * * * * * * DtoSymbolAddress ('option' of type 'string') * * * * * * * * * * * * a normal variable * * * * * * * * * * MinExp::toElem: __dollar - 1LU @ ulong * * * * * * * * * * * VarExp::toElem: __dollar @ ulong * * * * * * * * * * * * DtoSymbolAddress ('__dollar' of type 'ulong') * * * * * * * * * * * * * Id::dollar * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * DtoArrayPtr * * * * * * * * * Casting from 'immutable(char)' to 'int' * * * * * * * * * * cast to: i32 * * * * * * * * IntegerExp::toElem: 43 @ int * * * * * * * * * IntegerExp::toConstElem: 43 @ int * * * * * * * * * * value = i32 43 * * * * * * * * integral or pointer or interface * * * * * * * * lv: %28 = zext i8 %27 to i32 * * * * * * * * rv: i32 43 * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(563) * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(563) * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(564) * * * * * * * * * AssignExp::toElem: option = option[0..__dollar - 1LU] | (string)(string = string) * * * * * * * * * * VarExp::toElem: option @ string * * * * * * * * * * * DtoSymbolAddress ('option' of type 'string') * * * * * * * * * * * * a normal variable * * * * * * * * * * SliceExp::toElem: option[0..__dollar - 1LU] @ string * * * * * * * * * * * VarExp::toElem: option @ string * * * * * * * * * * * * DtoSymbolAddress ('option' of type 'string') * * * * * * * * * * * * * a normal variable * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * MinExp::toElem: __dollar - 1LU @ ulong * * * * * * * * * * * * VarExp::toElem: __dollar @ ulong * * * * * * * * * * * * * DtoSymbolAddress ('__dollar' of type 'ulong') * * * * * * * * * * * * * * Id::dollar * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * DtoAssign() * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * SetArray * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(565) * * * * * * * * * AssignExp::toElem: incremental = true | (bool)(bool = bool) * * * * * * * * * * VarExp::toElem: incremental @ bool * * * * * * * * * * * DtoSymbolAddress ('incremental' of type 'bool') * * * * * * * * * * * * a normal variable * * * * * * * * * * IntegerExp::toElem: true @ bool * * * * * * * * * * * IntegerExp::toConstElem: true @ bool * * * * * * * * * * * * value = i1 true * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(568) * * * * * * DeclarationExp::toElem: bool optWasHandled = handleOption(option, receiver, args, cfg, incremental); | T=void * * * * * * * DtoDeclarationExp: optWasHandled * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = bool) * * * * * * * * * llvm value for decl: %optWasHandled = alloca i8, align 1 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: optWasHandled = handleOption(option, receiver, args, cfg, incremental) | (bool)(bool = bool) * * * * * * * * * * VarExp::toElem: optWasHandled @ bool * * * * * * * * * * * DtoSymbolAddress ('optWasHandled' of type 'bool') * * * * * * * * * * * * a normal variable * * * * * * * * * * CallExp::toElem: handleOption(option, receiver, args, cfg, incremental) @ bool * * * * * * * * * * * VarExp::toElem: handleOption @ @system bool(string option, string[]* receiver, ref string[] args, ref configuration cfg, bool incremental) * * * * * * * * * * * * DtoSymbolAddress ('handleOption' of type '@system bool(string option, string[]* receiver, ref string[] args, ref configuration cfg, bool incremental)') * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * DtoFunctionType(@system bool(string option, string[]* receiver, ref string[] args, ref configuration cfg, bool incremental)) * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * Final function type: i1 (i1, %std.getopt.configuration*, { i64, { i64, i8* }* }*, { i64, { i64, i8* }* }*, { i64, i8* }) * * * * * * * * * * * * * DtoResolveFunction(std.getopt.handleOption!(string[]*).handleOption): /usr/include/dlang/ldc/std/getopt.d(621) * * * * * * * * * * * * * * DtoDeclareFunction(std.getopt.handleOption!(string[]*).handleOption): /usr/include/dlang/ldc/std/getopt.d(621) * * * * * * * * * * * * * * * DtoFunctionType(@system bool(string option, string[]* receiver, ref string[] args, ref configuration cfg, bool incremental)) * * * * * * * * * * * * * * * func = declare i1 @_D3std6getopt24__T12handleOptionTPAAyaZ12handleOptionFAyaPAAyaKAAyaKS3std6getopt13configurationbZb(i1, %std.getopt.configuration*, { i64, { i64, i8* }* }*, { i64, { i64, i8* }* }*, { i64, i8* }) * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * Building type: @system bool(string option, string[]* receiver, ref string[] args, ref configuration cfg, bool incremental) * * * * * * * * * * * * * DtoFunctionType(@system bool(string option, string[]* receiver, ref string[] args, ref configuration cfg, bool incremental)) * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * Final function type: i1 (i1, %std.getopt.configuration*, { i64, { i64, i8* }* }*, { i64, { i64, i8* }* }*, { i64, i8* }) * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * Function type: @system bool(string option, string[]* receiver, ref string[] args, ref configuration cfg, bool incremental) * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * VarExp::toElem: option @ string * * * * * * * * * * * * * * DtoSymbolAddress ('option' of type 'string') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * VarExp::toElem: receiver @ string[]* * * * * * * * * * * * * * * DtoSymbolAddress ('receiver' of type 'string[]*') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * VarExp::toElem: args @ string[] * * * * * * * * * * * * * * DtoSymbolAddress ('args' of type 'string[]') * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * type: string[] * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * VarExp::toElem: cfg @ configuration * * * * * * * * * * * * * * DtoSymbolAddress ('cfg' of type 'configuration') * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * type: configuration * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * VarExp::toElem: incremental @ bool * * * * * * * * * * * * * * DtoSymbolAddress ('incremental' of type 'bool') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(570) * * * * * * AndAndExp::toElem: cfg.required() && !optWasHandled @ bool * * * * * * * CallExp::toElem: cfg.required() @ bool * * * * * * * * DotVarExp::toElem: cfg.required @ const pure nothrow @nogc @property @safe bool() * * * * * * * * * VarExp::toElem: cfg @ configuration * * * * * * * * * * DtoSymbolAddress ('cfg' of type 'configuration') * * * * * * * * * * * function param * * * * * * * * * * * type: configuration * * * * * * * * DtoCallFunction() * * * * * * * * * doing normal arguments * * * * * * * * * Arguments so far: (1) * * * * * * * * * * %std.getopt.configuration* %cfg_arg * * * * * * * * * Function type: const pure nothrow @nogc @property @safe bool() * * * * * * * NotExp::toElem: !optWasHandled @ bool * * * * * * * * VarExp::toElem: optWasHandled @ bool * * * * * * * * * DtoSymbolAddress ('optWasHandled' of type 'bool') * * * * * * * * * * a normal variable * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(571) * * * * * * * ThrowStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(572) * * * * * * * * NewExp::toElem: new GetOptException("Required option " ~ option ~ "was not supplied", "/usr/include/dlang/ldc/std/getopt.d", 572LU) @ std.getopt.GetOptException * * * * * * * * * new class * * * * * * * * * Calling constructor * * * * * * * * * DtoCallFunction() * * * * * * * * * * doing normal arguments * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * %.newclass_gc = bitcast %object.Object* %.newclass_gc_alloc to %std.getopt.GetOptException* * * * * * * * * * * Function type: pure nothrow @safe GetOptException(string msg, string file = __FILE__, ulong line = cast(ulong)__LINE__) * * * * * * * * * * DtoArgument * * * * * * * * * * * CatExp::toElem: "Required option " ~ option ~ "was not supplied" @ string * * * * * * * * * * * * DtoCatAssignArray * * * * * * * * * * * * * StringExp::toElem: "was not supplied" @ string * * * * * * * * * * * * * VarExp::toElem: option @ string * * * * * * * * * * * * * * DtoSymbolAddress ('option' of type 'string') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * StringExp::toElem: "Required option " @ string * * * * * * * * * * * * * DtoTypeInfoOf(type = 'string', base='1') * * * * * * * * * * * * * * Type::getTypeInfo(): string * * * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(string)) * * * * * * * * * * DtoArgument * * * * * * * * * * * StringExp::toElem: "/usr/include/dlang/ldc/std/getopt.d" @ string * * * * * * * * * * DtoArgument * * * * * * * * * * * IntegerExp::toElem: 572LU @ ulong * * * * * * * * * * * * IntegerExp::toConstElem: 572LU @ ulong * * * * * * * * * * * * * value = i64 572 * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(575) * * * * * * CallExp::toElem: cfg.required(false) @ void * * * * * * * DotVarExp::toElem: cfg.required @ pure nothrow @nogc @property @safe void(bool v) * * * * * * * * VarExp::toElem: cfg @ configuration * * * * * * * * * DtoSymbolAddress ('cfg' of type 'configuration') * * * * * * * * * * function param * * * * * * * * * * type: configuration * * * * * * * DtoCallFunction() * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (1) * * * * * * * * * %std.getopt.configuration* %cfg_arg * * * * * * * * Function type: pure nothrow @nogc @property @safe void(bool v) * * * * * * * * DtoArgument * * * * * * * * * IntegerExp::toElem: false @ bool * * * * * * * * * * IntegerExp::toConstElem: false @ bool * * * * * * * * * * * value = i1 false * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(577) * * * * * * CallExp::toElem: getoptImpl(args, cfg, rslt, _param_5, _param_6, _param_7, _param_8, _param_9, _param_10, _param_11, _param_12, _param_13, _param_14, _param_15, _param_16, _param_17, _param_18, _param_19, _param_20, _param_21, _param_22, _param_23, _param_24, _param_25, _param_26, _param_27, _param_28) @ void * * * * * * * VarExp::toElem: getoptImpl @ @system void(ref string[] args, ref configuration cfg, ref GetoptResult rslt, string _param_3, ushort* _param_4, string _param_5, bool* _param_6, string _param_7, bool* _param_8, string _param_9, bool* _param_10, string _param_11, bool* _param_12, string _param_13, bool* _param_14, string _param_15, bool* _param_16, string _param_17, string* _param_18, string _param_19, bool* _param_20, string _param_21, bool* _param_22, string _param_23, bool* _param_24, string _param_25, string* _param_26) * * * * * * * * DtoSymbolAddress ('getoptImpl' of type '@system void(ref string[] args, ref configuration cfg, ref GetoptResult rslt, string _param_3, ushort* _param_4, string _param_5, bool* _param_6, string _param_7, bool* _param_8, string _param_9, bool* _param_10, string _param_11, bool* _param_12, string _param_13, bool* _param_14, string _param_15, bool* _param_16, string _param_17, string* _param_18, string _param_19, bool* _param_20, string _param_21, bool* _param_22, string _param_23, bool* _param_24, string _param_25, string* _param_26)') * * * * * * * * * FuncDeclaration * * * * * * * * * DtoFunctionType(@system void(ref string[] args, ref configuration cfg, ref GetoptResult rslt, string _param_3, ushort* _param_4, string _param_5, bool* _param_6, string _param_7, bool* _param_8, string _param_9, bool* _param_10, string _param_11, bool* _param_12, string _param_13, bool* _param_14, string _param_15, bool* _param_16, string _param_17, string* _param_18, string _param_19, bool* _param_20, string _param_21, bool* _param_22, string _param_23, bool* _param_24, string _param_25, string* _param_26)) * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: void ({ i64, i8* }*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, { i64, i8* }*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, i16*, { i64, i8* }, %std.getopt.GetoptResult*, %std.getopt.configuration*, { i64, { i64, i8* }* }*) * * * * * * * * * DtoResolveFunction(std.getopt.getoptImpl!(string, ushort*, string, bool*, string, bool*, string, bool*, string, bool*, string, bool*, string, bool*, string, string*, string, bool*, string, bool*, string, bool*, string, string*).getoptImpl): /usr/include/dlang/ldc/std/getopt.d(526) * * * * * * * * * * DtoDeclareFunction(std.getopt.getoptImpl!(string, ushort*, string, bool*, string, bool*, string, bool*, string, bool*, string, bool*, string, bool*, string, string*, string, bool*, string, bool*, string, bool*, string, string*).getoptImpl): /usr/include/dlang/ldc/std/getopt.d(526) * * * * * * * * * * * DtoFunctionType(@system void(ref string[] args, ref configuration cfg, ref GetoptResult rslt, string _param_3, ushort* _param_4, string _param_5, bool* _param_6, string _param_7, bool* _param_8, string _param_9, bool* _param_10, string _param_11, bool* _param_12, string _param_13, bool* _param_14, string _param_15, bool* _param_16, string _param_17, string* _param_18, string _param_19, bool* _param_20, string _param_21, bool* _param_22, string _param_23, bool* _param_24, string _param_25, string* _param_26)) * * * * * * * * * * * func = declare void @_D3std6getopt104__T10getoptImplTAyaTPtTAyaTPbTAyaTPbTAyaTPbTAyaTPbTAyaTPbTAyaTPbTAyaTPAyaTAyaTPbTAyaTPbTAyaTPbTAyaTPAyaZ10getoptImplFKAAyaKS3std6getopt13configurationKS3std6getopt12GetoptResultAyaPtAyaPbAyaPbAyaPbAyaPbAyaPbAyaPbAyaPAyaAyaPbAyaPbAyaPbAyaPAyaZv({ i64, i8* }*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, { i64, i8* }*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, i16*, { i64, i8* }, %std.getopt.GetoptResult*, %std.getopt.configuration*, { i64, { i64, i8* }* }*) * * * * * * * DtoCallFunction() * * * * * * * * Building type: @system void(ref string[] args, ref configuration cfg, ref GetoptResult rslt, string _param_3, ushort* _param_4, string _param_5, bool* _param_6, string _param_7, bool* _param_8, string _param_9, bool* _param_10, string _param_11, bool* _param_12, string _param_13, bool* _param_14, string _param_15, bool* _param_16, string _param_17, string* _param_18, string _param_19, bool* _param_20, string _param_21, bool* _param_22, string _param_23, bool* _param_24, string _param_25, string* _param_26) * * * * * * * * * DtoFunctionType(@system void(ref string[] args, ref configuration cfg, ref GetoptResult rslt, string _param_3, ushort* _param_4, string _param_5, bool* _param_6, string _param_7, bool* _param_8, string _param_9, bool* _param_10, string _param_11, bool* _param_12, string _param_13, bool* _param_14, string _param_15, bool* _param_16, string _param_17, string* _param_18, string _param_19, bool* _param_20, string _param_21, bool* _param_22, string _param_23, bool* _param_24, string _param_25, string* _param_26)) * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: void ({ i64, i8* }*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, { i64, i8* }*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, i16*, { i64, i8* }, %std.getopt.GetoptResult*, %std.getopt.configuration*, { i64, { i64, i8* }* }*) * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (0) * * * * * * * * Function type: @system void(ref string[] args, ref configuration cfg, ref GetoptResult rslt, string _param_3, ushort* _param_4, string _param_5, bool* _param_6, string _param_7, bool* _param_8, string _param_9, bool* _param_10, string _param_11, bool* _param_12, string _param_13, bool* _param_14, string _param_15, bool* _param_16, string _param_17, string* _param_18, string _param_19, bool* _param_20, string _param_21, bool* _param_22, string _param_23, bool* _param_24, string _param_25, string* _param_26) * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: args @ string[] * * * * * * * * * * DtoSymbolAddress ('args' of type 'string[]') * * * * * * * * * * * function param * * * * * * * * * * * type: string[] * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: cfg @ configuration * * * * * * * * * * DtoSymbolAddress ('cfg' of type 'configuration') * * * * * * * * * * * function param * * * * * * * * * * * type: configuration * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: rslt @ GetoptResult * * * * * * * * * * DtoSymbolAddress ('rslt' of type 'GetoptResult') * * * * * * * * * * * function param * * * * * * * * * * * type: GetoptResult * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_5 @ string * * * * * * * * * * DtoSymbolAddress ('_param_5' of type 'string') * * * * * * * * * * * function param * * * * * * * * * * * type: string * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_6 @ ushort* * * * * * * * * * * DtoSymbolAddress ('_param_6' of type 'ushort*') * * * * * * * * * * * function param * * * * * * * * * * * type: ushort* * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_7 @ string * * * * * * * * * * DtoSymbolAddress ('_param_7' of type 'string') * * * * * * * * * * * function param * * * * * * * * * * * type: string * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_8 @ bool* * * * * * * * * * * DtoSymbolAddress ('_param_8' of type 'bool*') * * * * * * * * * * * function param * * * * * * * * * * * type: bool* * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_9 @ string * * * * * * * * * * DtoSymbolAddress ('_param_9' of type 'string') * * * * * * * * * * * function param * * * * * * * * * * * type: string * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_10 @ bool* * * * * * * * * * * DtoSymbolAddress ('_param_10' of type 'bool*') * * * * * * * * * * * function param * * * * * * * * * * * type: bool* * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_11 @ string * * * * * * * * * * DtoSymbolAddress ('_param_11' of type 'string') * * * * * * * * * * * function param * * * * * * * * * * * type: string * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_12 @ bool* * * * * * * * * * * DtoSymbolAddress ('_param_12' of type 'bool*') * * * * * * * * * * * function param * * * * * * * * * * * type: bool* * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_13 @ string * * * * * * * * * * DtoSymbolAddress ('_param_13' of type 'string') * * * * * * * * * * * function param * * * * * * * * * * * type: string * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_14 @ bool* * * * * * * * * * * DtoSymbolAddress ('_param_14' of type 'bool*') * * * * * * * * * * * function param * * * * * * * * * * * type: bool* * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_15 @ string * * * * * * * * * * DtoSymbolAddress ('_param_15' of type 'string') * * * * * * * * * * * function param * * * * * * * * * * * type: string * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_16 @ bool* * * * * * * * * * * DtoSymbolAddress ('_param_16' of type 'bool*') * * * * * * * * * * * function param * * * * * * * * * * * type: bool* * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_17 @ string * * * * * * * * * * DtoSymbolAddress ('_param_17' of type 'string') * * * * * * * * * * * function param * * * * * * * * * * * type: string * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_18 @ bool* * * * * * * * * * * DtoSymbolAddress ('_param_18' of type 'bool*') * * * * * * * * * * * function param * * * * * * * * * * * type: bool* * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_19 @ string * * * * * * * * * * DtoSymbolAddress ('_param_19' of type 'string') * * * * * * * * * * * function param * * * * * * * * * * * type: string * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_20 @ string* * * * * * * * * * * DtoSymbolAddress ('_param_20' of type 'string*') * * * * * * * * * * * function param * * * * * * * * * * * type: string* * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_21 @ string * * * * * * * * * * DtoSymbolAddress ('_param_21' of type 'string') * * * * * * * * * * * function param * * * * * * * * * * * type: string * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_22 @ bool* * * * * * * * * * * DtoSymbolAddress ('_param_22' of type 'bool*') * * * * * * * * * * * function param * * * * * * * * * * * type: bool* * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_23 @ string * * * * * * * * * * DtoSymbolAddress ('_param_23' of type 'string') * * * * * * * * * * * function param * * * * * * * * * * * type: string * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_24 @ bool* * * * * * * * * * * DtoSymbolAddress ('_param_24' of type 'bool*') * * * * * * * * * * * function param * * * * * * * * * * * type: bool* * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_25 @ string * * * * * * * * * * DtoSymbolAddress ('_param_25' of type 'string') * * * * * * * * * * * function param * * * * * * * * * * * type: string * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_26 @ bool* * * * * * * * * * * DtoSymbolAddress ('_param_26' of type 'bool*') * * * * * * * * * * * function param * * * * * * * * * * * type: bool* * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_27 @ string * * * * * * * * * * DtoSymbolAddress ('_param_27' of type 'string') * * * * * * * * * * * function param * * * * * * * * * * * type: string * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_28 @ string* * * * * * * * * * * DtoSymbolAddress ('_param_28' of type 'string*') * * * * * * * * * * * function param * * * * * * * * * * * type: string* * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(577) * TemplateInstance::codegen: 'std.getopt.handleOption!(string[]*)' * * DtoDefineFunction(std.getopt.handleOption!(string[]*).handleOption): /usr/include/dlang/ldc/std/getopt.d(621) * * * Doing function body for: handleOption * * * DtoCreateNestedContext for handleOption * * * * DtoCreateNestedContextType for std.getopt.handleOption!(string[]*).handleOption * * * * * has nested frame * * * * * Function handleOption has depth 0 * * * * * Nested var 'expanded' of type { i64, { i64, i8* }* } * * * * * Nested var 'a' of type { i64, i8* } * * * * * frameType = %nest.handleOption.11 = type { { i64, { i64, i8* }* }, { i64, i8* } } * * * * nested var: expanded * * * * nested var: a * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(623) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(628) * * * * * * DeclarationExp::toElem: bool ret = false; | T=void * * * * * * * DtoDeclarationExp: ret * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = bool) * * * * * * * * * llvm value for decl: %ret = alloca i8, align 1 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: ret = false | (bool)(bool = bool) * * * * * * * * * * VarExp::toElem: ret @ bool * * * * * * * * * * * DtoSymbolAddress ('ret' of type 'bool') * * * * * * * * * * * * a normal variable * * * * * * * * * * IntegerExp::toElem: false @ bool * * * * * * * * * * * IntegerExp::toConstElem: false @ bool * * * * * * * * * * * * value = i1 false * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(629) * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(629) * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(629) * * * * * * * * DeclarationExp::toElem: ulong i = 1LU; | T=void * * * * * * * * * DtoDeclarationExp: i * * * * * * * * * * VarDeclaration * * * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * * * llvm value for decl: %i = alloca i64, align 8 * * * * * * * * * * * expression initializer * * * * * * * * * * * AssignExp::toElem: i = 1LU | (ulong)(ulong = ulong) * * * * * * * * * * * * VarExp::toElem: i @ ulong * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'ulong') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * lhs: %i = alloca i64, align 8 * * * * * * * * * * * * * rhs: i64 1 * * * * * * * ForStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(629) * * * * * * * * CmpExp::toElem: i < args.length @ bool * * * * * * * * * VarExp::toElem: i @ ulong * * * * * * * * * * DtoSymbolAddress ('i' of type 'ulong') * * * * * * * * * * * a normal variable * * * * * * * * * ArrayLengthExp::toElem: args.length @ ulong * * * * * * * * * * VarExp::toElem: args @ string[] * * * * * * * * * * * DtoSymbolAddress ('args' of type 'string[]') * * * * * * * * * * * * function param * * * * * * * * * * * * type: string[] * * * * * * * * * * DtoArrayLen * * * * * * * * * type 1: %3 = load i64, i64* %i * * * * * * * * * type 2: %.len = load i64, i64* %2 * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(630) * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(630) * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(631) * * * * * * * * * * * DeclarationExp::toElem: string a = args[i]; | T=void * * * * * * * * * * * * DtoDeclarationExp: a * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * DtoVarDeclaration(vdtype = string) * * * * * * * * * * * * * * has nestedref set (referenced by nested function/delegate) * * * * * * * * * * * * * * llvm value for decl: %a = getelementptr %nest.handleOption.11, %nest.handleOption.11* %.frame, i32 0, i32 1 * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * AssignExp::toElem: a = args[i] | (string)(string = string) * * * * * * * * * * * * * * * VarExp::toElem: a @ string * * * * * * * * * * * * * * * * DtoSymbolAddress ('a' of type 'string') * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * DtoNestedVariable for a @ /usr/include/dlang/ldc/std/getopt.d(631) * * * * * * * * * * * * * * * IndexExp::toElem: args[i] @ string * * * * * * * * * * * * * * * * VarExp::toElem: args @ string[] * * * * * * * * * * * * * * * * * DtoSymbolAddress ('args' of type 'string[]') * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * type: string[] * * * * * * * * * * * * * * * * VarExp::toElem: i @ ulong * * * * * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'ulong') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * SetArray * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(632) * * * * * * * * * * * AndAndExp::toElem: endOfOptions.length && a == endOfOptions @ bool * * * * * * * * * * * * ArrayLengthExp::toElem: endOfOptions.length @ ulong * * * * * * * * * * * * * VarExp::toElem: endOfOptions @ string * * * * * * * * * * * * * * DtoSymbolAddress ('endOfOptions' of type 'string') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * DtoResolveVariable(std.getopt.endOfOptions) * * * * * * * * * * * * * * * * data segment * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * Casting from 'ulong' to 'bool' * * * * * * * * * * * * EqualExp::toElem: a == endOfOptions @ bool * * * * * * * * * * * * * VarExp::toElem: a @ string * * * * * * * * * * * * * * DtoSymbolAddress ('a' of type 'string') * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * DtoNestedVariable for a @ /usr/include/dlang/ldc/std/getopt.d(632) * * * * * * * * * * * * * VarExp::toElem: endOfOptions @ string * * * * * * * * * * * * * * DtoSymbolAddress ('endOfOptions' of type 'string') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * DtoResolveVariable(std.getopt.endOfOptions) * * * * * * * * * * * * * * * * data segment * * * * * * * * * * * * * static or dynamic array * * * * * * * * * * * * * comparing arrays * * * * * * * * * * * * * casting to dynamic arrays * * * * * * * * * * * * * DtoCastArray * * * * * * * * * * * * * * from array or sarray * * * * * * * * * * * * * * to array * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * isslice * * * * * * * * * * * * * DtoCastArray * * * * * * * * * * * * * * from array or sarray * * * * * * * * * * * * * * to array * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * isslice * * * * * * * * * * * * * DtoTypeInfoOf(type = 'string', base='1') * * * * * * * * * * * * * * Type::getTypeInfo(): string * * * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(string)) * * * * * * * * * * * BreakStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(632) * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(633) * * * * * * * * * * * AndAndExp::toElem: cfg.stopOnFirstNonOption() && (!a.length || cast(uint)cast(int)a[0] != cast(uint)optionChar) @ bool * * * * * * * * * * * * CallExp::toElem: cfg.stopOnFirstNonOption() @ bool * * * * * * * * * * * * * DotVarExp::toElem: cfg.stopOnFirstNonOption @ const pure nothrow @nogc @property @safe bool() * * * * * * * * * * * * * * VarExp::toElem: cfg @ configuration * * * * * * * * * * * * * * * DtoSymbolAddress ('cfg' of type 'configuration') * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * type: configuration * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * %std.getopt.configuration* %cfg_arg * * * * * * * * * * * * * * Function type: const pure nothrow @nogc @property @safe bool() * * * * * * * * * * * * OrOrExp::toElem: !a.length || cast(uint)cast(int)a[0] != cast(uint)optionChar @ bool * * * * * * * * * * * * * NotExp::toElem: !a.length @ bool * * * * * * * * * * * * * * ArrayLengthExp::toElem: a.length @ ulong * * * * * * * * * * * * * * * VarExp::toElem: a @ string * * * * * * * * * * * * * * * * DtoSymbolAddress ('a' of type 'string') * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * DtoNestedVariable for a @ /usr/include/dlang/ldc/std/getopt.d(633) * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * Casting from 'ulong' to 'bool' * * * * * * * * * * * * * EqualExp::toElem: cast(uint)cast(int)a[0] != cast(uint)optionChar @ bool * * * * * * * * * * * * * * CastExp::toElem: cast(uint)cast(int)a[0] @ uint * * * * * * * * * * * * * * * CastExp::toElem: cast(int)a[0] @ int * * * * * * * * * * * * * * * * IndexExp::toElem: a[0] @ immutable(char) * * * * * * * * * * * * * * * * * VarExp::toElem: a @ string * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('a' of type 'string') * * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * * DtoNestedVariable for a @ /usr/include/dlang/ldc/std/getopt.d(633) * * * * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * Casting from 'immutable(char)' to 'int' * * * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * * * * Casting from 'int' to 'uint' * * * * * * * * * * * * * * CastExp::toElem: cast(uint)optionChar @ uint * * * * * * * * * * * * * * * VarExp::toElem: optionChar @ dchar * * * * * * * * * * * * * * * * DtoSymbolAddress ('optionChar' of type 'dchar') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * DtoResolveVariable(std.getopt.optionChar) * * * * * * * * * * * * * * * * * * data segment * * * * * * * * * * * * * * * Casting from 'dchar' to 'uint' * * * * * * * * * * * * * * integral or pointer or interface * * * * * * * * * * * * * * lv: %33 = zext i8 %32 to i32 * * * * * * * * * * * * * * rv: %34 = load i32, i32* @_D3std6getopt10optionCharw * * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(634) * * * * * * * * * * * * BreakStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(636) * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(639) * * * * * * * * * * * AndAndExp::toElem: cfg.bundling() && a.length > 2LU && cast(uint)cast(int)a[0] == cast(uint)optionChar && cast(uint)cast(int)a[1] != cast(uint)optionChar @ bool * * * * * * * * * * * * AndAndExp::toElem: cfg.bundling() && a.length > 2LU && cast(uint)cast(int)a[0] == cast(uint)optionChar @ bool * * * * * * * * * * * * * AndAndExp::toElem: cfg.bundling() && a.length > 2LU @ bool * * * * * * * * * * * * * * CallExp::toElem: cfg.bundling() @ bool * * * * * * * * * * * * * * * DotVarExp::toElem: cfg.bundling @ const pure nothrow @nogc @property @safe bool() * * * * * * * * * * * * * * * * VarExp::toElem: cfg @ configuration * * * * * * * * * * * * * * * * * DtoSymbolAddress ('cfg' of type 'configuration') * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * type: configuration * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * %std.getopt.configuration* %cfg_arg * * * * * * * * * * * * * * * * Function type: const pure nothrow @nogc @property @safe bool() * * * * * * * * * * * * * * CmpExp::toElem: a.length > 2LU @ bool * * * * * * * * * * * * * * * ArrayLengthExp::toElem: a.length @ ulong * * * * * * * * * * * * * * * * VarExp::toElem: a @ string * * * * * * * * * * * * * * * * * DtoSymbolAddress ('a' of type 'string') * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * DtoNestedVariable for a @ /usr/include/dlang/ldc/std/getopt.d(639) * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * IntegerExp::toElem: 2LU @ ulong * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 2LU @ ulong * * * * * * * * * * * * * * * * * value = i64 2 * * * * * * * * * * * * * * * type 1: %.len18 = load i64, i64* %37 * * * * * * * * * * * * * * * type 2: i64 2 * * * * * * * * * * * * * EqualExp::toElem: cast(uint)cast(int)a[0] == cast(uint)optionChar @ bool * * * * * * * * * * * * * * CastExp::toElem: cast(uint)cast(int)a[0] @ uint * * * * * * * * * * * * * * * CastExp::toElem: cast(int)a[0] @ int * * * * * * * * * * * * * * * * IndexExp::toElem: a[0] @ immutable(char) * * * * * * * * * * * * * * * * * VarExp::toElem: a @ string * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('a' of type 'string') * * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * * DtoNestedVariable for a @ /usr/include/dlang/ldc/std/getopt.d(639) * * * * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * Casting from 'immutable(char)' to 'int' * * * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * * * * Casting from 'int' to 'uint' * * * * * * * * * * * * * * CastExp::toElem: cast(uint)optionChar @ uint * * * * * * * * * * * * * * * VarExp::toElem: optionChar @ dchar * * * * * * * * * * * * * * * * DtoSymbolAddress ('optionChar' of type 'dchar') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * DtoResolveVariable(std.getopt.optionChar) * * * * * * * * * * * * * * * * * * data segment * * * * * * * * * * * * * * * Casting from 'dchar' to 'uint' * * * * * * * * * * * * * * integral or pointer or interface * * * * * * * * * * * * * * lv: %42 = zext i8 %41 to i32 * * * * * * * * * * * * * * rv: %43 = load i32, i32* @_D3std6getopt10optionCharw * * * * * * * * * * * * EqualExp::toElem: cast(uint)cast(int)a[1] != cast(uint)optionChar @ bool * * * * * * * * * * * * * CastExp::toElem: cast(uint)cast(int)a[1] @ uint * * * * * * * * * * * * * * CastExp::toElem: cast(int)a[1] @ int * * * * * * * * * * * * * * * IndexExp::toElem: a[1] @ immutable(char) * * * * * * * * * * * * * * * * VarExp::toElem: a @ string * * * * * * * * * * * * * * * * * DtoSymbolAddress ('a' of type 'string') * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * DtoNestedVariable for a @ /usr/include/dlang/ldc/std/getopt.d(640) * * * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * Casting from 'immutable(char)' to 'int' * * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * * * Casting from 'int' to 'uint' * * * * * * * * * * * * * CastExp::toElem: cast(uint)optionChar @ uint * * * * * * * * * * * * * * VarExp::toElem: optionChar @ dchar * * * * * * * * * * * * * * * DtoSymbolAddress ('optionChar' of type 'dchar') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * DtoResolveVariable(std.getopt.optionChar) * * * * * * * * * * * * * * * * * data segment * * * * * * * * * * * * * * Casting from 'dchar' to 'uint' * * * * * * * * * * * * * integral or pointer or interface * * * * * * * * * * * * * lv: %48 = zext i8 %47 to i32 * * * * * * * * * * * * * rv: %49 = load i32, i32* @_D3std6getopt10optionCharw * * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(641) * * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(641) * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(642) * * * * * * * * * * * * * * DeclarationExp::toElem: string[] expanded = null; | T=void * * * * * * * * * * * * * * * DtoDeclarationExp: expanded * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = string[]) * * * * * * * * * * * * * * * * * has nestedref set (referenced by nested function/delegate) * * * * * * * * * * * * * * * * * llvm value for decl: %expanded = getelementptr %nest.handleOption.11, %nest.handleOption.11* %.frame, i32 0, i32 0 * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * AssignExp::toElem: expanded = null | (string[])(string[] = string[]) * * * * * * * * * * * * * * * * * * VarExp::toElem: expanded @ string[] * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('expanded' of type 'string[]') * * * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for expanded @ /usr/include/dlang/ldc/std/getopt.d(642) * * * * * * * * * * * * * * * * * * NullExp::toElem(type=string[]): null * * * * * * * * * * * * * * * * * * * NullExp::toConstElem(type=string[]): null * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * * * * * * DtoSetArrayToNull * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(643) * * * * * * * * * * * * * * CallExp::toElem: _aApplycd2(a[1..__dollar], delegate int(ref ulong __applyArg0, ref dchar __applyArg1) => 0) @ int * * * * * * * * * * * * * * * VarExp::toElem: _aApplycd2 @ extern (C) int(in string, int delegate(void*, void*)) * * * * * * * * * * * * * * * * DtoSymbolAddress ('_aApplycd2' of type 'extern (C) int(in string, int delegate(void*, void*))') * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * Function type: extern (C) int(in string, int delegate(void*, void*)) * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * SliceExp::toElem: a[1..__dollar] @ string * * * * * * * * * * * * * * * * * * VarExp::toElem: a @ string * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('a' of type 'string') * * * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for a @ /usr/include/dlang/ldc/std/getopt.d(643) * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * * * * * * VarExp::toElem: __dollar @ ulong * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__dollar' of type 'ulong') * * * * * * * * * * * * * * * * * * * * Id::dollar * * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * FuncExp::toElem: __foreachbody6 @ int delegate(void*, void*) * * * * * * * * * * * * * * * * * * nested * * * * * * * * * * * * * * * * * * kind = delegate * * * * * * * * * * * * * * * * * * DtoDefineFunction(std.getopt.handleOption!(string[]*).handleOption.__foreachbody6): /usr/include/dlang/ldc/std/getopt.d(643) * * * * * * * * * * * * * * * * * * * DtoFunctionType(@safe int(ref ulong __applyArg0, ref dchar __applyArg1)) * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * Final function type: i32 (i8*, i32*, i64*) * * * * * * * * * * * * * * * * * * * DtoResolveFunction(std.getopt.handleOption!(string[]*).handleOption.__foreachbody6): /usr/include/dlang/ldc/std/getopt.d(643) * * * * * * * * * * * * * * * * * * * * DtoDeclareFunction(std.getopt.handleOption!(string[]*).handleOption.__foreachbody6): /usr/include/dlang/ldc/std/getopt.d(643) * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(@safe int(ref ulong __applyArg0, ref dchar __applyArg1)) * * * * * * * * * * * * * * * * * * * * * func = declare i32 @_D3std6getopt24__T12handleOptionTPAAyaZ12handleOptionFAyaPAAyaKAAyaKS3std6getopt13configurationbZ14__foreachbody6MFNfKmKwZi(i8*, i32*, i64*) * * * * * * * * * * * * * * * * * * * Doing function body for: __foreachbody6 * * * * * * * * * * * * * * * * * * * DtoCreateNestedContext for __foreachbody6 * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for std.getopt.handleOption!(string[]*).handleOption.__foreachbody6 * * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for std.getopt.handleOption!(string[]*).handleOption * * * * * * * * * * * * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * * * * * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * * * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(643) * * * * * * * * * * * * * * * * * * * * * * ExpStatement::toIR(): * * * * * * * * * * * * * * * * * * * * * * * DeclarationExp::toElem: dchar c = __applyArg1; | T=void * * * * * * * * * * * * * * * * * * * * * * * * DtoDeclarationExp: c * * * * * * * * * * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = dchar) * * * * * * * * * * * * * * * * * * * * * * * * * * llvm value for decl: %c = alloca i32, align 4 * * * * * * * * * * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * * * * * * * * * * AssignExp::toElem: c = __applyArg1 | (dchar)(dchar = dchar) * * * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: c @ dchar * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('c' of type 'dchar') * * * * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: __applyArg1 @ dchar * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__applyArg1' of type 'dchar') * * * * * * * * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * * * * * * * * type: dchar * * * * * * * * * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * * * * * * * * * lhs: %c = alloca i32, align 4 * * * * * * * * * * * * * * * * * * * * * * * * * * * * rhs: %1 = load i32, i32* %__applyArg1_arg * * * * * * * * * * * * * * * * * * * * * * ExpStatement::toIR(): * * * * * * * * * * * * * * * * * * * * * * * DeclarationExp::toElem: ulong j = __applyArg0; | T=void * * * * * * * * * * * * * * * * * * * * * * * * DtoDeclarationExp: j * * * * * * * * * * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * * * * * * * * * * * * * * * * * * llvm value for decl: %j = alloca i64, align 8 * * * * * * * * * * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * * * * * * * * * * AssignExp::toElem: j = __applyArg0 | (ulong)(ulong = ulong) * * * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: j @ ulong * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('j' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: __applyArg0 @ ulong * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__applyArg0' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * * * * * * * * type: ulong * * * * * * * * * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * * * * * * * * * lhs: %j = alloca i64, align 8 * * * * * * * * * * * * * * * * * * * * * * * * * * * * rhs: %2 = load i64, i64* %__applyArg0_arg * * * * * * * * * * * * * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(647) * * * * * * * * * * * * * * * * * * * * * * * NotExp::toElem: !isAlpha(c) @ bool * * * * * * * * * * * * * * * * * * * * * * * * CallExp::toElem: isAlpha(c) @ bool * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: isAlpha @ pure nothrow @nogc @safe bool(dchar c) * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('isAlpha' of type 'pure nothrow @nogc @safe bool(dchar c)') * * * * * * * * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @safe bool(dchar c) * * * * * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: c @ dchar * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('c' of type 'dchar') * * * * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(648) * * * * * * * * * * * * * * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(648) * * * * * * * * * * * * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(649) * * * * * * * * * * * * * * * * * * * * * * * * * * CatAssignExp::toElem: expanded ~= a[j + 1LU..__dollar] @ string[] * * * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: expanded @ string[] * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('expanded' of type 'string[]') * * * * * * * * * * * * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for expanded @ /usr/include/dlang/ldc/std/getopt.d(649) * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for std.getopt.handleOption!(string[]*).handleOption * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Context: %7 = bitcast i8* %6 to %nest.handleOption.11* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * of type: %nest.handleOption.11 = type { { i64, { i64, i8* }* }, { i64, i8* } } * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Variable: expanded * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Function: __foreachbody6 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Addr: %expanded = getelementptr %nest.handleOption.11, %nest.handleOption.11* %7, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * of type: { i64, { i64, i8* }* }* * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoCatAssignElement * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * * * * * * * * * * * SliceExp::toElem: a[j + 1LU..__dollar] @ string * * * * * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: a @ string * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('a' of type 'string') * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for a @ /usr/include/dlang/ldc/std/getopt.d(649) * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for std.getopt.handleOption!(string[]*).handleOption * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Context: %10 = bitcast i8* %9 to %nest.handleOption.11* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * of type: %nest.handleOption.11 = type { { i64, { i64, i8* }* }, { i64, i8* } } * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Variable: a * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Function: __foreachbody6 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Addr: %a = getelementptr %nest.handleOption.11, %nest.handleOption.11* %10, i32 0, i32 1 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * of type: { i64, i8* }* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * * * * * * * * * * * * AddExp::toElem: j + 1LU @ ulong * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: j @ ulong * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('j' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: __dollar @ ulong * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__dollar' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Id::dollar * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoTypeInfoOf(type = 'string[]', base='1') * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Type::getTypeInfo(): string[] * * * * * * * * * * * * * * * * * * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(string[])) * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * SetArray * * * * * * * * * * * * * * * * * * * * * * * * * ReturnStatement::toIR(): * * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 1 @ int * * * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1 @ int * * * * * * * * * * * * * * * * * * * * * * * * * * * * value = i32 1 * * * * * * * * * * * * * * * * * * * * * * * * * * return value is '0x120e3000' * * * * * * * * * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(652) * * * * * * * * * * * * * * * * * * * * * * * CatAssignExp::toElem: expanded ~= text(optionChar, c) @ string[] * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: expanded @ string[] * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('expanded' of type 'string[]') * * * * * * * * * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for expanded @ /usr/include/dlang/ldc/std/getopt.d(652) * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for std.getopt.handleOption!(string[]*).handleOption * * * * * * * * * * * * * * * * * * * * * * * * * * * Context: %18 = bitcast i8* %17 to %nest.handleOption.11* * * * * * * * * * * * * * * * * * * * * * * * * * * * of type: %nest.handleOption.11 = type { { i64, { i64, i8* }* }, { i64, i8* } } * * * * * * * * * * * * * * * * * * * * * * * * * * * Variable: expanded * * * * * * * * * * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * * * * * * * * * * Function: __foreachbody6 * * * * * * * * * * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * * * * * * * * * * Addr: %expanded4 = getelementptr %nest.handleOption.11, %nest.handleOption.11* %18, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * * * * * * * * * of type: { i64, { i64, i8* }* }* * * * * * * * * * * * * * * * * * * * * * * * * DtoCatAssignElement * * * * * * * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * * * * * * * * CallExp::toElem: text(optionChar, c) @ string * * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: text @ pure @safe string(dchar _param_0, dchar _param_1) * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('text' of type 'pure @safe string(dchar _param_0, dchar _param_1)') * * * * * * * * * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * * * * * * * * * Function type: pure @safe string(dchar _param_0, dchar _param_1) * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: optionChar @ dchar * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('optionChar' of type 'dchar') * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoResolveVariable(std.getopt.optionChar) * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * data segment * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: c @ dchar * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('c' of type 'dchar') * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * * * DtoTypeInfoOf(type = 'string[]', base='1') * * * * * * * * * * * * * * * * * * * * * * * * * * Type::getTypeInfo(): string[] * * * * * * * * * * * * * * * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(string[])) * * * * * * * * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * * * * * * * * * * SetArray * * * * * * * * * * * * * * * * * * * * * ReturnStatement::toIR(): * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 0 @ int * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0 @ int * * * * * * * * * * * * * * * * * * * * * * * * value = i32 0 * * * * * * * * * * * * * * * * * * * * * * return value is '0x120e1350' * * * * * * * * * * * * * * * * * * Building type: int delegate(void*, void*) * * * * * * * * * * * * * * * * * * * DtoFunctionType(int(void*, void*)) * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * Final function type: i32 (i8*, i8*, i8*) * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(654) * * * * * * * * * * * * * * AssignExp::toElem: args = args[0..i] ~ expanded ~ args[i + 1LU..__dollar] | (string[])(string[] = string[]) * * * * * * * * * * * * * * * VarExp::toElem: args @ string[] * * * * * * * * * * * * * * * * DtoSymbolAddress ('args' of type 'string[]') * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * type: string[] * * * * * * * * * * * * * * * CatExp::toElem: args[0..i] ~ expanded ~ args[i + 1LU..__dollar] @ string[] * * * * * * * * * * * * * * * * DtoCatAssignArray * * * * * * * * * * * * * * * * * SliceExp::toElem: args[i + 1LU..__dollar] @ string[] * * * * * * * * * * * * * * * * * * VarExp::toElem: args @ string[] * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('args' of type 'string[]') * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * type: string[] * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * AddExp::toElem: i + 1LU @ ulong * * * * * * * * * * * * * * * * * * * VarExp::toElem: i @ ulong * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * * * * * * VarExp::toElem: __dollar @ ulong * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__dollar' of type 'ulong') * * * * * * * * * * * * * * * * * * * * Id::dollar * * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * * SetArray * * * * * * * * * * * * * * * * * VarExp::toElem: expanded @ string[] * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('expanded' of type 'string[]') * * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * * DtoNestedVariable for expanded @ /usr/include/dlang/ldc/std/getopt.d(654) * * * * * * * * * * * * * * * * * SliceExp::toElem: args[0..i] @ string[] * * * * * * * * * * * * * * * * * * VarExp::toElem: args @ string[] * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('args' of type 'string[]') * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * type: string[] * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * * * * * * VarExp::toElem: i @ ulong * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'ulong') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * * SetArray * * * * * * * * * * * * * * * * * DtoTypeInfoOf(type = 'string[]', base='1') * * * * * * * * * * * * * * * * * * Type::getTypeInfo(): string[] * * * * * * * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(string[])) * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * SetArray * * * * * * * * * * * * * ContinueStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(655) * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(658) * * * * * * * * * * * DeclarationExp::toElem: string val = null; | T=void * * * * * * * * * * * * DtoDeclarationExp: val * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * DtoVarDeclaration(vdtype = string) * * * * * * * * * * * * * * llvm value for decl: %val = alloca { i64, i8* }, align 8 * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * AssignExp::toElem: val = null | (string)(string = string) * * * * * * * * * * * * * * * VarExp::toElem: val @ string * * * * * * * * * * * * * * * * DtoSymbolAddress ('val' of type 'string') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * NullExp::toElem(type=string): null * * * * * * * * * * * * * * * * NullExp::toConstElem(type=string): null * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * * * DtoSetArrayToNull * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(659) * * * * * * * * * * * NotExp::toElem: !optMatch(a, option, val, cfg) @ bool * * * * * * * * * * * * CallExp::toElem: optMatch(a, option, val, cfg) @ bool * * * * * * * * * * * * * VarExp::toElem: optMatch @ bool(string arg, string optPattern, ref string value, configuration cfg) * * * * * * * * * * * * * * DtoSymbolAddress ('optMatch' of type 'bool(string arg, string optPattern, ref string value, configuration cfg)') * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * Function type: bool(string arg, string optPattern, ref string value, configuration cfg) * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * VarExp::toElem: a @ string * * * * * * * * * * * * * * * * DtoSymbolAddress ('a' of type 'string') * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * DtoNestedVariable for a @ /usr/include/dlang/ldc/std/getopt.d(659) * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * VarExp::toElem: option @ string * * * * * * * * * * * * * * * * DtoSymbolAddress ('option' of type 'string') * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * type: string * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * VarExp::toElem: val @ string * * * * * * * * * * * * * * * * DtoSymbolAddress ('val' of type 'string') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * VarExp::toElem: cfg @ configuration * * * * * * * * * * * * * * * * DtoSymbolAddress ('cfg' of type 'configuration') * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * type: configuration * * * * * * * * * * * * * * Loading struct type for function argument * * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(660) * * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(660) * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(661) * * * * * * * * * * * * * * AddAssignExp::toElem: i += 1LU @ ulong * * * * * * * * * * * * * * * Caching l-value of i += 1LU => i * * * * * * * * * * * * * * * * VarExp::toElem: i @ ulong * * * * * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'ulong') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * AddExp::toElem: i + 1LU @ ulong * * * * * * * * * * * * * * * * VarExp::toElem: i @ ulong * * * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * lhs: %i = alloca i64, align 8 * * * * * * * * * * * * * * * * rhs: %85 = add i64 %84, 1 * * * * * * * * * * * * * ContinueStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(662) * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(665) * * * * * * * * * * * AssignExp::toElem: ret = true | (bool)(bool = bool) * * * * * * * * * * * * VarExp::toElem: ret @ bool * * * * * * * * * * * * * DtoSymbolAddress ('ret' of type 'bool') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * IntegerExp::toElem: true @ bool * * * * * * * * * * * * * IntegerExp::toConstElem: true @ bool * * * * * * * * * * * * * * value = i1 true * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * DtoAssign() * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(670) * * * * * * * * * * * AssignExp::toElem: args = args[0..i] ~ args[i + 1LU..__dollar] | (string[])(string[] = string[]) * * * * * * * * * * * * VarExp::toElem: args @ string[] * * * * * * * * * * * * * DtoSymbolAddress ('args' of type 'string[]') * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * type: string[] * * * * * * * * * * * * CatExp::toElem: args[0..i] ~ args[i + 1LU..__dollar] @ string[] * * * * * * * * * * * * * DtoCatAssignArray * * * * * * * * * * * * * * DtoTypeInfoOf(type = 'string[]', base='1') * * * * * * * * * * * * * * * Type::getTypeInfo(): string[] * * * * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(string[])) * * * * * * * * * * * * * * SliceExp::toElem: args[0..i] @ string[] * * * * * * * * * * * * * * * VarExp::toElem: args @ string[] * * * * * * * * * * * * * * * * DtoSymbolAddress ('args' of type 'string[]') * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * type: string[] * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * * * VarExp::toElem: i @ ulong * * * * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'ulong') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * SetArray * * * * * * * * * * * * * * SliceExp::toElem: args[i + 1LU..__dollar] @ string[] * * * * * * * * * * * * * * * VarExp::toElem: args @ string[] * * * * * * * * * * * * * * * * DtoSymbolAddress ('args' of type 'string[]') * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * type: string[] * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * AddExp::toElem: i + 1LU @ ulong * * * * * * * * * * * * * * * * VarExp::toElem: i @ ulong * * * * * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'ulong') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * * * VarExp::toElem: __dollar @ ulong * * * * * * * * * * * * * * * * DtoSymbolAddress ('__dollar' of type 'ulong') * * * * * * * * * * * * * * * * * Id::dollar * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * SetArray * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * SetArray * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(690) * * * * * * * * * * * DeclarationExp::toElem: enum bool isCallbackWithLessThanTwoParameters = false; | T=void * * * * * * * * * * * * DtoDeclarationExp: isCallbackWithLessThanTwoParameters * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * Manifest constant, nothing to do. * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(693) * * * * * * * * * * * AndAndExp::toElem: !!!val.length && !incremental @ bool * * * * * * * * * * * * BoolExp::toElem: !!!val.length @ bool * * * * * * * * * * * * * NotExp::toElem: !val.length @ bool * * * * * * * * * * * * * * ArrayLengthExp::toElem: val.length @ ulong * * * * * * * * * * * * * * * VarExp::toElem: val @ string * * * * * * * * * * * * * * * * DtoSymbolAddress ('val' of type 'string') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * Casting from 'ulong' to 'bool' * * * * * * * * * * * * NotExp::toElem: !incremental @ bool * * * * * * * * * * * * * VarExp::toElem: incremental @ bool * * * * * * * * * * * * * * DtoSymbolAddress ('incremental' of type 'bool') * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * type: bool * * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(694) * * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(694) * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(697) * * * * * * * * * * * * * * CallExp::toElem: enforce(i < args.length, delegate const(char)[]() => "Missing value for argument " ~ a ~ ".", "/usr/include/dlang/ldc/std/getopt.d", 697LU) @ bool * * * * * * * * * * * * * * * VarExp::toElem: enforce @ pure @safe bool(bool value, lazy const(char)[] msg = null, string file = __FILE__, ulong line = cast(ulong)__LINE__) * * * * * * * * * * * * * * * * DtoSymbolAddress ('enforce' of type 'pure @safe bool(bool value, lazy const(char)[] msg = null, string file = __FILE__, ulong line = cast(ulong)__LINE__)') * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * Function type: pure @safe bool(bool value, lazy const(char)[] msg = null, string file = __FILE__, ulong line = cast(ulong)__LINE__) * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * CmpExp::toElem: i < args.length @ bool * * * * * * * * * * * * * * * * * * VarExp::toElem: i @ ulong * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'ulong') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * ArrayLengthExp::toElem: args.length @ ulong * * * * * * * * * * * * * * * * * * * VarExp::toElem: args @ string[] * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('args' of type 'string[]') * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * type: string[] * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * type 1: %119 = load i64, i64* %i * * * * * * * * * * * * * * * * * * type 2: %.len65 = load i64, i64* %118 * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * FuncExp::toElem: __dgliteral7 @ const(char)[] delegate() pure nothrow @safe * * * * * * * * * * * * * * * * * * nested * * * * * * * * * * * * * * * * * * kind = delegate * * * * * * * * * * * * * * * * * * DtoDefineFunction(std.getopt.handleOption!(string[]*).handleOption.__dgliteral7): /usr/include/dlang/ldc/std/getopt.d(698) * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @safe const(char)[]()) * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * Final function type: { i64, i8* } (i8*) * * * * * * * * * * * * * * * * * * * DtoResolveFunction(std.getopt.handleOption!(string[]*).handleOption.__dgliteral7): /usr/include/dlang/ldc/std/getopt.d(698) * * * * * * * * * * * * * * * * * * * * DtoDeclareFunction(std.getopt.handleOption!(string[]*).handleOption.__dgliteral7): /usr/include/dlang/ldc/std/getopt.d(698) * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @safe const(char)[]()) * * * * * * * * * * * * * * * * * * * * * func = declare { i64, i8* } @_D3std6getopt24__T12handleOptionTPAAyaZ12handleOptionFAyaPAAyaKAAyaKS3std6getopt13configurationbZ12__dgliteral7MFNaNbNfZAxa(i8*) * * * * * * * * * * * * * * * * * * * Doing function body for: __dgliteral7 * * * * * * * * * * * * * * * * * * * DtoCreateNestedContext for __dgliteral7 * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for std.getopt.handleOption!(string[]*).handleOption.__dgliteral7 * * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for std.getopt.handleOption!(string[]*).handleOption * * * * * * * * * * * * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * * * * * * * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(698) * * * * * * * * * * * * * * * * * * * * * CatExp::toElem: "Missing value for argument " ~ a ~ "." @ const(char)[] * * * * * * * * * * * * * * * * * * * * * * DtoCatAssignArray * * * * * * * * * * * * * * * * * * * * * * * StringExp::toElem: "." @ string * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: a @ string * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('a' of type 'string') * * * * * * * * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for a @ /usr/include/dlang/ldc/std/getopt.d(698) * * * * * * * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for std.getopt.handleOption!(string[]*).handleOption * * * * * * * * * * * * * * * * * * * * * * * * * * Context: %2 = bitcast i8* %1 to %nest.handleOption.11* * * * * * * * * * * * * * * * * * * * * * * * * * * of type: %nest.handleOption.11 = type { { i64, { i64, i8* }* }, { i64, i8* } } * * * * * * * * * * * * * * * * * * * * * * * * * * Variable: a * * * * * * * * * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * * * * * * * * * Function: __dgliteral7 * * * * * * * * * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * * * * * * * * * Addr: %a = getelementptr %nest.handleOption.11, %nest.handleOption.11* %2, i32 0, i32 1 * * * * * * * * * * * * * * * * * * * * * * * * * * of type: { i64, i8* }* * * * * * * * * * * * * * * * * * * * * * * * StringExp::toElem: "Missing value for argument " @ string * * * * * * * * * * * * * * * * * * * * * * * DtoTypeInfoOf(type = 'const(char)[]', base='1') * * * * * * * * * * * * * * * * * * * * * * * * Type::getTypeInfo(): const(char)[] * * * * * * * * * * * * * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(const(char)[])) * * * * * * * * * * * * * * * * * * * * * return value is '0x12edfe70' * * * * * * * * * * * * * * * * * * Building type: const(char)[] delegate() pure nothrow @safe * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @safe const(char)[]()) * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * Final function type: { i64, i8* } (i8*) * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * StringExp::toElem: "/usr/include/dlang/ldc/std/getopt.d" @ string * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * IntegerExp::toElem: 697LU @ ulong * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 697LU @ ulong * * * * * * * * * * * * * * * * * * * value = i64 697 * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(699) * * * * * * * * * * * * * * AssignExp::toElem: val = args[i] | (string)(string = string) * * * * * * * * * * * * * * * VarExp::toElem: val @ string * * * * * * * * * * * * * * * * DtoSymbolAddress ('val' of type 'string') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * IndexExp::toElem: args[i] @ string * * * * * * * * * * * * * * * * VarExp::toElem: args @ string[] * * * * * * * * * * * * * * * * * DtoSymbolAddress ('args' of type 'string[]') * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * type: string[] * * * * * * * * * * * * * * * * VarExp::toElem: i @ ulong * * * * * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'ulong') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * SetArray * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(700) * * * * * * * * * * * * * * AssignExp::toElem: args = args[0..i] ~ args[i + 1LU..__dollar] | (string[])(string[] = string[]) * * * * * * * * * * * * * * * VarExp::toElem: args @ string[] * * * * * * * * * * * * * * * * DtoSymbolAddress ('args' of type 'string[]') * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * type: string[] * * * * * * * * * * * * * * * CatExp::toElem: args[0..i] ~ args[i + 1LU..__dollar] @ string[] * * * * * * * * * * * * * * * * DtoCatAssignArray * * * * * * * * * * * * * * * * * DtoTypeInfoOf(type = 'string[]', base='1') * * * * * * * * * * * * * * * * * * Type::getTypeInfo(): string[] * * * * * * * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(string[])) * * * * * * * * * * * * * * * * * SliceExp::toElem: args[0..i] @ string[] * * * * * * * * * * * * * * * * * * VarExp::toElem: args @ string[] * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('args' of type 'string[]') * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * type: string[] * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * * * * * * VarExp::toElem: i @ ulong * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'ulong') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * * SetArray * * * * * * * * * * * * * * * * * SliceExp::toElem: args[i + 1LU..__dollar] @ string[] * * * * * * * * * * * * * * * * * * VarExp::toElem: args @ string[] * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('args' of type 'string[]') * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * type: string[] * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * AddExp::toElem: i + 1LU @ ulong * * * * * * * * * * * * * * * * * * * VarExp::toElem: i @ ulong * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * * * * * * VarExp::toElem: __dollar @ ulong * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__dollar' of type 'ulong') * * * * * * * * * * * * * * * * * * * * Id::dollar * * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * * SetArray * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * SetArray * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(742) * * * * * * * * * * * DeclarationExp::toElem: alias E = string; | T=void * * * * * * * * * * * * DtoDeclarationExp: E * * * * * * * * * * * * * Ignoring Symbol: alias * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(744) * * * * * * * * * * * EqualExp::toElem: arraySep == "" @ bool * * * * * * * * * * * * VarExp::toElem: arraySep @ string * * * * * * * * * * * * * DtoSymbolAddress ('arraySep' of type 'string') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * DtoResolveVariable(std.getopt.arraySep) * * * * * * * * * * * * * * * data segment * * * * * * * * * * * * * * * parent: getopt (module) * * * * * * * * * * * * * * * @_D3std6getopt8arraySepAya = external thread_local global { i64, i8* }, align 8 * * * * * * * * * * * * StringExp::toElem: "" @ string * * * * * * * * * * * * * type: [1 x i8] * * * * * * * * * * * * * init: [1 x i8] zeroinitializer * * * * * * * * * * * * static or dynamic array * * * * * * * * * * * * comparing arrays * * * * * * * * * * * * casting to dynamic arrays * * * * * * * * * * * * DtoCastArray * * * * * * * * * * * * * from array or sarray * * * * * * * * * * * * * to array * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * isslice * * * * * * * * * * * * DtoCastArray * * * * * * * * * * * * * from array or sarray * * * * * * * * * * * * * to array * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * isslice * * * * * * * * * * * * DtoTypeInfoOf(type = 'string', base='1') * * * * * * * * * * * * * Type::getTypeInfo(): string * * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(string)) * * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(745) * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(746) * * * * * * * * * * * * * CatAssignExp::toElem: *receiver ~= to(val) @ string[] * * * * * * * * * * * * * * PtrExp::toElem: *receiver @ string[] * * * * * * * * * * * * * * * VarExp::toElem: receiver @ string[]* * * * * * * * * * * * * * * * * DtoSymbolAddress ('receiver' of type 'string[]*') * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * type: string[]* * * * * * * * * * * * * * * DtoCatAssignElement * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * CallExp::toElem: to(val) @ string * * * * * * * * * * * * * * * * VarExp::toElem: to @ pure nothrow @nogc @safe string(string _param_0) * * * * * * * * * * * * * * * * * DtoSymbolAddress ('to' of type 'pure nothrow @nogc @safe string(string _param_0)') * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @safe string(string _param_0) * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * VarExp::toElem: val @ string * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('val' of type 'string') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * DtoTypeInfoOf(type = 'string[]', base='1') * * * * * * * * * * * * * * * * Type::getTypeInfo(): string[] * * * * * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(string[])) * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * SetArray * * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(749) * * * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(750) * * * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(750) * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(750) * * * * * * * * * * * * * * * DeclarationExp::toElem: MapResult!(__lambda8, Result) __r3187 = map(splitter(val, arraySep)); | T=void * * * * * * * * * * * * * * * * DtoDeclarationExp: __r3187 * * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = MapResult!(__lambda8, Result)) * * * * * * * * * * * * * * * * * * Building type: MapResult!(__lambda8, Result) * * * * * * * * * * * * * * * * * * * Building struct type std.getopt.handleOption!(string[]*).handleOption.MapResult!(__lambda8, Result).MapResult @ /usr/include/dlang/ldc/std/algorithm/iteration.d(504) * * * * * * * * * * * * * * * * * * * * adding default initializer for struct field _input * * * * * * * * * * * * * * * * * * * * adding default initializer for struct field this * * * * * * * * * * * * * * * * * * * * final struct type: %"std.getopt.handleOption!(string[]*).handleOption.MapResult!(__lambda8, Result).MapResult" = type { %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result", i8* } * * * * * * * * * * * * * * * * * * VarExp::toElem: map @ pure nothrow @nogc @safe MapResult!(__lambda8, Result)(Result r) * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('map' of type 'pure nothrow @nogc @safe MapResult!(__lambda8, Result)(Result r)') * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe MapResult!(__lambda8, Result)(Result r)) * * * * * * * * * * * * * * * * * * * * * Building type: MapResult!(__lambda8, Result)* * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * * Final function type: void (%"std.getopt.handleOption!(string[]*).handleOption.MapResult!(__lambda8, Result).MapResult"*, i8*, %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"*) * * * * * * * * * * * * * * * * * * * * DtoResolveFunction(std.getopt.handleOption!(string[]*).handleOption.map!((a) => to!E(a)).map!(Result).map): /usr/include/dlang/ldc/std/algorithm/iteration.d(431) * * * * * * * * * * * * * * * * * * * * * DtoDeclareFunction(std.getopt.handleOption!(string[]*).handleOption.map!((a) => to!E(a)).map!(Result).map): /usr/include/dlang/ldc/std/algorithm/iteration.d(431) * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe MapResult!(__lambda8, Result)(Result r)) * * * * * * * * * * * * * * * * * * * * * * func = declare void @_D3std9algorithm9iteration117__T3mapS1053std6getopt24__T12handleOptionTPAAyaZ12handleOptionFAyaPAAyaKAAyaKS3std6getopt13configurationbZ9__lambda8Z100__T3mapTS3std9algorithm9iteration40__T8splitterVAyaa6_61203d3d2062TAyaTAyaZ8splitterFAyaAyaZ6ResultZ3mapMFNaNbNiNfS3std9algorithm9iteration40__T8splitterVAyaa6_61203d3d2062TAyaTAyaZ8splitterFAyaAyaZ6ResultZS3std9algorithm9iteration215__T9MapResultS1053std6getopt24__T12handleOptionTPAAyaZ12handleOptionFAyaPAAyaKAAyaKS3std6getopt13configurationbZ9__lambda8TS3std9algorithm9iteration40__T8splitterVAyaa6_61203d3d2062TAyaTAyaZ8splitterFAyaAyaZ6ResultZ9MapResult(%"std.getopt.handleOption!(string[]*).handleOption.MapResult!(__lambda8, Result).MapResult"*, i8*, %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"*) * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * Building type: pure nothrow @nogc @safe MapResult!(__lambda8, Result)(Result r) * * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe MapResult!(__lambda8, Result)(Result r)) * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * * Final function type: void (%"std.getopt.handleOption!(string[]*).handleOption.MapResult!(__lambda8, Result).MapResult"*, %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"*) * * * * * * * * * * * * * * * * * * * DtoNestedContext for std.getopt.handleOption!(string[]*).handleOption.map!((a) => to!E(a)).map!(Result).map * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for std.getopt.handleOption!(string[]*).handleOption.map!((a) => to!E(a)).map!(Result).map * * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for std.getopt.handleOption!(string[]*).handleOption * * * * * * * * * * * * * * * * * * * * Parent frame is from handleOption * * * * * * * * * * * * * * * * * * * * Current function is handleOption * * * * * * * * * * * * * * * * * * * * Context is from handleOption * * * * * * * * * * * * * * * * * * * * Needed depth: 0 * * * * * * * * * * * * * * * * * * * * Context depth: 0 * * * * * * * * * * * * * * * * * * * * Calling sibling function or directly nested function * * * * * * * * * * * * * * * * * * * * result = %.frame = alloca %nest.handleOption.11, align 8 * * * * * * * * * * * * * * * * * * * * of type %nest.handleOption.11* * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * Arguments so far: (2) * * * * * * * * * * * * * * * * * * * * %__r3187 = alloca %"std.getopt.handleOption!(string[]*).handleOption.MapResult!(__lambda8, Result).MapResult", align 8 * * * * * * * * * * * * * * * * * * * * %177 = bitcast %nest.handleOption.11* %.frame to i8* * * * * * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @safe MapResult!(__lambda8, Result)(Result r) * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * CallExp::toElem: splitter(val, arraySep) @ Result * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: splitter @ pure nothrow @nogc @safe Result(string r, string s) * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('splitter' of type 'pure nothrow @nogc @safe Result(string r, string s)') * * * * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * * Building type: pure nothrow @nogc @safe Result(string r, string s) * * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe Result(string r, string s)) * * * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * * * * * Final function type: void (%"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"*, { i64, i8* }, { i64, i8* }) * * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * * * * * * %.rettmp = alloca %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result", align 8 * * * * * * * * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @safe Result(string r, string s) * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: val @ string * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('val' of type 'string') * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: arraySep @ string * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('arraySep' of type 'string') * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * * * DtoResolveVariable(std.getopt.arraySep) * * * * * * * * * * * * * * * * * * * * * * * * * * data segment * * * * * * * * * * * * * * ForStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(750) * * * * * * * * * * * * * * * NotExp::toElem: !__r3187.empty() @ bool * * * * * * * * * * * * * * * * CallExp::toElem: __r3187.empty() @ bool * * * * * * * * * * * * * * * * * DotVarExp::toElem: __r3187.empty @ pure nothrow @nogc @property @safe bool() * * * * * * * * * * * * * * * * * * VarExp::toElem: __r3187 @ MapResult!(__lambda8, Result) * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__r3187' of type 'MapResult!(__lambda8, Result)') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * isMember = this is: MapResult!(__lambda8, Result) * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @property @safe bool()) * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * Final function type: i1 (%"std.getopt.handleOption!(string[]*).handleOption.MapResult!(__lambda8, Result).MapResult"*) * * * * * * * * * * * * * * * * * * DtoResolveFunction(std.getopt.handleOption!(string[]*).handleOption.MapResult!(__lambda8, Result).MapResult.empty): /usr/include/dlang/ldc/std/algorithm/iteration.d(534) * * * * * * * * * * * * * * * * * * * DtoDeclareFunction(std.getopt.handleOption!(string[]*).handleOption.MapResult!(__lambda8, Result).MapResult.empty): /usr/include/dlang/ldc/std/algorithm/iteration.d(534) * * * * * * * * * * * * * * * * * * * * isMember = this is: MapResult!(__lambda8, Result) * * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @property @safe bool()) * * * * * * * * * * * * * * * * * * * * func = declare i1 @_D3std9algorithm9iteration215__T9MapResultS1053std6getopt24__T12handleOptionTPAAyaZ12handleOptionFAyaPAAyaKAAyaKS3std6getopt13configurationbZ9__lambda8TS3std9algorithm9iteration40__T8splitterVAyaa6_61203d3d2062TAyaTAyaZ8splitterFAyaAyaZ6ResultZ9MapResult5emptyMFNaNbNdNiNfZb(%"std.getopt.handleOption!(string[]*).handleOption.MapResult!(__lambda8, Result).MapResult"*) * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * Building type: pure nothrow @nogc @property @safe bool() * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @property @safe bool()) * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * Final function type: i1 () * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * * %__r3187 = alloca %"std.getopt.handleOption!(string[]*).handleOption.MapResult!(__lambda8, Result).MapResult", align 8 * * * * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @property @safe bool() * * * * * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(750) * * * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(750) * * * * * * * * * * * * * * * * * DeclarationExp::toElem: string elem = __r3187.front(); | T=void * * * * * * * * * * * * * * * * * * DtoDeclarationExp: elem * * * * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = string) * * * * * * * * * * * * * * * * * * * * llvm value for decl: %elem = alloca { i64, i8* }, align 8 * * * * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * * * * AssignExp::toElem: elem = __r3187.front() | (string)(string = string) * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: elem @ string * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('elem' of type 'string') * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * CallExp::toElem: __r3187.front() @ string * * * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: __r3187.front @ pure nothrow @nogc @property @safe string() * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: __r3187 @ MapResult!(__lambda8, Result) * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__r3187' of type 'MapResult!(__lambda8, Result)') * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * isMember = this is: MapResult!(__lambda8, Result) * * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @property @safe string()) * * * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * * * * * Final function type: { i64, i8* } (%"std.getopt.handleOption!(string[]*).handleOption.MapResult!(__lambda8, Result).MapResult"*) * * * * * * * * * * * * * * * * * * * * * * * DtoResolveFunction(std.getopt.handleOption!(string[]*).handleOption.MapResult!(__lambda8, Result).MapResult.front): /usr/include/dlang/ldc/std/algorithm/iteration.d(545) * * * * * * * * * * * * * * * * * * * * * * * * DtoDeclareFunction(std.getopt.handleOption!(string[]*).handleOption.MapResult!(__lambda8, Result).MapResult.front): /usr/include/dlang/ldc/std/algorithm/iteration.d(545) * * * * * * * * * * * * * * * * * * * * * * * * * isMember = this is: MapResult!(__lambda8, Result) * * * * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @property @safe string()) * * * * * * * * * * * * * * * * * * * * * * * * * func = declare { i64, i8* } @_D3std9algorithm9iteration215__T9MapResultS1053std6getopt24__T12handleOptionTPAAyaZ12handleOptionFAyaPAAyaKAAyaKS3std6getopt13configurationbZ9__lambda8TS3std9algorithm9iteration40__T8splitterVAyaa6_61203d3d2062TAyaTAyaZ8splitterFAyaAyaZ6ResultZ9MapResult5frontMFNaNbNdNiNfZAya(%"std.getopt.handleOption!(string[]*).handleOption.MapResult!(__lambda8, Result).MapResult"*) * * * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * * * Building type: pure nothrow @nogc @property @safe string() * * * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @property @safe string()) * * * * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * * * * * * Final function type: { i64, i8* } () * * * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * * * * * * * %__r3187 = alloca %"std.getopt.handleOption!(string[]*).handleOption.MapResult!(__lambda8, Result).MapResult", align 8 * * * * * * * * * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @property @safe string() * * * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * * * * * * SetArray * * * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(751) * * * * * * * * * * * * * * * * * CatAssignExp::toElem: *receiver ~= elem @ string[] * * * * * * * * * * * * * * * * * * PtrExp::toElem: *receiver @ string[] * * * * * * * * * * * * * * * * * * * VarExp::toElem: receiver @ string[]* * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('receiver' of type 'string[]*') * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * type: string[]* * * * * * * * * * * * * * * * * * * DtoCatAssignElement * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * * VarExp::toElem: elem @ string * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('elem' of type 'string') * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * DtoTypeInfoOf(type = 'string[]', base='1') * * * * * * * * * * * * * * * * * * * * Type::getTypeInfo(): string[] * * * * * * * * * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(string[])) * * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * * * * SetArray * * * * * * * * * * * * * * * CallExp::toElem: __r3187.popFront() @ void * * * * * * * * * * * * * * * * DotVarExp::toElem: __r3187.popFront @ pure nothrow @nogc @safe void() * * * * * * * * * * * * * * * * * VarExp::toElem: __r3187 @ MapResult!(__lambda8, Result) * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__r3187' of type 'MapResult!(__lambda8, Result)') * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * isMember = this is: MapResult!(__lambda8, Result) * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe void()) * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * Final function type: void (%"std.getopt.handleOption!(string[]*).handleOption.MapResult!(__lambda8, Result).MapResult"*) * * * * * * * * * * * * * * * * * DtoResolveFunction(std.getopt.handleOption!(string[]*).handleOption.MapResult!(__lambda8, Result).MapResult.popFront): /usr/include/dlang/ldc/std/algorithm/iteration.d(540) * * * * * * * * * * * * * * * * * * DtoDeclareFunction(std.getopt.handleOption!(string[]*).handleOption.MapResult!(__lambda8, Result).MapResult.popFront): /usr/include/dlang/ldc/std/algorithm/iteration.d(540) * * * * * * * * * * * * * * * * * * * isMember = this is: MapResult!(__lambda8, Result) * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe void()) * * * * * * * * * * * * * * * * * * * func = declare void @_D3std9algorithm9iteration215__T9MapResultS1053std6getopt24__T12handleOptionTPAAyaZ12handleOptionFAyaPAAyaKAAyaKS3std6getopt13configurationbZ9__lambda8TS3std9algorithm9iteration40__T8splitterVAyaa6_61203d3d2062TAyaTAyaZ8splitterFAyaAyaZ6ResultZ9MapResult8popFrontMFNaNbNiNfZv(%"std.getopt.handleOption!(string[]*).handleOption.MapResult!(__lambda8, Result).MapResult"*) * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * Building type: pure nothrow @nogc @safe void() * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe void()) * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * Final function type: void () * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * %__r3187 = alloca %"std.getopt.handleOption!(string[]*).handleOption.MapResult!(__lambda8, Result).MapResult", align 8 * * * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @safe void() * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(791) * * * * * * VarExp::toElem: ret @ bool * * * * * * * DtoSymbolAddress ('ret' of type 'bool') * * * * * * * * a normal variable * * * * * * return value is '0x12ef1dc8' * TemplateInstance::codegen: 'std.getopt.handleOption!(string[]*).handleOption.map!((a) => to!E(a))' * * Ignoring Dsymbol::codegen for std.getopt.handleOption!(string[]*).handleOption.map!((a) => to!E(a)).map(Range)(Range r) if (isInputRange!(Unqual!Range)) * TemplateInstance::codegen: 'std.getopt.handleOption!(string[]*).handleOption.map!((a) => to!E(a)).map!(Result)' * * DtoDefineFunction(std.getopt.handleOption!(string[]*).handleOption.map!((a) => to!E(a)).map!(Result).map): /usr/include/dlang/ldc/std/algorithm/iteration.d(431) * * * Doing function body for: map * * * DtoCreateNestedContext for map * * * * DtoCreateNestedContextType for std.getopt.handleOption!(string[]*).handleOption.map!((a) => to!E(a)).map!(Result).map * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/iteration.d(432) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/iteration.d(435) * * * * * * DeclarationExp::toElem: template AppliedReturnType(alias f) | T=void * * * * * * * DtoDeclarationExp: AppliedReturnType(alias f) * * * * * * * * Ignoring Symbol: template * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/iteration.d(451) * * * * * * DeclarationExp::toElem: alias _fun = template __lambda8(__T2378); | T=void * * * * * * * DtoDeclarationExp: _fun * * * * * * * * Ignoring Symbol: alias * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/iteration.d(457) * * * * * * CallExp::toElem: MapResult(Result(null, null, 18446744073709551615LU, 18446744073709551615LU)).this(r) @ MapResult!(__lambda8, Result) * * * * * * * DotVarExp::toElem: MapResult(Result(null, null, 18446744073709551615LU, 18446744073709551615LU)).this @ pure nothrow @nogc ref @safe MapResult!(__lambda8, Result)(Result input) * * * * * * * * StructLiteralExp::toElem: MapResult(Result(null, null, 18446744073709551615LU, 18446744073709551615LU)) @ MapResult!(__lambda8, Result) * * * * * * * * * Resolving struct type: MapResult (/usr/include/dlang/ldc/std/algorithm/iteration.d(504)) * * * * * * * * * initializing field: Result _input (+0) * * * * * * * * * * expr 0 = Result(null, null, 18446744073709551615LU, 18446744073709551615LU) * * * * * * * * * * StructLiteralExp::toElem: Result(null, null, 18446744073709551615LU, 18446744073709551615LU) @ Result * * * * * * * * * * * Sym: type = Result * * * * * * * * * * Indexing aggregate field std.getopt.handleOption!(string[]*).handleOption.MapResult!(__lambda8, Result).MapResult._input: * * * * * * * * * * * Value: %1 = getelementptr %"std.getopt.handleOption!(string[]*).handleOption.MapResult!(__lambda8, Result).MapResult", %"std.getopt.handleOption!(string[]*).handleOption.MapResult!(__lambda8, Result).MapResult"* %.structliteral, i32 0, i32 0 * * * * * * * * * * DtoAssign() * * * * * * * * * initializing field: void* this (+48) * * * * * * * * * * initializing vthis * * * * * * * * * * * DtoNestedContext for std.getopt.handleOption!(string[]*).handleOption.MapResult!(__lambda8, Result).MapResult * * * * * * * * * * * * result = %3 = load i8*, i8** %nestedFrame * * * * * * * * * * * * of type i8* * * * * * * * * * * Indexing aggregate field std.getopt.handleOption!(string[]*).handleOption.MapResult!(__lambda8, Result).MapResult.this: * * * * * * * * * * * Value: %4 = getelementptr %"std.getopt.handleOption!(string[]*).handleOption.MapResult!(__lambda8, Result).MapResult", %"std.getopt.handleOption!(string[]*).handleOption.MapResult!(__lambda8, Result).MapResult"* %.structliteral, i32 0, i32 1 * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %4 = getelementptr %"std.getopt.handleOption!(string[]*).handleOption.MapResult!(__lambda8, Result).MapResult", %"std.getopt.handleOption!(string[]*).handleOption.MapResult!(__lambda8, Result).MapResult"* %.structliteral, i32 0, i32 1 * * * * * * * * * * * rhs: %3 = load i8*, i8** %nestedFrame * * * * * * * * isMember = this is: MapResult!(__lambda8, Result) * * * * * * * * DtoFunctionType(pure nothrow @nogc ref @safe MapResult!(__lambda8, Result)(Result input)) * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * Final function type: %"std.getopt.handleOption!(string[]*).handleOption.MapResult!(__lambda8, Result).MapResult"* (%"std.getopt.handleOption!(string[]*).handleOption.MapResult!(__lambda8, Result).MapResult"*, %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"*) * * * * * * * * DtoResolveFunction(std.getopt.handleOption!(string[]*).handleOption.MapResult!(__lambda8, Result).MapResult.this): /usr/include/dlang/ldc/std/algorithm/iteration.d(522) * * * * * * * * * DtoDeclareFunction(std.getopt.handleOption!(string[]*).handleOption.MapResult!(__lambda8, Result).MapResult.this): /usr/include/dlang/ldc/std/algorithm/iteration.d(522) * * * * * * * * * * isMember = this is: MapResult!(__lambda8, Result) * * * * * * * * * * DtoFunctionType(pure nothrow @nogc ref @safe MapResult!(__lambda8, Result)(Result input)) * * * * * * * * * * func = declare %"std.getopt.handleOption!(string[]*).handleOption.MapResult!(__lambda8, Result).MapResult"* @_D3std9algorithm9iteration215__T9MapResultS1053std6getopt24__T12handleOptionTPAAyaZ12handleOptionFAyaPAAyaKAAyaKS3std6getopt13configurationbZ9__lambda8TS3std9algorithm9iteration40__T8splitterVAyaa6_61203d3d2062TAyaTAyaZ8splitterFAyaAyaZ6ResultZ9MapResult6__ctorMFNaNbNcNiNfS3std9algorithm9iteration40__T8splitterVAyaa6_61203d3d2062TAyaTAyaZ8splitterFAyaAyaZ6ResultZS3std9algorithm9iteration215__T9MapResultS1053std6getopt24__T12handleOptionTPAAyaZ12handleOptionFAyaPAAyaKAAyaKS3std6getopt13configurationbZ9__lambda8TS3std9algorithm9iteration40__T8splitterVAyaa6_61203d3d2062TAyaTAyaZ8splitterFAyaAyaZ6ResultZ9MapResult(%"std.getopt.handleOption!(string[]*).handleOption.MapResult!(__lambda8, Result).MapResult"*, %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"*) * * * * * * * DtoCallFunction() * * * * * * * * Building type: pure nothrow @nogc ref @safe MapResult!(__lambda8, Result)(Result input) * * * * * * * * * DtoFunctionType(pure nothrow @nogc ref @safe MapResult!(__lambda8, Result)(Result input)) * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: %"std.getopt.handleOption!(string[]*).handleOption.MapResult!(__lambda8, Result).MapResult"* (%"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"*) * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (1) * * * * * * * * * %.structliteral = alloca %"std.getopt.handleOption!(string[]*).handleOption.MapResult!(__lambda8, Result).MapResult", align 8 * * * * * * * * Function type: pure nothrow @nogc ref @safe MapResult!(__lambda8, Result)(Result input) * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: r @ Result * * * * * * * * * * DtoSymbolAddress ('r' of type 'Result') * * * * * * * * * * * function param * * * * * * * * * * * type: Result * * * * * * DtoAssign() * TemplateInstance::codegen: 'std.getopt.handleOption!(string[]*).handleOption.unaryFun!((a) => to!E(a), "a")' * * Ignoring Dsymbol::codegen for std.getopt.handleOption!(string[]*).handleOption.unaryFun!((a) => to!E(a), "a").unaryFun * TemplateInstance::codegen: 'std.getopt.handleOption!(string[]*).handleOption.needOpCallAlias!(__lambda8)' * * VarDeclaration::codegen(): 'std.getopt.handleOption!(string[]*).handleOption.needOpCallAlias!(__lambda8).needOpCallAlias' * * * DtoResolveVariable(std.getopt.handleOption!(string[]*).handleOption.needOpCallAlias!(__lambda8).needOpCallAlias) * TemplateInstance::codegen: 'std.getopt.handleOption!(string[]*).handleOption.map!((a) => to!E(a)).map!(Result).map.AppliedReturnType!(__lambda8)' * TemplateInstance::codegen: 'std.getopt.handleOption!(string[]*).handleOption.__lambda8!string' * * DtoDefineFunction(std.getopt.handleOption!(string[]*).handleOption.__lambda8): /usr/include/dlang/ldc/std/getopt.d(750) * * * DtoFunctionType(pure nothrow @nogc @safe string(string a)) * * * * x86-64 ABI: Transforming return type * * * * x86-64 ABI: Transforming argument types * * * * Final function type: { i64, i8* } ({ i64, i8* }) * * * DtoResolveFunction(std.getopt.handleOption!(string[]*).handleOption.__lambda8): /usr/include/dlang/ldc/std/getopt.d(750) * * * * DtoDeclareFunction(std.getopt.handleOption!(string[]*).handleOption.__lambda8): /usr/include/dlang/ldc/std/getopt.d(750) * * * * * DtoFunctionType(pure nothrow @nogc @safe string(string a)) * * * * * func = declare { i64, i8* } @_D3std6getopt24__T12handleOptionTPAAyaZ12handleOptionFAyaPAAyaKAAyaKS3std6getopt13configurationbZ18__T9__lambda8TAyaZ9__lambda8FNaNbNiNfAyaZAya({ i64, i8* }) * * * Doing function body for: __lambda8 * * * DtoCreateNestedContext for __lambda8 * * * * DtoCreateNestedContextType for std.getopt.handleOption!(string[]*).handleOption.__lambda8 * * * CompoundStatement::toIR(): * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(750) * * * * * CallExp::toElem: to(a) @ string * * * * * * VarExp::toElem: to @ pure nothrow @nogc @safe string(string _param_0) * * * * * * * DtoSymbolAddress ('to' of type 'pure nothrow @nogc @safe string(string _param_0)') * * * * * * * * FuncDeclaration * * * * * * DtoCallFunction() * * * * * * * doing normal arguments * * * * * * * Arguments so far: (0) * * * * * * * Function type: pure nothrow @nogc @safe string(string _param_0) * * * * * * * DtoArgument * * * * * * * * VarExp::toElem: a @ string * * * * * * * * * DtoSymbolAddress ('a' of type 'string') * * * * * * * * * * function param * * * * * * * * * * type: string * * * * * return value is '0x12ef8ad0' * TemplateInstance::codegen: 'std.getopt.handleOption!(string[]*).handleOption.MapResult!(__lambda8, Result)' * * StructDeclaration::codegen: 'std.getopt.handleOption!(string[]*).handleOption.MapResult!(__lambda8, Result).MapResult' * * * Ignoring Dsymbol::codegen for std.getopt.handleOption!(string[]*).handleOption.MapResult!(__lambda8, Result).MapResult.R * * * VarDeclaration::codegen(): 'std.getopt.handleOption!(string[]*).handleOption.MapResult!(__lambda8, Result).MapResult._input' * * * * DtoResolveVariable(std.getopt.handleOption!(string[]*).handleOption.MapResult!(__lambda8, Result).MapResult._input) * * * Ignoring Dsymbol::codegen for std.getopt.handleOption!(string[]*).handleOption.MapResult!(__lambda8, Result).MapResult.back()() * * * Ignoring Dsymbol::codegen for std.getopt.handleOption!(string[]*).handleOption.MapResult!(__lambda8, Result).MapResult.popBack()() * * * DtoDefineFunction(std.getopt.handleOption!(string[]*).handleOption.MapResult!(__lambda8, Result).MapResult.this): /usr/include/dlang/ldc/std/algorithm/iteration.d(522) * * * * Doing function body for: this * * * * DtoCreateNestedContext for this * * * * * DtoCreateNestedContextType for std.getopt.handleOption!(string[]*).handleOption.MapResult!(__lambda8, Result).MapResult.this * * * * * * DtoCreateNestedContextType for std.getopt.handleOption!(string[]*).handleOption * * * * CompoundStatement::toIR(): * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/iteration.d(522) * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/iteration.d(524) * * * * * * * AssignExp::toElem: this._input = input | (Result)(Result = Result) * * * * * * * * DotVarExp::toElem: this._input @ Result * * * * * * * * * ThisExp::toElem: this @ MapResult!(__lambda8, Result) * * * * * * * * * * normal this exp * * * * * * * * * Indexing aggregate field std.getopt.handleOption!(string[]*).handleOption.MapResult!(__lambda8, Result).MapResult._input: * * * * * * * * * * Value: %1 = getelementptr %"std.getopt.handleOption!(string[]*).handleOption.MapResult!(__lambda8, Result).MapResult", %"std.getopt.handleOption!(string[]*).handleOption.MapResult!(__lambda8, Result).MapResult"* %.this_arg, i32 0, i32 0 * * * * * * * * VarExp::toElem: input @ Result * * * * * * * * * DtoSymbolAddress ('input' of type 'Result') * * * * * * * * * * function param * * * * * * * * * * type: Result * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * DtoAssign() * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/iteration.d(522) * * * * * * * AddrExp::toElem: &this @ MapResult!(__lambda8, Result)* * * * * * * * * ThisExp::toElem: this @ MapResult!(__lambda8, Result) * * * * * * * * * this exp without var declaration * * * * * * * * is nothing special * * * * * * * * lval: %"std.getopt.handleOption!(string[]*).handleOption.MapResult!(__lambda8, Result).MapResult"* %.this_arg * * * * * * * return value is '0x12ef5970' * * * DtoDefineFunction(std.getopt.handleOption!(string[]*).handleOption.MapResult!(__lambda8, Result).MapResult.empty): /usr/include/dlang/ldc/std/algorithm/iteration.d(534) * * * * Doing function body for: empty * * * * DtoCreateNestedContext for empty * * * * * DtoCreateNestedContextType for std.getopt.handleOption!(string[]*).handleOption.MapResult!(__lambda8, Result).MapResult.empty * * * * * * DtoCreateNestedContextType for std.getopt.handleOption!(string[]*).handleOption * * * * CompoundStatement::toIR(): * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/iteration.d(536) * * * * * * CallExp::toElem: this._input.empty() @ bool * * * * * * * DotVarExp::toElem: this._input.empty @ pure nothrow @nogc @property @safe bool() * * * * * * * * DotVarExp::toElem: this._input @ Result * * * * * * * * * ThisExp::toElem: this @ MapResult!(__lambda8, Result) * * * * * * * * * * normal this exp * * * * * * * * * Indexing aggregate field std.getopt.handleOption!(string[]*).handleOption.MapResult!(__lambda8, Result).MapResult._input: * * * * * * * * * * Value: %1 = getelementptr %"std.getopt.handleOption!(string[]*).handleOption.MapResult!(__lambda8, Result).MapResult", %"std.getopt.handleOption!(string[]*).handleOption.MapResult!(__lambda8, Result).MapResult"* %.this_arg, i32 0, i32 0 * * * * * * * DtoCallFunction() * * * * * * * * Building type: pure nothrow @nogc @property @safe bool() * * * * * * * * * DtoFunctionType(pure nothrow @nogc @property @safe bool()) * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: i1 () * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (1) * * * * * * * * * %1 = getelementptr %"std.getopt.handleOption!(string[]*).handleOption.MapResult!(__lambda8, Result).MapResult", %"std.getopt.handleOption!(string[]*).handleOption.MapResult!(__lambda8, Result).MapResult"* %.this_arg, i32 0, i32 0 * * * * * * * * Function type: pure nothrow @nogc @property @safe bool() * * * * * * return value is '0x12efb730' * * * DtoDefineFunction(std.getopt.handleOption!(string[]*).handleOption.MapResult!(__lambda8, Result).MapResult.popFront): /usr/include/dlang/ldc/std/algorithm/iteration.d(540) * * * * Doing function body for: popFront * * * * DtoCreateNestedContext for popFront * * * * * DtoCreateNestedContextType for std.getopt.handleOption!(string[]*).handleOption.MapResult!(__lambda8, Result).MapResult.popFront * * * * * * DtoCreateNestedContextType for std.getopt.handleOption!(string[]*).handleOption * * * * CompoundStatement::toIR(): * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/iteration.d(542) * * * * * * CallExp::toElem: this._input.popFront() @ void * * * * * * * DotVarExp::toElem: this._input.popFront @ pure nothrow @nogc @safe void() * * * * * * * * DotVarExp::toElem: this._input @ Result * * * * * * * * * ThisExp::toElem: this @ MapResult!(__lambda8, Result) * * * * * * * * * * normal this exp * * * * * * * * * Indexing aggregate field std.getopt.handleOption!(string[]*).handleOption.MapResult!(__lambda8, Result).MapResult._input: * * * * * * * * * * Value: %1 = getelementptr %"std.getopt.handleOption!(string[]*).handleOption.MapResult!(__lambda8, Result).MapResult", %"std.getopt.handleOption!(string[]*).handleOption.MapResult!(__lambda8, Result).MapResult"* %.this_arg, i32 0, i32 0 * * * * * * * DtoCallFunction() * * * * * * * * Building type: pure nothrow @nogc @safe void() * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe void()) * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: void () * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (1) * * * * * * * * * %1 = getelementptr %"std.getopt.handleOption!(string[]*).handleOption.MapResult!(__lambda8, Result).MapResult", %"std.getopt.handleOption!(string[]*).handleOption.MapResult!(__lambda8, Result).MapResult"* %.this_arg, i32 0, i32 0 * * * * * * * * Function type: pure nothrow @nogc @safe void() * * * DtoDefineFunction(std.getopt.handleOption!(string[]*).handleOption.MapResult!(__lambda8, Result).MapResult.front): /usr/include/dlang/ldc/std/algorithm/iteration.d(545) * * * * Doing function body for: front * * * * DtoCreateNestedContext for front * * * * * DtoCreateNestedContextType for std.getopt.handleOption!(string[]*).handleOption.MapResult!(__lambda8, Result).MapResult.front * * * * * * DtoCreateNestedContextType for std.getopt.handleOption!(string[]*).handleOption * * * * CompoundStatement::toIR(): * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/iteration.d(547) * * * * * * CallExp::toElem: __lambda8(this._input.front()) @ string * * * * * * * VarExp::toElem: __lambda8 @ pure nothrow @nogc @safe string(string a) * * * * * * * * DtoSymbolAddress ('__lambda8' of type 'pure nothrow @nogc @safe string(string a)') * * * * * * * * * FuncDeclaration * * * * * * * DtoCallFunction() * * * * * * * * Building type: pure nothrow @nogc @safe string(string a) * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe string(string a)) * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: { i64, i8* } ({ i64, i8* }) * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (0) * * * * * * * * Function type: pure nothrow @nogc @safe string(string a) * * * * * * * * DtoArgument * * * * * * * * * CallExp::toElem: this._input.front() @ string * * * * * * * * * * DotVarExp::toElem: this._input.front @ pure nothrow @nogc @property @safe string() * * * * * * * * * * * DotVarExp::toElem: this._input @ Result * * * * * * * * * * * * ThisExp::toElem: this @ MapResult!(__lambda8, Result) * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * Indexing aggregate field std.getopt.handleOption!(string[]*).handleOption.MapResult!(__lambda8, Result).MapResult._input: * * * * * * * * * * * * * Value: %1 = getelementptr %"std.getopt.handleOption!(string[]*).handleOption.MapResult!(__lambda8, Result).MapResult", %"std.getopt.handleOption!(string[]*).handleOption.MapResult!(__lambda8, Result).MapResult"* %.this_arg, i32 0, i32 0 * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * Building type: pure nothrow @nogc @property @safe string() * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @property @safe string()) * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * Final function type: { i64, i8* } () * * * * * * * * * * * doing normal arguments * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * %1 = getelementptr %"std.getopt.handleOption!(string[]*).handleOption.MapResult!(__lambda8, Result).MapResult", %"std.getopt.handleOption!(string[]*).handleOption.MapResult!(__lambda8, Result).MapResult"* %.this_arg, i32 0, i32 0 * * * * * * * * * * * Function type: pure nothrow @nogc @property @safe string() * * * * * * return value is '0x12efdd80' * * * DtoDefineFunction(std.getopt.handleOption!(string[]*).handleOption.MapResult!(__lambda8, Result).MapResult.save): /usr/include/dlang/ldc/std/algorithm/iteration.d(606) * * * * isMember = this is: MapResult!(__lambda8, Result) * * * * DtoFunctionType(pure nothrow @nogc @property @safe MapResult!(__lambda8, Result)()) * * * * * x86-64 ABI: Transforming argument types * * * * * Final function type: void (%"std.getopt.handleOption!(string[]*).handleOption.MapResult!(__lambda8, Result).MapResult"*, %"std.getopt.handleOption!(string[]*).handleOption.MapResult!(__lambda8, Result).MapResult"*) * * * * DtoResolveFunction(std.getopt.handleOption!(string[]*).handleOption.MapResult!(__lambda8, Result).MapResult.save): /usr/include/dlang/ldc/std/algorithm/iteration.d(606) * * * * * DtoDeclareFunction(std.getopt.handleOption!(string[]*).handleOption.MapResult!(__lambda8, Result).MapResult.save): /usr/include/dlang/ldc/std/algorithm/iteration.d(606) * * * * * * isMember = this is: MapResult!(__lambda8, Result) * * * * * * DtoFunctionType(pure nothrow @nogc @property @safe MapResult!(__lambda8, Result)()) * * * * * * func = declare void @_D3std9algorithm9iteration215__T9MapResultS1053std6getopt24__T12handleOptionTPAAyaZ12handleOptionFAyaPAAyaKAAyaKS3std6getopt13configurationbZ9__lambda8TS3std9algorithm9iteration40__T8splitterVAyaa6_61203d3d2062TAyaTAyaZ8splitterFAyaAyaZ6ResultZ9MapResult4saveMFNaNbNdNiNfZS3std9algorithm9iteration215__T9MapResultS1053std6getopt24__T12handleOptionTPAAyaZ12handleOptionFAyaPAAyaKAAyaKS3std6getopt13configurationbZ9__lambda8TS3std9algorithm9iteration40__T8splitterVAyaa6_61203d3d2062TAyaTAyaZ8splitterFAyaAyaZ6ResultZ9MapResult(%"std.getopt.handleOption!(string[]*).handleOption.MapResult!(__lambda8, Result).MapResult"*, %"std.getopt.handleOption!(string[]*).handleOption.MapResult!(__lambda8, Result).MapResult"*) * * * * Doing function body for: save * * * * DtoCreateNestedContext for save * * * * * DtoCreateNestedContextType for std.getopt.handleOption!(string[]*).handleOption.MapResult!(__lambda8, Result).MapResult.save * * * * * * DtoCreateNestedContextType for std.getopt.handleOption!(string[]*).handleOption * * * * CompoundStatement::toIR(): * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/iteration.d(608) * * * * * * CallExp::toElem: MapResult(Result(null, null, 18446744073709551615LU, 18446744073709551615LU)).this(this._input.save()) @ MapResult!(__lambda8, Result) * * * * * * * DotVarExp::toElem: MapResult(Result(null, null, 18446744073709551615LU, 18446744073709551615LU)).this @ pure nothrow @nogc ref @safe MapResult!(__lambda8, Result)(Result input) * * * * * * * * StructLiteralExp::toElem: MapResult(Result(null, null, 18446744073709551615LU, 18446744073709551615LU)) @ MapResult!(__lambda8, Result) * * * * * * * * * initializing field: Result _input (+0) * * * * * * * * * * expr 0 = Result(null, null, 18446744073709551615LU, 18446744073709551615LU) * * * * * * * * * * StructLiteralExp::toElem: Result(null, null, 18446744073709551615LU, 18446744073709551615LU) @ Result * * * * * * * * * * * Sym: type = Result * * * * * * * * * * Indexing aggregate field std.getopt.handleOption!(string[]*).handleOption.MapResult!(__lambda8, Result).MapResult._input: * * * * * * * * * * * Value: %1 = getelementptr %"std.getopt.handleOption!(string[]*).handleOption.MapResult!(__lambda8, Result).MapResult", %"std.getopt.handleOption!(string[]*).handleOption.MapResult!(__lambda8, Result).MapResult"* %.structliteral, i32 0, i32 0 * * * * * * * * * * DtoAssign() * * * * * * * * * initializing field: void* this (+48) * * * * * * * * * * initializing vthis * * * * * * * * * * * DtoNestedContext for std.getopt.handleOption!(string[]*).handleOption.MapResult!(__lambda8, Result).MapResult * * * * * * * * * * * * result = %3 = load i8*, i8** %.vthis * * * * * * * * * * * * of type i8* * * * * * * * * * * Indexing aggregate field std.getopt.handleOption!(string[]*).handleOption.MapResult!(__lambda8, Result).MapResult.this: * * * * * * * * * * * Value: %4 = getelementptr %"std.getopt.handleOption!(string[]*).handleOption.MapResult!(__lambda8, Result).MapResult", %"std.getopt.handleOption!(string[]*).handleOption.MapResult!(__lambda8, Result).MapResult"* %.structliteral, i32 0, i32 1 * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %4 = getelementptr %"std.getopt.handleOption!(string[]*).handleOption.MapResult!(__lambda8, Result).MapResult", %"std.getopt.handleOption!(string[]*).handleOption.MapResult!(__lambda8, Result).MapResult"* %.structliteral, i32 0, i32 1 * * * * * * * * * * * rhs: %3 = load i8*, i8** %.vthis * * * * * * * DtoCallFunction() * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (1) * * * * * * * * * %.structliteral = alloca %"std.getopt.handleOption!(string[]*).handleOption.MapResult!(__lambda8, Result).MapResult", align 8 * * * * * * * * Function type: pure nothrow @nogc ref @safe MapResult!(__lambda8, Result)(Result input) * * * * * * * * DtoArgument * * * * * * * * * CallExp::toElem: this._input.save() @ Result * * * * * * * * * * DotVarExp::toElem: this._input.save @ pure nothrow @nogc @property @safe Result() * * * * * * * * * * * DotVarExp::toElem: this._input @ Result * * * * * * * * * * * * ThisExp::toElem: this @ MapResult!(__lambda8, Result) * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * Indexing aggregate field std.getopt.handleOption!(string[]*).handleOption.MapResult!(__lambda8, Result).MapResult._input: * * * * * * * * * * * * * Value: %5 = getelementptr %"std.getopt.handleOption!(string[]*).handleOption.MapResult!(__lambda8, Result).MapResult", %"std.getopt.handleOption!(string[]*).handleOption.MapResult!(__lambda8, Result).MapResult"* %.this_arg, i32 0, i32 0 * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * Building type: pure nothrow @nogc @property @safe Result() * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @property @safe Result()) * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * Final function type: void (%"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"*) * * * * * * * * * * * doing normal arguments * * * * * * * * * * * Arguments so far: (2) * * * * * * * * * * * * %.rettmp = alloca %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result", align 8 * * * * * * * * * * * * %5 = getelementptr %"std.getopt.handleOption!(string[]*).handleOption.MapResult!(__lambda8, Result).MapResult", %"std.getopt.handleOption!(string[]*).handleOption.MapResult!(__lambda8, Result).MapResult"* %.this_arg, i32 0, i32 0 * * * * * * * * * * * Function type: pure nothrow @nogc @property @safe Result() * * * * * * DtoAssign() * * * VarDeclaration::codegen(): 'std.getopt.handleOption!(string[]*).handleOption.MapResult!(__lambda8, Result).MapResult.this' * * * * DtoResolveVariable(std.getopt.handleOption!(string[]*).handleOption.MapResult!(__lambda8, Result).MapResult.this) * * * Building default initializer for std.getopt.handleOption!(string[]*).handleOption.MapResult!(__lambda8, Result).MapResult * * * * Creating initializer constant for MapResult * * * * * Implicit initializer: _input @+0 * * * * * * DtoConstExpInit(targetType = Result, exp = Result) * * * * * * * VarExp::toConstElem: Result @ Result * * * * * * * * Sym: type=Result * * * * * Implicit initializer: this @+48 * * * * * * DtoConstExpInit(targetType = void*, exp = null) * * * * * * * NullExp::toConstElem(type=void*): null * * * * * adding field _input * * * * * adding field this * * * * * final initializer: %"std.getopt.handleOption!(string[]*).handleOption.MapResult!(__lambda8, Result).MapResult_init" { %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result_init" { { i64, i8* } zeroinitializer, { i64, i8* } zeroinitializer, i64 -1, i64 -1 }, i8* null } * * * DtoTypeInfoOf(type = 'MapResult!(__lambda8, Result)', base='1') * * * * Type::getTypeInfo(): MapResult!(__lambda8, Result) * * * * * TypeInfoDeclaration::codegen(typeid(MapResult!(__lambda8, Result))) * * * * * * type = 'MapResult!(__lambda8, Result)' * * * * * * typeinfo mangle: _D262TypeInfo_S3std9algorithm9iteration215__T9MapResultS1053std6getopt24__T12handleOptionTPAAyaZ12handleOptionFAyaPAAyaKAAyaKS3std6getopt13configurationbZ9__lambda8TS3std9algorithm9iteration40__T8splitterVAyaa6_61203d3d2062TAyaTAyaZ8splitterFAyaAyaZ6ResultZ9MapResult6__initZ * * * * * * TypeInfoStructDeclaration::llvmDefine() typeid(MapResult!(__lambda8, Result)) * * * * * * * DtoFunctionType(nothrow @trusted ulong(ref const(MapResult!(__lambda8, Result)) p)) * * * * * * * * Building type: const(MapResult!(__lambda8, Result))* * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * Final function type: i64 (%"std.getopt.handleOption!(string[]*).handleOption.MapResult!(__lambda8, Result).MapResult"*) * * * * * * * DtoResolveFunction(std.getopt.handleOption!(string[]*).handleOption.MapResult!(__lambda8, Result).MapResult.__xtoHash): * * * * * * * * DtoDeclareFunction(std.getopt.handleOption!(string[]*).handleOption.MapResult!(__lambda8, Result).MapResult.__xtoHash): * * * * * * * * * DtoFunctionType(nothrow @trusted ulong(ref const(MapResult!(__lambda8, Result)) p)) * * * * * * * * * func = declare i64 @_D3std9algorithm9iteration215__T9MapResultS1053std6getopt24__T12handleOptionTPAAyaZ12handleOptionFAyaPAAyaKAAyaKS3std6getopt13configurationbZ9__lambda8TS3std9algorithm9iteration40__T8splitterVAyaa6_61203d3d2062TAyaTAyaZ8splitterFAyaAyaZ6ResultZ9MapResult9__xtoHashFNbNeKxS3std9algorithm9iteration215__T9MapResultS1053std6getopt24__T12handleOptionTPAAyaZ12handleOptionFAyaPAAyaKAAyaKS3std6getopt13configurationbZ9__lambda8TS3std9algorithm9iteration40__T8splitterVAyaa6_61203d3d2062TAyaTAyaZ8splitterFAyaAyaZ6ResultZ9MapResultZm(%"std.getopt.handleOption!(string[]*).handleOption.MapResult!(__lambda8, Result).MapResult"*) * * * * * * * DtoFunctionType(bool(ref const(MapResult!(__lambda8, Result)) p, ref const(MapResult!(__lambda8, Result)) q)) * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * Final function type: i1 (%"std.getopt.handleOption!(string[]*).handleOption.MapResult!(__lambda8, Result).MapResult"*, %"std.getopt.handleOption!(string[]*).handleOption.MapResult!(__lambda8, Result).MapResult"*) * * * * * * * DtoResolveFunction(std.getopt.handleOption!(string[]*).handleOption.MapResult!(__lambda8, Result).MapResult.__xopEquals): * * * * * * * * DtoDeclareFunction(std.getopt.handleOption!(string[]*).handleOption.MapResult!(__lambda8, Result).MapResult.__xopEquals): * * * * * * * * * DtoFunctionType(bool(ref const(MapResult!(__lambda8, Result)) p, ref const(MapResult!(__lambda8, Result)) q)) * * * * * * * * * func = declare i1 @_D3std9algorithm9iteration215__T9MapResultS1053std6getopt24__T12handleOptionTPAAyaZ12handleOptionFAyaPAAyaKAAyaKS3std6getopt13configurationbZ9__lambda8TS3std9algorithm9iteration40__T8splitterVAyaa6_61203d3d2062TAyaTAyaZ8splitterFAyaAyaZ6ResultZ9MapResult11__xopEqualsFKxS3std9algorithm9iteration215__T9MapResultS1053std6getopt24__T12handleOptionTPAAyaZ12handleOptionFAyaPAAyaKAAyaKS3std6getopt13configurationbZ9__lambda8TS3std9algorithm9iteration40__T8splitterVAyaa6_61203d3d2062TAyaTAyaZ8splitterFAyaAyaZ6ResultZ9MapResultKxS3std9algorithm9iteration215__T9MapResultS1053std6getopt24__T12handleOptionTPAAyaZ12handleOptionFAyaPAAyaKAAyaKS3std6getopt13configurationbZ9__lambda8TS3std9algorithm9iteration40__T8splitterVAyaa6_61203d3d2062TAyaTAyaZ8splitterFAyaAyaZ6ResultZ9MapResultZb(%"std.getopt.handleOption!(string[]*).handleOption.MapResult!(__lambda8, Result).MapResult"*, %"std.getopt.handleOption!(string[]*).handleOption.MapResult!(__lambda8, Result).MapResult"*) * * * * * * * IntegerExp::toConstElem: cast(void*)305419896LU @ void* * * * * * * * * pointer * * * * TypeInfoDeclaration::codegen(typeid(MapResult!(__lambda8, Result))) * * * DtoDefineFunction(std.getopt.handleOption!(string[]*).handleOption.MapResult!(__lambda8, Result).MapResult.__xopEquals): * * * * Doing function body for: __xopEquals * * * * DtoCreateNestedContext for __xopEquals * * * * * DtoCreateNestedContextType for std.getopt.handleOption!(string[]*).handleOption.MapResult!(__lambda8, Result).MapResult.__xopEquals * * * * CompoundStatement::toIR(): * * * * * ReturnStatement::toIR(): * * * * * * AndAndExp::toElem: p._input._input == q._input._input && p._input._separator == q._input._separator && p._input._frontLength == q._input._frontLength && p._input._backLength == q._input._backLength && p.this == q.this @ bool * * * * * * * AndAndExp::toElem: p._input._input == q._input._input && p._input._separator == q._input._separator && p._input._frontLength == q._input._frontLength && p._input._backLength == q._input._backLength @ bool * * * * * * * * AndAndExp::toElem: p._input._input == q._input._input && p._input._separator == q._input._separator && p._input._frontLength == q._input._frontLength @ bool * * * * * * * * * AndAndExp::toElem: p._input._input == q._input._input && p._input._separator == q._input._separator @ bool * * * * * * * * * * EqualExp::toElem: p._input._input == q._input._input @ bool * * * * * * * * * * * DotVarExp::toElem: p._input._input @ const(string) * * * * * * * * * * * * DotVarExp::toElem: p._input @ const(Result) * * * * * * * * * * * * * VarExp::toElem: p @ const(MapResult!(__lambda8, Result)) * * * * * * * * * * * * * * DtoSymbolAddress ('p' of type 'const(MapResult!(__lambda8, Result))') * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * type: const(MapResult!(__lambda8, Result)) * * * * * * * * * * * * * Indexing aggregate field std.getopt.handleOption!(string[]*).handleOption.MapResult!(__lambda8, Result).MapResult._input: * * * * * * * * * * * * * * Value: %1 = getelementptr %"std.getopt.handleOption!(string[]*).handleOption.MapResult!(__lambda8, Result).MapResult", %"std.getopt.handleOption!(string[]*).handleOption.MapResult!(__lambda8, Result).MapResult"* %p_arg, i32 0, i32 0 * * * * * * * * * * * * Indexing aggregate field std.algorithm.iteration.splitter!("a == b", string, string).splitter.Result._input: * * * * * * * * * * * * * Value: %2 = getelementptr %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result", %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"* %1, i32 0, i32 0 * * * * * * * * * * * DotVarExp::toElem: q._input._input @ const(string) * * * * * * * * * * * * DotVarExp::toElem: q._input @ const(Result) * * * * * * * * * * * * * VarExp::toElem: q @ const(MapResult!(__lambda8, Result)) * * * * * * * * * * * * * * DtoSymbolAddress ('q' of type 'const(MapResult!(__lambda8, Result))') * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * type: const(MapResult!(__lambda8, Result)) * * * * * * * * * * * * * Indexing aggregate field std.getopt.handleOption!(string[]*).handleOption.MapResult!(__lambda8, Result).MapResult._input: * * * * * * * * * * * * * * Value: %3 = getelementptr %"std.getopt.handleOption!(string[]*).handleOption.MapResult!(__lambda8, Result).MapResult", %"std.getopt.handleOption!(string[]*).handleOption.MapResult!(__lambda8, Result).MapResult"* %q_arg, i32 0, i32 0 * * * * * * * * * * * * Indexing aggregate field std.algorithm.iteration.splitter!("a == b", string, string).splitter.Result._input: * * * * * * * * * * * * * Value: %4 = getelementptr %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result", %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"* %3, i32 0, i32 0 * * * * * * * * * * * static or dynamic array * * * * * * * * * * * comparing arrays * * * * * * * * * * * casting to dynamic arrays * * * * * * * * * * * DtoCastArray * * * * * * * * * * * * from array or sarray * * * * * * * * * * * * to array * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * isslice * * * * * * * * * * * DtoCastArray * * * * * * * * * * * * from array or sarray * * * * * * * * * * * * to array * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * isslice * * * * * * * * * * * DtoTypeInfoOf(type = 'string', base='1') * * * * * * * * * * * * Type::getTypeInfo(): string * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(string)) * * * * * * * * * * EqualExp::toElem: p._input._separator == q._input._separator @ bool * * * * * * * * * * * DotVarExp::toElem: p._input._separator @ const(string) * * * * * * * * * * * * DotVarExp::toElem: p._input @ const(Result) * * * * * * * * * * * * * VarExp::toElem: p @ const(MapResult!(__lambda8, Result)) * * * * * * * * * * * * * * DtoSymbolAddress ('p' of type 'const(MapResult!(__lambda8, Result))') * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * type: const(MapResult!(__lambda8, Result)) * * * * * * * * * * * * * Indexing aggregate field std.getopt.handleOption!(string[]*).handleOption.MapResult!(__lambda8, Result).MapResult._input: * * * * * * * * * * * * * * Value: %17 = getelementptr %"std.getopt.handleOption!(string[]*).handleOption.MapResult!(__lambda8, Result).MapResult", %"std.getopt.handleOption!(string[]*).handleOption.MapResult!(__lambda8, Result).MapResult"* %p_arg, i32 0, i32 0 * * * * * * * * * * * * Indexing aggregate field std.algorithm.iteration.splitter!("a == b", string, string).splitter.Result._separator: * * * * * * * * * * * * * Value: %18 = getelementptr %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result", %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"* %17, i32 0, i32 1 * * * * * * * * * * * DotVarExp::toElem: q._input._separator @ const(string) * * * * * * * * * * * * DotVarExp::toElem: q._input @ const(Result) * * * * * * * * * * * * * VarExp::toElem: q @ const(MapResult!(__lambda8, Result)) * * * * * * * * * * * * * * DtoSymbolAddress ('q' of type 'const(MapResult!(__lambda8, Result))') * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * type: const(MapResult!(__lambda8, Result)) * * * * * * * * * * * * * Indexing aggregate field std.getopt.handleOption!(string[]*).handleOption.MapResult!(__lambda8, Result).MapResult._input: * * * * * * * * * * * * * * Value: %19 = getelementptr %"std.getopt.handleOption!(string[]*).handleOption.MapResult!(__lambda8, Result).MapResult", %"std.getopt.handleOption!(string[]*).handleOption.MapResult!(__lambda8, Result).MapResult"* %q_arg, i32 0, i32 0 * * * * * * * * * * * * Indexing aggregate field std.algorithm.iteration.splitter!("a == b", string, string).splitter.Result._separator: * * * * * * * * * * * * * Value: %20 = getelementptr %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result", %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"* %19, i32 0, i32 1 * * * * * * * * * * * static or dynamic array * * * * * * * * * * * comparing arrays * * * * * * * * * * * casting to dynamic arrays * * * * * * * * * * * DtoCastArray * * * * * * * * * * * * from array or sarray * * * * * * * * * * * * to array * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * isslice * * * * * * * * * * * DtoCastArray * * * * * * * * * * * * from array or sarray * * * * * * * * * * * * to array * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * isslice * * * * * * * * * * * DtoTypeInfoOf(type = 'string', base='1') * * * * * * * * * * * * Type::getTypeInfo(): string * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(string)) * * * * * * * * * EqualExp::toElem: p._input._frontLength == q._input._frontLength @ bool * * * * * * * * * * DotVarExp::toElem: p._input._frontLength @ const(ulong) * * * * * * * * * * * DotVarExp::toElem: p._input @ const(Result) * * * * * * * * * * * * VarExp::toElem: p @ const(MapResult!(__lambda8, Result)) * * * * * * * * * * * * * DtoSymbolAddress ('p' of type 'const(MapResult!(__lambda8, Result))') * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * type: const(MapResult!(__lambda8, Result)) * * * * * * * * * * * * Indexing aggregate field std.getopt.handleOption!(string[]*).handleOption.MapResult!(__lambda8, Result).MapResult._input: * * * * * * * * * * * * * Value: %33 = getelementptr %"std.getopt.handleOption!(string[]*).handleOption.MapResult!(__lambda8, Result).MapResult", %"std.getopt.handleOption!(string[]*).handleOption.MapResult!(__lambda8, Result).MapResult"* %p_arg, i32 0, i32 0 * * * * * * * * * * * Indexing aggregate field std.algorithm.iteration.splitter!("a == b", string, string).splitter.Result._frontLength: * * * * * * * * * * * * Value: %34 = getelementptr %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result", %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"* %33, i32 0, i32 2 * * * * * * * * * * DotVarExp::toElem: q._input._frontLength @ const(ulong) * * * * * * * * * * * DotVarExp::toElem: q._input @ const(Result) * * * * * * * * * * * * VarExp::toElem: q @ const(MapResult!(__lambda8, Result)) * * * * * * * * * * * * * DtoSymbolAddress ('q' of type 'const(MapResult!(__lambda8, Result))') * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * type: const(MapResult!(__lambda8, Result)) * * * * * * * * * * * * Indexing aggregate field std.getopt.handleOption!(string[]*).handleOption.MapResult!(__lambda8, Result).MapResult._input: * * * * * * * * * * * * * Value: %35 = getelementptr %"std.getopt.handleOption!(string[]*).handleOption.MapResult!(__lambda8, Result).MapResult", %"std.getopt.handleOption!(string[]*).handleOption.MapResult!(__lambda8, Result).MapResult"* %q_arg, i32 0, i32 0 * * * * * * * * * * * Indexing aggregate field std.algorithm.iteration.splitter!("a == b", string, string).splitter.Result._frontLength: * * * * * * * * * * * * Value: %36 = getelementptr %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result", %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"* %35, i32 0, i32 2 * * * * * * * * * * integral or pointer or interface * * * * * * * * * * lv: %37 = load i64, i64* %34 * * * * * * * * * * rv: %38 = load i64, i64* %36 * * * * * * * * EqualExp::toElem: p._input._backLength == q._input._backLength @ bool * * * * * * * * * DotVarExp::toElem: p._input._backLength @ const(ulong) * * * * * * * * * * DotVarExp::toElem: p._input @ const(Result) * * * * * * * * * * * VarExp::toElem: p @ const(MapResult!(__lambda8, Result)) * * * * * * * * * * * * DtoSymbolAddress ('p' of type 'const(MapResult!(__lambda8, Result))') * * * * * * * * * * * * * function param * * * * * * * * * * * * * type: const(MapResult!(__lambda8, Result)) * * * * * * * * * * * Indexing aggregate field std.getopt.handleOption!(string[]*).handleOption.MapResult!(__lambda8, Result).MapResult._input: * * * * * * * * * * * * Value: %40 = getelementptr %"std.getopt.handleOption!(string[]*).handleOption.MapResult!(__lambda8, Result).MapResult", %"std.getopt.handleOption!(string[]*).handleOption.MapResult!(__lambda8, Result).MapResult"* %p_arg, i32 0, i32 0 * * * * * * * * * * Indexing aggregate field std.algorithm.iteration.splitter!("a == b", string, string).splitter.Result._backLength: * * * * * * * * * * * Value: %41 = getelementptr %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result", %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"* %40, i32 0, i32 3 * * * * * * * * * DotVarExp::toElem: q._input._backLength @ const(ulong) * * * * * * * * * * DotVarExp::toElem: q._input @ const(Result) * * * * * * * * * * * VarExp::toElem: q @ const(MapResult!(__lambda8, Result)) * * * * * * * * * * * * DtoSymbolAddress ('q' of type 'const(MapResult!(__lambda8, Result))') * * * * * * * * * * * * * function param * * * * * * * * * * * * * type: const(MapResult!(__lambda8, Result)) * * * * * * * * * * * Indexing aggregate field std.getopt.handleOption!(string[]*).handleOption.MapResult!(__lambda8, Result).MapResult._input: * * * * * * * * * * * * Value: %42 = getelementptr %"std.getopt.handleOption!(string[]*).handleOption.MapResult!(__lambda8, Result).MapResult", %"std.getopt.handleOption!(string[]*).handleOption.MapResult!(__lambda8, Result).MapResult"* %q_arg, i32 0, i32 0 * * * * * * * * * * Indexing aggregate field std.algorithm.iteration.splitter!("a == b", string, string).splitter.Result._backLength: * * * * * * * * * * * Value: %43 = getelementptr %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result", %"std.algorithm.iteration.splitter!(\22a == b\22, string, string).splitter.Result"* %42, i32 0, i32 3 * * * * * * * * * integral or pointer or interface * * * * * * * * * lv: %44 = load i64, i64* %41 * * * * * * * * * rv: %45 = load i64, i64* %43 * * * * * * * EqualExp::toElem: p.this == q.this @ bool * * * * * * * * DotVarExp::toElem: p.this @ const(void*) * * * * * * * * * VarExp::toElem: p @ const(MapResult!(__lambda8, Result)) * * * * * * * * * * DtoSymbolAddress ('p' of type 'const(MapResult!(__lambda8, Result))') * * * * * * * * * * * function param * * * * * * * * * * * type: const(MapResult!(__lambda8, Result)) * * * * * * * * * Indexing aggregate field std.getopt.handleOption!(string[]*).handleOption.MapResult!(__lambda8, Result).MapResult.this: * * * * * * * * * * Value: %47 = getelementptr %"std.getopt.handleOption!(string[]*).handleOption.MapResult!(__lambda8, Result).MapResult", %"std.getopt.handleOption!(string[]*).handleOption.MapResult!(__lambda8, Result).MapResult"* %p_arg, i32 0, i32 1 * * * * * * * * DotVarExp::toElem: q.this @ const(void*) * * * * * * * * * VarExp::toElem: q @ const(MapResult!(__lambda8, Result)) * * * * * * * * * * DtoSymbolAddress ('q' of type 'const(MapResult!(__lambda8, Result))') * * * * * * * * * * * function param * * * * * * * * * * * type: const(MapResult!(__lambda8, Result)) * * * * * * * * * Indexing aggregate field std.getopt.handleOption!(string[]*).handleOption.MapResult!(__lambda8, Result).MapResult.this: * * * * * * * * * * Value: %48 = getelementptr %"std.getopt.handleOption!(string[]*).handleOption.MapResult!(__lambda8, Result).MapResult", %"std.getopt.handleOption!(string[]*).handleOption.MapResult!(__lambda8, Result).MapResult"* %q_arg, i32 0, i32 1 * * * * * * * * integral or pointer or interface * * * * * * * * lv: %49 = load i8*, i8** %47 * * * * * * * * rv: %50 = load i8*, i8** %48 * * * * * * return value is '0x12f10178' * * * DtoDefineFunction(std.getopt.handleOption!(string[]*).handleOption.MapResult!(__lambda8, Result).MapResult.__xtoHash): * * * * Doing function body for: __xtoHash * * * * DtoCreateNestedContext for __xtoHash * * * * * DtoCreateNestedContextType for std.getopt.handleOption!(string[]*).handleOption.MapResult!(__lambda8, Result).MapResult.__xtoHash * * * * CompoundStatement::toIR(): * * * * * CompoundStatement::toIR(): * * * * * * ExpStatement::toIR(): * * * * * * * DeclarationExp::toElem: ulong h = 0LU; | T=void * * * * * * * * DtoDeclarationExp: h * * * * * * * * * VarDeclaration * * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * * llvm value for decl: %h = alloca i64, align 8 * * * * * * * * * * expression initializer * * * * * * * * * * AssignExp::toElem: h = 0LU | (ulong)(ulong = ulong) * * * * * * * * * * * VarExp::toElem: h @ ulong * * * * * * * * * * * * DtoSymbolAddress ('h' of type 'ulong') * * * * * * * * * * * * * a normal variable * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * lhs: %h = alloca i64, align 8 * * * * * * * * * * * * rhs: i64 0 * * * * * * UnrolledLoopStatement::toIR(): * * * * * * * ScopeStatement::toIR(): * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * ExpStatement::toIR(): * * * * * * * * * * DeclarationExp::toElem: enum ulong i = 0LU; | T=void * * * * * * * * * * * DtoDeclarationExp: i * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * Manifest constant, nothing to do. * * * * * * * * * ExpStatement::toIR(): * * * * * * * * * * DeclarationExp::toElem: alias T = const(Result); | T=void * * * * * * * * * * * DtoDeclarationExp: T * * * * * * * * * * * * Ignoring Symbol: alias * * * * * * * * * ExpStatement::toIR(): * * * * * * * * * * AddAssignExp::toElem: h += typeid(const(Result)).getHash(cast(const(void*))&p._input) @ ulong * * * * * * * * * * * Caching l-value of h += typeid(const(Result)).getHash(cast(const(void*))&p._input) => h * * * * * * * * * * * * VarExp::toElem: h @ ulong * * * * * * * * * * * * * DtoSymbolAddress ('h' of type 'ulong') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * AddExp::toElem: h + typeid(const(Result)).getHash(cast(const(void*))&p._input) @ ulong * * * * * * * * * * * * VarExp::toElem: h @ ulong * * * * * * * * * * * * CallExp::toElem: typeid(const(Result)).getHash(cast(const(void*))&p._input) @ ulong * * * * * * * * * * * * * DotVarExp::toElem: typeid(const(Result)).getHash @ const nothrow @trusted ulong(const(void*) p) * * * * * * * * * * * * * * SymOffExp::toElem: typeid(const(Result)) @ object.TypeInfo * * * * * * * * * * * * * * * DtoSymbolAddress ('typeid(const(Result))' of type 'object.TypeInfo_Const') * * * * * * * * * * * * * * * * TypeInfoDeclaration * * * * * * * * * * * * * * * Casting from 'TypeInfo_Const*' to 'object.TypeInfo' * * * * * * * * * * * * * * * * src: %object.TypeInfo_Const* bitcast (%"typeid(const(Result))"* @_D101TypeInfo_xS3std9algorithm9iteration40__T8splitterVAyaa6_61203d3d2062TAyaTAyaZ8splitterFAyaAyaZ6Result6__initZ to %object.TypeInfo_Const*) * * * * * * * * * * * * * * * * to type: %object.TypeInfo* * * * * * * * * * * * * * * vthis: %object.TypeInfo* bitcast (%"typeid(const(Result))"* @_D101TypeInfo_xS3std9algorithm9iteration40__T8splitterVAyaa6_61203d3d2062TAyaTAyaZ8splitterFAyaAyaZ6Result6__initZ to %object.TypeInfo*) * * * * * * * * * * * * * * funcval: %3 = load i64 (%object.TypeInfo*, i8*)*, i64 (%object.TypeInfo*, i8*)** %"typeid(const(Result)).getHash@vtbl", align 8 * * * * * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * * * * * DtoFunctionType(const nothrow @trusted ulong(const(void*) p)) * * * * * * * * * * * * * * funcval casted: %"typeid(const(Result)).getHash" = load i64 (%object.TypeInfo*, i8*)*, i64 (%object.TypeInfo*, i8*)** %"typeid(const(Result)).getHash@vtbl", align 8 * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * %object.TypeInfo* bitcast (%"typeid(const(Result))"* @_D101TypeInfo_xS3std9algorithm9iteration40__T8splitterVAyaa6_61203d3d2062TAyaTAyaZ8splitterFAyaAyaZ6Result6__initZ to %object.TypeInfo*) * * * * * * * * * * * * * * Function type: const nothrow @trusted ulong(const(void*) p) * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * CastExp::toElem: cast(const(void*))&p._input @ const(void*) * * * * * * * * * * * * * * * * AddrExp::toElem: &p._input @ const(Result)* * * * * * * * * * * * * * * * * * DotVarExp::toElem: p._input @ const(Result) * * * * * * * * * * * * * * * * * * VarExp::toElem: p @ const(MapResult!(__lambda8, Result)) * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('p' of type 'const(MapResult!(__lambda8, Result))') * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * type: const(MapResult!(__lambda8, Result)) * * * * * * * * * * * * * * * * * * Indexing aggregate field std.getopt.handleOption!(string[]*).handleOption.MapResult!(__lambda8, Result).MapResult._input: * * * * * * * * * * * * * * * * * * * Value: %3 = getelementptr %"std.getopt.handleOption!(string[]*).handleOption.MapResult!(__lambda8, Result).MapResult", %"std.getopt.handleOption!(string[]*).handleOption.MapResult!(__lambda8, Result).MapResult"* %p_arg, i32 0, i32 0 * * * * * * * * * * * * * * * * * is nothing special * * * * * * * * * * * * * * * * * lval: %3 = getelementptr %"std.getopt.handleOption!(string[]*).handleOption.MapResult!(__lambda8, Result).MapResult", %"std.getopt.handleOption!(string[]*).handleOption.MapResult!(__lambda8, Result).MapResult"* %p_arg, i32 0, i32 0 * * * * * * * * * * * * * * * * Casting from 'const(Result)*' to 'const(void*)' * * * * * * * * * * * * * * * * * src: %3 = getelementptr %"std.getopt.handleOption!(string[]*).handleOption.MapResult!(__lambda8, Result).MapResult", %"std.getopt.handleOption!(string[]*).handleOption.MapResult!(__lambda8, Result).MapResult"* %p_arg, i32 0, i32 0 * * * * * * * * * * * * * * * * * to type: i8* * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * lhs: %h = alloca i64, align 8 * * * * * * * * * * * * rhs: %7 = add i64 %6, %5 * * * * * * * ScopeStatement::toIR(): * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * ExpStatement::toIR(): * * * * * * * * * * DeclarationExp::toElem: enum ulong i = 1LU; | T=void * * * * * * * * * * * DtoDeclarationExp: i * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * Manifest constant, nothing to do. * * * * * * * * * ExpStatement::toIR(): * * * * * * * * * * DeclarationExp::toElem: alias T = const(void*); | T=void * * * * * * * * * * * DtoDeclarationExp: T * * * * * * * * * * * * Ignoring Symbol: alias * * * * * * * * * ExpStatement::toIR(): * * * * * * * * * * AddAssignExp::toElem: h += typeid(const(void*)).getHash(cast(const(void*))&p.this) @ ulong * * * * * * * * * * * Caching l-value of h += typeid(const(void*)).getHash(cast(const(void*))&p.this) => h * * * * * * * * * * * * VarExp::toElem: h @ ulong * * * * * * * * * * * * * DtoSymbolAddress ('h' of type 'ulong') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * AddExp::toElem: h + typeid(const(void*)).getHash(cast(const(void*))&p.this) @ ulong * * * * * * * * * * * * VarExp::toElem: h @ ulong * * * * * * * * * * * * CallExp::toElem: typeid(const(void*)).getHash(cast(const(void*))&p.this) @ ulong * * * * * * * * * * * * * DotVarExp::toElem: typeid(const(void*)).getHash @ const nothrow @trusted ulong(const(void*) p) * * * * * * * * * * * * * * SymOffExp::toElem: typeid(const(void*)) @ object.TypeInfo * * * * * * * * * * * * * * * DtoSymbolAddress ('typeid(const(void*))' of type 'object.TypeInfo_Const') * * * * * * * * * * * * * * * * TypeInfoDeclaration * * * * * * * * * * * * * * * Casting from 'TypeInfo_Const*' to 'object.TypeInfo' * * * * * * * * * * * * * * * * src: %object.TypeInfo_Const* bitcast (%"typeid(const(void*))"* @_D12TypeInfo_xPv6__initZ to %object.TypeInfo_Const*) * * * * * * * * * * * * * * * * to type: %object.TypeInfo* * * * * * * * * * * * * * * vthis: %object.TypeInfo* bitcast (%"typeid(const(void*))"* @_D12TypeInfo_xPv6__initZ to %object.TypeInfo*) * * * * * * * * * * * * * * funcval: %10 = load i64 (%object.TypeInfo*, i8*)*, i64 (%object.TypeInfo*, i8*)** %"typeid(const(void*)).getHash@vtbl", align 8 * * * * * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * * * * * DtoFunctionType(const nothrow @trusted ulong(const(void*) p)) * * * * * * * * * * * * * * funcval casted: %"typeid(const(void*)).getHash" = load i64 (%object.TypeInfo*, i8*)*, i64 (%object.TypeInfo*, i8*)** %"typeid(const(void*)).getHash@vtbl", align 8 * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * %object.TypeInfo* bitcast (%"typeid(const(void*))"* @_D12TypeInfo_xPv6__initZ to %object.TypeInfo*) * * * * * * * * * * * * * * Function type: const nothrow @trusted ulong(const(void*) p) * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * CastExp::toElem: cast(const(void*))&p.this @ const(void*) * * * * * * * * * * * * * * * * AddrExp::toElem: &p.this @ const(void*)* * * * * * * * * * * * * * * * * * DotVarExp::toElem: p.this @ const(void*) * * * * * * * * * * * * * * * * * * VarExp::toElem: p @ const(MapResult!(__lambda8, Result)) * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('p' of type 'const(MapResult!(__lambda8, Result))') * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * type: const(MapResult!(__lambda8, Result)) * * * * * * * * * * * * * * * * * * Indexing aggregate field std.getopt.handleOption!(string[]*).handleOption.MapResult!(__lambda8, Result).MapResult.this: * * * * * * * * * * * * * * * * * * * Value: %10 = getelementptr %"std.getopt.handleOption!(string[]*).handleOption.MapResult!(__lambda8, Result).MapResult", %"std.getopt.handleOption!(string[]*).handleOption.MapResult!(__lambda8, Result).MapResult"* %p_arg, i32 0, i32 1 * * * * * * * * * * * * * * * * * is nothing special * * * * * * * * * * * * * * * * * lval: %10 = getelementptr %"std.getopt.handleOption!(string[]*).handleOption.MapResult!(__lambda8, Result).MapResult", %"std.getopt.handleOption!(string[]*).handleOption.MapResult!(__lambda8, Result).MapResult"* %p_arg, i32 0, i32 1 * * * * * * * * * * * * * * * * * Building type: const(void*)* * * * * * * * * * * * * * * * * Casting from 'const(void*)*' to 'const(void*)' * * * * * * * * * * * * * * * * * src: %10 = getelementptr %"std.getopt.handleOption!(string[]*).handleOption.MapResult!(__lambda8, Result).MapResult", %"std.getopt.handleOption!(string[]*).handleOption.MapResult!(__lambda8, Result).MapResult"* %p_arg, i32 0, i32 1 * * * * * * * * * * * * * * * * * to type: i8* * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * lhs: %h = alloca i64, align 8 * * * * * * * * * * * * rhs: %14 = add i64 %13, %12 * * * * * * ReturnStatement::toIR(): * * * * * * * VarExp::toElem: h @ ulong * * * * * * * * DtoSymbolAddress ('h' of type 'ulong') * * * * * * * * * a normal variable * * * * * * * return value is '0x12f151b8' * TemplateInstance::codegen: 'std.getopt.getoptImpl!(string, ushort*, string, bool*, string, bool*, string, bool*, string, bool*, string, bool*, string, bool*, string, string*, string, bool*, string, bool*, string, bool*, string, string*)' * * DtoDefineFunction(std.getopt.getoptImpl!(string, ushort*, string, bool*, string, bool*, string, bool*, string, bool*, string, bool*, string, bool*, string, string*, string, bool*, string, bool*, string, bool*, string, string*).getoptImpl): /usr/include/dlang/ldc/std/getopt.d(526) * * * Doing function body for: getoptImpl * * * DtoCreateNestedContext for getoptImpl * * * * DtoCreateNestedContextType for std.getopt.getoptImpl!(string, ushort*, string, bool*, string, bool*, string, bool*, string, bool*, string, bool*, string, bool*, string, string*, string, bool*, string, bool*, string, bool*, string, string*).getoptImpl * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(528) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(542) * * * * * * DeclarationExp::toElem: string option = to(_param_3); | T=void * * * * * * * DtoDeclarationExp: option * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = string) * * * * * * * * * llvm value for decl: %option = alloca { i64, i8* }, align 8 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: option = to(_param_3) | (string)(string = string) * * * * * * * * * * VarExp::toElem: option @ string * * * * * * * * * * * DtoSymbolAddress ('option' of type 'string') * * * * * * * * * * * * a normal variable * * * * * * * * * * CallExp::toElem: to(_param_3) @ string * * * * * * * * * * * VarExp::toElem: to @ pure nothrow @nogc @safe string(string _param_0) * * * * * * * * * * * * DtoSymbolAddress ('to' of type 'pure nothrow @nogc @safe string(string _param_0)') * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * Function type: pure nothrow @nogc @safe string(string _param_0) * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * VarExp::toElem: _param_3 @ string * * * * * * * * * * * * * * DtoSymbolAddress ('_param_3' of type 'string') * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * type: string * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * SetArray * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(543) * * * * * * DeclarationExp::toElem: Option optionHelp = splitAndGet(option); | T=void * * * * * * * DtoDeclarationExp: optionHelp * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = Option) * * * * * * * * * VarExp::toElem: splitAndGet @ pure nothrow @trusted Option(string opt) * * * * * * * * * * DtoSymbolAddress ('splitAndGet' of type 'pure nothrow @trusted Option(string opt)') * * * * * * * * * * * FuncDeclaration * * * * * * * * * DtoCallFunction() * * * * * * * * * * doing normal arguments * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * %optionHelp = alloca %std.getopt.Option, align 8 * * * * * * * * * * Function type: pure nothrow @trusted Option(string opt) * * * * * * * * * * DtoArgument * * * * * * * * * * * VarExp::toElem: option @ string * * * * * * * * * * * * DtoSymbolAddress ('option' of type 'string') * * * * * * * * * * * * * a normal variable * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(544) * * * * * * AssignExp::toElem: optionHelp.required = cfg.required() | (bool)(bool = bool) * * * * * * * DotVarExp::toElem: optionHelp.required @ bool * * * * * * * * VarExp::toElem: optionHelp @ Option * * * * * * * * * DtoSymbolAddress ('optionHelp' of type 'Option') * * * * * * * * * * a normal variable * * * * * * * * Indexing aggregate field std.getopt.Option.required: * * * * * * * * * Value: %6 = getelementptr %std.getopt.Option, %std.getopt.Option* %optionHelp, i32 0, i32 3 * * * * * * * CallExp::toElem: cfg.required() @ bool * * * * * * * * DotVarExp::toElem: cfg.required @ const pure nothrow @nogc @property @safe bool() * * * * * * * * * VarExp::toElem: cfg @ configuration * * * * * * * * * * DtoSymbolAddress ('cfg' of type 'configuration') * * * * * * * * * * * function param * * * * * * * * * * * type: configuration * * * * * * * * DtoCallFunction() * * * * * * * * * doing normal arguments * * * * * * * * * Arguments so far: (1) * * * * * * * * * * %std.getopt.configuration* %cfg_arg * * * * * * * * * Function type: const pure nothrow @nogc @property @safe bool() * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * DtoAssign() * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(554) * * * * * * DeclarationExp::toElem: ushort* receiver = _param_4; | T=void * * * * * * * DtoDeclarationExp: receiver * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = ushort*) * * * * * * * * * llvm value for decl: %receiver = alloca i16*, align 8 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: receiver = _param_4 | (ushort*)(ushort* = ushort*) * * * * * * * * * * VarExp::toElem: receiver @ ushort* * * * * * * * * * * * DtoSymbolAddress ('receiver' of type 'ushort*') * * * * * * * * * * * * a normal variable * * * * * * * * * * VarExp::toElem: _param_4 @ ushort* * * * * * * * * * * * DtoSymbolAddress ('_param_4' of type 'ushort*') * * * * * * * * * * * * function param * * * * * * * * * * * * type: ushort* * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %receiver = alloca i16*, align 8 * * * * * * * * * * * rhs: %9 = load i16*, i16** %_param_4 * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(555) * * * * * * DeclarationExp::toElem: immutable immutable(int) lowSliceIdx = 2; | T=void * * * * * * * DtoDeclarationExp: lowSliceIdx * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = immutable(int)) * * * * * * * * * llvm value for decl: %lowSliceIdx = alloca i32, align 4 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: lowSliceIdx = 2 | (immutable(int))(immutable(int) = immutable(int)) * * * * * * * * * * VarExp::toElem: lowSliceIdx @ immutable(int) * * * * * * * * * * * DtoSymbolAddress ('lowSliceIdx' of type 'immutable(int)') * * * * * * * * * * * * a normal variable * * * * * * * * * * IntegerExp::toElem: 2 @ immutable(int) * * * * * * * * * * * IntegerExp::toConstElem: 2 @ immutable(int) * * * * * * * * * * * * value = i32 2 * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %lowSliceIdx = alloca i32, align 4 * * * * * * * * * * * rhs: i32 2 * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(558) * * * * * * CatAssignExp::toElem: rslt.options ~= optionHelp @ Option[] * * * * * * * DotVarExp::toElem: rslt.options @ Option[] * * * * * * * * VarExp::toElem: rslt @ GetoptResult * * * * * * * * * DtoSymbolAddress ('rslt' of type 'GetoptResult') * * * * * * * * * * function param * * * * * * * * * * type: GetoptResult * * * * * * * * Indexing aggregate field std.getopt.GetoptResult.options: * * * * * * * * * Value: %10 = getelementptr %std.getopt.GetoptResult, %std.getopt.GetoptResult* %rslt_arg, i32 0, i32 2 * * * * * * * DtoCatAssignElement * * * * * * * * DtoArrayLen * * * * * * * * VarExp::toElem: optionHelp @ Option * * * * * * * * * DtoSymbolAddress ('optionHelp' of type 'Option') * * * * * * * * * * a normal variable * * * * * * * * DtoTypeInfoOf(type = 'Option[]', base='1') * * * * * * * * * Type::getTypeInfo(): Option[] * * * * * * * * * TypeInfoDeclaration::codegen(typeid(Option[])) * * * * * * * * DtoArrayPtr * * * * * * * * DtoAssign() * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(560) * * * * * * DeclarationExp::toElem: bool incremental = false; | T=void * * * * * * * DtoDeclarationExp: incremental * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = bool) * * * * * * * * * llvm value for decl: %incremental = alloca i8, align 1 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: incremental = false | (bool)(bool = bool) * * * * * * * * * * VarExp::toElem: incremental @ bool * * * * * * * * * * * DtoSymbolAddress ('incremental' of type 'bool') * * * * * * * * * * * * a normal variable * * * * * * * * * * IntegerExp::toElem: false @ bool * * * * * * * * * * * IntegerExp::toConstElem: false @ bool * * * * * * * * * * * * value = i1 false * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(562) * * * * * * AndAndExp::toElem: option.length && cast(int)option[__dollar - 1LU] == 43 @ bool * * * * * * * ArrayLengthExp::toElem: option.length @ ulong * * * * * * * * VarExp::toElem: option @ string * * * * * * * * * DtoSymbolAddress ('option' of type 'string') * * * * * * * * * * a normal variable * * * * * * * * DtoArrayLen * * * * * * * Casting from 'ulong' to 'bool' * * * * * * * EqualExp::toElem: cast(int)option[__dollar - 1LU] == 43 @ bool * * * * * * * * CastExp::toElem: cast(int)option[__dollar - 1LU] @ int * * * * * * * * * IndexExp::toElem: option[__dollar - 1LU] @ immutable(char) * * * * * * * * * * VarExp::toElem: option @ string * * * * * * * * * * * DtoSymbolAddress ('option' of type 'string') * * * * * * * * * * * * a normal variable * * * * * * * * * * MinExp::toElem: __dollar - 1LU @ ulong * * * * * * * * * * * VarExp::toElem: __dollar @ ulong * * * * * * * * * * * * DtoSymbolAddress ('__dollar' of type 'ulong') * * * * * * * * * * * * * Id::dollar * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * DtoArrayPtr * * * * * * * * * Casting from 'immutable(char)' to 'int' * * * * * * * * * * cast to: i32 * * * * * * * * IntegerExp::toElem: 43 @ int * * * * * * * * * IntegerExp::toConstElem: 43 @ int * * * * * * * * * * value = i32 43 * * * * * * * * integral or pointer or interface * * * * * * * * lv: %28 = zext i8 %27 to i32 * * * * * * * * rv: i32 43 * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(563) * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(563) * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(564) * * * * * * * * * AssignExp::toElem: option = option[0..__dollar - 1LU] | (string)(string = string) * * * * * * * * * * VarExp::toElem: option @ string * * * * * * * * * * * DtoSymbolAddress ('option' of type 'string') * * * * * * * * * * * * a normal variable * * * * * * * * * * SliceExp::toElem: option[0..__dollar - 1LU] @ string * * * * * * * * * * * VarExp::toElem: option @ string * * * * * * * * * * * * DtoSymbolAddress ('option' of type 'string') * * * * * * * * * * * * * a normal variable * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * MinExp::toElem: __dollar - 1LU @ ulong * * * * * * * * * * * * VarExp::toElem: __dollar @ ulong * * * * * * * * * * * * * DtoSymbolAddress ('__dollar' of type 'ulong') * * * * * * * * * * * * * * Id::dollar * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * DtoAssign() * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * SetArray * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(565) * * * * * * * * * AssignExp::toElem: incremental = true | (bool)(bool = bool) * * * * * * * * * * VarExp::toElem: incremental @ bool * * * * * * * * * * * DtoSymbolAddress ('incremental' of type 'bool') * * * * * * * * * * * * a normal variable * * * * * * * * * * IntegerExp::toElem: true @ bool * * * * * * * * * * * IntegerExp::toConstElem: true @ bool * * * * * * * * * * * * value = i1 true * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(568) * * * * * * DeclarationExp::toElem: bool optWasHandled = handleOption(option, receiver, args, cfg, incremental); | T=void * * * * * * * DtoDeclarationExp: optWasHandled * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = bool) * * * * * * * * * llvm value for decl: %optWasHandled = alloca i8, align 1 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: optWasHandled = handleOption(option, receiver, args, cfg, incremental) | (bool)(bool = bool) * * * * * * * * * * VarExp::toElem: optWasHandled @ bool * * * * * * * * * * * DtoSymbolAddress ('optWasHandled' of type 'bool') * * * * * * * * * * * * a normal variable * * * * * * * * * * CallExp::toElem: handleOption(option, receiver, args, cfg, incremental) @ bool * * * * * * * * * * * VarExp::toElem: handleOption @ @system bool(string option, ushort* receiver, ref string[] args, ref configuration cfg, bool incremental) * * * * * * * * * * * * DtoSymbolAddress ('handleOption' of type '@system bool(string option, ushort* receiver, ref string[] args, ref configuration cfg, bool incremental)') * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * DtoFunctionType(@system bool(string option, ushort* receiver, ref string[] args, ref configuration cfg, bool incremental)) * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * Final function type: i1 (i1, %std.getopt.configuration*, { i64, { i64, i8* }* }*, i16*, { i64, i8* }) * * * * * * * * * * * * * DtoResolveFunction(std.getopt.handleOption!(ushort*).handleOption): /usr/include/dlang/ldc/std/getopt.d(621) * * * * * * * * * * * * * * DtoDeclareFunction(std.getopt.handleOption!(ushort*).handleOption): /usr/include/dlang/ldc/std/getopt.d(621) * * * * * * * * * * * * * * * DtoFunctionType(@system bool(string option, ushort* receiver, ref string[] args, ref configuration cfg, bool incremental)) * * * * * * * * * * * * * * * func = declare i1 @_D3std6getopt21__T12handleOptionTPtZ12handleOptionFAyaPtKAAyaKS3std6getopt13configurationbZb(i1, %std.getopt.configuration*, { i64, { i64, i8* }* }*, i16*, { i64, i8* }) * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * Building type: @system bool(string option, ushort* receiver, ref string[] args, ref configuration cfg, bool incremental) * * * * * * * * * * * * * DtoFunctionType(@system bool(string option, ushort* receiver, ref string[] args, ref configuration cfg, bool incremental)) * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * Final function type: i1 (i1, %std.getopt.configuration*, { i64, { i64, i8* }* }*, i16*, { i64, i8* }) * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * Function type: @system bool(string option, ushort* receiver, ref string[] args, ref configuration cfg, bool incremental) * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * VarExp::toElem: option @ string * * * * * * * * * * * * * * DtoSymbolAddress ('option' of type 'string') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * VarExp::toElem: receiver @ ushort* * * * * * * * * * * * * * * DtoSymbolAddress ('receiver' of type 'ushort*') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * VarExp::toElem: args @ string[] * * * * * * * * * * * * * * DtoSymbolAddress ('args' of type 'string[]') * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * type: string[] * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * VarExp::toElem: cfg @ configuration * * * * * * * * * * * * * * DtoSymbolAddress ('cfg' of type 'configuration') * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * type: configuration * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * VarExp::toElem: incremental @ bool * * * * * * * * * * * * * * DtoSymbolAddress ('incremental' of type 'bool') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(570) * * * * * * AndAndExp::toElem: cfg.required() && !optWasHandled @ bool * * * * * * * CallExp::toElem: cfg.required() @ bool * * * * * * * * DotVarExp::toElem: cfg.required @ const pure nothrow @nogc @property @safe bool() * * * * * * * * * VarExp::toElem: cfg @ configuration * * * * * * * * * * DtoSymbolAddress ('cfg' of type 'configuration') * * * * * * * * * * * function param * * * * * * * * * * * type: configuration * * * * * * * * DtoCallFunction() * * * * * * * * * doing normal arguments * * * * * * * * * Arguments so far: (1) * * * * * * * * * * %std.getopt.configuration* %cfg_arg * * * * * * * * * Function type: const pure nothrow @nogc @property @safe bool() * * * * * * * NotExp::toElem: !optWasHandled @ bool * * * * * * * * VarExp::toElem: optWasHandled @ bool * * * * * * * * * DtoSymbolAddress ('optWasHandled' of type 'bool') * * * * * * * * * * a normal variable * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(571) * * * * * * * ThrowStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(572) * * * * * * * * NewExp::toElem: new GetOptException("Required option " ~ option ~ "was not supplied", "/usr/include/dlang/ldc/std/getopt.d", 572LU) @ std.getopt.GetOptException * * * * * * * * * new class * * * * * * * * * Calling constructor * * * * * * * * * DtoCallFunction() * * * * * * * * * * doing normal arguments * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * %.newclass_gc = bitcast %object.Object* %.newclass_gc_alloc to %std.getopt.GetOptException* * * * * * * * * * * Function type: pure nothrow @safe GetOptException(string msg, string file = __FILE__, ulong line = cast(ulong)__LINE__) * * * * * * * * * * DtoArgument * * * * * * * * * * * CatExp::toElem: "Required option " ~ option ~ "was not supplied" @ string * * * * * * * * * * * * DtoCatAssignArray * * * * * * * * * * * * * StringExp::toElem: "was not supplied" @ string * * * * * * * * * * * * * VarExp::toElem: option @ string * * * * * * * * * * * * * * DtoSymbolAddress ('option' of type 'string') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * StringExp::toElem: "Required option " @ string * * * * * * * * * * * * * DtoTypeInfoOf(type = 'string', base='1') * * * * * * * * * * * * * * Type::getTypeInfo(): string * * * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(string)) * * * * * * * * * * DtoArgument * * * * * * * * * * * StringExp::toElem: "/usr/include/dlang/ldc/std/getopt.d" @ string * * * * * * * * * * DtoArgument * * * * * * * * * * * IntegerExp::toElem: 572LU @ ulong * * * * * * * * * * * * IntegerExp::toConstElem: 572LU @ ulong * * * * * * * * * * * * * value = i64 572 * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(575) * * * * * * CallExp::toElem: cfg.required(false) @ void * * * * * * * DotVarExp::toElem: cfg.required @ pure nothrow @nogc @property @safe void(bool v) * * * * * * * * VarExp::toElem: cfg @ configuration * * * * * * * * * DtoSymbolAddress ('cfg' of type 'configuration') * * * * * * * * * * function param * * * * * * * * * * type: configuration * * * * * * * DtoCallFunction() * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (1) * * * * * * * * * %std.getopt.configuration* %cfg_arg * * * * * * * * Function type: pure nothrow @nogc @property @safe void(bool v) * * * * * * * * DtoArgument * * * * * * * * * IntegerExp::toElem: false @ bool * * * * * * * * * * IntegerExp::toConstElem: false @ bool * * * * * * * * * * * value = i1 false * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(577) * * * * * * CallExp::toElem: getoptImpl(args, cfg, rslt, _param_5, _param_6, _param_7, _param_8, _param_9, _param_10, _param_11, _param_12, _param_13, _param_14, _param_15, _param_16, _param_17, _param_18, _param_19, _param_20, _param_21, _param_22, _param_23, _param_24, _param_25, _param_26) @ void * * * * * * * VarExp::toElem: getoptImpl @ @system void(ref string[] args, ref configuration cfg, ref GetoptResult rslt, string _param_3, bool* _param_4, string _param_5, bool* _param_6, string _param_7, bool* _param_8, string _param_9, bool* _param_10, string _param_11, bool* _param_12, string _param_13, bool* _param_14, string _param_15, string* _param_16, string _param_17, bool* _param_18, string _param_19, bool* _param_20, string _param_21, bool* _param_22, string _param_23, string* _param_24) * * * * * * * * DtoSymbolAddress ('getoptImpl' of type '@system void(ref string[] args, ref configuration cfg, ref GetoptResult rslt, string _param_3, bool* _param_4, string _param_5, bool* _param_6, string _param_7, bool* _param_8, string _param_9, bool* _param_10, string _param_11, bool* _param_12, string _param_13, bool* _param_14, string _param_15, string* _param_16, string _param_17, bool* _param_18, string _param_19, bool* _param_20, string _param_21, bool* _param_22, string _param_23, string* _param_24)') * * * * * * * * * FuncDeclaration * * * * * * * * * DtoFunctionType(@system void(ref string[] args, ref configuration cfg, ref GetoptResult rslt, string _param_3, bool* _param_4, string _param_5, bool* _param_6, string _param_7, bool* _param_8, string _param_9, bool* _param_10, string _param_11, bool* _param_12, string _param_13, bool* _param_14, string _param_15, string* _param_16, string _param_17, bool* _param_18, string _param_19, bool* _param_20, string _param_21, bool* _param_22, string _param_23, string* _param_24)) * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: void ({ i64, i8* }*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, { i64, i8* }*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, %std.getopt.GetoptResult*, %std.getopt.configuration*, { i64, { i64, i8* }* }*) * * * * * * * * * DtoResolveFunction(std.getopt.getoptImpl!(string, bool*, string, bool*, string, bool*, string, bool*, string, bool*, string, bool*, string, string*, string, bool*, string, bool*, string, bool*, string, string*).getoptImpl): /usr/include/dlang/ldc/std/getopt.d(526) * * * * * * * * * * DtoDeclareFunction(std.getopt.getoptImpl!(string, bool*, string, bool*, string, bool*, string, bool*, string, bool*, string, bool*, string, string*, string, bool*, string, bool*, string, bool*, string, string*).getoptImpl): /usr/include/dlang/ldc/std/getopt.d(526) * * * * * * * * * * * DtoFunctionType(@system void(ref string[] args, ref configuration cfg, ref GetoptResult rslt, string _param_3, bool* _param_4, string _param_5, bool* _param_6, string _param_7, bool* _param_8, string _param_9, bool* _param_10, string _param_11, bool* _param_12, string _param_13, bool* _param_14, string _param_15, string* _param_16, string _param_17, bool* _param_18, string _param_19, bool* _param_20, string _param_21, bool* _param_22, string _param_23, string* _param_24)) * * * * * * * * * * * func = declare void @_D3std6getopt97__T10getoptImplTAyaTPbTAyaTPbTAyaTPbTAyaTPbTAyaTPbTAyaTPbTAyaTPAyaTAyaTPbTAyaTPbTAyaTPbTAyaTPAyaZ10getoptImplFKAAyaKS3std6getopt13configurationKS3std6getopt12GetoptResultAyaPbAyaPbAyaPbAyaPbAyaPbAyaPbAyaPAyaAyaPbAyaPbAyaPbAyaPAyaZv({ i64, i8* }*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, { i64, i8* }*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, %std.getopt.GetoptResult*, %std.getopt.configuration*, { i64, { i64, i8* }* }*) * * * * * * * DtoCallFunction() * * * * * * * * Building type: @system void(ref string[] args, ref configuration cfg, ref GetoptResult rslt, string _param_3, bool* _param_4, string _param_5, bool* _param_6, string _param_7, bool* _param_8, string _param_9, bool* _param_10, string _param_11, bool* _param_12, string _param_13, bool* _param_14, string _param_15, string* _param_16, string _param_17, bool* _param_18, string _param_19, bool* _param_20, string _param_21, bool* _param_22, string _param_23, string* _param_24) * * * * * * * * * DtoFunctionType(@system void(ref string[] args, ref configuration cfg, ref GetoptResult rslt, string _param_3, bool* _param_4, string _param_5, bool* _param_6, string _param_7, bool* _param_8, string _param_9, bool* _param_10, string _param_11, bool* _param_12, string _param_13, bool* _param_14, string _param_15, string* _param_16, string _param_17, bool* _param_18, string _param_19, bool* _param_20, string _param_21, bool* _param_22, string _param_23, string* _param_24)) * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: void ({ i64, i8* }*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, { i64, i8* }*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, %std.getopt.GetoptResult*, %std.getopt.configuration*, { i64, { i64, i8* }* }*) * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (0) * * * * * * * * Function type: @system void(ref string[] args, ref configuration cfg, ref GetoptResult rslt, string _param_3, bool* _param_4, string _param_5, bool* _param_6, string _param_7, bool* _param_8, string _param_9, bool* _param_10, string _param_11, bool* _param_12, string _param_13, bool* _param_14, string _param_15, string* _param_16, string _param_17, bool* _param_18, string _param_19, bool* _param_20, string _param_21, bool* _param_22, string _param_23, string* _param_24) * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: args @ string[] * * * * * * * * * * DtoSymbolAddress ('args' of type 'string[]') * * * * * * * * * * * function param * * * * * * * * * * * type: string[] * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: cfg @ configuration * * * * * * * * * * DtoSymbolAddress ('cfg' of type 'configuration') * * * * * * * * * * * function param * * * * * * * * * * * type: configuration * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: rslt @ GetoptResult * * * * * * * * * * DtoSymbolAddress ('rslt' of type 'GetoptResult') * * * * * * * * * * * function param * * * * * * * * * * * type: GetoptResult * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_5 @ string * * * * * * * * * * DtoSymbolAddress ('_param_5' of type 'string') * * * * * * * * * * * function param * * * * * * * * * * * type: string * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_6 @ bool* * * * * * * * * * * DtoSymbolAddress ('_param_6' of type 'bool*') * * * * * * * * * * * function param * * * * * * * * * * * type: bool* * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_7 @ string * * * * * * * * * * DtoSymbolAddress ('_param_7' of type 'string') * * * * * * * * * * * function param * * * * * * * * * * * type: string * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_8 @ bool* * * * * * * * * * * DtoSymbolAddress ('_param_8' of type 'bool*') * * * * * * * * * * * function param * * * * * * * * * * * type: bool* * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_9 @ string * * * * * * * * * * DtoSymbolAddress ('_param_9' of type 'string') * * * * * * * * * * * function param * * * * * * * * * * * type: string * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_10 @ bool* * * * * * * * * * * DtoSymbolAddress ('_param_10' of type 'bool*') * * * * * * * * * * * function param * * * * * * * * * * * type: bool* * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_11 @ string * * * * * * * * * * DtoSymbolAddress ('_param_11' of type 'string') * * * * * * * * * * * function param * * * * * * * * * * * type: string * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_12 @ bool* * * * * * * * * * * DtoSymbolAddress ('_param_12' of type 'bool*') * * * * * * * * * * * function param * * * * * * * * * * * type: bool* * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_13 @ string * * * * * * * * * * DtoSymbolAddress ('_param_13' of type 'string') * * * * * * * * * * * function param * * * * * * * * * * * type: string * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_14 @ bool* * * * * * * * * * * DtoSymbolAddress ('_param_14' of type 'bool*') * * * * * * * * * * * function param * * * * * * * * * * * type: bool* * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_15 @ string * * * * * * * * * * DtoSymbolAddress ('_param_15' of type 'string') * * * * * * * * * * * function param * * * * * * * * * * * type: string * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_16 @ bool* * * * * * * * * * * DtoSymbolAddress ('_param_16' of type 'bool*') * * * * * * * * * * * function param * * * * * * * * * * * type: bool* * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_17 @ string * * * * * * * * * * DtoSymbolAddress ('_param_17' of type 'string') * * * * * * * * * * * function param * * * * * * * * * * * type: string * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_18 @ string* * * * * * * * * * * DtoSymbolAddress ('_param_18' of type 'string*') * * * * * * * * * * * function param * * * * * * * * * * * type: string* * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_19 @ string * * * * * * * * * * DtoSymbolAddress ('_param_19' of type 'string') * * * * * * * * * * * function param * * * * * * * * * * * type: string * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_20 @ bool* * * * * * * * * * * DtoSymbolAddress ('_param_20' of type 'bool*') * * * * * * * * * * * function param * * * * * * * * * * * type: bool* * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_21 @ string * * * * * * * * * * DtoSymbolAddress ('_param_21' of type 'string') * * * * * * * * * * * function param * * * * * * * * * * * type: string * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_22 @ bool* * * * * * * * * * * DtoSymbolAddress ('_param_22' of type 'bool*') * * * * * * * * * * * function param * * * * * * * * * * * type: bool* * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_23 @ string * * * * * * * * * * DtoSymbolAddress ('_param_23' of type 'string') * * * * * * * * * * * function param * * * * * * * * * * * type: string * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_24 @ bool* * * * * * * * * * * DtoSymbolAddress ('_param_24' of type 'bool*') * * * * * * * * * * * function param * * * * * * * * * * * type: bool* * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_25 @ string * * * * * * * * * * DtoSymbolAddress ('_param_25' of type 'string') * * * * * * * * * * * function param * * * * * * * * * * * type: string * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_26 @ string* * * * * * * * * * * DtoSymbolAddress ('_param_26' of type 'string*') * * * * * * * * * * * function param * * * * * * * * * * * type: string* * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(577) * TemplateInstance::codegen: 'std.getopt.handleOption!(ushort*)' * * DtoDefineFunction(std.getopt.handleOption!(ushort*).handleOption): /usr/include/dlang/ldc/std/getopt.d(621) * * * Doing function body for: handleOption * * * DtoCreateNestedContext for handleOption * * * * DtoCreateNestedContextType for std.getopt.handleOption!(ushort*).handleOption * * * * * has nested frame * * * * * Function handleOption has depth 0 * * * * * Nested var 'expanded' of type { i64, { i64, i8* }* } * * * * * Nested var 'a' of type { i64, i8* } * * * * * frameType = %nest.handleOption.12 = type { { i64, { i64, i8* }* }, { i64, i8* } } * * * * nested var: expanded * * * * nested var: a * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(623) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(628) * * * * * * DeclarationExp::toElem: bool ret = false; | T=void * * * * * * * DtoDeclarationExp: ret * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = bool) * * * * * * * * * llvm value for decl: %ret = alloca i8, align 1 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: ret = false | (bool)(bool = bool) * * * * * * * * * * VarExp::toElem: ret @ bool * * * * * * * * * * * DtoSymbolAddress ('ret' of type 'bool') * * * * * * * * * * * * a normal variable * * * * * * * * * * IntegerExp::toElem: false @ bool * * * * * * * * * * * IntegerExp::toConstElem: false @ bool * * * * * * * * * * * * value = i1 false * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(629) * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(629) * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(629) * * * * * * * * DeclarationExp::toElem: ulong i = 1LU; | T=void * * * * * * * * * DtoDeclarationExp: i * * * * * * * * * * VarDeclaration * * * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * * * llvm value for decl: %i = alloca i64, align 8 * * * * * * * * * * * expression initializer * * * * * * * * * * * AssignExp::toElem: i = 1LU | (ulong)(ulong = ulong) * * * * * * * * * * * * VarExp::toElem: i @ ulong * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'ulong') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * lhs: %i = alloca i64, align 8 * * * * * * * * * * * * * rhs: i64 1 * * * * * * * ForStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(629) * * * * * * * * CmpExp::toElem: i < args.length @ bool * * * * * * * * * VarExp::toElem: i @ ulong * * * * * * * * * * DtoSymbolAddress ('i' of type 'ulong') * * * * * * * * * * * a normal variable * * * * * * * * * ArrayLengthExp::toElem: args.length @ ulong * * * * * * * * * * VarExp::toElem: args @ string[] * * * * * * * * * * * DtoSymbolAddress ('args' of type 'string[]') * * * * * * * * * * * * function param * * * * * * * * * * * * type: string[] * * * * * * * * * * DtoArrayLen * * * * * * * * * type 1: %3 = load i64, i64* %i * * * * * * * * * type 2: %.len = load i64, i64* %2 * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(630) * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(630) * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(631) * * * * * * * * * * * DeclarationExp::toElem: string a = args[i]; | T=void * * * * * * * * * * * * DtoDeclarationExp: a * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * DtoVarDeclaration(vdtype = string) * * * * * * * * * * * * * * has nestedref set (referenced by nested function/delegate) * * * * * * * * * * * * * * llvm value for decl: %a = getelementptr %nest.handleOption.12, %nest.handleOption.12* %.frame, i32 0, i32 1 * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * AssignExp::toElem: a = args[i] | (string)(string = string) * * * * * * * * * * * * * * * VarExp::toElem: a @ string * * * * * * * * * * * * * * * * DtoSymbolAddress ('a' of type 'string') * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * DtoNestedVariable for a @ /usr/include/dlang/ldc/std/getopt.d(631) * * * * * * * * * * * * * * * IndexExp::toElem: args[i] @ string * * * * * * * * * * * * * * * * VarExp::toElem: args @ string[] * * * * * * * * * * * * * * * * * DtoSymbolAddress ('args' of type 'string[]') * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * type: string[] * * * * * * * * * * * * * * * * VarExp::toElem: i @ ulong * * * * * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'ulong') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * SetArray * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(632) * * * * * * * * * * * AndAndExp::toElem: endOfOptions.length && a == endOfOptions @ bool * * * * * * * * * * * * ArrayLengthExp::toElem: endOfOptions.length @ ulong * * * * * * * * * * * * * VarExp::toElem: endOfOptions @ string * * * * * * * * * * * * * * DtoSymbolAddress ('endOfOptions' of type 'string') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * DtoResolveVariable(std.getopt.endOfOptions) * * * * * * * * * * * * * * * * data segment * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * Casting from 'ulong' to 'bool' * * * * * * * * * * * * EqualExp::toElem: a == endOfOptions @ bool * * * * * * * * * * * * * VarExp::toElem: a @ string * * * * * * * * * * * * * * DtoSymbolAddress ('a' of type 'string') * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * DtoNestedVariable for a @ /usr/include/dlang/ldc/std/getopt.d(632) * * * * * * * * * * * * * VarExp::toElem: endOfOptions @ string * * * * * * * * * * * * * * DtoSymbolAddress ('endOfOptions' of type 'string') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * DtoResolveVariable(std.getopt.endOfOptions) * * * * * * * * * * * * * * * * data segment * * * * * * * * * * * * * static or dynamic array * * * * * * * * * * * * * comparing arrays * * * * * * * * * * * * * casting to dynamic arrays * * * * * * * * * * * * * DtoCastArray * * * * * * * * * * * * * * from array or sarray * * * * * * * * * * * * * * to array * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * isslice * * * * * * * * * * * * * DtoCastArray * * * * * * * * * * * * * * from array or sarray * * * * * * * * * * * * * * to array * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * isslice * * * * * * * * * * * * * DtoTypeInfoOf(type = 'string', base='1') * * * * * * * * * * * * * * Type::getTypeInfo(): string * * * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(string)) * * * * * * * * * * * BreakStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(632) * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(633) * * * * * * * * * * * AndAndExp::toElem: cfg.stopOnFirstNonOption() && (!a.length || cast(uint)cast(int)a[0] != cast(uint)optionChar) @ bool * * * * * * * * * * * * CallExp::toElem: cfg.stopOnFirstNonOption() @ bool * * * * * * * * * * * * * DotVarExp::toElem: cfg.stopOnFirstNonOption @ const pure nothrow @nogc @property @safe bool() * * * * * * * * * * * * * * VarExp::toElem: cfg @ configuration * * * * * * * * * * * * * * * DtoSymbolAddress ('cfg' of type 'configuration') * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * type: configuration * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * %std.getopt.configuration* %cfg_arg * * * * * * * * * * * * * * Function type: const pure nothrow @nogc @property @safe bool() * * * * * * * * * * * * OrOrExp::toElem: !a.length || cast(uint)cast(int)a[0] != cast(uint)optionChar @ bool * * * * * * * * * * * * * NotExp::toElem: !a.length @ bool * * * * * * * * * * * * * * ArrayLengthExp::toElem: a.length @ ulong * * * * * * * * * * * * * * * VarExp::toElem: a @ string * * * * * * * * * * * * * * * * DtoSymbolAddress ('a' of type 'string') * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * DtoNestedVariable for a @ /usr/include/dlang/ldc/std/getopt.d(633) * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * Casting from 'ulong' to 'bool' * * * * * * * * * * * * * EqualExp::toElem: cast(uint)cast(int)a[0] != cast(uint)optionChar @ bool * * * * * * * * * * * * * * CastExp::toElem: cast(uint)cast(int)a[0] @ uint * * * * * * * * * * * * * * * CastExp::toElem: cast(int)a[0] @ int * * * * * * * * * * * * * * * * IndexExp::toElem: a[0] @ immutable(char) * * * * * * * * * * * * * * * * * VarExp::toElem: a @ string * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('a' of type 'string') * * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * * DtoNestedVariable for a @ /usr/include/dlang/ldc/std/getopt.d(633) * * * * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * Casting from 'immutable(char)' to 'int' * * * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * * * * Casting from 'int' to 'uint' * * * * * * * * * * * * * * CastExp::toElem: cast(uint)optionChar @ uint * * * * * * * * * * * * * * * VarExp::toElem: optionChar @ dchar * * * * * * * * * * * * * * * * DtoSymbolAddress ('optionChar' of type 'dchar') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * DtoResolveVariable(std.getopt.optionChar) * * * * * * * * * * * * * * * * * * data segment * * * * * * * * * * * * * * * Casting from 'dchar' to 'uint' * * * * * * * * * * * * * * integral or pointer or interface * * * * * * * * * * * * * * lv: %33 = zext i8 %32 to i32 * * * * * * * * * * * * * * rv: %34 = load i32, i32* @_D3std6getopt10optionCharw * * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(634) * * * * * * * * * * * * BreakStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(636) * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(639) * * * * * * * * * * * AndAndExp::toElem: cfg.bundling() && a.length > 2LU && cast(uint)cast(int)a[0] == cast(uint)optionChar && cast(uint)cast(int)a[1] != cast(uint)optionChar @ bool * * * * * * * * * * * * AndAndExp::toElem: cfg.bundling() && a.length > 2LU && cast(uint)cast(int)a[0] == cast(uint)optionChar @ bool * * * * * * * * * * * * * AndAndExp::toElem: cfg.bundling() && a.length > 2LU @ bool * * * * * * * * * * * * * * CallExp::toElem: cfg.bundling() @ bool * * * * * * * * * * * * * * * DotVarExp::toElem: cfg.bundling @ const pure nothrow @nogc @property @safe bool() * * * * * * * * * * * * * * * * VarExp::toElem: cfg @ configuration * * * * * * * * * * * * * * * * * DtoSymbolAddress ('cfg' of type 'configuration') * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * type: configuration * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * %std.getopt.configuration* %cfg_arg * * * * * * * * * * * * * * * * Function type: const pure nothrow @nogc @property @safe bool() * * * * * * * * * * * * * * CmpExp::toElem: a.length > 2LU @ bool * * * * * * * * * * * * * * * ArrayLengthExp::toElem: a.length @ ulong * * * * * * * * * * * * * * * * VarExp::toElem: a @ string * * * * * * * * * * * * * * * * * DtoSymbolAddress ('a' of type 'string') * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * DtoNestedVariable for a @ /usr/include/dlang/ldc/std/getopt.d(639) * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * IntegerExp::toElem: 2LU @ ulong * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 2LU @ ulong * * * * * * * * * * * * * * * * * value = i64 2 * * * * * * * * * * * * * * * type 1: %.len18 = load i64, i64* %37 * * * * * * * * * * * * * * * type 2: i64 2 * * * * * * * * * * * * * EqualExp::toElem: cast(uint)cast(int)a[0] == cast(uint)optionChar @ bool * * * * * * * * * * * * * * CastExp::toElem: cast(uint)cast(int)a[0] @ uint * * * * * * * * * * * * * * * CastExp::toElem: cast(int)a[0] @ int * * * * * * * * * * * * * * * * IndexExp::toElem: a[0] @ immutable(char) * * * * * * * * * * * * * * * * * VarExp::toElem: a @ string * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('a' of type 'string') * * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * * DtoNestedVariable for a @ /usr/include/dlang/ldc/std/getopt.d(639) * * * * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * Casting from 'immutable(char)' to 'int' * * * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * * * * Casting from 'int' to 'uint' * * * * * * * * * * * * * * CastExp::toElem: cast(uint)optionChar @ uint * * * * * * * * * * * * * * * VarExp::toElem: optionChar @ dchar * * * * * * * * * * * * * * * * DtoSymbolAddress ('optionChar' of type 'dchar') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * DtoResolveVariable(std.getopt.optionChar) * * * * * * * * * * * * * * * * * * data segment * * * * * * * * * * * * * * * Casting from 'dchar' to 'uint' * * * * * * * * * * * * * * integral or pointer or interface * * * * * * * * * * * * * * lv: %42 = zext i8 %41 to i32 * * * * * * * * * * * * * * rv: %43 = load i32, i32* @_D3std6getopt10optionCharw * * * * * * * * * * * * EqualExp::toElem: cast(uint)cast(int)a[1] != cast(uint)optionChar @ bool * * * * * * * * * * * * * CastExp::toElem: cast(uint)cast(int)a[1] @ uint * * * * * * * * * * * * * * CastExp::toElem: cast(int)a[1] @ int * * * * * * * * * * * * * * * IndexExp::toElem: a[1] @ immutable(char) * * * * * * * * * * * * * * * * VarExp::toElem: a @ string * * * * * * * * * * * * * * * * * DtoSymbolAddress ('a' of type 'string') * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * DtoNestedVariable for a @ /usr/include/dlang/ldc/std/getopt.d(640) * * * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * Casting from 'immutable(char)' to 'int' * * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * * * Casting from 'int' to 'uint' * * * * * * * * * * * * * CastExp::toElem: cast(uint)optionChar @ uint * * * * * * * * * * * * * * VarExp::toElem: optionChar @ dchar * * * * * * * * * * * * * * * DtoSymbolAddress ('optionChar' of type 'dchar') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * DtoResolveVariable(std.getopt.optionChar) * * * * * * * * * * * * * * * * * data segment * * * * * * * * * * * * * * Casting from 'dchar' to 'uint' * * * * * * * * * * * * * integral or pointer or interface * * * * * * * * * * * * * lv: %48 = zext i8 %47 to i32 * * * * * * * * * * * * * rv: %49 = load i32, i32* @_D3std6getopt10optionCharw * * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(641) * * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(641) * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(642) * * * * * * * * * * * * * * DeclarationExp::toElem: string[] expanded = null; | T=void * * * * * * * * * * * * * * * DtoDeclarationExp: expanded * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = string[]) * * * * * * * * * * * * * * * * * has nestedref set (referenced by nested function/delegate) * * * * * * * * * * * * * * * * * llvm value for decl: %expanded = getelementptr %nest.handleOption.12, %nest.handleOption.12* %.frame, i32 0, i32 0 * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * AssignExp::toElem: expanded = null | (string[])(string[] = string[]) * * * * * * * * * * * * * * * * * * VarExp::toElem: expanded @ string[] * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('expanded' of type 'string[]') * * * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for expanded @ /usr/include/dlang/ldc/std/getopt.d(642) * * * * * * * * * * * * * * * * * * NullExp::toElem(type=string[]): null * * * * * * * * * * * * * * * * * * * NullExp::toConstElem(type=string[]): null * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * * * * * * DtoSetArrayToNull * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(643) * * * * * * * * * * * * * * CallExp::toElem: _aApplycd2(a[1..__dollar], delegate int(ref ulong __applyArg0, ref dchar __applyArg1) => 0) @ int * * * * * * * * * * * * * * * VarExp::toElem: _aApplycd2 @ extern (C) int(in string, int delegate(void*, void*)) * * * * * * * * * * * * * * * * DtoSymbolAddress ('_aApplycd2' of type 'extern (C) int(in string, int delegate(void*, void*))') * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * Function type: extern (C) int(in string, int delegate(void*, void*)) * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * SliceExp::toElem: a[1..__dollar] @ string * * * * * * * * * * * * * * * * * * VarExp::toElem: a @ string * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('a' of type 'string') * * * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for a @ /usr/include/dlang/ldc/std/getopt.d(643) * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * * * * * * VarExp::toElem: __dollar @ ulong * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__dollar' of type 'ulong') * * * * * * * * * * * * * * * * * * * * Id::dollar * * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * FuncExp::toElem: __foreachbody6 @ int delegate(void*, void*) * * * * * * * * * * * * * * * * * * nested * * * * * * * * * * * * * * * * * * kind = delegate * * * * * * * * * * * * * * * * * * DtoDefineFunction(std.getopt.handleOption!(ushort*).handleOption.__foreachbody6): /usr/include/dlang/ldc/std/getopt.d(643) * * * * * * * * * * * * * * * * * * * DtoFunctionType(@safe int(ref ulong __applyArg0, ref dchar __applyArg1)) * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * Final function type: i32 (i8*, i32*, i64*) * * * * * * * * * * * * * * * * * * * DtoResolveFunction(std.getopt.handleOption!(ushort*).handleOption.__foreachbody6): /usr/include/dlang/ldc/std/getopt.d(643) * * * * * * * * * * * * * * * * * * * * DtoDeclareFunction(std.getopt.handleOption!(ushort*).handleOption.__foreachbody6): /usr/include/dlang/ldc/std/getopt.d(643) * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(@safe int(ref ulong __applyArg0, ref dchar __applyArg1)) * * * * * * * * * * * * * * * * * * * * * func = declare i32 @_D3std6getopt21__T12handleOptionTPtZ12handleOptionFAyaPtKAAyaKS3std6getopt13configurationbZ14__foreachbody6MFNfKmKwZi(i8*, i32*, i64*) * * * * * * * * * * * * * * * * * * * Doing function body for: __foreachbody6 * * * * * * * * * * * * * * * * * * * DtoCreateNestedContext for __foreachbody6 * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for std.getopt.handleOption!(ushort*).handleOption.__foreachbody6 * * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for std.getopt.handleOption!(ushort*).handleOption * * * * * * * * * * * * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * * * * * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * * * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(643) * * * * * * * * * * * * * * * * * * * * * * ExpStatement::toIR(): * * * * * * * * * * * * * * * * * * * * * * * DeclarationExp::toElem: dchar c = __applyArg1; | T=void * * * * * * * * * * * * * * * * * * * * * * * * DtoDeclarationExp: c * * * * * * * * * * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = dchar) * * * * * * * * * * * * * * * * * * * * * * * * * * llvm value for decl: %c = alloca i32, align 4 * * * * * * * * * * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * * * * * * * * * * AssignExp::toElem: c = __applyArg1 | (dchar)(dchar = dchar) * * * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: c @ dchar * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('c' of type 'dchar') * * * * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: __applyArg1 @ dchar * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__applyArg1' of type 'dchar') * * * * * * * * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * * * * * * * * type: dchar * * * * * * * * * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * * * * * * * * * lhs: %c = alloca i32, align 4 * * * * * * * * * * * * * * * * * * * * * * * * * * * * rhs: %1 = load i32, i32* %__applyArg1_arg * * * * * * * * * * * * * * * * * * * * * * ExpStatement::toIR(): * * * * * * * * * * * * * * * * * * * * * * * DeclarationExp::toElem: ulong j = __applyArg0; | T=void * * * * * * * * * * * * * * * * * * * * * * * * DtoDeclarationExp: j * * * * * * * * * * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * * * * * * * * * * * * * * * * * * llvm value for decl: %j = alloca i64, align 8 * * * * * * * * * * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * * * * * * * * * * AssignExp::toElem: j = __applyArg0 | (ulong)(ulong = ulong) * * * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: j @ ulong * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('j' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: __applyArg0 @ ulong * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__applyArg0' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * * * * * * * * type: ulong * * * * * * * * * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * * * * * * * * * lhs: %j = alloca i64, align 8 * * * * * * * * * * * * * * * * * * * * * * * * * * * * rhs: %2 = load i64, i64* %__applyArg0_arg * * * * * * * * * * * * * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(647) * * * * * * * * * * * * * * * * * * * * * * * NotExp::toElem: !isAlpha(c) @ bool * * * * * * * * * * * * * * * * * * * * * * * * CallExp::toElem: isAlpha(c) @ bool * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: isAlpha @ pure nothrow @nogc @safe bool(dchar c) * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('isAlpha' of type 'pure nothrow @nogc @safe bool(dchar c)') * * * * * * * * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @safe bool(dchar c) * * * * * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: c @ dchar * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('c' of type 'dchar') * * * * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(648) * * * * * * * * * * * * * * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(648) * * * * * * * * * * * * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(649) * * * * * * * * * * * * * * * * * * * * * * * * * * CatAssignExp::toElem: expanded ~= a[j + 1LU..__dollar] @ string[] * * * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: expanded @ string[] * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('expanded' of type 'string[]') * * * * * * * * * * * * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for expanded @ /usr/include/dlang/ldc/std/getopt.d(649) * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for std.getopt.handleOption!(ushort*).handleOption * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Context: %7 = bitcast i8* %6 to %nest.handleOption.12* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * of type: %nest.handleOption.12 = type { { i64, { i64, i8* }* }, { i64, i8* } } * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Variable: expanded * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Function: __foreachbody6 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Addr: %expanded = getelementptr %nest.handleOption.12, %nest.handleOption.12* %7, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * of type: { i64, { i64, i8* }* }* * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoCatAssignElement * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * * * * * * * * * * * SliceExp::toElem: a[j + 1LU..__dollar] @ string * * * * * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: a @ string * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('a' of type 'string') * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for a @ /usr/include/dlang/ldc/std/getopt.d(649) * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for std.getopt.handleOption!(ushort*).handleOption * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Context: %10 = bitcast i8* %9 to %nest.handleOption.12* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * of type: %nest.handleOption.12 = type { { i64, { i64, i8* }* }, { i64, i8* } } * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Variable: a * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Function: __foreachbody6 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Addr: %a = getelementptr %nest.handleOption.12, %nest.handleOption.12* %10, i32 0, i32 1 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * of type: { i64, i8* }* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * * * * * * * * * * * * AddExp::toElem: j + 1LU @ ulong * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: j @ ulong * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('j' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: __dollar @ ulong * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__dollar' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Id::dollar * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoTypeInfoOf(type = 'string[]', base='1') * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Type::getTypeInfo(): string[] * * * * * * * * * * * * * * * * * * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(string[])) * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * SetArray * * * * * * * * * * * * * * * * * * * * * * * * * ReturnStatement::toIR(): * * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 1 @ int * * * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1 @ int * * * * * * * * * * * * * * * * * * * * * * * * * * * * value = i32 1 * * * * * * * * * * * * * * * * * * * * * * * * * * return value is '0x120e3000' * * * * * * * * * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(652) * * * * * * * * * * * * * * * * * * * * * * * CatAssignExp::toElem: expanded ~= text(optionChar, c) @ string[] * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: expanded @ string[] * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('expanded' of type 'string[]') * * * * * * * * * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for expanded @ /usr/include/dlang/ldc/std/getopt.d(652) * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for std.getopt.handleOption!(ushort*).handleOption * * * * * * * * * * * * * * * * * * * * * * * * * * * Context: %18 = bitcast i8* %17 to %nest.handleOption.12* * * * * * * * * * * * * * * * * * * * * * * * * * * * of type: %nest.handleOption.12 = type { { i64, { i64, i8* }* }, { i64, i8* } } * * * * * * * * * * * * * * * * * * * * * * * * * * * Variable: expanded * * * * * * * * * * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * * * * * * * * * * Function: __foreachbody6 * * * * * * * * * * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * * * * * * * * * * Addr: %expanded4 = getelementptr %nest.handleOption.12, %nest.handleOption.12* %18, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * * * * * * * * * of type: { i64, { i64, i8* }* }* * * * * * * * * * * * * * * * * * * * * * * * * DtoCatAssignElement * * * * * * * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * * * * * * * * CallExp::toElem: text(optionChar, c) @ string * * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: text @ pure @safe string(dchar _param_0, dchar _param_1) * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('text' of type 'pure @safe string(dchar _param_0, dchar _param_1)') * * * * * * * * * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * * * * * * * * * Function type: pure @safe string(dchar _param_0, dchar _param_1) * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: optionChar @ dchar * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('optionChar' of type 'dchar') * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoResolveVariable(std.getopt.optionChar) * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * data segment * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: c @ dchar * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('c' of type 'dchar') * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * * * DtoTypeInfoOf(type = 'string[]', base='1') * * * * * * * * * * * * * * * * * * * * * * * * * * Type::getTypeInfo(): string[] * * * * * * * * * * * * * * * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(string[])) * * * * * * * * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * * * * * * * * * * SetArray * * * * * * * * * * * * * * * * * * * * * ReturnStatement::toIR(): * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 0 @ int * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0 @ int * * * * * * * * * * * * * * * * * * * * * * * * value = i32 0 * * * * * * * * * * * * * * * * * * * * * * return value is '0x120e1350' * * * * * * * * * * * * * * * * * * Building type: int delegate(void*, void*) * * * * * * * * * * * * * * * * * * * DtoFunctionType(int(void*, void*)) * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * Final function type: i32 (i8*, i8*, i8*) * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(654) * * * * * * * * * * * * * * AssignExp::toElem: args = args[0..i] ~ expanded ~ args[i + 1LU..__dollar] | (string[])(string[] = string[]) * * * * * * * * * * * * * * * VarExp::toElem: args @ string[] * * * * * * * * * * * * * * * * DtoSymbolAddress ('args' of type 'string[]') * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * type: string[] * * * * * * * * * * * * * * * CatExp::toElem: args[0..i] ~ expanded ~ args[i + 1LU..__dollar] @ string[] * * * * * * * * * * * * * * * * DtoCatAssignArray * * * * * * * * * * * * * * * * * SliceExp::toElem: args[i + 1LU..__dollar] @ string[] * * * * * * * * * * * * * * * * * * VarExp::toElem: args @ string[] * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('args' of type 'string[]') * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * type: string[] * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * AddExp::toElem: i + 1LU @ ulong * * * * * * * * * * * * * * * * * * * VarExp::toElem: i @ ulong * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * * * * * * VarExp::toElem: __dollar @ ulong * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__dollar' of type 'ulong') * * * * * * * * * * * * * * * * * * * * Id::dollar * * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * * SetArray * * * * * * * * * * * * * * * * * VarExp::toElem: expanded @ string[] * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('expanded' of type 'string[]') * * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * * DtoNestedVariable for expanded @ /usr/include/dlang/ldc/std/getopt.d(654) * * * * * * * * * * * * * * * * * SliceExp::toElem: args[0..i] @ string[] * * * * * * * * * * * * * * * * * * VarExp::toElem: args @ string[] * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('args' of type 'string[]') * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * type: string[] * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * * * * * * VarExp::toElem: i @ ulong * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'ulong') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * * SetArray * * * * * * * * * * * * * * * * * DtoTypeInfoOf(type = 'string[]', base='1') * * * * * * * * * * * * * * * * * * Type::getTypeInfo(): string[] * * * * * * * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(string[])) * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * SetArray * * * * * * * * * * * * * ContinueStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(655) * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(658) * * * * * * * * * * * DeclarationExp::toElem: string val = null; | T=void * * * * * * * * * * * * DtoDeclarationExp: val * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * DtoVarDeclaration(vdtype = string) * * * * * * * * * * * * * * llvm value for decl: %val = alloca { i64, i8* }, align 8 * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * AssignExp::toElem: val = null | (string)(string = string) * * * * * * * * * * * * * * * VarExp::toElem: val @ string * * * * * * * * * * * * * * * * DtoSymbolAddress ('val' of type 'string') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * NullExp::toElem(type=string): null * * * * * * * * * * * * * * * * NullExp::toConstElem(type=string): null * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * * * DtoSetArrayToNull * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(659) * * * * * * * * * * * NotExp::toElem: !optMatch(a, option, val, cfg) @ bool * * * * * * * * * * * * CallExp::toElem: optMatch(a, option, val, cfg) @ bool * * * * * * * * * * * * * VarExp::toElem: optMatch @ bool(string arg, string optPattern, ref string value, configuration cfg) * * * * * * * * * * * * * * DtoSymbolAddress ('optMatch' of type 'bool(string arg, string optPattern, ref string value, configuration cfg)') * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * Function type: bool(string arg, string optPattern, ref string value, configuration cfg) * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * VarExp::toElem: a @ string * * * * * * * * * * * * * * * * DtoSymbolAddress ('a' of type 'string') * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * DtoNestedVariable for a @ /usr/include/dlang/ldc/std/getopt.d(659) * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * VarExp::toElem: option @ string * * * * * * * * * * * * * * * * DtoSymbolAddress ('option' of type 'string') * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * type: string * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * VarExp::toElem: val @ string * * * * * * * * * * * * * * * * DtoSymbolAddress ('val' of type 'string') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * VarExp::toElem: cfg @ configuration * * * * * * * * * * * * * * * * DtoSymbolAddress ('cfg' of type 'configuration') * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * type: configuration * * * * * * * * * * * * * * Loading struct type for function argument * * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(660) * * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(660) * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(661) * * * * * * * * * * * * * * AddAssignExp::toElem: i += 1LU @ ulong * * * * * * * * * * * * * * * Caching l-value of i += 1LU => i * * * * * * * * * * * * * * * * VarExp::toElem: i @ ulong * * * * * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'ulong') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * AddExp::toElem: i + 1LU @ ulong * * * * * * * * * * * * * * * * VarExp::toElem: i @ ulong * * * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * lhs: %i = alloca i64, align 8 * * * * * * * * * * * * * * * * rhs: %85 = add i64 %84, 1 * * * * * * * * * * * * * ContinueStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(662) * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(665) * * * * * * * * * * * AssignExp::toElem: ret = true | (bool)(bool = bool) * * * * * * * * * * * * VarExp::toElem: ret @ bool * * * * * * * * * * * * * DtoSymbolAddress ('ret' of type 'bool') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * IntegerExp::toElem: true @ bool * * * * * * * * * * * * * IntegerExp::toConstElem: true @ bool * * * * * * * * * * * * * * value = i1 true * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * DtoAssign() * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(670) * * * * * * * * * * * AssignExp::toElem: args = args[0..i] ~ args[i + 1LU..__dollar] | (string[])(string[] = string[]) * * * * * * * * * * * * VarExp::toElem: args @ string[] * * * * * * * * * * * * * DtoSymbolAddress ('args' of type 'string[]') * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * type: string[] * * * * * * * * * * * * CatExp::toElem: args[0..i] ~ args[i + 1LU..__dollar] @ string[] * * * * * * * * * * * * * DtoCatAssignArray * * * * * * * * * * * * * * DtoTypeInfoOf(type = 'string[]', base='1') * * * * * * * * * * * * * * * Type::getTypeInfo(): string[] * * * * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(string[])) * * * * * * * * * * * * * * SliceExp::toElem: args[0..i] @ string[] * * * * * * * * * * * * * * * VarExp::toElem: args @ string[] * * * * * * * * * * * * * * * * DtoSymbolAddress ('args' of type 'string[]') * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * type: string[] * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * * * VarExp::toElem: i @ ulong * * * * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'ulong') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * SetArray * * * * * * * * * * * * * * SliceExp::toElem: args[i + 1LU..__dollar] @ string[] * * * * * * * * * * * * * * * VarExp::toElem: args @ string[] * * * * * * * * * * * * * * * * DtoSymbolAddress ('args' of type 'string[]') * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * type: string[] * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * AddExp::toElem: i + 1LU @ ulong * * * * * * * * * * * * * * * * VarExp::toElem: i @ ulong * * * * * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'ulong') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * * * VarExp::toElem: __dollar @ ulong * * * * * * * * * * * * * * * * DtoSymbolAddress ('__dollar' of type 'ulong') * * * * * * * * * * * * * * * * * Id::dollar * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * SetArray * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * SetArray * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(690) * * * * * * * * * * * DeclarationExp::toElem: enum bool isCallbackWithLessThanTwoParameters = false; | T=void * * * * * * * * * * * * DtoDeclarationExp: isCallbackWithLessThanTwoParameters * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * Manifest constant, nothing to do. * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(693) * * * * * * * * * * * AndAndExp::toElem: !!!val.length && !incremental @ bool * * * * * * * * * * * * BoolExp::toElem: !!!val.length @ bool * * * * * * * * * * * * * NotExp::toElem: !val.length @ bool * * * * * * * * * * * * * * ArrayLengthExp::toElem: val.length @ ulong * * * * * * * * * * * * * * * VarExp::toElem: val @ string * * * * * * * * * * * * * * * * DtoSymbolAddress ('val' of type 'string') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * Casting from 'ulong' to 'bool' * * * * * * * * * * * * NotExp::toElem: !incremental @ bool * * * * * * * * * * * * * VarExp::toElem: incremental @ bool * * * * * * * * * * * * * * DtoSymbolAddress ('incremental' of type 'bool') * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * type: bool * * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(694) * * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(694) * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(697) * * * * * * * * * * * * * * CallExp::toElem: enforce(i < args.length, delegate const(char)[]() => "Missing value for argument " ~ a ~ ".", "/usr/include/dlang/ldc/std/getopt.d", 697LU) @ bool * * * * * * * * * * * * * * * VarExp::toElem: enforce @ pure @safe bool(bool value, lazy const(char)[] msg = null, string file = __FILE__, ulong line = cast(ulong)__LINE__) * * * * * * * * * * * * * * * * DtoSymbolAddress ('enforce' of type 'pure @safe bool(bool value, lazy const(char)[] msg = null, string file = __FILE__, ulong line = cast(ulong)__LINE__)') * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * Function type: pure @safe bool(bool value, lazy const(char)[] msg = null, string file = __FILE__, ulong line = cast(ulong)__LINE__) * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * CmpExp::toElem: i < args.length @ bool * * * * * * * * * * * * * * * * * * VarExp::toElem: i @ ulong * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'ulong') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * ArrayLengthExp::toElem: args.length @ ulong * * * * * * * * * * * * * * * * * * * VarExp::toElem: args @ string[] * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('args' of type 'string[]') * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * type: string[] * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * type 1: %119 = load i64, i64* %i * * * * * * * * * * * * * * * * * * type 2: %.len65 = load i64, i64* %118 * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * FuncExp::toElem: __dgliteral7 @ const(char)[] delegate() pure nothrow @safe * * * * * * * * * * * * * * * * * * nested * * * * * * * * * * * * * * * * * * kind = delegate * * * * * * * * * * * * * * * * * * DtoDefineFunction(std.getopt.handleOption!(ushort*).handleOption.__dgliteral7): /usr/include/dlang/ldc/std/getopt.d(698) * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @safe const(char)[]()) * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * Final function type: { i64, i8* } (i8*) * * * * * * * * * * * * * * * * * * * DtoResolveFunction(std.getopt.handleOption!(ushort*).handleOption.__dgliteral7): /usr/include/dlang/ldc/std/getopt.d(698) * * * * * * * * * * * * * * * * * * * * DtoDeclareFunction(std.getopt.handleOption!(ushort*).handleOption.__dgliteral7): /usr/include/dlang/ldc/std/getopt.d(698) * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @safe const(char)[]()) * * * * * * * * * * * * * * * * * * * * * func = declare { i64, i8* } @_D3std6getopt21__T12handleOptionTPtZ12handleOptionFAyaPtKAAyaKS3std6getopt13configurationbZ12__dgliteral7MFNaNbNfZAxa(i8*) * * * * * * * * * * * * * * * * * * * Doing function body for: __dgliteral7 * * * * * * * * * * * * * * * * * * * DtoCreateNestedContext for __dgliteral7 * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for std.getopt.handleOption!(ushort*).handleOption.__dgliteral7 * * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for std.getopt.handleOption!(ushort*).handleOption * * * * * * * * * * * * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * * * * * * * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(698) * * * * * * * * * * * * * * * * * * * * * CatExp::toElem: "Missing value for argument " ~ a ~ "." @ const(char)[] * * * * * * * * * * * * * * * * * * * * * * DtoCatAssignArray * * * * * * * * * * * * * * * * * * * * * * * StringExp::toElem: "." @ string * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: a @ string * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('a' of type 'string') * * * * * * * * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for a @ /usr/include/dlang/ldc/std/getopt.d(698) * * * * * * * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for std.getopt.handleOption!(ushort*).handleOption * * * * * * * * * * * * * * * * * * * * * * * * * * Context: %2 = bitcast i8* %1 to %nest.handleOption.12* * * * * * * * * * * * * * * * * * * * * * * * * * * of type: %nest.handleOption.12 = type { { i64, { i64, i8* }* }, { i64, i8* } } * * * * * * * * * * * * * * * * * * * * * * * * * * Variable: a * * * * * * * * * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * * * * * * * * * Function: __dgliteral7 * * * * * * * * * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * * * * * * * * * Addr: %a = getelementptr %nest.handleOption.12, %nest.handleOption.12* %2, i32 0, i32 1 * * * * * * * * * * * * * * * * * * * * * * * * * * of type: { i64, i8* }* * * * * * * * * * * * * * * * * * * * * * * * StringExp::toElem: "Missing value for argument " @ string * * * * * * * * * * * * * * * * * * * * * * * DtoTypeInfoOf(type = 'const(char)[]', base='1') * * * * * * * * * * * * * * * * * * * * * * * * Type::getTypeInfo(): const(char)[] * * * * * * * * * * * * * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(const(char)[])) * * * * * * * * * * * * * * * * * * * * * return value is '0x12f537d0' * * * * * * * * * * * * * * * * * * Building type: const(char)[] delegate() pure nothrow @safe * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @safe const(char)[]()) * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * Final function type: { i64, i8* } (i8*) * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * StringExp::toElem: "/usr/include/dlang/ldc/std/getopt.d" @ string * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * IntegerExp::toElem: 697LU @ ulong * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 697LU @ ulong * * * * * * * * * * * * * * * * * * * value = i64 697 * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(699) * * * * * * * * * * * * * * AssignExp::toElem: val = args[i] | (string)(string = string) * * * * * * * * * * * * * * * VarExp::toElem: val @ string * * * * * * * * * * * * * * * * DtoSymbolAddress ('val' of type 'string') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * IndexExp::toElem: args[i] @ string * * * * * * * * * * * * * * * * VarExp::toElem: args @ string[] * * * * * * * * * * * * * * * * * DtoSymbolAddress ('args' of type 'string[]') * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * type: string[] * * * * * * * * * * * * * * * * VarExp::toElem: i @ ulong * * * * * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'ulong') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * SetArray * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(700) * * * * * * * * * * * * * * AssignExp::toElem: args = args[0..i] ~ args[i + 1LU..__dollar] | (string[])(string[] = string[]) * * * * * * * * * * * * * * * VarExp::toElem: args @ string[] * * * * * * * * * * * * * * * * DtoSymbolAddress ('args' of type 'string[]') * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * type: string[] * * * * * * * * * * * * * * * CatExp::toElem: args[0..i] ~ args[i + 1LU..__dollar] @ string[] * * * * * * * * * * * * * * * * DtoCatAssignArray * * * * * * * * * * * * * * * * * DtoTypeInfoOf(type = 'string[]', base='1') * * * * * * * * * * * * * * * * * * Type::getTypeInfo(): string[] * * * * * * * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(string[])) * * * * * * * * * * * * * * * * * SliceExp::toElem: args[0..i] @ string[] * * * * * * * * * * * * * * * * * * VarExp::toElem: args @ string[] * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('args' of type 'string[]') * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * type: string[] * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * * * * * * VarExp::toElem: i @ ulong * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'ulong') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * * SetArray * * * * * * * * * * * * * * * * * SliceExp::toElem: args[i + 1LU..__dollar] @ string[] * * * * * * * * * * * * * * * * * * VarExp::toElem: args @ string[] * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('args' of type 'string[]') * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * type: string[] * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * AddExp::toElem: i + 1LU @ ulong * * * * * * * * * * * * * * * * * * * VarExp::toElem: i @ ulong * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * * * * * * VarExp::toElem: __dollar @ ulong * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__dollar' of type 'ulong') * * * * * * * * * * * * * * * * * * * * Id::dollar * * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * * SetArray * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * SetArray * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(709) * * * * * * * * * * * VarExp::toElem: incremental @ bool * * * * * * * * * * * * DtoSymbolAddress ('incremental' of type 'bool') * * * * * * * * * * * * * function param * * * * * * * * * * * * * type: bool * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(709) * * * * * * * * * * * * AddAssignExp::toElem: cast(int)*receiver += 1 @ ushort * * * * * * * * * * * * * Caching l-value of cast(int)*receiver += 1 => *receiver * * * * * * * * * * * * * * PtrExp::toElem: *receiver @ ushort * * * * * * * * * * * * * * * VarExp::toElem: receiver @ ushort* * * * * * * * * * * * * * * * * DtoSymbolAddress ('receiver' of type 'ushort*') * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * type: ushort* * * * * * * * * * * * * * AddExp::toElem: cast(int)*receiver + 1 @ int * * * * * * * * * * * * * * CastExp::toElem: cast(int)*receiver @ int * * * * * * * * * * * * * * * PtrExp::toElem: *receiver @ ushort * * * * * * * * * * * * * * * Casting from 'ushort' to 'int' * * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * * * IntegerExp::toElem: 1 @ int * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1 @ int * * * * * * * * * * * * * * * * value = i32 1 * * * * * * * * * * * * * Casting from 'int' to 'ushort' * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * lhs: %159 = load i16*, i16** %receiver * * * * * * * * * * * * * * rhs: %163 = trunc i32 %162 to i16 * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(710) * * * * * * * * * * * * AssignExp::toElem: *receiver = to(val) | (ushort)(ushort = ushort) * * * * * * * * * * * * * PtrExp::toElem: *receiver @ ushort * * * * * * * * * * * * * * VarExp::toElem: receiver @ ushort* * * * * * * * * * * * * * * * DtoSymbolAddress ('receiver' of type 'ushort*') * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * type: ushort* * * * * * * * * * * * * * CallExp::toElem: to(val) @ ushort * * * * * * * * * * * * * * VarExp::toElem: to @ pure @safe ushort(string _param_0) * * * * * * * * * * * * * * * DtoSymbolAddress ('to' of type 'pure @safe ushort(string _param_0)') * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * Building type: pure @safe ushort(string _param_0) * * * * * * * * * * * * * * * * DtoFunctionType(pure @safe ushort(string _param_0)) * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * Final function type: i16 ({ i64, i8* }) * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * Function type: pure @safe ushort(string _param_0) * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * VarExp::toElem: val @ string * * * * * * * * * * * * * * * * * DtoSymbolAddress ('val' of type 'string') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * lhs: %164 = load i16*, i16** %receiver * * * * * * * * * * * * * * rhs: %166 = call zeroext i16 @_D3std4conv9__T2toTtZ11__T2toTAyaZ2toFNaNfAyaZt({ i64, i8* } %165) * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(791) * * * * * * VarExp::toElem: ret @ bool * * * * * * * DtoSymbolAddress ('ret' of type 'bool') * * * * * * * * a normal variable * * * * * * return value is '0x12f59d48' * TemplateInstance::codegen: 'std.getopt.getoptImpl!(string, bool*, string, bool*, string, bool*, string, bool*, string, bool*, string, bool*, string, string*, string, bool*, string, bool*, string, bool*, string, string*)' * * DtoDefineFunction(std.getopt.getoptImpl!(string, bool*, string, bool*, string, bool*, string, bool*, string, bool*, string, bool*, string, string*, string, bool*, string, bool*, string, bool*, string, string*).getoptImpl): /usr/include/dlang/ldc/std/getopt.d(526) * * * Doing function body for: getoptImpl * * * DtoCreateNestedContext for getoptImpl * * * * DtoCreateNestedContextType for std.getopt.getoptImpl!(string, bool*, string, bool*, string, bool*, string, bool*, string, bool*, string, bool*, string, string*, string, bool*, string, bool*, string, bool*, string, string*).getoptImpl * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(528) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(542) * * * * * * DeclarationExp::toElem: string option = to(_param_3); | T=void * * * * * * * DtoDeclarationExp: option * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = string) * * * * * * * * * llvm value for decl: %option = alloca { i64, i8* }, align 8 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: option = to(_param_3) | (string)(string = string) * * * * * * * * * * VarExp::toElem: option @ string * * * * * * * * * * * DtoSymbolAddress ('option' of type 'string') * * * * * * * * * * * * a normal variable * * * * * * * * * * CallExp::toElem: to(_param_3) @ string * * * * * * * * * * * VarExp::toElem: to @ pure nothrow @nogc @safe string(string _param_0) * * * * * * * * * * * * DtoSymbolAddress ('to' of type 'pure nothrow @nogc @safe string(string _param_0)') * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * Function type: pure nothrow @nogc @safe string(string _param_0) * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * VarExp::toElem: _param_3 @ string * * * * * * * * * * * * * * DtoSymbolAddress ('_param_3' of type 'string') * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * type: string * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * SetArray * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(543) * * * * * * DeclarationExp::toElem: Option optionHelp = splitAndGet(option); | T=void * * * * * * * DtoDeclarationExp: optionHelp * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = Option) * * * * * * * * * VarExp::toElem: splitAndGet @ pure nothrow @trusted Option(string opt) * * * * * * * * * * DtoSymbolAddress ('splitAndGet' of type 'pure nothrow @trusted Option(string opt)') * * * * * * * * * * * FuncDeclaration * * * * * * * * * DtoCallFunction() * * * * * * * * * * doing normal arguments * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * %optionHelp = alloca %std.getopt.Option, align 8 * * * * * * * * * * Function type: pure nothrow @trusted Option(string opt) * * * * * * * * * * DtoArgument * * * * * * * * * * * VarExp::toElem: option @ string * * * * * * * * * * * * DtoSymbolAddress ('option' of type 'string') * * * * * * * * * * * * * a normal variable * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(544) * * * * * * AssignExp::toElem: optionHelp.required = cfg.required() | (bool)(bool = bool) * * * * * * * DotVarExp::toElem: optionHelp.required @ bool * * * * * * * * VarExp::toElem: optionHelp @ Option * * * * * * * * * DtoSymbolAddress ('optionHelp' of type 'Option') * * * * * * * * * * a normal variable * * * * * * * * Indexing aggregate field std.getopt.Option.required: * * * * * * * * * Value: %6 = getelementptr %std.getopt.Option, %std.getopt.Option* %optionHelp, i32 0, i32 3 * * * * * * * CallExp::toElem: cfg.required() @ bool * * * * * * * * DotVarExp::toElem: cfg.required @ const pure nothrow @nogc @property @safe bool() * * * * * * * * * VarExp::toElem: cfg @ configuration * * * * * * * * * * DtoSymbolAddress ('cfg' of type 'configuration') * * * * * * * * * * * function param * * * * * * * * * * * type: configuration * * * * * * * * DtoCallFunction() * * * * * * * * * doing normal arguments * * * * * * * * * Arguments so far: (1) * * * * * * * * * * %std.getopt.configuration* %cfg_arg * * * * * * * * * Function type: const pure nothrow @nogc @property @safe bool() * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * DtoAssign() * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(554) * * * * * * DeclarationExp::toElem: bool* receiver = _param_4; | T=void * * * * * * * DtoDeclarationExp: receiver * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = bool*) * * * * * * * * * llvm value for decl: %receiver = alloca i8*, align 8 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: receiver = _param_4 | (bool*)(bool* = bool*) * * * * * * * * * * VarExp::toElem: receiver @ bool* * * * * * * * * * * * DtoSymbolAddress ('receiver' of type 'bool*') * * * * * * * * * * * * a normal variable * * * * * * * * * * VarExp::toElem: _param_4 @ bool* * * * * * * * * * * * DtoSymbolAddress ('_param_4' of type 'bool*') * * * * * * * * * * * * function param * * * * * * * * * * * * type: bool* * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %receiver = alloca i8*, align 8 * * * * * * * * * * * rhs: %9 = load i8*, i8** %_param_4 * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(555) * * * * * * DeclarationExp::toElem: immutable immutable(int) lowSliceIdx = 2; | T=void * * * * * * * DtoDeclarationExp: lowSliceIdx * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = immutable(int)) * * * * * * * * * llvm value for decl: %lowSliceIdx = alloca i32, align 4 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: lowSliceIdx = 2 | (immutable(int))(immutable(int) = immutable(int)) * * * * * * * * * * VarExp::toElem: lowSliceIdx @ immutable(int) * * * * * * * * * * * DtoSymbolAddress ('lowSliceIdx' of type 'immutable(int)') * * * * * * * * * * * * a normal variable * * * * * * * * * * IntegerExp::toElem: 2 @ immutable(int) * * * * * * * * * * * IntegerExp::toConstElem: 2 @ immutable(int) * * * * * * * * * * * * value = i32 2 * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %lowSliceIdx = alloca i32, align 4 * * * * * * * * * * * rhs: i32 2 * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(558) * * * * * * CatAssignExp::toElem: rslt.options ~= optionHelp @ Option[] * * * * * * * DotVarExp::toElem: rslt.options @ Option[] * * * * * * * * VarExp::toElem: rslt @ GetoptResult * * * * * * * * * DtoSymbolAddress ('rslt' of type 'GetoptResult') * * * * * * * * * * function param * * * * * * * * * * type: GetoptResult * * * * * * * * Indexing aggregate field std.getopt.GetoptResult.options: * * * * * * * * * Value: %10 = getelementptr %std.getopt.GetoptResult, %std.getopt.GetoptResult* %rslt_arg, i32 0, i32 2 * * * * * * * DtoCatAssignElement * * * * * * * * DtoArrayLen * * * * * * * * VarExp::toElem: optionHelp @ Option * * * * * * * * * DtoSymbolAddress ('optionHelp' of type 'Option') * * * * * * * * * * a normal variable * * * * * * * * DtoTypeInfoOf(type = 'Option[]', base='1') * * * * * * * * * Type::getTypeInfo(): Option[] * * * * * * * * * TypeInfoDeclaration::codegen(typeid(Option[])) * * * * * * * * DtoArrayPtr * * * * * * * * DtoAssign() * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(560) * * * * * * DeclarationExp::toElem: bool incremental = false; | T=void * * * * * * * DtoDeclarationExp: incremental * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = bool) * * * * * * * * * llvm value for decl: %incremental = alloca i8, align 1 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: incremental = false | (bool)(bool = bool) * * * * * * * * * * VarExp::toElem: incremental @ bool * * * * * * * * * * * DtoSymbolAddress ('incremental' of type 'bool') * * * * * * * * * * * * a normal variable * * * * * * * * * * IntegerExp::toElem: false @ bool * * * * * * * * * * * IntegerExp::toConstElem: false @ bool * * * * * * * * * * * * value = i1 false * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(562) * * * * * * AndAndExp::toElem: option.length && cast(int)option[__dollar - 1LU] == 43 @ bool * * * * * * * ArrayLengthExp::toElem: option.length @ ulong * * * * * * * * VarExp::toElem: option @ string * * * * * * * * * DtoSymbolAddress ('option' of type 'string') * * * * * * * * * * a normal variable * * * * * * * * DtoArrayLen * * * * * * * Casting from 'ulong' to 'bool' * * * * * * * EqualExp::toElem: cast(int)option[__dollar - 1LU] == 43 @ bool * * * * * * * * CastExp::toElem: cast(int)option[__dollar - 1LU] @ int * * * * * * * * * IndexExp::toElem: option[__dollar - 1LU] @ immutable(char) * * * * * * * * * * VarExp::toElem: option @ string * * * * * * * * * * * DtoSymbolAddress ('option' of type 'string') * * * * * * * * * * * * a normal variable * * * * * * * * * * MinExp::toElem: __dollar - 1LU @ ulong * * * * * * * * * * * VarExp::toElem: __dollar @ ulong * * * * * * * * * * * * DtoSymbolAddress ('__dollar' of type 'ulong') * * * * * * * * * * * * * Id::dollar * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * DtoArrayPtr * * * * * * * * * Casting from 'immutable(char)' to 'int' * * * * * * * * * * cast to: i32 * * * * * * * * IntegerExp::toElem: 43 @ int * * * * * * * * * IntegerExp::toConstElem: 43 @ int * * * * * * * * * * value = i32 43 * * * * * * * * integral or pointer or interface * * * * * * * * lv: %28 = zext i8 %27 to i32 * * * * * * * * rv: i32 43 * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(563) * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(563) * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(564) * * * * * * * * * AssignExp::toElem: option = option[0..__dollar - 1LU] | (string)(string = string) * * * * * * * * * * VarExp::toElem: option @ string * * * * * * * * * * * DtoSymbolAddress ('option' of type 'string') * * * * * * * * * * * * a normal variable * * * * * * * * * * SliceExp::toElem: option[0..__dollar - 1LU] @ string * * * * * * * * * * * VarExp::toElem: option @ string * * * * * * * * * * * * DtoSymbolAddress ('option' of type 'string') * * * * * * * * * * * * * a normal variable * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * MinExp::toElem: __dollar - 1LU @ ulong * * * * * * * * * * * * VarExp::toElem: __dollar @ ulong * * * * * * * * * * * * * DtoSymbolAddress ('__dollar' of type 'ulong') * * * * * * * * * * * * * * Id::dollar * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * DtoAssign() * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * SetArray * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(565) * * * * * * * * * AssignExp::toElem: incremental = true | (bool)(bool = bool) * * * * * * * * * * VarExp::toElem: incremental @ bool * * * * * * * * * * * DtoSymbolAddress ('incremental' of type 'bool') * * * * * * * * * * * * a normal variable * * * * * * * * * * IntegerExp::toElem: true @ bool * * * * * * * * * * * IntegerExp::toConstElem: true @ bool * * * * * * * * * * * * value = i1 true * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(568) * * * * * * DeclarationExp::toElem: bool optWasHandled = handleOption(option, receiver, args, cfg, incremental); | T=void * * * * * * * DtoDeclarationExp: optWasHandled * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = bool) * * * * * * * * * llvm value for decl: %optWasHandled = alloca i8, align 1 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: optWasHandled = handleOption(option, receiver, args, cfg, incremental) | (bool)(bool = bool) * * * * * * * * * * VarExp::toElem: optWasHandled @ bool * * * * * * * * * * * DtoSymbolAddress ('optWasHandled' of type 'bool') * * * * * * * * * * * * a normal variable * * * * * * * * * * CallExp::toElem: handleOption(option, receiver, args, cfg, incremental) @ bool * * * * * * * * * * * VarExp::toElem: handleOption @ @system bool(string option, bool* receiver, ref string[] args, ref configuration cfg, bool incremental) * * * * * * * * * * * * DtoSymbolAddress ('handleOption' of type '@system bool(string option, bool* receiver, ref string[] args, ref configuration cfg, bool incremental)') * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * DtoFunctionType(@system bool(string option, bool* receiver, ref string[] args, ref configuration cfg, bool incremental)) * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * Final function type: i1 (i1, %std.getopt.configuration*, { i64, { i64, i8* }* }*, i8*, { i64, i8* }) * * * * * * * * * * * * * DtoResolveFunction(std.getopt.handleOption!(bool*).handleOption): /usr/include/dlang/ldc/std/getopt.d(621) * * * * * * * * * * * * * * DtoDeclareFunction(std.getopt.handleOption!(bool*).handleOption): /usr/include/dlang/ldc/std/getopt.d(621) * * * * * * * * * * * * * * * DtoFunctionType(@system bool(string option, bool* receiver, ref string[] args, ref configuration cfg, bool incremental)) * * * * * * * * * * * * * * * func = declare i1 @_D3std6getopt21__T12handleOptionTPbZ12handleOptionFAyaPbKAAyaKS3std6getopt13configurationbZb(i1, %std.getopt.configuration*, { i64, { i64, i8* }* }*, i8*, { i64, i8* }) * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * Building type: @system bool(string option, bool* receiver, ref string[] args, ref configuration cfg, bool incremental) * * * * * * * * * * * * * DtoFunctionType(@system bool(string option, bool* receiver, ref string[] args, ref configuration cfg, bool incremental)) * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * Final function type: i1 (i1, %std.getopt.configuration*, { i64, { i64, i8* }* }*, i8*, { i64, i8* }) * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * Function type: @system bool(string option, bool* receiver, ref string[] args, ref configuration cfg, bool incremental) * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * VarExp::toElem: option @ string * * * * * * * * * * * * * * DtoSymbolAddress ('option' of type 'string') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * VarExp::toElem: receiver @ bool* * * * * * * * * * * * * * * DtoSymbolAddress ('receiver' of type 'bool*') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * VarExp::toElem: args @ string[] * * * * * * * * * * * * * * DtoSymbolAddress ('args' of type 'string[]') * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * type: string[] * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * VarExp::toElem: cfg @ configuration * * * * * * * * * * * * * * DtoSymbolAddress ('cfg' of type 'configuration') * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * type: configuration * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * VarExp::toElem: incremental @ bool * * * * * * * * * * * * * * DtoSymbolAddress ('incremental' of type 'bool') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(570) * * * * * * AndAndExp::toElem: cfg.required() && !optWasHandled @ bool * * * * * * * CallExp::toElem: cfg.required() @ bool * * * * * * * * DotVarExp::toElem: cfg.required @ const pure nothrow @nogc @property @safe bool() * * * * * * * * * VarExp::toElem: cfg @ configuration * * * * * * * * * * DtoSymbolAddress ('cfg' of type 'configuration') * * * * * * * * * * * function param * * * * * * * * * * * type: configuration * * * * * * * * DtoCallFunction() * * * * * * * * * doing normal arguments * * * * * * * * * Arguments so far: (1) * * * * * * * * * * %std.getopt.configuration* %cfg_arg * * * * * * * * * Function type: const pure nothrow @nogc @property @safe bool() * * * * * * * NotExp::toElem: !optWasHandled @ bool * * * * * * * * VarExp::toElem: optWasHandled @ bool * * * * * * * * * DtoSymbolAddress ('optWasHandled' of type 'bool') * * * * * * * * * * a normal variable * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(571) * * * * * * * ThrowStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(572) * * * * * * * * NewExp::toElem: new GetOptException("Required option " ~ option ~ "was not supplied", "/usr/include/dlang/ldc/std/getopt.d", 572LU) @ std.getopt.GetOptException * * * * * * * * * new class * * * * * * * * * Calling constructor * * * * * * * * * DtoCallFunction() * * * * * * * * * * doing normal arguments * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * %.newclass_gc = bitcast %object.Object* %.newclass_gc_alloc to %std.getopt.GetOptException* * * * * * * * * * * Function type: pure nothrow @safe GetOptException(string msg, string file = __FILE__, ulong line = cast(ulong)__LINE__) * * * * * * * * * * DtoArgument * * * * * * * * * * * CatExp::toElem: "Required option " ~ option ~ "was not supplied" @ string * * * * * * * * * * * * DtoCatAssignArray * * * * * * * * * * * * * StringExp::toElem: "was not supplied" @ string * * * * * * * * * * * * * VarExp::toElem: option @ string * * * * * * * * * * * * * * DtoSymbolAddress ('option' of type 'string') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * StringExp::toElem: "Required option " @ string * * * * * * * * * * * * * DtoTypeInfoOf(type = 'string', base='1') * * * * * * * * * * * * * * Type::getTypeInfo(): string * * * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(string)) * * * * * * * * * * DtoArgument * * * * * * * * * * * StringExp::toElem: "/usr/include/dlang/ldc/std/getopt.d" @ string * * * * * * * * * * DtoArgument * * * * * * * * * * * IntegerExp::toElem: 572LU @ ulong * * * * * * * * * * * * IntegerExp::toConstElem: 572LU @ ulong * * * * * * * * * * * * * value = i64 572 * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(575) * * * * * * CallExp::toElem: cfg.required(false) @ void * * * * * * * DotVarExp::toElem: cfg.required @ pure nothrow @nogc @property @safe void(bool v) * * * * * * * * VarExp::toElem: cfg @ configuration * * * * * * * * * DtoSymbolAddress ('cfg' of type 'configuration') * * * * * * * * * * function param * * * * * * * * * * type: configuration * * * * * * * DtoCallFunction() * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (1) * * * * * * * * * %std.getopt.configuration* %cfg_arg * * * * * * * * Function type: pure nothrow @nogc @property @safe void(bool v) * * * * * * * * DtoArgument * * * * * * * * * IntegerExp::toElem: false @ bool * * * * * * * * * * IntegerExp::toConstElem: false @ bool * * * * * * * * * * * value = i1 false * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(577) * * * * * * CallExp::toElem: getoptImpl(args, cfg, rslt, _param_5, _param_6, _param_7, _param_8, _param_9, _param_10, _param_11, _param_12, _param_13, _param_14, _param_15, _param_16, _param_17, _param_18, _param_19, _param_20, _param_21, _param_22, _param_23, _param_24) @ void * * * * * * * VarExp::toElem: getoptImpl @ @system void(ref string[] args, ref configuration cfg, ref GetoptResult rslt, string _param_3, bool* _param_4, string _param_5, bool* _param_6, string _param_7, bool* _param_8, string _param_9, bool* _param_10, string _param_11, bool* _param_12, string _param_13, string* _param_14, string _param_15, bool* _param_16, string _param_17, bool* _param_18, string _param_19, bool* _param_20, string _param_21, string* _param_22) * * * * * * * * DtoSymbolAddress ('getoptImpl' of type '@system void(ref string[] args, ref configuration cfg, ref GetoptResult rslt, string _param_3, bool* _param_4, string _param_5, bool* _param_6, string _param_7, bool* _param_8, string _param_9, bool* _param_10, string _param_11, bool* _param_12, string _param_13, string* _param_14, string _param_15, bool* _param_16, string _param_17, bool* _param_18, string _param_19, bool* _param_20, string _param_21, string* _param_22)') * * * * * * * * * FuncDeclaration * * * * * * * * * DtoFunctionType(@system void(ref string[] args, ref configuration cfg, ref GetoptResult rslt, string _param_3, bool* _param_4, string _param_5, bool* _param_6, string _param_7, bool* _param_8, string _param_9, bool* _param_10, string _param_11, bool* _param_12, string _param_13, string* _param_14, string _param_15, bool* _param_16, string _param_17, bool* _param_18, string _param_19, bool* _param_20, string _param_21, string* _param_22)) * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: void ({ i64, i8* }*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, { i64, i8* }*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, %std.getopt.GetoptResult*, %std.getopt.configuration*, { i64, { i64, i8* }* }*) * * * * * * * * * DtoResolveFunction(std.getopt.getoptImpl!(string, bool*, string, bool*, string, bool*, string, bool*, string, bool*, string, string*, string, bool*, string, bool*, string, bool*, string, string*).getoptImpl): /usr/include/dlang/ldc/std/getopt.d(526) * * * * * * * * * * DtoDeclareFunction(std.getopt.getoptImpl!(string, bool*, string, bool*, string, bool*, string, bool*, string, bool*, string, string*, string, bool*, string, bool*, string, bool*, string, string*).getoptImpl): /usr/include/dlang/ldc/std/getopt.d(526) * * * * * * * * * * * DtoFunctionType(@system void(ref string[] args, ref configuration cfg, ref GetoptResult rslt, string _param_3, bool* _param_4, string _param_5, bool* _param_6, string _param_7, bool* _param_8, string _param_9, bool* _param_10, string _param_11, bool* _param_12, string _param_13, string* _param_14, string _param_15, bool* _param_16, string _param_17, bool* _param_18, string _param_19, bool* _param_20, string _param_21, string* _param_22)) * * * * * * * * * * * func = declare void @_D3std6getopt90__T10getoptImplTAyaTPbTAyaTPbTAyaTPbTAyaTPbTAyaTPbTAyaTPAyaTAyaTPbTAyaTPbTAyaTPbTAyaTPAyaZ10getoptImplFKAAyaKS3std6getopt13configurationKS3std6getopt12GetoptResultAyaPbAyaPbAyaPbAyaPbAyaPbAyaPAyaAyaPbAyaPbAyaPbAyaPAyaZv({ i64, i8* }*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, { i64, i8* }*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, %std.getopt.GetoptResult*, %std.getopt.configuration*, { i64, { i64, i8* }* }*) * * * * * * * DtoCallFunction() * * * * * * * * Building type: @system void(ref string[] args, ref configuration cfg, ref GetoptResult rslt, string _param_3, bool* _param_4, string _param_5, bool* _param_6, string _param_7, bool* _param_8, string _param_9, bool* _param_10, string _param_11, bool* _param_12, string _param_13, string* _param_14, string _param_15, bool* _param_16, string _param_17, bool* _param_18, string _param_19, bool* _param_20, string _param_21, string* _param_22) * * * * * * * * * DtoFunctionType(@system void(ref string[] args, ref configuration cfg, ref GetoptResult rslt, string _param_3, bool* _param_4, string _param_5, bool* _param_6, string _param_7, bool* _param_8, string _param_9, bool* _param_10, string _param_11, bool* _param_12, string _param_13, string* _param_14, string _param_15, bool* _param_16, string _param_17, bool* _param_18, string _param_19, bool* _param_20, string _param_21, string* _param_22)) * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: void ({ i64, i8* }*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, { i64, i8* }*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, %std.getopt.GetoptResult*, %std.getopt.configuration*, { i64, { i64, i8* }* }*) * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (0) * * * * * * * * Function type: @system void(ref string[] args, ref configuration cfg, ref GetoptResult rslt, string _param_3, bool* _param_4, string _param_5, bool* _param_6, string _param_7, bool* _param_8, string _param_9, bool* _param_10, string _param_11, bool* _param_12, string _param_13, string* _param_14, string _param_15, bool* _param_16, string _param_17, bool* _param_18, string _param_19, bool* _param_20, string _param_21, string* _param_22) * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: args @ string[] * * * * * * * * * * DtoSymbolAddress ('args' of type 'string[]') * * * * * * * * * * * function param * * * * * * * * * * * type: string[] * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: cfg @ configuration * * * * * * * * * * DtoSymbolAddress ('cfg' of type 'configuration') * * * * * * * * * * * function param * * * * * * * * * * * type: configuration * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: rslt @ GetoptResult * * * * * * * * * * DtoSymbolAddress ('rslt' of type 'GetoptResult') * * * * * * * * * * * function param * * * * * * * * * * * type: GetoptResult * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_5 @ string * * * * * * * * * * DtoSymbolAddress ('_param_5' of type 'string') * * * * * * * * * * * function param * * * * * * * * * * * type: string * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_6 @ bool* * * * * * * * * * * DtoSymbolAddress ('_param_6' of type 'bool*') * * * * * * * * * * * function param * * * * * * * * * * * type: bool* * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_7 @ string * * * * * * * * * * DtoSymbolAddress ('_param_7' of type 'string') * * * * * * * * * * * function param * * * * * * * * * * * type: string * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_8 @ bool* * * * * * * * * * * DtoSymbolAddress ('_param_8' of type 'bool*') * * * * * * * * * * * function param * * * * * * * * * * * type: bool* * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_9 @ string * * * * * * * * * * DtoSymbolAddress ('_param_9' of type 'string') * * * * * * * * * * * function param * * * * * * * * * * * type: string * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_10 @ bool* * * * * * * * * * * DtoSymbolAddress ('_param_10' of type 'bool*') * * * * * * * * * * * function param * * * * * * * * * * * type: bool* * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_11 @ string * * * * * * * * * * DtoSymbolAddress ('_param_11' of type 'string') * * * * * * * * * * * function param * * * * * * * * * * * type: string * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_12 @ bool* * * * * * * * * * * DtoSymbolAddress ('_param_12' of type 'bool*') * * * * * * * * * * * function param * * * * * * * * * * * type: bool* * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_13 @ string * * * * * * * * * * DtoSymbolAddress ('_param_13' of type 'string') * * * * * * * * * * * function param * * * * * * * * * * * type: string * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_14 @ bool* * * * * * * * * * * DtoSymbolAddress ('_param_14' of type 'bool*') * * * * * * * * * * * function param * * * * * * * * * * * type: bool* * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_15 @ string * * * * * * * * * * DtoSymbolAddress ('_param_15' of type 'string') * * * * * * * * * * * function param * * * * * * * * * * * type: string * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_16 @ string* * * * * * * * * * * DtoSymbolAddress ('_param_16' of type 'string*') * * * * * * * * * * * function param * * * * * * * * * * * type: string* * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_17 @ string * * * * * * * * * * DtoSymbolAddress ('_param_17' of type 'string') * * * * * * * * * * * function param * * * * * * * * * * * type: string * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_18 @ bool* * * * * * * * * * * DtoSymbolAddress ('_param_18' of type 'bool*') * * * * * * * * * * * function param * * * * * * * * * * * type: bool* * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_19 @ string * * * * * * * * * * DtoSymbolAddress ('_param_19' of type 'string') * * * * * * * * * * * function param * * * * * * * * * * * type: string * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_20 @ bool* * * * * * * * * * * DtoSymbolAddress ('_param_20' of type 'bool*') * * * * * * * * * * * function param * * * * * * * * * * * type: bool* * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_21 @ string * * * * * * * * * * DtoSymbolAddress ('_param_21' of type 'string') * * * * * * * * * * * function param * * * * * * * * * * * type: string * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_22 @ bool* * * * * * * * * * * DtoSymbolAddress ('_param_22' of type 'bool*') * * * * * * * * * * * function param * * * * * * * * * * * type: bool* * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_23 @ string * * * * * * * * * * DtoSymbolAddress ('_param_23' of type 'string') * * * * * * * * * * * function param * * * * * * * * * * * type: string * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_24 @ string* * * * * * * * * * * DtoSymbolAddress ('_param_24' of type 'string*') * * * * * * * * * * * function param * * * * * * * * * * * type: string* * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(577) * TemplateInstance::codegen: 'std.getopt.handleOption!(bool*)' * * DtoDefineFunction(std.getopt.handleOption!(bool*).handleOption): /usr/include/dlang/ldc/std/getopt.d(621) * * * Doing function body for: handleOption * * * DtoCreateNestedContext for handleOption * * * * DtoCreateNestedContextType for std.getopt.handleOption!(bool*).handleOption * * * * * has nested frame * * * * * Function handleOption has depth 0 * * * * * Nested var 'expanded' of type { i64, { i64, i8* }* } * * * * * Nested var 'a' of type { i64, i8* } * * * * * frameType = %nest.handleOption.13 = type { { i64, { i64, i8* }* }, { i64, i8* } } * * * * nested var: expanded * * * * nested var: a * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(623) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(628) * * * * * * DeclarationExp::toElem: bool ret = false; | T=void * * * * * * * DtoDeclarationExp: ret * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = bool) * * * * * * * * * llvm value for decl: %ret = alloca i8, align 1 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: ret = false | (bool)(bool = bool) * * * * * * * * * * VarExp::toElem: ret @ bool * * * * * * * * * * * DtoSymbolAddress ('ret' of type 'bool') * * * * * * * * * * * * a normal variable * * * * * * * * * * IntegerExp::toElem: false @ bool * * * * * * * * * * * IntegerExp::toConstElem: false @ bool * * * * * * * * * * * * value = i1 false * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(629) * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(629) * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(629) * * * * * * * * DeclarationExp::toElem: ulong i = 1LU; | T=void * * * * * * * * * DtoDeclarationExp: i * * * * * * * * * * VarDeclaration * * * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * * * llvm value for decl: %i = alloca i64, align 8 * * * * * * * * * * * expression initializer * * * * * * * * * * * AssignExp::toElem: i = 1LU | (ulong)(ulong = ulong) * * * * * * * * * * * * VarExp::toElem: i @ ulong * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'ulong') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * lhs: %i = alloca i64, align 8 * * * * * * * * * * * * * rhs: i64 1 * * * * * * * ForStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(629) * * * * * * * * CmpExp::toElem: i < args.length @ bool * * * * * * * * * VarExp::toElem: i @ ulong * * * * * * * * * * DtoSymbolAddress ('i' of type 'ulong') * * * * * * * * * * * a normal variable * * * * * * * * * ArrayLengthExp::toElem: args.length @ ulong * * * * * * * * * * VarExp::toElem: args @ string[] * * * * * * * * * * * DtoSymbolAddress ('args' of type 'string[]') * * * * * * * * * * * * function param * * * * * * * * * * * * type: string[] * * * * * * * * * * DtoArrayLen * * * * * * * * * type 1: %3 = load i64, i64* %i * * * * * * * * * type 2: %.len = load i64, i64* %2 * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(630) * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(630) * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(631) * * * * * * * * * * * DeclarationExp::toElem: string a = args[i]; | T=void * * * * * * * * * * * * DtoDeclarationExp: a * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * DtoVarDeclaration(vdtype = string) * * * * * * * * * * * * * * has nestedref set (referenced by nested function/delegate) * * * * * * * * * * * * * * llvm value for decl: %a = getelementptr %nest.handleOption.13, %nest.handleOption.13* %.frame, i32 0, i32 1 * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * AssignExp::toElem: a = args[i] | (string)(string = string) * * * * * * * * * * * * * * * VarExp::toElem: a @ string * * * * * * * * * * * * * * * * DtoSymbolAddress ('a' of type 'string') * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * DtoNestedVariable for a @ /usr/include/dlang/ldc/std/getopt.d(631) * * * * * * * * * * * * * * * IndexExp::toElem: args[i] @ string * * * * * * * * * * * * * * * * VarExp::toElem: args @ string[] * * * * * * * * * * * * * * * * * DtoSymbolAddress ('args' of type 'string[]') * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * type: string[] * * * * * * * * * * * * * * * * VarExp::toElem: i @ ulong * * * * * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'ulong') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * SetArray * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(632) * * * * * * * * * * * AndAndExp::toElem: endOfOptions.length && a == endOfOptions @ bool * * * * * * * * * * * * ArrayLengthExp::toElem: endOfOptions.length @ ulong * * * * * * * * * * * * * VarExp::toElem: endOfOptions @ string * * * * * * * * * * * * * * DtoSymbolAddress ('endOfOptions' of type 'string') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * DtoResolveVariable(std.getopt.endOfOptions) * * * * * * * * * * * * * * * * data segment * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * Casting from 'ulong' to 'bool' * * * * * * * * * * * * EqualExp::toElem: a == endOfOptions @ bool * * * * * * * * * * * * * VarExp::toElem: a @ string * * * * * * * * * * * * * * DtoSymbolAddress ('a' of type 'string') * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * DtoNestedVariable for a @ /usr/include/dlang/ldc/std/getopt.d(632) * * * * * * * * * * * * * VarExp::toElem: endOfOptions @ string * * * * * * * * * * * * * * DtoSymbolAddress ('endOfOptions' of type 'string') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * DtoResolveVariable(std.getopt.endOfOptions) * * * * * * * * * * * * * * * * data segment * * * * * * * * * * * * * static or dynamic array * * * * * * * * * * * * * comparing arrays * * * * * * * * * * * * * casting to dynamic arrays * * * * * * * * * * * * * DtoCastArray * * * * * * * * * * * * * * from array or sarray * * * * * * * * * * * * * * to array * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * isslice * * * * * * * * * * * * * DtoCastArray * * * * * * * * * * * * * * from array or sarray * * * * * * * * * * * * * * to array * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * isslice * * * * * * * * * * * * * DtoTypeInfoOf(type = 'string', base='1') * * * * * * * * * * * * * * Type::getTypeInfo(): string * * * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(string)) * * * * * * * * * * * BreakStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(632) * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(633) * * * * * * * * * * * AndAndExp::toElem: cfg.stopOnFirstNonOption() && (!a.length || cast(uint)cast(int)a[0] != cast(uint)optionChar) @ bool * * * * * * * * * * * * CallExp::toElem: cfg.stopOnFirstNonOption() @ bool * * * * * * * * * * * * * DotVarExp::toElem: cfg.stopOnFirstNonOption @ const pure nothrow @nogc @property @safe bool() * * * * * * * * * * * * * * VarExp::toElem: cfg @ configuration * * * * * * * * * * * * * * * DtoSymbolAddress ('cfg' of type 'configuration') * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * type: configuration * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * %std.getopt.configuration* %cfg_arg * * * * * * * * * * * * * * Function type: const pure nothrow @nogc @property @safe bool() * * * * * * * * * * * * OrOrExp::toElem: !a.length || cast(uint)cast(int)a[0] != cast(uint)optionChar @ bool * * * * * * * * * * * * * NotExp::toElem: !a.length @ bool * * * * * * * * * * * * * * ArrayLengthExp::toElem: a.length @ ulong * * * * * * * * * * * * * * * VarExp::toElem: a @ string * * * * * * * * * * * * * * * * DtoSymbolAddress ('a' of type 'string') * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * DtoNestedVariable for a @ /usr/include/dlang/ldc/std/getopt.d(633) * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * Casting from 'ulong' to 'bool' * * * * * * * * * * * * * EqualExp::toElem: cast(uint)cast(int)a[0] != cast(uint)optionChar @ bool * * * * * * * * * * * * * * CastExp::toElem: cast(uint)cast(int)a[0] @ uint * * * * * * * * * * * * * * * CastExp::toElem: cast(int)a[0] @ int * * * * * * * * * * * * * * * * IndexExp::toElem: a[0] @ immutable(char) * * * * * * * * * * * * * * * * * VarExp::toElem: a @ string * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('a' of type 'string') * * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * * DtoNestedVariable for a @ /usr/include/dlang/ldc/std/getopt.d(633) * * * * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * Casting from 'immutable(char)' to 'int' * * * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * * * * Casting from 'int' to 'uint' * * * * * * * * * * * * * * CastExp::toElem: cast(uint)optionChar @ uint * * * * * * * * * * * * * * * VarExp::toElem: optionChar @ dchar * * * * * * * * * * * * * * * * DtoSymbolAddress ('optionChar' of type 'dchar') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * DtoResolveVariable(std.getopt.optionChar) * * * * * * * * * * * * * * * * * * data segment * * * * * * * * * * * * * * * Casting from 'dchar' to 'uint' * * * * * * * * * * * * * * integral or pointer or interface * * * * * * * * * * * * * * lv: %33 = zext i8 %32 to i32 * * * * * * * * * * * * * * rv: %34 = load i32, i32* @_D3std6getopt10optionCharw * * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(634) * * * * * * * * * * * * BreakStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(636) * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(639) * * * * * * * * * * * AndAndExp::toElem: cfg.bundling() && a.length > 2LU && cast(uint)cast(int)a[0] == cast(uint)optionChar && cast(uint)cast(int)a[1] != cast(uint)optionChar @ bool * * * * * * * * * * * * AndAndExp::toElem: cfg.bundling() && a.length > 2LU && cast(uint)cast(int)a[0] == cast(uint)optionChar @ bool * * * * * * * * * * * * * AndAndExp::toElem: cfg.bundling() && a.length > 2LU @ bool * * * * * * * * * * * * * * CallExp::toElem: cfg.bundling() @ bool * * * * * * * * * * * * * * * DotVarExp::toElem: cfg.bundling @ const pure nothrow @nogc @property @safe bool() * * * * * * * * * * * * * * * * VarExp::toElem: cfg @ configuration * * * * * * * * * * * * * * * * * DtoSymbolAddress ('cfg' of type 'configuration') * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * type: configuration * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * %std.getopt.configuration* %cfg_arg * * * * * * * * * * * * * * * * Function type: const pure nothrow @nogc @property @safe bool() * * * * * * * * * * * * * * CmpExp::toElem: a.length > 2LU @ bool * * * * * * * * * * * * * * * ArrayLengthExp::toElem: a.length @ ulong * * * * * * * * * * * * * * * * VarExp::toElem: a @ string * * * * * * * * * * * * * * * * * DtoSymbolAddress ('a' of type 'string') * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * DtoNestedVariable for a @ /usr/include/dlang/ldc/std/getopt.d(639) * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * IntegerExp::toElem: 2LU @ ulong * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 2LU @ ulong * * * * * * * * * * * * * * * * * value = i64 2 * * * * * * * * * * * * * * * type 1: %.len18 = load i64, i64* %37 * * * * * * * * * * * * * * * type 2: i64 2 * * * * * * * * * * * * * EqualExp::toElem: cast(uint)cast(int)a[0] == cast(uint)optionChar @ bool * * * * * * * * * * * * * * CastExp::toElem: cast(uint)cast(int)a[0] @ uint * * * * * * * * * * * * * * * CastExp::toElem: cast(int)a[0] @ int * * * * * * * * * * * * * * * * IndexExp::toElem: a[0] @ immutable(char) * * * * * * * * * * * * * * * * * VarExp::toElem: a @ string * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('a' of type 'string') * * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * * DtoNestedVariable for a @ /usr/include/dlang/ldc/std/getopt.d(639) * * * * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * Casting from 'immutable(char)' to 'int' * * * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * * * * Casting from 'int' to 'uint' * * * * * * * * * * * * * * CastExp::toElem: cast(uint)optionChar @ uint * * * * * * * * * * * * * * * VarExp::toElem: optionChar @ dchar * * * * * * * * * * * * * * * * DtoSymbolAddress ('optionChar' of type 'dchar') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * DtoResolveVariable(std.getopt.optionChar) * * * * * * * * * * * * * * * * * * data segment * * * * * * * * * * * * * * * Casting from 'dchar' to 'uint' * * * * * * * * * * * * * * integral or pointer or interface * * * * * * * * * * * * * * lv: %42 = zext i8 %41 to i32 * * * * * * * * * * * * * * rv: %43 = load i32, i32* @_D3std6getopt10optionCharw * * * * * * * * * * * * EqualExp::toElem: cast(uint)cast(int)a[1] != cast(uint)optionChar @ bool * * * * * * * * * * * * * CastExp::toElem: cast(uint)cast(int)a[1] @ uint * * * * * * * * * * * * * * CastExp::toElem: cast(int)a[1] @ int * * * * * * * * * * * * * * * IndexExp::toElem: a[1] @ immutable(char) * * * * * * * * * * * * * * * * VarExp::toElem: a @ string * * * * * * * * * * * * * * * * * DtoSymbolAddress ('a' of type 'string') * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * DtoNestedVariable for a @ /usr/include/dlang/ldc/std/getopt.d(640) * * * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * Casting from 'immutable(char)' to 'int' * * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * * * Casting from 'int' to 'uint' * * * * * * * * * * * * * CastExp::toElem: cast(uint)optionChar @ uint * * * * * * * * * * * * * * VarExp::toElem: optionChar @ dchar * * * * * * * * * * * * * * * DtoSymbolAddress ('optionChar' of type 'dchar') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * DtoResolveVariable(std.getopt.optionChar) * * * * * * * * * * * * * * * * * data segment * * * * * * * * * * * * * * Casting from 'dchar' to 'uint' * * * * * * * * * * * * * integral or pointer or interface * * * * * * * * * * * * * lv: %48 = zext i8 %47 to i32 * * * * * * * * * * * * * rv: %49 = load i32, i32* @_D3std6getopt10optionCharw * * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(641) * * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(641) * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(642) * * * * * * * * * * * * * * DeclarationExp::toElem: string[] expanded = null; | T=void * * * * * * * * * * * * * * * DtoDeclarationExp: expanded * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = string[]) * * * * * * * * * * * * * * * * * has nestedref set (referenced by nested function/delegate) * * * * * * * * * * * * * * * * * llvm value for decl: %expanded = getelementptr %nest.handleOption.13, %nest.handleOption.13* %.frame, i32 0, i32 0 * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * AssignExp::toElem: expanded = null | (string[])(string[] = string[]) * * * * * * * * * * * * * * * * * * VarExp::toElem: expanded @ string[] * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('expanded' of type 'string[]') * * * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for expanded @ /usr/include/dlang/ldc/std/getopt.d(642) * * * * * * * * * * * * * * * * * * NullExp::toElem(type=string[]): null * * * * * * * * * * * * * * * * * * * NullExp::toConstElem(type=string[]): null * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * * * * * * DtoSetArrayToNull * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(643) * * * * * * * * * * * * * * CallExp::toElem: _aApplycd2(a[1..__dollar], delegate int(ref ulong __applyArg0, ref dchar __applyArg1) => 0) @ int * * * * * * * * * * * * * * * VarExp::toElem: _aApplycd2 @ extern (C) int(in string, int delegate(void*, void*)) * * * * * * * * * * * * * * * * DtoSymbolAddress ('_aApplycd2' of type 'extern (C) int(in string, int delegate(void*, void*))') * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * Function type: extern (C) int(in string, int delegate(void*, void*)) * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * SliceExp::toElem: a[1..__dollar] @ string * * * * * * * * * * * * * * * * * * VarExp::toElem: a @ string * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('a' of type 'string') * * * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for a @ /usr/include/dlang/ldc/std/getopt.d(643) * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * * * * * * VarExp::toElem: __dollar @ ulong * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__dollar' of type 'ulong') * * * * * * * * * * * * * * * * * * * * Id::dollar * * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * FuncExp::toElem: __foreachbody6 @ int delegate(void*, void*) * * * * * * * * * * * * * * * * * * nested * * * * * * * * * * * * * * * * * * kind = delegate * * * * * * * * * * * * * * * * * * DtoDefineFunction(std.getopt.handleOption!(bool*).handleOption.__foreachbody6): /usr/include/dlang/ldc/std/getopt.d(643) * * * * * * * * * * * * * * * * * * * DtoFunctionType(@safe int(ref ulong __applyArg0, ref dchar __applyArg1)) * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * Final function type: i32 (i8*, i32*, i64*) * * * * * * * * * * * * * * * * * * * DtoResolveFunction(std.getopt.handleOption!(bool*).handleOption.__foreachbody6): /usr/include/dlang/ldc/std/getopt.d(643) * * * * * * * * * * * * * * * * * * * * DtoDeclareFunction(std.getopt.handleOption!(bool*).handleOption.__foreachbody6): /usr/include/dlang/ldc/std/getopt.d(643) * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(@safe int(ref ulong __applyArg0, ref dchar __applyArg1)) * * * * * * * * * * * * * * * * * * * * * func = declare i32 @_D3std6getopt21__T12handleOptionTPbZ12handleOptionFAyaPbKAAyaKS3std6getopt13configurationbZ14__foreachbody6MFNfKmKwZi(i8*, i32*, i64*) * * * * * * * * * * * * * * * * * * * Doing function body for: __foreachbody6 * * * * * * * * * * * * * * * * * * * DtoCreateNestedContext for __foreachbody6 * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for std.getopt.handleOption!(bool*).handleOption.__foreachbody6 * * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for std.getopt.handleOption!(bool*).handleOption * * * * * * * * * * * * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * * * * * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * * * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(643) * * * * * * * * * * * * * * * * * * * * * * ExpStatement::toIR(): * * * * * * * * * * * * * * * * * * * * * * * DeclarationExp::toElem: dchar c = __applyArg1; | T=void * * * * * * * * * * * * * * * * * * * * * * * * DtoDeclarationExp: c * * * * * * * * * * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = dchar) * * * * * * * * * * * * * * * * * * * * * * * * * * llvm value for decl: %c = alloca i32, align 4 * * * * * * * * * * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * * * * * * * * * * AssignExp::toElem: c = __applyArg1 | (dchar)(dchar = dchar) * * * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: c @ dchar * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('c' of type 'dchar') * * * * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: __applyArg1 @ dchar * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__applyArg1' of type 'dchar') * * * * * * * * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * * * * * * * * type: dchar * * * * * * * * * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * * * * * * * * * lhs: %c = alloca i32, align 4 * * * * * * * * * * * * * * * * * * * * * * * * * * * * rhs: %1 = load i32, i32* %__applyArg1_arg * * * * * * * * * * * * * * * * * * * * * * ExpStatement::toIR(): * * * * * * * * * * * * * * * * * * * * * * * DeclarationExp::toElem: ulong j = __applyArg0; | T=void * * * * * * * * * * * * * * * * * * * * * * * * DtoDeclarationExp: j * * * * * * * * * * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * * * * * * * * * * * * * * * * * * llvm value for decl: %j = alloca i64, align 8 * * * * * * * * * * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * * * * * * * * * * AssignExp::toElem: j = __applyArg0 | (ulong)(ulong = ulong) * * * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: j @ ulong * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('j' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: __applyArg0 @ ulong * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__applyArg0' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * * * * * * * * type: ulong * * * * * * * * * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * * * * * * * * * lhs: %j = alloca i64, align 8 * * * * * * * * * * * * * * * * * * * * * * * * * * * * rhs: %2 = load i64, i64* %__applyArg0_arg * * * * * * * * * * * * * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(647) * * * * * * * * * * * * * * * * * * * * * * * NotExp::toElem: !isAlpha(c) @ bool * * * * * * * * * * * * * * * * * * * * * * * * CallExp::toElem: isAlpha(c) @ bool * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: isAlpha @ pure nothrow @nogc @safe bool(dchar c) * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('isAlpha' of type 'pure nothrow @nogc @safe bool(dchar c)') * * * * * * * * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @safe bool(dchar c) * * * * * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: c @ dchar * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('c' of type 'dchar') * * * * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(648) * * * * * * * * * * * * * * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(648) * * * * * * * * * * * * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(649) * * * * * * * * * * * * * * * * * * * * * * * * * * CatAssignExp::toElem: expanded ~= a[j + 1LU..__dollar] @ string[] * * * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: expanded @ string[] * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('expanded' of type 'string[]') * * * * * * * * * * * * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for expanded @ /usr/include/dlang/ldc/std/getopt.d(649) * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for std.getopt.handleOption!(bool*).handleOption * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Context: %7 = bitcast i8* %6 to %nest.handleOption.13* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * of type: %nest.handleOption.13 = type { { i64, { i64, i8* }* }, { i64, i8* } } * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Variable: expanded * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Function: __foreachbody6 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Addr: %expanded = getelementptr %nest.handleOption.13, %nest.handleOption.13* %7, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * of type: { i64, { i64, i8* }* }* * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoCatAssignElement * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * * * * * * * * * * * SliceExp::toElem: a[j + 1LU..__dollar] @ string * * * * * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: a @ string * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('a' of type 'string') * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for a @ /usr/include/dlang/ldc/std/getopt.d(649) * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for std.getopt.handleOption!(bool*).handleOption * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Context: %10 = bitcast i8* %9 to %nest.handleOption.13* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * of type: %nest.handleOption.13 = type { { i64, { i64, i8* }* }, { i64, i8* } } * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Variable: a * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Function: __foreachbody6 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Addr: %a = getelementptr %nest.handleOption.13, %nest.handleOption.13* %10, i32 0, i32 1 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * of type: { i64, i8* }* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * * * * * * * * * * * * AddExp::toElem: j + 1LU @ ulong * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: j @ ulong * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('j' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: __dollar @ ulong * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__dollar' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Id::dollar * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoTypeInfoOf(type = 'string[]', base='1') * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Type::getTypeInfo(): string[] * * * * * * * * * * * * * * * * * * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(string[])) * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * SetArray * * * * * * * * * * * * * * * * * * * * * * * * * ReturnStatement::toIR(): * * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 1 @ int * * * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1 @ int * * * * * * * * * * * * * * * * * * * * * * * * * * * * value = i32 1 * * * * * * * * * * * * * * * * * * * * * * * * * * return value is '0x120e3000' * * * * * * * * * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(652) * * * * * * * * * * * * * * * * * * * * * * * CatAssignExp::toElem: expanded ~= text(optionChar, c) @ string[] * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: expanded @ string[] * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('expanded' of type 'string[]') * * * * * * * * * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for expanded @ /usr/include/dlang/ldc/std/getopt.d(652) * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for std.getopt.handleOption!(bool*).handleOption * * * * * * * * * * * * * * * * * * * * * * * * * * * Context: %18 = bitcast i8* %17 to %nest.handleOption.13* * * * * * * * * * * * * * * * * * * * * * * * * * * * of type: %nest.handleOption.13 = type { { i64, { i64, i8* }* }, { i64, i8* } } * * * * * * * * * * * * * * * * * * * * * * * * * * * Variable: expanded * * * * * * * * * * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * * * * * * * * * * Function: __foreachbody6 * * * * * * * * * * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * * * * * * * * * * Addr: %expanded4 = getelementptr %nest.handleOption.13, %nest.handleOption.13* %18, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * * * * * * * * * of type: { i64, { i64, i8* }* }* * * * * * * * * * * * * * * * * * * * * * * * * DtoCatAssignElement * * * * * * * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * * * * * * * * CallExp::toElem: text(optionChar, c) @ string * * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: text @ pure @safe string(dchar _param_0, dchar _param_1) * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('text' of type 'pure @safe string(dchar _param_0, dchar _param_1)') * * * * * * * * * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * * * * * * * * * Function type: pure @safe string(dchar _param_0, dchar _param_1) * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: optionChar @ dchar * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('optionChar' of type 'dchar') * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoResolveVariable(std.getopt.optionChar) * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * data segment * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: c @ dchar * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('c' of type 'dchar') * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * * * DtoTypeInfoOf(type = 'string[]', base='1') * * * * * * * * * * * * * * * * * * * * * * * * * * Type::getTypeInfo(): string[] * * * * * * * * * * * * * * * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(string[])) * * * * * * * * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * * * * * * * * * * SetArray * * * * * * * * * * * * * * * * * * * * * ReturnStatement::toIR(): * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 0 @ int * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0 @ int * * * * * * * * * * * * * * * * * * * * * * * * value = i32 0 * * * * * * * * * * * * * * * * * * * * * * return value is '0x120e1350' * * * * * * * * * * * * * * * * * * Building type: int delegate(void*, void*) * * * * * * * * * * * * * * * * * * * DtoFunctionType(int(void*, void*)) * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * Final function type: i32 (i8*, i8*, i8*) * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(654) * * * * * * * * * * * * * * AssignExp::toElem: args = args[0..i] ~ expanded ~ args[i + 1LU..__dollar] | (string[])(string[] = string[]) * * * * * * * * * * * * * * * VarExp::toElem: args @ string[] * * * * * * * * * * * * * * * * DtoSymbolAddress ('args' of type 'string[]') * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * type: string[] * * * * * * * * * * * * * * * CatExp::toElem: args[0..i] ~ expanded ~ args[i + 1LU..__dollar] @ string[] * * * * * * * * * * * * * * * * DtoCatAssignArray * * * * * * * * * * * * * * * * * SliceExp::toElem: args[i + 1LU..__dollar] @ string[] * * * * * * * * * * * * * * * * * * VarExp::toElem: args @ string[] * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('args' of type 'string[]') * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * type: string[] * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * AddExp::toElem: i + 1LU @ ulong * * * * * * * * * * * * * * * * * * * VarExp::toElem: i @ ulong * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * * * * * * VarExp::toElem: __dollar @ ulong * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__dollar' of type 'ulong') * * * * * * * * * * * * * * * * * * * * Id::dollar * * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * * SetArray * * * * * * * * * * * * * * * * * VarExp::toElem: expanded @ string[] * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('expanded' of type 'string[]') * * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * * DtoNestedVariable for expanded @ /usr/include/dlang/ldc/std/getopt.d(654) * * * * * * * * * * * * * * * * * SliceExp::toElem: args[0..i] @ string[] * * * * * * * * * * * * * * * * * * VarExp::toElem: args @ string[] * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('args' of type 'string[]') * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * type: string[] * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * * * * * * VarExp::toElem: i @ ulong * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'ulong') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * * SetArray * * * * * * * * * * * * * * * * * DtoTypeInfoOf(type = 'string[]', base='1') * * * * * * * * * * * * * * * * * * Type::getTypeInfo(): string[] * * * * * * * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(string[])) * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * SetArray * * * * * * * * * * * * * ContinueStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(655) * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(658) * * * * * * * * * * * DeclarationExp::toElem: string val = null; | T=void * * * * * * * * * * * * DtoDeclarationExp: val * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * DtoVarDeclaration(vdtype = string) * * * * * * * * * * * * * * llvm value for decl: %val = alloca { i64, i8* }, align 8 * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * AssignExp::toElem: val = null | (string)(string = string) * * * * * * * * * * * * * * * VarExp::toElem: val @ string * * * * * * * * * * * * * * * * DtoSymbolAddress ('val' of type 'string') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * NullExp::toElem(type=string): null * * * * * * * * * * * * * * * * NullExp::toConstElem(type=string): null * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * * * DtoSetArrayToNull * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(659) * * * * * * * * * * * NotExp::toElem: !optMatch(a, option, val, cfg) @ bool * * * * * * * * * * * * CallExp::toElem: optMatch(a, option, val, cfg) @ bool * * * * * * * * * * * * * VarExp::toElem: optMatch @ bool(string arg, string optPattern, ref string value, configuration cfg) * * * * * * * * * * * * * * DtoSymbolAddress ('optMatch' of type 'bool(string arg, string optPattern, ref string value, configuration cfg)') * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * Function type: bool(string arg, string optPattern, ref string value, configuration cfg) * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * VarExp::toElem: a @ string * * * * * * * * * * * * * * * * DtoSymbolAddress ('a' of type 'string') * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * DtoNestedVariable for a @ /usr/include/dlang/ldc/std/getopt.d(659) * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * VarExp::toElem: option @ string * * * * * * * * * * * * * * * * DtoSymbolAddress ('option' of type 'string') * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * type: string * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * VarExp::toElem: val @ string * * * * * * * * * * * * * * * * DtoSymbolAddress ('val' of type 'string') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * VarExp::toElem: cfg @ configuration * * * * * * * * * * * * * * * * DtoSymbolAddress ('cfg' of type 'configuration') * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * type: configuration * * * * * * * * * * * * * * Loading struct type for function argument * * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(660) * * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(660) * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(661) * * * * * * * * * * * * * * AddAssignExp::toElem: i += 1LU @ ulong * * * * * * * * * * * * * * * Caching l-value of i += 1LU => i * * * * * * * * * * * * * * * * VarExp::toElem: i @ ulong * * * * * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'ulong') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * AddExp::toElem: i + 1LU @ ulong * * * * * * * * * * * * * * * * VarExp::toElem: i @ ulong * * * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * lhs: %i = alloca i64, align 8 * * * * * * * * * * * * * * * * rhs: %85 = add i64 %84, 1 * * * * * * * * * * * * * ContinueStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(662) * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(665) * * * * * * * * * * * AssignExp::toElem: ret = true | (bool)(bool = bool) * * * * * * * * * * * * VarExp::toElem: ret @ bool * * * * * * * * * * * * * DtoSymbolAddress ('ret' of type 'bool') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * IntegerExp::toElem: true @ bool * * * * * * * * * * * * * IntegerExp::toConstElem: true @ bool * * * * * * * * * * * * * * value = i1 true * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * DtoAssign() * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(670) * * * * * * * * * * * AssignExp::toElem: args = args[0..i] ~ args[i + 1LU..__dollar] | (string[])(string[] = string[]) * * * * * * * * * * * * VarExp::toElem: args @ string[] * * * * * * * * * * * * * DtoSymbolAddress ('args' of type 'string[]') * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * type: string[] * * * * * * * * * * * * CatExp::toElem: args[0..i] ~ args[i + 1LU..__dollar] @ string[] * * * * * * * * * * * * * DtoCatAssignArray * * * * * * * * * * * * * * DtoTypeInfoOf(type = 'string[]', base='1') * * * * * * * * * * * * * * * Type::getTypeInfo(): string[] * * * * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(string[])) * * * * * * * * * * * * * * SliceExp::toElem: args[0..i] @ string[] * * * * * * * * * * * * * * * VarExp::toElem: args @ string[] * * * * * * * * * * * * * * * * DtoSymbolAddress ('args' of type 'string[]') * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * type: string[] * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * * * VarExp::toElem: i @ ulong * * * * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'ulong') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * SetArray * * * * * * * * * * * * * * SliceExp::toElem: args[i + 1LU..__dollar] @ string[] * * * * * * * * * * * * * * * VarExp::toElem: args @ string[] * * * * * * * * * * * * * * * * DtoSymbolAddress ('args' of type 'string[]') * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * type: string[] * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * AddExp::toElem: i + 1LU @ ulong * * * * * * * * * * * * * * * * VarExp::toElem: i @ ulong * * * * * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'ulong') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * * * VarExp::toElem: __dollar @ ulong * * * * * * * * * * * * * * * * DtoSymbolAddress ('__dollar' of type 'ulong') * * * * * * * * * * * * * * * * * Id::dollar * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * SetArray * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * SetArray * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(675) * * * * * * * * * * * ArrayLengthExp::toElem: val.length @ ulong * * * * * * * * * * * * VarExp::toElem: val @ string * * * * * * * * * * * * * DtoSymbolAddress ('val' of type 'string') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * if conditional: %.len59 = load i64, i64* %112 * * * * * * * * * * * Casting from 'ulong' to 'bool' * * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(676) * * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(676) * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(677) * * * * * * * * * * * * * * AssignExp::toElem: *receiver = to(val) | (bool)(bool = bool) * * * * * * * * * * * * * * * PtrExp::toElem: *receiver @ bool * * * * * * * * * * * * * * * * VarExp::toElem: receiver @ bool* * * * * * * * * * * * * * * * * * DtoSymbolAddress ('receiver' of type 'bool*') * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * type: bool* * * * * * * * * * * * * * * * CallExp::toElem: to(val) @ bool * * * * * * * * * * * * * * * * VarExp::toElem: to @ pure @safe bool(string _param_0) * * * * * * * * * * * * * * * * * DtoSymbolAddress ('to' of type 'pure @safe bool(string _param_0)') * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * Building type: pure @safe bool(string _param_0) * * * * * * * * * * * * * * * * * * DtoFunctionType(pure @safe bool(string _param_0)) * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * Final function type: i1 ({ i64, i8* }) * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * Function type: pure @safe bool(string _param_0) * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * VarExp::toElem: val @ string * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('val' of type 'string') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * BreakStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(678) * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(682) * * * * * * * * * * * AssignExp::toElem: *receiver = true | (bool)(bool = bool) * * * * * * * * * * * * PtrExp::toElem: *receiver @ bool * * * * * * * * * * * * * VarExp::toElem: receiver @ bool* * * * * * * * * * * * * * * DtoSymbolAddress ('receiver' of type 'bool*') * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * type: bool* * * * * * * * * * * * * IntegerExp::toElem: true @ bool * * * * * * * * * * * * * IntegerExp::toConstElem: true @ bool * * * * * * * * * * * * * * value = i1 true * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * DtoAssign() * * * * * * * * * * BreakStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(683) * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(791) * * * * * * VarExp::toElem: ret @ bool * * * * * * * DtoSymbolAddress ('ret' of type 'bool') * * * * * * * * a normal variable * * * * * * return value is '0x12f941a8' * TemplateInstance::codegen: 'std.getopt.getoptImpl!(string, bool*, string, bool*, string, bool*, string, bool*, string, bool*, string, string*, string, bool*, string, bool*, string, bool*, string, string*)' * * DtoDefineFunction(std.getopt.getoptImpl!(string, bool*, string, bool*, string, bool*, string, bool*, string, bool*, string, string*, string, bool*, string, bool*, string, bool*, string, string*).getoptImpl): /usr/include/dlang/ldc/std/getopt.d(526) * * * Doing function body for: getoptImpl * * * DtoCreateNestedContext for getoptImpl * * * * DtoCreateNestedContextType for std.getopt.getoptImpl!(string, bool*, string, bool*, string, bool*, string, bool*, string, bool*, string, string*, string, bool*, string, bool*, string, bool*, string, string*).getoptImpl * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(528) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(542) * * * * * * DeclarationExp::toElem: string option = to(_param_3); | T=void * * * * * * * DtoDeclarationExp: option * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = string) * * * * * * * * * llvm value for decl: %option = alloca { i64, i8* }, align 8 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: option = to(_param_3) | (string)(string = string) * * * * * * * * * * VarExp::toElem: option @ string * * * * * * * * * * * DtoSymbolAddress ('option' of type 'string') * * * * * * * * * * * * a normal variable * * * * * * * * * * CallExp::toElem: to(_param_3) @ string * * * * * * * * * * * VarExp::toElem: to @ pure nothrow @nogc @safe string(string _param_0) * * * * * * * * * * * * DtoSymbolAddress ('to' of type 'pure nothrow @nogc @safe string(string _param_0)') * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * Function type: pure nothrow @nogc @safe string(string _param_0) * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * VarExp::toElem: _param_3 @ string * * * * * * * * * * * * * * DtoSymbolAddress ('_param_3' of type 'string') * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * type: string * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * SetArray * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(543) * * * * * * DeclarationExp::toElem: Option optionHelp = splitAndGet(option); | T=void * * * * * * * DtoDeclarationExp: optionHelp * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = Option) * * * * * * * * * VarExp::toElem: splitAndGet @ pure nothrow @trusted Option(string opt) * * * * * * * * * * DtoSymbolAddress ('splitAndGet' of type 'pure nothrow @trusted Option(string opt)') * * * * * * * * * * * FuncDeclaration * * * * * * * * * DtoCallFunction() * * * * * * * * * * doing normal arguments * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * %optionHelp = alloca %std.getopt.Option, align 8 * * * * * * * * * * Function type: pure nothrow @trusted Option(string opt) * * * * * * * * * * DtoArgument * * * * * * * * * * * VarExp::toElem: option @ string * * * * * * * * * * * * DtoSymbolAddress ('option' of type 'string') * * * * * * * * * * * * * a normal variable * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(544) * * * * * * AssignExp::toElem: optionHelp.required = cfg.required() | (bool)(bool = bool) * * * * * * * DotVarExp::toElem: optionHelp.required @ bool * * * * * * * * VarExp::toElem: optionHelp @ Option * * * * * * * * * DtoSymbolAddress ('optionHelp' of type 'Option') * * * * * * * * * * a normal variable * * * * * * * * Indexing aggregate field std.getopt.Option.required: * * * * * * * * * Value: %6 = getelementptr %std.getopt.Option, %std.getopt.Option* %optionHelp, i32 0, i32 3 * * * * * * * CallExp::toElem: cfg.required() @ bool * * * * * * * * DotVarExp::toElem: cfg.required @ const pure nothrow @nogc @property @safe bool() * * * * * * * * * VarExp::toElem: cfg @ configuration * * * * * * * * * * DtoSymbolAddress ('cfg' of type 'configuration') * * * * * * * * * * * function param * * * * * * * * * * * type: configuration * * * * * * * * DtoCallFunction() * * * * * * * * * doing normal arguments * * * * * * * * * Arguments so far: (1) * * * * * * * * * * %std.getopt.configuration* %cfg_arg * * * * * * * * * Function type: const pure nothrow @nogc @property @safe bool() * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * DtoAssign() * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(554) * * * * * * DeclarationExp::toElem: bool* receiver = _param_4; | T=void * * * * * * * DtoDeclarationExp: receiver * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = bool*) * * * * * * * * * llvm value for decl: %receiver = alloca i8*, align 8 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: receiver = _param_4 | (bool*)(bool* = bool*) * * * * * * * * * * VarExp::toElem: receiver @ bool* * * * * * * * * * * * DtoSymbolAddress ('receiver' of type 'bool*') * * * * * * * * * * * * a normal variable * * * * * * * * * * VarExp::toElem: _param_4 @ bool* * * * * * * * * * * * DtoSymbolAddress ('_param_4' of type 'bool*') * * * * * * * * * * * * function param * * * * * * * * * * * * type: bool* * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %receiver = alloca i8*, align 8 * * * * * * * * * * * rhs: %9 = load i8*, i8** %_param_4 * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(555) * * * * * * DeclarationExp::toElem: immutable immutable(int) lowSliceIdx = 2; | T=void * * * * * * * DtoDeclarationExp: lowSliceIdx * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = immutable(int)) * * * * * * * * * llvm value for decl: %lowSliceIdx = alloca i32, align 4 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: lowSliceIdx = 2 | (immutable(int))(immutable(int) = immutable(int)) * * * * * * * * * * VarExp::toElem: lowSliceIdx @ immutable(int) * * * * * * * * * * * DtoSymbolAddress ('lowSliceIdx' of type 'immutable(int)') * * * * * * * * * * * * a normal variable * * * * * * * * * * IntegerExp::toElem: 2 @ immutable(int) * * * * * * * * * * * IntegerExp::toConstElem: 2 @ immutable(int) * * * * * * * * * * * * value = i32 2 * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %lowSliceIdx = alloca i32, align 4 * * * * * * * * * * * rhs: i32 2 * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(558) * * * * * * CatAssignExp::toElem: rslt.options ~= optionHelp @ Option[] * * * * * * * DotVarExp::toElem: rslt.options @ Option[] * * * * * * * * VarExp::toElem: rslt @ GetoptResult * * * * * * * * * DtoSymbolAddress ('rslt' of type 'GetoptResult') * * * * * * * * * * function param * * * * * * * * * * type: GetoptResult * * * * * * * * Indexing aggregate field std.getopt.GetoptResult.options: * * * * * * * * * Value: %10 = getelementptr %std.getopt.GetoptResult, %std.getopt.GetoptResult* %rslt_arg, i32 0, i32 2 * * * * * * * DtoCatAssignElement * * * * * * * * DtoArrayLen * * * * * * * * VarExp::toElem: optionHelp @ Option * * * * * * * * * DtoSymbolAddress ('optionHelp' of type 'Option') * * * * * * * * * * a normal variable * * * * * * * * DtoTypeInfoOf(type = 'Option[]', base='1') * * * * * * * * * Type::getTypeInfo(): Option[] * * * * * * * * * TypeInfoDeclaration::codegen(typeid(Option[])) * * * * * * * * DtoArrayPtr * * * * * * * * DtoAssign() * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(560) * * * * * * DeclarationExp::toElem: bool incremental = false; | T=void * * * * * * * DtoDeclarationExp: incremental * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = bool) * * * * * * * * * llvm value for decl: %incremental = alloca i8, align 1 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: incremental = false | (bool)(bool = bool) * * * * * * * * * * VarExp::toElem: incremental @ bool * * * * * * * * * * * DtoSymbolAddress ('incremental' of type 'bool') * * * * * * * * * * * * a normal variable * * * * * * * * * * IntegerExp::toElem: false @ bool * * * * * * * * * * * IntegerExp::toConstElem: false @ bool * * * * * * * * * * * * value = i1 false * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(562) * * * * * * AndAndExp::toElem: option.length && cast(int)option[__dollar - 1LU] == 43 @ bool * * * * * * * ArrayLengthExp::toElem: option.length @ ulong * * * * * * * * VarExp::toElem: option @ string * * * * * * * * * DtoSymbolAddress ('option' of type 'string') * * * * * * * * * * a normal variable * * * * * * * * DtoArrayLen * * * * * * * Casting from 'ulong' to 'bool' * * * * * * * EqualExp::toElem: cast(int)option[__dollar - 1LU] == 43 @ bool * * * * * * * * CastExp::toElem: cast(int)option[__dollar - 1LU] @ int * * * * * * * * * IndexExp::toElem: option[__dollar - 1LU] @ immutable(char) * * * * * * * * * * VarExp::toElem: option @ string * * * * * * * * * * * DtoSymbolAddress ('option' of type 'string') * * * * * * * * * * * * a normal variable * * * * * * * * * * MinExp::toElem: __dollar - 1LU @ ulong * * * * * * * * * * * VarExp::toElem: __dollar @ ulong * * * * * * * * * * * * DtoSymbolAddress ('__dollar' of type 'ulong') * * * * * * * * * * * * * Id::dollar * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * DtoArrayPtr * * * * * * * * * Casting from 'immutable(char)' to 'int' * * * * * * * * * * cast to: i32 * * * * * * * * IntegerExp::toElem: 43 @ int * * * * * * * * * IntegerExp::toConstElem: 43 @ int * * * * * * * * * * value = i32 43 * * * * * * * * integral or pointer or interface * * * * * * * * lv: %28 = zext i8 %27 to i32 * * * * * * * * rv: i32 43 * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(563) * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(563) * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(564) * * * * * * * * * AssignExp::toElem: option = option[0..__dollar - 1LU] | (string)(string = string) * * * * * * * * * * VarExp::toElem: option @ string * * * * * * * * * * * DtoSymbolAddress ('option' of type 'string') * * * * * * * * * * * * a normal variable * * * * * * * * * * SliceExp::toElem: option[0..__dollar - 1LU] @ string * * * * * * * * * * * VarExp::toElem: option @ string * * * * * * * * * * * * DtoSymbolAddress ('option' of type 'string') * * * * * * * * * * * * * a normal variable * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * MinExp::toElem: __dollar - 1LU @ ulong * * * * * * * * * * * * VarExp::toElem: __dollar @ ulong * * * * * * * * * * * * * DtoSymbolAddress ('__dollar' of type 'ulong') * * * * * * * * * * * * * * Id::dollar * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * DtoAssign() * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * SetArray * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(565) * * * * * * * * * AssignExp::toElem: incremental = true | (bool)(bool = bool) * * * * * * * * * * VarExp::toElem: incremental @ bool * * * * * * * * * * * DtoSymbolAddress ('incremental' of type 'bool') * * * * * * * * * * * * a normal variable * * * * * * * * * * IntegerExp::toElem: true @ bool * * * * * * * * * * * IntegerExp::toConstElem: true @ bool * * * * * * * * * * * * value = i1 true * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(568) * * * * * * DeclarationExp::toElem: bool optWasHandled = handleOption(option, receiver, args, cfg, incremental); | T=void * * * * * * * DtoDeclarationExp: optWasHandled * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = bool) * * * * * * * * * llvm value for decl: %optWasHandled = alloca i8, align 1 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: optWasHandled = handleOption(option, receiver, args, cfg, incremental) | (bool)(bool = bool) * * * * * * * * * * VarExp::toElem: optWasHandled @ bool * * * * * * * * * * * DtoSymbolAddress ('optWasHandled' of type 'bool') * * * * * * * * * * * * a normal variable * * * * * * * * * * CallExp::toElem: handleOption(option, receiver, args, cfg, incremental) @ bool * * * * * * * * * * * VarExp::toElem: handleOption @ @system bool(string option, bool* receiver, ref string[] args, ref configuration cfg, bool incremental) * * * * * * * * * * * * DtoSymbolAddress ('handleOption' of type '@system bool(string option, bool* receiver, ref string[] args, ref configuration cfg, bool incremental)') * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * Function type: @system bool(string option, bool* receiver, ref string[] args, ref configuration cfg, bool incremental) * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * VarExp::toElem: option @ string * * * * * * * * * * * * * * DtoSymbolAddress ('option' of type 'string') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * VarExp::toElem: receiver @ bool* * * * * * * * * * * * * * * DtoSymbolAddress ('receiver' of type 'bool*') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * VarExp::toElem: args @ string[] * * * * * * * * * * * * * * DtoSymbolAddress ('args' of type 'string[]') * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * type: string[] * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * VarExp::toElem: cfg @ configuration * * * * * * * * * * * * * * DtoSymbolAddress ('cfg' of type 'configuration') * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * type: configuration * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * VarExp::toElem: incremental @ bool * * * * * * * * * * * * * * DtoSymbolAddress ('incremental' of type 'bool') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(570) * * * * * * AndAndExp::toElem: cfg.required() && !optWasHandled @ bool * * * * * * * CallExp::toElem: cfg.required() @ bool * * * * * * * * DotVarExp::toElem: cfg.required @ const pure nothrow @nogc @property @safe bool() * * * * * * * * * VarExp::toElem: cfg @ configuration * * * * * * * * * * DtoSymbolAddress ('cfg' of type 'configuration') * * * * * * * * * * * function param * * * * * * * * * * * type: configuration * * * * * * * * DtoCallFunction() * * * * * * * * * doing normal arguments * * * * * * * * * Arguments so far: (1) * * * * * * * * * * %std.getopt.configuration* %cfg_arg * * * * * * * * * Function type: const pure nothrow @nogc @property @safe bool() * * * * * * * NotExp::toElem: !optWasHandled @ bool * * * * * * * * VarExp::toElem: optWasHandled @ bool * * * * * * * * * DtoSymbolAddress ('optWasHandled' of type 'bool') * * * * * * * * * * a normal variable * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(571) * * * * * * * ThrowStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(572) * * * * * * * * NewExp::toElem: new GetOptException("Required option " ~ option ~ "was not supplied", "/usr/include/dlang/ldc/std/getopt.d", 572LU) @ std.getopt.GetOptException * * * * * * * * * new class * * * * * * * * * Calling constructor * * * * * * * * * DtoCallFunction() * * * * * * * * * * doing normal arguments * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * %.newclass_gc = bitcast %object.Object* %.newclass_gc_alloc to %std.getopt.GetOptException* * * * * * * * * * * Function type: pure nothrow @safe GetOptException(string msg, string file = __FILE__, ulong line = cast(ulong)__LINE__) * * * * * * * * * * DtoArgument * * * * * * * * * * * CatExp::toElem: "Required option " ~ option ~ "was not supplied" @ string * * * * * * * * * * * * DtoCatAssignArray * * * * * * * * * * * * * StringExp::toElem: "was not supplied" @ string * * * * * * * * * * * * * VarExp::toElem: option @ string * * * * * * * * * * * * * * DtoSymbolAddress ('option' of type 'string') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * StringExp::toElem: "Required option " @ string * * * * * * * * * * * * * DtoTypeInfoOf(type = 'string', base='1') * * * * * * * * * * * * * * Type::getTypeInfo(): string * * * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(string)) * * * * * * * * * * DtoArgument * * * * * * * * * * * StringExp::toElem: "/usr/include/dlang/ldc/std/getopt.d" @ string * * * * * * * * * * DtoArgument * * * * * * * * * * * IntegerExp::toElem: 572LU @ ulong * * * * * * * * * * * * IntegerExp::toConstElem: 572LU @ ulong * * * * * * * * * * * * * value = i64 572 * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(575) * * * * * * CallExp::toElem: cfg.required(false) @ void * * * * * * * DotVarExp::toElem: cfg.required @ pure nothrow @nogc @property @safe void(bool v) * * * * * * * * VarExp::toElem: cfg @ configuration * * * * * * * * * DtoSymbolAddress ('cfg' of type 'configuration') * * * * * * * * * * function param * * * * * * * * * * type: configuration * * * * * * * DtoCallFunction() * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (1) * * * * * * * * * %std.getopt.configuration* %cfg_arg * * * * * * * * Function type: pure nothrow @nogc @property @safe void(bool v) * * * * * * * * DtoArgument * * * * * * * * * IntegerExp::toElem: false @ bool * * * * * * * * * * IntegerExp::toConstElem: false @ bool * * * * * * * * * * * value = i1 false * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(577) * * * * * * CallExp::toElem: getoptImpl(args, cfg, rslt, _param_5, _param_6, _param_7, _param_8, _param_9, _param_10, _param_11, _param_12, _param_13, _param_14, _param_15, _param_16, _param_17, _param_18, _param_19, _param_20, _param_21, _param_22) @ void * * * * * * * VarExp::toElem: getoptImpl @ @system void(ref string[] args, ref configuration cfg, ref GetoptResult rslt, string _param_3, bool* _param_4, string _param_5, bool* _param_6, string _param_7, bool* _param_8, string _param_9, bool* _param_10, string _param_11, string* _param_12, string _param_13, bool* _param_14, string _param_15, bool* _param_16, string _param_17, bool* _param_18, string _param_19, string* _param_20) * * * * * * * * DtoSymbolAddress ('getoptImpl' of type '@system void(ref string[] args, ref configuration cfg, ref GetoptResult rslt, string _param_3, bool* _param_4, string _param_5, bool* _param_6, string _param_7, bool* _param_8, string _param_9, bool* _param_10, string _param_11, string* _param_12, string _param_13, bool* _param_14, string _param_15, bool* _param_16, string _param_17, bool* _param_18, string _param_19, string* _param_20)') * * * * * * * * * FuncDeclaration * * * * * * * * * DtoFunctionType(@system void(ref string[] args, ref configuration cfg, ref GetoptResult rslt, string _param_3, bool* _param_4, string _param_5, bool* _param_6, string _param_7, bool* _param_8, string _param_9, bool* _param_10, string _param_11, string* _param_12, string _param_13, bool* _param_14, string _param_15, bool* _param_16, string _param_17, bool* _param_18, string _param_19, string* _param_20)) * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: void ({ i64, i8* }*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, { i64, i8* }*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, %std.getopt.GetoptResult*, %std.getopt.configuration*, { i64, { i64, i8* }* }*) * * * * * * * * * DtoResolveFunction(std.getopt.getoptImpl!(string, bool*, string, bool*, string, bool*, string, bool*, string, string*, string, bool*, string, bool*, string, bool*, string, string*).getoptImpl): /usr/include/dlang/ldc/std/getopt.d(526) * * * * * * * * * * DtoDeclareFunction(std.getopt.getoptImpl!(string, bool*, string, bool*, string, bool*, string, bool*, string, string*, string, bool*, string, bool*, string, bool*, string, string*).getoptImpl): /usr/include/dlang/ldc/std/getopt.d(526) * * * * * * * * * * * DtoFunctionType(@system void(ref string[] args, ref configuration cfg, ref GetoptResult rslt, string _param_3, bool* _param_4, string _param_5, bool* _param_6, string _param_7, bool* _param_8, string _param_9, bool* _param_10, string _param_11, string* _param_12, string _param_13, bool* _param_14, string _param_15, bool* _param_16, string _param_17, bool* _param_18, string _param_19, string* _param_20)) * * * * * * * * * * * func = declare void @_D3std6getopt83__T10getoptImplTAyaTPbTAyaTPbTAyaTPbTAyaTPbTAyaTPAyaTAyaTPbTAyaTPbTAyaTPbTAyaTPAyaZ10getoptImplFKAAyaKS3std6getopt13configurationKS3std6getopt12GetoptResultAyaPbAyaPbAyaPbAyaPbAyaPAyaAyaPbAyaPbAyaPbAyaPAyaZv({ i64, i8* }*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, { i64, i8* }*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, %std.getopt.GetoptResult*, %std.getopt.configuration*, { i64, { i64, i8* }* }*) * * * * * * * DtoCallFunction() * * * * * * * * Building type: @system void(ref string[] args, ref configuration cfg, ref GetoptResult rslt, string _param_3, bool* _param_4, string _param_5, bool* _param_6, string _param_7, bool* _param_8, string _param_9, bool* _param_10, string _param_11, string* _param_12, string _param_13, bool* _param_14, string _param_15, bool* _param_16, string _param_17, bool* _param_18, string _param_19, string* _param_20) * * * * * * * * * DtoFunctionType(@system void(ref string[] args, ref configuration cfg, ref GetoptResult rslt, string _param_3, bool* _param_4, string _param_5, bool* _param_6, string _param_7, bool* _param_8, string _param_9, bool* _param_10, string _param_11, string* _param_12, string _param_13, bool* _param_14, string _param_15, bool* _param_16, string _param_17, bool* _param_18, string _param_19, string* _param_20)) * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: void ({ i64, i8* }*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, { i64, i8* }*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, %std.getopt.GetoptResult*, %std.getopt.configuration*, { i64, { i64, i8* }* }*) * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (0) * * * * * * * * Function type: @system void(ref string[] args, ref configuration cfg, ref GetoptResult rslt, string _param_3, bool* _param_4, string _param_5, bool* _param_6, string _param_7, bool* _param_8, string _param_9, bool* _param_10, string _param_11, string* _param_12, string _param_13, bool* _param_14, string _param_15, bool* _param_16, string _param_17, bool* _param_18, string _param_19, string* _param_20) * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: args @ string[] * * * * * * * * * * DtoSymbolAddress ('args' of type 'string[]') * * * * * * * * * * * function param * * * * * * * * * * * type: string[] * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: cfg @ configuration * * * * * * * * * * DtoSymbolAddress ('cfg' of type 'configuration') * * * * * * * * * * * function param * * * * * * * * * * * type: configuration * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: rslt @ GetoptResult * * * * * * * * * * DtoSymbolAddress ('rslt' of type 'GetoptResult') * * * * * * * * * * * function param * * * * * * * * * * * type: GetoptResult * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_5 @ string * * * * * * * * * * DtoSymbolAddress ('_param_5' of type 'string') * * * * * * * * * * * function param * * * * * * * * * * * type: string * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_6 @ bool* * * * * * * * * * * DtoSymbolAddress ('_param_6' of type 'bool*') * * * * * * * * * * * function param * * * * * * * * * * * type: bool* * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_7 @ string * * * * * * * * * * DtoSymbolAddress ('_param_7' of type 'string') * * * * * * * * * * * function param * * * * * * * * * * * type: string * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_8 @ bool* * * * * * * * * * * DtoSymbolAddress ('_param_8' of type 'bool*') * * * * * * * * * * * function param * * * * * * * * * * * type: bool* * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_9 @ string * * * * * * * * * * DtoSymbolAddress ('_param_9' of type 'string') * * * * * * * * * * * function param * * * * * * * * * * * type: string * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_10 @ bool* * * * * * * * * * * DtoSymbolAddress ('_param_10' of type 'bool*') * * * * * * * * * * * function param * * * * * * * * * * * type: bool* * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_11 @ string * * * * * * * * * * DtoSymbolAddress ('_param_11' of type 'string') * * * * * * * * * * * function param * * * * * * * * * * * type: string * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_12 @ bool* * * * * * * * * * * DtoSymbolAddress ('_param_12' of type 'bool*') * * * * * * * * * * * function param * * * * * * * * * * * type: bool* * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_13 @ string * * * * * * * * * * DtoSymbolAddress ('_param_13' of type 'string') * * * * * * * * * * * function param * * * * * * * * * * * type: string * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_14 @ string* * * * * * * * * * * DtoSymbolAddress ('_param_14' of type 'string*') * * * * * * * * * * * function param * * * * * * * * * * * type: string* * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_15 @ string * * * * * * * * * * DtoSymbolAddress ('_param_15' of type 'string') * * * * * * * * * * * function param * * * * * * * * * * * type: string * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_16 @ bool* * * * * * * * * * * DtoSymbolAddress ('_param_16' of type 'bool*') * * * * * * * * * * * function param * * * * * * * * * * * type: bool* * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_17 @ string * * * * * * * * * * DtoSymbolAddress ('_param_17' of type 'string') * * * * * * * * * * * function param * * * * * * * * * * * type: string * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_18 @ bool* * * * * * * * * * * DtoSymbolAddress ('_param_18' of type 'bool*') * * * * * * * * * * * function param * * * * * * * * * * * type: bool* * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_19 @ string * * * * * * * * * * DtoSymbolAddress ('_param_19' of type 'string') * * * * * * * * * * * function param * * * * * * * * * * * type: string * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_20 @ bool* * * * * * * * * * * DtoSymbolAddress ('_param_20' of type 'bool*') * * * * * * * * * * * function param * * * * * * * * * * * type: bool* * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_21 @ string * * * * * * * * * * DtoSymbolAddress ('_param_21' of type 'string') * * * * * * * * * * * function param * * * * * * * * * * * type: string * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_22 @ string* * * * * * * * * * * DtoSymbolAddress ('_param_22' of type 'string*') * * * * * * * * * * * function param * * * * * * * * * * * type: string* * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(577) * TemplateInstance::codegen: 'std.getopt.getoptImpl!(string, bool*, string, bool*, string, bool*, string, bool*, string, string*, string, bool*, string, bool*, string, bool*, string, string*)' * * DtoDefineFunction(std.getopt.getoptImpl!(string, bool*, string, bool*, string, bool*, string, bool*, string, string*, string, bool*, string, bool*, string, bool*, string, string*).getoptImpl): /usr/include/dlang/ldc/std/getopt.d(526) * * * Doing function body for: getoptImpl * * * DtoCreateNestedContext for getoptImpl * * * * DtoCreateNestedContextType for std.getopt.getoptImpl!(string, bool*, string, bool*, string, bool*, string, bool*, string, string*, string, bool*, string, bool*, string, bool*, string, string*).getoptImpl * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(528) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(542) * * * * * * DeclarationExp::toElem: string option = to(_param_3); | T=void * * * * * * * DtoDeclarationExp: option * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = string) * * * * * * * * * llvm value for decl: %option = alloca { i64, i8* }, align 8 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: option = to(_param_3) | (string)(string = string) * * * * * * * * * * VarExp::toElem: option @ string * * * * * * * * * * * DtoSymbolAddress ('option' of type 'string') * * * * * * * * * * * * a normal variable * * * * * * * * * * CallExp::toElem: to(_param_3) @ string * * * * * * * * * * * VarExp::toElem: to @ pure nothrow @nogc @safe string(string _param_0) * * * * * * * * * * * * DtoSymbolAddress ('to' of type 'pure nothrow @nogc @safe string(string _param_0)') * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * Function type: pure nothrow @nogc @safe string(string _param_0) * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * VarExp::toElem: _param_3 @ string * * * * * * * * * * * * * * DtoSymbolAddress ('_param_3' of type 'string') * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * type: string * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * SetArray * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(543) * * * * * * DeclarationExp::toElem: Option optionHelp = splitAndGet(option); | T=void * * * * * * * DtoDeclarationExp: optionHelp * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = Option) * * * * * * * * * VarExp::toElem: splitAndGet @ pure nothrow @trusted Option(string opt) * * * * * * * * * * DtoSymbolAddress ('splitAndGet' of type 'pure nothrow @trusted Option(string opt)') * * * * * * * * * * * FuncDeclaration * * * * * * * * * DtoCallFunction() * * * * * * * * * * doing normal arguments * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * %optionHelp = alloca %std.getopt.Option, align 8 * * * * * * * * * * Function type: pure nothrow @trusted Option(string opt) * * * * * * * * * * DtoArgument * * * * * * * * * * * VarExp::toElem: option @ string * * * * * * * * * * * * DtoSymbolAddress ('option' of type 'string') * * * * * * * * * * * * * a normal variable * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(544) * * * * * * AssignExp::toElem: optionHelp.required = cfg.required() | (bool)(bool = bool) * * * * * * * DotVarExp::toElem: optionHelp.required @ bool * * * * * * * * VarExp::toElem: optionHelp @ Option * * * * * * * * * DtoSymbolAddress ('optionHelp' of type 'Option') * * * * * * * * * * a normal variable * * * * * * * * Indexing aggregate field std.getopt.Option.required: * * * * * * * * * Value: %6 = getelementptr %std.getopt.Option, %std.getopt.Option* %optionHelp, i32 0, i32 3 * * * * * * * CallExp::toElem: cfg.required() @ bool * * * * * * * * DotVarExp::toElem: cfg.required @ const pure nothrow @nogc @property @safe bool() * * * * * * * * * VarExp::toElem: cfg @ configuration * * * * * * * * * * DtoSymbolAddress ('cfg' of type 'configuration') * * * * * * * * * * * function param * * * * * * * * * * * type: configuration * * * * * * * * DtoCallFunction() * * * * * * * * * doing normal arguments * * * * * * * * * Arguments so far: (1) * * * * * * * * * * %std.getopt.configuration* %cfg_arg * * * * * * * * * Function type: const pure nothrow @nogc @property @safe bool() * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * DtoAssign() * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(554) * * * * * * DeclarationExp::toElem: bool* receiver = _param_4; | T=void * * * * * * * DtoDeclarationExp: receiver * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = bool*) * * * * * * * * * llvm value for decl: %receiver = alloca i8*, align 8 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: receiver = _param_4 | (bool*)(bool* = bool*) * * * * * * * * * * VarExp::toElem: receiver @ bool* * * * * * * * * * * * DtoSymbolAddress ('receiver' of type 'bool*') * * * * * * * * * * * * a normal variable * * * * * * * * * * VarExp::toElem: _param_4 @ bool* * * * * * * * * * * * DtoSymbolAddress ('_param_4' of type 'bool*') * * * * * * * * * * * * function param * * * * * * * * * * * * type: bool* * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %receiver = alloca i8*, align 8 * * * * * * * * * * * rhs: %9 = load i8*, i8** %_param_4 * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(555) * * * * * * DeclarationExp::toElem: immutable immutable(int) lowSliceIdx = 2; | T=void * * * * * * * DtoDeclarationExp: lowSliceIdx * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = immutable(int)) * * * * * * * * * llvm value for decl: %lowSliceIdx = alloca i32, align 4 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: lowSliceIdx = 2 | (immutable(int))(immutable(int) = immutable(int)) * * * * * * * * * * VarExp::toElem: lowSliceIdx @ immutable(int) * * * * * * * * * * * DtoSymbolAddress ('lowSliceIdx' of type 'immutable(int)') * * * * * * * * * * * * a normal variable * * * * * * * * * * IntegerExp::toElem: 2 @ immutable(int) * * * * * * * * * * * IntegerExp::toConstElem: 2 @ immutable(int) * * * * * * * * * * * * value = i32 2 * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %lowSliceIdx = alloca i32, align 4 * * * * * * * * * * * rhs: i32 2 * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(558) * * * * * * CatAssignExp::toElem: rslt.options ~= optionHelp @ Option[] * * * * * * * DotVarExp::toElem: rslt.options @ Option[] * * * * * * * * VarExp::toElem: rslt @ GetoptResult * * * * * * * * * DtoSymbolAddress ('rslt' of type 'GetoptResult') * * * * * * * * * * function param * * * * * * * * * * type: GetoptResult * * * * * * * * Indexing aggregate field std.getopt.GetoptResult.options: * * * * * * * * * Value: %10 = getelementptr %std.getopt.GetoptResult, %std.getopt.GetoptResult* %rslt_arg, i32 0, i32 2 * * * * * * * DtoCatAssignElement * * * * * * * * DtoArrayLen * * * * * * * * VarExp::toElem: optionHelp @ Option * * * * * * * * * DtoSymbolAddress ('optionHelp' of type 'Option') * * * * * * * * * * a normal variable * * * * * * * * DtoTypeInfoOf(type = 'Option[]', base='1') * * * * * * * * * Type::getTypeInfo(): Option[] * * * * * * * * * TypeInfoDeclaration::codegen(typeid(Option[])) * * * * * * * * DtoArrayPtr * * * * * * * * DtoAssign() * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(560) * * * * * * DeclarationExp::toElem: bool incremental = false; | T=void * * * * * * * DtoDeclarationExp: incremental * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = bool) * * * * * * * * * llvm value for decl: %incremental = alloca i8, align 1 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: incremental = false | (bool)(bool = bool) * * * * * * * * * * VarExp::toElem: incremental @ bool * * * * * * * * * * * DtoSymbolAddress ('incremental' of type 'bool') * * * * * * * * * * * * a normal variable * * * * * * * * * * IntegerExp::toElem: false @ bool * * * * * * * * * * * IntegerExp::toConstElem: false @ bool * * * * * * * * * * * * value = i1 false * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(562) * * * * * * AndAndExp::toElem: option.length && cast(int)option[__dollar - 1LU] == 43 @ bool * * * * * * * ArrayLengthExp::toElem: option.length @ ulong * * * * * * * * VarExp::toElem: option @ string * * * * * * * * * DtoSymbolAddress ('option' of type 'string') * * * * * * * * * * a normal variable * * * * * * * * DtoArrayLen * * * * * * * Casting from 'ulong' to 'bool' * * * * * * * EqualExp::toElem: cast(int)option[__dollar - 1LU] == 43 @ bool * * * * * * * * CastExp::toElem: cast(int)option[__dollar - 1LU] @ int * * * * * * * * * IndexExp::toElem: option[__dollar - 1LU] @ immutable(char) * * * * * * * * * * VarExp::toElem: option @ string * * * * * * * * * * * DtoSymbolAddress ('option' of type 'string') * * * * * * * * * * * * a normal variable * * * * * * * * * * MinExp::toElem: __dollar - 1LU @ ulong * * * * * * * * * * * VarExp::toElem: __dollar @ ulong * * * * * * * * * * * * DtoSymbolAddress ('__dollar' of type 'ulong') * * * * * * * * * * * * * Id::dollar * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * DtoArrayPtr * * * * * * * * * Casting from 'immutable(char)' to 'int' * * * * * * * * * * cast to: i32 * * * * * * * * IntegerExp::toElem: 43 @ int * * * * * * * * * IntegerExp::toConstElem: 43 @ int * * * * * * * * * * value = i32 43 * * * * * * * * integral or pointer or interface * * * * * * * * lv: %28 = zext i8 %27 to i32 * * * * * * * * rv: i32 43 * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(563) * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(563) * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(564) * * * * * * * * * AssignExp::toElem: option = option[0..__dollar - 1LU] | (string)(string = string) * * * * * * * * * * VarExp::toElem: option @ string * * * * * * * * * * * DtoSymbolAddress ('option' of type 'string') * * * * * * * * * * * * a normal variable * * * * * * * * * * SliceExp::toElem: option[0..__dollar - 1LU] @ string * * * * * * * * * * * VarExp::toElem: option @ string * * * * * * * * * * * * DtoSymbolAddress ('option' of type 'string') * * * * * * * * * * * * * a normal variable * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * MinExp::toElem: __dollar - 1LU @ ulong * * * * * * * * * * * * VarExp::toElem: __dollar @ ulong * * * * * * * * * * * * * DtoSymbolAddress ('__dollar' of type 'ulong') * * * * * * * * * * * * * * Id::dollar * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * DtoAssign() * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * SetArray * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(565) * * * * * * * * * AssignExp::toElem: incremental = true | (bool)(bool = bool) * * * * * * * * * * VarExp::toElem: incremental @ bool * * * * * * * * * * * DtoSymbolAddress ('incremental' of type 'bool') * * * * * * * * * * * * a normal variable * * * * * * * * * * IntegerExp::toElem: true @ bool * * * * * * * * * * * IntegerExp::toConstElem: true @ bool * * * * * * * * * * * * value = i1 true * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(568) * * * * * * DeclarationExp::toElem: bool optWasHandled = handleOption(option, receiver, args, cfg, incremental); | T=void * * * * * * * DtoDeclarationExp: optWasHandled * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = bool) * * * * * * * * * llvm value for decl: %optWasHandled = alloca i8, align 1 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: optWasHandled = handleOption(option, receiver, args, cfg, incremental) | (bool)(bool = bool) * * * * * * * * * * VarExp::toElem: optWasHandled @ bool * * * * * * * * * * * DtoSymbolAddress ('optWasHandled' of type 'bool') * * * * * * * * * * * * a normal variable * * * * * * * * * * CallExp::toElem: handleOption(option, receiver, args, cfg, incremental) @ bool * * * * * * * * * * * VarExp::toElem: handleOption @ @system bool(string option, bool* receiver, ref string[] args, ref configuration cfg, bool incremental) * * * * * * * * * * * * DtoSymbolAddress ('handleOption' of type '@system bool(string option, bool* receiver, ref string[] args, ref configuration cfg, bool incremental)') * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * Function type: @system bool(string option, bool* receiver, ref string[] args, ref configuration cfg, bool incremental) * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * VarExp::toElem: option @ string * * * * * * * * * * * * * * DtoSymbolAddress ('option' of type 'string') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * VarExp::toElem: receiver @ bool* * * * * * * * * * * * * * * DtoSymbolAddress ('receiver' of type 'bool*') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * VarExp::toElem: args @ string[] * * * * * * * * * * * * * * DtoSymbolAddress ('args' of type 'string[]') * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * type: string[] * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * VarExp::toElem: cfg @ configuration * * * * * * * * * * * * * * DtoSymbolAddress ('cfg' of type 'configuration') * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * type: configuration * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * VarExp::toElem: incremental @ bool * * * * * * * * * * * * * * DtoSymbolAddress ('incremental' of type 'bool') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(570) * * * * * * AndAndExp::toElem: cfg.required() && !optWasHandled @ bool * * * * * * * CallExp::toElem: cfg.required() @ bool * * * * * * * * DotVarExp::toElem: cfg.required @ const pure nothrow @nogc @property @safe bool() * * * * * * * * * VarExp::toElem: cfg @ configuration * * * * * * * * * * DtoSymbolAddress ('cfg' of type 'configuration') * * * * * * * * * * * function param * * * * * * * * * * * type: configuration * * * * * * * * DtoCallFunction() * * * * * * * * * doing normal arguments * * * * * * * * * Arguments so far: (1) * * * * * * * * * * %std.getopt.configuration* %cfg_arg * * * * * * * * * Function type: const pure nothrow @nogc @property @safe bool() * * * * * * * NotExp::toElem: !optWasHandled @ bool * * * * * * * * VarExp::toElem: optWasHandled @ bool * * * * * * * * * DtoSymbolAddress ('optWasHandled' of type 'bool') * * * * * * * * * * a normal variable * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(571) * * * * * * * ThrowStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(572) * * * * * * * * NewExp::toElem: new GetOptException("Required option " ~ option ~ "was not supplied", "/usr/include/dlang/ldc/std/getopt.d", 572LU) @ std.getopt.GetOptException * * * * * * * * * new class * * * * * * * * * Calling constructor * * * * * * * * * DtoCallFunction() * * * * * * * * * * doing normal arguments * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * %.newclass_gc = bitcast %object.Object* %.newclass_gc_alloc to %std.getopt.GetOptException* * * * * * * * * * * Function type: pure nothrow @safe GetOptException(string msg, string file = __FILE__, ulong line = cast(ulong)__LINE__) * * * * * * * * * * DtoArgument * * * * * * * * * * * CatExp::toElem: "Required option " ~ option ~ "was not supplied" @ string * * * * * * * * * * * * DtoCatAssignArray * * * * * * * * * * * * * StringExp::toElem: "was not supplied" @ string * * * * * * * * * * * * * VarExp::toElem: option @ string * * * * * * * * * * * * * * DtoSymbolAddress ('option' of type 'string') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * StringExp::toElem: "Required option " @ string * * * * * * * * * * * * * DtoTypeInfoOf(type = 'string', base='1') * * * * * * * * * * * * * * Type::getTypeInfo(): string * * * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(string)) * * * * * * * * * * DtoArgument * * * * * * * * * * * StringExp::toElem: "/usr/include/dlang/ldc/std/getopt.d" @ string * * * * * * * * * * DtoArgument * * * * * * * * * * * IntegerExp::toElem: 572LU @ ulong * * * * * * * * * * * * IntegerExp::toConstElem: 572LU @ ulong * * * * * * * * * * * * * value = i64 572 * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(575) * * * * * * CallExp::toElem: cfg.required(false) @ void * * * * * * * DotVarExp::toElem: cfg.required @ pure nothrow @nogc @property @safe void(bool v) * * * * * * * * VarExp::toElem: cfg @ configuration * * * * * * * * * DtoSymbolAddress ('cfg' of type 'configuration') * * * * * * * * * * function param * * * * * * * * * * type: configuration * * * * * * * DtoCallFunction() * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (1) * * * * * * * * * %std.getopt.configuration* %cfg_arg * * * * * * * * Function type: pure nothrow @nogc @property @safe void(bool v) * * * * * * * * DtoArgument * * * * * * * * * IntegerExp::toElem: false @ bool * * * * * * * * * * IntegerExp::toConstElem: false @ bool * * * * * * * * * * * value = i1 false * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(577) * * * * * * CallExp::toElem: getoptImpl(args, cfg, rslt, _param_5, _param_6, _param_7, _param_8, _param_9, _param_10, _param_11, _param_12, _param_13, _param_14, _param_15, _param_16, _param_17, _param_18, _param_19, _param_20) @ void * * * * * * * VarExp::toElem: getoptImpl @ @system void(ref string[] args, ref configuration cfg, ref GetoptResult rslt, string _param_3, bool* _param_4, string _param_5, bool* _param_6, string _param_7, bool* _param_8, string _param_9, string* _param_10, string _param_11, bool* _param_12, string _param_13, bool* _param_14, string _param_15, bool* _param_16, string _param_17, string* _param_18) * * * * * * * * DtoSymbolAddress ('getoptImpl' of type '@system void(ref string[] args, ref configuration cfg, ref GetoptResult rslt, string _param_3, bool* _param_4, string _param_5, bool* _param_6, string _param_7, bool* _param_8, string _param_9, string* _param_10, string _param_11, bool* _param_12, string _param_13, bool* _param_14, string _param_15, bool* _param_16, string _param_17, string* _param_18)') * * * * * * * * * FuncDeclaration * * * * * * * * * DtoFunctionType(@system void(ref string[] args, ref configuration cfg, ref GetoptResult rslt, string _param_3, bool* _param_4, string _param_5, bool* _param_6, string _param_7, bool* _param_8, string _param_9, string* _param_10, string _param_11, bool* _param_12, string _param_13, bool* _param_14, string _param_15, bool* _param_16, string _param_17, string* _param_18)) * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: void ({ i64, i8* }*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, { i64, i8* }*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, %std.getopt.GetoptResult*, %std.getopt.configuration*, { i64, { i64, i8* }* }*) * * * * * * * * * DtoResolveFunction(std.getopt.getoptImpl!(string, bool*, string, bool*, string, bool*, string, string*, string, bool*, string, bool*, string, bool*, string, string*).getoptImpl): /usr/include/dlang/ldc/std/getopt.d(526) * * * * * * * * * * DtoDeclareFunction(std.getopt.getoptImpl!(string, bool*, string, bool*, string, bool*, string, string*, string, bool*, string, bool*, string, bool*, string, string*).getoptImpl): /usr/include/dlang/ldc/std/getopt.d(526) * * * * * * * * * * * DtoFunctionType(@system void(ref string[] args, ref configuration cfg, ref GetoptResult rslt, string _param_3, bool* _param_4, string _param_5, bool* _param_6, string _param_7, bool* _param_8, string _param_9, string* _param_10, string _param_11, bool* _param_12, string _param_13, bool* _param_14, string _param_15, bool* _param_16, string _param_17, string* _param_18)) * * * * * * * * * * * func = declare void @_D3std6getopt76__T10getoptImplTAyaTPbTAyaTPbTAyaTPbTAyaTPAyaTAyaTPbTAyaTPbTAyaTPbTAyaTPAyaZ10getoptImplFKAAyaKS3std6getopt13configurationKS3std6getopt12GetoptResultAyaPbAyaPbAyaPbAyaPAyaAyaPbAyaPbAyaPbAyaPAyaZv({ i64, i8* }*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, { i64, i8* }*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, %std.getopt.GetoptResult*, %std.getopt.configuration*, { i64, { i64, i8* }* }*) * * * * * * * DtoCallFunction() * * * * * * * * Building type: @system void(ref string[] args, ref configuration cfg, ref GetoptResult rslt, string _param_3, bool* _param_4, string _param_5, bool* _param_6, string _param_7, bool* _param_8, string _param_9, string* _param_10, string _param_11, bool* _param_12, string _param_13, bool* _param_14, string _param_15, bool* _param_16, string _param_17, string* _param_18) * * * * * * * * * DtoFunctionType(@system void(ref string[] args, ref configuration cfg, ref GetoptResult rslt, string _param_3, bool* _param_4, string _param_5, bool* _param_6, string _param_7, bool* _param_8, string _param_9, string* _param_10, string _param_11, bool* _param_12, string _param_13, bool* _param_14, string _param_15, bool* _param_16, string _param_17, string* _param_18)) * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: void ({ i64, i8* }*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, { i64, i8* }*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, %std.getopt.GetoptResult*, %std.getopt.configuration*, { i64, { i64, i8* }* }*) * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (0) * * * * * * * * Function type: @system void(ref string[] args, ref configuration cfg, ref GetoptResult rslt, string _param_3, bool* _param_4, string _param_5, bool* _param_6, string _param_7, bool* _param_8, string _param_9, string* _param_10, string _param_11, bool* _param_12, string _param_13, bool* _param_14, string _param_15, bool* _param_16, string _param_17, string* _param_18) * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: args @ string[] * * * * * * * * * * DtoSymbolAddress ('args' of type 'string[]') * * * * * * * * * * * function param * * * * * * * * * * * type: string[] * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: cfg @ configuration * * * * * * * * * * DtoSymbolAddress ('cfg' of type 'configuration') * * * * * * * * * * * function param * * * * * * * * * * * type: configuration * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: rslt @ GetoptResult * * * * * * * * * * DtoSymbolAddress ('rslt' of type 'GetoptResult') * * * * * * * * * * * function param * * * * * * * * * * * type: GetoptResult * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_5 @ string * * * * * * * * * * DtoSymbolAddress ('_param_5' of type 'string') * * * * * * * * * * * function param * * * * * * * * * * * type: string * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_6 @ bool* * * * * * * * * * * DtoSymbolAddress ('_param_6' of type 'bool*') * * * * * * * * * * * function param * * * * * * * * * * * type: bool* * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_7 @ string * * * * * * * * * * DtoSymbolAddress ('_param_7' of type 'string') * * * * * * * * * * * function param * * * * * * * * * * * type: string * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_8 @ bool* * * * * * * * * * * DtoSymbolAddress ('_param_8' of type 'bool*') * * * * * * * * * * * function param * * * * * * * * * * * type: bool* * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_9 @ string * * * * * * * * * * DtoSymbolAddress ('_param_9' of type 'string') * * * * * * * * * * * function param * * * * * * * * * * * type: string * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_10 @ bool* * * * * * * * * * * DtoSymbolAddress ('_param_10' of type 'bool*') * * * * * * * * * * * function param * * * * * * * * * * * type: bool* * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_11 @ string * * * * * * * * * * DtoSymbolAddress ('_param_11' of type 'string') * * * * * * * * * * * function param * * * * * * * * * * * type: string * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_12 @ string* * * * * * * * * * * DtoSymbolAddress ('_param_12' of type 'string*') * * * * * * * * * * * function param * * * * * * * * * * * type: string* * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_13 @ string * * * * * * * * * * DtoSymbolAddress ('_param_13' of type 'string') * * * * * * * * * * * function param * * * * * * * * * * * type: string * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_14 @ bool* * * * * * * * * * * DtoSymbolAddress ('_param_14' of type 'bool*') * * * * * * * * * * * function param * * * * * * * * * * * type: bool* * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_15 @ string * * * * * * * * * * DtoSymbolAddress ('_param_15' of type 'string') * * * * * * * * * * * function param * * * * * * * * * * * type: string * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_16 @ bool* * * * * * * * * * * DtoSymbolAddress ('_param_16' of type 'bool*') * * * * * * * * * * * function param * * * * * * * * * * * type: bool* * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_17 @ string * * * * * * * * * * DtoSymbolAddress ('_param_17' of type 'string') * * * * * * * * * * * function param * * * * * * * * * * * type: string * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_18 @ bool* * * * * * * * * * * DtoSymbolAddress ('_param_18' of type 'bool*') * * * * * * * * * * * function param * * * * * * * * * * * type: bool* * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_19 @ string * * * * * * * * * * DtoSymbolAddress ('_param_19' of type 'string') * * * * * * * * * * * function param * * * * * * * * * * * type: string * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_20 @ string* * * * * * * * * * * DtoSymbolAddress ('_param_20' of type 'string*') * * * * * * * * * * * function param * * * * * * * * * * * type: string* * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(577) * TemplateInstance::codegen: 'std.getopt.getoptImpl!(string, bool*, string, bool*, string, bool*, string, string*, string, bool*, string, bool*, string, bool*, string, string*)' * * DtoDefineFunction(std.getopt.getoptImpl!(string, bool*, string, bool*, string, bool*, string, string*, string, bool*, string, bool*, string, bool*, string, string*).getoptImpl): /usr/include/dlang/ldc/std/getopt.d(526) * * * Doing function body for: getoptImpl * * * DtoCreateNestedContext for getoptImpl * * * * DtoCreateNestedContextType for std.getopt.getoptImpl!(string, bool*, string, bool*, string, bool*, string, string*, string, bool*, string, bool*, string, bool*, string, string*).getoptImpl * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(528) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(542) * * * * * * DeclarationExp::toElem: string option = to(_param_3); | T=void * * * * * * * DtoDeclarationExp: option * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = string) * * * * * * * * * llvm value for decl: %option = alloca { i64, i8* }, align 8 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: option = to(_param_3) | (string)(string = string) * * * * * * * * * * VarExp::toElem: option @ string * * * * * * * * * * * DtoSymbolAddress ('option' of type 'string') * * * * * * * * * * * * a normal variable * * * * * * * * * * CallExp::toElem: to(_param_3) @ string * * * * * * * * * * * VarExp::toElem: to @ pure nothrow @nogc @safe string(string _param_0) * * * * * * * * * * * * DtoSymbolAddress ('to' of type 'pure nothrow @nogc @safe string(string _param_0)') * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * Function type: pure nothrow @nogc @safe string(string _param_0) * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * VarExp::toElem: _param_3 @ string * * * * * * * * * * * * * * DtoSymbolAddress ('_param_3' of type 'string') * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * type: string * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * SetArray * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(543) * * * * * * DeclarationExp::toElem: Option optionHelp = splitAndGet(option); | T=void * * * * * * * DtoDeclarationExp: optionHelp * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = Option) * * * * * * * * * VarExp::toElem: splitAndGet @ pure nothrow @trusted Option(string opt) * * * * * * * * * * DtoSymbolAddress ('splitAndGet' of type 'pure nothrow @trusted Option(string opt)') * * * * * * * * * * * FuncDeclaration * * * * * * * * * DtoCallFunction() * * * * * * * * * * doing normal arguments * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * %optionHelp = alloca %std.getopt.Option, align 8 * * * * * * * * * * Function type: pure nothrow @trusted Option(string opt) * * * * * * * * * * DtoArgument * * * * * * * * * * * VarExp::toElem: option @ string * * * * * * * * * * * * DtoSymbolAddress ('option' of type 'string') * * * * * * * * * * * * * a normal variable * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(544) * * * * * * AssignExp::toElem: optionHelp.required = cfg.required() | (bool)(bool = bool) * * * * * * * DotVarExp::toElem: optionHelp.required @ bool * * * * * * * * VarExp::toElem: optionHelp @ Option * * * * * * * * * DtoSymbolAddress ('optionHelp' of type 'Option') * * * * * * * * * * a normal variable * * * * * * * * Indexing aggregate field std.getopt.Option.required: * * * * * * * * * Value: %6 = getelementptr %std.getopt.Option, %std.getopt.Option* %optionHelp, i32 0, i32 3 * * * * * * * CallExp::toElem: cfg.required() @ bool * * * * * * * * DotVarExp::toElem: cfg.required @ const pure nothrow @nogc @property @safe bool() * * * * * * * * * VarExp::toElem: cfg @ configuration * * * * * * * * * * DtoSymbolAddress ('cfg' of type 'configuration') * * * * * * * * * * * function param * * * * * * * * * * * type: configuration * * * * * * * * DtoCallFunction() * * * * * * * * * doing normal arguments * * * * * * * * * Arguments so far: (1) * * * * * * * * * * %std.getopt.configuration* %cfg_arg * * * * * * * * * Function type: const pure nothrow @nogc @property @safe bool() * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * DtoAssign() * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(554) * * * * * * DeclarationExp::toElem: bool* receiver = _param_4; | T=void * * * * * * * DtoDeclarationExp: receiver * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = bool*) * * * * * * * * * llvm value for decl: %receiver = alloca i8*, align 8 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: receiver = _param_4 | (bool*)(bool* = bool*) * * * * * * * * * * VarExp::toElem: receiver @ bool* * * * * * * * * * * * DtoSymbolAddress ('receiver' of type 'bool*') * * * * * * * * * * * * a normal variable * * * * * * * * * * VarExp::toElem: _param_4 @ bool* * * * * * * * * * * * DtoSymbolAddress ('_param_4' of type 'bool*') * * * * * * * * * * * * function param * * * * * * * * * * * * type: bool* * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %receiver = alloca i8*, align 8 * * * * * * * * * * * rhs: %9 = load i8*, i8** %_param_4 * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(555) * * * * * * DeclarationExp::toElem: immutable immutable(int) lowSliceIdx = 2; | T=void * * * * * * * DtoDeclarationExp: lowSliceIdx * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = immutable(int)) * * * * * * * * * llvm value for decl: %lowSliceIdx = alloca i32, align 4 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: lowSliceIdx = 2 | (immutable(int))(immutable(int) = immutable(int)) * * * * * * * * * * VarExp::toElem: lowSliceIdx @ immutable(int) * * * * * * * * * * * DtoSymbolAddress ('lowSliceIdx' of type 'immutable(int)') * * * * * * * * * * * * a normal variable * * * * * * * * * * IntegerExp::toElem: 2 @ immutable(int) * * * * * * * * * * * IntegerExp::toConstElem: 2 @ immutable(int) * * * * * * * * * * * * value = i32 2 * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %lowSliceIdx = alloca i32, align 4 * * * * * * * * * * * rhs: i32 2 * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(558) * * * * * * CatAssignExp::toElem: rslt.options ~= optionHelp @ Option[] * * * * * * * DotVarExp::toElem: rslt.options @ Option[] * * * * * * * * VarExp::toElem: rslt @ GetoptResult * * * * * * * * * DtoSymbolAddress ('rslt' of type 'GetoptResult') * * * * * * * * * * function param * * * * * * * * * * type: GetoptResult * * * * * * * * Indexing aggregate field std.getopt.GetoptResult.options: * * * * * * * * * Value: %10 = getelementptr %std.getopt.GetoptResult, %std.getopt.GetoptResult* %rslt_arg, i32 0, i32 2 * * * * * * * DtoCatAssignElement * * * * * * * * DtoArrayLen * * * * * * * * VarExp::toElem: optionHelp @ Option * * * * * * * * * DtoSymbolAddress ('optionHelp' of type 'Option') * * * * * * * * * * a normal variable * * * * * * * * DtoTypeInfoOf(type = 'Option[]', base='1') * * * * * * * * * Type::getTypeInfo(): Option[] * * * * * * * * * TypeInfoDeclaration::codegen(typeid(Option[])) * * * * * * * * DtoArrayPtr * * * * * * * * DtoAssign() * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(560) * * * * * * DeclarationExp::toElem: bool incremental = false; | T=void * * * * * * * DtoDeclarationExp: incremental * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = bool) * * * * * * * * * llvm value for decl: %incremental = alloca i8, align 1 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: incremental = false | (bool)(bool = bool) * * * * * * * * * * VarExp::toElem: incremental @ bool * * * * * * * * * * * DtoSymbolAddress ('incremental' of type 'bool') * * * * * * * * * * * * a normal variable * * * * * * * * * * IntegerExp::toElem: false @ bool * * * * * * * * * * * IntegerExp::toConstElem: false @ bool * * * * * * * * * * * * value = i1 false * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(562) * * * * * * AndAndExp::toElem: option.length && cast(int)option[__dollar - 1LU] == 43 @ bool * * * * * * * ArrayLengthExp::toElem: option.length @ ulong * * * * * * * * VarExp::toElem: option @ string * * * * * * * * * DtoSymbolAddress ('option' of type 'string') * * * * * * * * * * a normal variable * * * * * * * * DtoArrayLen * * * * * * * Casting from 'ulong' to 'bool' * * * * * * * EqualExp::toElem: cast(int)option[__dollar - 1LU] == 43 @ bool * * * * * * * * CastExp::toElem: cast(int)option[__dollar - 1LU] @ int * * * * * * * * * IndexExp::toElem: option[__dollar - 1LU] @ immutable(char) * * * * * * * * * * VarExp::toElem: option @ string * * * * * * * * * * * DtoSymbolAddress ('option' of type 'string') * * * * * * * * * * * * a normal variable * * * * * * * * * * MinExp::toElem: __dollar - 1LU @ ulong * * * * * * * * * * * VarExp::toElem: __dollar @ ulong * * * * * * * * * * * * DtoSymbolAddress ('__dollar' of type 'ulong') * * * * * * * * * * * * * Id::dollar * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * DtoArrayPtr * * * * * * * * * Casting from 'immutable(char)' to 'int' * * * * * * * * * * cast to: i32 * * * * * * * * IntegerExp::toElem: 43 @ int * * * * * * * * * IntegerExp::toConstElem: 43 @ int * * * * * * * * * * value = i32 43 * * * * * * * * integral or pointer or interface * * * * * * * * lv: %28 = zext i8 %27 to i32 * * * * * * * * rv: i32 43 * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(563) * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(563) * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(564) * * * * * * * * * AssignExp::toElem: option = option[0..__dollar - 1LU] | (string)(string = string) * * * * * * * * * * VarExp::toElem: option @ string * * * * * * * * * * * DtoSymbolAddress ('option' of type 'string') * * * * * * * * * * * * a normal variable * * * * * * * * * * SliceExp::toElem: option[0..__dollar - 1LU] @ string * * * * * * * * * * * VarExp::toElem: option @ string * * * * * * * * * * * * DtoSymbolAddress ('option' of type 'string') * * * * * * * * * * * * * a normal variable * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * MinExp::toElem: __dollar - 1LU @ ulong * * * * * * * * * * * * VarExp::toElem: __dollar @ ulong * * * * * * * * * * * * * DtoSymbolAddress ('__dollar' of type 'ulong') * * * * * * * * * * * * * * Id::dollar * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * DtoAssign() * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * SetArray * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(565) * * * * * * * * * AssignExp::toElem: incremental = true | (bool)(bool = bool) * * * * * * * * * * VarExp::toElem: incremental @ bool * * * * * * * * * * * DtoSymbolAddress ('incremental' of type 'bool') * * * * * * * * * * * * a normal variable * * * * * * * * * * IntegerExp::toElem: true @ bool * * * * * * * * * * * IntegerExp::toConstElem: true @ bool * * * * * * * * * * * * value = i1 true * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(568) * * * * * * DeclarationExp::toElem: bool optWasHandled = handleOption(option, receiver, args, cfg, incremental); | T=void * * * * * * * DtoDeclarationExp: optWasHandled * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = bool) * * * * * * * * * llvm value for decl: %optWasHandled = alloca i8, align 1 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: optWasHandled = handleOption(option, receiver, args, cfg, incremental) | (bool)(bool = bool) * * * * * * * * * * VarExp::toElem: optWasHandled @ bool * * * * * * * * * * * DtoSymbolAddress ('optWasHandled' of type 'bool') * * * * * * * * * * * * a normal variable * * * * * * * * * * CallExp::toElem: handleOption(option, receiver, args, cfg, incremental) @ bool * * * * * * * * * * * VarExp::toElem: handleOption @ @system bool(string option, bool* receiver, ref string[] args, ref configuration cfg, bool incremental) * * * * * * * * * * * * DtoSymbolAddress ('handleOption' of type '@system bool(string option, bool* receiver, ref string[] args, ref configuration cfg, bool incremental)') * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * Function type: @system bool(string option, bool* receiver, ref string[] args, ref configuration cfg, bool incremental) * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * VarExp::toElem: option @ string * * * * * * * * * * * * * * DtoSymbolAddress ('option' of type 'string') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * VarExp::toElem: receiver @ bool* * * * * * * * * * * * * * * DtoSymbolAddress ('receiver' of type 'bool*') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * VarExp::toElem: args @ string[] * * * * * * * * * * * * * * DtoSymbolAddress ('args' of type 'string[]') * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * type: string[] * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * VarExp::toElem: cfg @ configuration * * * * * * * * * * * * * * DtoSymbolAddress ('cfg' of type 'configuration') * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * type: configuration * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * VarExp::toElem: incremental @ bool * * * * * * * * * * * * * * DtoSymbolAddress ('incremental' of type 'bool') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(570) * * * * * * AndAndExp::toElem: cfg.required() && !optWasHandled @ bool * * * * * * * CallExp::toElem: cfg.required() @ bool * * * * * * * * DotVarExp::toElem: cfg.required @ const pure nothrow @nogc @property @safe bool() * * * * * * * * * VarExp::toElem: cfg @ configuration * * * * * * * * * * DtoSymbolAddress ('cfg' of type 'configuration') * * * * * * * * * * * function param * * * * * * * * * * * type: configuration * * * * * * * * DtoCallFunction() * * * * * * * * * doing normal arguments * * * * * * * * * Arguments so far: (1) * * * * * * * * * * %std.getopt.configuration* %cfg_arg * * * * * * * * * Function type: const pure nothrow @nogc @property @safe bool() * * * * * * * NotExp::toElem: !optWasHandled @ bool * * * * * * * * VarExp::toElem: optWasHandled @ bool * * * * * * * * * DtoSymbolAddress ('optWasHandled' of type 'bool') * * * * * * * * * * a normal variable * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(571) * * * * * * * ThrowStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(572) * * * * * * * * NewExp::toElem: new GetOptException("Required option " ~ option ~ "was not supplied", "/usr/include/dlang/ldc/std/getopt.d", 572LU) @ std.getopt.GetOptException * * * * * * * * * new class * * * * * * * * * Calling constructor * * * * * * * * * DtoCallFunction() * * * * * * * * * * doing normal arguments * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * %.newclass_gc = bitcast %object.Object* %.newclass_gc_alloc to %std.getopt.GetOptException* * * * * * * * * * * Function type: pure nothrow @safe GetOptException(string msg, string file = __FILE__, ulong line = cast(ulong)__LINE__) * * * * * * * * * * DtoArgument * * * * * * * * * * * CatExp::toElem: "Required option " ~ option ~ "was not supplied" @ string * * * * * * * * * * * * DtoCatAssignArray * * * * * * * * * * * * * StringExp::toElem: "was not supplied" @ string * * * * * * * * * * * * * VarExp::toElem: option @ string * * * * * * * * * * * * * * DtoSymbolAddress ('option' of type 'string') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * StringExp::toElem: "Required option " @ string * * * * * * * * * * * * * DtoTypeInfoOf(type = 'string', base='1') * * * * * * * * * * * * * * Type::getTypeInfo(): string * * * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(string)) * * * * * * * * * * DtoArgument * * * * * * * * * * * StringExp::toElem: "/usr/include/dlang/ldc/std/getopt.d" @ string * * * * * * * * * * DtoArgument * * * * * * * * * * * IntegerExp::toElem: 572LU @ ulong * * * * * * * * * * * * IntegerExp::toConstElem: 572LU @ ulong * * * * * * * * * * * * * value = i64 572 * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(575) * * * * * * CallExp::toElem: cfg.required(false) @ void * * * * * * * DotVarExp::toElem: cfg.required @ pure nothrow @nogc @property @safe void(bool v) * * * * * * * * VarExp::toElem: cfg @ configuration * * * * * * * * * DtoSymbolAddress ('cfg' of type 'configuration') * * * * * * * * * * function param * * * * * * * * * * type: configuration * * * * * * * DtoCallFunction() * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (1) * * * * * * * * * %std.getopt.configuration* %cfg_arg * * * * * * * * Function type: pure nothrow @nogc @property @safe void(bool v) * * * * * * * * DtoArgument * * * * * * * * * IntegerExp::toElem: false @ bool * * * * * * * * * * IntegerExp::toConstElem: false @ bool * * * * * * * * * * * value = i1 false * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(577) * * * * * * CallExp::toElem: getoptImpl(args, cfg, rslt, _param_5, _param_6, _param_7, _param_8, _param_9, _param_10, _param_11, _param_12, _param_13, _param_14, _param_15, _param_16, _param_17, _param_18) @ void * * * * * * * VarExp::toElem: getoptImpl @ @system void(ref string[] args, ref configuration cfg, ref GetoptResult rslt, string _param_3, bool* _param_4, string _param_5, bool* _param_6, string _param_7, string* _param_8, string _param_9, bool* _param_10, string _param_11, bool* _param_12, string _param_13, bool* _param_14, string _param_15, string* _param_16) * * * * * * * * DtoSymbolAddress ('getoptImpl' of type '@system void(ref string[] args, ref configuration cfg, ref GetoptResult rslt, string _param_3, bool* _param_4, string _param_5, bool* _param_6, string _param_7, string* _param_8, string _param_9, bool* _param_10, string _param_11, bool* _param_12, string _param_13, bool* _param_14, string _param_15, string* _param_16)') * * * * * * * * * FuncDeclaration * * * * * * * * * DtoFunctionType(@system void(ref string[] args, ref configuration cfg, ref GetoptResult rslt, string _param_3, bool* _param_4, string _param_5, bool* _param_6, string _param_7, string* _param_8, string _param_9, bool* _param_10, string _param_11, bool* _param_12, string _param_13, bool* _param_14, string _param_15, string* _param_16)) * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: void ({ i64, i8* }*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, { i64, i8* }*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, %std.getopt.GetoptResult*, %std.getopt.configuration*, { i64, { i64, i8* }* }*) * * * * * * * * * DtoResolveFunction(std.getopt.getoptImpl!(string, bool*, string, bool*, string, string*, string, bool*, string, bool*, string, bool*, string, string*).getoptImpl): /usr/include/dlang/ldc/std/getopt.d(526) * * * * * * * * * * DtoDeclareFunction(std.getopt.getoptImpl!(string, bool*, string, bool*, string, string*, string, bool*, string, bool*, string, bool*, string, string*).getoptImpl): /usr/include/dlang/ldc/std/getopt.d(526) * * * * * * * * * * * DtoFunctionType(@system void(ref string[] args, ref configuration cfg, ref GetoptResult rslt, string _param_3, bool* _param_4, string _param_5, bool* _param_6, string _param_7, string* _param_8, string _param_9, bool* _param_10, string _param_11, bool* _param_12, string _param_13, bool* _param_14, string _param_15, string* _param_16)) * * * * * * * * * * * func = declare void @_D3std6getopt69__T10getoptImplTAyaTPbTAyaTPbTAyaTPAyaTAyaTPbTAyaTPbTAyaTPbTAyaTPAyaZ10getoptImplFKAAyaKS3std6getopt13configurationKS3std6getopt12GetoptResultAyaPbAyaPbAyaPAyaAyaPbAyaPbAyaPbAyaPAyaZv({ i64, i8* }*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, { i64, i8* }*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, %std.getopt.GetoptResult*, %std.getopt.configuration*, { i64, { i64, i8* }* }*) * * * * * * * DtoCallFunction() * * * * * * * * Building type: @system void(ref string[] args, ref configuration cfg, ref GetoptResult rslt, string _param_3, bool* _param_4, string _param_5, bool* _param_6, string _param_7, string* _param_8, string _param_9, bool* _param_10, string _param_11, bool* _param_12, string _param_13, bool* _param_14, string _param_15, string* _param_16) * * * * * * * * * DtoFunctionType(@system void(ref string[] args, ref configuration cfg, ref GetoptResult rslt, string _param_3, bool* _param_4, string _param_5, bool* _param_6, string _param_7, string* _param_8, string _param_9, bool* _param_10, string _param_11, bool* _param_12, string _param_13, bool* _param_14, string _param_15, string* _param_16)) * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: void ({ i64, i8* }*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, { i64, i8* }*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, %std.getopt.GetoptResult*, %std.getopt.configuration*, { i64, { i64, i8* }* }*) * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (0) * * * * * * * * Function type: @system void(ref string[] args, ref configuration cfg, ref GetoptResult rslt, string _param_3, bool* _param_4, string _param_5, bool* _param_6, string _param_7, string* _param_8, string _param_9, bool* _param_10, string _param_11, bool* _param_12, string _param_13, bool* _param_14, string _param_15, string* _param_16) * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: args @ string[] * * * * * * * * * * DtoSymbolAddress ('args' of type 'string[]') * * * * * * * * * * * function param * * * * * * * * * * * type: string[] * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: cfg @ configuration * * * * * * * * * * DtoSymbolAddress ('cfg' of type 'configuration') * * * * * * * * * * * function param * * * * * * * * * * * type: configuration * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: rslt @ GetoptResult * * * * * * * * * * DtoSymbolAddress ('rslt' of type 'GetoptResult') * * * * * * * * * * * function param * * * * * * * * * * * type: GetoptResult * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_5 @ string * * * * * * * * * * DtoSymbolAddress ('_param_5' of type 'string') * * * * * * * * * * * function param * * * * * * * * * * * type: string * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_6 @ bool* * * * * * * * * * * DtoSymbolAddress ('_param_6' of type 'bool*') * * * * * * * * * * * function param * * * * * * * * * * * type: bool* * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_7 @ string * * * * * * * * * * DtoSymbolAddress ('_param_7' of type 'string') * * * * * * * * * * * function param * * * * * * * * * * * type: string * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_8 @ bool* * * * * * * * * * * DtoSymbolAddress ('_param_8' of type 'bool*') * * * * * * * * * * * function param * * * * * * * * * * * type: bool* * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_9 @ string * * * * * * * * * * DtoSymbolAddress ('_param_9' of type 'string') * * * * * * * * * * * function param * * * * * * * * * * * type: string * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_10 @ string* * * * * * * * * * * DtoSymbolAddress ('_param_10' of type 'string*') * * * * * * * * * * * function param * * * * * * * * * * * type: string* * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_11 @ string * * * * * * * * * * DtoSymbolAddress ('_param_11' of type 'string') * * * * * * * * * * * function param * * * * * * * * * * * type: string * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_12 @ bool* * * * * * * * * * * DtoSymbolAddress ('_param_12' of type 'bool*') * * * * * * * * * * * function param * * * * * * * * * * * type: bool* * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_13 @ string * * * * * * * * * * DtoSymbolAddress ('_param_13' of type 'string') * * * * * * * * * * * function param * * * * * * * * * * * type: string * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_14 @ bool* * * * * * * * * * * DtoSymbolAddress ('_param_14' of type 'bool*') * * * * * * * * * * * function param * * * * * * * * * * * type: bool* * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_15 @ string * * * * * * * * * * DtoSymbolAddress ('_param_15' of type 'string') * * * * * * * * * * * function param * * * * * * * * * * * type: string * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_16 @ bool* * * * * * * * * * * DtoSymbolAddress ('_param_16' of type 'bool*') * * * * * * * * * * * function param * * * * * * * * * * * type: bool* * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_17 @ string * * * * * * * * * * DtoSymbolAddress ('_param_17' of type 'string') * * * * * * * * * * * function param * * * * * * * * * * * type: string * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_18 @ string* * * * * * * * * * * DtoSymbolAddress ('_param_18' of type 'string*') * * * * * * * * * * * function param * * * * * * * * * * * type: string* * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(577) * TemplateInstance::codegen: 'std.getopt.getoptImpl!(string, bool*, string, bool*, string, string*, string, bool*, string, bool*, string, bool*, string, string*)' * * DtoDefineFunction(std.getopt.getoptImpl!(string, bool*, string, bool*, string, string*, string, bool*, string, bool*, string, bool*, string, string*).getoptImpl): /usr/include/dlang/ldc/std/getopt.d(526) * * * Doing function body for: getoptImpl * * * DtoCreateNestedContext for getoptImpl * * * * DtoCreateNestedContextType for std.getopt.getoptImpl!(string, bool*, string, bool*, string, string*, string, bool*, string, bool*, string, bool*, string, string*).getoptImpl * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(528) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(542) * * * * * * DeclarationExp::toElem: string option = to(_param_3); | T=void * * * * * * * DtoDeclarationExp: option * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = string) * * * * * * * * * llvm value for decl: %option = alloca { i64, i8* }, align 8 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: option = to(_param_3) | (string)(string = string) * * * * * * * * * * VarExp::toElem: option @ string * * * * * * * * * * * DtoSymbolAddress ('option' of type 'string') * * * * * * * * * * * * a normal variable * * * * * * * * * * CallExp::toElem: to(_param_3) @ string * * * * * * * * * * * VarExp::toElem: to @ pure nothrow @nogc @safe string(string _param_0) * * * * * * * * * * * * DtoSymbolAddress ('to' of type 'pure nothrow @nogc @safe string(string _param_0)') * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * Function type: pure nothrow @nogc @safe string(string _param_0) * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * VarExp::toElem: _param_3 @ string * * * * * * * * * * * * * * DtoSymbolAddress ('_param_3' of type 'string') * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * type: string * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * SetArray * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(543) * * * * * * DeclarationExp::toElem: Option optionHelp = splitAndGet(option); | T=void * * * * * * * DtoDeclarationExp: optionHelp * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = Option) * * * * * * * * * VarExp::toElem: splitAndGet @ pure nothrow @trusted Option(string opt) * * * * * * * * * * DtoSymbolAddress ('splitAndGet' of type 'pure nothrow @trusted Option(string opt)') * * * * * * * * * * * FuncDeclaration * * * * * * * * * DtoCallFunction() * * * * * * * * * * doing normal arguments * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * %optionHelp = alloca %std.getopt.Option, align 8 * * * * * * * * * * Function type: pure nothrow @trusted Option(string opt) * * * * * * * * * * DtoArgument * * * * * * * * * * * VarExp::toElem: option @ string * * * * * * * * * * * * DtoSymbolAddress ('option' of type 'string') * * * * * * * * * * * * * a normal variable * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(544) * * * * * * AssignExp::toElem: optionHelp.required = cfg.required() | (bool)(bool = bool) * * * * * * * DotVarExp::toElem: optionHelp.required @ bool * * * * * * * * VarExp::toElem: optionHelp @ Option * * * * * * * * * DtoSymbolAddress ('optionHelp' of type 'Option') * * * * * * * * * * a normal variable * * * * * * * * Indexing aggregate field std.getopt.Option.required: * * * * * * * * * Value: %6 = getelementptr %std.getopt.Option, %std.getopt.Option* %optionHelp, i32 0, i32 3 * * * * * * * CallExp::toElem: cfg.required() @ bool * * * * * * * * DotVarExp::toElem: cfg.required @ const pure nothrow @nogc @property @safe bool() * * * * * * * * * VarExp::toElem: cfg @ configuration * * * * * * * * * * DtoSymbolAddress ('cfg' of type 'configuration') * * * * * * * * * * * function param * * * * * * * * * * * type: configuration * * * * * * * * DtoCallFunction() * * * * * * * * * doing normal arguments * * * * * * * * * Arguments so far: (1) * * * * * * * * * * %std.getopt.configuration* %cfg_arg * * * * * * * * * Function type: const pure nothrow @nogc @property @safe bool() * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * DtoAssign() * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(554) * * * * * * DeclarationExp::toElem: bool* receiver = _param_4; | T=void * * * * * * * DtoDeclarationExp: receiver * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = bool*) * * * * * * * * * llvm value for decl: %receiver = alloca i8*, align 8 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: receiver = _param_4 | (bool*)(bool* = bool*) * * * * * * * * * * VarExp::toElem: receiver @ bool* * * * * * * * * * * * DtoSymbolAddress ('receiver' of type 'bool*') * * * * * * * * * * * * a normal variable * * * * * * * * * * VarExp::toElem: _param_4 @ bool* * * * * * * * * * * * DtoSymbolAddress ('_param_4' of type 'bool*') * * * * * * * * * * * * function param * * * * * * * * * * * * type: bool* * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %receiver = alloca i8*, align 8 * * * * * * * * * * * rhs: %9 = load i8*, i8** %_param_4 * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(555) * * * * * * DeclarationExp::toElem: immutable immutable(int) lowSliceIdx = 2; | T=void * * * * * * * DtoDeclarationExp: lowSliceIdx * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = immutable(int)) * * * * * * * * * llvm value for decl: %lowSliceIdx = alloca i32, align 4 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: lowSliceIdx = 2 | (immutable(int))(immutable(int) = immutable(int)) * * * * * * * * * * VarExp::toElem: lowSliceIdx @ immutable(int) * * * * * * * * * * * DtoSymbolAddress ('lowSliceIdx' of type 'immutable(int)') * * * * * * * * * * * * a normal variable * * * * * * * * * * IntegerExp::toElem: 2 @ immutable(int) * * * * * * * * * * * IntegerExp::toConstElem: 2 @ immutable(int) * * * * * * * * * * * * value = i32 2 * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %lowSliceIdx = alloca i32, align 4 * * * * * * * * * * * rhs: i32 2 * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(558) * * * * * * CatAssignExp::toElem: rslt.options ~= optionHelp @ Option[] * * * * * * * DotVarExp::toElem: rslt.options @ Option[] * * * * * * * * VarExp::toElem: rslt @ GetoptResult * * * * * * * * * DtoSymbolAddress ('rslt' of type 'GetoptResult') * * * * * * * * * * function param * * * * * * * * * * type: GetoptResult * * * * * * * * Indexing aggregate field std.getopt.GetoptResult.options: * * * * * * * * * Value: %10 = getelementptr %std.getopt.GetoptResult, %std.getopt.GetoptResult* %rslt_arg, i32 0, i32 2 * * * * * * * DtoCatAssignElement * * * * * * * * DtoArrayLen * * * * * * * * VarExp::toElem: optionHelp @ Option * * * * * * * * * DtoSymbolAddress ('optionHelp' of type 'Option') * * * * * * * * * * a normal variable * * * * * * * * DtoTypeInfoOf(type = 'Option[]', base='1') * * * * * * * * * Type::getTypeInfo(): Option[] * * * * * * * * * TypeInfoDeclaration::codegen(typeid(Option[])) * * * * * * * * DtoArrayPtr * * * * * * * * DtoAssign() * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(560) * * * * * * DeclarationExp::toElem: bool incremental = false; | T=void * * * * * * * DtoDeclarationExp: incremental * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = bool) * * * * * * * * * llvm value for decl: %incremental = alloca i8, align 1 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: incremental = false | (bool)(bool = bool) * * * * * * * * * * VarExp::toElem: incremental @ bool * * * * * * * * * * * DtoSymbolAddress ('incremental' of type 'bool') * * * * * * * * * * * * a normal variable * * * * * * * * * * IntegerExp::toElem: false @ bool * * * * * * * * * * * IntegerExp::toConstElem: false @ bool * * * * * * * * * * * * value = i1 false * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(562) * * * * * * AndAndExp::toElem: option.length && cast(int)option[__dollar - 1LU] == 43 @ bool * * * * * * * ArrayLengthExp::toElem: option.length @ ulong * * * * * * * * VarExp::toElem: option @ string * * * * * * * * * DtoSymbolAddress ('option' of type 'string') * * * * * * * * * * a normal variable * * * * * * * * DtoArrayLen * * * * * * * Casting from 'ulong' to 'bool' * * * * * * * EqualExp::toElem: cast(int)option[__dollar - 1LU] == 43 @ bool * * * * * * * * CastExp::toElem: cast(int)option[__dollar - 1LU] @ int * * * * * * * * * IndexExp::toElem: option[__dollar - 1LU] @ immutable(char) * * * * * * * * * * VarExp::toElem: option @ string * * * * * * * * * * * DtoSymbolAddress ('option' of type 'string') * * * * * * * * * * * * a normal variable * * * * * * * * * * MinExp::toElem: __dollar - 1LU @ ulong * * * * * * * * * * * VarExp::toElem: __dollar @ ulong * * * * * * * * * * * * DtoSymbolAddress ('__dollar' of type 'ulong') * * * * * * * * * * * * * Id::dollar * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * DtoArrayPtr * * * * * * * * * Casting from 'immutable(char)' to 'int' * * * * * * * * * * cast to: i32 * * * * * * * * IntegerExp::toElem: 43 @ int * * * * * * * * * IntegerExp::toConstElem: 43 @ int * * * * * * * * * * value = i32 43 * * * * * * * * integral or pointer or interface * * * * * * * * lv: %28 = zext i8 %27 to i32 * * * * * * * * rv: i32 43 * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(563) * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(563) * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(564) * * * * * * * * * AssignExp::toElem: option = option[0..__dollar - 1LU] | (string)(string = string) * * * * * * * * * * VarExp::toElem: option @ string * * * * * * * * * * * DtoSymbolAddress ('option' of type 'string') * * * * * * * * * * * * a normal variable * * * * * * * * * * SliceExp::toElem: option[0..__dollar - 1LU] @ string * * * * * * * * * * * VarExp::toElem: option @ string * * * * * * * * * * * * DtoSymbolAddress ('option' of type 'string') * * * * * * * * * * * * * a normal variable * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * MinExp::toElem: __dollar - 1LU @ ulong * * * * * * * * * * * * VarExp::toElem: __dollar @ ulong * * * * * * * * * * * * * DtoSymbolAddress ('__dollar' of type 'ulong') * * * * * * * * * * * * * * Id::dollar * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * DtoAssign() * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * SetArray * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(565) * * * * * * * * * AssignExp::toElem: incremental = true | (bool)(bool = bool) * * * * * * * * * * VarExp::toElem: incremental @ bool * * * * * * * * * * * DtoSymbolAddress ('incremental' of type 'bool') * * * * * * * * * * * * a normal variable * * * * * * * * * * IntegerExp::toElem: true @ bool * * * * * * * * * * * IntegerExp::toConstElem: true @ bool * * * * * * * * * * * * value = i1 true * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(568) * * * * * * DeclarationExp::toElem: bool optWasHandled = handleOption(option, receiver, args, cfg, incremental); | T=void * * * * * * * DtoDeclarationExp: optWasHandled * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = bool) * * * * * * * * * llvm value for decl: %optWasHandled = alloca i8, align 1 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: optWasHandled = handleOption(option, receiver, args, cfg, incremental) | (bool)(bool = bool) * * * * * * * * * * VarExp::toElem: optWasHandled @ bool * * * * * * * * * * * DtoSymbolAddress ('optWasHandled' of type 'bool') * * * * * * * * * * * * a normal variable * * * * * * * * * * CallExp::toElem: handleOption(option, receiver, args, cfg, incremental) @ bool * * * * * * * * * * * VarExp::toElem: handleOption @ @system bool(string option, bool* receiver, ref string[] args, ref configuration cfg, bool incremental) * * * * * * * * * * * * DtoSymbolAddress ('handleOption' of type '@system bool(string option, bool* receiver, ref string[] args, ref configuration cfg, bool incremental)') * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * Function type: @system bool(string option, bool* receiver, ref string[] args, ref configuration cfg, bool incremental) * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * VarExp::toElem: option @ string * * * * * * * * * * * * * * DtoSymbolAddress ('option' of type 'string') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * VarExp::toElem: receiver @ bool* * * * * * * * * * * * * * * DtoSymbolAddress ('receiver' of type 'bool*') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * VarExp::toElem: args @ string[] * * * * * * * * * * * * * * DtoSymbolAddress ('args' of type 'string[]') * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * type: string[] * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * VarExp::toElem: cfg @ configuration * * * * * * * * * * * * * * DtoSymbolAddress ('cfg' of type 'configuration') * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * type: configuration * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * VarExp::toElem: incremental @ bool * * * * * * * * * * * * * * DtoSymbolAddress ('incremental' of type 'bool') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(570) * * * * * * AndAndExp::toElem: cfg.required() && !optWasHandled @ bool * * * * * * * CallExp::toElem: cfg.required() @ bool * * * * * * * * DotVarExp::toElem: cfg.required @ const pure nothrow @nogc @property @safe bool() * * * * * * * * * VarExp::toElem: cfg @ configuration * * * * * * * * * * DtoSymbolAddress ('cfg' of type 'configuration') * * * * * * * * * * * function param * * * * * * * * * * * type: configuration * * * * * * * * DtoCallFunction() * * * * * * * * * doing normal arguments * * * * * * * * * Arguments so far: (1) * * * * * * * * * * %std.getopt.configuration* %cfg_arg * * * * * * * * * Function type: const pure nothrow @nogc @property @safe bool() * * * * * * * NotExp::toElem: !optWasHandled @ bool * * * * * * * * VarExp::toElem: optWasHandled @ bool * * * * * * * * * DtoSymbolAddress ('optWasHandled' of type 'bool') * * * * * * * * * * a normal variable * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(571) * * * * * * * ThrowStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(572) * * * * * * * * NewExp::toElem: new GetOptException("Required option " ~ option ~ "was not supplied", "/usr/include/dlang/ldc/std/getopt.d", 572LU) @ std.getopt.GetOptException * * * * * * * * * new class * * * * * * * * * Calling constructor * * * * * * * * * DtoCallFunction() * * * * * * * * * * doing normal arguments * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * %.newclass_gc = bitcast %object.Object* %.newclass_gc_alloc to %std.getopt.GetOptException* * * * * * * * * * * Function type: pure nothrow @safe GetOptException(string msg, string file = __FILE__, ulong line = cast(ulong)__LINE__) * * * * * * * * * * DtoArgument * * * * * * * * * * * CatExp::toElem: "Required option " ~ option ~ "was not supplied" @ string * * * * * * * * * * * * DtoCatAssignArray * * * * * * * * * * * * * StringExp::toElem: "was not supplied" @ string * * * * * * * * * * * * * VarExp::toElem: option @ string * * * * * * * * * * * * * * DtoSymbolAddress ('option' of type 'string') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * StringExp::toElem: "Required option " @ string * * * * * * * * * * * * * DtoTypeInfoOf(type = 'string', base='1') * * * * * * * * * * * * * * Type::getTypeInfo(): string * * * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(string)) * * * * * * * * * * DtoArgument * * * * * * * * * * * StringExp::toElem: "/usr/include/dlang/ldc/std/getopt.d" @ string * * * * * * * * * * DtoArgument * * * * * * * * * * * IntegerExp::toElem: 572LU @ ulong * * * * * * * * * * * * IntegerExp::toConstElem: 572LU @ ulong * * * * * * * * * * * * * value = i64 572 * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(575) * * * * * * CallExp::toElem: cfg.required(false) @ void * * * * * * * DotVarExp::toElem: cfg.required @ pure nothrow @nogc @property @safe void(bool v) * * * * * * * * VarExp::toElem: cfg @ configuration * * * * * * * * * DtoSymbolAddress ('cfg' of type 'configuration') * * * * * * * * * * function param * * * * * * * * * * type: configuration * * * * * * * DtoCallFunction() * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (1) * * * * * * * * * %std.getopt.configuration* %cfg_arg * * * * * * * * Function type: pure nothrow @nogc @property @safe void(bool v) * * * * * * * * DtoArgument * * * * * * * * * IntegerExp::toElem: false @ bool * * * * * * * * * * IntegerExp::toConstElem: false @ bool * * * * * * * * * * * value = i1 false * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(577) * * * * * * CallExp::toElem: getoptImpl(args, cfg, rslt, _param_5, _param_6, _param_7, _param_8, _param_9, _param_10, _param_11, _param_12, _param_13, _param_14, _param_15, _param_16) @ void * * * * * * * VarExp::toElem: getoptImpl @ @system void(ref string[] args, ref configuration cfg, ref GetoptResult rslt, string _param_3, bool* _param_4, string _param_5, string* _param_6, string _param_7, bool* _param_8, string _param_9, bool* _param_10, string _param_11, bool* _param_12, string _param_13, string* _param_14) * * * * * * * * DtoSymbolAddress ('getoptImpl' of type '@system void(ref string[] args, ref configuration cfg, ref GetoptResult rslt, string _param_3, bool* _param_4, string _param_5, string* _param_6, string _param_7, bool* _param_8, string _param_9, bool* _param_10, string _param_11, bool* _param_12, string _param_13, string* _param_14)') * * * * * * * * * FuncDeclaration * * * * * * * * * DtoFunctionType(@system void(ref string[] args, ref configuration cfg, ref GetoptResult rslt, string _param_3, bool* _param_4, string _param_5, string* _param_6, string _param_7, bool* _param_8, string _param_9, bool* _param_10, string _param_11, bool* _param_12, string _param_13, string* _param_14)) * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: void ({ i64, i8* }*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, { i64, i8* }*, { i64, i8* }, i8*, { i64, i8* }, %std.getopt.GetoptResult*, %std.getopt.configuration*, { i64, { i64, i8* }* }*) * * * * * * * * * DtoResolveFunction(std.getopt.getoptImpl!(string, bool*, string, string*, string, bool*, string, bool*, string, bool*, string, string*).getoptImpl): /usr/include/dlang/ldc/std/getopt.d(526) * * * * * * * * * * DtoDeclareFunction(std.getopt.getoptImpl!(string, bool*, string, string*, string, bool*, string, bool*, string, bool*, string, string*).getoptImpl): /usr/include/dlang/ldc/std/getopt.d(526) * * * * * * * * * * * DtoFunctionType(@system void(ref string[] args, ref configuration cfg, ref GetoptResult rslt, string _param_3, bool* _param_4, string _param_5, string* _param_6, string _param_7, bool* _param_8, string _param_9, bool* _param_10, string _param_11, bool* _param_12, string _param_13, string* _param_14)) * * * * * * * * * * * func = declare void @_D3std6getopt62__T10getoptImplTAyaTPbTAyaTPAyaTAyaTPbTAyaTPbTAyaTPbTAyaTPAyaZ10getoptImplFKAAyaKS3std6getopt13configurationKS3std6getopt12GetoptResultAyaPbAyaPAyaAyaPbAyaPbAyaPbAyaPAyaZv({ i64, i8* }*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, { i64, i8* }*, { i64, i8* }, i8*, { i64, i8* }, %std.getopt.GetoptResult*, %std.getopt.configuration*, { i64, { i64, i8* }* }*) * * * * * * * DtoCallFunction() * * * * * * * * Building type: @system void(ref string[] args, ref configuration cfg, ref GetoptResult rslt, string _param_3, bool* _param_4, string _param_5, string* _param_6, string _param_7, bool* _param_8, string _param_9, bool* _param_10, string _param_11, bool* _param_12, string _param_13, string* _param_14) * * * * * * * * * DtoFunctionType(@system void(ref string[] args, ref configuration cfg, ref GetoptResult rslt, string _param_3, bool* _param_4, string _param_5, string* _param_6, string _param_7, bool* _param_8, string _param_9, bool* _param_10, string _param_11, bool* _param_12, string _param_13, string* _param_14)) * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: void ({ i64, i8* }*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, { i64, i8* }*, { i64, i8* }, i8*, { i64, i8* }, %std.getopt.GetoptResult*, %std.getopt.configuration*, { i64, { i64, i8* }* }*) * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (0) * * * * * * * * Function type: @system void(ref string[] args, ref configuration cfg, ref GetoptResult rslt, string _param_3, bool* _param_4, string _param_5, string* _param_6, string _param_7, bool* _param_8, string _param_9, bool* _param_10, string _param_11, bool* _param_12, string _param_13, string* _param_14) * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: args @ string[] * * * * * * * * * * DtoSymbolAddress ('args' of type 'string[]') * * * * * * * * * * * function param * * * * * * * * * * * type: string[] * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: cfg @ configuration * * * * * * * * * * DtoSymbolAddress ('cfg' of type 'configuration') * * * * * * * * * * * function param * * * * * * * * * * * type: configuration * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: rslt @ GetoptResult * * * * * * * * * * DtoSymbolAddress ('rslt' of type 'GetoptResult') * * * * * * * * * * * function param * * * * * * * * * * * type: GetoptResult * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_5 @ string * * * * * * * * * * DtoSymbolAddress ('_param_5' of type 'string') * * * * * * * * * * * function param * * * * * * * * * * * type: string * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_6 @ bool* * * * * * * * * * * DtoSymbolAddress ('_param_6' of type 'bool*') * * * * * * * * * * * function param * * * * * * * * * * * type: bool* * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_7 @ string * * * * * * * * * * DtoSymbolAddress ('_param_7' of type 'string') * * * * * * * * * * * function param * * * * * * * * * * * type: string * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_8 @ string* * * * * * * * * * * DtoSymbolAddress ('_param_8' of type 'string*') * * * * * * * * * * * function param * * * * * * * * * * * type: string* * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_9 @ string * * * * * * * * * * DtoSymbolAddress ('_param_9' of type 'string') * * * * * * * * * * * function param * * * * * * * * * * * type: string * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_10 @ bool* * * * * * * * * * * DtoSymbolAddress ('_param_10' of type 'bool*') * * * * * * * * * * * function param * * * * * * * * * * * type: bool* * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_11 @ string * * * * * * * * * * DtoSymbolAddress ('_param_11' of type 'string') * * * * * * * * * * * function param * * * * * * * * * * * type: string * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_12 @ bool* * * * * * * * * * * DtoSymbolAddress ('_param_12' of type 'bool*') * * * * * * * * * * * function param * * * * * * * * * * * type: bool* * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_13 @ string * * * * * * * * * * DtoSymbolAddress ('_param_13' of type 'string') * * * * * * * * * * * function param * * * * * * * * * * * type: string * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_14 @ bool* * * * * * * * * * * DtoSymbolAddress ('_param_14' of type 'bool*') * * * * * * * * * * * function param * * * * * * * * * * * type: bool* * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_15 @ string * * * * * * * * * * DtoSymbolAddress ('_param_15' of type 'string') * * * * * * * * * * * function param * * * * * * * * * * * type: string * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_16 @ string* * * * * * * * * * * DtoSymbolAddress ('_param_16' of type 'string*') * * * * * * * * * * * function param * * * * * * * * * * * type: string* * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(577) * TemplateInstance::codegen: 'std.getopt.getoptImpl!(string, bool*, string, string*, string, bool*, string, bool*, string, bool*, string, string*)' * * DtoDefineFunction(std.getopt.getoptImpl!(string, bool*, string, string*, string, bool*, string, bool*, string, bool*, string, string*).getoptImpl): /usr/include/dlang/ldc/std/getopt.d(526) * * * Doing function body for: getoptImpl * * * DtoCreateNestedContext for getoptImpl * * * * DtoCreateNestedContextType for std.getopt.getoptImpl!(string, bool*, string, string*, string, bool*, string, bool*, string, bool*, string, string*).getoptImpl * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(528) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(542) * * * * * * DeclarationExp::toElem: string option = to(_param_3); | T=void * * * * * * * DtoDeclarationExp: option * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = string) * * * * * * * * * llvm value for decl: %option = alloca { i64, i8* }, align 8 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: option = to(_param_3) | (string)(string = string) * * * * * * * * * * VarExp::toElem: option @ string * * * * * * * * * * * DtoSymbolAddress ('option' of type 'string') * * * * * * * * * * * * a normal variable * * * * * * * * * * CallExp::toElem: to(_param_3) @ string * * * * * * * * * * * VarExp::toElem: to @ pure nothrow @nogc @safe string(string _param_0) * * * * * * * * * * * * DtoSymbolAddress ('to' of type 'pure nothrow @nogc @safe string(string _param_0)') * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * Function type: pure nothrow @nogc @safe string(string _param_0) * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * VarExp::toElem: _param_3 @ string * * * * * * * * * * * * * * DtoSymbolAddress ('_param_3' of type 'string') * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * type: string * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * SetArray * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(543) * * * * * * DeclarationExp::toElem: Option optionHelp = splitAndGet(option); | T=void * * * * * * * DtoDeclarationExp: optionHelp * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = Option) * * * * * * * * * VarExp::toElem: splitAndGet @ pure nothrow @trusted Option(string opt) * * * * * * * * * * DtoSymbolAddress ('splitAndGet' of type 'pure nothrow @trusted Option(string opt)') * * * * * * * * * * * FuncDeclaration * * * * * * * * * DtoCallFunction() * * * * * * * * * * doing normal arguments * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * %optionHelp = alloca %std.getopt.Option, align 8 * * * * * * * * * * Function type: pure nothrow @trusted Option(string opt) * * * * * * * * * * DtoArgument * * * * * * * * * * * VarExp::toElem: option @ string * * * * * * * * * * * * DtoSymbolAddress ('option' of type 'string') * * * * * * * * * * * * * a normal variable * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(544) * * * * * * AssignExp::toElem: optionHelp.required = cfg.required() | (bool)(bool = bool) * * * * * * * DotVarExp::toElem: optionHelp.required @ bool * * * * * * * * VarExp::toElem: optionHelp @ Option * * * * * * * * * DtoSymbolAddress ('optionHelp' of type 'Option') * * * * * * * * * * a normal variable * * * * * * * * Indexing aggregate field std.getopt.Option.required: * * * * * * * * * Value: %6 = getelementptr %std.getopt.Option, %std.getopt.Option* %optionHelp, i32 0, i32 3 * * * * * * * CallExp::toElem: cfg.required() @ bool * * * * * * * * DotVarExp::toElem: cfg.required @ const pure nothrow @nogc @property @safe bool() * * * * * * * * * VarExp::toElem: cfg @ configuration * * * * * * * * * * DtoSymbolAddress ('cfg' of type 'configuration') * * * * * * * * * * * function param * * * * * * * * * * * type: configuration * * * * * * * * DtoCallFunction() * * * * * * * * * doing normal arguments * * * * * * * * * Arguments so far: (1) * * * * * * * * * * %std.getopt.configuration* %cfg_arg * * * * * * * * * Function type: const pure nothrow @nogc @property @safe bool() * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * DtoAssign() * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(554) * * * * * * DeclarationExp::toElem: bool* receiver = _param_4; | T=void * * * * * * * DtoDeclarationExp: receiver * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = bool*) * * * * * * * * * llvm value for decl: %receiver = alloca i8*, align 8 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: receiver = _param_4 | (bool*)(bool* = bool*) * * * * * * * * * * VarExp::toElem: receiver @ bool* * * * * * * * * * * * DtoSymbolAddress ('receiver' of type 'bool*') * * * * * * * * * * * * a normal variable * * * * * * * * * * VarExp::toElem: _param_4 @ bool* * * * * * * * * * * * DtoSymbolAddress ('_param_4' of type 'bool*') * * * * * * * * * * * * function param * * * * * * * * * * * * type: bool* * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %receiver = alloca i8*, align 8 * * * * * * * * * * * rhs: %9 = load i8*, i8** %_param_4 * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(555) * * * * * * DeclarationExp::toElem: immutable immutable(int) lowSliceIdx = 2; | T=void * * * * * * * DtoDeclarationExp: lowSliceIdx * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = immutable(int)) * * * * * * * * * llvm value for decl: %lowSliceIdx = alloca i32, align 4 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: lowSliceIdx = 2 | (immutable(int))(immutable(int) = immutable(int)) * * * * * * * * * * VarExp::toElem: lowSliceIdx @ immutable(int) * * * * * * * * * * * DtoSymbolAddress ('lowSliceIdx' of type 'immutable(int)') * * * * * * * * * * * * a normal variable * * * * * * * * * * IntegerExp::toElem: 2 @ immutable(int) * * * * * * * * * * * IntegerExp::toConstElem: 2 @ immutable(int) * * * * * * * * * * * * value = i32 2 * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %lowSliceIdx = alloca i32, align 4 * * * * * * * * * * * rhs: i32 2 * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(558) * * * * * * CatAssignExp::toElem: rslt.options ~= optionHelp @ Option[] * * * * * * * DotVarExp::toElem: rslt.options @ Option[] * * * * * * * * VarExp::toElem: rslt @ GetoptResult * * * * * * * * * DtoSymbolAddress ('rslt' of type 'GetoptResult') * * * * * * * * * * function param * * * * * * * * * * type: GetoptResult * * * * * * * * Indexing aggregate field std.getopt.GetoptResult.options: * * * * * * * * * Value: %10 = getelementptr %std.getopt.GetoptResult, %std.getopt.GetoptResult* %rslt_arg, i32 0, i32 2 * * * * * * * DtoCatAssignElement * * * * * * * * DtoArrayLen * * * * * * * * VarExp::toElem: optionHelp @ Option * * * * * * * * * DtoSymbolAddress ('optionHelp' of type 'Option') * * * * * * * * * * a normal variable * * * * * * * * DtoTypeInfoOf(type = 'Option[]', base='1') * * * * * * * * * Type::getTypeInfo(): Option[] * * * * * * * * * TypeInfoDeclaration::codegen(typeid(Option[])) * * * * * * * * DtoArrayPtr * * * * * * * * DtoAssign() * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(560) * * * * * * DeclarationExp::toElem: bool incremental = false; | T=void * * * * * * * DtoDeclarationExp: incremental * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = bool) * * * * * * * * * llvm value for decl: %incremental = alloca i8, align 1 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: incremental = false | (bool)(bool = bool) * * * * * * * * * * VarExp::toElem: incremental @ bool * * * * * * * * * * * DtoSymbolAddress ('incremental' of type 'bool') * * * * * * * * * * * * a normal variable * * * * * * * * * * IntegerExp::toElem: false @ bool * * * * * * * * * * * IntegerExp::toConstElem: false @ bool * * * * * * * * * * * * value = i1 false * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(562) * * * * * * AndAndExp::toElem: option.length && cast(int)option[__dollar - 1LU] == 43 @ bool * * * * * * * ArrayLengthExp::toElem: option.length @ ulong * * * * * * * * VarExp::toElem: option @ string * * * * * * * * * DtoSymbolAddress ('option' of type 'string') * * * * * * * * * * a normal variable * * * * * * * * DtoArrayLen * * * * * * * Casting from 'ulong' to 'bool' * * * * * * * EqualExp::toElem: cast(int)option[__dollar - 1LU] == 43 @ bool * * * * * * * * CastExp::toElem: cast(int)option[__dollar - 1LU] @ int * * * * * * * * * IndexExp::toElem: option[__dollar - 1LU] @ immutable(char) * * * * * * * * * * VarExp::toElem: option @ string * * * * * * * * * * * DtoSymbolAddress ('option' of type 'string') * * * * * * * * * * * * a normal variable * * * * * * * * * * MinExp::toElem: __dollar - 1LU @ ulong * * * * * * * * * * * VarExp::toElem: __dollar @ ulong * * * * * * * * * * * * DtoSymbolAddress ('__dollar' of type 'ulong') * * * * * * * * * * * * * Id::dollar * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * DtoArrayPtr * * * * * * * * * Casting from 'immutable(char)' to 'int' * * * * * * * * * * cast to: i32 * * * * * * * * IntegerExp::toElem: 43 @ int * * * * * * * * * IntegerExp::toConstElem: 43 @ int * * * * * * * * * * value = i32 43 * * * * * * * * integral or pointer or interface * * * * * * * * lv: %28 = zext i8 %27 to i32 * * * * * * * * rv: i32 43 * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(563) * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(563) * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(564) * * * * * * * * * AssignExp::toElem: option = option[0..__dollar - 1LU] | (string)(string = string) * * * * * * * * * * VarExp::toElem: option @ string * * * * * * * * * * * DtoSymbolAddress ('option' of type 'string') * * * * * * * * * * * * a normal variable * * * * * * * * * * SliceExp::toElem: option[0..__dollar - 1LU] @ string * * * * * * * * * * * VarExp::toElem: option @ string * * * * * * * * * * * * DtoSymbolAddress ('option' of type 'string') * * * * * * * * * * * * * a normal variable * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * MinExp::toElem: __dollar - 1LU @ ulong * * * * * * * * * * * * VarExp::toElem: __dollar @ ulong * * * * * * * * * * * * * DtoSymbolAddress ('__dollar' of type 'ulong') * * * * * * * * * * * * * * Id::dollar * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * DtoAssign() * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * SetArray * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(565) * * * * * * * * * AssignExp::toElem: incremental = true | (bool)(bool = bool) * * * * * * * * * * VarExp::toElem: incremental @ bool * * * * * * * * * * * DtoSymbolAddress ('incremental' of type 'bool') * * * * * * * * * * * * a normal variable * * * * * * * * * * IntegerExp::toElem: true @ bool * * * * * * * * * * * IntegerExp::toConstElem: true @ bool * * * * * * * * * * * * value = i1 true * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(568) * * * * * * DeclarationExp::toElem: bool optWasHandled = handleOption(option, receiver, args, cfg, incremental); | T=void * * * * * * * DtoDeclarationExp: optWasHandled * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = bool) * * * * * * * * * llvm value for decl: %optWasHandled = alloca i8, align 1 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: optWasHandled = handleOption(option, receiver, args, cfg, incremental) | (bool)(bool = bool) * * * * * * * * * * VarExp::toElem: optWasHandled @ bool * * * * * * * * * * * DtoSymbolAddress ('optWasHandled' of type 'bool') * * * * * * * * * * * * a normal variable * * * * * * * * * * CallExp::toElem: handleOption(option, receiver, args, cfg, incremental) @ bool * * * * * * * * * * * VarExp::toElem: handleOption @ @system bool(string option, bool* receiver, ref string[] args, ref configuration cfg, bool incremental) * * * * * * * * * * * * DtoSymbolAddress ('handleOption' of type '@system bool(string option, bool* receiver, ref string[] args, ref configuration cfg, bool incremental)') * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * Function type: @system bool(string option, bool* receiver, ref string[] args, ref configuration cfg, bool incremental) * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * VarExp::toElem: option @ string * * * * * * * * * * * * * * DtoSymbolAddress ('option' of type 'string') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * VarExp::toElem: receiver @ bool* * * * * * * * * * * * * * * DtoSymbolAddress ('receiver' of type 'bool*') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * VarExp::toElem: args @ string[] * * * * * * * * * * * * * * DtoSymbolAddress ('args' of type 'string[]') * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * type: string[] * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * VarExp::toElem: cfg @ configuration * * * * * * * * * * * * * * DtoSymbolAddress ('cfg' of type 'configuration') * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * type: configuration * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * VarExp::toElem: incremental @ bool * * * * * * * * * * * * * * DtoSymbolAddress ('incremental' of type 'bool') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(570) * * * * * * AndAndExp::toElem: cfg.required() && !optWasHandled @ bool * * * * * * * CallExp::toElem: cfg.required() @ bool * * * * * * * * DotVarExp::toElem: cfg.required @ const pure nothrow @nogc @property @safe bool() * * * * * * * * * VarExp::toElem: cfg @ configuration * * * * * * * * * * DtoSymbolAddress ('cfg' of type 'configuration') * * * * * * * * * * * function param * * * * * * * * * * * type: configuration * * * * * * * * DtoCallFunction() * * * * * * * * * doing normal arguments * * * * * * * * * Arguments so far: (1) * * * * * * * * * * %std.getopt.configuration* %cfg_arg * * * * * * * * * Function type: const pure nothrow @nogc @property @safe bool() * * * * * * * NotExp::toElem: !optWasHandled @ bool * * * * * * * * VarExp::toElem: optWasHandled @ bool * * * * * * * * * DtoSymbolAddress ('optWasHandled' of type 'bool') * * * * * * * * * * a normal variable * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(571) * * * * * * * ThrowStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(572) * * * * * * * * NewExp::toElem: new GetOptException("Required option " ~ option ~ "was not supplied", "/usr/include/dlang/ldc/std/getopt.d", 572LU) @ std.getopt.GetOptException * * * * * * * * * new class * * * * * * * * * Calling constructor * * * * * * * * * DtoCallFunction() * * * * * * * * * * doing normal arguments * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * %.newclass_gc = bitcast %object.Object* %.newclass_gc_alloc to %std.getopt.GetOptException* * * * * * * * * * * Function type: pure nothrow @safe GetOptException(string msg, string file = __FILE__, ulong line = cast(ulong)__LINE__) * * * * * * * * * * DtoArgument * * * * * * * * * * * CatExp::toElem: "Required option " ~ option ~ "was not supplied" @ string * * * * * * * * * * * * DtoCatAssignArray * * * * * * * * * * * * * StringExp::toElem: "was not supplied" @ string * * * * * * * * * * * * * VarExp::toElem: option @ string * * * * * * * * * * * * * * DtoSymbolAddress ('option' of type 'string') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * StringExp::toElem: "Required option " @ string * * * * * * * * * * * * * DtoTypeInfoOf(type = 'string', base='1') * * * * * * * * * * * * * * Type::getTypeInfo(): string * * * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(string)) * * * * * * * * * * DtoArgument * * * * * * * * * * * StringExp::toElem: "/usr/include/dlang/ldc/std/getopt.d" @ string * * * * * * * * * * DtoArgument * * * * * * * * * * * IntegerExp::toElem: 572LU @ ulong * * * * * * * * * * * * IntegerExp::toConstElem: 572LU @ ulong * * * * * * * * * * * * * value = i64 572 * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(575) * * * * * * CallExp::toElem: cfg.required(false) @ void * * * * * * * DotVarExp::toElem: cfg.required @ pure nothrow @nogc @property @safe void(bool v) * * * * * * * * VarExp::toElem: cfg @ configuration * * * * * * * * * DtoSymbolAddress ('cfg' of type 'configuration') * * * * * * * * * * function param * * * * * * * * * * type: configuration * * * * * * * DtoCallFunction() * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (1) * * * * * * * * * %std.getopt.configuration* %cfg_arg * * * * * * * * Function type: pure nothrow @nogc @property @safe void(bool v) * * * * * * * * DtoArgument * * * * * * * * * IntegerExp::toElem: false @ bool * * * * * * * * * * IntegerExp::toConstElem: false @ bool * * * * * * * * * * * value = i1 false * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(577) * * * * * * CallExp::toElem: getoptImpl(args, cfg, rslt, _param_5, _param_6, _param_7, _param_8, _param_9, _param_10, _param_11, _param_12, _param_13, _param_14) @ void * * * * * * * VarExp::toElem: getoptImpl @ @system void(ref string[] args, ref configuration cfg, ref GetoptResult rslt, string _param_3, string* _param_4, string _param_5, bool* _param_6, string _param_7, bool* _param_8, string _param_9, bool* _param_10, string _param_11, string* _param_12) * * * * * * * * DtoSymbolAddress ('getoptImpl' of type '@system void(ref string[] args, ref configuration cfg, ref GetoptResult rslt, string _param_3, string* _param_4, string _param_5, bool* _param_6, string _param_7, bool* _param_8, string _param_9, bool* _param_10, string _param_11, string* _param_12)') * * * * * * * * * FuncDeclaration * * * * * * * * * DtoFunctionType(@system void(ref string[] args, ref configuration cfg, ref GetoptResult rslt, string _param_3, string* _param_4, string _param_5, bool* _param_6, string _param_7, bool* _param_8, string _param_9, bool* _param_10, string _param_11, string* _param_12)) * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: void ({ i64, i8* }*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, { i64, i8* }*, { i64, i8* }, %std.getopt.GetoptResult*, %std.getopt.configuration*, { i64, { i64, i8* }* }*) * * * * * * * * * DtoResolveFunction(std.getopt.getoptImpl!(string, string*, string, bool*, string, bool*, string, bool*, string, string*).getoptImpl): /usr/include/dlang/ldc/std/getopt.d(526) * * * * * * * * * * DtoDeclareFunction(std.getopt.getoptImpl!(string, string*, string, bool*, string, bool*, string, bool*, string, string*).getoptImpl): /usr/include/dlang/ldc/std/getopt.d(526) * * * * * * * * * * * DtoFunctionType(@system void(ref string[] args, ref configuration cfg, ref GetoptResult rslt, string _param_3, string* _param_4, string _param_5, bool* _param_6, string _param_7, bool* _param_8, string _param_9, bool* _param_10, string _param_11, string* _param_12)) * * * * * * * * * * * func = declare void @_D3std6getopt55__T10getoptImplTAyaTPAyaTAyaTPbTAyaTPbTAyaTPbTAyaTPAyaZ10getoptImplFKAAyaKS3std6getopt13configurationKS3std6getopt12GetoptResultAyaPAyaAyaPbAyaPbAyaPbAyaPAyaZv({ i64, i8* }*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, { i64, i8* }*, { i64, i8* }, %std.getopt.GetoptResult*, %std.getopt.configuration*, { i64, { i64, i8* }* }*) * * * * * * * DtoCallFunction() * * * * * * * * Building type: @system void(ref string[] args, ref configuration cfg, ref GetoptResult rslt, string _param_3, string* _param_4, string _param_5, bool* _param_6, string _param_7, bool* _param_8, string _param_9, bool* _param_10, string _param_11, string* _param_12) * * * * * * * * * DtoFunctionType(@system void(ref string[] args, ref configuration cfg, ref GetoptResult rslt, string _param_3, string* _param_4, string _param_5, bool* _param_6, string _param_7, bool* _param_8, string _param_9, bool* _param_10, string _param_11, string* _param_12)) * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: void ({ i64, i8* }*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, { i64, i8* }*, { i64, i8* }, %std.getopt.GetoptResult*, %std.getopt.configuration*, { i64, { i64, i8* }* }*) * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (0) * * * * * * * * Function type: @system void(ref string[] args, ref configuration cfg, ref GetoptResult rslt, string _param_3, string* _param_4, string _param_5, bool* _param_6, string _param_7, bool* _param_8, string _param_9, bool* _param_10, string _param_11, string* _param_12) * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: args @ string[] * * * * * * * * * * DtoSymbolAddress ('args' of type 'string[]') * * * * * * * * * * * function param * * * * * * * * * * * type: string[] * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: cfg @ configuration * * * * * * * * * * DtoSymbolAddress ('cfg' of type 'configuration') * * * * * * * * * * * function param * * * * * * * * * * * type: configuration * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: rslt @ GetoptResult * * * * * * * * * * DtoSymbolAddress ('rslt' of type 'GetoptResult') * * * * * * * * * * * function param * * * * * * * * * * * type: GetoptResult * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_5 @ string * * * * * * * * * * DtoSymbolAddress ('_param_5' of type 'string') * * * * * * * * * * * function param * * * * * * * * * * * type: string * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_6 @ string* * * * * * * * * * * DtoSymbolAddress ('_param_6' of type 'string*') * * * * * * * * * * * function param * * * * * * * * * * * type: string* * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_7 @ string * * * * * * * * * * DtoSymbolAddress ('_param_7' of type 'string') * * * * * * * * * * * function param * * * * * * * * * * * type: string * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_8 @ bool* * * * * * * * * * * DtoSymbolAddress ('_param_8' of type 'bool*') * * * * * * * * * * * function param * * * * * * * * * * * type: bool* * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_9 @ string * * * * * * * * * * DtoSymbolAddress ('_param_9' of type 'string') * * * * * * * * * * * function param * * * * * * * * * * * type: string * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_10 @ bool* * * * * * * * * * * DtoSymbolAddress ('_param_10' of type 'bool*') * * * * * * * * * * * function param * * * * * * * * * * * type: bool* * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_11 @ string * * * * * * * * * * DtoSymbolAddress ('_param_11' of type 'string') * * * * * * * * * * * function param * * * * * * * * * * * type: string * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_12 @ bool* * * * * * * * * * * DtoSymbolAddress ('_param_12' of type 'bool*') * * * * * * * * * * * function param * * * * * * * * * * * type: bool* * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_13 @ string * * * * * * * * * * DtoSymbolAddress ('_param_13' of type 'string') * * * * * * * * * * * function param * * * * * * * * * * * type: string * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_14 @ string* * * * * * * * * * * DtoSymbolAddress ('_param_14' of type 'string*') * * * * * * * * * * * function param * * * * * * * * * * * type: string* * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(577) * TemplateInstance::codegen: 'std.getopt.getoptImpl!(string, string*, string, bool*, string, bool*, string, bool*, string, string*)' * * DtoDefineFunction(std.getopt.getoptImpl!(string, string*, string, bool*, string, bool*, string, bool*, string, string*).getoptImpl): /usr/include/dlang/ldc/std/getopt.d(526) * * * Doing function body for: getoptImpl * * * DtoCreateNestedContext for getoptImpl * * * * DtoCreateNestedContextType for std.getopt.getoptImpl!(string, string*, string, bool*, string, bool*, string, bool*, string, string*).getoptImpl * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(528) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(542) * * * * * * DeclarationExp::toElem: string option = to(_param_3); | T=void * * * * * * * DtoDeclarationExp: option * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = string) * * * * * * * * * llvm value for decl: %option = alloca { i64, i8* }, align 8 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: option = to(_param_3) | (string)(string = string) * * * * * * * * * * VarExp::toElem: option @ string * * * * * * * * * * * DtoSymbolAddress ('option' of type 'string') * * * * * * * * * * * * a normal variable * * * * * * * * * * CallExp::toElem: to(_param_3) @ string * * * * * * * * * * * VarExp::toElem: to @ pure nothrow @nogc @safe string(string _param_0) * * * * * * * * * * * * DtoSymbolAddress ('to' of type 'pure nothrow @nogc @safe string(string _param_0)') * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * Function type: pure nothrow @nogc @safe string(string _param_0) * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * VarExp::toElem: _param_3 @ string * * * * * * * * * * * * * * DtoSymbolAddress ('_param_3' of type 'string') * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * type: string * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * SetArray * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(543) * * * * * * DeclarationExp::toElem: Option optionHelp = splitAndGet(option); | T=void * * * * * * * DtoDeclarationExp: optionHelp * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = Option) * * * * * * * * * VarExp::toElem: splitAndGet @ pure nothrow @trusted Option(string opt) * * * * * * * * * * DtoSymbolAddress ('splitAndGet' of type 'pure nothrow @trusted Option(string opt)') * * * * * * * * * * * FuncDeclaration * * * * * * * * * DtoCallFunction() * * * * * * * * * * doing normal arguments * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * %optionHelp = alloca %std.getopt.Option, align 8 * * * * * * * * * * Function type: pure nothrow @trusted Option(string opt) * * * * * * * * * * DtoArgument * * * * * * * * * * * VarExp::toElem: option @ string * * * * * * * * * * * * DtoSymbolAddress ('option' of type 'string') * * * * * * * * * * * * * a normal variable * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(544) * * * * * * AssignExp::toElem: optionHelp.required = cfg.required() | (bool)(bool = bool) * * * * * * * DotVarExp::toElem: optionHelp.required @ bool * * * * * * * * VarExp::toElem: optionHelp @ Option * * * * * * * * * DtoSymbolAddress ('optionHelp' of type 'Option') * * * * * * * * * * a normal variable * * * * * * * * Indexing aggregate field std.getopt.Option.required: * * * * * * * * * Value: %6 = getelementptr %std.getopt.Option, %std.getopt.Option* %optionHelp, i32 0, i32 3 * * * * * * * CallExp::toElem: cfg.required() @ bool * * * * * * * * DotVarExp::toElem: cfg.required @ const pure nothrow @nogc @property @safe bool() * * * * * * * * * VarExp::toElem: cfg @ configuration * * * * * * * * * * DtoSymbolAddress ('cfg' of type 'configuration') * * * * * * * * * * * function param * * * * * * * * * * * type: configuration * * * * * * * * DtoCallFunction() * * * * * * * * * doing normal arguments * * * * * * * * * Arguments so far: (1) * * * * * * * * * * %std.getopt.configuration* %cfg_arg * * * * * * * * * Function type: const pure nothrow @nogc @property @safe bool() * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * DtoAssign() * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(554) * * * * * * DeclarationExp::toElem: string* receiver = _param_4; | T=void * * * * * * * DtoDeclarationExp: receiver * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = string*) * * * * * * * * * llvm value for decl: %receiver = alloca { i64, i8* }*, align 8 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: receiver = _param_4 | (string*)(string* = string*) * * * * * * * * * * VarExp::toElem: receiver @ string* * * * * * * * * * * * DtoSymbolAddress ('receiver' of type 'string*') * * * * * * * * * * * * a normal variable * * * * * * * * * * VarExp::toElem: _param_4 @ string* * * * * * * * * * * * DtoSymbolAddress ('_param_4' of type 'string*') * * * * * * * * * * * * function param * * * * * * * * * * * * type: string* * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %receiver = alloca { i64, i8* }*, align 8 * * * * * * * * * * * rhs: %9 = load { i64, i8* }*, { i64, i8* }** %_param_4 * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(555) * * * * * * DeclarationExp::toElem: immutable immutable(int) lowSliceIdx = 2; | T=void * * * * * * * DtoDeclarationExp: lowSliceIdx * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = immutable(int)) * * * * * * * * * llvm value for decl: %lowSliceIdx = alloca i32, align 4 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: lowSliceIdx = 2 | (immutable(int))(immutable(int) = immutable(int)) * * * * * * * * * * VarExp::toElem: lowSliceIdx @ immutable(int) * * * * * * * * * * * DtoSymbolAddress ('lowSliceIdx' of type 'immutable(int)') * * * * * * * * * * * * a normal variable * * * * * * * * * * IntegerExp::toElem: 2 @ immutable(int) * * * * * * * * * * * IntegerExp::toConstElem: 2 @ immutable(int) * * * * * * * * * * * * value = i32 2 * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %lowSliceIdx = alloca i32, align 4 * * * * * * * * * * * rhs: i32 2 * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(558) * * * * * * CatAssignExp::toElem: rslt.options ~= optionHelp @ Option[] * * * * * * * DotVarExp::toElem: rslt.options @ Option[] * * * * * * * * VarExp::toElem: rslt @ GetoptResult * * * * * * * * * DtoSymbolAddress ('rslt' of type 'GetoptResult') * * * * * * * * * * function param * * * * * * * * * * type: GetoptResult * * * * * * * * Indexing aggregate field std.getopt.GetoptResult.options: * * * * * * * * * Value: %10 = getelementptr %std.getopt.GetoptResult, %std.getopt.GetoptResult* %rslt_arg, i32 0, i32 2 * * * * * * * DtoCatAssignElement * * * * * * * * DtoArrayLen * * * * * * * * VarExp::toElem: optionHelp @ Option * * * * * * * * * DtoSymbolAddress ('optionHelp' of type 'Option') * * * * * * * * * * a normal variable * * * * * * * * DtoTypeInfoOf(type = 'Option[]', base='1') * * * * * * * * * Type::getTypeInfo(): Option[] * * * * * * * * * TypeInfoDeclaration::codegen(typeid(Option[])) * * * * * * * * DtoArrayPtr * * * * * * * * DtoAssign() * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(560) * * * * * * DeclarationExp::toElem: bool incremental = false; | T=void * * * * * * * DtoDeclarationExp: incremental * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = bool) * * * * * * * * * llvm value for decl: %incremental = alloca i8, align 1 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: incremental = false | (bool)(bool = bool) * * * * * * * * * * VarExp::toElem: incremental @ bool * * * * * * * * * * * DtoSymbolAddress ('incremental' of type 'bool') * * * * * * * * * * * * a normal variable * * * * * * * * * * IntegerExp::toElem: false @ bool * * * * * * * * * * * IntegerExp::toConstElem: false @ bool * * * * * * * * * * * * value = i1 false * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(562) * * * * * * AndAndExp::toElem: option.length && cast(int)option[__dollar - 1LU] == 43 @ bool * * * * * * * ArrayLengthExp::toElem: option.length @ ulong * * * * * * * * VarExp::toElem: option @ string * * * * * * * * * DtoSymbolAddress ('option' of type 'string') * * * * * * * * * * a normal variable * * * * * * * * DtoArrayLen * * * * * * * Casting from 'ulong' to 'bool' * * * * * * * EqualExp::toElem: cast(int)option[__dollar - 1LU] == 43 @ bool * * * * * * * * CastExp::toElem: cast(int)option[__dollar - 1LU] @ int * * * * * * * * * IndexExp::toElem: option[__dollar - 1LU] @ immutable(char) * * * * * * * * * * VarExp::toElem: option @ string * * * * * * * * * * * DtoSymbolAddress ('option' of type 'string') * * * * * * * * * * * * a normal variable * * * * * * * * * * MinExp::toElem: __dollar - 1LU @ ulong * * * * * * * * * * * VarExp::toElem: __dollar @ ulong * * * * * * * * * * * * DtoSymbolAddress ('__dollar' of type 'ulong') * * * * * * * * * * * * * Id::dollar * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * DtoArrayPtr * * * * * * * * * Casting from 'immutable(char)' to 'int' * * * * * * * * * * cast to: i32 * * * * * * * * IntegerExp::toElem: 43 @ int * * * * * * * * * IntegerExp::toConstElem: 43 @ int * * * * * * * * * * value = i32 43 * * * * * * * * integral or pointer or interface * * * * * * * * lv: %28 = zext i8 %27 to i32 * * * * * * * * rv: i32 43 * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(563) * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(563) * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(564) * * * * * * * * * AssignExp::toElem: option = option[0..__dollar - 1LU] | (string)(string = string) * * * * * * * * * * VarExp::toElem: option @ string * * * * * * * * * * * DtoSymbolAddress ('option' of type 'string') * * * * * * * * * * * * a normal variable * * * * * * * * * * SliceExp::toElem: option[0..__dollar - 1LU] @ string * * * * * * * * * * * VarExp::toElem: option @ string * * * * * * * * * * * * DtoSymbolAddress ('option' of type 'string') * * * * * * * * * * * * * a normal variable * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * MinExp::toElem: __dollar - 1LU @ ulong * * * * * * * * * * * * VarExp::toElem: __dollar @ ulong * * * * * * * * * * * * * DtoSymbolAddress ('__dollar' of type 'ulong') * * * * * * * * * * * * * * Id::dollar * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * DtoAssign() * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * SetArray * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(565) * * * * * * * * * AssignExp::toElem: incremental = true | (bool)(bool = bool) * * * * * * * * * * VarExp::toElem: incremental @ bool * * * * * * * * * * * DtoSymbolAddress ('incremental' of type 'bool') * * * * * * * * * * * * a normal variable * * * * * * * * * * IntegerExp::toElem: true @ bool * * * * * * * * * * * IntegerExp::toConstElem: true @ bool * * * * * * * * * * * * value = i1 true * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(568) * * * * * * DeclarationExp::toElem: bool optWasHandled = handleOption(option, receiver, args, cfg, incremental); | T=void * * * * * * * DtoDeclarationExp: optWasHandled * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = bool) * * * * * * * * * llvm value for decl: %optWasHandled = alloca i8, align 1 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: optWasHandled = handleOption(option, receiver, args, cfg, incremental) | (bool)(bool = bool) * * * * * * * * * * VarExp::toElem: optWasHandled @ bool * * * * * * * * * * * DtoSymbolAddress ('optWasHandled' of type 'bool') * * * * * * * * * * * * a normal variable * * * * * * * * * * CallExp::toElem: handleOption(option, receiver, args, cfg, incremental) @ bool * * * * * * * * * * * VarExp::toElem: handleOption @ @system bool(string option, string* receiver, ref string[] args, ref configuration cfg, bool incremental) * * * * * * * * * * * * DtoSymbolAddress ('handleOption' of type '@system bool(string option, string* receiver, ref string[] args, ref configuration cfg, bool incremental)') * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * DtoFunctionType(@system bool(string option, string* receiver, ref string[] args, ref configuration cfg, bool incremental)) * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * Final function type: i1 (i1, %std.getopt.configuration*, { i64, { i64, i8* }* }*, { i64, i8* }*, { i64, i8* }) * * * * * * * * * * * * * DtoResolveFunction(std.getopt.handleOption!(string*).handleOption): /usr/include/dlang/ldc/std/getopt.d(621) * * * * * * * * * * * * * * DtoDeclareFunction(std.getopt.handleOption!(string*).handleOption): /usr/include/dlang/ldc/std/getopt.d(621) * * * * * * * * * * * * * * * DtoFunctionType(@system bool(string option, string* receiver, ref string[] args, ref configuration cfg, bool incremental)) * * * * * * * * * * * * * * * func = declare i1 @_D3std6getopt23__T12handleOptionTPAyaZ12handleOptionFAyaPAyaKAAyaKS3std6getopt13configurationbZb(i1, %std.getopt.configuration*, { i64, { i64, i8* }* }*, { i64, i8* }*, { i64, i8* }) * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * Building type: @system bool(string option, string* receiver, ref string[] args, ref configuration cfg, bool incremental) * * * * * * * * * * * * * DtoFunctionType(@system bool(string option, string* receiver, ref string[] args, ref configuration cfg, bool incremental)) * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * Final function type: i1 (i1, %std.getopt.configuration*, { i64, { i64, i8* }* }*, { i64, i8* }*, { i64, i8* }) * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * Function type: @system bool(string option, string* receiver, ref string[] args, ref configuration cfg, bool incremental) * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * VarExp::toElem: option @ string * * * * * * * * * * * * * * DtoSymbolAddress ('option' of type 'string') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * VarExp::toElem: receiver @ string* * * * * * * * * * * * * * * DtoSymbolAddress ('receiver' of type 'string*') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * VarExp::toElem: args @ string[] * * * * * * * * * * * * * * DtoSymbolAddress ('args' of type 'string[]') * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * type: string[] * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * VarExp::toElem: cfg @ configuration * * * * * * * * * * * * * * DtoSymbolAddress ('cfg' of type 'configuration') * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * type: configuration * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * VarExp::toElem: incremental @ bool * * * * * * * * * * * * * * DtoSymbolAddress ('incremental' of type 'bool') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(570) * * * * * * AndAndExp::toElem: cfg.required() && !optWasHandled @ bool * * * * * * * CallExp::toElem: cfg.required() @ bool * * * * * * * * DotVarExp::toElem: cfg.required @ const pure nothrow @nogc @property @safe bool() * * * * * * * * * VarExp::toElem: cfg @ configuration * * * * * * * * * * DtoSymbolAddress ('cfg' of type 'configuration') * * * * * * * * * * * function param * * * * * * * * * * * type: configuration * * * * * * * * DtoCallFunction() * * * * * * * * * doing normal arguments * * * * * * * * * Arguments so far: (1) * * * * * * * * * * %std.getopt.configuration* %cfg_arg * * * * * * * * * Function type: const pure nothrow @nogc @property @safe bool() * * * * * * * NotExp::toElem: !optWasHandled @ bool * * * * * * * * VarExp::toElem: optWasHandled @ bool * * * * * * * * * DtoSymbolAddress ('optWasHandled' of type 'bool') * * * * * * * * * * a normal variable * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(571) * * * * * * * ThrowStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(572) * * * * * * * * NewExp::toElem: new GetOptException("Required option " ~ option ~ "was not supplied", "/usr/include/dlang/ldc/std/getopt.d", 572LU) @ std.getopt.GetOptException * * * * * * * * * new class * * * * * * * * * Calling constructor * * * * * * * * * DtoCallFunction() * * * * * * * * * * doing normal arguments * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * %.newclass_gc = bitcast %object.Object* %.newclass_gc_alloc to %std.getopt.GetOptException* * * * * * * * * * * Function type: pure nothrow @safe GetOptException(string msg, string file = __FILE__, ulong line = cast(ulong)__LINE__) * * * * * * * * * * DtoArgument * * * * * * * * * * * CatExp::toElem: "Required option " ~ option ~ "was not supplied" @ string * * * * * * * * * * * * DtoCatAssignArray * * * * * * * * * * * * * StringExp::toElem: "was not supplied" @ string * * * * * * * * * * * * * VarExp::toElem: option @ string * * * * * * * * * * * * * * DtoSymbolAddress ('option' of type 'string') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * StringExp::toElem: "Required option " @ string * * * * * * * * * * * * * DtoTypeInfoOf(type = 'string', base='1') * * * * * * * * * * * * * * Type::getTypeInfo(): string * * * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(string)) * * * * * * * * * * DtoArgument * * * * * * * * * * * StringExp::toElem: "/usr/include/dlang/ldc/std/getopt.d" @ string * * * * * * * * * * DtoArgument * * * * * * * * * * * IntegerExp::toElem: 572LU @ ulong * * * * * * * * * * * * IntegerExp::toConstElem: 572LU @ ulong * * * * * * * * * * * * * value = i64 572 * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(575) * * * * * * CallExp::toElem: cfg.required(false) @ void * * * * * * * DotVarExp::toElem: cfg.required @ pure nothrow @nogc @property @safe void(bool v) * * * * * * * * VarExp::toElem: cfg @ configuration * * * * * * * * * DtoSymbolAddress ('cfg' of type 'configuration') * * * * * * * * * * function param * * * * * * * * * * type: configuration * * * * * * * DtoCallFunction() * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (1) * * * * * * * * * %std.getopt.configuration* %cfg_arg * * * * * * * * Function type: pure nothrow @nogc @property @safe void(bool v) * * * * * * * * DtoArgument * * * * * * * * * IntegerExp::toElem: false @ bool * * * * * * * * * * IntegerExp::toConstElem: false @ bool * * * * * * * * * * * value = i1 false * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(577) * * * * * * CallExp::toElem: getoptImpl(args, cfg, rslt, _param_5, _param_6, _param_7, _param_8, _param_9, _param_10, _param_11, _param_12) @ void * * * * * * * VarExp::toElem: getoptImpl @ @system void(ref string[] args, ref configuration cfg, ref GetoptResult rslt, string _param_3, bool* _param_4, string _param_5, bool* _param_6, string _param_7, bool* _param_8, string _param_9, string* _param_10) * * * * * * * * DtoSymbolAddress ('getoptImpl' of type '@system void(ref string[] args, ref configuration cfg, ref GetoptResult rslt, string _param_3, bool* _param_4, string _param_5, bool* _param_6, string _param_7, bool* _param_8, string _param_9, string* _param_10)') * * * * * * * * * FuncDeclaration * * * * * * * * * DtoFunctionType(@system void(ref string[] args, ref configuration cfg, ref GetoptResult rslt, string _param_3, bool* _param_4, string _param_5, bool* _param_6, string _param_7, bool* _param_8, string _param_9, string* _param_10)) * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: void ({ i64, i8* }*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, %std.getopt.GetoptResult*, %std.getopt.configuration*, { i64, { i64, i8* }* }*) * * * * * * * * * DtoResolveFunction(std.getopt.getoptImpl!(string, bool*, string, bool*, string, bool*, string, string*).getoptImpl): /usr/include/dlang/ldc/std/getopt.d(526) * * * * * * * * * * DtoDeclareFunction(std.getopt.getoptImpl!(string, bool*, string, bool*, string, bool*, string, string*).getoptImpl): /usr/include/dlang/ldc/std/getopt.d(526) * * * * * * * * * * * DtoFunctionType(@system void(ref string[] args, ref configuration cfg, ref GetoptResult rslt, string _param_3, bool* _param_4, string _param_5, bool* _param_6, string _param_7, bool* _param_8, string _param_9, string* _param_10)) * * * * * * * * * * * func = declare void @_D3std6getopt46__T10getoptImplTAyaTPbTAyaTPbTAyaTPbTAyaTPAyaZ10getoptImplFKAAyaKS3std6getopt13configurationKS3std6getopt12GetoptResultAyaPbAyaPbAyaPbAyaPAyaZv({ i64, i8* }*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, %std.getopt.GetoptResult*, %std.getopt.configuration*, { i64, { i64, i8* }* }*) * * * * * * * DtoCallFunction() * * * * * * * * Building type: @system void(ref string[] args, ref configuration cfg, ref GetoptResult rslt, string _param_3, bool* _param_4, string _param_5, bool* _param_6, string _param_7, bool* _param_8, string _param_9, string* _param_10) * * * * * * * * * DtoFunctionType(@system void(ref string[] args, ref configuration cfg, ref GetoptResult rslt, string _param_3, bool* _param_4, string _param_5, bool* _param_6, string _param_7, bool* _param_8, string _param_9, string* _param_10)) * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: void ({ i64, i8* }*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, %std.getopt.GetoptResult*, %std.getopt.configuration*, { i64, { i64, i8* }* }*) * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (0) * * * * * * * * Function type: @system void(ref string[] args, ref configuration cfg, ref GetoptResult rslt, string _param_3, bool* _param_4, string _param_5, bool* _param_6, string _param_7, bool* _param_8, string _param_9, string* _param_10) * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: args @ string[] * * * * * * * * * * DtoSymbolAddress ('args' of type 'string[]') * * * * * * * * * * * function param * * * * * * * * * * * type: string[] * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: cfg @ configuration * * * * * * * * * * DtoSymbolAddress ('cfg' of type 'configuration') * * * * * * * * * * * function param * * * * * * * * * * * type: configuration * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: rslt @ GetoptResult * * * * * * * * * * DtoSymbolAddress ('rslt' of type 'GetoptResult') * * * * * * * * * * * function param * * * * * * * * * * * type: GetoptResult * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_5 @ string * * * * * * * * * * DtoSymbolAddress ('_param_5' of type 'string') * * * * * * * * * * * function param * * * * * * * * * * * type: string * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_6 @ bool* * * * * * * * * * * DtoSymbolAddress ('_param_6' of type 'bool*') * * * * * * * * * * * function param * * * * * * * * * * * type: bool* * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_7 @ string * * * * * * * * * * DtoSymbolAddress ('_param_7' of type 'string') * * * * * * * * * * * function param * * * * * * * * * * * type: string * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_8 @ bool* * * * * * * * * * * DtoSymbolAddress ('_param_8' of type 'bool*') * * * * * * * * * * * function param * * * * * * * * * * * type: bool* * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_9 @ string * * * * * * * * * * DtoSymbolAddress ('_param_9' of type 'string') * * * * * * * * * * * function param * * * * * * * * * * * type: string * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_10 @ bool* * * * * * * * * * * DtoSymbolAddress ('_param_10' of type 'bool*') * * * * * * * * * * * function param * * * * * * * * * * * type: bool* * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_11 @ string * * * * * * * * * * DtoSymbolAddress ('_param_11' of type 'string') * * * * * * * * * * * function param * * * * * * * * * * * type: string * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_12 @ string* * * * * * * * * * * DtoSymbolAddress ('_param_12' of type 'string*') * * * * * * * * * * * function param * * * * * * * * * * * type: string* * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(577) * TemplateInstance::codegen: 'std.getopt.handleOption!(string*)' * * DtoDefineFunction(std.getopt.handleOption!(string*).handleOption): /usr/include/dlang/ldc/std/getopt.d(621) * * * Doing function body for: handleOption * * * DtoCreateNestedContext for handleOption * * * * DtoCreateNestedContextType for std.getopt.handleOption!(string*).handleOption * * * * * has nested frame * * * * * Function handleOption has depth 0 * * * * * Nested var 'expanded' of type { i64, { i64, i8* }* } * * * * * Nested var 'a' of type { i64, i8* } * * * * * frameType = %nest.handleOption.14 = type { { i64, { i64, i8* }* }, { i64, i8* } } * * * * nested var: expanded * * * * nested var: a * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(623) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(628) * * * * * * DeclarationExp::toElem: bool ret = false; | T=void * * * * * * * DtoDeclarationExp: ret * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = bool) * * * * * * * * * llvm value for decl: %ret = alloca i8, align 1 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: ret = false | (bool)(bool = bool) * * * * * * * * * * VarExp::toElem: ret @ bool * * * * * * * * * * * DtoSymbolAddress ('ret' of type 'bool') * * * * * * * * * * * * a normal variable * * * * * * * * * * IntegerExp::toElem: false @ bool * * * * * * * * * * * IntegerExp::toConstElem: false @ bool * * * * * * * * * * * * value = i1 false * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(629) * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(629) * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(629) * * * * * * * * DeclarationExp::toElem: ulong i = 1LU; | T=void * * * * * * * * * DtoDeclarationExp: i * * * * * * * * * * VarDeclaration * * * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * * * llvm value for decl: %i = alloca i64, align 8 * * * * * * * * * * * expression initializer * * * * * * * * * * * AssignExp::toElem: i = 1LU | (ulong)(ulong = ulong) * * * * * * * * * * * * VarExp::toElem: i @ ulong * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'ulong') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * lhs: %i = alloca i64, align 8 * * * * * * * * * * * * * rhs: i64 1 * * * * * * * ForStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(629) * * * * * * * * CmpExp::toElem: i < args.length @ bool * * * * * * * * * VarExp::toElem: i @ ulong * * * * * * * * * * DtoSymbolAddress ('i' of type 'ulong') * * * * * * * * * * * a normal variable * * * * * * * * * ArrayLengthExp::toElem: args.length @ ulong * * * * * * * * * * VarExp::toElem: args @ string[] * * * * * * * * * * * DtoSymbolAddress ('args' of type 'string[]') * * * * * * * * * * * * function param * * * * * * * * * * * * type: string[] * * * * * * * * * * DtoArrayLen * * * * * * * * * type 1: %3 = load i64, i64* %i * * * * * * * * * type 2: %.len = load i64, i64* %2 * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(630) * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(630) * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(631) * * * * * * * * * * * DeclarationExp::toElem: string a = args[i]; | T=void * * * * * * * * * * * * DtoDeclarationExp: a * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * DtoVarDeclaration(vdtype = string) * * * * * * * * * * * * * * has nestedref set (referenced by nested function/delegate) * * * * * * * * * * * * * * llvm value for decl: %a = getelementptr %nest.handleOption.14, %nest.handleOption.14* %.frame, i32 0, i32 1 * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * AssignExp::toElem: a = args[i] | (string)(string = string) * * * * * * * * * * * * * * * VarExp::toElem: a @ string * * * * * * * * * * * * * * * * DtoSymbolAddress ('a' of type 'string') * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * DtoNestedVariable for a @ /usr/include/dlang/ldc/std/getopt.d(631) * * * * * * * * * * * * * * * IndexExp::toElem: args[i] @ string * * * * * * * * * * * * * * * * VarExp::toElem: args @ string[] * * * * * * * * * * * * * * * * * DtoSymbolAddress ('args' of type 'string[]') * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * type: string[] * * * * * * * * * * * * * * * * VarExp::toElem: i @ ulong * * * * * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'ulong') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * SetArray * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(632) * * * * * * * * * * * AndAndExp::toElem: endOfOptions.length && a == endOfOptions @ bool * * * * * * * * * * * * ArrayLengthExp::toElem: endOfOptions.length @ ulong * * * * * * * * * * * * * VarExp::toElem: endOfOptions @ string * * * * * * * * * * * * * * DtoSymbolAddress ('endOfOptions' of type 'string') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * DtoResolveVariable(std.getopt.endOfOptions) * * * * * * * * * * * * * * * * data segment * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * Casting from 'ulong' to 'bool' * * * * * * * * * * * * EqualExp::toElem: a == endOfOptions @ bool * * * * * * * * * * * * * VarExp::toElem: a @ string * * * * * * * * * * * * * * DtoSymbolAddress ('a' of type 'string') * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * DtoNestedVariable for a @ /usr/include/dlang/ldc/std/getopt.d(632) * * * * * * * * * * * * * VarExp::toElem: endOfOptions @ string * * * * * * * * * * * * * * DtoSymbolAddress ('endOfOptions' of type 'string') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * DtoResolveVariable(std.getopt.endOfOptions) * * * * * * * * * * * * * * * * data segment * * * * * * * * * * * * * static or dynamic array * * * * * * * * * * * * * comparing arrays * * * * * * * * * * * * * casting to dynamic arrays * * * * * * * * * * * * * DtoCastArray * * * * * * * * * * * * * * from array or sarray * * * * * * * * * * * * * * to array * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * isslice * * * * * * * * * * * * * DtoCastArray * * * * * * * * * * * * * * from array or sarray * * * * * * * * * * * * * * to array * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * isslice * * * * * * * * * * * * * DtoTypeInfoOf(type = 'string', base='1') * * * * * * * * * * * * * * Type::getTypeInfo(): string * * * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(string)) * * * * * * * * * * * BreakStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(632) * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(633) * * * * * * * * * * * AndAndExp::toElem: cfg.stopOnFirstNonOption() && (!a.length || cast(uint)cast(int)a[0] != cast(uint)optionChar) @ bool * * * * * * * * * * * * CallExp::toElem: cfg.stopOnFirstNonOption() @ bool * * * * * * * * * * * * * DotVarExp::toElem: cfg.stopOnFirstNonOption @ const pure nothrow @nogc @property @safe bool() * * * * * * * * * * * * * * VarExp::toElem: cfg @ configuration * * * * * * * * * * * * * * * DtoSymbolAddress ('cfg' of type 'configuration') * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * type: configuration * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * %std.getopt.configuration* %cfg_arg * * * * * * * * * * * * * * Function type: const pure nothrow @nogc @property @safe bool() * * * * * * * * * * * * OrOrExp::toElem: !a.length || cast(uint)cast(int)a[0] != cast(uint)optionChar @ bool * * * * * * * * * * * * * NotExp::toElem: !a.length @ bool * * * * * * * * * * * * * * ArrayLengthExp::toElem: a.length @ ulong * * * * * * * * * * * * * * * VarExp::toElem: a @ string * * * * * * * * * * * * * * * * DtoSymbolAddress ('a' of type 'string') * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * DtoNestedVariable for a @ /usr/include/dlang/ldc/std/getopt.d(633) * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * Casting from 'ulong' to 'bool' * * * * * * * * * * * * * EqualExp::toElem: cast(uint)cast(int)a[0] != cast(uint)optionChar @ bool * * * * * * * * * * * * * * CastExp::toElem: cast(uint)cast(int)a[0] @ uint * * * * * * * * * * * * * * * CastExp::toElem: cast(int)a[0] @ int * * * * * * * * * * * * * * * * IndexExp::toElem: a[0] @ immutable(char) * * * * * * * * * * * * * * * * * VarExp::toElem: a @ string * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('a' of type 'string') * * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * * DtoNestedVariable for a @ /usr/include/dlang/ldc/std/getopt.d(633) * * * * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * Casting from 'immutable(char)' to 'int' * * * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * * * * Casting from 'int' to 'uint' * * * * * * * * * * * * * * CastExp::toElem: cast(uint)optionChar @ uint * * * * * * * * * * * * * * * VarExp::toElem: optionChar @ dchar * * * * * * * * * * * * * * * * DtoSymbolAddress ('optionChar' of type 'dchar') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * DtoResolveVariable(std.getopt.optionChar) * * * * * * * * * * * * * * * * * * data segment * * * * * * * * * * * * * * * Casting from 'dchar' to 'uint' * * * * * * * * * * * * * * integral or pointer or interface * * * * * * * * * * * * * * lv: %33 = zext i8 %32 to i32 * * * * * * * * * * * * * * rv: %34 = load i32, i32* @_D3std6getopt10optionCharw * * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(634) * * * * * * * * * * * * BreakStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(636) * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(639) * * * * * * * * * * * AndAndExp::toElem: cfg.bundling() && a.length > 2LU && cast(uint)cast(int)a[0] == cast(uint)optionChar && cast(uint)cast(int)a[1] != cast(uint)optionChar @ bool * * * * * * * * * * * * AndAndExp::toElem: cfg.bundling() && a.length > 2LU && cast(uint)cast(int)a[0] == cast(uint)optionChar @ bool * * * * * * * * * * * * * AndAndExp::toElem: cfg.bundling() && a.length > 2LU @ bool * * * * * * * * * * * * * * CallExp::toElem: cfg.bundling() @ bool * * * * * * * * * * * * * * * DotVarExp::toElem: cfg.bundling @ const pure nothrow @nogc @property @safe bool() * * * * * * * * * * * * * * * * VarExp::toElem: cfg @ configuration * * * * * * * * * * * * * * * * * DtoSymbolAddress ('cfg' of type 'configuration') * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * type: configuration * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * %std.getopt.configuration* %cfg_arg * * * * * * * * * * * * * * * * Function type: const pure nothrow @nogc @property @safe bool() * * * * * * * * * * * * * * CmpExp::toElem: a.length > 2LU @ bool * * * * * * * * * * * * * * * ArrayLengthExp::toElem: a.length @ ulong * * * * * * * * * * * * * * * * VarExp::toElem: a @ string * * * * * * * * * * * * * * * * * DtoSymbolAddress ('a' of type 'string') * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * DtoNestedVariable for a @ /usr/include/dlang/ldc/std/getopt.d(639) * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * IntegerExp::toElem: 2LU @ ulong * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 2LU @ ulong * * * * * * * * * * * * * * * * * value = i64 2 * * * * * * * * * * * * * * * type 1: %.len18 = load i64, i64* %37 * * * * * * * * * * * * * * * type 2: i64 2 * * * * * * * * * * * * * EqualExp::toElem: cast(uint)cast(int)a[0] == cast(uint)optionChar @ bool * * * * * * * * * * * * * * CastExp::toElem: cast(uint)cast(int)a[0] @ uint * * * * * * * * * * * * * * * CastExp::toElem: cast(int)a[0] @ int * * * * * * * * * * * * * * * * IndexExp::toElem: a[0] @ immutable(char) * * * * * * * * * * * * * * * * * VarExp::toElem: a @ string * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('a' of type 'string') * * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * * DtoNestedVariable for a @ /usr/include/dlang/ldc/std/getopt.d(639) * * * * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * Casting from 'immutable(char)' to 'int' * * * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * * * * Casting from 'int' to 'uint' * * * * * * * * * * * * * * CastExp::toElem: cast(uint)optionChar @ uint * * * * * * * * * * * * * * * VarExp::toElem: optionChar @ dchar * * * * * * * * * * * * * * * * DtoSymbolAddress ('optionChar' of type 'dchar') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * DtoResolveVariable(std.getopt.optionChar) * * * * * * * * * * * * * * * * * * data segment * * * * * * * * * * * * * * * Casting from 'dchar' to 'uint' * * * * * * * * * * * * * * integral or pointer or interface * * * * * * * * * * * * * * lv: %42 = zext i8 %41 to i32 * * * * * * * * * * * * * * rv: %43 = load i32, i32* @_D3std6getopt10optionCharw * * * * * * * * * * * * EqualExp::toElem: cast(uint)cast(int)a[1] != cast(uint)optionChar @ bool * * * * * * * * * * * * * CastExp::toElem: cast(uint)cast(int)a[1] @ uint * * * * * * * * * * * * * * CastExp::toElem: cast(int)a[1] @ int * * * * * * * * * * * * * * * IndexExp::toElem: a[1] @ immutable(char) * * * * * * * * * * * * * * * * VarExp::toElem: a @ string * * * * * * * * * * * * * * * * * DtoSymbolAddress ('a' of type 'string') * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * DtoNestedVariable for a @ /usr/include/dlang/ldc/std/getopt.d(640) * * * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * Casting from 'immutable(char)' to 'int' * * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * * * Casting from 'int' to 'uint' * * * * * * * * * * * * * CastExp::toElem: cast(uint)optionChar @ uint * * * * * * * * * * * * * * VarExp::toElem: optionChar @ dchar * * * * * * * * * * * * * * * DtoSymbolAddress ('optionChar' of type 'dchar') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * DtoResolveVariable(std.getopt.optionChar) * * * * * * * * * * * * * * * * * data segment * * * * * * * * * * * * * * Casting from 'dchar' to 'uint' * * * * * * * * * * * * * integral or pointer or interface * * * * * * * * * * * * * lv: %48 = zext i8 %47 to i32 * * * * * * * * * * * * * rv: %49 = load i32, i32* @_D3std6getopt10optionCharw * * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(641) * * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(641) * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(642) * * * * * * * * * * * * * * DeclarationExp::toElem: string[] expanded = null; | T=void * * * * * * * * * * * * * * * DtoDeclarationExp: expanded * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = string[]) * * * * * * * * * * * * * * * * * has nestedref set (referenced by nested function/delegate) * * * * * * * * * * * * * * * * * llvm value for decl: %expanded = getelementptr %nest.handleOption.14, %nest.handleOption.14* %.frame, i32 0, i32 0 * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * AssignExp::toElem: expanded = null | (string[])(string[] = string[]) * * * * * * * * * * * * * * * * * * VarExp::toElem: expanded @ string[] * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('expanded' of type 'string[]') * * * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for expanded @ /usr/include/dlang/ldc/std/getopt.d(642) * * * * * * * * * * * * * * * * * * NullExp::toElem(type=string[]): null * * * * * * * * * * * * * * * * * * * NullExp::toConstElem(type=string[]): null * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * * * * * * DtoSetArrayToNull * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(643) * * * * * * * * * * * * * * CallExp::toElem: _aApplycd2(a[1..__dollar], delegate int(ref ulong __applyArg0, ref dchar __applyArg1) => 0) @ int * * * * * * * * * * * * * * * VarExp::toElem: _aApplycd2 @ extern (C) int(in string, int delegate(void*, void*)) * * * * * * * * * * * * * * * * DtoSymbolAddress ('_aApplycd2' of type 'extern (C) int(in string, int delegate(void*, void*))') * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * Function type: extern (C) int(in string, int delegate(void*, void*)) * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * SliceExp::toElem: a[1..__dollar] @ string * * * * * * * * * * * * * * * * * * VarExp::toElem: a @ string * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('a' of type 'string') * * * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for a @ /usr/include/dlang/ldc/std/getopt.d(643) * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * * * * * * VarExp::toElem: __dollar @ ulong * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__dollar' of type 'ulong') * * * * * * * * * * * * * * * * * * * * Id::dollar * * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * FuncExp::toElem: __foreachbody6 @ int delegate(void*, void*) * * * * * * * * * * * * * * * * * * nested * * * * * * * * * * * * * * * * * * kind = delegate * * * * * * * * * * * * * * * * * * DtoDefineFunction(std.getopt.handleOption!(string*).handleOption.__foreachbody6): /usr/include/dlang/ldc/std/getopt.d(643) * * * * * * * * * * * * * * * * * * * DtoFunctionType(@safe int(ref ulong __applyArg0, ref dchar __applyArg1)) * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * Final function type: i32 (i8*, i32*, i64*) * * * * * * * * * * * * * * * * * * * DtoResolveFunction(std.getopt.handleOption!(string*).handleOption.__foreachbody6): /usr/include/dlang/ldc/std/getopt.d(643) * * * * * * * * * * * * * * * * * * * * DtoDeclareFunction(std.getopt.handleOption!(string*).handleOption.__foreachbody6): /usr/include/dlang/ldc/std/getopt.d(643) * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(@safe int(ref ulong __applyArg0, ref dchar __applyArg1)) * * * * * * * * * * * * * * * * * * * * * func = declare i32 @_D3std6getopt23__T12handleOptionTPAyaZ12handleOptionFAyaPAyaKAAyaKS3std6getopt13configurationbZ14__foreachbody6MFNfKmKwZi(i8*, i32*, i64*) * * * * * * * * * * * * * * * * * * * Doing function body for: __foreachbody6 * * * * * * * * * * * * * * * * * * * DtoCreateNestedContext for __foreachbody6 * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for std.getopt.handleOption!(string*).handleOption.__foreachbody6 * * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for std.getopt.handleOption!(string*).handleOption * * * * * * * * * * * * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * * * * * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * * * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(643) * * * * * * * * * * * * * * * * * * * * * * ExpStatement::toIR(): * * * * * * * * * * * * * * * * * * * * * * * DeclarationExp::toElem: dchar c = __applyArg1; | T=void * * * * * * * * * * * * * * * * * * * * * * * * DtoDeclarationExp: c * * * * * * * * * * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = dchar) * * * * * * * * * * * * * * * * * * * * * * * * * * llvm value for decl: %c = alloca i32, align 4 * * * * * * * * * * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * * * * * * * * * * AssignExp::toElem: c = __applyArg1 | (dchar)(dchar = dchar) * * * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: c @ dchar * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('c' of type 'dchar') * * * * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: __applyArg1 @ dchar * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__applyArg1' of type 'dchar') * * * * * * * * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * * * * * * * * type: dchar * * * * * * * * * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * * * * * * * * * lhs: %c = alloca i32, align 4 * * * * * * * * * * * * * * * * * * * * * * * * * * * * rhs: %1 = load i32, i32* %__applyArg1_arg * * * * * * * * * * * * * * * * * * * * * * ExpStatement::toIR(): * * * * * * * * * * * * * * * * * * * * * * * DeclarationExp::toElem: ulong j = __applyArg0; | T=void * * * * * * * * * * * * * * * * * * * * * * * * DtoDeclarationExp: j * * * * * * * * * * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * * * * * * * * * * * * * * * * * * llvm value for decl: %j = alloca i64, align 8 * * * * * * * * * * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * * * * * * * * * * AssignExp::toElem: j = __applyArg0 | (ulong)(ulong = ulong) * * * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: j @ ulong * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('j' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: __applyArg0 @ ulong * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__applyArg0' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * * * * * * * * type: ulong * * * * * * * * * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * * * * * * * * * lhs: %j = alloca i64, align 8 * * * * * * * * * * * * * * * * * * * * * * * * * * * * rhs: %2 = load i64, i64* %__applyArg0_arg * * * * * * * * * * * * * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(647) * * * * * * * * * * * * * * * * * * * * * * * NotExp::toElem: !isAlpha(c) @ bool * * * * * * * * * * * * * * * * * * * * * * * * CallExp::toElem: isAlpha(c) @ bool * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: isAlpha @ pure nothrow @nogc @safe bool(dchar c) * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('isAlpha' of type 'pure nothrow @nogc @safe bool(dchar c)') * * * * * * * * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @safe bool(dchar c) * * * * * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: c @ dchar * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('c' of type 'dchar') * * * * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(648) * * * * * * * * * * * * * * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(648) * * * * * * * * * * * * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(649) * * * * * * * * * * * * * * * * * * * * * * * * * * CatAssignExp::toElem: expanded ~= a[j + 1LU..__dollar] @ string[] * * * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: expanded @ string[] * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('expanded' of type 'string[]') * * * * * * * * * * * * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for expanded @ /usr/include/dlang/ldc/std/getopt.d(649) * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for std.getopt.handleOption!(string*).handleOption * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Context: %7 = bitcast i8* %6 to %nest.handleOption.14* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * of type: %nest.handleOption.14 = type { { i64, { i64, i8* }* }, { i64, i8* } } * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Variable: expanded * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Function: __foreachbody6 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Addr: %expanded = getelementptr %nest.handleOption.14, %nest.handleOption.14* %7, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * of type: { i64, { i64, i8* }* }* * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoCatAssignElement * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * * * * * * * * * * * SliceExp::toElem: a[j + 1LU..__dollar] @ string * * * * * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: a @ string * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('a' of type 'string') * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for a @ /usr/include/dlang/ldc/std/getopt.d(649) * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for std.getopt.handleOption!(string*).handleOption * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Context: %10 = bitcast i8* %9 to %nest.handleOption.14* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * of type: %nest.handleOption.14 = type { { i64, { i64, i8* }* }, { i64, i8* } } * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Variable: a * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Function: __foreachbody6 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Addr: %a = getelementptr %nest.handleOption.14, %nest.handleOption.14* %10, i32 0, i32 1 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * of type: { i64, i8* }* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * * * * * * * * * * * * AddExp::toElem: j + 1LU @ ulong * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: j @ ulong * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('j' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: __dollar @ ulong * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__dollar' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Id::dollar * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoTypeInfoOf(type = 'string[]', base='1') * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Type::getTypeInfo(): string[] * * * * * * * * * * * * * * * * * * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(string[])) * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * SetArray * * * * * * * * * * * * * * * * * * * * * * * * * ReturnStatement::toIR(): * * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 1 @ int * * * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1 @ int * * * * * * * * * * * * * * * * * * * * * * * * * * * * value = i32 1 * * * * * * * * * * * * * * * * * * * * * * * * * * return value is '0x120e3000' * * * * * * * * * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(652) * * * * * * * * * * * * * * * * * * * * * * * CatAssignExp::toElem: expanded ~= text(optionChar, c) @ string[] * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: expanded @ string[] * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('expanded' of type 'string[]') * * * * * * * * * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for expanded @ /usr/include/dlang/ldc/std/getopt.d(652) * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for std.getopt.handleOption!(string*).handleOption * * * * * * * * * * * * * * * * * * * * * * * * * * * Context: %18 = bitcast i8* %17 to %nest.handleOption.14* * * * * * * * * * * * * * * * * * * * * * * * * * * * of type: %nest.handleOption.14 = type { { i64, { i64, i8* }* }, { i64, i8* } } * * * * * * * * * * * * * * * * * * * * * * * * * * * Variable: expanded * * * * * * * * * * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * * * * * * * * * * Function: __foreachbody6 * * * * * * * * * * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * * * * * * * * * * Addr: %expanded4 = getelementptr %nest.handleOption.14, %nest.handleOption.14* %18, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * * * * * * * * * of type: { i64, { i64, i8* }* }* * * * * * * * * * * * * * * * * * * * * * * * * DtoCatAssignElement * * * * * * * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * * * * * * * * CallExp::toElem: text(optionChar, c) @ string * * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: text @ pure @safe string(dchar _param_0, dchar _param_1) * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('text' of type 'pure @safe string(dchar _param_0, dchar _param_1)') * * * * * * * * * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * * * * * * * * * Function type: pure @safe string(dchar _param_0, dchar _param_1) * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: optionChar @ dchar * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('optionChar' of type 'dchar') * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoResolveVariable(std.getopt.optionChar) * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * data segment * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: c @ dchar * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('c' of type 'dchar') * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * * * DtoTypeInfoOf(type = 'string[]', base='1') * * * * * * * * * * * * * * * * * * * * * * * * * * Type::getTypeInfo(): string[] * * * * * * * * * * * * * * * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(string[])) * * * * * * * * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * * * * * * * * * * SetArray * * * * * * * * * * * * * * * * * * * * * ReturnStatement::toIR(): * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 0 @ int * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0 @ int * * * * * * * * * * * * * * * * * * * * * * * * value = i32 0 * * * * * * * * * * * * * * * * * * * * * * return value is '0x120e1350' * * * * * * * * * * * * * * * * * * Building type: int delegate(void*, void*) * * * * * * * * * * * * * * * * * * * DtoFunctionType(int(void*, void*)) * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * Final function type: i32 (i8*, i8*, i8*) * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(654) * * * * * * * * * * * * * * AssignExp::toElem: args = args[0..i] ~ expanded ~ args[i + 1LU..__dollar] | (string[])(string[] = string[]) * * * * * * * * * * * * * * * VarExp::toElem: args @ string[] * * * * * * * * * * * * * * * * DtoSymbolAddress ('args' of type 'string[]') * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * type: string[] * * * * * * * * * * * * * * * CatExp::toElem: args[0..i] ~ expanded ~ args[i + 1LU..__dollar] @ string[] * * * * * * * * * * * * * * * * DtoCatAssignArray * * * * * * * * * * * * * * * * * SliceExp::toElem: args[i + 1LU..__dollar] @ string[] * * * * * * * * * * * * * * * * * * VarExp::toElem: args @ string[] * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('args' of type 'string[]') * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * type: string[] * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * AddExp::toElem: i + 1LU @ ulong * * * * * * * * * * * * * * * * * * * VarExp::toElem: i @ ulong * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * * * * * * VarExp::toElem: __dollar @ ulong * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__dollar' of type 'ulong') * * * * * * * * * * * * * * * * * * * * Id::dollar * * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * * SetArray * * * * * * * * * * * * * * * * * VarExp::toElem: expanded @ string[] * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('expanded' of type 'string[]') * * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * * DtoNestedVariable for expanded @ /usr/include/dlang/ldc/std/getopt.d(654) * * * * * * * * * * * * * * * * * SliceExp::toElem: args[0..i] @ string[] * * * * * * * * * * * * * * * * * * VarExp::toElem: args @ string[] * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('args' of type 'string[]') * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * type: string[] * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * * * * * * VarExp::toElem: i @ ulong * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'ulong') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * * SetArray * * * * * * * * * * * * * * * * * DtoTypeInfoOf(type = 'string[]', base='1') * * * * * * * * * * * * * * * * * * Type::getTypeInfo(): string[] * * * * * * * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(string[])) * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * SetArray * * * * * * * * * * * * * ContinueStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(655) * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(658) * * * * * * * * * * * DeclarationExp::toElem: string val = null; | T=void * * * * * * * * * * * * DtoDeclarationExp: val * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * DtoVarDeclaration(vdtype = string) * * * * * * * * * * * * * * llvm value for decl: %val = alloca { i64, i8* }, align 8 * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * AssignExp::toElem: val = null | (string)(string = string) * * * * * * * * * * * * * * * VarExp::toElem: val @ string * * * * * * * * * * * * * * * * DtoSymbolAddress ('val' of type 'string') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * NullExp::toElem(type=string): null * * * * * * * * * * * * * * * * NullExp::toConstElem(type=string): null * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * * * DtoSetArrayToNull * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(659) * * * * * * * * * * * NotExp::toElem: !optMatch(a, option, val, cfg) @ bool * * * * * * * * * * * * CallExp::toElem: optMatch(a, option, val, cfg) @ bool * * * * * * * * * * * * * VarExp::toElem: optMatch @ bool(string arg, string optPattern, ref string value, configuration cfg) * * * * * * * * * * * * * * DtoSymbolAddress ('optMatch' of type 'bool(string arg, string optPattern, ref string value, configuration cfg)') * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * Function type: bool(string arg, string optPattern, ref string value, configuration cfg) * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * VarExp::toElem: a @ string * * * * * * * * * * * * * * * * DtoSymbolAddress ('a' of type 'string') * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * DtoNestedVariable for a @ /usr/include/dlang/ldc/std/getopt.d(659) * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * VarExp::toElem: option @ string * * * * * * * * * * * * * * * * DtoSymbolAddress ('option' of type 'string') * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * type: string * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * VarExp::toElem: val @ string * * * * * * * * * * * * * * * * DtoSymbolAddress ('val' of type 'string') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * VarExp::toElem: cfg @ configuration * * * * * * * * * * * * * * * * DtoSymbolAddress ('cfg' of type 'configuration') * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * type: configuration * * * * * * * * * * * * * * Loading struct type for function argument * * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(660) * * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(660) * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(661) * * * * * * * * * * * * * * AddAssignExp::toElem: i += 1LU @ ulong * * * * * * * * * * * * * * * Caching l-value of i += 1LU => i * * * * * * * * * * * * * * * * VarExp::toElem: i @ ulong * * * * * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'ulong') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * AddExp::toElem: i + 1LU @ ulong * * * * * * * * * * * * * * * * VarExp::toElem: i @ ulong * * * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * lhs: %i = alloca i64, align 8 * * * * * * * * * * * * * * * * rhs: %85 = add i64 %84, 1 * * * * * * * * * * * * * ContinueStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(662) * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(665) * * * * * * * * * * * AssignExp::toElem: ret = true | (bool)(bool = bool) * * * * * * * * * * * * VarExp::toElem: ret @ bool * * * * * * * * * * * * * DtoSymbolAddress ('ret' of type 'bool') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * IntegerExp::toElem: true @ bool * * * * * * * * * * * * * IntegerExp::toConstElem: true @ bool * * * * * * * * * * * * * * value = i1 true * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * DtoAssign() * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(670) * * * * * * * * * * * AssignExp::toElem: args = args[0..i] ~ args[i + 1LU..__dollar] | (string[])(string[] = string[]) * * * * * * * * * * * * VarExp::toElem: args @ string[] * * * * * * * * * * * * * DtoSymbolAddress ('args' of type 'string[]') * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * type: string[] * * * * * * * * * * * * CatExp::toElem: args[0..i] ~ args[i + 1LU..__dollar] @ string[] * * * * * * * * * * * * * DtoCatAssignArray * * * * * * * * * * * * * * DtoTypeInfoOf(type = 'string[]', base='1') * * * * * * * * * * * * * * * Type::getTypeInfo(): string[] * * * * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(string[])) * * * * * * * * * * * * * * SliceExp::toElem: args[0..i] @ string[] * * * * * * * * * * * * * * * VarExp::toElem: args @ string[] * * * * * * * * * * * * * * * * DtoSymbolAddress ('args' of type 'string[]') * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * type: string[] * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * * * VarExp::toElem: i @ ulong * * * * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'ulong') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * SetArray * * * * * * * * * * * * * * SliceExp::toElem: args[i + 1LU..__dollar] @ string[] * * * * * * * * * * * * * * * VarExp::toElem: args @ string[] * * * * * * * * * * * * * * * * DtoSymbolAddress ('args' of type 'string[]') * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * type: string[] * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * AddExp::toElem: i + 1LU @ ulong * * * * * * * * * * * * * * * * VarExp::toElem: i @ ulong * * * * * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'ulong') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * * * VarExp::toElem: __dollar @ ulong * * * * * * * * * * * * * * * * DtoSymbolAddress ('__dollar' of type 'ulong') * * * * * * * * * * * * * * * * * Id::dollar * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * SetArray * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * SetArray * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(690) * * * * * * * * * * * DeclarationExp::toElem: enum bool isCallbackWithLessThanTwoParameters = false; | T=void * * * * * * * * * * * * DtoDeclarationExp: isCallbackWithLessThanTwoParameters * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * Manifest constant, nothing to do. * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(693) * * * * * * * * * * * AndAndExp::toElem: !!!val.length && !incremental @ bool * * * * * * * * * * * * BoolExp::toElem: !!!val.length @ bool * * * * * * * * * * * * * NotExp::toElem: !val.length @ bool * * * * * * * * * * * * * * ArrayLengthExp::toElem: val.length @ ulong * * * * * * * * * * * * * * * VarExp::toElem: val @ string * * * * * * * * * * * * * * * * DtoSymbolAddress ('val' of type 'string') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * Casting from 'ulong' to 'bool' * * * * * * * * * * * * NotExp::toElem: !incremental @ bool * * * * * * * * * * * * * VarExp::toElem: incremental @ bool * * * * * * * * * * * * * * DtoSymbolAddress ('incremental' of type 'bool') * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * type: bool * * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(694) * * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(694) * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(697) * * * * * * * * * * * * * * CallExp::toElem: enforce(i < args.length, delegate const(char)[]() => "Missing value for argument " ~ a ~ ".", "/usr/include/dlang/ldc/std/getopt.d", 697LU) @ bool * * * * * * * * * * * * * * * VarExp::toElem: enforce @ pure @safe bool(bool value, lazy const(char)[] msg = null, string file = __FILE__, ulong line = cast(ulong)__LINE__) * * * * * * * * * * * * * * * * DtoSymbolAddress ('enforce' of type 'pure @safe bool(bool value, lazy const(char)[] msg = null, string file = __FILE__, ulong line = cast(ulong)__LINE__)') * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * Function type: pure @safe bool(bool value, lazy const(char)[] msg = null, string file = __FILE__, ulong line = cast(ulong)__LINE__) * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * CmpExp::toElem: i < args.length @ bool * * * * * * * * * * * * * * * * * * VarExp::toElem: i @ ulong * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'ulong') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * ArrayLengthExp::toElem: args.length @ ulong * * * * * * * * * * * * * * * * * * * VarExp::toElem: args @ string[] * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('args' of type 'string[]') * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * type: string[] * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * type 1: %119 = load i64, i64* %i * * * * * * * * * * * * * * * * * * type 2: %.len65 = load i64, i64* %118 * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * FuncExp::toElem: __dgliteral7 @ const(char)[] delegate() pure nothrow @safe * * * * * * * * * * * * * * * * * * nested * * * * * * * * * * * * * * * * * * kind = delegate * * * * * * * * * * * * * * * * * * DtoDefineFunction(std.getopt.handleOption!(string*).handleOption.__dgliteral7): /usr/include/dlang/ldc/std/getopt.d(698) * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @safe const(char)[]()) * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * Final function type: { i64, i8* } (i8*) * * * * * * * * * * * * * * * * * * * DtoResolveFunction(std.getopt.handleOption!(string*).handleOption.__dgliteral7): /usr/include/dlang/ldc/std/getopt.d(698) * * * * * * * * * * * * * * * * * * * * DtoDeclareFunction(std.getopt.handleOption!(string*).handleOption.__dgliteral7): /usr/include/dlang/ldc/std/getopt.d(698) * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @safe const(char)[]()) * * * * * * * * * * * * * * * * * * * * * func = declare { i64, i8* } @_D3std6getopt23__T12handleOptionTPAyaZ12handleOptionFAyaPAyaKAAyaKS3std6getopt13configurationbZ12__dgliteral7MFNaNbNfZAxa(i8*) * * * * * * * * * * * * * * * * * * * Doing function body for: __dgliteral7 * * * * * * * * * * * * * * * * * * * DtoCreateNestedContext for __dgliteral7 * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for std.getopt.handleOption!(string*).handleOption.__dgliteral7 * * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for std.getopt.handleOption!(string*).handleOption * * * * * * * * * * * * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * * * * * * * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(698) * * * * * * * * * * * * * * * * * * * * * CatExp::toElem: "Missing value for argument " ~ a ~ "." @ const(char)[] * * * * * * * * * * * * * * * * * * * * * * DtoCatAssignArray * * * * * * * * * * * * * * * * * * * * * * * StringExp::toElem: "." @ string * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: a @ string * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('a' of type 'string') * * * * * * * * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for a @ /usr/include/dlang/ldc/std/getopt.d(698) * * * * * * * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for std.getopt.handleOption!(string*).handleOption * * * * * * * * * * * * * * * * * * * * * * * * * * Context: %2 = bitcast i8* %1 to %nest.handleOption.14* * * * * * * * * * * * * * * * * * * * * * * * * * * of type: %nest.handleOption.14 = type { { i64, { i64, i8* }* }, { i64, i8* } } * * * * * * * * * * * * * * * * * * * * * * * * * * Variable: a * * * * * * * * * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * * * * * * * * * Function: __dgliteral7 * * * * * * * * * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * * * * * * * * * Addr: %a = getelementptr %nest.handleOption.14, %nest.handleOption.14* %2, i32 0, i32 1 * * * * * * * * * * * * * * * * * * * * * * * * * * of type: { i64, i8* }* * * * * * * * * * * * * * * * * * * * * * * * StringExp::toElem: "Missing value for argument " @ string * * * * * * * * * * * * * * * * * * * * * * * DtoTypeInfoOf(type = 'const(char)[]', base='1') * * * * * * * * * * * * * * * * * * * * * * * * Type::getTypeInfo(): const(char)[] * * * * * * * * * * * * * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(const(char)[])) * * * * * * * * * * * * * * * * * * * * * return value is '0x130376a0' * * * * * * * * * * * * * * * * * * Building type: const(char)[] delegate() pure nothrow @safe * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @safe const(char)[]()) * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * Final function type: { i64, i8* } (i8*) * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * StringExp::toElem: "/usr/include/dlang/ldc/std/getopt.d" @ string * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * IntegerExp::toElem: 697LU @ ulong * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 697LU @ ulong * * * * * * * * * * * * * * * * * * * value = i64 697 * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(699) * * * * * * * * * * * * * * AssignExp::toElem: val = args[i] | (string)(string = string) * * * * * * * * * * * * * * * VarExp::toElem: val @ string * * * * * * * * * * * * * * * * DtoSymbolAddress ('val' of type 'string') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * IndexExp::toElem: args[i] @ string * * * * * * * * * * * * * * * * VarExp::toElem: args @ string[] * * * * * * * * * * * * * * * * * DtoSymbolAddress ('args' of type 'string[]') * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * type: string[] * * * * * * * * * * * * * * * * VarExp::toElem: i @ ulong * * * * * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'ulong') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * SetArray * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(700) * * * * * * * * * * * * * * AssignExp::toElem: args = args[0..i] ~ args[i + 1LU..__dollar] | (string[])(string[] = string[]) * * * * * * * * * * * * * * * VarExp::toElem: args @ string[] * * * * * * * * * * * * * * * * DtoSymbolAddress ('args' of type 'string[]') * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * type: string[] * * * * * * * * * * * * * * * CatExp::toElem: args[0..i] ~ args[i + 1LU..__dollar] @ string[] * * * * * * * * * * * * * * * * DtoCatAssignArray * * * * * * * * * * * * * * * * * DtoTypeInfoOf(type = 'string[]', base='1') * * * * * * * * * * * * * * * * * * Type::getTypeInfo(): string[] * * * * * * * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(string[])) * * * * * * * * * * * * * * * * * SliceExp::toElem: args[0..i] @ string[] * * * * * * * * * * * * * * * * * * VarExp::toElem: args @ string[] * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('args' of type 'string[]') * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * type: string[] * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * * * * * * VarExp::toElem: i @ ulong * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'ulong') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * * SetArray * * * * * * * * * * * * * * * * * SliceExp::toElem: args[i + 1LU..__dollar] @ string[] * * * * * * * * * * * * * * * * * * VarExp::toElem: args @ string[] * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('args' of type 'string[]') * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * type: string[] * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * AddExp::toElem: i + 1LU @ ulong * * * * * * * * * * * * * * * * * * * VarExp::toElem: i @ ulong * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * * * * * * VarExp::toElem: __dollar @ ulong * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__dollar' of type 'ulong') * * * * * * * * * * * * * * * * * * * * Id::dollar * * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * * SetArray * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * SetArray * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(715) * * * * * * * * * * * AssignExp::toElem: *receiver = to(val) | (string)(string = string) * * * * * * * * * * * * PtrExp::toElem: *receiver @ string * * * * * * * * * * * * * VarExp::toElem: receiver @ string* * * * * * * * * * * * * * * DtoSymbolAddress ('receiver' of type 'string*') * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * type: string* * * * * * * * * * * * * CallExp::toElem: to(val) @ string * * * * * * * * * * * * * VarExp::toElem: to @ pure nothrow @nogc @safe string(string _param_0) * * * * * * * * * * * * * * DtoSymbolAddress ('to' of type 'pure nothrow @nogc @safe string(string _param_0)') * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * Function type: pure nothrow @nogc @safe string(string _param_0) * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * VarExp::toElem: val @ string * * * * * * * * * * * * * * * * DtoSymbolAddress ('val' of type 'string') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * SetArray * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(791) * * * * * * VarExp::toElem: ret @ bool * * * * * * * DtoSymbolAddress ('ret' of type 'bool') * * * * * * * * a normal variable * * * * * * return value is '0x1303c9b8' * TemplateInstance::codegen: 'std.getopt.getoptImpl!(string, bool*, string, bool*, string, bool*, string, string*)' * * DtoDefineFunction(std.getopt.getoptImpl!(string, bool*, string, bool*, string, bool*, string, string*).getoptImpl): /usr/include/dlang/ldc/std/getopt.d(526) * * * Doing function body for: getoptImpl * * * DtoCreateNestedContext for getoptImpl * * * * DtoCreateNestedContextType for std.getopt.getoptImpl!(string, bool*, string, bool*, string, bool*, string, string*).getoptImpl * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(528) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(542) * * * * * * DeclarationExp::toElem: string option = to(_param_3); | T=void * * * * * * * DtoDeclarationExp: option * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = string) * * * * * * * * * llvm value for decl: %option = alloca { i64, i8* }, align 8 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: option = to(_param_3) | (string)(string = string) * * * * * * * * * * VarExp::toElem: option @ string * * * * * * * * * * * DtoSymbolAddress ('option' of type 'string') * * * * * * * * * * * * a normal variable * * * * * * * * * * CallExp::toElem: to(_param_3) @ string * * * * * * * * * * * VarExp::toElem: to @ pure nothrow @nogc @safe string(string _param_0) * * * * * * * * * * * * DtoSymbolAddress ('to' of type 'pure nothrow @nogc @safe string(string _param_0)') * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * Function type: pure nothrow @nogc @safe string(string _param_0) * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * VarExp::toElem: _param_3 @ string * * * * * * * * * * * * * * DtoSymbolAddress ('_param_3' of type 'string') * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * type: string * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * SetArray * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(543) * * * * * * DeclarationExp::toElem: Option optionHelp = splitAndGet(option); | T=void * * * * * * * DtoDeclarationExp: optionHelp * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = Option) * * * * * * * * * VarExp::toElem: splitAndGet @ pure nothrow @trusted Option(string opt) * * * * * * * * * * DtoSymbolAddress ('splitAndGet' of type 'pure nothrow @trusted Option(string opt)') * * * * * * * * * * * FuncDeclaration * * * * * * * * * DtoCallFunction() * * * * * * * * * * doing normal arguments * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * %optionHelp = alloca %std.getopt.Option, align 8 * * * * * * * * * * Function type: pure nothrow @trusted Option(string opt) * * * * * * * * * * DtoArgument * * * * * * * * * * * VarExp::toElem: option @ string * * * * * * * * * * * * DtoSymbolAddress ('option' of type 'string') * * * * * * * * * * * * * a normal variable * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(544) * * * * * * AssignExp::toElem: optionHelp.required = cfg.required() | (bool)(bool = bool) * * * * * * * DotVarExp::toElem: optionHelp.required @ bool * * * * * * * * VarExp::toElem: optionHelp @ Option * * * * * * * * * DtoSymbolAddress ('optionHelp' of type 'Option') * * * * * * * * * * a normal variable * * * * * * * * Indexing aggregate field std.getopt.Option.required: * * * * * * * * * Value: %6 = getelementptr %std.getopt.Option, %std.getopt.Option* %optionHelp, i32 0, i32 3 * * * * * * * CallExp::toElem: cfg.required() @ bool * * * * * * * * DotVarExp::toElem: cfg.required @ const pure nothrow @nogc @property @safe bool() * * * * * * * * * VarExp::toElem: cfg @ configuration * * * * * * * * * * DtoSymbolAddress ('cfg' of type 'configuration') * * * * * * * * * * * function param * * * * * * * * * * * type: configuration * * * * * * * * DtoCallFunction() * * * * * * * * * doing normal arguments * * * * * * * * * Arguments so far: (1) * * * * * * * * * * %std.getopt.configuration* %cfg_arg * * * * * * * * * Function type: const pure nothrow @nogc @property @safe bool() * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * DtoAssign() * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(554) * * * * * * DeclarationExp::toElem: bool* receiver = _param_4; | T=void * * * * * * * DtoDeclarationExp: receiver * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = bool*) * * * * * * * * * llvm value for decl: %receiver = alloca i8*, align 8 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: receiver = _param_4 | (bool*)(bool* = bool*) * * * * * * * * * * VarExp::toElem: receiver @ bool* * * * * * * * * * * * DtoSymbolAddress ('receiver' of type 'bool*') * * * * * * * * * * * * a normal variable * * * * * * * * * * VarExp::toElem: _param_4 @ bool* * * * * * * * * * * * DtoSymbolAddress ('_param_4' of type 'bool*') * * * * * * * * * * * * function param * * * * * * * * * * * * type: bool* * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %receiver = alloca i8*, align 8 * * * * * * * * * * * rhs: %9 = load i8*, i8** %_param_4 * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(555) * * * * * * DeclarationExp::toElem: immutable immutable(int) lowSliceIdx = 2; | T=void * * * * * * * DtoDeclarationExp: lowSliceIdx * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = immutable(int)) * * * * * * * * * llvm value for decl: %lowSliceIdx = alloca i32, align 4 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: lowSliceIdx = 2 | (immutable(int))(immutable(int) = immutable(int)) * * * * * * * * * * VarExp::toElem: lowSliceIdx @ immutable(int) * * * * * * * * * * * DtoSymbolAddress ('lowSliceIdx' of type 'immutable(int)') * * * * * * * * * * * * a normal variable * * * * * * * * * * IntegerExp::toElem: 2 @ immutable(int) * * * * * * * * * * * IntegerExp::toConstElem: 2 @ immutable(int) * * * * * * * * * * * * value = i32 2 * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %lowSliceIdx = alloca i32, align 4 * * * * * * * * * * * rhs: i32 2 * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(558) * * * * * * CatAssignExp::toElem: rslt.options ~= optionHelp @ Option[] * * * * * * * DotVarExp::toElem: rslt.options @ Option[] * * * * * * * * VarExp::toElem: rslt @ GetoptResult * * * * * * * * * DtoSymbolAddress ('rslt' of type 'GetoptResult') * * * * * * * * * * function param * * * * * * * * * * type: GetoptResult * * * * * * * * Indexing aggregate field std.getopt.GetoptResult.options: * * * * * * * * * Value: %10 = getelementptr %std.getopt.GetoptResult, %std.getopt.GetoptResult* %rslt_arg, i32 0, i32 2 * * * * * * * DtoCatAssignElement * * * * * * * * DtoArrayLen * * * * * * * * VarExp::toElem: optionHelp @ Option * * * * * * * * * DtoSymbolAddress ('optionHelp' of type 'Option') * * * * * * * * * * a normal variable * * * * * * * * DtoTypeInfoOf(type = 'Option[]', base='1') * * * * * * * * * Type::getTypeInfo(): Option[] * * * * * * * * * TypeInfoDeclaration::codegen(typeid(Option[])) * * * * * * * * DtoArrayPtr * * * * * * * * DtoAssign() * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(560) * * * * * * DeclarationExp::toElem: bool incremental = false; | T=void * * * * * * * DtoDeclarationExp: incremental * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = bool) * * * * * * * * * llvm value for decl: %incremental = alloca i8, align 1 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: incremental = false | (bool)(bool = bool) * * * * * * * * * * VarExp::toElem: incremental @ bool * * * * * * * * * * * DtoSymbolAddress ('incremental' of type 'bool') * * * * * * * * * * * * a normal variable * * * * * * * * * * IntegerExp::toElem: false @ bool * * * * * * * * * * * IntegerExp::toConstElem: false @ bool * * * * * * * * * * * * value = i1 false * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(562) * * * * * * AndAndExp::toElem: option.length && cast(int)option[__dollar - 1LU] == 43 @ bool * * * * * * * ArrayLengthExp::toElem: option.length @ ulong * * * * * * * * VarExp::toElem: option @ string * * * * * * * * * DtoSymbolAddress ('option' of type 'string') * * * * * * * * * * a normal variable * * * * * * * * DtoArrayLen * * * * * * * Casting from 'ulong' to 'bool' * * * * * * * EqualExp::toElem: cast(int)option[__dollar - 1LU] == 43 @ bool * * * * * * * * CastExp::toElem: cast(int)option[__dollar - 1LU] @ int * * * * * * * * * IndexExp::toElem: option[__dollar - 1LU] @ immutable(char) * * * * * * * * * * VarExp::toElem: option @ string * * * * * * * * * * * DtoSymbolAddress ('option' of type 'string') * * * * * * * * * * * * a normal variable * * * * * * * * * * MinExp::toElem: __dollar - 1LU @ ulong * * * * * * * * * * * VarExp::toElem: __dollar @ ulong * * * * * * * * * * * * DtoSymbolAddress ('__dollar' of type 'ulong') * * * * * * * * * * * * * Id::dollar * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * DtoArrayPtr * * * * * * * * * Casting from 'immutable(char)' to 'int' * * * * * * * * * * cast to: i32 * * * * * * * * IntegerExp::toElem: 43 @ int * * * * * * * * * IntegerExp::toConstElem: 43 @ int * * * * * * * * * * value = i32 43 * * * * * * * * integral or pointer or interface * * * * * * * * lv: %28 = zext i8 %27 to i32 * * * * * * * * rv: i32 43 * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(563) * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(563) * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(564) * * * * * * * * * AssignExp::toElem: option = option[0..__dollar - 1LU] | (string)(string = string) * * * * * * * * * * VarExp::toElem: option @ string * * * * * * * * * * * DtoSymbolAddress ('option' of type 'string') * * * * * * * * * * * * a normal variable * * * * * * * * * * SliceExp::toElem: option[0..__dollar - 1LU] @ string * * * * * * * * * * * VarExp::toElem: option @ string * * * * * * * * * * * * DtoSymbolAddress ('option' of type 'string') * * * * * * * * * * * * * a normal variable * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * MinExp::toElem: __dollar - 1LU @ ulong * * * * * * * * * * * * VarExp::toElem: __dollar @ ulong * * * * * * * * * * * * * DtoSymbolAddress ('__dollar' of type 'ulong') * * * * * * * * * * * * * * Id::dollar * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * DtoAssign() * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * SetArray * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(565) * * * * * * * * * AssignExp::toElem: incremental = true | (bool)(bool = bool) * * * * * * * * * * VarExp::toElem: incremental @ bool * * * * * * * * * * * DtoSymbolAddress ('incremental' of type 'bool') * * * * * * * * * * * * a normal variable * * * * * * * * * * IntegerExp::toElem: true @ bool * * * * * * * * * * * IntegerExp::toConstElem: true @ bool * * * * * * * * * * * * value = i1 true * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(568) * * * * * * DeclarationExp::toElem: bool optWasHandled = handleOption(option, receiver, args, cfg, incremental); | T=void * * * * * * * DtoDeclarationExp: optWasHandled * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = bool) * * * * * * * * * llvm value for decl: %optWasHandled = alloca i8, align 1 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: optWasHandled = handleOption(option, receiver, args, cfg, incremental) | (bool)(bool = bool) * * * * * * * * * * VarExp::toElem: optWasHandled @ bool * * * * * * * * * * * DtoSymbolAddress ('optWasHandled' of type 'bool') * * * * * * * * * * * * a normal variable * * * * * * * * * * CallExp::toElem: handleOption(option, receiver, args, cfg, incremental) @ bool * * * * * * * * * * * VarExp::toElem: handleOption @ @system bool(string option, bool* receiver, ref string[] args, ref configuration cfg, bool incremental) * * * * * * * * * * * * DtoSymbolAddress ('handleOption' of type '@system bool(string option, bool* receiver, ref string[] args, ref configuration cfg, bool incremental)') * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * Function type: @system bool(string option, bool* receiver, ref string[] args, ref configuration cfg, bool incremental) * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * VarExp::toElem: option @ string * * * * * * * * * * * * * * DtoSymbolAddress ('option' of type 'string') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * VarExp::toElem: receiver @ bool* * * * * * * * * * * * * * * DtoSymbolAddress ('receiver' of type 'bool*') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * VarExp::toElem: args @ string[] * * * * * * * * * * * * * * DtoSymbolAddress ('args' of type 'string[]') * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * type: string[] * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * VarExp::toElem: cfg @ configuration * * * * * * * * * * * * * * DtoSymbolAddress ('cfg' of type 'configuration') * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * type: configuration * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * VarExp::toElem: incremental @ bool * * * * * * * * * * * * * * DtoSymbolAddress ('incremental' of type 'bool') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(570) * * * * * * AndAndExp::toElem: cfg.required() && !optWasHandled @ bool * * * * * * * CallExp::toElem: cfg.required() @ bool * * * * * * * * DotVarExp::toElem: cfg.required @ const pure nothrow @nogc @property @safe bool() * * * * * * * * * VarExp::toElem: cfg @ configuration * * * * * * * * * * DtoSymbolAddress ('cfg' of type 'configuration') * * * * * * * * * * * function param * * * * * * * * * * * type: configuration * * * * * * * * DtoCallFunction() * * * * * * * * * doing normal arguments * * * * * * * * * Arguments so far: (1) * * * * * * * * * * %std.getopt.configuration* %cfg_arg * * * * * * * * * Function type: const pure nothrow @nogc @property @safe bool() * * * * * * * NotExp::toElem: !optWasHandled @ bool * * * * * * * * VarExp::toElem: optWasHandled @ bool * * * * * * * * * DtoSymbolAddress ('optWasHandled' of type 'bool') * * * * * * * * * * a normal variable * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(571) * * * * * * * ThrowStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(572) * * * * * * * * NewExp::toElem: new GetOptException("Required option " ~ option ~ "was not supplied", "/usr/include/dlang/ldc/std/getopt.d", 572LU) @ std.getopt.GetOptException * * * * * * * * * new class * * * * * * * * * Calling constructor * * * * * * * * * DtoCallFunction() * * * * * * * * * * doing normal arguments * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * %.newclass_gc = bitcast %object.Object* %.newclass_gc_alloc to %std.getopt.GetOptException* * * * * * * * * * * Function type: pure nothrow @safe GetOptException(string msg, string file = __FILE__, ulong line = cast(ulong)__LINE__) * * * * * * * * * * DtoArgument * * * * * * * * * * * CatExp::toElem: "Required option " ~ option ~ "was not supplied" @ string * * * * * * * * * * * * DtoCatAssignArray * * * * * * * * * * * * * StringExp::toElem: "was not supplied" @ string * * * * * * * * * * * * * VarExp::toElem: option @ string * * * * * * * * * * * * * * DtoSymbolAddress ('option' of type 'string') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * StringExp::toElem: "Required option " @ string * * * * * * * * * * * * * DtoTypeInfoOf(type = 'string', base='1') * * * * * * * * * * * * * * Type::getTypeInfo(): string * * * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(string)) * * * * * * * * * * DtoArgument * * * * * * * * * * * StringExp::toElem: "/usr/include/dlang/ldc/std/getopt.d" @ string * * * * * * * * * * DtoArgument * * * * * * * * * * * IntegerExp::toElem: 572LU @ ulong * * * * * * * * * * * * IntegerExp::toConstElem: 572LU @ ulong * * * * * * * * * * * * * value = i64 572 * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(575) * * * * * * CallExp::toElem: cfg.required(false) @ void * * * * * * * DotVarExp::toElem: cfg.required @ pure nothrow @nogc @property @safe void(bool v) * * * * * * * * VarExp::toElem: cfg @ configuration * * * * * * * * * DtoSymbolAddress ('cfg' of type 'configuration') * * * * * * * * * * function param * * * * * * * * * * type: configuration * * * * * * * DtoCallFunction() * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (1) * * * * * * * * * %std.getopt.configuration* %cfg_arg * * * * * * * * Function type: pure nothrow @nogc @property @safe void(bool v) * * * * * * * * DtoArgument * * * * * * * * * IntegerExp::toElem: false @ bool * * * * * * * * * * IntegerExp::toConstElem: false @ bool * * * * * * * * * * * value = i1 false * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(577) * * * * * * CallExp::toElem: getoptImpl(args, cfg, rslt, _param_5, _param_6, _param_7, _param_8, _param_9, _param_10) @ void * * * * * * * VarExp::toElem: getoptImpl @ @system void(ref string[] args, ref configuration cfg, ref GetoptResult rslt, string _param_3, bool* _param_4, string _param_5, bool* _param_6, string _param_7, string* _param_8) * * * * * * * * DtoSymbolAddress ('getoptImpl' of type '@system void(ref string[] args, ref configuration cfg, ref GetoptResult rslt, string _param_3, bool* _param_4, string _param_5, bool* _param_6, string _param_7, string* _param_8)') * * * * * * * * * FuncDeclaration * * * * * * * * * DtoFunctionType(@system void(ref string[] args, ref configuration cfg, ref GetoptResult rslt, string _param_3, bool* _param_4, string _param_5, bool* _param_6, string _param_7, string* _param_8)) * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: void ({ i64, i8* }*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, %std.getopt.GetoptResult*, %std.getopt.configuration*, { i64, { i64, i8* }* }*) * * * * * * * * * DtoResolveFunction(std.getopt.getoptImpl!(string, bool*, string, bool*, string, string*).getoptImpl): /usr/include/dlang/ldc/std/getopt.d(526) * * * * * * * * * * DtoDeclareFunction(std.getopt.getoptImpl!(string, bool*, string, bool*, string, string*).getoptImpl): /usr/include/dlang/ldc/std/getopt.d(526) * * * * * * * * * * * DtoFunctionType(@system void(ref string[] args, ref configuration cfg, ref GetoptResult rslt, string _param_3, bool* _param_4, string _param_5, bool* _param_6, string _param_7, string* _param_8)) * * * * * * * * * * * func = declare void @_D3std6getopt39__T10getoptImplTAyaTPbTAyaTPbTAyaTPAyaZ10getoptImplFKAAyaKS3std6getopt13configurationKS3std6getopt12GetoptResultAyaPbAyaPbAyaPAyaZv({ i64, i8* }*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, %std.getopt.GetoptResult*, %std.getopt.configuration*, { i64, { i64, i8* }* }*) * * * * * * * DtoCallFunction() * * * * * * * * Building type: @system void(ref string[] args, ref configuration cfg, ref GetoptResult rslt, string _param_3, bool* _param_4, string _param_5, bool* _param_6, string _param_7, string* _param_8) * * * * * * * * * DtoFunctionType(@system void(ref string[] args, ref configuration cfg, ref GetoptResult rslt, string _param_3, bool* _param_4, string _param_5, bool* _param_6, string _param_7, string* _param_8)) * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: void ({ i64, i8* }*, { i64, i8* }, i8*, { i64, i8* }, i8*, { i64, i8* }, %std.getopt.GetoptResult*, %std.getopt.configuration*, { i64, { i64, i8* }* }*) * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (0) * * * * * * * * Function type: @system void(ref string[] args, ref configuration cfg, ref GetoptResult rslt, string _param_3, bool* _param_4, string _param_5, bool* _param_6, string _param_7, string* _param_8) * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: args @ string[] * * * * * * * * * * DtoSymbolAddress ('args' of type 'string[]') * * * * * * * * * * * function param * * * * * * * * * * * type: string[] * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: cfg @ configuration * * * * * * * * * * DtoSymbolAddress ('cfg' of type 'configuration') * * * * * * * * * * * function param * * * * * * * * * * * type: configuration * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: rslt @ GetoptResult * * * * * * * * * * DtoSymbolAddress ('rslt' of type 'GetoptResult') * * * * * * * * * * * function param * * * * * * * * * * * type: GetoptResult * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_5 @ string * * * * * * * * * * DtoSymbolAddress ('_param_5' of type 'string') * * * * * * * * * * * function param * * * * * * * * * * * type: string * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_6 @ bool* * * * * * * * * * * DtoSymbolAddress ('_param_6' of type 'bool*') * * * * * * * * * * * function param * * * * * * * * * * * type: bool* * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_7 @ string * * * * * * * * * * DtoSymbolAddress ('_param_7' of type 'string') * * * * * * * * * * * function param * * * * * * * * * * * type: string * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_8 @ bool* * * * * * * * * * * DtoSymbolAddress ('_param_8' of type 'bool*') * * * * * * * * * * * function param * * * * * * * * * * * type: bool* * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_9 @ string * * * * * * * * * * DtoSymbolAddress ('_param_9' of type 'string') * * * * * * * * * * * function param * * * * * * * * * * * type: string * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_10 @ string* * * * * * * * * * * DtoSymbolAddress ('_param_10' of type 'string*') * * * * * * * * * * * function param * * * * * * * * * * * type: string* * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(577) * TemplateInstance::codegen: 'std.getopt.getoptImpl!(string, bool*, string, bool*, string, string*)' * * DtoDefineFunction(std.getopt.getoptImpl!(string, bool*, string, bool*, string, string*).getoptImpl): /usr/include/dlang/ldc/std/getopt.d(526) * * * Doing function body for: getoptImpl * * * DtoCreateNestedContext for getoptImpl * * * * DtoCreateNestedContextType for std.getopt.getoptImpl!(string, bool*, string, bool*, string, string*).getoptImpl * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(528) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(542) * * * * * * DeclarationExp::toElem: string option = to(_param_3); | T=void * * * * * * * DtoDeclarationExp: option * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = string) * * * * * * * * * llvm value for decl: %option = alloca { i64, i8* }, align 8 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: option = to(_param_3) | (string)(string = string) * * * * * * * * * * VarExp::toElem: option @ string * * * * * * * * * * * DtoSymbolAddress ('option' of type 'string') * * * * * * * * * * * * a normal variable * * * * * * * * * * CallExp::toElem: to(_param_3) @ string * * * * * * * * * * * VarExp::toElem: to @ pure nothrow @nogc @safe string(string _param_0) * * * * * * * * * * * * DtoSymbolAddress ('to' of type 'pure nothrow @nogc @safe string(string _param_0)') * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * Function type: pure nothrow @nogc @safe string(string _param_0) * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * VarExp::toElem: _param_3 @ string * * * * * * * * * * * * * * DtoSymbolAddress ('_param_3' of type 'string') * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * type: string * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * SetArray * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(543) * * * * * * DeclarationExp::toElem: Option optionHelp = splitAndGet(option); | T=void * * * * * * * DtoDeclarationExp: optionHelp * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = Option) * * * * * * * * * VarExp::toElem: splitAndGet @ pure nothrow @trusted Option(string opt) * * * * * * * * * * DtoSymbolAddress ('splitAndGet' of type 'pure nothrow @trusted Option(string opt)') * * * * * * * * * * * FuncDeclaration * * * * * * * * * DtoCallFunction() * * * * * * * * * * doing normal arguments * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * %optionHelp = alloca %std.getopt.Option, align 8 * * * * * * * * * * Function type: pure nothrow @trusted Option(string opt) * * * * * * * * * * DtoArgument * * * * * * * * * * * VarExp::toElem: option @ string * * * * * * * * * * * * DtoSymbolAddress ('option' of type 'string') * * * * * * * * * * * * * a normal variable * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(544) * * * * * * AssignExp::toElem: optionHelp.required = cfg.required() | (bool)(bool = bool) * * * * * * * DotVarExp::toElem: optionHelp.required @ bool * * * * * * * * VarExp::toElem: optionHelp @ Option * * * * * * * * * DtoSymbolAddress ('optionHelp' of type 'Option') * * * * * * * * * * a normal variable * * * * * * * * Indexing aggregate field std.getopt.Option.required: * * * * * * * * * Value: %6 = getelementptr %std.getopt.Option, %std.getopt.Option* %optionHelp, i32 0, i32 3 * * * * * * * CallExp::toElem: cfg.required() @ bool * * * * * * * * DotVarExp::toElem: cfg.required @ const pure nothrow @nogc @property @safe bool() * * * * * * * * * VarExp::toElem: cfg @ configuration * * * * * * * * * * DtoSymbolAddress ('cfg' of type 'configuration') * * * * * * * * * * * function param * * * * * * * * * * * type: configuration * * * * * * * * DtoCallFunction() * * * * * * * * * doing normal arguments * * * * * * * * * Arguments so far: (1) * * * * * * * * * * %std.getopt.configuration* %cfg_arg * * * * * * * * * Function type: const pure nothrow @nogc @property @safe bool() * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * DtoAssign() * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(554) * * * * * * DeclarationExp::toElem: bool* receiver = _param_4; | T=void * * * * * * * DtoDeclarationExp: receiver * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = bool*) * * * * * * * * * llvm value for decl: %receiver = alloca i8*, align 8 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: receiver = _param_4 | (bool*)(bool* = bool*) * * * * * * * * * * VarExp::toElem: receiver @ bool* * * * * * * * * * * * DtoSymbolAddress ('receiver' of type 'bool*') * * * * * * * * * * * * a normal variable * * * * * * * * * * VarExp::toElem: _param_4 @ bool* * * * * * * * * * * * DtoSymbolAddress ('_param_4' of type 'bool*') * * * * * * * * * * * * function param * * * * * * * * * * * * type: bool* * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %receiver = alloca i8*, align 8 * * * * * * * * * * * rhs: %9 = load i8*, i8** %_param_4 * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(555) * * * * * * DeclarationExp::toElem: immutable immutable(int) lowSliceIdx = 2; | T=void * * * * * * * DtoDeclarationExp: lowSliceIdx * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = immutable(int)) * * * * * * * * * llvm value for decl: %lowSliceIdx = alloca i32, align 4 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: lowSliceIdx = 2 | (immutable(int))(immutable(int) = immutable(int)) * * * * * * * * * * VarExp::toElem: lowSliceIdx @ immutable(int) * * * * * * * * * * * DtoSymbolAddress ('lowSliceIdx' of type 'immutable(int)') * * * * * * * * * * * * a normal variable * * * * * * * * * * IntegerExp::toElem: 2 @ immutable(int) * * * * * * * * * * * IntegerExp::toConstElem: 2 @ immutable(int) * * * * * * * * * * * * value = i32 2 * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %lowSliceIdx = alloca i32, align 4 * * * * * * * * * * * rhs: i32 2 * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(558) * * * * * * CatAssignExp::toElem: rslt.options ~= optionHelp @ Option[] * * * * * * * DotVarExp::toElem: rslt.options @ Option[] * * * * * * * * VarExp::toElem: rslt @ GetoptResult * * * * * * * * * DtoSymbolAddress ('rslt' of type 'GetoptResult') * * * * * * * * * * function param * * * * * * * * * * type: GetoptResult * * * * * * * * Indexing aggregate field std.getopt.GetoptResult.options: * * * * * * * * * Value: %10 = getelementptr %std.getopt.GetoptResult, %std.getopt.GetoptResult* %rslt_arg, i32 0, i32 2 * * * * * * * DtoCatAssignElement * * * * * * * * DtoArrayLen * * * * * * * * VarExp::toElem: optionHelp @ Option * * * * * * * * * DtoSymbolAddress ('optionHelp' of type 'Option') * * * * * * * * * * a normal variable * * * * * * * * DtoTypeInfoOf(type = 'Option[]', base='1') * * * * * * * * * Type::getTypeInfo(): Option[] * * * * * * * * * TypeInfoDeclaration::codegen(typeid(Option[])) * * * * * * * * DtoArrayPtr * * * * * * * * DtoAssign() * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(560) * * * * * * DeclarationExp::toElem: bool incremental = false; | T=void * * * * * * * DtoDeclarationExp: incremental * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = bool) * * * * * * * * * llvm value for decl: %incremental = alloca i8, align 1 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: incremental = false | (bool)(bool = bool) * * * * * * * * * * VarExp::toElem: incremental @ bool * * * * * * * * * * * DtoSymbolAddress ('incremental' of type 'bool') * * * * * * * * * * * * a normal variable * * * * * * * * * * IntegerExp::toElem: false @ bool * * * * * * * * * * * IntegerExp::toConstElem: false @ bool * * * * * * * * * * * * value = i1 false * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(562) * * * * * * AndAndExp::toElem: option.length && cast(int)option[__dollar - 1LU] == 43 @ bool * * * * * * * ArrayLengthExp::toElem: option.length @ ulong * * * * * * * * VarExp::toElem: option @ string * * * * * * * * * DtoSymbolAddress ('option' of type 'string') * * * * * * * * * * a normal variable * * * * * * * * DtoArrayLen * * * * * * * Casting from 'ulong' to 'bool' * * * * * * * EqualExp::toElem: cast(int)option[__dollar - 1LU] == 43 @ bool * * * * * * * * CastExp::toElem: cast(int)option[__dollar - 1LU] @ int * * * * * * * * * IndexExp::toElem: option[__dollar - 1LU] @ immutable(char) * * * * * * * * * * VarExp::toElem: option @ string * * * * * * * * * * * DtoSymbolAddress ('option' of type 'string') * * * * * * * * * * * * a normal variable * * * * * * * * * * MinExp::toElem: __dollar - 1LU @ ulong * * * * * * * * * * * VarExp::toElem: __dollar @ ulong * * * * * * * * * * * * DtoSymbolAddress ('__dollar' of type 'ulong') * * * * * * * * * * * * * Id::dollar * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * DtoArrayPtr * * * * * * * * * Casting from 'immutable(char)' to 'int' * * * * * * * * * * cast to: i32 * * * * * * * * IntegerExp::toElem: 43 @ int * * * * * * * * * IntegerExp::toConstElem: 43 @ int * * * * * * * * * * value = i32 43 * * * * * * * * integral or pointer or interface * * * * * * * * lv: %28 = zext i8 %27 to i32 * * * * * * * * rv: i32 43 * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(563) * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(563) * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(564) * * * * * * * * * AssignExp::toElem: option = option[0..__dollar - 1LU] | (string)(string = string) * * * * * * * * * * VarExp::toElem: option @ string * * * * * * * * * * * DtoSymbolAddress ('option' of type 'string') * * * * * * * * * * * * a normal variable * * * * * * * * * * SliceExp::toElem: option[0..__dollar - 1LU] @ string * * * * * * * * * * * VarExp::toElem: option @ string * * * * * * * * * * * * DtoSymbolAddress ('option' of type 'string') * * * * * * * * * * * * * a normal variable * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * MinExp::toElem: __dollar - 1LU @ ulong * * * * * * * * * * * * VarExp::toElem: __dollar @ ulong * * * * * * * * * * * * * DtoSymbolAddress ('__dollar' of type 'ulong') * * * * * * * * * * * * * * Id::dollar * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * DtoAssign() * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * SetArray * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(565) * * * * * * * * * AssignExp::toElem: incremental = true | (bool)(bool = bool) * * * * * * * * * * VarExp::toElem: incremental @ bool * * * * * * * * * * * DtoSymbolAddress ('incremental' of type 'bool') * * * * * * * * * * * * a normal variable * * * * * * * * * * IntegerExp::toElem: true @ bool * * * * * * * * * * * IntegerExp::toConstElem: true @ bool * * * * * * * * * * * * value = i1 true * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(568) * * * * * * DeclarationExp::toElem: bool optWasHandled = handleOption(option, receiver, args, cfg, incremental); | T=void * * * * * * * DtoDeclarationExp: optWasHandled * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = bool) * * * * * * * * * llvm value for decl: %optWasHandled = alloca i8, align 1 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: optWasHandled = handleOption(option, receiver, args, cfg, incremental) | (bool)(bool = bool) * * * * * * * * * * VarExp::toElem: optWasHandled @ bool * * * * * * * * * * * DtoSymbolAddress ('optWasHandled' of type 'bool') * * * * * * * * * * * * a normal variable * * * * * * * * * * CallExp::toElem: handleOption(option, receiver, args, cfg, incremental) @ bool * * * * * * * * * * * VarExp::toElem: handleOption @ @system bool(string option, bool* receiver, ref string[] args, ref configuration cfg, bool incremental) * * * * * * * * * * * * DtoSymbolAddress ('handleOption' of type '@system bool(string option, bool* receiver, ref string[] args, ref configuration cfg, bool incremental)') * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * Function type: @system bool(string option, bool* receiver, ref string[] args, ref configuration cfg, bool incremental) * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * VarExp::toElem: option @ string * * * * * * * * * * * * * * DtoSymbolAddress ('option' of type 'string') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * VarExp::toElem: receiver @ bool* * * * * * * * * * * * * * * DtoSymbolAddress ('receiver' of type 'bool*') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * VarExp::toElem: args @ string[] * * * * * * * * * * * * * * DtoSymbolAddress ('args' of type 'string[]') * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * type: string[] * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * VarExp::toElem: cfg @ configuration * * * * * * * * * * * * * * DtoSymbolAddress ('cfg' of type 'configuration') * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * type: configuration * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * VarExp::toElem: incremental @ bool * * * * * * * * * * * * * * DtoSymbolAddress ('incremental' of type 'bool') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(570) * * * * * * AndAndExp::toElem: cfg.required() && !optWasHandled @ bool * * * * * * * CallExp::toElem: cfg.required() @ bool * * * * * * * * DotVarExp::toElem: cfg.required @ const pure nothrow @nogc @property @safe bool() * * * * * * * * * VarExp::toElem: cfg @ configuration * * * * * * * * * * DtoSymbolAddress ('cfg' of type 'configuration') * * * * * * * * * * * function param * * * * * * * * * * * type: configuration * * * * * * * * DtoCallFunction() * * * * * * * * * doing normal arguments * * * * * * * * * Arguments so far: (1) * * * * * * * * * * %std.getopt.configuration* %cfg_arg * * * * * * * * * Function type: const pure nothrow @nogc @property @safe bool() * * * * * * * NotExp::toElem: !optWasHandled @ bool * * * * * * * * VarExp::toElem: optWasHandled @ bool * * * * * * * * * DtoSymbolAddress ('optWasHandled' of type 'bool') * * * * * * * * * * a normal variable * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(571) * * * * * * * ThrowStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(572) * * * * * * * * NewExp::toElem: new GetOptException("Required option " ~ option ~ "was not supplied", "/usr/include/dlang/ldc/std/getopt.d", 572LU) @ std.getopt.GetOptException * * * * * * * * * new class * * * * * * * * * Calling constructor * * * * * * * * * DtoCallFunction() * * * * * * * * * * doing normal arguments * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * %.newclass_gc = bitcast %object.Object* %.newclass_gc_alloc to %std.getopt.GetOptException* * * * * * * * * * * Function type: pure nothrow @safe GetOptException(string msg, string file = __FILE__, ulong line = cast(ulong)__LINE__) * * * * * * * * * * DtoArgument * * * * * * * * * * * CatExp::toElem: "Required option " ~ option ~ "was not supplied" @ string * * * * * * * * * * * * DtoCatAssignArray * * * * * * * * * * * * * StringExp::toElem: "was not supplied" @ string * * * * * * * * * * * * * VarExp::toElem: option @ string * * * * * * * * * * * * * * DtoSymbolAddress ('option' of type 'string') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * StringExp::toElem: "Required option " @ string * * * * * * * * * * * * * DtoTypeInfoOf(type = 'string', base='1') * * * * * * * * * * * * * * Type::getTypeInfo(): string * * * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(string)) * * * * * * * * * * DtoArgument * * * * * * * * * * * StringExp::toElem: "/usr/include/dlang/ldc/std/getopt.d" @ string * * * * * * * * * * DtoArgument * * * * * * * * * * * IntegerExp::toElem: 572LU @ ulong * * * * * * * * * * * * IntegerExp::toConstElem: 572LU @ ulong * * * * * * * * * * * * * value = i64 572 * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(575) * * * * * * CallExp::toElem: cfg.required(false) @ void * * * * * * * DotVarExp::toElem: cfg.required @ pure nothrow @nogc @property @safe void(bool v) * * * * * * * * VarExp::toElem: cfg @ configuration * * * * * * * * * DtoSymbolAddress ('cfg' of type 'configuration') * * * * * * * * * * function param * * * * * * * * * * type: configuration * * * * * * * DtoCallFunction() * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (1) * * * * * * * * * %std.getopt.configuration* %cfg_arg * * * * * * * * Function type: pure nothrow @nogc @property @safe void(bool v) * * * * * * * * DtoArgument * * * * * * * * * IntegerExp::toElem: false @ bool * * * * * * * * * * IntegerExp::toConstElem: false @ bool * * * * * * * * * * * value = i1 false * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(577) * * * * * * CallExp::toElem: getoptImpl(args, cfg, rslt, _param_5, _param_6, _param_7, _param_8) @ void * * * * * * * VarExp::toElem: getoptImpl @ @system void(ref string[] args, ref configuration cfg, ref GetoptResult rslt, string _param_3, bool* _param_4, string _param_5, string* _param_6) * * * * * * * * DtoSymbolAddress ('getoptImpl' of type '@system void(ref string[] args, ref configuration cfg, ref GetoptResult rslt, string _param_3, bool* _param_4, string _param_5, string* _param_6)') * * * * * * * * * FuncDeclaration * * * * * * * * * DtoFunctionType(@system void(ref string[] args, ref configuration cfg, ref GetoptResult rslt, string _param_3, bool* _param_4, string _param_5, string* _param_6)) * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: void ({ i64, i8* }*, { i64, i8* }, i8*, { i64, i8* }, %std.getopt.GetoptResult*, %std.getopt.configuration*, { i64, { i64, i8* }* }*) * * * * * * * * * DtoResolveFunction(std.getopt.getoptImpl!(string, bool*, string, string*).getoptImpl): /usr/include/dlang/ldc/std/getopt.d(526) * * * * * * * * * * DtoDeclareFunction(std.getopt.getoptImpl!(string, bool*, string, string*).getoptImpl): /usr/include/dlang/ldc/std/getopt.d(526) * * * * * * * * * * * DtoFunctionType(@system void(ref string[] args, ref configuration cfg, ref GetoptResult rslt, string _param_3, bool* _param_4, string _param_5, string* _param_6)) * * * * * * * * * * * func = declare void @_D3std6getopt32__T10getoptImplTAyaTPbTAyaTPAyaZ10getoptImplFKAAyaKS3std6getopt13configurationKS3std6getopt12GetoptResultAyaPbAyaPAyaZv({ i64, i8* }*, { i64, i8* }, i8*, { i64, i8* }, %std.getopt.GetoptResult*, %std.getopt.configuration*, { i64, { i64, i8* }* }*) * * * * * * * DtoCallFunction() * * * * * * * * Building type: @system void(ref string[] args, ref configuration cfg, ref GetoptResult rslt, string _param_3, bool* _param_4, string _param_5, string* _param_6) * * * * * * * * * DtoFunctionType(@system void(ref string[] args, ref configuration cfg, ref GetoptResult rslt, string _param_3, bool* _param_4, string _param_5, string* _param_6)) * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: void ({ i64, i8* }*, { i64, i8* }, i8*, { i64, i8* }, %std.getopt.GetoptResult*, %std.getopt.configuration*, { i64, { i64, i8* }* }*) * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (0) * * * * * * * * Function type: @system void(ref string[] args, ref configuration cfg, ref GetoptResult rslt, string _param_3, bool* _param_4, string _param_5, string* _param_6) * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: args @ string[] * * * * * * * * * * DtoSymbolAddress ('args' of type 'string[]') * * * * * * * * * * * function param * * * * * * * * * * * type: string[] * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: cfg @ configuration * * * * * * * * * * DtoSymbolAddress ('cfg' of type 'configuration') * * * * * * * * * * * function param * * * * * * * * * * * type: configuration * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: rslt @ GetoptResult * * * * * * * * * * DtoSymbolAddress ('rslt' of type 'GetoptResult') * * * * * * * * * * * function param * * * * * * * * * * * type: GetoptResult * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_5 @ string * * * * * * * * * * DtoSymbolAddress ('_param_5' of type 'string') * * * * * * * * * * * function param * * * * * * * * * * * type: string * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_6 @ bool* * * * * * * * * * * DtoSymbolAddress ('_param_6' of type 'bool*') * * * * * * * * * * * function param * * * * * * * * * * * type: bool* * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_7 @ string * * * * * * * * * * DtoSymbolAddress ('_param_7' of type 'string') * * * * * * * * * * * function param * * * * * * * * * * * type: string * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_8 @ string* * * * * * * * * * * DtoSymbolAddress ('_param_8' of type 'string*') * * * * * * * * * * * function param * * * * * * * * * * * type: string* * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(577) * TemplateInstance::codegen: 'std.getopt.getoptImpl!(string, bool*, string, string*)' * * DtoDefineFunction(std.getopt.getoptImpl!(string, bool*, string, string*).getoptImpl): /usr/include/dlang/ldc/std/getopt.d(526) * * * Doing function body for: getoptImpl * * * DtoCreateNestedContext for getoptImpl * * * * DtoCreateNestedContextType for std.getopt.getoptImpl!(string, bool*, string, string*).getoptImpl * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(528) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(542) * * * * * * DeclarationExp::toElem: string option = to(_param_3); | T=void * * * * * * * DtoDeclarationExp: option * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = string) * * * * * * * * * llvm value for decl: %option = alloca { i64, i8* }, align 8 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: option = to(_param_3) | (string)(string = string) * * * * * * * * * * VarExp::toElem: option @ string * * * * * * * * * * * DtoSymbolAddress ('option' of type 'string') * * * * * * * * * * * * a normal variable * * * * * * * * * * CallExp::toElem: to(_param_3) @ string * * * * * * * * * * * VarExp::toElem: to @ pure nothrow @nogc @safe string(string _param_0) * * * * * * * * * * * * DtoSymbolAddress ('to' of type 'pure nothrow @nogc @safe string(string _param_0)') * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * Function type: pure nothrow @nogc @safe string(string _param_0) * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * VarExp::toElem: _param_3 @ string * * * * * * * * * * * * * * DtoSymbolAddress ('_param_3' of type 'string') * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * type: string * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * SetArray * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(543) * * * * * * DeclarationExp::toElem: Option optionHelp = splitAndGet(option); | T=void * * * * * * * DtoDeclarationExp: optionHelp * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = Option) * * * * * * * * * VarExp::toElem: splitAndGet @ pure nothrow @trusted Option(string opt) * * * * * * * * * * DtoSymbolAddress ('splitAndGet' of type 'pure nothrow @trusted Option(string opt)') * * * * * * * * * * * FuncDeclaration * * * * * * * * * DtoCallFunction() * * * * * * * * * * doing normal arguments * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * %optionHelp = alloca %std.getopt.Option, align 8 * * * * * * * * * * Function type: pure nothrow @trusted Option(string opt) * * * * * * * * * * DtoArgument * * * * * * * * * * * VarExp::toElem: option @ string * * * * * * * * * * * * DtoSymbolAddress ('option' of type 'string') * * * * * * * * * * * * * a normal variable * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(544) * * * * * * AssignExp::toElem: optionHelp.required = cfg.required() | (bool)(bool = bool) * * * * * * * DotVarExp::toElem: optionHelp.required @ bool * * * * * * * * VarExp::toElem: optionHelp @ Option * * * * * * * * * DtoSymbolAddress ('optionHelp' of type 'Option') * * * * * * * * * * a normal variable * * * * * * * * Indexing aggregate field std.getopt.Option.required: * * * * * * * * * Value: %6 = getelementptr %std.getopt.Option, %std.getopt.Option* %optionHelp, i32 0, i32 3 * * * * * * * CallExp::toElem: cfg.required() @ bool * * * * * * * * DotVarExp::toElem: cfg.required @ const pure nothrow @nogc @property @safe bool() * * * * * * * * * VarExp::toElem: cfg @ configuration * * * * * * * * * * DtoSymbolAddress ('cfg' of type 'configuration') * * * * * * * * * * * function param * * * * * * * * * * * type: configuration * * * * * * * * DtoCallFunction() * * * * * * * * * doing normal arguments * * * * * * * * * Arguments so far: (1) * * * * * * * * * * %std.getopt.configuration* %cfg_arg * * * * * * * * * Function type: const pure nothrow @nogc @property @safe bool() * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * DtoAssign() * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(554) * * * * * * DeclarationExp::toElem: bool* receiver = _param_4; | T=void * * * * * * * DtoDeclarationExp: receiver * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = bool*) * * * * * * * * * llvm value for decl: %receiver = alloca i8*, align 8 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: receiver = _param_4 | (bool*)(bool* = bool*) * * * * * * * * * * VarExp::toElem: receiver @ bool* * * * * * * * * * * * DtoSymbolAddress ('receiver' of type 'bool*') * * * * * * * * * * * * a normal variable * * * * * * * * * * VarExp::toElem: _param_4 @ bool* * * * * * * * * * * * DtoSymbolAddress ('_param_4' of type 'bool*') * * * * * * * * * * * * function param * * * * * * * * * * * * type: bool* * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %receiver = alloca i8*, align 8 * * * * * * * * * * * rhs: %9 = load i8*, i8** %_param_4 * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(555) * * * * * * DeclarationExp::toElem: immutable immutable(int) lowSliceIdx = 2; | T=void * * * * * * * DtoDeclarationExp: lowSliceIdx * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = immutable(int)) * * * * * * * * * llvm value for decl: %lowSliceIdx = alloca i32, align 4 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: lowSliceIdx = 2 | (immutable(int))(immutable(int) = immutable(int)) * * * * * * * * * * VarExp::toElem: lowSliceIdx @ immutable(int) * * * * * * * * * * * DtoSymbolAddress ('lowSliceIdx' of type 'immutable(int)') * * * * * * * * * * * * a normal variable * * * * * * * * * * IntegerExp::toElem: 2 @ immutable(int) * * * * * * * * * * * IntegerExp::toConstElem: 2 @ immutable(int) * * * * * * * * * * * * value = i32 2 * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %lowSliceIdx = alloca i32, align 4 * * * * * * * * * * * rhs: i32 2 * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(558) * * * * * * CatAssignExp::toElem: rslt.options ~= optionHelp @ Option[] * * * * * * * DotVarExp::toElem: rslt.options @ Option[] * * * * * * * * VarExp::toElem: rslt @ GetoptResult * * * * * * * * * DtoSymbolAddress ('rslt' of type 'GetoptResult') * * * * * * * * * * function param * * * * * * * * * * type: GetoptResult * * * * * * * * Indexing aggregate field std.getopt.GetoptResult.options: * * * * * * * * * Value: %10 = getelementptr %std.getopt.GetoptResult, %std.getopt.GetoptResult* %rslt_arg, i32 0, i32 2 * * * * * * * DtoCatAssignElement * * * * * * * * DtoArrayLen * * * * * * * * VarExp::toElem: optionHelp @ Option * * * * * * * * * DtoSymbolAddress ('optionHelp' of type 'Option') * * * * * * * * * * a normal variable * * * * * * * * DtoTypeInfoOf(type = 'Option[]', base='1') * * * * * * * * * Type::getTypeInfo(): Option[] * * * * * * * * * TypeInfoDeclaration::codegen(typeid(Option[])) * * * * * * * * DtoArrayPtr * * * * * * * * DtoAssign() * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(560) * * * * * * DeclarationExp::toElem: bool incremental = false; | T=void * * * * * * * DtoDeclarationExp: incremental * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = bool) * * * * * * * * * llvm value for decl: %incremental = alloca i8, align 1 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: incremental = false | (bool)(bool = bool) * * * * * * * * * * VarExp::toElem: incremental @ bool * * * * * * * * * * * DtoSymbolAddress ('incremental' of type 'bool') * * * * * * * * * * * * a normal variable * * * * * * * * * * IntegerExp::toElem: false @ bool * * * * * * * * * * * IntegerExp::toConstElem: false @ bool * * * * * * * * * * * * value = i1 false * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(562) * * * * * * AndAndExp::toElem: option.length && cast(int)option[__dollar - 1LU] == 43 @ bool * * * * * * * ArrayLengthExp::toElem: option.length @ ulong * * * * * * * * VarExp::toElem: option @ string * * * * * * * * * DtoSymbolAddress ('option' of type 'string') * * * * * * * * * * a normal variable * * * * * * * * DtoArrayLen * * * * * * * Casting from 'ulong' to 'bool' * * * * * * * EqualExp::toElem: cast(int)option[__dollar - 1LU] == 43 @ bool * * * * * * * * CastExp::toElem: cast(int)option[__dollar - 1LU] @ int * * * * * * * * * IndexExp::toElem: option[__dollar - 1LU] @ immutable(char) * * * * * * * * * * VarExp::toElem: option @ string * * * * * * * * * * * DtoSymbolAddress ('option' of type 'string') * * * * * * * * * * * * a normal variable * * * * * * * * * * MinExp::toElem: __dollar - 1LU @ ulong * * * * * * * * * * * VarExp::toElem: __dollar @ ulong * * * * * * * * * * * * DtoSymbolAddress ('__dollar' of type 'ulong') * * * * * * * * * * * * * Id::dollar * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * DtoArrayPtr * * * * * * * * * Casting from 'immutable(char)' to 'int' * * * * * * * * * * cast to: i32 * * * * * * * * IntegerExp::toElem: 43 @ int * * * * * * * * * IntegerExp::toConstElem: 43 @ int * * * * * * * * * * value = i32 43 * * * * * * * * integral or pointer or interface * * * * * * * * lv: %28 = zext i8 %27 to i32 * * * * * * * * rv: i32 43 * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(563) * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(563) * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(564) * * * * * * * * * AssignExp::toElem: option = option[0..__dollar - 1LU] | (string)(string = string) * * * * * * * * * * VarExp::toElem: option @ string * * * * * * * * * * * DtoSymbolAddress ('option' of type 'string') * * * * * * * * * * * * a normal variable * * * * * * * * * * SliceExp::toElem: option[0..__dollar - 1LU] @ string * * * * * * * * * * * VarExp::toElem: option @ string * * * * * * * * * * * * DtoSymbolAddress ('option' of type 'string') * * * * * * * * * * * * * a normal variable * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * MinExp::toElem: __dollar - 1LU @ ulong * * * * * * * * * * * * VarExp::toElem: __dollar @ ulong * * * * * * * * * * * * * DtoSymbolAddress ('__dollar' of type 'ulong') * * * * * * * * * * * * * * Id::dollar * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * DtoAssign() * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * SetArray * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(565) * * * * * * * * * AssignExp::toElem: incremental = true | (bool)(bool = bool) * * * * * * * * * * VarExp::toElem: incremental @ bool * * * * * * * * * * * DtoSymbolAddress ('incremental' of type 'bool') * * * * * * * * * * * * a normal variable * * * * * * * * * * IntegerExp::toElem: true @ bool * * * * * * * * * * * IntegerExp::toConstElem: true @ bool * * * * * * * * * * * * value = i1 true * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(568) * * * * * * DeclarationExp::toElem: bool optWasHandled = handleOption(option, receiver, args, cfg, incremental); | T=void * * * * * * * DtoDeclarationExp: optWasHandled * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = bool) * * * * * * * * * llvm value for decl: %optWasHandled = alloca i8, align 1 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: optWasHandled = handleOption(option, receiver, args, cfg, incremental) | (bool)(bool = bool) * * * * * * * * * * VarExp::toElem: optWasHandled @ bool * * * * * * * * * * * DtoSymbolAddress ('optWasHandled' of type 'bool') * * * * * * * * * * * * a normal variable * * * * * * * * * * CallExp::toElem: handleOption(option, receiver, args, cfg, incremental) @ bool * * * * * * * * * * * VarExp::toElem: handleOption @ @system bool(string option, bool* receiver, ref string[] args, ref configuration cfg, bool incremental) * * * * * * * * * * * * DtoSymbolAddress ('handleOption' of type '@system bool(string option, bool* receiver, ref string[] args, ref configuration cfg, bool incremental)') * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * Function type: @system bool(string option, bool* receiver, ref string[] args, ref configuration cfg, bool incremental) * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * VarExp::toElem: option @ string * * * * * * * * * * * * * * DtoSymbolAddress ('option' of type 'string') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * VarExp::toElem: receiver @ bool* * * * * * * * * * * * * * * DtoSymbolAddress ('receiver' of type 'bool*') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * VarExp::toElem: args @ string[] * * * * * * * * * * * * * * DtoSymbolAddress ('args' of type 'string[]') * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * type: string[] * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * VarExp::toElem: cfg @ configuration * * * * * * * * * * * * * * DtoSymbolAddress ('cfg' of type 'configuration') * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * type: configuration * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * VarExp::toElem: incremental @ bool * * * * * * * * * * * * * * DtoSymbolAddress ('incremental' of type 'bool') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(570) * * * * * * AndAndExp::toElem: cfg.required() && !optWasHandled @ bool * * * * * * * CallExp::toElem: cfg.required() @ bool * * * * * * * * DotVarExp::toElem: cfg.required @ const pure nothrow @nogc @property @safe bool() * * * * * * * * * VarExp::toElem: cfg @ configuration * * * * * * * * * * DtoSymbolAddress ('cfg' of type 'configuration') * * * * * * * * * * * function param * * * * * * * * * * * type: configuration * * * * * * * * DtoCallFunction() * * * * * * * * * doing normal arguments * * * * * * * * * Arguments so far: (1) * * * * * * * * * * %std.getopt.configuration* %cfg_arg * * * * * * * * * Function type: const pure nothrow @nogc @property @safe bool() * * * * * * * NotExp::toElem: !optWasHandled @ bool * * * * * * * * VarExp::toElem: optWasHandled @ bool * * * * * * * * * DtoSymbolAddress ('optWasHandled' of type 'bool') * * * * * * * * * * a normal variable * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(571) * * * * * * * ThrowStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(572) * * * * * * * * NewExp::toElem: new GetOptException("Required option " ~ option ~ "was not supplied", "/usr/include/dlang/ldc/std/getopt.d", 572LU) @ std.getopt.GetOptException * * * * * * * * * new class * * * * * * * * * Calling constructor * * * * * * * * * DtoCallFunction() * * * * * * * * * * doing normal arguments * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * %.newclass_gc = bitcast %object.Object* %.newclass_gc_alloc to %std.getopt.GetOptException* * * * * * * * * * * Function type: pure nothrow @safe GetOptException(string msg, string file = __FILE__, ulong line = cast(ulong)__LINE__) * * * * * * * * * * DtoArgument * * * * * * * * * * * CatExp::toElem: "Required option " ~ option ~ "was not supplied" @ string * * * * * * * * * * * * DtoCatAssignArray * * * * * * * * * * * * * StringExp::toElem: "was not supplied" @ string * * * * * * * * * * * * * VarExp::toElem: option @ string * * * * * * * * * * * * * * DtoSymbolAddress ('option' of type 'string') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * StringExp::toElem: "Required option " @ string * * * * * * * * * * * * * DtoTypeInfoOf(type = 'string', base='1') * * * * * * * * * * * * * * Type::getTypeInfo(): string * * * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(string)) * * * * * * * * * * DtoArgument * * * * * * * * * * * StringExp::toElem: "/usr/include/dlang/ldc/std/getopt.d" @ string * * * * * * * * * * DtoArgument * * * * * * * * * * * IntegerExp::toElem: 572LU @ ulong * * * * * * * * * * * * IntegerExp::toConstElem: 572LU @ ulong * * * * * * * * * * * * * value = i64 572 * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(575) * * * * * * CallExp::toElem: cfg.required(false) @ void * * * * * * * DotVarExp::toElem: cfg.required @ pure nothrow @nogc @property @safe void(bool v) * * * * * * * * VarExp::toElem: cfg @ configuration * * * * * * * * * DtoSymbolAddress ('cfg' of type 'configuration') * * * * * * * * * * function param * * * * * * * * * * type: configuration * * * * * * * DtoCallFunction() * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (1) * * * * * * * * * %std.getopt.configuration* %cfg_arg * * * * * * * * Function type: pure nothrow @nogc @property @safe void(bool v) * * * * * * * * DtoArgument * * * * * * * * * IntegerExp::toElem: false @ bool * * * * * * * * * * IntegerExp::toConstElem: false @ bool * * * * * * * * * * * value = i1 false * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(577) * * * * * * CallExp::toElem: getoptImpl(args, cfg, rslt, _param_5, _param_6) @ void * * * * * * * VarExp::toElem: getoptImpl @ @system void(ref string[] args, ref configuration cfg, ref GetoptResult rslt, string _param_3, string* _param_4) * * * * * * * * DtoSymbolAddress ('getoptImpl' of type '@system void(ref string[] args, ref configuration cfg, ref GetoptResult rslt, string _param_3, string* _param_4)') * * * * * * * * * FuncDeclaration * * * * * * * * * DtoFunctionType(@system void(ref string[] args, ref configuration cfg, ref GetoptResult rslt, string _param_3, string* _param_4)) * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: void ({ i64, i8* }*, { i64, i8* }, %std.getopt.GetoptResult*, %std.getopt.configuration*, { i64, { i64, i8* }* }*) * * * * * * * * * DtoResolveFunction(std.getopt.getoptImpl!(string, string*).getoptImpl): /usr/include/dlang/ldc/std/getopt.d(526) * * * * * * * * * * DtoDeclareFunction(std.getopt.getoptImpl!(string, string*).getoptImpl): /usr/include/dlang/ldc/std/getopt.d(526) * * * * * * * * * * * DtoFunctionType(@system void(ref string[] args, ref configuration cfg, ref GetoptResult rslt, string _param_3, string* _param_4)) * * * * * * * * * * * func = declare void @_D3std6getopt25__T10getoptImplTAyaTPAyaZ10getoptImplFKAAyaKS3std6getopt13configurationKS3std6getopt12GetoptResultAyaPAyaZv({ i64, i8* }*, { i64, i8* }, %std.getopt.GetoptResult*, %std.getopt.configuration*, { i64, { i64, i8* }* }*) * * * * * * * DtoCallFunction() * * * * * * * * Building type: @system void(ref string[] args, ref configuration cfg, ref GetoptResult rslt, string _param_3, string* _param_4) * * * * * * * * * DtoFunctionType(@system void(ref string[] args, ref configuration cfg, ref GetoptResult rslt, string _param_3, string* _param_4)) * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: void ({ i64, i8* }*, { i64, i8* }, %std.getopt.GetoptResult*, %std.getopt.configuration*, { i64, { i64, i8* }* }*) * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (0) * * * * * * * * Function type: @system void(ref string[] args, ref configuration cfg, ref GetoptResult rslt, string _param_3, string* _param_4) * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: args @ string[] * * * * * * * * * * DtoSymbolAddress ('args' of type 'string[]') * * * * * * * * * * * function param * * * * * * * * * * * type: string[] * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: cfg @ configuration * * * * * * * * * * DtoSymbolAddress ('cfg' of type 'configuration') * * * * * * * * * * * function param * * * * * * * * * * * type: configuration * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: rslt @ GetoptResult * * * * * * * * * * DtoSymbolAddress ('rslt' of type 'GetoptResult') * * * * * * * * * * * function param * * * * * * * * * * * type: GetoptResult * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_5 @ string * * * * * * * * * * DtoSymbolAddress ('_param_5' of type 'string') * * * * * * * * * * * function param * * * * * * * * * * * type: string * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_6 @ string* * * * * * * * * * * DtoSymbolAddress ('_param_6' of type 'string*') * * * * * * * * * * * function param * * * * * * * * * * * type: string* * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(577) * TemplateInstance::codegen: 'std.getopt.getoptImpl!(string, string*)' * * DtoDefineFunction(std.getopt.getoptImpl!(string, string*).getoptImpl): /usr/include/dlang/ldc/std/getopt.d(526) * * * Doing function body for: getoptImpl * * * DtoCreateNestedContext for getoptImpl * * * * DtoCreateNestedContextType for std.getopt.getoptImpl!(string, string*).getoptImpl * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(528) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(542) * * * * * * DeclarationExp::toElem: string option = to(_param_3); | T=void * * * * * * * DtoDeclarationExp: option * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = string) * * * * * * * * * llvm value for decl: %option = alloca { i64, i8* }, align 8 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: option = to(_param_3) | (string)(string = string) * * * * * * * * * * VarExp::toElem: option @ string * * * * * * * * * * * DtoSymbolAddress ('option' of type 'string') * * * * * * * * * * * * a normal variable * * * * * * * * * * CallExp::toElem: to(_param_3) @ string * * * * * * * * * * * VarExp::toElem: to @ pure nothrow @nogc @safe string(string _param_0) * * * * * * * * * * * * DtoSymbolAddress ('to' of type 'pure nothrow @nogc @safe string(string _param_0)') * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * Function type: pure nothrow @nogc @safe string(string _param_0) * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * VarExp::toElem: _param_3 @ string * * * * * * * * * * * * * * DtoSymbolAddress ('_param_3' of type 'string') * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * type: string * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * SetArray * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(543) * * * * * * DeclarationExp::toElem: Option optionHelp = splitAndGet(option); | T=void * * * * * * * DtoDeclarationExp: optionHelp * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = Option) * * * * * * * * * VarExp::toElem: splitAndGet @ pure nothrow @trusted Option(string opt) * * * * * * * * * * DtoSymbolAddress ('splitAndGet' of type 'pure nothrow @trusted Option(string opt)') * * * * * * * * * * * FuncDeclaration * * * * * * * * * DtoCallFunction() * * * * * * * * * * doing normal arguments * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * %optionHelp = alloca %std.getopt.Option, align 8 * * * * * * * * * * Function type: pure nothrow @trusted Option(string opt) * * * * * * * * * * DtoArgument * * * * * * * * * * * VarExp::toElem: option @ string * * * * * * * * * * * * DtoSymbolAddress ('option' of type 'string') * * * * * * * * * * * * * a normal variable * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(544) * * * * * * AssignExp::toElem: optionHelp.required = cfg.required() | (bool)(bool = bool) * * * * * * * DotVarExp::toElem: optionHelp.required @ bool * * * * * * * * VarExp::toElem: optionHelp @ Option * * * * * * * * * DtoSymbolAddress ('optionHelp' of type 'Option') * * * * * * * * * * a normal variable * * * * * * * * Indexing aggregate field std.getopt.Option.required: * * * * * * * * * Value: %6 = getelementptr %std.getopt.Option, %std.getopt.Option* %optionHelp, i32 0, i32 3 * * * * * * * CallExp::toElem: cfg.required() @ bool * * * * * * * * DotVarExp::toElem: cfg.required @ const pure nothrow @nogc @property @safe bool() * * * * * * * * * VarExp::toElem: cfg @ configuration * * * * * * * * * * DtoSymbolAddress ('cfg' of type 'configuration') * * * * * * * * * * * function param * * * * * * * * * * * type: configuration * * * * * * * * DtoCallFunction() * * * * * * * * * doing normal arguments * * * * * * * * * Arguments so far: (1) * * * * * * * * * * %std.getopt.configuration* %cfg_arg * * * * * * * * * Function type: const pure nothrow @nogc @property @safe bool() * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * DtoAssign() * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(554) * * * * * * DeclarationExp::toElem: string* receiver = _param_4; | T=void * * * * * * * DtoDeclarationExp: receiver * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = string*) * * * * * * * * * llvm value for decl: %receiver = alloca { i64, i8* }*, align 8 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: receiver = _param_4 | (string*)(string* = string*) * * * * * * * * * * VarExp::toElem: receiver @ string* * * * * * * * * * * * DtoSymbolAddress ('receiver' of type 'string*') * * * * * * * * * * * * a normal variable * * * * * * * * * * VarExp::toElem: _param_4 @ string* * * * * * * * * * * * DtoSymbolAddress ('_param_4' of type 'string*') * * * * * * * * * * * * function param * * * * * * * * * * * * type: string* * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %receiver = alloca { i64, i8* }*, align 8 * * * * * * * * * * * rhs: %9 = load { i64, i8* }*, { i64, i8* }** %_param_4 * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(555) * * * * * * DeclarationExp::toElem: immutable immutable(int) lowSliceIdx = 2; | T=void * * * * * * * DtoDeclarationExp: lowSliceIdx * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = immutable(int)) * * * * * * * * * llvm value for decl: %lowSliceIdx = alloca i32, align 4 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: lowSliceIdx = 2 | (immutable(int))(immutable(int) = immutable(int)) * * * * * * * * * * VarExp::toElem: lowSliceIdx @ immutable(int) * * * * * * * * * * * DtoSymbolAddress ('lowSliceIdx' of type 'immutable(int)') * * * * * * * * * * * * a normal variable * * * * * * * * * * IntegerExp::toElem: 2 @ immutable(int) * * * * * * * * * * * IntegerExp::toConstElem: 2 @ immutable(int) * * * * * * * * * * * * value = i32 2 * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %lowSliceIdx = alloca i32, align 4 * * * * * * * * * * * rhs: i32 2 * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(558) * * * * * * CatAssignExp::toElem: rslt.options ~= optionHelp @ Option[] * * * * * * * DotVarExp::toElem: rslt.options @ Option[] * * * * * * * * VarExp::toElem: rslt @ GetoptResult * * * * * * * * * DtoSymbolAddress ('rslt' of type 'GetoptResult') * * * * * * * * * * function param * * * * * * * * * * type: GetoptResult * * * * * * * * Indexing aggregate field std.getopt.GetoptResult.options: * * * * * * * * * Value: %10 = getelementptr %std.getopt.GetoptResult, %std.getopt.GetoptResult* %rslt_arg, i32 0, i32 2 * * * * * * * DtoCatAssignElement * * * * * * * * DtoArrayLen * * * * * * * * VarExp::toElem: optionHelp @ Option * * * * * * * * * DtoSymbolAddress ('optionHelp' of type 'Option') * * * * * * * * * * a normal variable * * * * * * * * DtoTypeInfoOf(type = 'Option[]', base='1') * * * * * * * * * Type::getTypeInfo(): Option[] * * * * * * * * * TypeInfoDeclaration::codegen(typeid(Option[])) * * * * * * * * DtoArrayPtr * * * * * * * * DtoAssign() * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(560) * * * * * * DeclarationExp::toElem: bool incremental = false; | T=void * * * * * * * DtoDeclarationExp: incremental * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = bool) * * * * * * * * * llvm value for decl: %incremental = alloca i8, align 1 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: incremental = false | (bool)(bool = bool) * * * * * * * * * * VarExp::toElem: incremental @ bool * * * * * * * * * * * DtoSymbolAddress ('incremental' of type 'bool') * * * * * * * * * * * * a normal variable * * * * * * * * * * IntegerExp::toElem: false @ bool * * * * * * * * * * * IntegerExp::toConstElem: false @ bool * * * * * * * * * * * * value = i1 false * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(562) * * * * * * AndAndExp::toElem: option.length && cast(int)option[__dollar - 1LU] == 43 @ bool * * * * * * * ArrayLengthExp::toElem: option.length @ ulong * * * * * * * * VarExp::toElem: option @ string * * * * * * * * * DtoSymbolAddress ('option' of type 'string') * * * * * * * * * * a normal variable * * * * * * * * DtoArrayLen * * * * * * * Casting from 'ulong' to 'bool' * * * * * * * EqualExp::toElem: cast(int)option[__dollar - 1LU] == 43 @ bool * * * * * * * * CastExp::toElem: cast(int)option[__dollar - 1LU] @ int * * * * * * * * * IndexExp::toElem: option[__dollar - 1LU] @ immutable(char) * * * * * * * * * * VarExp::toElem: option @ string * * * * * * * * * * * DtoSymbolAddress ('option' of type 'string') * * * * * * * * * * * * a normal variable * * * * * * * * * * MinExp::toElem: __dollar - 1LU @ ulong * * * * * * * * * * * VarExp::toElem: __dollar @ ulong * * * * * * * * * * * * DtoSymbolAddress ('__dollar' of type 'ulong') * * * * * * * * * * * * * Id::dollar * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * DtoArrayPtr * * * * * * * * * Casting from 'immutable(char)' to 'int' * * * * * * * * * * cast to: i32 * * * * * * * * IntegerExp::toElem: 43 @ int * * * * * * * * * IntegerExp::toConstElem: 43 @ int * * * * * * * * * * value = i32 43 * * * * * * * * integral or pointer or interface * * * * * * * * lv: %28 = zext i8 %27 to i32 * * * * * * * * rv: i32 43 * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(563) * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(563) * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(564) * * * * * * * * * AssignExp::toElem: option = option[0..__dollar - 1LU] | (string)(string = string) * * * * * * * * * * VarExp::toElem: option @ string * * * * * * * * * * * DtoSymbolAddress ('option' of type 'string') * * * * * * * * * * * * a normal variable * * * * * * * * * * SliceExp::toElem: option[0..__dollar - 1LU] @ string * * * * * * * * * * * VarExp::toElem: option @ string * * * * * * * * * * * * DtoSymbolAddress ('option' of type 'string') * * * * * * * * * * * * * a normal variable * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * MinExp::toElem: __dollar - 1LU @ ulong * * * * * * * * * * * * VarExp::toElem: __dollar @ ulong * * * * * * * * * * * * * DtoSymbolAddress ('__dollar' of type 'ulong') * * * * * * * * * * * * * * Id::dollar * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * DtoAssign() * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * SetArray * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(565) * * * * * * * * * AssignExp::toElem: incremental = true | (bool)(bool = bool) * * * * * * * * * * VarExp::toElem: incremental @ bool * * * * * * * * * * * DtoSymbolAddress ('incremental' of type 'bool') * * * * * * * * * * * * a normal variable * * * * * * * * * * IntegerExp::toElem: true @ bool * * * * * * * * * * * IntegerExp::toConstElem: true @ bool * * * * * * * * * * * * value = i1 true * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(568) * * * * * * DeclarationExp::toElem: bool optWasHandled = handleOption(option, receiver, args, cfg, incremental); | T=void * * * * * * * DtoDeclarationExp: optWasHandled * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = bool) * * * * * * * * * llvm value for decl: %optWasHandled = alloca i8, align 1 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: optWasHandled = handleOption(option, receiver, args, cfg, incremental) | (bool)(bool = bool) * * * * * * * * * * VarExp::toElem: optWasHandled @ bool * * * * * * * * * * * DtoSymbolAddress ('optWasHandled' of type 'bool') * * * * * * * * * * * * a normal variable * * * * * * * * * * CallExp::toElem: handleOption(option, receiver, args, cfg, incremental) @ bool * * * * * * * * * * * VarExp::toElem: handleOption @ @system bool(string option, string* receiver, ref string[] args, ref configuration cfg, bool incremental) * * * * * * * * * * * * DtoSymbolAddress ('handleOption' of type '@system bool(string option, string* receiver, ref string[] args, ref configuration cfg, bool incremental)') * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * Function type: @system bool(string option, string* receiver, ref string[] args, ref configuration cfg, bool incremental) * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * VarExp::toElem: option @ string * * * * * * * * * * * * * * DtoSymbolAddress ('option' of type 'string') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * VarExp::toElem: receiver @ string* * * * * * * * * * * * * * * DtoSymbolAddress ('receiver' of type 'string*') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * VarExp::toElem: args @ string[] * * * * * * * * * * * * * * DtoSymbolAddress ('args' of type 'string[]') * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * type: string[] * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * VarExp::toElem: cfg @ configuration * * * * * * * * * * * * * * DtoSymbolAddress ('cfg' of type 'configuration') * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * type: configuration * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * VarExp::toElem: incremental @ bool * * * * * * * * * * * * * * DtoSymbolAddress ('incremental' of type 'bool') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(570) * * * * * * AndAndExp::toElem: cfg.required() && !optWasHandled @ bool * * * * * * * CallExp::toElem: cfg.required() @ bool * * * * * * * * DotVarExp::toElem: cfg.required @ const pure nothrow @nogc @property @safe bool() * * * * * * * * * VarExp::toElem: cfg @ configuration * * * * * * * * * * DtoSymbolAddress ('cfg' of type 'configuration') * * * * * * * * * * * function param * * * * * * * * * * * type: configuration * * * * * * * * DtoCallFunction() * * * * * * * * * doing normal arguments * * * * * * * * * Arguments so far: (1) * * * * * * * * * * %std.getopt.configuration* %cfg_arg * * * * * * * * * Function type: const pure nothrow @nogc @property @safe bool() * * * * * * * NotExp::toElem: !optWasHandled @ bool * * * * * * * * VarExp::toElem: optWasHandled @ bool * * * * * * * * * DtoSymbolAddress ('optWasHandled' of type 'bool') * * * * * * * * * * a normal variable * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(571) * * * * * * * ThrowStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(572) * * * * * * * * NewExp::toElem: new GetOptException("Required option " ~ option ~ "was not supplied", "/usr/include/dlang/ldc/std/getopt.d", 572LU) @ std.getopt.GetOptException * * * * * * * * * new class * * * * * * * * * Calling constructor * * * * * * * * * DtoCallFunction() * * * * * * * * * * doing normal arguments * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * %.newclass_gc = bitcast %object.Object* %.newclass_gc_alloc to %std.getopt.GetOptException* * * * * * * * * * * Function type: pure nothrow @safe GetOptException(string msg, string file = __FILE__, ulong line = cast(ulong)__LINE__) * * * * * * * * * * DtoArgument * * * * * * * * * * * CatExp::toElem: "Required option " ~ option ~ "was not supplied" @ string * * * * * * * * * * * * DtoCatAssignArray * * * * * * * * * * * * * StringExp::toElem: "was not supplied" @ string * * * * * * * * * * * * * VarExp::toElem: option @ string * * * * * * * * * * * * * * DtoSymbolAddress ('option' of type 'string') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * StringExp::toElem: "Required option " @ string * * * * * * * * * * * * * DtoTypeInfoOf(type = 'string', base='1') * * * * * * * * * * * * * * Type::getTypeInfo(): string * * * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(string)) * * * * * * * * * * DtoArgument * * * * * * * * * * * StringExp::toElem: "/usr/include/dlang/ldc/std/getopt.d" @ string * * * * * * * * * * DtoArgument * * * * * * * * * * * IntegerExp::toElem: 572LU @ ulong * * * * * * * * * * * * IntegerExp::toConstElem: 572LU @ ulong * * * * * * * * * * * * * value = i64 572 * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(575) * * * * * * CallExp::toElem: cfg.required(false) @ void * * * * * * * DotVarExp::toElem: cfg.required @ pure nothrow @nogc @property @safe void(bool v) * * * * * * * * VarExp::toElem: cfg @ configuration * * * * * * * * * DtoSymbolAddress ('cfg' of type 'configuration') * * * * * * * * * * function param * * * * * * * * * * type: configuration * * * * * * * DtoCallFunction() * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (1) * * * * * * * * * %std.getopt.configuration* %cfg_arg * * * * * * * * Function type: pure nothrow @nogc @property @safe void(bool v) * * * * * * * * DtoArgument * * * * * * * * * IntegerExp::toElem: false @ bool * * * * * * * * * * IntegerExp::toConstElem: false @ bool * * * * * * * * * * * value = i1 false * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(577) * * * * * * CallExp::toElem: getoptImpl(args, cfg, rslt) @ void * * * * * * * VarExp::toElem: getoptImpl @ @safe void(ref string[] args, ref configuration cfg, ref GetoptResult rslt) * * * * * * * * DtoSymbolAddress ('getoptImpl' of type '@safe void(ref string[] args, ref configuration cfg, ref GetoptResult rslt)') * * * * * * * * * FuncDeclaration * * * * * * * * * DtoFunctionType(@safe void(ref string[] args, ref configuration cfg, ref GetoptResult rslt)) * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: void (%std.getopt.GetoptResult*, %std.getopt.configuration*, { i64, { i64, i8* }* }*) * * * * * * * * * DtoResolveFunction(std.getopt.getoptImpl!().getoptImpl): /usr/include/dlang/ldc/std/getopt.d(526) * * * * * * * * * * DtoDeclareFunction(std.getopt.getoptImpl!().getoptImpl): /usr/include/dlang/ldc/std/getopt.d(526) * * * * * * * * * * * DtoFunctionType(@safe void(ref string[] args, ref configuration cfg, ref GetoptResult rslt)) * * * * * * * * * * * func = declare void @_D3std6getopt16__T10getoptImplZ10getoptImplFNfKAAyaKS3std6getopt13configurationKS3std6getopt12GetoptResultZv(%std.getopt.GetoptResult*, %std.getopt.configuration*, { i64, { i64, i8* }* }*) * * * * * * * DtoCallFunction() * * * * * * * * Building type: @safe void(ref string[] args, ref configuration cfg, ref GetoptResult rslt) * * * * * * * * * DtoFunctionType(@safe void(ref string[] args, ref configuration cfg, ref GetoptResult rslt)) * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: void (%std.getopt.GetoptResult*, %std.getopt.configuration*, { i64, { i64, i8* }* }*) * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (0) * * * * * * * * Function type: @safe void(ref string[] args, ref configuration cfg, ref GetoptResult rslt) * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: args @ string[] * * * * * * * * * * DtoSymbolAddress ('args' of type 'string[]') * * * * * * * * * * * function param * * * * * * * * * * * type: string[] * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: cfg @ configuration * * * * * * * * * * DtoSymbolAddress ('cfg' of type 'configuration') * * * * * * * * * * * function param * * * * * * * * * * * type: configuration * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: rslt @ GetoptResult * * * * * * * * * * DtoSymbolAddress ('rslt' of type 'GetoptResult') * * * * * * * * * * * function param * * * * * * * * * * * type: GetoptResult * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(577) * TemplateInstance::codegen: 'std.getopt.getoptImpl!()' * * DtoDefineFunction(std.getopt.getoptImpl!().getoptImpl): /usr/include/dlang/ldc/std/getopt.d(526) * * * Doing function body for: getoptImpl * * * DtoCreateNestedContext for getoptImpl * * * * DtoCreateNestedContextType for std.getopt.getoptImpl!().getoptImpl * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(528) * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(583) * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(583) * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(583) * * * * * * * * DeclarationExp::toElem: ulong i = 1LU; | T=void * * * * * * * * * DtoDeclarationExp: i * * * * * * * * * * VarDeclaration * * * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * * * llvm value for decl: %i = alloca i64, align 8 * * * * * * * * * * * expression initializer * * * * * * * * * * * AssignExp::toElem: i = 1LU | (ulong)(ulong = ulong) * * * * * * * * * * * * VarExp::toElem: i @ ulong * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'ulong') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * lhs: %i = alloca i64, align 8 * * * * * * * * * * * * * rhs: i64 1 * * * * * * * ForStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(583) * * * * * * * * CmpExp::toElem: i < args.length @ bool * * * * * * * * * VarExp::toElem: i @ ulong * * * * * * * * * * DtoSymbolAddress ('i' of type 'ulong') * * * * * * * * * * * a normal variable * * * * * * * * * ArrayLengthExp::toElem: args.length @ ulong * * * * * * * * * * VarExp::toElem: args @ string[] * * * * * * * * * * * DtoSymbolAddress ('args' of type 'string[]') * * * * * * * * * * * * function param * * * * * * * * * * * * type: string[] * * * * * * * * * * DtoArrayLen * * * * * * * * * type 1: %2 = load i64, i64* %i * * * * * * * * * type 2: %.len = load i64, i64* %1 * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(584) * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(584) * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(585) * * * * * * * * * * * DeclarationExp::toElem: string a = args[i]; | T=void * * * * * * * * * * * * DtoDeclarationExp: a * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * DtoVarDeclaration(vdtype = string) * * * * * * * * * * * * * * llvm value for decl: %a = alloca { i64, i8* }, align 8 * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * AssignExp::toElem: a = args[i] | (string)(string = string) * * * * * * * * * * * * * * * VarExp::toElem: a @ string * * * * * * * * * * * * * * * * DtoSymbolAddress ('a' of type 'string') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * IndexExp::toElem: args[i] @ string * * * * * * * * * * * * * * * * VarExp::toElem: args @ string[] * * * * * * * * * * * * * * * * * DtoSymbolAddress ('args' of type 'string[]') * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * type: string[] * * * * * * * * * * * * * * * * VarExp::toElem: i @ ulong * * * * * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'ulong') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * SetArray * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(586) * * * * * * * * * * * AndAndExp::toElem: endOfOptions.length && a == endOfOptions @ bool * * * * * * * * * * * * ArrayLengthExp::toElem: endOfOptions.length @ ulong * * * * * * * * * * * * * VarExp::toElem: endOfOptions @ string * * * * * * * * * * * * * * DtoSymbolAddress ('endOfOptions' of type 'string') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * DtoResolveVariable(std.getopt.endOfOptions) * * * * * * * * * * * * * * * * data segment * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * Casting from 'ulong' to 'bool' * * * * * * * * * * * * EqualExp::toElem: a == endOfOptions @ bool * * * * * * * * * * * * * VarExp::toElem: a @ string * * * * * * * * * * * * * * DtoSymbolAddress ('a' of type 'string') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * VarExp::toElem: endOfOptions @ string * * * * * * * * * * * * * * DtoSymbolAddress ('endOfOptions' of type 'string') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * DtoResolveVariable(std.getopt.endOfOptions) * * * * * * * * * * * * * * * * data segment * * * * * * * * * * * * * static or dynamic array * * * * * * * * * * * * * comparing arrays * * * * * * * * * * * * * casting to dynamic arrays * * * * * * * * * * * * * DtoCastArray * * * * * * * * * * * * * * from array or sarray * * * * * * * * * * * * * * to array * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * isslice * * * * * * * * * * * * * DtoCastArray * * * * * * * * * * * * * * from array or sarray * * * * * * * * * * * * * * to array * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * isslice * * * * * * * * * * * * * DtoTypeInfoOf(type = 'string', base='1') * * * * * * * * * * * * * * Type::getTypeInfo(): string * * * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(string)) * * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(587) * * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(587) * * * * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(589) * * * * * * * * * * * * * * NotExp::toElem: !cfg.keepEndOfOptions() @ bool * * * * * * * * * * * * * * * CallExp::toElem: cfg.keepEndOfOptions() @ bool * * * * * * * * * * * * * * * * DotVarExp::toElem: cfg.keepEndOfOptions @ const pure nothrow @nogc @property @safe bool() * * * * * * * * * * * * * * * * * VarExp::toElem: cfg @ configuration * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('cfg' of type 'configuration') * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * type: configuration * * * * * * * * * * * * * * * * * isMember = this is: configuration * * * * * * * * * * * * * * * * * DtoFunctionType(const pure nothrow @nogc @property @safe bool()) * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * Final function type: i1 (%std.getopt.configuration*) * * * * * * * * * * * * * * * * * DtoResolveFunction(std.getopt.configuration.keepEndOfOptions): /usr/include/dlang/ldc/std/getopt.d-mixin-888(896) * * * * * * * * * * * * * * * * * * DtoDeclareFunction(std.getopt.configuration.keepEndOfOptions): /usr/include/dlang/ldc/std/getopt.d-mixin-888(896) * * * * * * * * * * * * * * * * * * * isMember = this is: configuration * * * * * * * * * * * * * * * * * * * DtoFunctionType(const pure nothrow @nogc @property @safe bool()) * * * * * * * * * * * * * * * * * * * func = declare i1 @_D3std6getopt13configuration16keepEndOfOptionsMxFNaNbNdNiNfZb(%std.getopt.configuration*) * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * Building type: const pure nothrow @nogc @property @safe bool() * * * * * * * * * * * * * * * * * * DtoFunctionType(const pure nothrow @nogc @property @safe bool()) * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * Final function type: i1 () * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * %std.getopt.configuration* %cfg_arg * * * * * * * * * * * * * * * * * Function type: const pure nothrow @nogc @property @safe bool() * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(590) * * * * * * * * * * * * * * * AssignExp::toElem: args = remove(args, i) | (string[])(string[] = string[]) * * * * * * * * * * * * * * * * VarExp::toElem: args @ string[] * * * * * * * * * * * * * * * * * DtoSymbolAddress ('args' of type 'string[]') * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * type: string[] * * * * * * * * * * * * * * * * CallExp::toElem: remove(args, i) @ string[] * * * * * * * * * * * * * * * * * VarExp::toElem: remove @ pure @safe string[](string[] range, ulong _param_1) * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('remove' of type 'pure @safe string[](string[] range, ulong _param_1)') * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * Building type: pure @safe string[](string[] range, ulong _param_1) * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure @safe string[](string[] range, ulong _param_1)) * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * Final function type: { i64, { i64, i8* }* } (i64, { i64, { i64, i8* }* }) * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * Function type: pure @safe string[](string[] range, ulong _param_1) * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * VarExp::toElem: args @ string[] * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('args' of type 'string[]') * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * type: string[] * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * VarExp::toElem: i @ ulong * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * SetArray * * * * * * * * * * * * * BreakStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(591) * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(593) * * * * * * * * * * * OrOrExp::toElem: !a.length || cast(uint)cast(int)a[0] != cast(uint)optionChar @ bool * * * * * * * * * * * * NotExp::toElem: !a.length @ bool * * * * * * * * * * * * * ArrayLengthExp::toElem: a.length @ ulong * * * * * * * * * * * * * * VarExp::toElem: a @ string * * * * * * * * * * * * * * * DtoSymbolAddress ('a' of type 'string') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * Casting from 'ulong' to 'bool' * * * * * * * * * * * * EqualExp::toElem: cast(uint)cast(int)a[0] != cast(uint)optionChar @ bool * * * * * * * * * * * * * CastExp::toElem: cast(uint)cast(int)a[0] @ uint * * * * * * * * * * * * * * CastExp::toElem: cast(int)a[0] @ int * * * * * * * * * * * * * * * IndexExp::toElem: a[0] @ immutable(char) * * * * * * * * * * * * * * * * VarExp::toElem: a @ string * * * * * * * * * * * * * * * * * DtoSymbolAddress ('a' of type 'string') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * Casting from 'immutable(char)' to 'int' * * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * * * Casting from 'int' to 'uint' * * * * * * * * * * * * * CastExp::toElem: cast(uint)optionChar @ uint * * * * * * * * * * * * * * VarExp::toElem: optionChar @ dchar * * * * * * * * * * * * * * * DtoSymbolAddress ('optionChar' of type 'dchar') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * DtoResolveVariable(std.getopt.optionChar) * * * * * * * * * * * * * * * * * data segment * * * * * * * * * * * * * * Casting from 'dchar' to 'uint' * * * * * * * * * * * * * integral or pointer or interface * * * * * * * * * * * * * lv: %41 = zext i8 %40 to i32 * * * * * * * * * * * * * rv: %42 = load i32, i32* @_D3std6getopt10optionCharw * * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(594) * * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(594) * * * * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(596) * * * * * * * * * * * * * * CallExp::toElem: cfg.stopOnFirstNonOption() @ bool * * * * * * * * * * * * * * * DotVarExp::toElem: cfg.stopOnFirstNonOption @ const pure nothrow @nogc @property @safe bool() * * * * * * * * * * * * * * * * VarExp::toElem: cfg @ configuration * * * * * * * * * * * * * * * * * DtoSymbolAddress ('cfg' of type 'configuration') * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * type: configuration * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * %std.getopt.configuration* %cfg_arg * * * * * * * * * * * * * * * * Function type: const pure nothrow @nogc @property @safe bool() * * * * * * * * * * * * * * BreakStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(596) * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(597) * * * * * * * * * * * * * * AddAssignExp::toElem: i += 1LU @ ulong * * * * * * * * * * * * * * * Caching l-value of i += 1LU => i * * * * * * * * * * * * * * * * VarExp::toElem: i @ ulong * * * * * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'ulong') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * AddExp::toElem: i + 1LU @ ulong * * * * * * * * * * * * * * * * VarExp::toElem: i @ ulong * * * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * lhs: %i = alloca i64, align 8 * * * * * * * * * * * * * * * * rhs: %46 = add i64 %45, 1 * * * * * * * * * * * * * ContinueStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(598) * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(600) * * * * * * * * * * * OrOrExp::toElem: a == "--help" || a == "-h" @ bool * * * * * * * * * * * * EqualExp::toElem: a == "--help" @ bool * * * * * * * * * * * * * VarExp::toElem: a @ string * * * * * * * * * * * * * * DtoSymbolAddress ('a' of type 'string') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * StringExp::toElem: "--help" @ string * * * * * * * * * * * * * * type: [7 x i8] * * * * * * * * * * * * * * init: [7 x i8] c"--help\00" * * * * * * * * * * * * * static or dynamic array * * * * * * * * * * * * * comparing arrays * * * * * * * * * * * * * casting to dynamic arrays * * * * * * * * * * * * * DtoCastArray * * * * * * * * * * * * * * from array or sarray * * * * * * * * * * * * * * to array * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * isslice * * * * * * * * * * * * * DtoCastArray * * * * * * * * * * * * * * from array or sarray * * * * * * * * * * * * * * to array * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * isslice * * * * * * * * * * * * * DtoTypeInfoOf(type = 'string', base='1') * * * * * * * * * * * * * * Type::getTypeInfo(): string * * * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(string)) * * * * * * * * * * * * EqualExp::toElem: a == "-h" @ bool * * * * * * * * * * * * * VarExp::toElem: a @ string * * * * * * * * * * * * * * DtoSymbolAddress ('a' of type 'string') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * StringExp::toElem: "-h" @ string * * * * * * * * * * * * * * type: [3 x i8] * * * * * * * * * * * * * * init: [3 x i8] c"-h\00" * * * * * * * * * * * * * static or dynamic array * * * * * * * * * * * * * comparing arrays * * * * * * * * * * * * * casting to dynamic arrays * * * * * * * * * * * * * DtoCastArray * * * * * * * * * * * * * * from array or sarray * * * * * * * * * * * * * * to array * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * isslice * * * * * * * * * * * * * DtoCastArray * * * * * * * * * * * * * * from array or sarray * * * * * * * * * * * * * * to array * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * isslice * * * * * * * * * * * * * DtoTypeInfoOf(type = 'string', base='1') * * * * * * * * * * * * * * Type::getTypeInfo(): string * * * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(string)) * * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(601) * * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(601) * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(602) * * * * * * * * * * * * * * AssignExp::toElem: rslt.helpWanted = true | (bool)(bool = bool) * * * * * * * * * * * * * * * DotVarExp::toElem: rslt.helpWanted @ bool * * * * * * * * * * * * * * * * VarExp::toElem: rslt @ GetoptResult * * * * * * * * * * * * * * * * * DtoSymbolAddress ('rslt' of type 'GetoptResult') * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * type: GetoptResult * * * * * * * * * * * * * * * * Indexing aggregate field std.getopt.GetoptResult.helpWanted: * * * * * * * * * * * * * * * * * Value: %61 = getelementptr %std.getopt.GetoptResult, %std.getopt.GetoptResult* %rslt_arg, i32 0, i32 0 * * * * * * * * * * * * * * * IntegerExp::toElem: true @ bool * * * * * * * * * * * * * * * * IntegerExp::toConstElem: true @ bool * * * * * * * * * * * * * * * * * value = i1 true * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(603) * * * * * * * * * * * * * * AssignExp::toElem: args = remove(args, i) | (string[])(string[] = string[]) * * * * * * * * * * * * * * * VarExp::toElem: args @ string[] * * * * * * * * * * * * * * * * DtoSymbolAddress ('args' of type 'string[]') * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * type: string[] * * * * * * * * * * * * * * * CallExp::toElem: remove(args, i) @ string[] * * * * * * * * * * * * * * * * VarExp::toElem: remove @ pure @safe string[](string[] range, ulong _param_1) * * * * * * * * * * * * * * * * * DtoSymbolAddress ('remove' of type 'pure @safe string[](string[] range, ulong _param_1)') * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * Function type: pure @safe string[](string[] range, ulong _param_1) * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * VarExp::toElem: args @ string[] * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('args' of type 'string[]') * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * type: string[] * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * VarExp::toElem: i @ ulong * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'ulong') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * SetArray * * * * * * * * * * * * * ContinueStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(604) * * * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(606) * * * * * * * * * * * NotExp::toElem: !cfg.passThrough() @ bool * * * * * * * * * * * * CallExp::toElem: cfg.passThrough() @ bool * * * * * * * * * * * * * DotVarExp::toElem: cfg.passThrough @ const pure nothrow @nogc @property @safe bool() * * * * * * * * * * * * * * VarExp::toElem: cfg @ configuration * * * * * * * * * * * * * * * DtoSymbolAddress ('cfg' of type 'configuration') * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * type: configuration * * * * * * * * * * * * * * isMember = this is: configuration * * * * * * * * * * * * * * DtoFunctionType(const pure nothrow @nogc @property @safe bool()) * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * Final function type: i1 (%std.getopt.configuration*) * * * * * * * * * * * * * * DtoResolveFunction(std.getopt.configuration.passThrough): /usr/include/dlang/ldc/std/getopt.d-mixin-888(892) * * * * * * * * * * * * * * * DtoDeclareFunction(std.getopt.configuration.passThrough): /usr/include/dlang/ldc/std/getopt.d-mixin-888(892) * * * * * * * * * * * * * * * * isMember = this is: configuration * * * * * * * * * * * * * * * * DtoFunctionType(const pure nothrow @nogc @property @safe bool()) * * * * * * * * * * * * * * * * func = declare i1 @_D3std6getopt13configuration11passThroughMxFNaNbNdNiNfZb(%std.getopt.configuration*) * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * Building type: const pure nothrow @nogc @property @safe bool() * * * * * * * * * * * * * * * DtoFunctionType(const pure nothrow @nogc @property @safe bool()) * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * Final function type: i1 () * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * %std.getopt.configuration* %cfg_arg * * * * * * * * * * * * * * Function type: const pure nothrow @nogc @property @safe bool() * * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(607) * * * * * * * * * * * * ThrowStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(608) * * * * * * * * * * * * * NewExp::toElem: new GetOptException("Unrecognized option " ~ a, "/usr/include/dlang/ldc/std/getopt.d", 608LU) @ std.getopt.GetOptException * * * * * * * * * * * * * * new class * * * * * * * * * * * * * * Calling constructor * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * %.newclass_gc = bitcast %object.Object* %.newclass_gc_alloc to %std.getopt.GetOptException* * * * * * * * * * * * * * * * Function type: pure nothrow @safe GetOptException(string msg, string file = __FILE__, ulong line = cast(ulong)__LINE__) * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * CatExp::toElem: "Unrecognized option " ~ a @ string * * * * * * * * * * * * * * * * * DtoCatAssignArray * * * * * * * * * * * * * * * * * * DtoTypeInfoOf(type = 'string', base='1') * * * * * * * * * * * * * * * * * * * Type::getTypeInfo(): string * * * * * * * * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(string)) * * * * * * * * * * * * * * * * * * StringExp::toElem: "Unrecognized option " @ string * * * * * * * * * * * * * * * * * * * type: [21 x i8] * * * * * * * * * * * * * * * * * * * init: [21 x i8] c"Unrecognized option \00" * * * * * * * * * * * * * * * * * * VarExp::toElem: a @ string * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('a' of type 'string') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * StringExp::toElem: "/usr/include/dlang/ldc/std/getopt.d" @ string * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * IntegerExp::toElem: 608LU @ ulong * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 608LU @ ulong * * * * * * * * * * * * * * * * * * value = i64 608 * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(610) * * * * * * * * * * * AddAssignExp::toElem: i += 1LU @ ulong * * * * * * * * * * * * Caching l-value of i += 1LU => i * * * * * * * * * * * * * VarExp::toElem: i @ ulong * * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'ulong') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * AddExp::toElem: i + 1LU @ ulong * * * * * * * * * * * * * VarExp::toElem: i @ ulong * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * lhs: %i = alloca i64, align 8 * * * * * * * * * * * * * rhs: %80 = add i64 %79, 1 * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(613) * * * * * * DeclarationExp::toElem: Option helpOpt = 0; | T=void * * * * * * * DtoDeclarationExp: helpOpt * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = Option) * * * * * * * * * llvm value for decl: %helpOpt = alloca %std.getopt.Option, align 8 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: helpOpt = 0 | (Option)(Option = int) * * * * * * * * * * VarExp::toElem: helpOpt @ Option * * * * * * * * * * * DtoSymbolAddress ('helpOpt' of type 'Option') * * * * * * * * * * * * a normal variable * * * * * * * * * * IntegerExp::toElem: 0 @ int * * * * * * * * * * * IntegerExp::toConstElem: 0 @ int * * * * * * * * * * * * value = i32 0 * * * * * * * * * * performing aggregate zero initialization * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(614) * * * * * * AssignExp::toElem: helpOpt.optShort = "-h" | (string)(string = string) * * * * * * * DotVarExp::toElem: helpOpt.optShort @ string * * * * * * * * VarExp::toElem: helpOpt @ Option * * * * * * * * * DtoSymbolAddress ('helpOpt' of type 'Option') * * * * * * * * * * a normal variable * * * * * * * * Indexing aggregate field std.getopt.Option.optShort: * * * * * * * * * Value: %7 = getelementptr %std.getopt.Option, %std.getopt.Option* %helpOpt, i32 0, i32 0 * * * * * * * StringExp::toElem: "-h" @ string * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * DtoAssign() * * * * * * * * DtoArrayAssign * * * * * * * * * DtoArrayPtr * * * * * * * * * DtoArrayLen * * * * * * * * * SetArray * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(615) * * * * * * AssignExp::toElem: helpOpt.optLong = "--help" | (string)(string = string) * * * * * * * DotVarExp::toElem: helpOpt.optLong @ string * * * * * * * * VarExp::toElem: helpOpt @ Option * * * * * * * * * DtoSymbolAddress ('helpOpt' of type 'Option') * * * * * * * * * * a normal variable * * * * * * * * Indexing aggregate field std.getopt.Option.optLong: * * * * * * * * * Value: %10 = getelementptr %std.getopt.Option, %std.getopt.Option* %helpOpt, i32 0, i32 1 * * * * * * * StringExp::toElem: "--help" @ string * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * DtoAssign() * * * * * * * * DtoArrayAssign * * * * * * * * * DtoArrayPtr * * * * * * * * * DtoArrayLen * * * * * * * * * SetArray * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(616) * * * * * * AssignExp::toElem: helpOpt.help = "This help information." | (string)(string = string) * * * * * * * DotVarExp::toElem: helpOpt.help @ string * * * * * * * * VarExp::toElem: helpOpt @ Option * * * * * * * * * DtoSymbolAddress ('helpOpt' of type 'Option') * * * * * * * * * * a normal variable * * * * * * * * Indexing aggregate field std.getopt.Option.help: * * * * * * * * * Value: %13 = getelementptr %std.getopt.Option, %std.getopt.Option* %helpOpt, i32 0, i32 2 * * * * * * * StringExp::toElem: "This help information." @ string * * * * * * * * type: [23 x i8] * * * * * * * * init: [23 x i8] c"This help information.\00" * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * DtoAssign() * * * * * * * * DtoArrayAssign * * * * * * * * * DtoArrayPtr * * * * * * * * * DtoArrayLen * * * * * * * * * SetArray * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/getopt.d(617) * * * * * * CatAssignExp::toElem: rslt.options ~= helpOpt @ Option[] * * * * * * * DotVarExp::toElem: rslt.options @ Option[] * * * * * * * * VarExp::toElem: rslt @ GetoptResult * * * * * * * * * DtoSymbolAddress ('rslt' of type 'GetoptResult') * * * * * * * * * * function param * * * * * * * * * * type: GetoptResult * * * * * * * * Indexing aggregate field std.getopt.GetoptResult.options: * * * * * * * * * Value: %16 = getelementptr %std.getopt.GetoptResult, %std.getopt.GetoptResult* %rslt_arg, i32 0, i32 2 * * * * * * * DtoCatAssignElement * * * * * * * * DtoArrayLen * * * * * * * * VarExp::toElem: helpOpt @ Option * * * * * * * * * DtoSymbolAddress ('helpOpt' of type 'Option') * * * * * * * * * * a normal variable * * * * * * * * DtoTypeInfoOf(type = 'Option[]', base='1') * * * * * * * * * Type::getTypeInfo(): Option[] * * * * * * * * * TypeInfoDeclaration::codegen(typeid(Option[])) * * * * * * * * DtoArrayPtr * * * * * * * * DtoAssign() * TemplateInstance::codegen: 'std.experimental.logger.core.defaultLogFunction!cast(LogLevel)cast(ubyte)192u.defaultLogFunction!(75, "src/client/client.d", "client.client.main", "int client.client.main(string[] args)", "client.client", string)' * * DtoDefineFunction(std.experimental.logger.core.defaultLogFunction!cast(LogLevel)cast(ubyte)192u.defaultLogFunction!(75, "src/client/client.d", "client.client.main", "int client.client.main(string[] args)", "client.client", string).defaultLogFunction): /usr/include/dlang/ldc/std/experimental/logger/core.d(478) * * * Doing function body for: defaultLogFunction * * * DtoCreateNestedContext for defaultLogFunction * * * * DtoCreateNestedContextType for std.experimental.logger.core.defaultLogFunction!cast(LogLevel)cast(ubyte)192u.defaultLogFunction!(75, "src/client/client.d", "client.client.main", "int client.client.main(string[] args)", "client.client", string).defaultLogFunction * * * * * has nested frame * * * * * Function defaultLogFunction has depth 0 * * * * * Nested var '_param_0' of type { i8*, { i64, i8* } (i8*)* } * * * * * frameType = %nest.defaultLogFunction = type { { i8*, { i64, i8* } (i8*)* } } * * * * nested param: _param_0 * * * * * Copying to nested frame * * * CompoundStatement::toIR(): * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/experimental/logger/core.d(486) * * * * * CallExp::toElem: stdThreadLocalLog().logImpl(delegate string() => _param_0()) @ void * * * * * * DotVarExp::toElem: stdThreadLocalLog().logImpl @ @safe void(lazy string _param_0) * * * * * * * CallExp::toElem: stdThreadLocalLog() @ std.experimental.logger.core.Logger * * * * * * * * VarExp::toElem: stdThreadLocalLog @ @property @safe Logger() * * * * * * * * * DtoSymbolAddress ('stdThreadLocalLog' of type '@property @safe Logger()') * * * * * * * * * * FuncDeclaration * * * * * * * * * * DtoFunctionType(@property @safe Logger()) * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * Final function type: %std.experimental.logger.core.Logger* () * * * * * * * * * * DtoResolveFunction(std.experimental.logger.core.stdThreadLocalLog): /usr/include/dlang/ldc/std/experimental/logger/core.d(1796) * * * * * * * * * * * DtoDeclareFunction(std.experimental.logger.core.stdThreadLocalLog): /usr/include/dlang/ldc/std/experimental/logger/core.d(1796) * * * * * * * * * * * * DtoFunctionType(@property @safe Logger()) * * * * * * * * * * * * func = declare %std.experimental.logger.core.Logger* @_D3std12experimental6logger4core17stdThreadLocalLogFNdNfZC3std12experimental6logger4core6Logger() * * * * * * * * DtoCallFunction() * * * * * * * * * Building type: @property @safe Logger() * * * * * * * * * * DtoFunctionType(@property @safe Logger()) * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * Final function type: %std.experimental.logger.core.Logger* () * * * * * * * * * doing normal arguments * * * * * * * * * Arguments so far: (0) * * * * * * * * * Function type: @property @safe Logger() * * * * * * * isMember = this is: std.experimental.logger.core.Logger * * * * * * * DtoFunctionType(@safe void(lazy string _param_0)) * * * * * * * * lazy param * * * * * * * * Building type: string delegate() * * * * * * * * * DtoFunctionType(string()) * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: { i64, i8* } (i8*) * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * Final function type: void (%std.experimental.logger.core.Logger*, { i8*, { i64, i8* } (i8*)* }) * * * * * * * DtoResolveFunction(std.experimental.logger.core.Logger.memLogFunctions!cast(LogLevel)cast(ubyte)192u.logImpl!(75, "src/client/client.d", "client.client.main", "int client.client.main(string[] args)", "client.client", string).logImpl): /usr/include/dlang/ldc/std/experimental/logger/core.d(963) * * * * * * * * DtoDeclareFunction(std.experimental.logger.core.Logger.memLogFunctions!cast(LogLevel)cast(ubyte)192u.logImpl!(75, "src/client/client.d", "client.client.main", "int client.client.main(string[] args)", "client.client", string).logImpl): /usr/include/dlang/ldc/std/experimental/logger/core.d(963) * * * * * * * * * isMember = this is: std.experimental.logger.core.Logger * * * * * * * * * DtoFunctionType(@safe void(lazy string _param_0)) * * * * * * * * * func = declare void @_D3std12experimental6logger4core6Logger66__T15memLogFunctionsVE3std12experimental6logger4core8LogLeveli192Z227__T7logImplVii75VAyaa19_7372632f636c69656e742f636c69656e742e64VAyaa18_636c69656e742e636c69656e742e6d61696eVAyaa37_696e7420636c69656e742e636c69656e742e6d61696e28737472696e675b5d206172677329VAyaa13_636c69656e742e636c69656e74TAyaZ7logImplMFNfLAyaZv(%std.experimental.logger.core.Logger*, { i8*, { i64, i8* } (i8*)* }) * * * * * * DtoCallFunction() * * * * * * * Building type: @safe void(lazy string _param_0) * * * * * * * * DtoFunctionType(@safe void(lazy string _param_0)) * * * * * * * * * lazy param * * * * * * * * * Building type: string delegate() * * * * * * * * * * DtoFunctionType(string()) * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * Final function type: { i64, i8* } (i8*) * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * Final function type: void ({ i8*, { i64, i8* } (i8*)* }) * * * * * * * doing normal arguments * * * * * * * Arguments so far: (1) * * * * * * * * %3 = call %std.experimental.logger.core.Logger* @_D3std12experimental6logger4core17stdThreadLocalLogFNdNfZC3std12experimental6logger4core6Logger() * * * * * * * Function type: @safe void(lazy string _param_0) * * * * * * * DtoArgument * * * * * * * * FuncExp::toElem: __dgliteral3 @ string delegate() pure @nogc @safe * * * * * * * * * nested * * * * * * * * * kind = delegate * * * * * * * * * DtoDefineFunction(std.experimental.logger.core.defaultLogFunction!cast(LogLevel)cast(ubyte)192u.defaultLogFunction!(75, "src/client/client.d", "client.client.main", "int client.client.main(string[] args)", "client.client", string).defaultLogFunction.__dgliteral3): /usr/include/dlang/ldc/std/experimental/logger/core.d(487) * * * * * * * * * * DtoFunctionType(pure @nogc @safe string()) * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * Final function type: { i64, i8* } (i8*) * * * * * * * * * * DtoResolveFunction(std.experimental.logger.core.defaultLogFunction!cast(LogLevel)cast(ubyte)192u.defaultLogFunction!(75, "src/client/client.d", "client.client.main", "int client.client.main(string[] args)", "client.client", string).defaultLogFunction.__dgliteral3): /usr/include/dlang/ldc/std/experimental/logger/core.d(487) * * * * * * * * * * * DtoDeclareFunction(std.experimental.logger.core.defaultLogFunction!cast(LogLevel)cast(ubyte)192u.defaultLogFunction!(75, "src/client/client.d", "client.client.main", "int client.client.main(string[] args)", "client.client", string).defaultLogFunction.__dgliteral3): /usr/include/dlang/ldc/std/experimental/logger/core.d(487) * * * * * * * * * * * * DtoFunctionType(pure @nogc @safe string()) * * * * * * * * * * * * func = declare { i64, i8* } @_D3std12experimental6logger4core69__T18defaultLogFunctionVE3std12experimental6logger4core8LogLeveli192Z239__T18defaultLogFunctionVii75VAyaa19_7372632f636c69656e742f636c69656e742e64VAyaa18_636c69656e742e636c69656e742e6d61696eVAyaa37_696e7420636c69656e742e636c69656e742e6d61696e28737472696e675b5d206172677329VAyaa13_636c69656e742e636c69656e74TAyaZ18defaultLogFunctionFNfLAyaZ12__dgliteral3MFNaNiNfZAya(i8*) * * * * * * * * * * Doing function body for: __dgliteral3 * * * * * * * * * * DtoCreateNestedContext for __dgliteral3 * * * * * * * * * * * DtoCreateNestedContextType for std.experimental.logger.core.defaultLogFunction!cast(LogLevel)cast(ubyte)192u.defaultLogFunction!(75, "src/client/client.d", "client.client.main", "int client.client.main(string[] args)", "client.client", string).defaultLogFunction.__dgliteral3 * * * * * * * * * * * * DtoCreateNestedContextType for std.experimental.logger.core.defaultLogFunction!cast(LogLevel)cast(ubyte)192u.defaultLogFunction!(75, "src/client/client.d", "client.client.main", "int client.client.main(string[] args)", "client.client", string).defaultLogFunction * * * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/experimental/logger/core.d(487) * * * * * * * * * * * * CallExp::toElem: _param_0() @ string * * * * * * * * * * * * * VarExp::toElem: _param_0 @ string delegate() pure @safe * * * * * * * * * * * * * * DtoSymbolAddress ('_param_0' of type 'string') * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * DtoNestedVariable for _param_0 @ /usr/include/dlang/ldc/std/experimental/logger/core.d(487) * * * * * * * * * * * * * * * * DtoCreateNestedContextType for std.experimental.logger.core.defaultLogFunction!cast(LogLevel)cast(ubyte)192u.defaultLogFunction!(75, "src/client/client.d", "client.client.main", "int client.client.main(string[] args)", "client.client", string).defaultLogFunction * * * * * * * * * * * * * * * * Context: %2 = bitcast i8* %1 to %nest.defaultLogFunction* * * * * * * * * * * * * * * * * of type: %nest.defaultLogFunction = type { { i8*, { i64, i8* } (i8*)* } } * * * * * * * * * * * * * * * * Variable: _param_0 * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * Function: __dgliteral3 * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * Addr: %_param_0 = getelementptr %nest.defaultLogFunction, %nest.defaultLogFunction* %2, i32 0, i32 0 * * * * * * * * * * * * * * * * of type: { i8*, { i64, i8* } (i8*)* }* * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * Building type: string delegate() pure @safe * * * * * * * * * * * * * * * DtoFunctionType(pure @safe string()) * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * Final function type: { i64, i8* } (i8*) * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * %.ptr = load i8*, i8** %4 * * * * * * * * * * * * * * Function type: pure @safe string() * * * * * * * * * * * * return value is '0x1309d6e0' * * * * * * * * * Building type: string delegate() pure @nogc @safe * * * * * * * * * * DtoFunctionType(pure @nogc @safe string()) * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * Final function type: { i64, i8* } (i8*) * TemplateInstance::codegen: 'std.experimental.logger.core.isLoggingActiveAt!cast(LogLevel)cast(ubyte)192u' * * VarDeclaration::codegen(): 'std.experimental.logger.core.isLoggingActiveAt!cast(LogLevel)cast(ubyte)192u.isLoggingActiveAt' * * * DtoResolveVariable(std.experimental.logger.core.isLoggingActiveAt!cast(LogLevel)cast(ubyte)192u.isLoggingActiveAt) * TemplateInstance::codegen: 'std.experimental.logger.core.moduleLogLevel!"client.client"' * * Ignoring Dsymbol::codegen for __anonymous * * Ignoring Dsymbol::codegen for std.experimental.logger.core.moduleLogLevel!"client.client".moduleLogLevel * TemplateInstance::codegen: 'std.experimental.logger.core.moduleLogLevel!"client"' * * Ignoring Dsymbol::codegen for __anonymous * * Ignoring Dsymbol::codegen for std.experimental.logger.core.moduleLogLevel!"client".moduleLogLevel * TemplateInstance::codegen: 'std.experimental.logger.core.moduleLogLevel!null' * * VarDeclaration::codegen(): 'std.experimental.logger.core.moduleLogLevel!null.moduleLogLevel' * * * DtoResolveVariable(std.experimental.logger.core.moduleLogLevel!null.moduleLogLevel) * TemplateInstance::codegen: 'std.experimental.logger.core.Logger.memLogFunctions!cast(LogLevel)cast(ubyte)192u.logImpl!(75, "src/client/client.d", "client.client.main", "int client.client.main(string[] args)", "client.client", string)' * * DtoDefineFunction(std.experimental.logger.core.Logger.memLogFunctions!cast(LogLevel)cast(ubyte)192u.logImpl!(75, "src/client/client.d", "client.client.main", "int client.client.main(string[] args)", "client.client", string).logImpl): /usr/include/dlang/ldc/std/experimental/logger/core.d(963) * * * Doing function body for: logImpl * * * DtoCreateNestedContext for logImpl * * * * DtoCreateNestedContextType for std.experimental.logger.core.Logger.memLogFunctions!cast(LogLevel)cast(ubyte)192u.logImpl!(75, "src/client/client.d", "client.client.main", "int client.client.main(string[] args)", "client.client", string).logImpl * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/experimental/logger/core.d(968) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/experimental/logger/core.d(970) * * * * * * DeclarationExp::toElem: Mutex __sync3199 = this.mutex; | T=void * * * * * * * DtoDeclarationExp: __sync3199 * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = core.sync.mutex.Mutex) * * * * * * * * * llvm value for decl: %__sync3199 = alloca %core.sync.mutex.Mutex*, align 8 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: __sync3199 = this.mutex | (core.sync.mutex.Mutex)(core.sync.mutex.Mutex = core.sync.mutex.Mutex) * * * * * * * * * * VarExp::toElem: __sync3199 @ core.sync.mutex.Mutex * * * * * * * * * * * DtoSymbolAddress ('__sync3199' of type 'core.sync.mutex.Mutex') * * * * * * * * * * * * a normal variable * * * * * * * * * * DotVarExp::toElem: this.mutex @ core.sync.mutex.Mutex * * * * * * * * * * * ThisExp::toElem: this @ std.experimental.logger.core.Logger * * * * * * * * * * * * normal this exp * * * * * * * * * * * Indexing aggregate field std.experimental.logger.core.Logger.mutex: * * * * * * * * * * * * DtoResolveClass(std.experimental.logger.core.Logger): /usr/include/dlang/ldc/std/experimental/logger/core.d(732) * * * * * * * * * * * * Value: %2 = getelementptr %std.experimental.logger.core.Logger, %std.experimental.logger.core.Logger* %1, i32 0, i32 5 * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * DtoAssign() * * * * * * * * * * * l : %__sync3199 = alloca %core.sync.mutex.Mutex*, align 8 * * * * * * * * * * * r : %3 = load %core.sync.mutex.Mutex*, %core.sync.mutex.Mutex** %2 * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/experimental/logger/core.d(970) * * * * * * CallExp::toElem: _d_monitorenter(__sync3199) @ void * * * * * * * VarExp::toElem: _d_monitorenter @ extern (C) void(Object) * * * * * * * * DtoSymbolAddress ('_d_monitorenter' of type 'extern (C) void(Object)') * * * * * * * * * FuncDeclaration * * * * * * * * * DtoFunctionType(extern (C) void(Object)) * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: void (%object.Object*) * * * * * * * * * DtoResolveFunction(_d_monitorenter): * * * * * * * * * * DtoDeclareFunction(_d_monitorenter): * * * * * * * * * * * DtoFunctionType(extern (C) void(Object)) * * * * * * * * * * * func = declare void @_d_monitorenter(%object.Object*) * * * * * * * DtoCallFunction() * * * * * * * * Building type: extern (C) void(Object) * * * * * * * * * DtoFunctionType(extern (C) void(Object)) * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: void (%object.Object*) * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (0) * * * * * * * * Function type: extern (C) void(Object) * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: __sync3199 @ core.sync.mutex.Mutex * * * * * * * * * * DtoSymbolAddress ('__sync3199' of type 'core.sync.mutex.Mutex') * * * * * * * * * * * a normal variable * * * * * * * * arg: %4 = load %core.sync.mutex.Mutex*, %core.sync.mutex.Mutex** %__sync3199 * * * * * * * * expects: %object.Object* * * * * * TryFinallyStatement::toIR(): /usr/include/dlang/ldc/std/experimental/logger/core.d(970) * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/experimental/logger/core.d(970) * * * * * * * CallExp::toElem: _d_monitorexit(__sync3199) @ void * * * * * * * * VarExp::toElem: _d_monitorexit @ extern (C) void(Object) * * * * * * * * * DtoSymbolAddress ('_d_monitorexit' of type 'extern (C) void(Object)') * * * * * * * * * * FuncDeclaration * * * * * * * * * * DtoFunctionType(extern (C) void(Object)) * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * Final function type: void (%object.Object*) * * * * * * * * * * DtoResolveFunction(_d_monitorexit): * * * * * * * * * * * DtoDeclareFunction(_d_monitorexit): * * * * * * * * * * * * DtoFunctionType(extern (C) void(Object)) * * * * * * * * * * * * func = declare void @_d_monitorexit(%object.Object*) * * * * * * * * DtoCallFunction() * * * * * * * * * Building type: extern (C) void(Object) * * * * * * * * * * DtoFunctionType(extern (C) void(Object)) * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * Final function type: void (%object.Object*) * * * * * * * * * doing normal arguments * * * * * * * * * Arguments so far: (0) * * * * * * * * * Function type: extern (C) void(Object) * * * * * * * * * DtoArgument * * * * * * * * * * VarExp::toElem: __sync3199 @ core.sync.mutex.Mutex * * * * * * * * * * * DtoSymbolAddress ('__sync3199' of type 'core.sync.mutex.Mutex') * * * * * * * * * * * * a normal variable * * * * * * * * * arg: %6 = load %core.sync.mutex.Mutex*, %core.sync.mutex.Mutex** %__sync3199 * * * * * * * * * expects: %object.Object* * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/experimental/logger/core.d(971) * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/experimental/logger/core.d(972) * * * * * * * * CallExp::toElem: isLoggingEnabled(cast(LogLevel)cast(ubyte)192u, this.logLevel_, globalLogLevel(), delegate bool() => true) @ bool * * * * * * * * * VarExp::toElem: isLoggingEnabled @ pure @safe bool(LogLevel ll, LogLevel loggerLL, LogLevel globalLL, lazy bool condition = true) * * * * * * * * * * DtoSymbolAddress ('isLoggingEnabled' of type 'pure @safe bool(LogLevel ll, LogLevel loggerLL, LogLevel globalLL, lazy bool condition = true)') * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * DtoFunctionType(pure @safe bool(LogLevel ll, LogLevel loggerLL, LogLevel globalLL, lazy bool condition = true)) * * * * * * * * * * * * Building type: LogLevel * * * * * * * * * * * * Building type: LogLevel * * * * * * * * * * * * Building type: LogLevel * * * * * * * * * * * * lazy param * * * * * * * * * * * * Building type: bool delegate() * * * * * * * * * * * * * DtoFunctionType(bool()) * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * Final function type: i1 (i8*) * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * Final function type: i1 ({ i8*, i1 (i8*)* }, i8, i8, i8) * * * * * * * * * * * DtoResolveFunction(std.experimental.logger.core.isLoggingEnabled!().isLoggingEnabled): /usr/include/dlang/ldc/std/experimental/logger/core.d(79) * * * * * * * * * * * * DtoDeclareFunction(std.experimental.logger.core.isLoggingEnabled!().isLoggingEnabled): /usr/include/dlang/ldc/std/experimental/logger/core.d(79) * * * * * * * * * * * * * DtoFunctionType(pure @safe bool(LogLevel ll, LogLevel loggerLL, LogLevel globalLL, lazy bool condition = true)) * * * * * * * * * * * * * func = declare i1 @_D3std12experimental6logger4core22__T16isLoggingEnabledZ16isLoggingEnabledFNaNfE3std12experimental6logger4core8LogLevelE3std12experimental6logger4core8LogLevelE3std12experimental6logger4core8LogLevelLbZb({ i8*, i1 (i8*)* }, i8, i8, i8) * * * * * * * * * DtoCallFunction() * * * * * * * * * * Building type: pure @safe bool(LogLevel ll, LogLevel loggerLL, LogLevel globalLL, lazy bool condition = true) * * * * * * * * * * * DtoFunctionType(pure @safe bool(LogLevel ll, LogLevel loggerLL, LogLevel globalLL, lazy bool condition = true)) * * * * * * * * * * * * Building type: LogLevel * * * * * * * * * * * * Building type: LogLevel * * * * * * * * * * * * Building type: LogLevel * * * * * * * * * * * * lazy param * * * * * * * * * * * * Building type: bool delegate() * * * * * * * * * * * * * DtoFunctionType(bool()) * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * Final function type: i1 (i8*) * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * Final function type: i1 ({ i8*, i1 (i8*)* }, i8, i8, i8) * * * * * * * * * * doing normal arguments * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * Function type: pure @safe bool(LogLevel ll, LogLevel loggerLL, LogLevel globalLL, lazy bool condition = true) * * * * * * * * * * DtoArgument * * * * * * * * * * * IntegerExp::toElem: cast(LogLevel)cast(ubyte)192u @ LogLevel * * * * * * * * * * * * IntegerExp::toConstElem: cast(LogLevel)cast(ubyte)192u @ LogLevel * * * * * * * * * * * * * Building type: LogLevel * * * * * * * * * * * * * value = i8 -64 * * * * * * * * * * DtoArgument * * * * * * * * * * * DotVarExp::toElem: this.logLevel_ @ LogLevel * * * * * * * * * * * * ThisExp::toElem: this @ std.experimental.logger.core.Logger * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * Indexing aggregate field std.experimental.logger.core.Logger.logLevel_: * * * * * * * * * * * * * Building type: LogLevel * * * * * * * * * * * * * Value: %7 = getelementptr %std.experimental.logger.core.Logger, %std.experimental.logger.core.Logger* %6, i32 0, i32 3 * * * * * * * * * * DtoArgument * * * * * * * * * * * CallExp::toElem: globalLogLevel() @ LogLevel * * * * * * * * * * * * VarExp::toElem: globalLogLevel @ @nogc @property @safe LogLevel() * * * * * * * * * * * * * DtoSymbolAddress ('globalLogLevel' of type '@nogc @property @safe LogLevel()') * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * DtoFunctionType(@nogc @property @safe LogLevel()) * * * * * * * * * * * * * * * Building type: LogLevel * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * Final function type: i8 () * * * * * * * * * * * * * * DtoResolveFunction(std.experimental.logger.core.globalLogLevel): /usr/include/dlang/ldc/std/experimental/logger/core.d(1717) * * * * * * * * * * * * * * * DtoDeclareFunction(std.experimental.logger.core.globalLogLevel): /usr/include/dlang/ldc/std/experimental/logger/core.d(1717) * * * * * * * * * * * * * * * * DtoFunctionType(@nogc @property @safe LogLevel()) * * * * * * * * * * * * * * * * func = declare i8 @_D3std12experimental6logger4core14globalLogLevelFNdNiNfZE3std12experimental6logger4core8LogLevel() * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * Building type: @nogc @property @safe LogLevel() * * * * * * * * * * * * * * DtoFunctionType(@nogc @property @safe LogLevel()) * * * * * * * * * * * * * * * Building type: LogLevel * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * Final function type: i8 () * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * Function type: @nogc @property @safe LogLevel() * * * * * * * * * * DtoArgument * * * * * * * * * * * FuncExp::toElem: __dgliteral3 @ bool delegate() pure nothrow @nogc @safe * * * * * * * * * * * * nested * * * * * * * * * * * * kind = delegate * * * * * * * * * * * * DtoDefineFunction(std.experimental.logger.core.Logger.memLogFunctions!cast(LogLevel)cast(ubyte)192u.logImpl!(75, "src/client/client.d", "client.client.main", "int client.client.main(string[] args)", "client.client", string).logImpl.__dgliteral3): /usr/include/dlang/ldc/std/experimental/logger/core.d(80) * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe bool()) * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * Final function type: i1 (i8*) * * * * * * * * * * * * * DtoResolveFunction(std.experimental.logger.core.Logger.memLogFunctions!cast(LogLevel)cast(ubyte)192u.logImpl!(75, "src/client/client.d", "client.client.main", "int client.client.main(string[] args)", "client.client", string).logImpl.__dgliteral3): /usr/include/dlang/ldc/std/experimental/logger/core.d(80) * * * * * * * * * * * * * * DtoDeclareFunction(std.experimental.logger.core.Logger.memLogFunctions!cast(LogLevel)cast(ubyte)192u.logImpl!(75, "src/client/client.d", "client.client.main", "int client.client.main(string[] args)", "client.client", string).logImpl.__dgliteral3): /usr/include/dlang/ldc/std/experimental/logger/core.d(80) * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe bool()) * * * * * * * * * * * * * * * func = declare i1 @_D3std12experimental6logger4core6Logger66__T15memLogFunctionsVE3std12experimental6logger4core8LogLeveli192Z227__T7logImplVii75VAyaa19_7372632f636c69656e742f636c69656e742e64VAyaa18_636c69656e742e636c69656e742e6d61696eVAyaa37_696e7420636c69656e742e636c69656e742e6d61696e28737472696e675b5d206172677329VAyaa13_636c69656e742e636c69656e74TAyaZ7logImplMFLAyaZ12__dgliteral3MFNaNbNiNfZb(i8*) * * * * * * * * * * * * * Doing function body for: __dgliteral3 * * * * * * * * * * * * * DtoCreateNestedContext for __dgliteral3 * * * * * * * * * * * * * * DtoCreateNestedContextType for std.experimental.logger.core.Logger.memLogFunctions!cast(LogLevel)cast(ubyte)192u.logImpl!(75, "src/client/client.d", "client.client.main", "int client.client.main(string[] args)", "client.client", string).logImpl.__dgliteral3 * * * * * * * * * * * * * * * DtoCreateNestedContextType for std.experimental.logger.core.Logger.memLogFunctions!cast(LogLevel)cast(ubyte)192u.logImpl!(75, "src/client/client.d", "client.client.main", "int client.client.main(string[] args)", "client.client", string).logImpl * * * * * * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/experimental/logger/core.d(80) * * * * * * * * * * * * * * * IntegerExp::toElem: true @ bool * * * * * * * * * * * * * * * * IntegerExp::toConstElem: true @ bool * * * * * * * * * * * * * * * * * value = i1 true * * * * * * * * * * * * * * * return value is '0x12188b90' * * * * * * * * * * * * Building type: bool delegate() pure nothrow @nogc @safe * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe bool()) * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * Final function type: i1 (i8*) * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/experimental/logger/core.d(973) * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/experimental/logger/core.d(973) * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/experimental/logger/core.d(974) * * * * * * * * * * * CallExp::toElem: this.beginLogMsg("src/client/client.d", 75, "client.client.main", "int client.client.main(string[] args)", "client.client", cast(LogLevel)cast(ubyte)192u, thisTid(), currTime(opCall()), this) @ void * * * * * * * * * * * * DotVarExp::toElem: this.beginLogMsg @ @safe void(string file, int line, string funcName, string prettyFuncName, string moduleName, LogLevel logLevel, Tid threadId, SysTime timestamp, Logger logger) * * * * * * * * * * * * * ThisExp::toElem: this @ std.experimental.logger.core.Logger * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * isMember = this is: std.experimental.logger.core.Logger * * * * * * * * * * * * * DtoFunctionType(@safe void(string file, int line, string funcName, string prettyFuncName, string moduleName, LogLevel logLevel, Tid threadId, SysTime timestamp, Logger logger)) * * * * * * * * * * * * * DtoResolveFunction(std.experimental.logger.core.Logger.beginLogMsg): /usr/include/dlang/ldc/std/experimental/logger/core.d(830) * * * * * * * * * * * * * * DtoDeclareFunction(std.experimental.logger.core.Logger.beginLogMsg): /usr/include/dlang/ldc/std/experimental/logger/core.d(830) * * * * * * * * * * * * * * * isMember = this is: std.experimental.logger.core.Logger * * * * * * * * * * * * * * * DtoFunctionType(@safe void(string file, int line, string funcName, string prettyFuncName, string moduleName, LogLevel logLevel, Tid threadId, SysTime timestamp, Logger logger)) * * * * * * * * * * * * * * * func = declare void @_D3std12experimental6logger4core6Logger11beginLogMsgMFNfAyaiAyaAyaAyaE3std12experimental6logger4core8LogLevelS3std11concurrency3TidS3std8datetime7SysTimeC3std12experimental6logger4core6LoggerZv(%std.experimental.logger.core.Logger*, %std.experimental.logger.core.Logger*, %std.datetime.SysTime, %std.concurrency.Tid, i8, { i64, i8* }, { i64, i8* }, { i64, i8* }, i32, { i64, i8* }) * * * * * * * * * * * * * vthis: %17 = load %std.experimental.logger.core.Logger*, %std.experimental.logger.core.Logger** %this * * * * * * * * * * * * * funcval: %20 = load void (%std.experimental.logger.core.Logger*, %std.experimental.logger.core.Logger*, %std.datetime.SysTime, %std.concurrency.Tid, i8, { i64, i8* }, { i64, i8* }, { i64, i8* }, i32, { i64, i8* })*, void (%std.experimental.logger.core.Logger*, %std.experimental.logger.core.Logger*, %std.datetime.SysTime, %std.concurrency.Tid, i8, { i64, i8* }, { i64, i8* }, { i64, i8* }, i32, { i64, i8* })** %"this.beginLogMsg@vtbl", align 8 * * * * * * * * * * * * * isMember = this is: std.experimental.logger.core.Logger * * * * * * * * * * * * * DtoFunctionType(@safe void(string file, int line, string funcName, string prettyFuncName, string moduleName, LogLevel logLevel, Tid threadId, SysTime timestamp, Logger logger)) * * * * * * * * * * * * * funcval casted: %this.beginLogMsg = load void (%std.experimental.logger.core.Logger*, %std.experimental.logger.core.Logger*, %std.datetime.SysTime, %std.concurrency.Tid, i8, { i64, i8* }, { i64, i8* }, { i64, i8* }, i32, { i64, i8* })*, void (%std.experimental.logger.core.Logger*, %std.experimental.logger.core.Logger*, %std.datetime.SysTime, %std.concurrency.Tid, i8, { i64, i8* }, { i64, i8* }, { i64, i8* }, i32, { i64, i8* })** %"this.beginLogMsg@vtbl", align 8 * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * Building type: @safe void(string file, int line, string funcName, string prettyFuncName, string moduleName, LogLevel logLevel, Tid threadId, SysTime timestamp, Logger logger) * * * * * * * * * * * * * * DtoFunctionType(@safe void(string file, int line, string funcName, string prettyFuncName, string moduleName, LogLevel logLevel, Tid threadId, SysTime timestamp, Logger logger)) * * * * * * * * * * * * * * * Building type: LogLevel * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * Passing implicitly ByVal: string ({ i64, i8* }) * * * * * * * * * * * * * * * * Passing implicitly ByVal: string ({ i64, i8* }) * * * * * * * * * * * * * * * * Passing implicitly ByVal: string ({ i64, i8* }) * * * * * * * * * * * * * * * Final function type: void (%std.experimental.logger.core.Logger*, %std.datetime.SysTime, %std.concurrency.Tid, i8, { i64, i8* }*, { i64, i8* }*, { i64, i8* }*, i32, { i64, i8* }) * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * %20 = load %std.experimental.logger.core.Logger*, %std.experimental.logger.core.Logger** %this * * * * * * * * * * * * * Function type: @safe void(string file, int line, string funcName, string prettyFuncName, string moduleName, LogLevel logLevel, Tid threadId, SysTime timestamp, Logger logger) * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * StringExp::toElem: "src/client/client.d" @ string * * * * * * * * * * * * * * * type: [20 x i8] * * * * * * * * * * * * * * * init: [20 x i8] c"src/client/client.d\00" * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * IntegerExp::toElem: 75 @ int * * * * * * * * * * * * * * * IntegerExp::toConstElem: 75 @ int * * * * * * * * * * * * * * * * value = i32 75 * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * StringExp::toElem: "client.client.main" @ string * * * * * * * * * * * * * * * type: [19 x i8] * * * * * * * * * * * * * * * init: [19 x i8] c"client.client.main\00" * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * StringExp::toElem: "int client.client.main(string[] args)" @ string * * * * * * * * * * * * * * * type: [38 x i8] * * * * * * * * * * * * * * * init: [38 x i8] c"int client.client.main(string[] args)\00" * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * StringExp::toElem: "client.client" @ string * * * * * * * * * * * * * * * type: [14 x i8] * * * * * * * * * * * * * * * init: [14 x i8] c"client.client\00" * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * IntegerExp::toElem: cast(LogLevel)cast(ubyte)192u @ LogLevel * * * * * * * * * * * * * * * IntegerExp::toConstElem: cast(LogLevel)cast(ubyte)192u @ LogLevel * * * * * * * * * * * * * * * * Building type: LogLevel * * * * * * * * * * * * * * * * value = i8 -64 * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * CallExp::toElem: thisTid() @ Tid * * * * * * * * * * * * * * * VarExp::toElem: thisTid @ @property @safe Tid() * * * * * * * * * * * * * * * * DtoSymbolAddress ('thisTid' of type '@property @safe Tid()') * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * DtoFunctionType(@property @safe Tid()) * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * Final function type: %std.concurrency.Tid () * * * * * * * * * * * * * * * * * DtoResolveFunction(std.concurrency.thisTid): /usr/include/dlang/ldc/std/concurrency.d(349) * * * * * * * * * * * * * * * * * * DtoDeclareFunction(std.concurrency.thisTid): /usr/include/dlang/ldc/std/concurrency.d(349) * * * * * * * * * * * * * * * * * * * DtoFunctionType(@property @safe Tid()) * * * * * * * * * * * * * * * * * * * func = declare %std.concurrency.Tid @_D3std11concurrency7thisTidFNdNfZS3std11concurrency3Tid() * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * Building type: @property @safe Tid() * * * * * * * * * * * * * * * * * DtoFunctionType(@property @safe Tid()) * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * Final function type: %std.concurrency.Tid () * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * Function type: @property @safe Tid() * * * * * * * * * * * * * * * * Storing return value to stack slot * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * CallExp::toElem: currTime(opCall()) @ SysTime * * * * * * * * * * * * * * * VarExp::toElem: currTime @ @safe SysTime(immutable(TimeZone) tz = opCall()) * * * * * * * * * * * * * * * * DtoSymbolAddress ('currTime' of type '@safe SysTime(immutable(TimeZone) tz = opCall())') * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * DtoFunctionType(@safe SysTime(immutable(TimeZone) tz = opCall())) * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * Final function type: %std.datetime.SysTime (%std.datetime.TimeZone*) * * * * * * * * * * * * * * * * * DtoResolveFunction(std.datetime.Clock.currTime): /usr/include/dlang/ldc/std/datetime.d(317) * * * * * * * * * * * * * * * * * * DtoDeclareFunction(std.datetime.Clock.currTime): /usr/include/dlang/ldc/std/datetime.d(317) * * * * * * * * * * * * * * * * * * * DtoFunctionType(@safe SysTime(immutable(TimeZone) tz = opCall())) * * * * * * * * * * * * * * * * * * * func = declare %std.datetime.SysTime @_D3std8datetime5Clock8currTimeFNfyC3std8datetime8TimeZoneZS3std8datetime7SysTime(%std.datetime.TimeZone*) * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * Building type: @safe SysTime(immutable(TimeZone) tz = opCall()) * * * * * * * * * * * * * * * * * DtoFunctionType(@safe SysTime(immutable(TimeZone) tz = opCall())) * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * Final function type: %std.datetime.SysTime (%std.datetime.TimeZone*) * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * Function type: @safe SysTime(immutable(TimeZone) tz = opCall()) * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * CallExp::toElem: opCall() @ immutable(TimeZone) * * * * * * * * * * * * * * * * * * VarExp::toElem: opCall @ pure nothrow @trusted immutable(LocalTime)() * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('opCall' of type 'pure nothrow @trusted immutable(LocalTime)()') * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @trusted immutable(LocalTime)()) * * * * * * * * * * * * * * * * * * * * * Building type: std.datetime.LocalTime * * * * * * * * * * * * * * * * * * * * * * Building class type std.datetime.LocalTime @ /usr/include/dlang/ldc/std/datetime.d(26799) * * * * * * * * * * * * * * * * * * * * * * * Instance size: 64 * * * * * * * * * * * * * * * * * * * * * * * adding default initializer for struct field _name * * * * * * * * * * * * * * * * * * * * * * * adding default initializer for struct field _stdName * * * * * * * * * * * * * * * * * * * * * * * adding default initializer for struct field _dstName * * * * * * * * * * * * * * * * * * * * * * * Building vtbl type for class std.datetime.LocalTime * * * * * * * * * * * * * * * * * * * * * * * * Adding type of object.Object.toString * * * * * * * * * * * * * * * * * * * * * * * * isMember = this is: object.Object * * * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(string()) * * * * * * * * * * * * * * * * * * * * * * * * Adding type of object.Object.toHash * * * * * * * * * * * * * * * * * * * * * * * * isMember = this is: object.Object * * * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(nothrow @trusted ulong()) * * * * * * * * * * * * * * * * * * * * * * * * Adding type of object.Object.opCmp * * * * * * * * * * * * * * * * * * * * * * * * isMember = this is: object.Object * * * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(int(Object o)) * * * * * * * * * * * * * * * * * * * * * * * * Adding type of object.Object.opEquals * * * * * * * * * * * * * * * * * * * * * * * * isMember = this is: object.Object * * * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(bool(Object o)) * * * * * * * * * * * * * * * * * * * * * * * * Adding type of std.datetime.TimeZone.name * * * * * * * * * * * * * * * * * * * * * * * * isMember = this is: std.datetime.TimeZone * * * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(const nothrow @property @safe string()) * * * * * * * * * * * * * * * * * * * * * * * * Adding type of std.datetime.LocalTime.stdName * * * * * * * * * * * * * * * * * * * * * * * * isMember = this is: std.datetime.LocalTime * * * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(const nothrow @property @trusted string()) * * * * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * * * * * * Final function type: { i64, i8* } (%std.datetime.LocalTime*) * * * * * * * * * * * * * * * * * * * * * * * * Adding type of std.datetime.LocalTime.dstName * * * * * * * * * * * * * * * * * * * * * * * * isMember = this is: std.datetime.LocalTime * * * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(const nothrow @property @trusted string()) * * * * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * * * * * * Final function type: { i64, i8* } (%std.datetime.LocalTime*) * * * * * * * * * * * * * * * * * * * * * * * * Adding type of std.datetime.LocalTime.hasDST * * * * * * * * * * * * * * * * * * * * * * * * isMember = this is: std.datetime.LocalTime * * * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(const nothrow @property @trusted bool()) * * * * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * * * * * * Final function type: i1 (%std.datetime.LocalTime*) * * * * * * * * * * * * * * * * * * * * * * * * Adding type of std.datetime.LocalTime.dstInEffect * * * * * * * * * * * * * * * * * * * * * * * * isMember = this is: std.datetime.LocalTime * * * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(const nothrow @trusted bool(long stdTime)) * * * * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * * * * * * Final function type: i1 (%std.datetime.LocalTime*, i64) * * * * * * * * * * * * * * * * * * * * * * * * Adding type of std.datetime.LocalTime.utcToTZ * * * * * * * * * * * * * * * * * * * * * * * * isMember = this is: std.datetime.LocalTime * * * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(const nothrow @trusted long(long stdTime)) * * * * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * * * * * * Final function type: i64 (%std.datetime.LocalTime*, i64) * * * * * * * * * * * * * * * * * * * * * * * * Adding type of std.datetime.LocalTime.tzToUTC * * * * * * * * * * * * * * * * * * * * * * * * isMember = this is: std.datetime.LocalTime * * * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(const nothrow @trusted long(long adjTime)) * * * * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * * * * * * Final function type: i64 (%std.datetime.LocalTime*, i64) * * * * * * * * * * * * * * * * * * * * * * * * Adding type of std.datetime.TimeZone.utcOffsetAt * * * * * * * * * * * * * * * * * * * * * * * * isMember = this is: std.datetime.TimeZone * * * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(const nothrow @safe Duration(long stdTime)) * * * * * * * * * * * * * * * * * * * * * * * class type: %std.datetime.LocalTime = type { %std.datetime.LocalTime.__vtbl*, i8*, { i64, i8* }, { i64, i8* }, { i64, i8* } } * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * * Final function type: %std.datetime.LocalTime* () * * * * * * * * * * * * * * * * * * * * DtoResolveFunction(std.datetime.LocalTime.opCall): /usr/include/dlang/ldc/std/datetime.d(26807) * * * * * * * * * * * * * * * * * * * * * DtoDeclareFunction(std.datetime.LocalTime.opCall): /usr/include/dlang/ldc/std/datetime.d(26807) * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @trusted immutable(LocalTime)()) * * * * * * * * * * * * * * * * * * * * * * func = declare %std.datetime.LocalTime* @_D3std8datetime9LocalTime6opCallFNaNbNeZyC3std8datetime9LocalTime() * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * Building type: pure nothrow @trusted immutable(LocalTime)() * * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @trusted immutable(LocalTime)()) * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * * Final function type: %std.datetime.LocalTime* () * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * Function type: pure nothrow @trusted immutable(LocalTime)() * * * * * * * * * * * * * * * * * * * repainting return value from 'immutable(LocalTime)' to 'std.datetime.TimeZone' * * * * * * * * * * * * * * * * * * * final return value: %15 = bitcast %std.datetime.LocalTime* %14 to %std.datetime.TimeZone* * * * * * * * * * * * * * * * * Storing return value to stack slot * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * ThisExp::toElem: this @ std.experimental.logger.core.Logger * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * Loading struct type for function argument * * * * * * * * * * * * * Loading struct type for function argument * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/experimental/logger/core.d(977) * * * * * * * * * * * DeclarationExp::toElem: MsgRange writer = writer = 0 , writer.this(this); | T=void * * * * * * * * * * * * DtoDeclarationExp: writer * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * DtoVarDeclaration(vdtype = MsgRange) * * * * * * * * * * * * * * llvm value for decl: %writer = alloca %std.experimental.logger.core.MsgRange, align 8 * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * CommaExp::toElem: writer = 0 , writer.this(this) @ MsgRange * * * * * * * * * * * * * * * AssignExp::toElem: writer = 0 | (MsgRange)(MsgRange = int) * * * * * * * * * * * * * * * * VarExp::toElem: writer @ MsgRange * * * * * * * * * * * * * * * * * DtoSymbolAddress ('writer' of type 'MsgRange') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * IntegerExp::toElem: 0 @ int * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0 @ int * * * * * * * * * * * * * * * * * * value = i32 0 * * * * * * * * * * * * * * * * performing aggregate zero initialization * * * * * * * * * * * * * * * CallExp::toElem: writer.this(this) @ MsgRange * * * * * * * * * * * * * * * * DotVarExp::toElem: writer.this @ ref @safe MsgRange(Logger log) * * * * * * * * * * * * * * * * * VarExp::toElem: writer @ MsgRange * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('writer' of type 'MsgRange') * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * isMember = this is: MsgRange * * * * * * * * * * * * * * * * * DtoFunctionType(ref @safe MsgRange(Logger log)) * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * Final function type: %std.experimental.logger.core.MsgRange* (%std.experimental.logger.core.MsgRange*, %std.experimental.logger.core.Logger*) * * * * * * * * * * * * * * * * * DtoResolveFunction(std.experimental.logger.core.MsgRange.this): /usr/include/dlang/ldc/std/experimental/logger/core.d(660) * * * * * * * * * * * * * * * * * * DtoDeclareFunction(std.experimental.logger.core.MsgRange.this): /usr/include/dlang/ldc/std/experimental/logger/core.d(660) * * * * * * * * * * * * * * * * * * * isMember = this is: MsgRange * * * * * * * * * * * * * * * * * * * DtoFunctionType(ref @safe MsgRange(Logger log)) * * * * * * * * * * * * * * * * * * * func = declare %std.experimental.logger.core.MsgRange* @_D3std12experimental6logger4core8MsgRange6__ctorMFNcNfC3std12experimental6logger4core6LoggerZS3std12experimental6logger4core8MsgRange(%std.experimental.logger.core.MsgRange*, %std.experimental.logger.core.Logger*) * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * Building type: ref @safe MsgRange(Logger log) * * * * * * * * * * * * * * * * * * DtoFunctionType(ref @safe MsgRange(Logger log)) * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * Final function type: %std.experimental.logger.core.MsgRange* (%std.experimental.logger.core.Logger*) * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * %writer = alloca %std.experimental.logger.core.MsgRange, align 8 * * * * * * * * * * * * * * * * * Function type: ref @safe MsgRange(Logger log) * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ std.experimental.logger.core.Logger * * * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/experimental/logger/core.d(978) * * * * * * * * * * * CallExp::toElem: formatString(writer, _param_0()) @ void * * * * * * * * * * * * VarExp::toElem: formatString @ @safe void(MsgRange oRange, string _param_1) * * * * * * * * * * * * * DtoSymbolAddress ('formatString' of type '@safe void(MsgRange oRange, string _param_1)') * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * DtoFunctionType(@safe void(MsgRange oRange, string _param_1)) * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * Final function type: void ({ i64, i8* }, %std.experimental.logger.core.MsgRange*) * * * * * * * * * * * * * * DtoResolveFunction(std.experimental.logger.core.formatString!(string).formatString): /usr/include/dlang/ldc/std/experimental/logger/core.d(679) * * * * * * * * * * * * * * * DtoDeclareFunction(std.experimental.logger.core.formatString!(string).formatString): /usr/include/dlang/ldc/std/experimental/logger/core.d(679) * * * * * * * * * * * * * * * * DtoFunctionType(@safe void(MsgRange oRange, string _param_1)) * * * * * * * * * * * * * * * * func = declare void @_D3std12experimental6logger4core22__T12formatStringTAyaZ12formatStringFNfS3std12experimental6logger4core8MsgRangeAyaZv({ i64, i8* }, %std.experimental.logger.core.MsgRange*) * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * Building type: @safe void(MsgRange oRange, string _param_1) * * * * * * * * * * * * * * DtoFunctionType(@safe void(MsgRange oRange, string _param_1)) * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * Final function type: void ({ i64, i8* }, %std.experimental.logger.core.MsgRange*) * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * Function type: @safe void(MsgRange oRange, string _param_1) * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * VarExp::toElem: writer @ MsgRange * * * * * * * * * * * * * * * DtoSymbolAddress ('writer' of type 'MsgRange') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * CallExp::toElem: _param_0() @ string * * * * * * * * * * * * * * * VarExp::toElem: _param_0 @ string delegate() pure @safe * * * * * * * * * * * * * * * * DtoSymbolAddress ('_param_0' of type 'string') * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * type: string * * * * * * * * * * * * * * * * * lazy parameter * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * Building type: string delegate() pure @safe * * * * * * * * * * * * * * * * * DtoFunctionType(pure @safe string()) * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * Final function type: { i64, i8* } (i8*) * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * %.ptr = load i8*, i8** %25 * * * * * * * * * * * * * * * * Function type: pure @safe string() * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/experimental/logger/core.d(980) * * * * * * * * * * * CallExp::toElem: this.finishLogMsg() @ void * * * * * * * * * * * * DotVarExp::toElem: this.finishLogMsg @ @safe void() * * * * * * * * * * * * * ThisExp::toElem: this @ std.experimental.logger.core.Logger * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * isMember = this is: std.experimental.logger.core.Logger * * * * * * * * * * * * * DtoFunctionType(@safe void()) * * * * * * * * * * * * * DtoResolveFunction(std.experimental.logger.core.Logger.finishLogMsg): /usr/include/dlang/ldc/std/experimental/logger/core.d(854) * * * * * * * * * * * * * * DtoDeclareFunction(std.experimental.logger.core.Logger.finishLogMsg): /usr/include/dlang/ldc/std/experimental/logger/core.d(854) * * * * * * * * * * * * * * * isMember = this is: std.experimental.logger.core.Logger * * * * * * * * * * * * * * * DtoFunctionType(@safe void()) * * * * * * * * * * * * * * * func = declare void @_D3std12experimental6logger4core6Logger12finishLogMsgMFNfZv(%std.experimental.logger.core.Logger*) * * * * * * * * * * * * * vthis: %27 = load %std.experimental.logger.core.Logger*, %std.experimental.logger.core.Logger** %this * * * * * * * * * * * * * funcval: %30 = load void (%std.experimental.logger.core.Logger*)*, void (%std.experimental.logger.core.Logger*)** %"this.finishLogMsg@vtbl", align 8 * * * * * * * * * * * * * isMember = this is: std.experimental.logger.core.Logger * * * * * * * * * * * * * DtoFunctionType(@safe void()) * * * * * * * * * * * * * funcval casted: %this.finishLogMsg = load void (%std.experimental.logger.core.Logger*)*, void (%std.experimental.logger.core.Logger*)** %"this.finishLogMsg@vtbl", align 8 * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * Building type: @safe void() * * * * * * * * * * * * * * DtoFunctionType(@safe void()) * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * Final function type: void () * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * %30 = load %std.experimental.logger.core.Logger*, %std.experimental.logger.core.Logger** %this * * * * * * * * * * * * * Function type: @safe void() * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/experimental/logger/core.d(983) * * * * * * * * * * * CallExp::toElem: this.fatalHandler_() @ void * * * * * * * * * * * * DotVarExp::toElem: this.fatalHandler_ @ void delegate() @safe * * * * * * * * * * * * * ThisExp::toElem: this @ std.experimental.logger.core.Logger * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * Indexing aggregate field std.experimental.logger.core.Logger.fatalHandler_: * * * * * * * * * * * * * * Value: %32 = getelementptr %std.experimental.logger.core.Logger, %std.experimental.logger.core.Logger* %31, i32 0, i32 2 * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * %.ptr11 = load i8*, i8** %34 * * * * * * * * * * * * * Function type: @safe void() * TemplateInstance::codegen: 'std.experimental.logger.core.isLoggingEnabled!()' * * DtoDefineFunction(std.experimental.logger.core.isLoggingEnabled!().isLoggingEnabled): /usr/include/dlang/ldc/std/experimental/logger/core.d(79) * * * Doing function body for: isLoggingEnabled * * * Building type: LogLevel * * * Building type: LogLevel * * * Building type: LogLevel * * * DtoCreateNestedContext for isLoggingEnabled * * * * DtoCreateNestedContextType for std.experimental.logger.core.isLoggingEnabled!().isLoggingEnabled * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/experimental/logger/core.d(81) * * * * * SwitchStatement::toIR(): /usr/include/dlang/ldc/std/experimental/logger/core.d(82) * * * * * * has default * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/experimental/logger/core.d(83) * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/experimental/logger/core.d(83) * * * * * * * * CaseStatement::toIR(): /usr/include/dlang/ldc/std/experimental/logger/core.d(84) * * * * * * * * * IntegerExp::toConstElem: 32 @ int * * * * * * * * * * value = i32 32 * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/experimental/logger/core.d(84) * * * * * * * * * * BreakStatement::toIR(): /usr/include/dlang/ldc/std/experimental/logger/core.d(86) * * * * * * * * CaseStatement::toIR(): /usr/include/dlang/ldc/std/experimental/logger/core.d(87) * * * * * * * * * IntegerExp::toConstElem: 64 @ int * * * * * * * * * * value = i32 64 * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/experimental/logger/core.d(87) * * * * * * * * * * BreakStatement::toIR(): /usr/include/dlang/ldc/std/experimental/logger/core.d(89) * * * * * * * * CaseStatement::toIR(): /usr/include/dlang/ldc/std/experimental/logger/core.d(90) * * * * * * * * * IntegerExp::toConstElem: 96 @ int * * * * * * * * * * value = i32 96 * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/experimental/logger/core.d(90) * * * * * * * * * * BreakStatement::toIR(): /usr/include/dlang/ldc/std/experimental/logger/core.d(92) * * * * * * * * CaseStatement::toIR(): /usr/include/dlang/ldc/std/experimental/logger/core.d(93) * * * * * * * * * IntegerExp::toConstElem: 160 @ int * * * * * * * * * * value = i32 160 * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/experimental/logger/core.d(93) * * * * * * * * * * BreakStatement::toIR(): /usr/include/dlang/ldc/std/experimental/logger/core.d(95) * * * * * * * * CaseStatement::toIR(): /usr/include/dlang/ldc/std/experimental/logger/core.d(96) * * * * * * * * * IntegerExp::toConstElem: 192 @ int * * * * * * * * * * value = i32 192 * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/experimental/logger/core.d(96) * * * * * * * * * * BreakStatement::toIR(): /usr/include/dlang/ldc/std/experimental/logger/core.d(98) * * * * * * * * DefaultStatement::toIR(): /usr/include/dlang/ldc/std/experimental/logger/core.d(99) * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/experimental/logger/core.d(99) * * * * * * * * * * BreakStatement::toIR(): /usr/include/dlang/ldc/std/experimental/logger/core.d(99) * * * * * * CastExp::toElem: cast(int)ll @ int * * * * * * * VarExp::toElem: ll @ LogLevel * * * * * * * * DtoSymbolAddress ('ll' of type 'LogLevel') * * * * * * * * * function param * * * * * * * * * type: LogLevel * * * * * * * Casting from 'ubyte' to 'int' * * * * * * * * cast to: i32 * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/experimental/logger/core.d(102) * * * * * * AndAndExp::toElem: cast(int)ll >= cast(int)globalLL && cast(int)ll >= cast(int)loggerLL && cast(int)ll != 255 && cast(int)globalLL != 255 && cast(int)loggerLL != 255 && condition() @ bool * * * * * * * AndAndExp::toElem: cast(int)ll >= cast(int)globalLL && cast(int)ll >= cast(int)loggerLL && cast(int)ll != 255 && cast(int)globalLL != 255 && cast(int)loggerLL != 255 @ bool * * * * * * * * AndAndExp::toElem: cast(int)ll >= cast(int)globalLL && cast(int)ll >= cast(int)loggerLL && cast(int)ll != 255 && cast(int)globalLL != 255 @ bool * * * * * * * * * AndAndExp::toElem: cast(int)ll >= cast(int)globalLL && cast(int)ll >= cast(int)loggerLL && cast(int)ll != 255 @ bool * * * * * * * * * * AndAndExp::toElem: cast(int)ll >= cast(int)globalLL && cast(int)ll >= cast(int)loggerLL @ bool * * * * * * * * * * * CmpExp::toElem: cast(int)ll >= cast(int)globalLL @ bool * * * * * * * * * * * * CastExp::toElem: cast(int)ll @ int * * * * * * * * * * * * * VarExp::toElem: ll @ LogLevel * * * * * * * * * * * * * * DtoSymbolAddress ('ll' of type 'LogLevel') * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * type: LogLevel * * * * * * * * * * * * * Casting from 'ubyte' to 'int' * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * CastExp::toElem: cast(int)globalLL @ int * * * * * * * * * * * * * VarExp::toElem: globalLL @ LogLevel * * * * * * * * * * * * * * DtoSymbolAddress ('globalLL' of type 'LogLevel') * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * type: LogLevel * * * * * * * * * * * * * Casting from 'ubyte' to 'int' * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * type 1: %4 = zext i8 %3 to i32 * * * * * * * * * * * * type 2: %6 = zext i8 %5 to i32 * * * * * * * * * * * CmpExp::toElem: cast(int)ll >= cast(int)loggerLL @ bool * * * * * * * * * * * * CastExp::toElem: cast(int)ll @ int * * * * * * * * * * * * * VarExp::toElem: ll @ LogLevel * * * * * * * * * * * * * * DtoSymbolAddress ('ll' of type 'LogLevel') * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * type: LogLevel * * * * * * * * * * * * * Casting from 'ubyte' to 'int' * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * CastExp::toElem: cast(int)loggerLL @ int * * * * * * * * * * * * * VarExp::toElem: loggerLL @ LogLevel * * * * * * * * * * * * * * DtoSymbolAddress ('loggerLL' of type 'LogLevel') * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * type: LogLevel * * * * * * * * * * * * * Casting from 'ubyte' to 'int' * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * type 1: %9 = zext i8 %8 to i32 * * * * * * * * * * * * type 2: %11 = zext i8 %10 to i32 * * * * * * * * * * EqualExp::toElem: cast(int)ll != 255 @ bool * * * * * * * * * * * CastExp::toElem: cast(int)ll @ int * * * * * * * * * * * * VarExp::toElem: ll @ LogLevel * * * * * * * * * * * * * DtoSymbolAddress ('ll' of type 'LogLevel') * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * type: LogLevel * * * * * * * * * * * * Casting from 'ubyte' to 'int' * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * IntegerExp::toElem: 255 @ int * * * * * * * * * * * * IntegerExp::toConstElem: 255 @ int * * * * * * * * * * * * * value = i32 255 * * * * * * * * * * * integral or pointer or interface * * * * * * * * * * * lv: %14 = zext i8 %13 to i32 * * * * * * * * * * * rv: i32 255 * * * * * * * * * EqualExp::toElem: cast(int)globalLL != 255 @ bool * * * * * * * * * * CastExp::toElem: cast(int)globalLL @ int * * * * * * * * * * * VarExp::toElem: globalLL @ LogLevel * * * * * * * * * * * * DtoSymbolAddress ('globalLL' of type 'LogLevel') * * * * * * * * * * * * * function param * * * * * * * * * * * * * type: LogLevel * * * * * * * * * * * Casting from 'ubyte' to 'int' * * * * * * * * * * * * cast to: i32 * * * * * * * * * * IntegerExp::toElem: 255 @ int * * * * * * * * * * * IntegerExp::toConstElem: 255 @ int * * * * * * * * * * * * value = i32 255 * * * * * * * * * * integral or pointer or interface * * * * * * * * * * lv: %17 = zext i8 %16 to i32 * * * * * * * * * * rv: i32 255 * * * * * * * * EqualExp::toElem: cast(int)loggerLL != 255 @ bool * * * * * * * * * CastExp::toElem: cast(int)loggerLL @ int * * * * * * * * * * VarExp::toElem: loggerLL @ LogLevel * * * * * * * * * * * DtoSymbolAddress ('loggerLL' of type 'LogLevel') * * * * * * * * * * * * function param * * * * * * * * * * * * type: LogLevel * * * * * * * * * * Casting from 'ubyte' to 'int' * * * * * * * * * * * cast to: i32 * * * * * * * * * IntegerExp::toElem: 255 @ int * * * * * * * * * * IntegerExp::toConstElem: 255 @ int * * * * * * * * * * * value = i32 255 * * * * * * * * * integral or pointer or interface * * * * * * * * * lv: %20 = zext i8 %19 to i32 * * * * * * * * * rv: i32 255 * * * * * * * CallExp::toElem: condition() @ bool * * * * * * * * VarExp::toElem: condition @ bool delegate() pure @safe * * * * * * * * * DtoSymbolAddress ('condition' of type 'bool') * * * * * * * * * * function param * * * * * * * * * * type: bool * * * * * * * * * * lazy parameter * * * * * * * * DtoCallFunction() * * * * * * * * * Building type: bool delegate() pure @safe * * * * * * * * * * DtoFunctionType(pure @safe bool()) * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * Final function type: i1 (i8*) * * * * * * * * * doing normal arguments * * * * * * * * * Arguments so far: (1) * * * * * * * * * * %.ptr = load i8*, i8** %23 * * * * * * * * * Function type: pure @safe bool() * * * * * * return value is '0x130c9e28' * TemplateInstance::codegen: 'std.experimental.logger.core.formatString!(string)' * * DtoDefineFunction(std.experimental.logger.core.formatString!(string).formatString): /usr/include/dlang/ldc/std/experimental/logger/core.d(679) * * * Doing function body for: formatString * * * DtoCreateNestedContext for formatString * * * * DtoCreateNestedContextType for std.experimental.logger.core.formatString!(string).formatString * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/experimental/logger/core.d(680) * * * * * UnrolledLoopStatement::toIR(): /usr/include/dlang/ldc/std/experimental/logger/core.d(683) * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/experimental/logger/core.d(683) * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/experimental/logger/core.d(683) * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/experimental/logger/core.d(683) * * * * * * * * * DeclarationExp::toElem: string arg = _param_1; | T=void * * * * * * * * * * DtoDeclarationExp: arg * * * * * * * * * * * VarDeclaration * * * * * * * * * * * DtoVarDeclaration(vdtype = string) * * * * * * * * * * * * llvm value for decl: %arg = alloca { i64, i8* }, align 8 * * * * * * * * * * * * expression initializer * * * * * * * * * * * * AssignExp::toElem: arg = _param_1 | (string)(string = string) * * * * * * * * * * * * * VarExp::toElem: arg @ string * * * * * * * * * * * * * * DtoSymbolAddress ('arg' of type 'string') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * VarExp::toElem: _param_1 @ string * * * * * * * * * * * * * * DtoSymbolAddress ('_param_1' of type 'string') * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * type: string * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * SetArray * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/experimental/logger/core.d(685) * * * * * * * * * CallExp::toElem: formattedWrite(oRange, "%s", arg) @ uint * * * * * * * * * * VarExp::toElem: formattedWrite @ @safe uint(MsgRange w, const(char[]) fmt, string _param_2) * * * * * * * * * * * DtoSymbolAddress ('formattedWrite' of type '@safe uint(MsgRange w, const(char[]) fmt, string _param_2)') * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * Building type: @safe uint(MsgRange w, const(char[]) fmt, string _param_2) * * * * * * * * * * * * DtoFunctionType(@safe uint(MsgRange w, const(char[]) fmt, string _param_2)) * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * Final function type: i32 ({ i64, i8* }, { i64, i8* }, %std.experimental.logger.core.MsgRange*) * * * * * * * * * * * doing normal arguments * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * Function type: @safe uint(MsgRange w, const(char[]) fmt, string _param_2) * * * * * * * * * * * DtoArgument * * * * * * * * * * * * VarExp::toElem: oRange @ MsgRange * * * * * * * * * * * * * DtoSymbolAddress ('oRange' of type 'MsgRange') * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * type: MsgRange * * * * * * * * * * * DtoArgument * * * * * * * * * * * * StringExp::toElem: "%s" @ const(char[]) * * * * * * * * * * * * * type: [3 x i8] * * * * * * * * * * * * * init: [3 x i8] c"%s\00" * * * * * * * * * * * DtoArgument * * * * * * * * * * * * VarExp::toElem: arg @ string * * * * * * * * * * * * * DtoSymbolAddress ('arg' of type 'string') * * * * * * * * * * * * * * a normal variable * TemplateInstance::codegen: 'std.experimental.logger.core.MsgRange.put!string' * * DtoDefineFunction(std.experimental.logger.core.MsgRange.put!string.put): /usr/include/dlang/ldc/std/experimental/logger/core.d(665) * * * Doing function body for: put * * * DtoCreateNestedContext for put * * * * DtoCreateNestedContextType for std.experimental.logger.core.MsgRange.put!string.put * * * CompoundStatement::toIR(): * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/experimental/logger/core.d(668) * * * * * CallExp::toElem: this.log.logMsgPart(cast(const(char)[])msg) @ void * * * * * * DotVarExp::toElem: this.log.logMsgPart @ @safe void(const(char)[] msg) * * * * * * * DotVarExp::toElem: this.log @ std.experimental.logger.core.Logger * * * * * * * * ThisExp::toElem: this @ MsgRange * * * * * * * * * normal this exp * * * * * * * * Indexing aggregate field std.experimental.logger.core.MsgRange.log: * * * * * * * * * Resolving struct type: MsgRange (/usr/include/dlang/ldc/std/experimental/logger/core.d(652)) * * * * * * * * * Value: %1 = getelementptr %std.experimental.logger.core.MsgRange, %std.experimental.logger.core.MsgRange* %.this_arg, i32 0, i32 0 * * * * * * * isMember = this is: std.experimental.logger.core.Logger * * * * * * * DtoFunctionType(@safe void(const(char)[] msg)) * * * * * * * DtoResolveFunction(std.experimental.logger.core.Logger.logMsgPart): /usr/include/dlang/ldc/std/experimental/logger/core.d(844) * * * * * * * * DtoDeclareFunction(std.experimental.logger.core.Logger.logMsgPart): /usr/include/dlang/ldc/std/experimental/logger/core.d(844) * * * * * * * * * isMember = this is: std.experimental.logger.core.Logger * * * * * * * * * DtoFunctionType(@safe void(const(char)[] msg)) * * * * * * * * * func = declare void @_D3std12experimental6logger4core6Logger10logMsgPartMFNfAxaZv(%std.experimental.logger.core.Logger*, { i64, i8* }) * * * * * * * vthis: %2 = load %std.experimental.logger.core.Logger*, %std.experimental.logger.core.Logger** %1 * * * * * * * funcval: %5 = load void (%std.experimental.logger.core.Logger*, { i64, i8* })*, void (%std.experimental.logger.core.Logger*, { i64, i8* })** %"this.log.logMsgPart@vtbl", align 8 * * * * * * * isMember = this is: std.experimental.logger.core.Logger * * * * * * * DtoFunctionType(@safe void(const(char)[] msg)) * * * * * * * funcval casted: %this.log.logMsgPart = load void (%std.experimental.logger.core.Logger*, { i64, i8* })*, void (%std.experimental.logger.core.Logger*, { i64, i8* })** %"this.log.logMsgPart@vtbl", align 8 * * * * * * DtoCallFunction() * * * * * * * Building type: @safe void(const(char)[] msg) * * * * * * * * DtoFunctionType(@safe void(const(char)[] msg)) * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * Final function type: void ({ i64, i8* }) * * * * * * * doing normal arguments * * * * * * * Arguments so far: (1) * * * * * * * * %5 = load %std.experimental.logger.core.Logger*, %std.experimental.logger.core.Logger** %1 * * * * * * * Function type: @safe void(const(char)[] msg) * * * * * * * DtoArgument * * * * * * * * CastExp::toElem: cast(const(char)[])msg @ const(char)[] * * * * * * * * * VarExp::toElem: msg @ string * * * * * * * * * * DtoSymbolAddress ('msg' of type 'string') * * * * * * * * * * * function param * * * * * * * * * * * type: string * * * * * * * * * Casting from 'string' to 'const(char)[]' * * * * * * * * * * DtoCastArray * * * * * * * * * * * from array or sarray * * * * * * * * * * * to array * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * isslice * TemplateInstance::codegen: 'std.experimental.logger.core.MsgRange.put!(char[])' * * DtoDefineFunction(std.experimental.logger.core.MsgRange.put!(char[]).put): /usr/include/dlang/ldc/std/experimental/logger/core.d(665) * * * Doing function body for: put * * * DtoCreateNestedContext for put * * * * DtoCreateNestedContextType for std.experimental.logger.core.MsgRange.put!(char[]).put * * * CompoundStatement::toIR(): * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/experimental/logger/core.d(668) * * * * * CallExp::toElem: this.log.logMsgPart(msg) @ void * * * * * * DotVarExp::toElem: this.log.logMsgPart @ @safe void(const(char)[] msg) * * * * * * * DotVarExp::toElem: this.log @ std.experimental.logger.core.Logger * * * * * * * * ThisExp::toElem: this @ MsgRange * * * * * * * * * normal this exp * * * * * * * * Indexing aggregate field std.experimental.logger.core.MsgRange.log: * * * * * * * * * Value: %1 = getelementptr %std.experimental.logger.core.MsgRange, %std.experimental.logger.core.MsgRange* %.this_arg, i32 0, i32 0 * * * * * * * vthis: %2 = load %std.experimental.logger.core.Logger*, %std.experimental.logger.core.Logger** %1 * * * * * * * funcval: %5 = load void (%std.experimental.logger.core.Logger*, { i64, i8* })*, void (%std.experimental.logger.core.Logger*, { i64, i8* })** %"this.log.logMsgPart@vtbl", align 8 * * * * * * * isMember = this is: std.experimental.logger.core.Logger * * * * * * * DtoFunctionType(@safe void(const(char)[] msg)) * * * * * * * funcval casted: %this.log.logMsgPart = load void (%std.experimental.logger.core.Logger*, { i64, i8* })*, void (%std.experimental.logger.core.Logger*, { i64, i8* })** %"this.log.logMsgPart@vtbl", align 8 * * * * * * DtoCallFunction() * * * * * * * doing normal arguments * * * * * * * Arguments so far: (1) * * * * * * * * %5 = load %std.experimental.logger.core.Logger*, %std.experimental.logger.core.Logger** %1 * * * * * * * Function type: @safe void(const(char)[] msg) * * * * * * * DtoArgument * * * * * * * * VarExp::toElem: msg @ const(char)[] * * * * * * * * * DtoSymbolAddress ('msg' of type 'char[]') * * * * * * * * * * function param * * * * * * * * * * type: char[] * TemplateInstance::codegen: 'std.experimental.logger.core.MsgRange.put!(const(char)[])' * * DtoDefineFunction(std.experimental.logger.core.MsgRange.put!(const(char)[]).put): /usr/include/dlang/ldc/std/experimental/logger/core.d(665) * * * Doing function body for: put * * * DtoCreateNestedContext for put * * * * DtoCreateNestedContextType for std.experimental.logger.core.MsgRange.put!(const(char)[]).put * * * CompoundStatement::toIR(): * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/experimental/logger/core.d(668) * * * * * CallExp::toElem: this.log.logMsgPart(msg) @ void * * * * * * DotVarExp::toElem: this.log.logMsgPart @ @safe void(const(char)[] msg) * * * * * * * DotVarExp::toElem: this.log @ std.experimental.logger.core.Logger * * * * * * * * ThisExp::toElem: this @ MsgRange * * * * * * * * * normal this exp * * * * * * * * Indexing aggregate field std.experimental.logger.core.MsgRange.log: * * * * * * * * * Value: %1 = getelementptr %std.experimental.logger.core.MsgRange, %std.experimental.logger.core.MsgRange* %.this_arg, i32 0, i32 0 * * * * * * * vthis: %2 = load %std.experimental.logger.core.Logger*, %std.experimental.logger.core.Logger** %1 * * * * * * * funcval: %5 = load void (%std.experimental.logger.core.Logger*, { i64, i8* })*, void (%std.experimental.logger.core.Logger*, { i64, i8* })** %"this.log.logMsgPart@vtbl", align 8 * * * * * * * isMember = this is: std.experimental.logger.core.Logger * * * * * * * DtoFunctionType(@safe void(const(char)[] msg)) * * * * * * * funcval casted: %this.log.logMsgPart = load void (%std.experimental.logger.core.Logger*, { i64, i8* })*, void (%std.experimental.logger.core.Logger*, { i64, i8* })** %"this.log.logMsgPart@vtbl", align 8 * * * * * * DtoCallFunction() * * * * * * * doing normal arguments * * * * * * * Arguments so far: (1) * * * * * * * * %5 = load %std.experimental.logger.core.Logger*, %std.experimental.logger.core.Logger** %1 * * * * * * * Function type: @safe void(const(char)[] msg) * * * * * * * DtoArgument * * * * * * * * VarExp::toElem: msg @ const(char)[] * * * * * * * * * DtoSymbolAddress ('msg' of type 'const(char)[]') * * * * * * * * * * function param * * * * * * * * * * type: const(char)[] * TemplateInstance::codegen: 'client.client.main.map!((a) => absolutePath(a))' * * Ignoring Dsymbol::codegen for client.client.main.map!((a) => absolutePath(a)).map(Range)(Range r) if (isInputRange!(Unqual!Range)) * TemplateInstance::codegen: 'client.client.main.map!((a) => absolutePath(a)).map!(string[])' * * DtoDefineFunction(client.client.main.map!((a) => absolutePath(a)).map!(string[]).map): /usr/include/dlang/ldc/std/algorithm/iteration.d(431) * * * Doing function body for: map * * * DtoCreateNestedContext for map * * * * DtoCreateNestedContextType for client.client.main.map!((a) => absolutePath(a)).map!(string[]).map * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/iteration.d(432) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/iteration.d(435) * * * * * * DeclarationExp::toElem: template AppliedReturnType(alias f) | T=void * * * * * * * DtoDeclarationExp: AppliedReturnType(alias f) * * * * * * * * Ignoring Symbol: template * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/iteration.d(451) * * * * * * DeclarationExp::toElem: alias _fun = template __lambda4(__T1); | T=void * * * * * * * DtoDeclarationExp: _fun * * * * * * * * Ignoring Symbol: alias * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/iteration.d(457) * * * * * * CallExp::toElem: MapResult(null).this(r) @ MapResult!(__lambda4, string[]) * * * * * * * DotVarExp::toElem: MapResult(null).this @ pure nothrow @nogc ref @safe MapResult!(__lambda4, string[])(string[] input) * * * * * * * * StructLiteralExp::toElem: MapResult(null) @ MapResult!(__lambda4, string[]) * * * * * * * * * Resolving struct type: MapResult (/usr/include/dlang/ldc/std/algorithm/iteration.d(504)) * * * * * * * * * initializing field: string[] _input (+0) * * * * * * * * * * expr 0 = null * * * * * * * * * * NullExp::toElem(type=string[]): null * * * * * * * * * * * NullExp::toConstElem(type=string[]): null * * * * * * * * * * Indexing aggregate field client.client.main.MapResult!(__lambda4, string[]).MapResult._input: * * * * * * * * * * * Value: %1 = getelementptr %"client.client.main.MapResult!(__lambda4, string[]).MapResult", %"client.client.main.MapResult!(__lambda4, string[]).MapResult"* %.structliteral, i32 0, i32 0 * * * * * * * * * * DtoAssign() * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * DtoSetArrayToNull * * * * * * * * * initializing field: void* this (+16) * * * * * * * * * * initializing vthis * * * * * * * * * * * DtoNestedContext for client.client.main.MapResult!(__lambda4, string[]).MapResult * * * * * * * * * * * * result = %2 = load i8*, i8** %nestedFrame * * * * * * * * * * * * of type i8* * * * * * * * * * * Indexing aggregate field client.client.main.MapResult!(__lambda4, string[]).MapResult.this: * * * * * * * * * * * Value: %3 = getelementptr %"client.client.main.MapResult!(__lambda4, string[]).MapResult", %"client.client.main.MapResult!(__lambda4, string[]).MapResult"* %.structliteral, i32 0, i32 1 * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %3 = getelementptr %"client.client.main.MapResult!(__lambda4, string[]).MapResult", %"client.client.main.MapResult!(__lambda4, string[]).MapResult"* %.structliteral, i32 0, i32 1 * * * * * * * * * * * rhs: %2 = load i8*, i8** %nestedFrame * * * * * * * * isMember = this is: MapResult!(__lambda4, string[]) * * * * * * * * DtoFunctionType(pure nothrow @nogc ref @safe MapResult!(__lambda4, string[])(string[] input)) * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * Final function type: %"client.client.main.MapResult!(__lambda4, string[]).MapResult"* (%"client.client.main.MapResult!(__lambda4, string[]).MapResult"*, { i64, { i64, i8* }* }) * * * * * * * * DtoResolveFunction(client.client.main.MapResult!(__lambda4, string[]).MapResult.this): /usr/include/dlang/ldc/std/algorithm/iteration.d(522) * * * * * * * * * DtoDeclareFunction(client.client.main.MapResult!(__lambda4, string[]).MapResult.this): /usr/include/dlang/ldc/std/algorithm/iteration.d(522) * * * * * * * * * * isMember = this is: MapResult!(__lambda4, string[]) * * * * * * * * * * DtoFunctionType(pure nothrow @nogc ref @safe MapResult!(__lambda4, string[])(string[] input)) * * * * * * * * * * func = declare %"client.client.main.MapResult!(__lambda4, string[]).MapResult"* @_D3std9algorithm9iteration57__T9MapResultS356client6client4mainFAAyaZ9__lambda4TAAyaZ9MapResult6__ctorMFNaNbNcNiNfAAyaZS3std9algorithm9iteration57__T9MapResultS356client6client4mainFAAyaZ9__lambda4TAAyaZ9MapResult(%"client.client.main.MapResult!(__lambda4, string[]).MapResult"*, { i64, { i64, i8* }* }) * * * * * * * DtoCallFunction() * * * * * * * * Building type: pure nothrow @nogc ref @safe MapResult!(__lambda4, string[])(string[] input) * * * * * * * * * DtoFunctionType(pure nothrow @nogc ref @safe MapResult!(__lambda4, string[])(string[] input)) * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: %"client.client.main.MapResult!(__lambda4, string[]).MapResult"* ({ i64, { i64, i8* }* }) * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (1) * * * * * * * * * %.structliteral = alloca %"client.client.main.MapResult!(__lambda4, string[]).MapResult", align 8 * * * * * * * * Function type: pure nothrow @nogc ref @safe MapResult!(__lambda4, string[])(string[] input) * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: r @ string[] * * * * * * * * * * DtoSymbolAddress ('r' of type 'string[]') * * * * * * * * * * * function param * * * * * * * * * * * type: string[] * * * * * * DtoAssign() * TemplateInstance::codegen: 'client.client.main.unaryFun!((a) => absolutePath(a), "a")' * * Ignoring Dsymbol::codegen for client.client.main.unaryFun!((a) => absolutePath(a), "a").unaryFun * TemplateInstance::codegen: 'client.client.main.needOpCallAlias!(__lambda4)' * * VarDeclaration::codegen(): 'client.client.main.needOpCallAlias!(__lambda4).needOpCallAlias' * * * DtoResolveVariable(client.client.main.needOpCallAlias!(__lambda4).needOpCallAlias) * TemplateInstance::codegen: 'client.client.main.map!((a) => absolutePath(a)).map!(string[]).map.AppliedReturnType!(__lambda4)' * TemplateInstance::codegen: 'client.client.main.__lambda4!string' * * DtoDefineFunction(client.client.main.__lambda4): src/client/client.d(134) * * * DtoFunctionType(pure @safe string(string a)) * * * * x86-64 ABI: Transforming return type * * * * x86-64 ABI: Transforming argument types * * * * Final function type: { i64, i8* } ({ i64, i8* }) * * * DtoResolveFunction(client.client.main.__lambda4): src/client/client.d(134) * * * * DtoDeclareFunction(client.client.main.__lambda4): src/client/client.d(134) * * * * * DtoFunctionType(pure @safe string(string a)) * * * * * func = declare { i64, i8* } @_D6client6client4mainFAAyaZ18__T9__lambda4TAyaZ9__lambda4FNaNfAyaZAya({ i64, i8* }) * * * Doing function body for: __lambda4 * * * DtoCreateNestedContext for __lambda4 * * * * DtoCreateNestedContextType for client.client.main.__lambda4 * * * CompoundStatement::toIR(): * * * * ReturnStatement::toIR(): src/client/client.d(134) * * * * * CallExp::toElem: absolutePath(a, delegate string() => getcwd()) @ string * * * * * * VarExp::toElem: absolutePath @ pure @safe string(string path, lazy string base = getcwd()) * * * * * * * DtoSymbolAddress ('absolutePath' of type 'pure @safe string(string path, lazy string base = getcwd())') * * * * * * * * FuncDeclaration * * * * * * * * DtoFunctionType(pure @safe string(string path, lazy string base = getcwd())) * * * * * * * * * lazy param * * * * * * * * * Building type: string delegate() * * * * * * * * * * DtoFunctionType(string()) * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * Final function type: { i64, i8* } (i8*) * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * Final function type: { i64, i8* } ({ i8*, { i64, i8* } (i8*)* }, { i64, i8* }) * * * * * * * * DtoResolveFunction(std.path.absolutePath): /usr/include/dlang/ldc/std/path.d(2037) * * * * * * * * * DtoDeclareFunction(std.path.absolutePath): /usr/include/dlang/ldc/std/path.d(2037) * * * * * * * * * * DtoFunctionType(pure @safe string(string path, lazy string base = getcwd())) * * * * * * * * * * func = declare { i64, i8* } @_D3std4path12absolutePathFNaNfAyaLAyaZAya({ i8*, { i64, i8* } (i8*)* }, { i64, i8* }) * * * * * * DtoCallFunction() * * * * * * * Building type: pure @safe string(string path, lazy string base = getcwd()) * * * * * * * * DtoFunctionType(pure @safe string(string path, lazy string base = getcwd())) * * * * * * * * * lazy param * * * * * * * * * Building type: string delegate() * * * * * * * * * * DtoFunctionType(string()) * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * Final function type: { i64, i8* } (i8*) * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * Final function type: { i64, i8* } ({ i8*, { i64, i8* } (i8*)* }, { i64, i8* }) * * * * * * * doing normal arguments * * * * * * * Arguments so far: (0) * * * * * * * Function type: pure @safe string(string path, lazy string base = getcwd()) * * * * * * * DtoArgument * * * * * * * * VarExp::toElem: a @ string * * * * * * * * * DtoSymbolAddress ('a' of type 'string') * * * * * * * * * * function param * * * * * * * * * * type: string * * * * * * * DtoArgument * * * * * * * * FuncExp::toElem: __dgliteral2 @ string delegate() pure @nogc @safe * * * * * * * * * nested * * * * * * * * * kind = delegate * * * * * * * * * DtoDefineFunction(client.client.main.__lambda4!string.__lambda4.__dgliteral2): /usr/include/dlang/ldc/std/path.d(2037) * * * * * * * * * * DtoFunctionType(pure @nogc @safe string()) * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * Final function type: { i64, i8* } (i8*) * * * * * * * * * * DtoResolveFunction(client.client.main.__lambda4!string.__lambda4.__dgliteral2): /usr/include/dlang/ldc/std/path.d(2037) * * * * * * * * * * * DtoDeclareFunction(client.client.main.__lambda4!string.__lambda4.__dgliteral2): /usr/include/dlang/ldc/std/path.d(2037) * * * * * * * * * * * * DtoFunctionType(pure @nogc @safe string()) * * * * * * * * * * * * func = declare { i64, i8* } @_D6client6client4mainFAAyaZ18__T9__lambda4TAyaZ9__lambda4FAyaZ12__dgliteral2MFNaNiNfZAya(i8*) * * * * * * * * * * Doing function body for: __dgliteral2 * * * * * * * * * * DtoCreateNestedContext for __dgliteral2 * * * * * * * * * * * DtoCreateNestedContextType for client.client.main.__lambda4!string.__lambda4.__dgliteral2 * * * * * * * * * * * * DtoCreateNestedContextType for client.client.main.__lambda4 * * * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/path.d(2037) * * * * * * * * * * * * CallExp::toElem: getcwd() @ string * * * * * * * * * * * * * VarExp::toElem: getcwd @ string() * * * * * * * * * * * * * * DtoSymbolAddress ('getcwd' of type 'string()') * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * DtoFunctionType(string()) * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * Final function type: { i64, i8* } () * * * * * * * * * * * * * * * DtoResolveFunction(std.file.getcwd): /usr/include/dlang/ldc/std/file.d(1796) * * * * * * * * * * * * * * * * DtoDeclareFunction(std.file.getcwd): /usr/include/dlang/ldc/std/file.d(1796) * * * * * * * * * * * * * * * * * DtoFunctionType(string()) * * * * * * * * * * * * * * * * * func = declare { i64, i8* } @_D3std4file6getcwdFZAya() * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * Building type: string() * * * * * * * * * * * * * * * DtoFunctionType(string()) * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * Final function type: { i64, i8* } () * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * Function type: string() * * * * * * * * * * * * return value is '0x130da198' * * * * * * * * * Building type: string delegate() pure @nogc @safe * * * * * * * * * * DtoFunctionType(pure @nogc @safe string()) * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * Final function type: { i64, i8* } (i8*) * * * * * return value is '0x130da7c8' * TemplateInstance::codegen: 'client.client.main.MapResult!(__lambda4, string[])' * * StructDeclaration::codegen: 'client.client.main.MapResult!(__lambda4, string[]).MapResult' * * * Ignoring Dsymbol::codegen for client.client.main.MapResult!(__lambda4, string[]).MapResult.R * * * VarDeclaration::codegen(): 'client.client.main.MapResult!(__lambda4, string[]).MapResult._input' * * * * DtoResolveVariable(client.client.main.MapResult!(__lambda4, string[]).MapResult._input) * * * Ignoring Dsymbol::codegen for client.client.main.MapResult!(__lambda4, string[]).MapResult.back()() * * * Ignoring Dsymbol::codegen for client.client.main.MapResult!(__lambda4, string[]).MapResult.popBack()() * * * DtoDefineFunction(client.client.main.MapResult!(__lambda4, string[]).MapResult.this): /usr/include/dlang/ldc/std/algorithm/iteration.d(522) * * * * Doing function body for: this * * * * DtoCreateNestedContext for this * * * * * DtoCreateNestedContextType for client.client.main.MapResult!(__lambda4, string[]).MapResult.this * * * * * * DtoCreateNestedContextType for D main * * * * CompoundStatement::toIR(): * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/iteration.d(522) * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/iteration.d(524) * * * * * * * AssignExp::toElem: this._input = input | (string[])(string[] = string[]) * * * * * * * * DotVarExp::toElem: this._input @ string[] * * * * * * * * * ThisExp::toElem: this @ MapResult!(__lambda4, string[]) * * * * * * * * * * normal this exp * * * * * * * * * Indexing aggregate field client.client.main.MapResult!(__lambda4, string[]).MapResult._input: * * * * * * * * * * Value: %1 = getelementptr %"client.client.main.MapResult!(__lambda4, string[]).MapResult", %"client.client.main.MapResult!(__lambda4, string[]).MapResult"* %.this_arg, i32 0, i32 0 * * * * * * * * VarExp::toElem: input @ string[] * * * * * * * * * DtoSymbolAddress ('input' of type 'string[]') * * * * * * * * * * function param * * * * * * * * * * type: string[] * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * DtoAssign() * * * * * * * * * DtoArrayAssign * * * * * * * * * * DtoArrayPtr * * * * * * * * * * DtoArrayLen * * * * * * * * * * SetArray * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/iteration.d(522) * * * * * * * AddrExp::toElem: &this @ MapResult!(__lambda4, string[])* * * * * * * * * ThisExp::toElem: this @ MapResult!(__lambda4, string[]) * * * * * * * * * this exp without var declaration * * * * * * * * is nothing special * * * * * * * * lval: %"client.client.main.MapResult!(__lambda4, string[]).MapResult"* %.this_arg * * * * * * * return value is '0x130d5820' * * * DtoDefineFunction(client.client.main.MapResult!(__lambda4, string[]).MapResult.empty): /usr/include/dlang/ldc/std/algorithm/iteration.d(534) * * * * Doing function body for: empty * * * * DtoCreateNestedContext for empty * * * * * DtoCreateNestedContextType for client.client.main.MapResult!(__lambda4, string[]).MapResult.empty * * * * * * DtoCreateNestedContextType for D main * * * * CompoundStatement::toIR(): * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/iteration.d(536) * * * * * * CallExp::toElem: empty(this._input) @ bool * * * * * * * VarExp::toElem: empty @ pure nothrow @nogc @property @safe bool(const(string[]) a) * * * * * * * * DtoSymbolAddress ('empty' of type 'pure nothrow @nogc @property @safe bool(const(string[]) a)') * * * * * * * * * FuncDeclaration * * * * * * * DtoCallFunction() * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (0) * * * * * * * * Function type: pure nothrow @nogc @property @safe bool(const(string[]) a) * * * * * * * * DtoArgument * * * * * * * * * DotVarExp::toElem: this._input @ const(string[]) * * * * * * * * * * ThisExp::toElem: this @ MapResult!(__lambda4, string[]) * * * * * * * * * * * normal this exp * * * * * * * * * * Indexing aggregate field client.client.main.MapResult!(__lambda4, string[]).MapResult._input: * * * * * * * * * * * Value: %1 = getelementptr %"client.client.main.MapResult!(__lambda4, string[]).MapResult", %"client.client.main.MapResult!(__lambda4, string[]).MapResult"* %.this_arg, i32 0, i32 0 * * * * * * return value is '0x130dce20' * * * DtoDefineFunction(client.client.main.MapResult!(__lambda4, string[]).MapResult.popFront): /usr/include/dlang/ldc/std/algorithm/iteration.d(540) * * * * Doing function body for: popFront * * * * DtoCreateNestedContext for popFront * * * * * DtoCreateNestedContextType for client.client.main.MapResult!(__lambda4, string[]).MapResult.popFront * * * * * * DtoCreateNestedContextType for D main * * * * CompoundStatement::toIR(): * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/iteration.d(542) * * * * * * CallExp::toElem: popFront(this._input) @ void * * * * * * * VarExp::toElem: popFront @ pure nothrow @nogc @safe void(ref string[] a) * * * * * * * * DtoSymbolAddress ('popFront' of type 'pure nothrow @nogc @safe void(ref string[] a)') * * * * * * * * * FuncDeclaration * * * * * * * DtoCallFunction() * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (0) * * * * * * * * Function type: pure nothrow @nogc @safe void(ref string[] a) * * * * * * * * DtoArgument * * * * * * * * * DotVarExp::toElem: this._input @ string[] * * * * * * * * * * ThisExp::toElem: this @ MapResult!(__lambda4, string[]) * * * * * * * * * * * normal this exp * * * * * * * * * * Indexing aggregate field client.client.main.MapResult!(__lambda4, string[]).MapResult._input: * * * * * * * * * * * Value: %1 = getelementptr %"client.client.main.MapResult!(__lambda4, string[]).MapResult", %"client.client.main.MapResult!(__lambda4, string[]).MapResult"* %.this_arg, i32 0, i32 0 * * * DtoDefineFunction(client.client.main.MapResult!(__lambda4, string[]).MapResult.front): /usr/include/dlang/ldc/std/algorithm/iteration.d(545) * * * * Doing function body for: front * * * * DtoCreateNestedContext for front * * * * * DtoCreateNestedContextType for client.client.main.MapResult!(__lambda4, string[]).MapResult.front * * * * * * DtoCreateNestedContextType for D main * * * * CompoundStatement::toIR(): * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/iteration.d(547) * * * * * * CallExp::toElem: __lambda4(front(this._input)) @ string * * * * * * * VarExp::toElem: __lambda4 @ pure @safe string(string a) * * * * * * * * DtoSymbolAddress ('__lambda4' of type 'pure @safe string(string a)') * * * * * * * * * FuncDeclaration * * * * * * * DtoCallFunction() * * * * * * * * Building type: pure @safe string(string a) * * * * * * * * * DtoFunctionType(pure @safe string(string a)) * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: { i64, i8* } ({ i64, i8* }) * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (0) * * * * * * * * Function type: pure @safe string(string a) * * * * * * * * DtoArgument * * * * * * * * * CallExp::toElem: front(this._input) @ string * * * * * * * * * * VarExp::toElem: front @ pure nothrow @nogc @property ref @safe string(string[] a) * * * * * * * * * * * DtoSymbolAddress ('front' of type 'pure nothrow @nogc @property ref @safe string(string[] a)') * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * doing normal arguments * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * Function type: pure nothrow @nogc @property ref @safe string(string[] a) * * * * * * * * * * * DtoArgument * * * * * * * * * * * * DotVarExp::toElem: this._input @ string[] * * * * * * * * * * * * * ThisExp::toElem: this @ MapResult!(__lambda4, string[]) * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * Indexing aggregate field client.client.main.MapResult!(__lambda4, string[]).MapResult._input: * * * * * * * * * * * * * * Value: %1 = getelementptr %"client.client.main.MapResult!(__lambda4, string[]).MapResult", %"client.client.main.MapResult!(__lambda4, string[]).MapResult"* %.this_arg, i32 0, i32 0 * * * * * * return value is '0x130deb50' * * * Ignoring Dsymbol::codegen for client.client.main.MapResult!(__lambda4, string[]).MapResult.opIndex_t * * * DtoDefineFunction(client.client.main.MapResult!(__lambda4, string[]).MapResult.opIndex): /usr/include/dlang/ldc/std/algorithm/iteration.d(557) * * * * isMember = this is: MapResult!(__lambda4, string[]) * * * * DtoFunctionType(pure @safe string(ulong index)) * * * * * x86-64 ABI: Transforming return type * * * * * x86-64 ABI: Transforming argument types * * * * * Final function type: { i64, i8* } (%"client.client.main.MapResult!(__lambda4, string[]).MapResult"*, i64) * * * * DtoResolveFunction(client.client.main.MapResult!(__lambda4, string[]).MapResult.opIndex): /usr/include/dlang/ldc/std/algorithm/iteration.d(557) * * * * * DtoDeclareFunction(client.client.main.MapResult!(__lambda4, string[]).MapResult.opIndex): /usr/include/dlang/ldc/std/algorithm/iteration.d(557) * * * * * * isMember = this is: MapResult!(__lambda4, string[]) * * * * * * DtoFunctionType(pure @safe string(ulong index)) * * * * * * func = declare { i64, i8* } @_D3std9algorithm9iteration57__T9MapResultS356client6client4mainFAAyaZ9__lambda4TAAyaZ9MapResult7opIndexMFNaNfmZAya(%"client.client.main.MapResult!(__lambda4, string[]).MapResult"*, i64) * * * * Doing function body for: opIndex * * * * DtoCreateNestedContext for opIndex * * * * * DtoCreateNestedContextType for client.client.main.MapResult!(__lambda4, string[]).MapResult.opIndex * * * * * * DtoCreateNestedContextType for D main * * * * CompoundStatement::toIR(): * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/iteration.d(559) * * * * * * CallExp::toElem: __lambda4(this._input[index]) @ string * * * * * * * VarExp::toElem: __lambda4 @ pure @safe string(string a) * * * * * * * * DtoSymbolAddress ('__lambda4' of type 'pure @safe string(string a)') * * * * * * * * * FuncDeclaration * * * * * * * DtoCallFunction() * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (0) * * * * * * * * Function type: pure @safe string(string a) * * * * * * * * DtoArgument * * * * * * * * * IndexExp::toElem: this._input[index] @ string * * * * * * * * * * DotVarExp::toElem: this._input @ string[] * * * * * * * * * * * ThisExp::toElem: this @ MapResult!(__lambda4, string[]) * * * * * * * * * * * * normal this exp * * * * * * * * * * * Indexing aggregate field client.client.main.MapResult!(__lambda4, string[]).MapResult._input: * * * * * * * * * * * * Value: %1 = getelementptr %"client.client.main.MapResult!(__lambda4, string[]).MapResult", %"client.client.main.MapResult!(__lambda4, string[]).MapResult"* %.this_arg, i32 0, i32 0 * * * * * * * * * * VarExp::toElem: index @ ulong * * * * * * * * * * * DtoSymbolAddress ('index' of type 'ulong') * * * * * * * * * * * * function param * * * * * * * * * * * * type: ulong * * * * * * * * * * DtoArrayLen * * * * * * * * * * DtoArrayPtr * * * * * * return value is '0x130e1150' * * * DtoDefineFunction(client.client.main.MapResult!(__lambda4, string[]).MapResult.length): /usr/include/dlang/ldc/std/algorithm/iteration.d(565) * * * * Doing function body for: length * * * * DtoCreateNestedContext for length * * * * * DtoCreateNestedContextType for client.client.main.MapResult!(__lambda4, string[]).MapResult.length * * * * * * DtoCreateNestedContextType for D main * * * * CompoundStatement::toIR(): * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/iteration.d(567) * * * * * * ArrayLengthExp::toElem: this._input.length @ ulong * * * * * * * DotVarExp::toElem: this._input @ string[] * * * * * * * * ThisExp::toElem: this @ MapResult!(__lambda4, string[]) * * * * * * * * * normal this exp * * * * * * * * Indexing aggregate field client.client.main.MapResult!(__lambda4, string[]).MapResult._input: * * * * * * * * * Value: %1 = getelementptr %"client.client.main.MapResult!(__lambda4, string[]).MapResult", %"client.client.main.MapResult!(__lambda4, string[]).MapResult"* %.this_arg, i32 0, i32 0 * * * * * * * DtoArrayLen * * * * * * return value is '0x130e1b68' * * * Ignoring Dsymbol::codegen for client.client.main.MapResult!(__lambda4, string[]).MapResult.opDollar * * * Ignoring Dsymbol::codegen for client.client.main.MapResult!(__lambda4, string[]).MapResult.opSlice_t * * * DtoDefineFunction(client.client.main.MapResult!(__lambda4, string[]).MapResult.opSlice): /usr/include/dlang/ldc/std/algorithm/iteration.d(582) * * * * isMember = this is: MapResult!(__lambda4, string[]) * * * * DtoFunctionType(pure nothrow @nogc @safe MapResult!(__lambda4, string[])(ulong low, ulong high)) * * * * * x86-64 ABI: Transforming argument types * * * * * Final function type: void (%"client.client.main.MapResult!(__lambda4, string[]).MapResult"*, %"client.client.main.MapResult!(__lambda4, string[]).MapResult"*, i64, i64) * * * * DtoResolveFunction(client.client.main.MapResult!(__lambda4, string[]).MapResult.opSlice): /usr/include/dlang/ldc/std/algorithm/iteration.d(582) * * * * * DtoDeclareFunction(client.client.main.MapResult!(__lambda4, string[]).MapResult.opSlice): /usr/include/dlang/ldc/std/algorithm/iteration.d(582) * * * * * * isMember = this is: MapResult!(__lambda4, string[]) * * * * * * DtoFunctionType(pure nothrow @nogc @safe MapResult!(__lambda4, string[])(ulong low, ulong high)) * * * * * * func = declare void @_D3std9algorithm9iteration57__T9MapResultS356client6client4mainFAAyaZ9__lambda4TAAyaZ9MapResult7opSliceMFNaNbNiNfmmZS3std9algorithm9iteration57__T9MapResultS356client6client4mainFAAyaZ9__lambda4TAAyaZ9MapResult(%"client.client.main.MapResult!(__lambda4, string[]).MapResult"*, %"client.client.main.MapResult!(__lambda4, string[]).MapResult"*, i64, i64) * * * * Doing function body for: opSlice * * * * DtoCreateNestedContext for opSlice * * * * * DtoCreateNestedContextType for client.client.main.MapResult!(__lambda4, string[]).MapResult.opSlice * * * * * * DtoCreateNestedContextType for D main * * * * CompoundStatement::toIR(): * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/iteration.d(584) * * * * * * CallExp::toElem: MapResult(null).this(this._input[low..high]) @ MapResult!(__lambda4, string[]) * * * * * * * DotVarExp::toElem: MapResult(null).this @ pure nothrow @nogc ref @safe MapResult!(__lambda4, string[])(string[] input) * * * * * * * * StructLiteralExp::toElem: MapResult(null) @ MapResult!(__lambda4, string[]) * * * * * * * * * initializing field: string[] _input (+0) * * * * * * * * * * expr 0 = null * * * * * * * * * * NullExp::toElem(type=string[]): null * * * * * * * * * * * NullExp::toConstElem(type=string[]): null * * * * * * * * * * Indexing aggregate field client.client.main.MapResult!(__lambda4, string[]).MapResult._input: * * * * * * * * * * * Value: %1 = getelementptr %"client.client.main.MapResult!(__lambda4, string[]).MapResult", %"client.client.main.MapResult!(__lambda4, string[]).MapResult"* %.structliteral, i32 0, i32 0 * * * * * * * * * * DtoAssign() * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * DtoSetArrayToNull * * * * * * * * * initializing field: void* this (+16) * * * * * * * * * * initializing vthis * * * * * * * * * * * DtoNestedContext for client.client.main.MapResult!(__lambda4, string[]).MapResult * * * * * * * * * * * * result = %2 = load i8*, i8** %.vthis * * * * * * * * * * * * of type i8* * * * * * * * * * * Indexing aggregate field client.client.main.MapResult!(__lambda4, string[]).MapResult.this: * * * * * * * * * * * Value: %3 = getelementptr %"client.client.main.MapResult!(__lambda4, string[]).MapResult", %"client.client.main.MapResult!(__lambda4, string[]).MapResult"* %.structliteral, i32 0, i32 1 * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %3 = getelementptr %"client.client.main.MapResult!(__lambda4, string[]).MapResult", %"client.client.main.MapResult!(__lambda4, string[]).MapResult"* %.structliteral, i32 0, i32 1 * * * * * * * * * * * rhs: %2 = load i8*, i8** %.vthis * * * * * * * DtoCallFunction() * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (1) * * * * * * * * * %.structliteral = alloca %"client.client.main.MapResult!(__lambda4, string[]).MapResult", align 8 * * * * * * * * Function type: pure nothrow @nogc ref @safe MapResult!(__lambda4, string[])(string[] input) * * * * * * * * DtoArgument * * * * * * * * * SliceExp::toElem: this._input[low..high] @ string[] * * * * * * * * * * DotVarExp::toElem: this._input @ string[] * * * * * * * * * * * ThisExp::toElem: this @ MapResult!(__lambda4, string[]) * * * * * * * * * * * * normal this exp * * * * * * * * * * * Indexing aggregate field client.client.main.MapResult!(__lambda4, string[]).MapResult._input: * * * * * * * * * * * * Value: %4 = getelementptr %"client.client.main.MapResult!(__lambda4, string[]).MapResult", %"client.client.main.MapResult!(__lambda4, string[]).MapResult"* %.this_arg, i32 0, i32 0 * * * * * * * * * * DtoArrayPtr * * * * * * * * * * VarExp::toElem: low @ ulong * * * * * * * * * * * DtoSymbolAddress ('low' of type 'ulong') * * * * * * * * * * * * function param * * * * * * * * * * * * type: ulong * * * * * * * * * * VarExp::toElem: high @ ulong * * * * * * * * * * * DtoSymbolAddress ('high' of type 'ulong') * * * * * * * * * * * * function param * * * * * * * * * * * * type: ulong * * * * * * * * * * DtoArrayLen * * * * * * DtoAssign() * * * DtoDefineFunction(client.client.main.MapResult!(__lambda4, string[]).MapResult.save): /usr/include/dlang/ldc/std/algorithm/iteration.d(606) * * * * isMember = this is: MapResult!(__lambda4, string[]) * * * * DtoFunctionType(pure nothrow @nogc @property @safe MapResult!(__lambda4, string[])()) * * * * * x86-64 ABI: Transforming argument types * * * * * Final function type: void (%"client.client.main.MapResult!(__lambda4, string[]).MapResult"*, %"client.client.main.MapResult!(__lambda4, string[]).MapResult"*) * * * * DtoResolveFunction(client.client.main.MapResult!(__lambda4, string[]).MapResult.save): /usr/include/dlang/ldc/std/algorithm/iteration.d(606) * * * * * DtoDeclareFunction(client.client.main.MapResult!(__lambda4, string[]).MapResult.save): /usr/include/dlang/ldc/std/algorithm/iteration.d(606) * * * * * * isMember = this is: MapResult!(__lambda4, string[]) * * * * * * DtoFunctionType(pure nothrow @nogc @property @safe MapResult!(__lambda4, string[])()) * * * * * * func = declare void @_D3std9algorithm9iteration57__T9MapResultS356client6client4mainFAAyaZ9__lambda4TAAyaZ9MapResult4saveMFNaNbNdNiNfZS3std9algorithm9iteration57__T9MapResultS356client6client4mainFAAyaZ9__lambda4TAAyaZ9MapResult(%"client.client.main.MapResult!(__lambda4, string[]).MapResult"*, %"client.client.main.MapResult!(__lambda4, string[]).MapResult"*) * * * * Doing function body for: save * * * * DtoCreateNestedContext for save * * * * * DtoCreateNestedContextType for client.client.main.MapResult!(__lambda4, string[]).MapResult.save * * * * * * DtoCreateNestedContextType for D main * * * * CompoundStatement::toIR(): * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/iteration.d(608) * * * * * * CallExp::toElem: MapResult(null).this(save(this._input)) @ MapResult!(__lambda4, string[]) * * * * * * * DotVarExp::toElem: MapResult(null).this @ pure nothrow @nogc ref @safe MapResult!(__lambda4, string[])(string[] input) * * * * * * * * StructLiteralExp::toElem: MapResult(null) @ MapResult!(__lambda4, string[]) * * * * * * * * * initializing field: string[] _input (+0) * * * * * * * * * * expr 0 = null * * * * * * * * * * NullExp::toElem(type=string[]): null * * * * * * * * * * * NullExp::toConstElem(type=string[]): null * * * * * * * * * * Indexing aggregate field client.client.main.MapResult!(__lambda4, string[]).MapResult._input: * * * * * * * * * * * Value: %1 = getelementptr %"client.client.main.MapResult!(__lambda4, string[]).MapResult", %"client.client.main.MapResult!(__lambda4, string[]).MapResult"* %.structliteral, i32 0, i32 0 * * * * * * * * * * DtoAssign() * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * DtoSetArrayToNull * * * * * * * * * initializing field: void* this (+16) * * * * * * * * * * initializing vthis * * * * * * * * * * * DtoNestedContext for client.client.main.MapResult!(__lambda4, string[]).MapResult * * * * * * * * * * * * result = %2 = load i8*, i8** %.vthis * * * * * * * * * * * * of type i8* * * * * * * * * * * Indexing aggregate field client.client.main.MapResult!(__lambda4, string[]).MapResult.this: * * * * * * * * * * * Value: %3 = getelementptr %"client.client.main.MapResult!(__lambda4, string[]).MapResult", %"client.client.main.MapResult!(__lambda4, string[]).MapResult"* %.structliteral, i32 0, i32 1 * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %3 = getelementptr %"client.client.main.MapResult!(__lambda4, string[]).MapResult", %"client.client.main.MapResult!(__lambda4, string[]).MapResult"* %.structliteral, i32 0, i32 1 * * * * * * * * * * * rhs: %2 = load i8*, i8** %.vthis * * * * * * * DtoCallFunction() * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (1) * * * * * * * * * %.structliteral = alloca %"client.client.main.MapResult!(__lambda4, string[]).MapResult", align 8 * * * * * * * * Function type: pure nothrow @nogc ref @safe MapResult!(__lambda4, string[])(string[] input) * * * * * * * * DtoArgument * * * * * * * * * CallExp::toElem: save(this._input) @ string[] * * * * * * * * * * VarExp::toElem: save @ pure nothrow @nogc @property @safe string[](string[] a) * * * * * * * * * * * DtoSymbolAddress ('save' of type 'pure nothrow @nogc @property @safe string[](string[] a)') * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * doing normal arguments * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * Function type: pure nothrow @nogc @property @safe string[](string[] a) * * * * * * * * * * * DtoArgument * * * * * * * * * * * * DotVarExp::toElem: this._input @ string[] * * * * * * * * * * * * * ThisExp::toElem: this @ MapResult!(__lambda4, string[]) * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * Indexing aggregate field client.client.main.MapResult!(__lambda4, string[]).MapResult._input: * * * * * * * * * * * * * * Value: %4 = getelementptr %"client.client.main.MapResult!(__lambda4, string[]).MapResult", %"client.client.main.MapResult!(__lambda4, string[]).MapResult"* %.this_arg, i32 0, i32 0 * * * * * * DtoAssign() * * * VarDeclaration::codegen(): 'client.client.main.MapResult!(__lambda4, string[]).MapResult.this' * * * * DtoResolveVariable(client.client.main.MapResult!(__lambda4, string[]).MapResult.this) * * * Building default initializer for client.client.main.MapResult!(__lambda4, string[]).MapResult * * * * Creating initializer constant for MapResult * * * * * Implicit initializer: _input @+0 * * * * * * DtoConstExpInit(targetType = string[], exp = null) * * * * * * * NullExp::toConstElem(type=string[]): null * * * * * Implicit initializer: this @+16 * * * * * * DtoConstExpInit(targetType = void*, exp = null) * * * * * * * NullExp::toConstElem(type=void*): null * * * * * adding field _input * * * * * adding field this * * * * * final initializer: %"client.client.main.MapResult!(__lambda4, string[]).MapResult_init" zeroinitializer * * * DtoTypeInfoOf(type = 'MapResult!(__lambda4, string[])', base='1') * * * * Type::getTypeInfo(): MapResult!(__lambda4, string[]) * * * * * TypeInfoDeclaration::codegen(typeid(MapResult!(__lambda4, string[]))) * * * * * * type = 'MapResult!(__lambda4, string[])' * * * * * * typeinfo mangle: _D103TypeInfo_S3std9algorithm9iteration57__T9MapResultS356client6client4mainFAAyaZ9__lambda4TAAyaZ9MapResult6__initZ * * * * * * TypeInfoStructDeclaration::llvmDefine() typeid(MapResult!(__lambda4, string[])) * * * * * * * DtoFunctionType(nothrow @trusted ulong(ref const(MapResult!(__lambda4, string[])) p)) * * * * * * * * Building type: const(MapResult!(__lambda4, string[]))* * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * Final function type: i64 (%"client.client.main.MapResult!(__lambda4, string[]).MapResult"*) * * * * * * * DtoResolveFunction(client.client.main.MapResult!(__lambda4, string[]).MapResult.__xtoHash): * * * * * * * * DtoDeclareFunction(client.client.main.MapResult!(__lambda4, string[]).MapResult.__xtoHash): * * * * * * * * * DtoFunctionType(nothrow @trusted ulong(ref const(MapResult!(__lambda4, string[])) p)) * * * * * * * * * func = declare i64 @_D3std9algorithm9iteration57__T9MapResultS356client6client4mainFAAyaZ9__lambda4TAAyaZ9MapResult9__xtoHashFNbNeKxS3std9algorithm9iteration57__T9MapResultS356client6client4mainFAAyaZ9__lambda4TAAyaZ9MapResultZm(%"client.client.main.MapResult!(__lambda4, string[]).MapResult"*) * * * * * * * DtoFunctionType(bool(ref const(MapResult!(__lambda4, string[])) p, ref const(MapResult!(__lambda4, string[])) q)) * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * Final function type: i1 (%"client.client.main.MapResult!(__lambda4, string[]).MapResult"*, %"client.client.main.MapResult!(__lambda4, string[]).MapResult"*) * * * * * * * DtoResolveFunction(client.client.main.MapResult!(__lambda4, string[]).MapResult.__xopEquals): * * * * * * * * DtoDeclareFunction(client.client.main.MapResult!(__lambda4, string[]).MapResult.__xopEquals): * * * * * * * * * DtoFunctionType(bool(ref const(MapResult!(__lambda4, string[])) p, ref const(MapResult!(__lambda4, string[])) q)) * * * * * * * * * func = declare i1 @_D3std9algorithm9iteration57__T9MapResultS356client6client4mainFAAyaZ9__lambda4TAAyaZ9MapResult11__xopEqualsFKxS3std9algorithm9iteration57__T9MapResultS356client6client4mainFAAyaZ9__lambda4TAAyaZ9MapResultKxS3std9algorithm9iteration57__T9MapResultS356client6client4mainFAAyaZ9__lambda4TAAyaZ9MapResultZb(%"client.client.main.MapResult!(__lambda4, string[]).MapResult"*, %"client.client.main.MapResult!(__lambda4, string[]).MapResult"*) * * * * * * * IntegerExp::toConstElem: cast(void*)305419896LU @ void* * * * * * * * * pointer * * * * TypeInfoDeclaration::codegen(typeid(MapResult!(__lambda4, string[]))) * * * DtoDefineFunction(client.client.main.MapResult!(__lambda4, string[]).MapResult.__xopEquals): * * * * Doing function body for: __xopEquals * * * * DtoCreateNestedContext for __xopEquals * * * * * DtoCreateNestedContextType for client.client.main.MapResult!(__lambda4, string[]).MapResult.__xopEquals * * * * CompoundStatement::toIR(): * * * * * ReturnStatement::toIR(): * * * * * * AndAndExp::toElem: p._input == q._input && p.this == q.this @ bool * * * * * * * EqualExp::toElem: p._input == q._input @ bool * * * * * * * * DotVarExp::toElem: p._input @ const(string[]) * * * * * * * * * VarExp::toElem: p @ const(MapResult!(__lambda4, string[])) * * * * * * * * * * DtoSymbolAddress ('p' of type 'const(MapResult!(__lambda4, string[]))') * * * * * * * * * * * function param * * * * * * * * * * * type: const(MapResult!(__lambda4, string[])) * * * * * * * * * Indexing aggregate field client.client.main.MapResult!(__lambda4, string[]).MapResult._input: * * * * * * * * * * Value: %1 = getelementptr %"client.client.main.MapResult!(__lambda4, string[]).MapResult", %"client.client.main.MapResult!(__lambda4, string[]).MapResult"* %p_arg, i32 0, i32 0 * * * * * * * * DotVarExp::toElem: q._input @ const(string[]) * * * * * * * * * VarExp::toElem: q @ const(MapResult!(__lambda4, string[])) * * * * * * * * * * DtoSymbolAddress ('q' of type 'const(MapResult!(__lambda4, string[]))') * * * * * * * * * * * function param * * * * * * * * * * * type: const(MapResult!(__lambda4, string[])) * * * * * * * * * Indexing aggregate field client.client.main.MapResult!(__lambda4, string[]).MapResult._input: * * * * * * * * * * Value: %2 = getelementptr %"client.client.main.MapResult!(__lambda4, string[]).MapResult", %"client.client.main.MapResult!(__lambda4, string[]).MapResult"* %q_arg, i32 0, i32 0 * * * * * * * * static or dynamic array * * * * * * * * comparing arrays * * * * * * * * casting to dynamic arrays * * * * * * * * DtoCastArray * * * * * * * * * from array or sarray * * * * * * * * * to array * * * * * * * * * DtoArrayLen * * * * * * * * * DtoArrayPtr * * * * * * * * * isslice * * * * * * * * DtoCastArray * * * * * * * * * from array or sarray * * * * * * * * * to array * * * * * * * * * DtoArrayLen * * * * * * * * * DtoArrayPtr * * * * * * * * * isslice * * * * * * * * DtoTypeInfoOf(type = 'const(string)[]', base='1') * * * * * * * * * Type::getTypeInfo(): const(string)[] * * * * * * * * * TypeInfoDeclaration::codegen(typeid(const(string)[])) * * * * * * * EqualExp::toElem: p.this == q.this @ bool * * * * * * * * DotVarExp::toElem: p.this @ const(void*) * * * * * * * * * VarExp::toElem: p @ const(MapResult!(__lambda4, string[])) * * * * * * * * * * DtoSymbolAddress ('p' of type 'const(MapResult!(__lambda4, string[]))') * * * * * * * * * * * function param * * * * * * * * * * * type: const(MapResult!(__lambda4, string[])) * * * * * * * * * Indexing aggregate field client.client.main.MapResult!(__lambda4, string[]).MapResult.this: * * * * * * * * * * Value: %25 = getelementptr %"client.client.main.MapResult!(__lambda4, string[]).MapResult", %"client.client.main.MapResult!(__lambda4, string[]).MapResult"* %p_arg, i32 0, i32 1 * * * * * * * * DotVarExp::toElem: q.this @ const(void*) * * * * * * * * * VarExp::toElem: q @ const(MapResult!(__lambda4, string[])) * * * * * * * * * * DtoSymbolAddress ('q' of type 'const(MapResult!(__lambda4, string[]))') * * * * * * * * * * * function param * * * * * * * * * * * type: const(MapResult!(__lambda4, string[])) * * * * * * * * * Indexing aggregate field client.client.main.MapResult!(__lambda4, string[]).MapResult.this: * * * * * * * * * * Value: %26 = getelementptr %"client.client.main.MapResult!(__lambda4, string[]).MapResult", %"client.client.main.MapResult!(__lambda4, string[]).MapResult"* %q_arg, i32 0, i32 1 * * * * * * * * integral or pointer or interface * * * * * * * * lv: %27 = load i8*, i8** %25 * * * * * * * * rv: %28 = load i8*, i8** %26 * * * * * * return value is '0x130ee5d8' * * * DtoDefineFunction(client.client.main.MapResult!(__lambda4, string[]).MapResult.__xtoHash): * * * * Doing function body for: __xtoHash * * * * DtoCreateNestedContext for __xtoHash * * * * * DtoCreateNestedContextType for client.client.main.MapResult!(__lambda4, string[]).MapResult.__xtoHash * * * * CompoundStatement::toIR(): * * * * * CompoundStatement::toIR(): * * * * * * ExpStatement::toIR(): * * * * * * * DeclarationExp::toElem: ulong h = 0LU; | T=void * * * * * * * * DtoDeclarationExp: h * * * * * * * * * VarDeclaration * * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * * llvm value for decl: %h = alloca i64, align 8 * * * * * * * * * * expression initializer * * * * * * * * * * AssignExp::toElem: h = 0LU | (ulong)(ulong = ulong) * * * * * * * * * * * VarExp::toElem: h @ ulong * * * * * * * * * * * * DtoSymbolAddress ('h' of type 'ulong') * * * * * * * * * * * * * a normal variable * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * lhs: %h = alloca i64, align 8 * * * * * * * * * * * * rhs: i64 0 * * * * * * UnrolledLoopStatement::toIR(): * * * * * * * ScopeStatement::toIR(): * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * ExpStatement::toIR(): * * * * * * * * * * DeclarationExp::toElem: enum ulong i = 0LU; | T=void * * * * * * * * * * * DtoDeclarationExp: i * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * Manifest constant, nothing to do. * * * * * * * * * ExpStatement::toIR(): * * * * * * * * * * DeclarationExp::toElem: alias T = const(string[]); | T=void * * * * * * * * * * * DtoDeclarationExp: T * * * * * * * * * * * * Ignoring Symbol: alias * * * * * * * * * ExpStatement::toIR(): * * * * * * * * * * AddAssignExp::toElem: h += typeid(const(string[])).getHash(cast(const(void*))&p._input) @ ulong * * * * * * * * * * * Caching l-value of h += typeid(const(string[])).getHash(cast(const(void*))&p._input) => h * * * * * * * * * * * * VarExp::toElem: h @ ulong * * * * * * * * * * * * * DtoSymbolAddress ('h' of type 'ulong') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * AddExp::toElem: h + typeid(const(string[])).getHash(cast(const(void*))&p._input) @ ulong * * * * * * * * * * * * VarExp::toElem: h @ ulong * * * * * * * * * * * * CallExp::toElem: typeid(const(string[])).getHash(cast(const(void*))&p._input) @ ulong * * * * * * * * * * * * * DotVarExp::toElem: typeid(const(string[])).getHash @ const nothrow @trusted ulong(const(void*) p) * * * * * * * * * * * * * * SymOffExp::toElem: typeid(const(string[])) @ object.TypeInfo * * * * * * * * * * * * * * * DtoSymbolAddress ('typeid(const(string[]))' of type 'object.TypeInfo_Const') * * * * * * * * * * * * * * * * TypeInfoDeclaration * * * * * * * * * * * * * * * Casting from 'TypeInfo_Const*' to 'object.TypeInfo' * * * * * * * * * * * * * * * * src: %object.TypeInfo_Const* bitcast (%"typeid(const(string[]))"* @_D14TypeInfo_xAAya6__initZ to %object.TypeInfo_Const*) * * * * * * * * * * * * * * * * to type: %object.TypeInfo* * * * * * * * * * * * * * * vthis: %object.TypeInfo* bitcast (%"typeid(const(string[]))"* @_D14TypeInfo_xAAya6__initZ to %object.TypeInfo*) * * * * * * * * * * * * * * funcval: %3 = load i64 (%object.TypeInfo*, i8*)*, i64 (%object.TypeInfo*, i8*)** %"typeid(const(string[])).getHash@vtbl", align 8 * * * * * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * * * * * DtoFunctionType(const nothrow @trusted ulong(const(void*) p)) * * * * * * * * * * * * * * funcval casted: %"typeid(const(string[])).getHash" = load i64 (%object.TypeInfo*, i8*)*, i64 (%object.TypeInfo*, i8*)** %"typeid(const(string[])).getHash@vtbl", align 8 * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * %object.TypeInfo* bitcast (%"typeid(const(string[]))"* @_D14TypeInfo_xAAya6__initZ to %object.TypeInfo*) * * * * * * * * * * * * * * Function type: const nothrow @trusted ulong(const(void*) p) * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * CastExp::toElem: cast(const(void*))&p._input @ const(void*) * * * * * * * * * * * * * * * * AddrExp::toElem: &p._input @ const(string[])* * * * * * * * * * * * * * * * * * DotVarExp::toElem: p._input @ const(string[]) * * * * * * * * * * * * * * * * * * VarExp::toElem: p @ const(MapResult!(__lambda4, string[])) * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('p' of type 'const(MapResult!(__lambda4, string[]))') * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * type: const(MapResult!(__lambda4, string[])) * * * * * * * * * * * * * * * * * * Indexing aggregate field client.client.main.MapResult!(__lambda4, string[]).MapResult._input: * * * * * * * * * * * * * * * * * * * Value: %3 = getelementptr %"client.client.main.MapResult!(__lambda4, string[]).MapResult", %"client.client.main.MapResult!(__lambda4, string[]).MapResult"* %p_arg, i32 0, i32 0 * * * * * * * * * * * * * * * * * is nothing special * * * * * * * * * * * * * * * * * lval: %3 = getelementptr %"client.client.main.MapResult!(__lambda4, string[]).MapResult", %"client.client.main.MapResult!(__lambda4, string[]).MapResult"* %p_arg, i32 0, i32 0 * * * * * * * * * * * * * * * * Casting from 'const(string[])*' to 'const(void*)' * * * * * * * * * * * * * * * * * src: %3 = getelementptr %"client.client.main.MapResult!(__lambda4, string[]).MapResult", %"client.client.main.MapResult!(__lambda4, string[]).MapResult"* %p_arg, i32 0, i32 0 * * * * * * * * * * * * * * * * * to type: i8* * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * lhs: %h = alloca i64, align 8 * * * * * * * * * * * * rhs: %7 = add i64 %6, %5 * * * * * * * ScopeStatement::toIR(): * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * ExpStatement::toIR(): * * * * * * * * * * DeclarationExp::toElem: enum ulong i = 1LU; | T=void * * * * * * * * * * * DtoDeclarationExp: i * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * Manifest constant, nothing to do. * * * * * * * * * ExpStatement::toIR(): * * * * * * * * * * DeclarationExp::toElem: alias T = const(void*); | T=void * * * * * * * * * * * DtoDeclarationExp: T * * * * * * * * * * * * Ignoring Symbol: alias * * * * * * * * * ExpStatement::toIR(): * * * * * * * * * * AddAssignExp::toElem: h += typeid(const(void*)).getHash(cast(const(void*))&p.this) @ ulong * * * * * * * * * * * Caching l-value of h += typeid(const(void*)).getHash(cast(const(void*))&p.this) => h * * * * * * * * * * * * VarExp::toElem: h @ ulong * * * * * * * * * * * * * DtoSymbolAddress ('h' of type 'ulong') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * AddExp::toElem: h + typeid(const(void*)).getHash(cast(const(void*))&p.this) @ ulong * * * * * * * * * * * * VarExp::toElem: h @ ulong * * * * * * * * * * * * CallExp::toElem: typeid(const(void*)).getHash(cast(const(void*))&p.this) @ ulong * * * * * * * * * * * * * DotVarExp::toElem: typeid(const(void*)).getHash @ const nothrow @trusted ulong(const(void*) p) * * * * * * * * * * * * * * SymOffExp::toElem: typeid(const(void*)) @ object.TypeInfo * * * * * * * * * * * * * * * DtoSymbolAddress ('typeid(const(void*))' of type 'object.TypeInfo_Const') * * * * * * * * * * * * * * * * TypeInfoDeclaration * * * * * * * * * * * * * * * Casting from 'TypeInfo_Const*' to 'object.TypeInfo' * * * * * * * * * * * * * * * * src: %object.TypeInfo_Const* bitcast (%"typeid(const(void*))"* @_D12TypeInfo_xPv6__initZ to %object.TypeInfo_Const*) * * * * * * * * * * * * * * * * to type: %object.TypeInfo* * * * * * * * * * * * * * * vthis: %object.TypeInfo* bitcast (%"typeid(const(void*))"* @_D12TypeInfo_xPv6__initZ to %object.TypeInfo*) * * * * * * * * * * * * * * funcval: %10 = load i64 (%object.TypeInfo*, i8*)*, i64 (%object.TypeInfo*, i8*)** %"typeid(const(void*)).getHash@vtbl", align 8 * * * * * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * * * * * DtoFunctionType(const nothrow @trusted ulong(const(void*) p)) * * * * * * * * * * * * * * funcval casted: %"typeid(const(void*)).getHash" = load i64 (%object.TypeInfo*, i8*)*, i64 (%object.TypeInfo*, i8*)** %"typeid(const(void*)).getHash@vtbl", align 8 * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * %object.TypeInfo* bitcast (%"typeid(const(void*))"* @_D12TypeInfo_xPv6__initZ to %object.TypeInfo*) * * * * * * * * * * * * * * Function type: const nothrow @trusted ulong(const(void*) p) * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * CastExp::toElem: cast(const(void*))&p.this @ const(void*) * * * * * * * * * * * * * * * * AddrExp::toElem: &p.this @ const(void*)* * * * * * * * * * * * * * * * * * DotVarExp::toElem: p.this @ const(void*) * * * * * * * * * * * * * * * * * * VarExp::toElem: p @ const(MapResult!(__lambda4, string[])) * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('p' of type 'const(MapResult!(__lambda4, string[]))') * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * type: const(MapResult!(__lambda4, string[])) * * * * * * * * * * * * * * * * * * Indexing aggregate field client.client.main.MapResult!(__lambda4, string[]).MapResult.this: * * * * * * * * * * * * * * * * * * * Value: %10 = getelementptr %"client.client.main.MapResult!(__lambda4, string[]).MapResult", %"client.client.main.MapResult!(__lambda4, string[]).MapResult"* %p_arg, i32 0, i32 1 * * * * * * * * * * * * * * * * * is nothing special * * * * * * * * * * * * * * * * * lval: %10 = getelementptr %"client.client.main.MapResult!(__lambda4, string[]).MapResult", %"client.client.main.MapResult!(__lambda4, string[]).MapResult"* %p_arg, i32 0, i32 1 * * * * * * * * * * * * * * * * Casting from 'const(void*)*' to 'const(void*)' * * * * * * * * * * * * * * * * * src: %10 = getelementptr %"client.client.main.MapResult!(__lambda4, string[]).MapResult", %"client.client.main.MapResult!(__lambda4, string[]).MapResult"* %p_arg, i32 0, i32 1 * * * * * * * * * * * * * * * * * to type: i8* * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * lhs: %h = alloca i64, align 8 * * * * * * * * * * * * rhs: %14 = add i64 %13, %12 * * * * * * ReturnStatement::toIR(): * * * * * * * VarExp::toElem: h @ ulong * * * * * * * * DtoSymbolAddress ('h' of type 'ulong') * * * * * * * * * a normal variable * * * * * * * return value is '0x130f37d8' * TemplateInstance::codegen: 'client.client.printImportList.each!((a) => writeln(a))' * * Ignoring Dsymbol::codegen for __anonymous * * Ignoring Dsymbol::codegen for client.client.printImportList.each!((a) => writeln(a)).BinaryArgs * * Ignoring Dsymbol::codegen for client.client.printImportList.each!((a) => writeln(a)).isRangeUnaryIterable(R) * * Ignoring Dsymbol::codegen for client.client.printImportList.each!((a) => writeln(a)).isRangeBinaryIterable(R) * * Ignoring Dsymbol::codegen for client.client.printImportList.each!((a) => writeln(a)).isRangeIterable(R) * * Ignoring Dsymbol::codegen for client.client.printImportList.each!((a) => writeln(a)).isForeachUnaryIterable(R) * * Ignoring Dsymbol::codegen for client.client.printImportList.each!((a) => writeln(a)).isForeachBinaryIterable(R) * * Ignoring Dsymbol::codegen for client.client.printImportList.each!((a) => writeln(a)).isForeachIterable(R) * * Ignoring Dsymbol::codegen for client.client.printImportList.each!((a) => writeln(a)).each(Range)(Range r) if (isRangeIterable!Range && !isForeachIterable!Range) * * Ignoring Dsymbol::codegen for client.client.printImportList.each!((a) => writeln(a)).each(Iterable)(Iterable r) if (isForeachIterable!Iterable) * TemplateInstance::codegen: 'client.client.printImportList.TypeTuple!(__lambda2, "i", "a")' * * Ignoring Dsymbol::codegen for client.client.printImportList.TypeTuple!(__lambda2, "i", "a").TypeTuple * TemplateInstance::codegen: 'client.client.printImportList.each!((a) => writeln(a)).isRangeIterable!(const(string)[])' * TemplateInstance::codegen: 'client.client.printImportList.each!((a) => writeln(a)).isRangeUnaryIterable!(const(string)[])' * TemplateInstance::codegen: 'client.client.printImportList.unaryFun!(__lambda2, "a")' * * Ignoring Dsymbol::codegen for client.client.printImportList.unaryFun!(__lambda2, "a").unaryFun * TemplateInstance::codegen: 'client.client.printImportList.needOpCallAlias!(__lambda2)' * * VarDeclaration::codegen(): 'client.client.printImportList.needOpCallAlias!(__lambda2).needOpCallAlias' * * * DtoResolveVariable(client.client.printImportList.needOpCallAlias!(__lambda2).needOpCallAlias) * TemplateInstance::codegen: 'client.client.printImportList.__lambda2!string' * * DtoDefineFunction(client.client.printImportList.__lambda2): src/client/client.d(371) * * * DtoFunctionType(@safe void(string a)) * * * * x86-64 ABI: Transforming argument types * * * * Final function type: void ({ i64, i8* }) * * * DtoResolveFunction(client.client.printImportList.__lambda2): src/client/client.d(371) * * * * DtoDeclareFunction(client.client.printImportList.__lambda2): src/client/client.d(371) * * * * * DtoFunctionType(@safe void(string a)) * * * * * func = declare void @_D6client6client15printImportListFxS6common8messages20AutocompleteResponseZ18__T9__lambda2TAyaZ9__lambda2FNfAyaZv({ i64, i8* }) * * * Doing function body for: __lambda2 * * * DtoCreateNestedContext for __lambda2 * * * * DtoCreateNestedContextType for client.client.printImportList.__lambda2 * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): src/client/client.d(371) * * * * * ExpStatement::toIR(): src/client/client.d(371) * * * * * * CallExp::toElem: writeln(a) @ void * * * * * * * VarExp::toElem: writeln @ @safe void(string _param_0) * * * * * * * * DtoSymbolAddress ('writeln' of type '@safe void(string _param_0)') * * * * * * * * * FuncDeclaration * * * * * * * DtoCallFunction() * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (0) * * * * * * * * Function type: @safe void(string _param_0) * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: a @ string * * * * * * * * * * DtoSymbolAddress ('a' of type 'string') * * * * * * * * * * * function param * * * * * * * * * * * type: string * * * * * ReturnStatement::toIR(): src/client/client.d(371) * TemplateInstance::codegen: 'client.client.printImportList.each!((a) => writeln(a)).isRangeBinaryIterable!(const(string)[])' * TemplateInstance::codegen: 'client.client.printImportList.binaryFun!(__lambda2, "i", "a")' * TemplateInstance::codegen: 'client.client.printImportList.each!((a) => writeln(a)).isForeachIterable!(const(string)[])' * TemplateInstance::codegen: 'client.client.printImportList.each!((a) => writeln(a)).isForeachUnaryIterable!(const(string)[])' * * VarDeclaration::codegen(): 'client.client.printImportList.each!((a) => writeln(a)).isForeachUnaryIterable!(const(string)[]).isForeachUnaryIterable' * * * DtoResolveVariable(client.client.printImportList.each!((a) => writeln(a)).isForeachUnaryIterable!(const(string)[]).isForeachUnaryIterable) * TemplateInstance::codegen: 'client.client.printImportList.each!((a) => writeln(a)).isForeachBinaryIterable!(const(string)[])' * TemplateInstance::codegen: 'client.client.printImportList.each!((a) => writeln(a)).each!(const(string)[])' * * DtoDefineFunction(client.client.printImportList.each!((a) => writeln(a)).each!(const(string)[]).each): /usr/include/dlang/ldc/std/algorithm/iteration.d(873) * * * Doing function body for: each * * * DtoCreateNestedContext for each * * * * DtoCreateNestedContextType for client.client.printImportList.each!((a) => writeln(a)).each!(const(string)[]).each * * * * * DtoCreateNestedContextType for client.client.printImportList * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/iteration.d(875) * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/iteration.d(879) * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/iteration.d(879) * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/iteration.d(879) * * * * * * * * DeclarationExp::toElem: const(string)[] __aggr3480 = r[]; | T=void * * * * * * * * * DtoDeclarationExp: __aggr3480 * * * * * * * * * * VarDeclaration * * * * * * * * * * DtoVarDeclaration(vdtype = const(string)[]) * * * * * * * * * * * llvm value for decl: %__aggr3480 = alloca { i64, { i64, i8* }* }, align 8 * * * * * * * * * * * expression initializer * * * * * * * * * * * AssignExp::toElem: __aggr3480 = r[] | (const(string)[])(const(string)[] = const(string)[]) * * * * * * * * * * * * VarExp::toElem: __aggr3480 @ const(string)[] * * * * * * * * * * * * * DtoSymbolAddress ('__aggr3480' of type 'const(string)[]') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * SliceExp::toElem: r[] @ const(string)[] * * * * * * * * * * * * * VarExp::toElem: r @ const(string)[] * * * * * * * * * * * * * * DtoSymbolAddress ('r' of type 'const(string)[]') * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * type: const(string)[] * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * SetArray * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/iteration.d(879) * * * * * * * * DeclarationExp::toElem: ulong __key3481 = 0LU; | T=void * * * * * * * * * DtoDeclarationExp: __key3481 * * * * * * * * * * VarDeclaration * * * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * * * llvm value for decl: %__key3481 = alloca i64, align 8 * * * * * * * * * * * expression initializer * * * * * * * * * * * AssignExp::toElem: __key3481 = 0LU | (ulong)(ulong = ulong) * * * * * * * * * * * * VarExp::toElem: __key3481 @ ulong * * * * * * * * * * * * * DtoSymbolAddress ('__key3481' of type 'ulong') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * lhs: %__key3481 = alloca i64, align 8 * * * * * * * * * * * * * rhs: i64 0 * * * * * * * ForStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/iteration.d(879) * * * * * * * * CmpExp::toElem: __key3481 < __aggr3480.length @ bool * * * * * * * * * VarExp::toElem: __key3481 @ ulong * * * * * * * * * * DtoSymbolAddress ('__key3481' of type 'ulong') * * * * * * * * * * * a normal variable * * * * * * * * * ArrayLengthExp::toElem: __aggr3480.length @ ulong * * * * * * * * * * VarExp::toElem: __aggr3480 @ const(string)[] * * * * * * * * * * * DtoSymbolAddress ('__aggr3480' of type 'const(string)[]') * * * * * * * * * * * * a normal variable * * * * * * * * * * DtoArrayLen * * * * * * * * * type 1: %6 = load i64, i64* %__key3481 * * * * * * * * * type 2: %.len1 = load i64, i64* %5 * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/iteration.d(879) * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/iteration.d(879) * * * * * * * * * * DeclarationExp::toElem: const ref const(string) e = __aggr3480[__key3481]; | T=void * * * * * * * * * * * DtoDeclarationExp: e * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * DtoVarDeclaration(vdtype = const(string)) * * * * * * * * * * * * * llvm value for decl: %e = alloca { i64, i8* }*, align 8 * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * AssignExp::toElem: e = __aggr3480[__key3481] | (const(string))(const(string) = const(string)) * * * * * * * * * * * * * * performing ref variable initialization * * * * * * * * * * * * * * VarExp::toElem: e @ const(string) * * * * * * * * * * * * * * * DtoSymbolAddress ('e' of type 'const(string)') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * IndexExp::toElem: __aggr3480[__key3481] @ const(string) * * * * * * * * * * * * * * * VarExp::toElem: __aggr3480 @ const(string)[] * * * * * * * * * * * * * * * * DtoSymbolAddress ('__aggr3480' of type 'const(string)[]') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * VarExp::toElem: __key3481 @ ulong * * * * * * * * * * * * * * * * DtoSymbolAddress ('__key3481' of type 'ulong') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/algorithm/iteration.d(880) * * * * * * * * * * CallExp::toElem: __lambda2(e) @ void * * * * * * * * * * * VarExp::toElem: __lambda2 @ @safe void(string a) * * * * * * * * * * * * DtoSymbolAddress ('__lambda2' of type '@safe void(string a)') * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * Building type: @safe void(string a) * * * * * * * * * * * * * DtoFunctionType(@safe void(string a)) * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * Final function type: void ({ i64, i8* }) * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * Function type: @safe void(string a) * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * VarExp::toElem: e @ string * * * * * * * * * * * * * * DtoSymbolAddress ('e' of type 'const(string)') * * * * * * * * * * * * * * * a normal variable * * * * * * * * AddAssignExp::toElem: __key3481 += 1LU @ ulong * * * * * * * * * Caching l-value of __key3481 += 1LU => __key3481 * * * * * * * * * * VarExp::toElem: __key3481 @ ulong * * * * * * * * * * * DtoSymbolAddress ('__key3481' of type 'ulong') * * * * * * * * * * * * a normal variable * * * * * * * * * AddExp::toElem: __key3481 + 1LU @ ulong * * * * * * * * * * VarExp::toElem: __key3481 @ ulong * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * value = i64 1 * * * * * * * * * DtoAssign() * * * * * * * * * * lhs: %__key3481 = alloca i64, align 8 * * * * * * * * * * rhs: %11 = add i64 %10, 1 * TemplateInstance::codegen: 'std.variant.VariantN!32LU.VariantN.allowed!(const(VariantN!32LU))' * TemplateInstance::codegen: 'std.variant.VariantN!32LU.VariantN.opCmp!(VariantN!32LU)' * TemplateInstance::codegen: 'std.variant.VariantN!32LU.VariantN.opEquals!(const(VariantN!32LU))' * TemplateInstance::codegen: 'std.variant.VariantN!32LU.VariantN.allowed!(VariantN!32LU)' * TypeInfoDeclaration::codegen(typeid(VariantN!32LU[1])) * * type = 'VariantN!32LU[1]' * * typeinfo mangle: _D53TypeInfo_G1S3std7variant18__T8VariantNVmi32Z8VariantN6__initZ * * Building type: VariantN!32LU[1] * * TypeInfoStaticArrayDeclaration::llvmDefine() typeid(VariantN!32LU[1]) * * * DtoResolveClass(object.TypeInfo_StaticArray): /usr/include/dlang/ldc/object.di(167) * * * * Building type: object.TypeInfo_StaticArray * * * * * Building class type object.TypeInfo_StaticArray @ /usr/include/dlang/ldc/object.di(167) * * * * * * Instance size: 32 * * * * * * adding default initializer for struct field value * * * * * * adding default initializer for struct field len * * * * * * Building vtbl type for class object.TypeInfo_StaticArray * * * * * * * Adding type of object.TypeInfo.toString * * * * * * * isMember = this is: object.TypeInfo * * * * * * * DtoFunctionType(const pure nothrow @safe string()) * * * * * * * Adding type of object.TypeInfo.toHash * * * * * * * isMember = this is: object.TypeInfo * * * * * * * DtoFunctionType(const nothrow @trusted ulong()) * * * * * * * Adding type of object.TypeInfo.opCmp * * * * * * * isMember = this is: object.TypeInfo * * * * * * * DtoFunctionType(int(Object o)) * * * * * * * Adding type of object.TypeInfo.opEquals * * * * * * * isMember = this is: object.TypeInfo * * * * * * * DtoFunctionType(bool(Object o)) * * * * * * * Adding type of object.TypeInfo.getHash * * * * * * * isMember = this is: object.TypeInfo * * * * * * * DtoFunctionType(const nothrow @trusted ulong(const(void*) p)) * * * * * * * Adding type of object.TypeInfo.equals * * * * * * * isMember = this is: object.TypeInfo * * * * * * * DtoFunctionType(const bool(const(void*) p1, const(void*) p2)) * * * * * * * Adding type of object.TypeInfo.compare * * * * * * * isMember = this is: object.TypeInfo * * * * * * * DtoFunctionType(const int(const(void*) p1, const(void*) p2)) * * * * * * * Adding type of object.TypeInfo.tsize * * * * * * * isMember = this is: object.TypeInfo * * * * * * * DtoFunctionType(const pure nothrow @nogc @property @safe ulong()) * * * * * * * Adding type of object.TypeInfo.swap * * * * * * * isMember = this is: object.TypeInfo * * * * * * * DtoFunctionType(const void(void* p1, void* p2)) * * * * * * * Adding type of object.TypeInfo.next * * * * * * * isMember = this is: object.TypeInfo * * * * * * * DtoFunctionType(inout pure nothrow @nogc @property inout(TypeInfo)()) * * * * * * * Adding type of object.TypeInfo.init * * * * * * * isMember = this is: object.TypeInfo * * * * * * * DtoFunctionType(const pure nothrow @nogc @safe const(void)[]()) * * * * * * * Adding type of object.TypeInfo.flags * * * * * * * isMember = this is: object.TypeInfo * * * * * * * DtoFunctionType(const pure nothrow @nogc @property @safe uint()) * * * * * * * Adding type of object.TypeInfo.offTi * * * * * * * isMember = this is: object.TypeInfo * * * * * * * DtoFunctionType(const const(OffsetTypeInfo)[]()) * * * * * * * Adding type of object.TypeInfo.destroy * * * * * * * isMember = this is: object.TypeInfo * * * * * * * DtoFunctionType(const void(void* p)) * * * * * * * Adding type of object.TypeInfo.postblit * * * * * * * isMember = this is: object.TypeInfo * * * * * * * DtoFunctionType(const void(void* p)) * * * * * * * Adding type of object.TypeInfo.talign * * * * * * * isMember = this is: object.TypeInfo * * * * * * * DtoFunctionType(const pure nothrow @nogc @property @safe ulong()) * * * * * * * Adding type of object.TypeInfo.argTypes * * * * * * * isMember = this is: object.TypeInfo * * * * * * * DtoFunctionType(nothrow @safe int(out TypeInfo arg1, out TypeInfo arg2)) * * * * * * * Adding type of object.TypeInfo.rtInfo * * * * * * * isMember = this is: object.TypeInfo * * * * * * * DtoFunctionType(const pure nothrow @nogc @property @safe immutable(void)*()) * * * * * * class type: %object.TypeInfo_StaticArray = type { %object.TypeInfo_StaticArray.__vtbl*, i8*, %object.TypeInfo*, i64 } * * * DtoTypeInfoOf(type = 'VariantN!32LU', base='1') * * * * Type::getTypeInfo(): VariantN!32LU * * * * * TypeInfoDeclaration::codegen(typeid(VariantN!32LU)) * * * * * * type = 'VariantN!32LU' * * * * * * typeinfo mangle: _D51TypeInfo_S3std7variant18__T8VariantNVmi32Z8VariantN6__initZ * * * * * * TypeInfoStructDeclaration::llvmDefine() typeid(VariantN!32LU) * * * * * * * Resolving struct type: VariantN (/usr/include/dlang/ldc/std/variant.d(158)) * * * * * * * isMember = this is: VariantN!32LU * * * * * * * DtoFunctionType(const nothrow @safe ulong()) * * * * * * * * Building type: VariantN!32LU* * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * Final function type: i64 (%"std.variant.VariantN!32LU.VariantN"*) * * * * * * * DtoResolveFunction(std.variant.VariantN!32LU.VariantN.toHash): /usr/include/dlang/ldc/std/variant.d(926) * * * * * * * * DtoDeclareFunction(std.variant.VariantN!32LU.VariantN.toHash): /usr/include/dlang/ldc/std/variant.d(926) * * * * * * * * * isMember = this is: VariantN!32LU * * * * * * * * * DtoFunctionType(const nothrow @safe ulong()) * * * * * * * * * func = declare i64 @_D3std7variant18__T8VariantNVmi32Z8VariantN6toHashMxFNbNfZm(%"std.variant.VariantN!32LU.VariantN"*) * * * * * * * DtoFunctionType(bool(ref const(VariantN!32LU) p, ref const(VariantN!32LU) q)) * * * * * * * * Building type: const(VariantN!32LU)* * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * Final function type: i1 (%"std.variant.VariantN!32LU.VariantN"*, %"std.variant.VariantN!32LU.VariantN"*) * * * * * * * DtoResolveFunction(std.variant.VariantN!32LU.VariantN.__xopEquals): * * * * * * * * DtoDeclareFunction(std.variant.VariantN!32LU.VariantN.__xopEquals): * * * * * * * * * DtoFunctionType(bool(ref const(VariantN!32LU) p, ref const(VariantN!32LU) q)) * * * * * * * * * func = declare i1 @_D3std7variant18__T8VariantNVmi32Z8VariantN11__xopEqualsFKxS3std7variant18__T8VariantNVmi32Z8VariantNKxS3std7variant18__T8VariantNVmi32Z8VariantNZb(%"std.variant.VariantN!32LU.VariantN"*, %"std.variant.VariantN!32LU.VariantN"*) * * * * * * * isMember = this is: VariantN!32LU * * * * * * * DtoFunctionType(const @trusted int(ref const(VariantN!32LU) rhs)) * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * Final function type: i32 (%"std.variant.VariantN!32LU.VariantN"*, %"std.variant.VariantN!32LU.VariantN"*) * * * * * * * DtoResolveFunction(std.variant.VariantN!32LU.VariantN.opCmp): /usr/include/dlang/ldc/std/variant.d(895) * * * * * * * * DtoDeclareFunction(std.variant.VariantN!32LU.VariantN.opCmp): /usr/include/dlang/ldc/std/variant.d(895) * * * * * * * * * isMember = this is: VariantN!32LU * * * * * * * * * DtoFunctionType(const @trusted int(ref const(VariantN!32LU) rhs)) * * * * * * * * * func = declare i32 @_D3std7variant18__T8VariantNVmi32Z8VariantN5opCmpMxFNeKxS3std7variant18__T8VariantNVmi32Z8VariantNZi(%"std.variant.VariantN!32LU.VariantN"*, %"std.variant.VariantN!32LU.VariantN"*) * * * * * * * isMember = this is: VariantN!32LU * * * * * * * DtoFunctionType(@trusted string()) * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * Final function type: { i64, i8* } (%"std.variant.VariantN!32LU.VariantN"*) * * * * * * * DtoResolveFunction(std.variant.VariantN!32LU.VariantN.toString): /usr/include/dlang/ldc/std/variant.d(872) * * * * * * * * DtoDeclareFunction(std.variant.VariantN!32LU.VariantN.toString): /usr/include/dlang/ldc/std/variant.d(872) * * * * * * * * * isMember = this is: VariantN!32LU * * * * * * * * * DtoFunctionType(@trusted string()) * * * * * * * * * func = declare { i64, i8* } @_D3std7variant18__T8VariantNVmi32Z8VariantN8toStringMFNeZAya(%"std.variant.VariantN!32LU.VariantN"*) * * * * * * * isMember = this is: VariantN!32LU * * * * * * * DtoFunctionType(@trusted void()) * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * Final function type: void (%"std.variant.VariantN!32LU.VariantN"*) * * * * * * * DtoResolveFunction(std.variant.VariantN!32LU.VariantN.~this): /usr/include/dlang/ldc/std/variant.d(593) * * * * * * * * DtoDeclareFunction(std.variant.VariantN!32LU.VariantN.~this): /usr/include/dlang/ldc/std/variant.d(593) * * * * * * * * * isMember = this is: VariantN!32LU * * * * * * * * * DtoFunctionType(@trusted void()) * * * * * * * * * func = declare void @_D3std7variant18__T8VariantNVmi32Z8VariantN6__dtorMFNeZv(%"std.variant.VariantN!32LU.VariantN"*) * * * * * * * isMember = this is: VariantN!32LU * * * * * * * DtoFunctionType(@trusted void()) * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * Final function type: void (%"std.variant.VariantN!32LU.VariantN"*) * * * * * * * DtoResolveFunction(std.variant.VariantN!32LU.VariantN.__postblit): /usr/include/dlang/ldc/std/variant.d(585) * * * * * * * * DtoDeclareFunction(std.variant.VariantN!32LU.VariantN.__postblit): /usr/include/dlang/ldc/std/variant.d(585) * * * * * * * * * isMember = this is: VariantN!32LU * * * * * * * * * DtoFunctionType(@trusted void()) * * * * * * * * * func = declare void @_D3std7variant18__T8VariantNVmi32Z8VariantN10__postblitMFNeZv(%"std.variant.VariantN!32LU.VariantN"*) * * * * * * * IntegerExp::toConstElem: cast(void*)305419896LU @ void* * * * * * * * * pointer * * * * TypeInfoDeclaration::codegen(typeid(VariantN!32LU)) * TemplateInstance::codegen: 'std.variant.VariantN!32LU.VariantN.opAssign!ulong' * TemplateInstance::codegen: 'std.variant.VariantN!32LU.VariantN.allowed!ulong' * TemplateInstance::codegen: 'std.variant.VariantN!32LU.VariantN.handler!ulong' * TypeInfoDeclaration::codegen(typeid(const(float))) * * type = 'const(float)' * * typeinfo mangle: _D11TypeInfo_xf6__initZ * * TypeInfoConstDeclaration::llvmDefine() typeid(const(float)) * * * DtoTypeInfoOf(type = 'float', base='1') * * * * Type::getTypeInfo(): float * * * * TypeInfoDeclaration::codegen(typeid(float)) * * * * * type = 'float' * * * * * typeinfo mangle: _D10TypeInfo_f6__initZ * TypeInfoDeclaration::codegen(typeid(const(double))) * * type = 'const(double)' * * typeinfo mangle: _D11TypeInfo_xd6__initZ * * TypeInfoConstDeclaration::llvmDefine() typeid(const(double)) * * * DtoTypeInfoOf(type = 'double', base='1') * * * * Type::getTypeInfo(): double * * * * TypeInfoDeclaration::codegen(typeid(double)) * * * * * type = 'double' * * * * * typeinfo mangle: _D10TypeInfo_d6__initZ * TypeInfoDeclaration::codegen(typeid(const(real))) * * type = 'const(real)' * * typeinfo mangle: _D11TypeInfo_xe6__initZ * * TypeInfoConstDeclaration::llvmDefine() typeid(const(real)) * * * DtoTypeInfoOf(type = 'real', base='1') * * * * Type::getTypeInfo(): real * * * * TypeInfoDeclaration::codegen(typeid(real)) * * * * * type = 'real' * * * * * typeinfo mangle: _D10TypeInfo_e6__initZ * TemplateInstance::codegen: 'std.variant.VariantN!32LU.VariantN.opEquals!(VariantN!32LU)' * TypeInfoDeclaration::codegen(typeid(const(Node*))) * * type = 'const(Node*)' * * typeinfo mangle: _D77TypeInfo_xPS3std11concurrency36__T4ListTS3std11concurrency7MessageZ4List4Node6__initZ * * Building type: const(Node)* * * TypeInfoConstDeclaration::llvmDefine() typeid(const(Node*)) * * * DtoTypeInfoOf(type = 'const(Node)*', base='1') * * * * Type::getTypeInfo(): const(Node)* * * * * * TypeInfoDeclaration::codegen(typeid(const(Node)*)) * * * * * * type = 'const(Node)*' * * * * * * typeinfo mangle: _D77TypeInfo_PxS3std11concurrency36__T4ListTS3std11concurrency7MessageZ4List4Node6__initZ * * * * * * TypeInfoPointerDeclaration::llvmDefine() typeid(const(Node)*) * * * * * * * DtoTypeInfoOf(type = 'const(Node)', base='1') * * * * * * * * Type::getTypeInfo(): const(Node) * * * * * * * * * TypeInfoDeclaration::codegen(typeid(const(Node))) * * * * * * * * * * type = 'const(Node)' * * * * * * * * * * typeinfo mangle: _D76TypeInfo_xS3std11concurrency36__T4ListTS3std11concurrency7MessageZ4List4Node6__initZ * * * * * * * * * * TypeInfoConstDeclaration::llvmDefine() typeid(const(Node)) * * * * * * * * * * * DtoTypeInfoOf(type = 'Node', base='1') * * * * * * * * * * * * Type::getTypeInfo(): Node * * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(Node)) * * * * * * * * * * * * * * type = 'Node' * * * * * * * * * * * * * * typeinfo mangle: _D75TypeInfo_S3std11concurrency36__T4ListTS3std11concurrency7MessageZ4List4Node6__initZ * * * * * * * * * * * * * * TypeInfoStructDeclaration::llvmDefine() typeid(Node) * * * * * * * * * * * * * * * Resolving struct type: Node (/usr/include/dlang/ldc/std/concurrency.d(2358)) * * * * * * * * * * * * * * * DtoFunctionType(nothrow @trusted ulong(ref const(Node) p)) * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * Final function type: i64 (%"std.concurrency.List!(Message).List.Node"*) * * * * * * * * * * * * * * * DtoResolveFunction(std.concurrency.List!(Message).List.Node.__xtoHash): * * * * * * * * * * * * * * * * DtoDeclareFunction(std.concurrency.List!(Message).List.Node.__xtoHash): * * * * * * * * * * * * * * * * * DtoFunctionType(nothrow @trusted ulong(ref const(Node) p)) * * * * * * * * * * * * * * * * * func = declare i64 @_D3std11concurrency36__T4ListTS3std11concurrency7MessageZ4List4Node9__xtoHashFNbNeKxS3std11concurrency36__T4ListTS3std11concurrency7MessageZ4List4NodeZm(%"std.concurrency.List!(Message).List.Node"*) * * * * * * * * * * * * * * * DtoFunctionType(bool(ref const(Node) p, ref const(Node) q)) * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * Final function type: i1 (%"std.concurrency.List!(Message).List.Node"*, %"std.concurrency.List!(Message).List.Node"*) * * * * * * * * * * * * * * * DtoResolveFunction(std.concurrency.List!(Message).List.Node.__xopEquals): * * * * * * * * * * * * * * * * DtoDeclareFunction(std.concurrency.List!(Message).List.Node.__xopEquals): * * * * * * * * * * * * * * * * * DtoFunctionType(bool(ref const(Node) p, ref const(Node) q)) * * * * * * * * * * * * * * * * * func = declare i1 @_D3std11concurrency36__T4ListTS3std11concurrency7MessageZ4List4Node11__xopEqualsFKxS3std11concurrency36__T4ListTS3std11concurrency7MessageZ4List4NodeKxS3std11concurrency36__T4ListTS3std11concurrency7MessageZ4List4NodeZb(%"std.concurrency.List!(Message).List.Node"*, %"std.concurrency.List!(Message).List.Node"*) * * * * * * * * * * * * * * * isMember = this is: Node * * * * * * * * * * * * * * * DtoFunctionType(@trusted void()) * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * Final function type: void (%"std.concurrency.List!(Message).List.Node"*) * * * * * * * * * * * * * * * DtoResolveFunction(std.concurrency.List!(Message).List.Node.~this): /usr/include/dlang/ldc/std/concurrency.d(2358) * * * * * * * * * * * * * * * * DtoDeclareFunction(std.concurrency.List!(Message).List.Node.~this): /usr/include/dlang/ldc/std/concurrency.d(2358) * * * * * * * * * * * * * * * * * isMember = this is: Node * * * * * * * * * * * * * * * * * DtoFunctionType(@trusted void()) * * * * * * * * * * * * * * * * * func = declare void @_D3std11concurrency36__T4ListTS3std11concurrency7MessageZ4List4Node11__fieldDtorMFNeZv(%"std.concurrency.List!(Message).List.Node"*) * * * * * * * * * * * * * * * isMember = this is: Node * * * * * * * * * * * * * * * DtoFunctionType(@trusted void()) * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * Final function type: void (%"std.concurrency.List!(Message).List.Node"*) * * * * * * * * * * * * * * * DtoResolveFunction(std.concurrency.List!(Message).List.Node.__fieldPostBlit): /usr/include/dlang/ldc/std/concurrency.d(2358) * * * * * * * * * * * * * * * * DtoDeclareFunction(std.concurrency.List!(Message).List.Node.__fieldPostBlit): /usr/include/dlang/ldc/std/concurrency.d(2358) * * * * * * * * * * * * * * * * * isMember = this is: Node * * * * * * * * * * * * * * * * * DtoFunctionType(@trusted void()) * * * * * * * * * * * * * * * * * func = declare void @_D3std11concurrency36__T4ListTS3std11concurrency7MessageZ4List4Node15__fieldPostBlitMFNeZv(%"std.concurrency.List!(Message).List.Node"*) * * * * * * * * * * * * * * * IntegerExp::toConstElem: cast(void*)305419896LU @ void* * * * * * * * * * * * * * * * * pointer * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(Node)) * * * * * * * * TypeInfoDeclaration::codegen(typeid(const(Node))) * * * * TypeInfoDeclaration::codegen(typeid(const(Node)*)) * TypeInfoDeclaration::codegen(typeid(const(Message))) * * type = 'const(Message)' * * typeinfo mangle: _D36TypeInfo_xS3std11concurrency7Message6__initZ * * TypeInfoConstDeclaration::llvmDefine() typeid(const(Message)) * * * DtoTypeInfoOf(type = 'Message', base='1') * * * * Type::getTypeInfo(): Message * * * * TypeInfoDeclaration::codegen(typeid(Message)) * TypeInfoDeclaration::codegen(typeid(const(MsgType))) * * type = 'const(MsgType)' * * typeinfo mangle: _D36TypeInfo_xE3std11concurrency7MsgType6__initZ * * Building type: MsgType * * TypeInfoConstDeclaration::llvmDefine() typeid(const(MsgType)) * * * DtoTypeInfoOf(type = 'MsgType', base='1') * * * * Type::getTypeInfo(): MsgType * * * * * TypeInfoDeclaration::codegen(typeid(MsgType)) * * * * * * type = 'MsgType' * * * * * * typeinfo mangle: _D35TypeInfo_E3std11concurrency7MsgType6__initZ * * * * * * Building type: MsgType * * * * * * TypeInfoEnumDeclaration::llvmDefine() typeid(MsgType) * * * * * * * DtoTypeInfoOf(type = 'int', base='1') * * * * * * * * Type::getTypeInfo(): int * * * * * * * * TypeInfoDeclaration::codegen(typeid(int)) * * * * TypeInfoDeclaration::codegen(typeid(MsgType)) * TypeInfoDeclaration::codegen(typeid(const(VariantN!32LU))) * * type = 'const(VariantN!32LU)' * * typeinfo mangle: _D52TypeInfo_xS3std7variant18__T8VariantNVmi32Z8VariantN6__initZ * * TypeInfoConstDeclaration::llvmDefine() typeid(const(VariantN!32LU)) * * * DtoTypeInfoOf(type = 'VariantN!32LU', base='1') * * * * Type::getTypeInfo(): VariantN!32LU * * * * TypeInfoDeclaration::codegen(typeid(VariantN!32LU)) * *** Initializing D runtime declarations *** * Ignoring Dsymbol::codegen for __entrypoint.object * DtoDefineFunction(__entrypoint._d_run_main): (1) * * DtoFunctionType(extern (C) int(int argc, char** argv, void* mainFunc)) * * * Building type: char** * * * x86-64 ABI: Transforming return type * * * x86-64 ABI: Transforming argument types * * * Final function type: i32 (i32, i8**, i8*) * * DtoResolveFunction(__entrypoint._d_run_main): (1) * * * DtoDeclareFunction(__entrypoint._d_run_main): (1) * * * * DtoFunctionType(extern (C) int(int argc, char** argv, void* mainFunc)) * * * * func = declare i32 @_d_run_main(i32, i8**, i8*) * DtoDefineFunction(__entrypoint._Dmain): (2) * * DtoFunctionType(extern (C) int(char[][] args)) * * * Building type: char[][] * * * x86-64 ABI: Transforming return type * * * x86-64 ABI: Transforming argument types * * * Final function type: i32 ({ i64, { i64, i8* }* }) * * DtoResolveFunction(__entrypoint._Dmain): (2) * * * DtoDeclareFunction(__entrypoint._Dmain): (2) * * * * DtoFunctionType(extern (C) int(char[][] args)) * * * * func = ; Function Attrs: uwtable define i32 @_Dmain({ i64, { i64, i8* }* } %args_arg) #0 personality i32 (i32, i32, i64, i8*, i8*)* @_d_eh_personality { %args = alloca { i64, { i64, i8* }* }, align 8 %.frame = alloca %nest.main, align 8 %cursorPos = alloca i64, align 8 %importPaths = alloca { i64, { i64, i8* }* }, align 8 %port = alloca i16, align 2 %help = alloca i8, align 1 %shutdown = alloca i8, align 1 %clearCache = alloca i8, align 1 %symbolLocation = alloca i8, align 1 %doc = alloca i8, align 1 %query = alloca i8, align 1 %printVersion = alloca i8, align 1 %listImports = alloca i8, align 1 %search = alloca { i64, i8* }, align 8 %useTCP = alloca i8, align 1 %socketFile = alloca { i64, i8* }, align 8 %eh.ptr = alloca i8* %.rettmp = alloca %std.getopt.GetoptResult, align 8 %.getAddressOf_dump = alloca { i64, i8* }, align 8 %eh.selector = alloca i32 %request = alloca %common.messages.AutocompleteRequest, align 8 %socket = alloca %std.socket.Socket*, align 8 %condtmp = alloca i32*, align 8 %.makelvaluetmp = alloca i32, align 4 %.makelvaluetmp27 = alloca i32, align 4 %return.slot = alloca i32 %branchsel.finally = alloca i32 %.rettmp33 = alloca %"client.client.main.MapResult!(__lambda4, string[]).MapResult", align 8 %socket38 = alloca %std.socket.Socket*, align 8 %branchsel.finally39 = alloca i32 %socket51 = alloca %std.socket.Socket*, align 8 %response = alloca %common.messages.AutocompleteResponse, align 8 %branchsel.finally52 = alloca i32 %usingStdin = alloca i8, align 1 %fileName = alloca { i64, i8* }, align 8 %condtmp68 = alloca { i64, i8* }*, align 8 %.makelvaluetmp72 = alloca { i64, i8* }, align 8 %sourceCode = alloca { i64, i8* }, align 8 %buf = alloca [4096 x i8], align 1 %b = alloca { i64, i8* }, align 8 %f = alloca %std.stdio.File, align 8 %branchsel.finally100 = alloca i32 %socket127 = alloca %std.socket.Socket*, align 8 %branchsel.finally128 = alloca i32 %response137 = alloca %common.messages.AutocompleteResponse, align 8 store { i64, { i64, i8* }* } %args_arg, { i64, { i64, i8* }* }* %args %e = getelementptr %nest.main, %nest.main* %.frame, i32 0, i32 0 %1 = call %std.experimental.logger.core.Logger* @_D3std12experimental6logger4core9sharedLogFNdNfZC3std12experimental6logger4core6Logger() %2 = bitcast %nest.main* %.frame to i8* %3 = insertvalue { i8*, void (i8*)* } undef, i8* %2, 0 %.func = insertvalue { i8*, void (i8*)* } %3, void (i8*)* @_D6client6client4mainFAAyaZ9__lambda2MFNfZv, 1 call void @_D3std12experimental6logger4core6Logger12fatalHandlerMFNaNdNiNfDFNfZvZv(%std.experimental.logger.core.Logger* %1, { i8*, void (i8*)* } %.func) store i64 -1, i64* %cursorPos store { i64, { i64, i8* }* } zeroinitializer, { i64, { i64, i8* }* }* %importPaths store i16 9166, i16* %port store i8 0, i8* %help store i8 0, i8* %shutdown store i8 0, i8* %clearCache store i8 0, i8* %symbolLocation store i8 0, i8* %doc store i8 0, i8* %query store i8 0, i8* %printVersion store i8 0, i8* %listImports store { i64, i8* } zeroinitializer, { i64, i8* }* %search store i8 0, i8* %useTCP %4 = call { i64, i8* } @_D6common6socket18generateSocketNameFZAya() %.ptr = extractvalue { i64, i8* } %4, 1 %.len = extractvalue { i64, i8* } %4, 0 %5 = getelementptr { i64, i8* }, { i64, i8* }* %socketFile, i32 0, i32 0 store i64 %.len, i64* %5 %6 = getelementptr { i64, i8* }, { i64, i8* }* %socketFile, i32 0, i32 1 store i8* %.ptr, i8** %6 store { i64, i8* } { i64 3, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.232, i32 0, i32 0) }, { i64, i8* }* %.getAddressOf_dump invoke void @_D3std6getopt116__T6getoptTAyaTPmTAyaTPAAyaTAyaTPtTAyaTPbTAyaTPbTAyaTPbTAyaTPbTAyaTPbTAyaTPbTAyaTPAyaTAyaTPbTAyaTPbTAyaTPbTAyaTPAyaZ6getoptFKAAyaAyaPmAyaPAAyaAyaPtAyaPbAyaPbAyaPbAyaPbAyaPbAyaPbAyaPAyaAyaPbAyaPbAyaPbAyaPAyaZS3std6getopt12GetoptResult(%std.getopt.GetoptResult* noalias sret %.rettmp, { i64, i8* }* %socketFile, { i64, i8* } { i64 10, i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.233, i32 0, i32 0) }, i8* %useTCP, { i64, i8* }* byval %.getAddressOf_dump, i8* %listImports, { i64, i8* } { i64 11, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.231, i32 0, i32 0) }, i8* %printVersion, { i64, i8* } { i64 7, i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.230, i32 0, i32 0) }, { i64, i8* }* %search, { i64, i8* } { i64 8, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.229, i32 0, i32 0) }, i8* %query, { i64, i8* } { i64 14, i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.228, i32 0, i32 0) }, i8* %doc, { i64, i8* } { i64 5, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.227, i32 0, i32 0) }, i8* %symbolLocation, { i64, i8* } { i64 16, i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str.226, i32 0, i32 0) }, i8* %clearCache, { i64, i8* } { i64 10, i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.225, i32 0, i32 0) }, i8* %shutdown, { i64, i8* } { i64 8, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.224, i32 0, i32 0) }, i8* %help, { i64, i8* } { i64 6, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.223, i32 0, i32 0) }, i16* %port, { i64, i8* } { i64 6, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.222, i32 0, i32 0) }, { i64, { i64, i8* }* }* %importPaths, { i64, i8* } { i64 1, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.221, i32 0, i32 0) }, i64* %cursorPos, { i64, i8* } { i64 11, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.220, i32 0, i32 0) }, { i64, { i64, i8* }* }* %args) to label %postinvoke unwind label %landingPad catch.std.conv.ConvException: ; preds = %landingPad call void @_d_eh_enter_catch() %7 = load i8*, i8** %eh.ptr store %std.conv.ConvException* null, %std.conv.ConvException** %e %8 = bitcast i8* %7 to %std.conv.ConvException** %9 = load %std.conv.ConvException*, %std.conv.ConvException** %8 store %std.conv.ConvException* %9, %std.conv.ConvException** %e %10 = bitcast %nest.main* %.frame to i8* %11 = insertvalue { i8*, { i64, i8* } (i8*)* } undef, i8* %10, 0 %.func1 = insertvalue { i8*, { i64, i8* } (i8*)* } %11, { i64, i8* } (i8*)* @_D6client6client4mainFAAyaZ12__dgliteral3MFNaNbNiNfZAya, 1 call void @_D3std12experimental6logger4core69__T18defaultLogFunctionVE3std12experimental6logger4core8LogLeveli192Z239__T18defaultLogFunctionVii75VAyaa19_7372632f636c69656e742f636c69656e742e64VAyaa18_636c69656e742e636c69656e742e6d61696eVAyaa37_696e7420636c69656e742e636c69656e742e6d61696e28737472696e675b5d206172677329VAyaa13_636c69656e742e636c69656e74TAyaZ18defaultLogFunctionFNfLAyaZv({ i8*, { i64, i8* } (i8*)* } %.func1) %12 = getelementptr { i64, { i64, i8* }* }, { i64, { i64, i8* }* }* %args, i32 0, i32 1 %.ptr2 = load { i64, i8* }*, { i64, i8* }** %12 %13 = getelementptr { i64, i8* }, { i64, i8* }* %.ptr2, i64 0 %14 = load { i64, i8* }, { i64, i8* }* %13 call void @_D6client6client9printHelpFAyaZv({ i64, i8* } %14) ret i32 1 try.success.or.caught: ; preds = %postinvoke, %afterreturn %15 = bitcast %common.messages.AutocompleteRequest* %request to i8* call void @llvm.memset.p0i8.i64(i8* %15, i8 0, i64 80, i32 1, i1 false) %16 = load i8, i8* %help %17 = trunc i8 %16 to i1 br i1 %17, label %if, label %endif afterreturn: ; No predecessors! br label %try.success.or.caught postinvoke: ; preds = %0 br label %try.success.or.caught landingPad: ; preds = %0 %18 = landingpad { i8*, i32 } catch %object.TypeInfo_Class* @_D3std4conv13ConvException7__ClassZ %19 = extractvalue { i8*, i32 } %18, 0 store i8* %19, i8** %eh.ptr %20 = extractvalue { i8*, i32 } %18, 1 store i32 %20, i32* %eh.selector %21 = call i32 @llvm.eh.typeid.for(i8* bitcast (%object.TypeInfo_Class* @_D3std4conv13ConvException7__ClassZ to i8*)) %22 = load i32, i32* %eh.selector %23 = icmp eq i32 %22, %21 br i1 %23, label %catch.std.conv.ConvException, label %unwind.resume unwind.resume: ; preds = %finally128, %finally100, %finally52, %finally39, %finally, %landingPad %24 = load i8*, i8** %eh.ptr call void @_d_eh_resume_unwind(i8* %24) unreachable if: ; preds = %try.success.or.caught %25 = getelementptr { i64, { i64, i8* }* }, { i64, { i64, i8* }* }* %args, i32 0, i32 1 %.ptr3 = load { i64, i8* }*, { i64, i8* }** %25 %26 = getelementptr { i64, i8* }, { i64, i8* }* %.ptr3, i64 0 %27 = load { i64, i8* }, { i64, i8* }* %26 call void @_D6client6client9printHelpFAyaZv({ i64, i8* } %27) ret i32 0 endif: ; preds = %afterreturn4, %try.success.or.caught %28 = load i8, i8* %printVersion %29 = trunc i8 %28 to i1 br i1 %29, label %if5, label %endif6 afterreturn4: ; No predecessors! br label %endif if5: ; preds = %endif call void @_D3std5stdio22__T5writeTAyaTAyaTAyaZ5writeFNfAyaAyaAyaZv({ i64, i8* } { i64 41, i8* getelementptr inbounds ([42 x i8], [42 x i8]* @.str.236, i32 0, i32 0) }, { i64, i8* } { i64 1, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.235, i32 0, i32 0) }, { i64, i8* } { i64 12, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.234, i32 0, i32 0) }) ret i32 0 endif6: ; preds = %afterreturn7, %endif %30 = load i8, i8* %useTCP %31 = trunc i8 %30 to i1 br i1 %31, label %if8, label %endif9 afterreturn7: ; No predecessors! br label %endif6 if8: ; preds = %endif6 store { i64, i8* } zeroinitializer, { i64, i8* }* %socketFile br label %endif9 endif9: ; preds = %if8, %endif6 %32 = load i8, i8* %query %33 = trunc i8 %32 to i1 br i1 %33, label %if10, label %else if10: ; preds = %endif9 %34 = load i8, i8* %useTCP %35 = trunc i8 %34 to i1 %36 = load { i64, i8* }, { i64, i8* }* %socketFile %37 = load i16, i16* %port %38 = call i1 @_D6common8messages15serverIsRunningFbAyatZb(i16 zeroext %37, { i64, i8* } %36, i1 %35) br i1 %38, label %if12, label %else14 else: ; preds = %endif9 %39 = load i8, i8* %shutdown %40 = trunc i8 %39 to i1 br i1 %40, label %ororend, label %oror endif11: ; preds = %endif18, %endif13 %41 = getelementptr { i64, { i64, i8* }* }, { i64, { i64, i8* }* }* %args, i32 0, i32 0 %.len67 = load i64, i64* %41 %42 = icmp ule i64 %.len67, 1 %43 = zext i1 %42 to i8 store i8 %43, i8* %usingStdin %44 = load i8, i8* %usingStdin %45 = trunc i8 %44 to i1 br i1 %45, label %condtrue69, label %condfalse70 if12: ; preds = %if10 call void @_D3std5stdio16__T7writelnTAyaZ7writelnFNfAyaZv({ i64, i8* } { i64 17, i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.237, i32 0, i32 0) }) ret i32 0 else14: ; preds = %if10 call void @_D3std5stdio16__T7writelnTAyaZ7writelnFNfAyaZv({ i64, i8* } { i64 21, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.238, i32 0, i32 0) }) ret i32 1 endif13: ; preds = %afterreturn16, %afterreturn15 br label %endif11 afterreturn15: ; No predecessors! br label %endif13 afterreturn16: ; No predecessors! br label %endif13 oror: ; preds = %else %46 = load i8, i8* %clearCache %47 = trunc i8 %46 to i1 br label %ororend ororend: ; preds = %oror, %else %ororval = phi i1 [ true, %else ], [ %47, %oror ] br i1 %ororval, label %if17, label %else19 if17: ; preds = %ororend %48 = load i8, i8* %shutdown %49 = trunc i8 %48 to i1 br i1 %49, label %if20, label %else22 else19: ; preds = %ororend %50 = getelementptr { i64, { i64, i8* }* }, { i64, { i64, i8* }* }* %importPaths, i32 0, i32 0 %.len29 = load i64, i64* %50 %51 = icmp ugt i64 %.len29, 0 br i1 %51, label %if30, label %else32 endif18: ; preds = %endif31, %try.success br label %endif11 if20: ; preds = %if17 %52 = getelementptr %common.messages.AutocompleteRequest, %common.messages.AutocompleteRequest* %request, i32 0, i32 1 store i16 8, i16* %52 br label %endif21 else22: ; preds = %if17 %53 = load i8, i8* %clearCache %54 = trunc i8 %53 to i1 br i1 %54, label %if23, label %endif24 endif21: ; preds = %endif24, %if20 %55 = load { i64, i8* }, { i64, i8* }* %socketFile %56 = load i16, i16* %port %57 = call %std.socket.Socket* @_D6client6client12createSocketFAyatZC3std6socket6Socket(i16 zeroext %56, { i64, i8* } %55) store %std.socket.Socket* %57, %std.socket.Socket** %socket %58 = load %std.socket.Socket*, %std.socket.Socket** %socket %59 = invoke i1 @_D6common8messages11sendRequestFC3std6socket6SocketS6common8messages19AutocompleteRequestZb(%common.messages.AutocompleteRequest* byval %request, %std.socket.Socket* %58) to label %postinvoke26 unwind label %landingPad25 if23: ; preds = %else22 %60 = getelementptr %common.messages.AutocompleteRequest, %common.messages.AutocompleteRequest* %request, i32 0, i32 1 store i16 2, i16* %60 br label %endif24 endif24: ; preds = %if23, %else22 br label %endif21 finally: ; preds = %afterreturn28, %condend, %landingPad25 %61 = load %std.socket.Socket*, %std.socket.Socket** %socket %62 = getelementptr %std.socket.Socket, %std.socket.Socket* %61, i32 0, i32 0 %63 = load %std.socket.Socket.__vtbl*, %std.socket.Socket.__vtbl** %62 %"socket.shutdown@vtbl" = getelementptr %std.socket.Socket.__vtbl, %std.socket.Socket.__vtbl* %63, i32 0, i32 15 %socket.shutdown = load void (%std.socket.Socket*, i32)*, void (%std.socket.Socket*, i32)** %"socket.shutdown@vtbl", align 8 %64 = load %std.socket.Socket*, %std.socket.Socket** %socket call void %socket.shutdown(%std.socket.Socket* %64, i32 2) %65 = load %std.socket.Socket*, %std.socket.Socket** %socket %66 = getelementptr %std.socket.Socket, %std.socket.Socket* %65, i32 0, i32 0 %67 = load %std.socket.Socket.__vtbl*, %std.socket.Socket.__vtbl** %66 %"socket.close@vtbl" = getelementptr %std.socket.Socket.__vtbl, %std.socket.Socket.__vtbl* %67, i32 0, i32 16 %socket.close = load void (%std.socket.Socket*)*, void (%std.socket.Socket*)** %"socket.close@vtbl", align 8 %68 = load %std.socket.Socket*, %std.socket.Socket** %socket call void %socket.close(%std.socket.Socket* %68) %69 = load i32, i32* %branchsel.finally switch i32 %69, label %unwind.resume [ i32 1, label %return i32 2, label %try.success ] condtrue: ; preds = %postinvoke26 store i32 0, i32* %.makelvaluetmp store i32* %.makelvaluetmp, i32** %condtmp br label %condend condfalse: ; preds = %postinvoke26 store i32 1, i32* %.makelvaluetmp27 store i32* %.makelvaluetmp27, i32** %condtmp br label %condend condend: ; preds = %condfalse, %condtrue %70 = load i32*, i32** %condtmp %71 = load i32, i32* %70 %72 = load i32, i32* %70 store i32 %72, i32* %return.slot store i32 1, i32* %branchsel.finally br label %finally postinvoke26: ; preds = %endif21 br i1 %59, label %condtrue, label %condfalse landingPad25: ; preds = %endif21 %73 = landingpad { i8*, i32 } cleanup %74 = extractvalue { i8*, i32 } %73, 0 store i8* %74, i8** %eh.ptr %75 = extractvalue { i8*, i32 } %73, 1 store i32 %75, i32* %eh.selector store i32 0, i32* %branchsel.finally br label %finally return: ; preds = %finally128, %finally52, %finally39, %finally %76 = load i32, i32* %return.slot ret i32 %76 afterreturn28: ; No predecessors! store i32 2, i32* %branchsel.finally br label %finally try.success: ; preds = %finally br label %endif18 if30: ; preds = %else19 %77 = getelementptr %common.messages.AutocompleteRequest, %common.messages.AutocompleteRequest* %request, i32 0, i32 1 %78 = load i16, i16* %77 %79 = zext i16 %78 to i32 %80 = or i32 %79, 4 %81 = trunc i32 %80 to i16 store i16 %81, i16* %77 %82 = getelementptr %common.messages.AutocompleteRequest, %common.messages.AutocompleteRequest* %request, i32 0, i32 3 %83 = bitcast %nest.main* %.frame to i8* %84 = load { i64, { i64, i8* }* }, { i64, { i64, i8* }* }* %importPaths call void @_D3std9algorithm9iteration46__T3mapS356client6client4mainFAAyaZ9__lambda4Z13__T3mapTAAyaZ3mapMFNaNbNiNfAAyaZS3std9algorithm9iteration57__T9MapResultS356client6client4mainFAAyaZ9__lambda4TAAyaZ9MapResult(%"client.client.main.MapResult!(__lambda4, string[]).MapResult"* noalias sret %.rettmp33, i8* %83, { i64, { i64, i8* }* } %84) %85 = call { i64, { i64, i8* }* } @_D3std5array105__T5arrayTS3std9algorithm9iteration57__T9MapResultS356client6client4mainFAAyaZ9__lambda4TAAyaZ9MapResultZ5arrayFNaNfS3std9algorithm9iteration57__T9MapResultS356client6client4mainFAAyaZ9__lambda4TAAyaZ9MapResultZAAya(%"client.client.main.MapResult!(__lambda4, string[]).MapResult"* byval %.rettmp33) %.ptr34 = extractvalue { i64, { i64, i8* }* } %85, 1 %.len35 = extractvalue { i64, { i64, i8* }* } %85, 0 %86 = getelementptr { i64, { i64, i8* }* }, { i64, { i64, i8* }* }* %82, i32 0, i32 0 store i64 %.len35, i64* %86 %87 = getelementptr { i64, { i64, i8* }* }, { i64, { i64, i8* }* }* %82, i32 0, i32 1 store { i64, i8* }* %.ptr34, { i64, i8* }** %87 %88 = load i64, i64* %cursorPos %89 = icmp eq i64 %88, -1 br i1 %89, label %if36, label %endif37 else32: ; preds = %else19 %90 = load i8, i8* %listImports %91 = trunc i8 %90 to i1 br i1 %91, label %if48, label %else50 endif31: ; preds = %endif49, %endif37 br label %endif18 if36: ; preds = %if30 %92 = load { i64, i8* }, { i64, i8* }* %socketFile %93 = load i16, i16* %port %94 = call %std.socket.Socket* @_D6client6client12createSocketFAyatZC3std6socket6Socket(i16 zeroext %93, { i64, i8* } %92) store %std.socket.Socket* %94, %std.socket.Socket** %socket38 %95 = load %std.socket.Socket*, %std.socket.Socket** %socket38 %96 = invoke i1 @_D6common8messages11sendRequestFC3std6socket6SocketS6common8messages19AutocompleteRequestZb(%common.messages.AutocompleteRequest* byval %request, %std.socket.Socket* %95) to label %postinvoke45 unwind label %landingPad44 endif37: ; preds = %if30 br label %endif31 finally39: ; preds = %endif47, %if46, %landingPad44 %97 = load %std.socket.Socket*, %std.socket.Socket** %socket38 %98 = getelementptr %std.socket.Socket, %std.socket.Socket* %97, i32 0, i32 0 %99 = load %std.socket.Socket.__vtbl*, %std.socket.Socket.__vtbl** %98 %"socket.shutdown@vtbl40" = getelementptr %std.socket.Socket.__vtbl, %std.socket.Socket.__vtbl* %99, i32 0, i32 15 %socket.shutdown41 = load void (%std.socket.Socket*, i32)*, void (%std.socket.Socket*, i32)** %"socket.shutdown@vtbl40", align 8 %100 = load %std.socket.Socket*, %std.socket.Socket** %socket38 call void %socket.shutdown41(%std.socket.Socket* %100, i32 2) %101 = load %std.socket.Socket*, %std.socket.Socket** %socket38 %102 = getelementptr %std.socket.Socket, %std.socket.Socket* %101, i32 0, i32 0 %103 = load %std.socket.Socket.__vtbl*, %std.socket.Socket.__vtbl** %102 %"socket.close@vtbl42" = getelementptr %std.socket.Socket.__vtbl, %std.socket.Socket.__vtbl* %103, i32 0, i32 16 %socket.close43 = load void (%std.socket.Socket*)*, void (%std.socket.Socket*)** %"socket.close@vtbl42", align 8 %104 = load %std.socket.Socket*, %std.socket.Socket** %socket38 call void %socket.close43(%std.socket.Socket* %104) %105 = load i32, i32* %branchsel.finally39 switch i32 %105, label %unwind.resume [ i32 1, label %return ] postinvoke45: ; preds = %if36 %106 = icmp eq i1 %96, false br i1 %106, label %if46, label %endif47 landingPad44: ; preds = %if36 %107 = landingpad { i8*, i32 } cleanup %108 = extractvalue { i8*, i32 } %107, 0 store i8* %108, i8** %eh.ptr %109 = extractvalue { i8*, i32 } %107, 1 store i32 %109, i32* %eh.selector store i32 0, i32* %branchsel.finally39 br label %finally39 if46: ; preds = %postinvoke45 store i32 1, i32* %return.slot store i32 1, i32* %branchsel.finally39 br label %finally39 endif47: ; preds = %postinvoke45 store i32 0, i32* %return.slot store i32 1, i32* %branchsel.finally39 br label %finally39 if48: ; preds = %else32 %110 = getelementptr %common.messages.AutocompleteRequest, %common.messages.AutocompleteRequest* %request, i32 0, i32 1 %111 = load i16, i16* %110 %112 = zext i16 %111 to i32 %113 = or i32 %112, 256 %114 = trunc i32 %113 to i16 store i16 %114, i16* %110 %115 = load { i64, i8* }, { i64, i8* }* %socketFile %116 = load i16, i16* %port %117 = call %std.socket.Socket* @_D6client6client12createSocketFAyatZC3std6socket6Socket(i16 zeroext %116, { i64, i8* } %115) store %std.socket.Socket* %117, %std.socket.Socket** %socket51 %118 = load %std.socket.Socket*, %std.socket.Socket** %socket51 %119 = invoke i1 @_D6common8messages11sendRequestFC3std6socket6SocketS6common8messages19AutocompleteRequestZb(%common.messages.AutocompleteRequest* byval %request, %std.socket.Socket* %118) to label %postinvoke58 unwind label %landingPad57 else50: ; preds = %else32 %120 = load { i64, i8* }, { i64, i8* }* %search %121 = getelementptr { i64, i8* }, { i64, i8* }* %search, i32 0, i32 0 %.len61 = load i64, i64* %121 %122 = getelementptr { i64, i8* }, { i64, i8* }* %search, i32 0, i32 1 %.ptr62 = load i8*, i8** %122 %123 = insertvalue { i64, i8* } undef, i64 %.len61, 0 %124 = insertvalue { i64, i8* } %123, i8* %.ptr62, 1 %125 = call i32 @_adEq2({ i64, i8* } %124, { i64, i8* } zeroinitializer, %object.TypeInfo* @_D12TypeInfo_Aya6__initZ) #1 %126 = icmp ne i32 %125, 0 br i1 %126, label %andand, label %andandend endif49: ; preds = %endif64 br label %endif31 finally52: ; preds = %postinvoke60, %landingPad57 %127 = load %std.socket.Socket*, %std.socket.Socket** %socket51 %128 = getelementptr %std.socket.Socket, %std.socket.Socket* %127, i32 0, i32 0 %129 = load %std.socket.Socket.__vtbl*, %std.socket.Socket.__vtbl** %128 %"socket.shutdown@vtbl53" = getelementptr %std.socket.Socket.__vtbl, %std.socket.Socket.__vtbl* %129, i32 0, i32 15 %socket.shutdown54 = load void (%std.socket.Socket*, i32)*, void (%std.socket.Socket*, i32)** %"socket.shutdown@vtbl53", align 8 %130 = load %std.socket.Socket*, %std.socket.Socket** %socket51 call void %socket.shutdown54(%std.socket.Socket* %130, i32 2) %131 = load %std.socket.Socket*, %std.socket.Socket** %socket51 %132 = getelementptr %std.socket.Socket, %std.socket.Socket* %131, i32 0, i32 0 %133 = load %std.socket.Socket.__vtbl*, %std.socket.Socket.__vtbl** %132 %"socket.close@vtbl55" = getelementptr %std.socket.Socket.__vtbl, %std.socket.Socket.__vtbl* %133, i32 0, i32 16 %socket.close56 = load void (%std.socket.Socket*)*, void (%std.socket.Socket*)** %"socket.close@vtbl55", align 8 %134 = load %std.socket.Socket*, %std.socket.Socket** %socket51 call void %socket.close56(%std.socket.Socket* %134) %135 = load i32, i32* %branchsel.finally52 switch i32 %135, label %unwind.resume [ i32 1, label %return ] postinvoke58: ; preds = %if48 %136 = load %std.socket.Socket*, %std.socket.Socket** %socket51 invoke void @_D6common8messages11getResponseFC3std6socket6SocketZS6common8messages20AutocompleteResponse(%common.messages.AutocompleteResponse* noalias sret %response, %std.socket.Socket* %136) to label %postinvoke59 unwind label %landingPad57 postinvoke59: ; preds = %postinvoke58 invoke void @_D6client6client15printImportListFxS6common8messages20AutocompleteResponseZv(%common.messages.AutocompleteResponse* byval %response) to label %postinvoke60 unwind label %landingPad57 postinvoke60: ; preds = %postinvoke59 store i32 0, i32* %return.slot store i32 1, i32* %branchsel.finally52 br label %finally52 landingPad57: ; preds = %postinvoke59, %postinvoke58, %if48 %137 = landingpad { i8*, i32 } cleanup %138 = extractvalue { i8*, i32 } %137, 0 store i8* %138, i8** %eh.ptr %139 = extractvalue { i8*, i32 } %137, 1 store i32 %139, i32* %eh.selector store i32 0, i32* %branchsel.finally52 br label %finally52 andand: ; preds = %else50 %140 = load i64, i64* %cursorPos %141 = icmp eq i64 %140, -1 br label %andandend andandend: ; preds = %andand, %else50 %andandval = phi i1 [ false, %else50 ], [ %141, %andand ] br i1 %andandval, label %if63, label %endif64 if63: ; preds = %andandend %142 = getelementptr { i64, { i64, i8* }* }, { i64, { i64, i8* }* }* %args, i32 0, i32 1 %.ptr65 = load { i64, i8* }*, { i64, i8* }** %142 %143 = getelementptr { i64, i8* }, { i64, i8* }* %.ptr65, i64 0 %144 = load { i64, i8* }, { i64, i8* }* %143 call void @_D6client6client9printHelpFAyaZv({ i64, i8* } %144) ret i32 1 endif64: ; preds = %afterreturn66, %andandend br label %endif49 afterreturn66: ; No predecessors! br label %endif64 condtrue69: ; preds = %endif11 store { i64, i8* } { i64 5, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.239, i32 0, i32 0) }, { i64, i8* }* %.makelvaluetmp72 store { i64, i8* }* %.makelvaluetmp72, { i64, i8* }** %condtmp68 br label %condend71 condfalse70: ; preds = %endif11 %145 = getelementptr { i64, { i64, i8* }* }, { i64, { i64, i8* }* }* %args, i32 0, i32 1 %.ptr73 = load { i64, i8* }*, { i64, i8* }** %145 %146 = getelementptr { i64, i8* }, { i64, i8* }* %.ptr73, i64 1 store { i64, i8* }* %146, { i64, i8* }** %condtmp68 br label %condend71 condend71: ; preds = %condfalse70, %condtrue69 %147 = load { i64, i8* }*, { i64, i8* }** %condtmp68 %148 = getelementptr { i64, i8* }, { i64, i8* }* %147, i32 0, i32 1 %.ptr74 = load i8*, i8** %148 %149 = getelementptr { i64, i8* }, { i64, i8* }* %147, i32 0, i32 0 %.len75 = load i64, i64* %149 %150 = getelementptr { i64, i8* }, { i64, i8* }* %fileName, i32 0, i32 0 store i64 %.len75, i64* %150 %151 = getelementptr { i64, i8* }, { i64, i8* }* %fileName, i32 0, i32 1 store i8* %.ptr74, i8** %151 %152 = load i8, i8* %usingStdin %153 = trunc i8 %152 to i1 %154 = icmp eq i1 %153, false br i1 %154, label %andand76, label %andandend77 andand76: ; preds = %condend71 %155 = getelementptr { i64, { i64, i8* }* }, { i64, { i64, i8* }* }* %args, i32 0, i32 1 %.ptr78 = load { i64, i8* }*, { i64, i8* }** %155 %156 = getelementptr { i64, i8* }, { i64, i8* }* %.ptr78, i64 1 %157 = load { i64, i8* }, { i64, i8* }* %156 %158 = call i1 @_D3std4file6existsFNbNiNexAaZb({ i64, i8* } %157) %159 = icmp eq i1 %158, false br label %andandend77 andandend77: ; preds = %andand76, %condend71 %andandval79 = phi i1 [ false, %condend71 ], [ %159, %andand76 ] br i1 %andandval79, label %if80, label %endif81 if80: ; preds = %andandend77 %160 = getelementptr { i64, { i64, i8* }* }, { i64, { i64, i8* }* }* %args, i32 0, i32 1 %.ptr82 = load { i64, i8* }*, { i64, i8* }** %160 %161 = getelementptr { i64, i8* }, { i64, i8* }* %.ptr82, i64 1 %162 = load { i64, i8* }, { i64, i8* }* %161 call void @_D3std5stdio4File19__T8writeflnTaTAyaZ8writeflnMFNfxAaAyaZv(%std.stdio.File* @_D3std5stdio6stderrS3std5stdio4File, { i64, i8* } %162, { i64, i8* } { i64 17, i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.240, i32 0, i32 0) }) ret i32 1 endif81: ; preds = %afterreturn83, %andandend77 store { i64, i8* } zeroinitializer, { i64, i8* }* %sourceCode %163 = load i8, i8* %usingStdin %164 = trunc i8 %163 to i1 br i1 %164, label %if84, label %else86 afterreturn83: ; No predecessors! br label %endif81 if84: ; preds = %endif81 %sarrayptr = getelementptr [4096 x i8], [4096 x i8]* %buf, i32 0, i32 0 call void @llvm.memset.p0i8.i64(i8* %sarrayptr, i8 0, i64 4096, i32 1, i1 false) br label %forcond else86: ; preds = %endif81 %165 = getelementptr { i64, { i64, i8* }* }, { i64, { i64, i8* }* }* %args, i32 0, i32 1 %.ptr94 = load { i64, i8* }*, { i64, i8* }** %165 %166 = getelementptr { i64, i8* }, { i64, i8* }* %.ptr94, i64 1 %167 = load { i64, i8* }, { i64, i8* }* %166 %168 = call i1 @_D3std4file6existsFNbNiNexAaZb({ i64, i8* } %167) %169 = icmp eq i1 %168, false br i1 %169, label %if95, label %endif96 endif85: ; preds = %try.success108, %endfor %170 = getelementptr %common.messages.AutocompleteRequest, %common.messages.AutocompleteRequest* %request, i32 0, i32 0 %171 = getelementptr { i64, i8* }, { i64, i8* }* %fileName, i32 0, i32 1 %.ptr109 = load i8*, i8** %171 %172 = getelementptr { i64, i8* }, { i64, i8* }* %fileName, i32 0, i32 0 %.len110 = load i64, i64* %172 %173 = getelementptr { i64, i8* }, { i64, i8* }* %170, i32 0, i32 0 store i64 %.len110, i64* %173 %174 = getelementptr { i64, i8* }, { i64, i8* }* %170, i32 0, i32 1 store i8* %.ptr109, i8** %174 %175 = getelementptr %common.messages.AutocompleteRequest, %common.messages.AutocompleteRequest* %request, i32 0, i32 3 %176 = getelementptr { i64, { i64, i8* }* }, { i64, { i64, i8* }* }* %importPaths, i32 0, i32 1 %.ptr111 = load { i64, i8* }*, { i64, i8* }** %176 %177 = getelementptr { i64, { i64, i8* }* }, { i64, { i64, i8* }* }* %importPaths, i32 0, i32 0 %.len112 = load i64, i64* %177 %178 = getelementptr { i64, { i64, i8* }* }, { i64, { i64, i8* }* }* %175, i32 0, i32 0 store i64 %.len112, i64* %178 %179 = getelementptr { i64, { i64, i8* }* }, { i64, { i64, i8* }* }* %175, i32 0, i32 1 store { i64, i8* }* %.ptr111, { i64, i8* }** %179 %180 = getelementptr %common.messages.AutocompleteRequest, %common.messages.AutocompleteRequest* %request, i32 0, i32 4 %181 = getelementptr { i64, i8* }, { i64, i8* }* %sourceCode, i32 0, i32 1 %.ptr113 = load i8*, i8** %181 %182 = getelementptr { i64, i8* }, { i64, i8* }* %sourceCode, i32 0, i32 0 %.len114 = load i64, i64* %182 %183 = getelementptr { i64, i8* }, { i64, i8* }* %180, i32 0, i32 0 store i64 %.len114, i64* %183 %184 = getelementptr { i64, i8* }, { i64, i8* }* %180, i32 0, i32 1 store i8* %.ptr113, i8** %184 %185 = getelementptr %common.messages.AutocompleteRequest, %common.messages.AutocompleteRequest* %request, i32 0, i32 5 %186 = load i64, i64* %cursorPos store i64 %186, i64* %185 %187 = getelementptr %common.messages.AutocompleteRequest, %common.messages.AutocompleteRequest* %request, i32 0, i32 6 %188 = getelementptr { i64, i8* }, { i64, i8* }* %search, i32 0, i32 1 %.ptr115 = load i8*, i8** %188 %189 = getelementptr { i64, i8* }, { i64, i8* }* %search, i32 0, i32 0 %.len116 = load i64, i64* %189 %190 = getelementptr { i64, i8* }, { i64, i8* }* %187, i32 0, i32 0 store i64 %.len116, i64* %190 %191 = getelementptr { i64, i8* }, { i64, i8* }* %187, i32 0, i32 1 store i8* %.ptr115, i8** %191 %192 = load i8, i8* %symbolLocation %193 = trunc i8 %192 to i1 br i1 %193, label %if117, label %else119 forcond: ; preds = %forinc, %if84 br i1 true, label %forbody, label %endfor forbody: ; preds = %forcond %194 = bitcast [4096 x i8]* %buf to i8* %195 = insertvalue { i64, i8* } { i64 4096, i8* undef }, i8* %194, 1 %196 = call { i64, i8* } @_D3std5stdio4File14__T7rawReadThZ7rawReadMFAhZAh(%std.stdio.File* @_D3std5stdio5stdinS3std5stdio4File, { i64, i8* } %195) %.ptr87 = extractvalue { i64, i8* } %196, 1 %.len88 = extractvalue { i64, i8* } %196, 0 %197 = getelementptr { i64, i8* }, { i64, i8* }* %b, i32 0, i32 0 store i64 %.len88, i64* %197 %198 = getelementptr { i64, i8* }, { i64, i8* }* %b, i32 0, i32 1 store i8* %.ptr87, i8** %198 %199 = getelementptr { i64, i8* }, { i64, i8* }* %b, i32 0, i32 0 %.len89 = load i64, i64* %199 %200 = icmp eq i64 %.len89, 0 br i1 %200, label %if90, label %endif91 forinc: ; preds = %endif91 br label %forcond endfor: ; preds = %if90, %forcond br label %endif85 if90: ; preds = %forbody br label %endfor endif91: ; preds = %afterbreak, %forbody %201 = load { i64, i8* }, { i64, i8* }* %b %.appendedArray = call { i64, i8* } @_d_arrayappendT(%object.TypeInfo* @_D11TypeInfo_Ah6__initZ, { i64, i8* }* %sourceCode, { i64, i8* } %201) %.len92 = extractvalue { i64, i8* } %.appendedArray, 0 %.ptr93 = extractvalue { i64, i8* } %.appendedArray, 1 %202 = getelementptr { i64, i8* }, { i64, i8* }* %sourceCode, i32 0, i32 0 store i64 %.len92, i64* %202 %203 = getelementptr { i64, i8* }, { i64, i8* }* %sourceCode, i32 0, i32 1 store i8* %.ptr93, i8** %203 br label %forinc afterbreak: ; No predecessors! br label %endif91 if95: ; preds = %else86 %204 = getelementptr { i64, { i64, i8* }* }, { i64, { i64, i8* }* }* %args, i32 0, i32 1 %.ptr97 = load { i64, i8* }*, { i64, i8* }** %204 %205 = getelementptr { i64, i8* }, { i64, i8* }* %.ptr97, i64 1 %206 = load { i64, i8* }, { i64, i8* }* %205 call void @_D3std5stdio4File20__T7writelnTAyaTAyaZ7writelnMFNfAyaAyaZv(%std.stdio.File* @_D3std5stdio6stderrS3std5stdio4File, { i64, i8* } %206, { i64, i8* } { i64 15, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.241, i32 0, i32 0) }) ret i32 1 endif96: ; preds = %afterreturn98, %else86 %207 = bitcast %std.stdio.File* %f to i8* call void @llvm.memset.p0i8.i64(i8* %207, i8 0, i64 24, i32 1, i1 false) %208 = getelementptr { i64, { i64, i8* }* }, { i64, { i64, i8* }* }* %args, i32 0, i32 1 %.ptr99 = load { i64, i8* }*, { i64, i8* }** %208 %209 = getelementptr { i64, i8* }, { i64, i8* }* %.ptr99, i64 1 %210 = load { i64, i8* }, { i64, i8* }* %209 %211 = call %std.stdio.File* @_D3std5stdio4File6__ctorMFNcNfAyaxAaZS3std5stdio4File(%std.stdio.File* returned %f, { i64, i8* } { i64 2, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.242, i32 0, i32 0) }, { i64, i8* } %210) %212 = invoke i64 @_D3std5stdio4File4sizeMFNdNfZm(%std.stdio.File* %f) to label %postinvoke102 unwind label %landingPad101 afterreturn98: ; No predecessors! br label %endif96 finally100: ; preds = %postinvoke107, %landingPad101 call void @_D3std5stdio4File6__dtorMFNfZv(%std.stdio.File* %f) %213 = load i32, i32* %branchsel.finally100 switch i32 %213, label %unwind.resume [ i32 1, label %try.success108 ] postinvoke102: ; preds = %endif96 %214 = invoke i64 @_D3std4conv9__T2toTmZ9__T2toTmZ2toFNaNbNiNfmZm(i64 %212) to label %postinvoke103 unwind label %landingPad101 postinvoke103: ; preds = %postinvoke102 %215 = invoke { i64, i8* } @_D3std5array29__T18uninitializedArrayTAhTmZ18uninitializedArrayFNaNbNemZAh(i64 %214) to label %postinvoke104 unwind label %landingPad101 postinvoke104: ; preds = %postinvoke103 %.ptr105 = extractvalue { i64, i8* } %215, 1 %.len106 = extractvalue { i64, i8* } %215, 0 %216 = getelementptr { i64, i8* }, { i64, i8* }* %sourceCode, i32 0, i32 0 store i64 %.len106, i64* %216 %217 = getelementptr { i64, i8* }, { i64, i8* }* %sourceCode, i32 0, i32 1 store i8* %.ptr105, i8** %217 %218 = load { i64, i8* }, { i64, i8* }* %sourceCode %219 = invoke { i64, i8* } @_D3std5stdio4File14__T7rawReadThZ7rawReadMFAhZAh(%std.stdio.File* %f, { i64, i8* } %218) to label %postinvoke107 unwind label %landingPad101 postinvoke107: ; preds = %postinvoke104 store i32 1, i32* %branchsel.finally100 br label %finally100 landingPad101: ; preds = %postinvoke104, %postinvoke103, %postinvoke102, %endif96 %220 = landingpad { i8*, i32 } cleanup %221 = extractvalue { i8*, i32 } %220, 0 store i8* %221, i8** %eh.ptr %222 = extractvalue { i8*, i32 } %220, 1 store i32 %222, i32* %eh.selector store i32 0, i32* %branchsel.finally100 br label %finally100 try.success108: ; preds = %finally100 br label %endif85 if117: ; preds = %endif85 %223 = getelementptr %common.messages.AutocompleteRequest, %common.messages.AutocompleteRequest* %request, i32 0, i32 1 %224 = load i16, i16* %223 %225 = zext i16 %224 to i32 %226 = or i32 %225, 16 %227 = trunc i32 %226 to i16 store i16 %227, i16* %223 br label %endif118 else119: ; preds = %endif85 %228 = load i8, i8* %doc %229 = trunc i8 %228 to i1 br i1 %229, label %if120, label %else122 endif118: ; preds = %endif121, %if117 %230 = load { i64, i8* }, { i64, i8* }* %socketFile %231 = load i16, i16* %port %232 = call %std.socket.Socket* @_D6client6client12createSocketFAyatZC3std6socket6Socket(i16 zeroext %231, { i64, i8* } %230) store %std.socket.Socket* %232, %std.socket.Socket** %socket127 %233 = load %std.socket.Socket*, %std.socket.Socket** %socket127 %234 = invoke i1 @_D6common8messages11sendRequestFC3std6socket6SocketS6common8messages19AutocompleteRequestZb(%common.messages.AutocompleteRequest* byval %request, %std.socket.Socket* %233) to label %postinvoke134 unwind label %landingPad133 if120: ; preds = %else119 %235 = getelementptr %common.messages.AutocompleteRequest, %common.messages.AutocompleteRequest* %request, i32 0, i32 1 %236 = load i16, i16* %235 %237 = zext i16 %236 to i32 %238 = or i32 %237, 32 %239 = trunc i32 %238 to i16 store i16 %239, i16* %235 br label %endif121 else122: ; preds = %else119 %240 = load { i64, i8* }, { i64, i8* }* %search %241 = getelementptr { i64, i8* }, { i64, i8* }* %search, i32 0, i32 1 %.ptr126 = load i8*, i8** %241 %242 = icmp ne i8* %.ptr126, null br i1 %242, label %if123, label %else125 endif121: ; preds = %endif124, %if120 br label %endif118 if123: ; preds = %else122 %243 = getelementptr %common.messages.AutocompleteRequest, %common.messages.AutocompleteRequest* %request, i32 0, i32 1 %244 = load i16, i16* %243 %245 = zext i16 %244 to i32 %246 = or i32 %245, 128 %247 = trunc i32 %246 to i16 store i16 %247, i16* %243 br label %endif124 else125: ; preds = %else122 %248 = getelementptr %common.messages.AutocompleteRequest, %common.messages.AutocompleteRequest* %request, i32 0, i32 1 %249 = load i16, i16* %248 %250 = zext i16 %249 to i32 %251 = or i32 %250, 1 %252 = trunc i32 %251 to i16 store i16 %252, i16* %248 br label %endif124 endif124: ; preds = %else125, %if123 br label %endif121 finally128: ; preds = %endif140, %if135, %landingPad133 %253 = load %std.socket.Socket*, %std.socket.Socket** %socket127 %254 = getelementptr %std.socket.Socket, %std.socket.Socket* %253, i32 0, i32 0 %255 = load %std.socket.Socket.__vtbl*, %std.socket.Socket.__vtbl** %254 %"socket.shutdown@vtbl129" = getelementptr %std.socket.Socket.__vtbl, %std.socket.Socket.__vtbl* %255, i32 0, i32 15 %socket.shutdown130 = load void (%std.socket.Socket*, i32)*, void (%std.socket.Socket*, i32)** %"socket.shutdown@vtbl129", align 8 %256 = load %std.socket.Socket*, %std.socket.Socket** %socket127 call void %socket.shutdown130(%std.socket.Socket* %256, i32 2) %257 = load %std.socket.Socket*, %std.socket.Socket** %socket127 %258 = getelementptr %std.socket.Socket, %std.socket.Socket* %257, i32 0, i32 0 %259 = load %std.socket.Socket.__vtbl*, %std.socket.Socket.__vtbl** %258 %"socket.close@vtbl131" = getelementptr %std.socket.Socket.__vtbl, %std.socket.Socket.__vtbl* %259, i32 0, i32 16 %socket.close132 = load void (%std.socket.Socket*)*, void (%std.socket.Socket*)** %"socket.close@vtbl131", align 8 %260 = load %std.socket.Socket*, %std.socket.Socket** %socket127 call void %socket.close132(%std.socket.Socket* %260) %261 = load i32, i32* %branchsel.finally128 switch i32 %261, label %unwind.resume [ i32 1, label %return ] postinvoke134: ; preds = %endif118 %262 = icmp eq i1 %234, false br i1 %262, label %if135, label %endif136 postinvoke138: ; preds = %endif136 %263 = load i8, i8* %symbolLocation %264 = trunc i8 %263 to i1 br i1 %264, label %if139, label %else141 postinvoke142: ; preds = %if139 br label %endif140 postinvoke146: ; preds = %if143 br label %endif144 postinvoke152: ; preds = %if149 br label %endif150 postinvoke153: ; preds = %else151 br label %endif150 landingPad133: ; preds = %else151, %if149, %if143, %if139, %endif136, %endif118 %265 = landingpad { i8*, i32 } cleanup %266 = extractvalue { i8*, i32 } %265, 0 store i8* %266, i8** %eh.ptr %267 = extractvalue { i8*, i32 } %265, 1 store i32 %267, i32* %eh.selector store i32 0, i32* %branchsel.finally128 br label %finally128 if135: ; preds = %postinvoke134 store i32 1, i32* %return.slot store i32 1, i32* %branchsel.finally128 br label %finally128 endif136: ; preds = %postinvoke134 %268 = load %std.socket.Socket*, %std.socket.Socket** %socket127 invoke void @_D6common8messages11getResponseFC3std6socket6SocketZS6common8messages20AutocompleteResponse(%common.messages.AutocompleteResponse* noalias sret %response137, %std.socket.Socket* %268) to label %postinvoke138 unwind label %landingPad133 if139: ; preds = %postinvoke138 invoke void @_D6client6client21printLocationResponseFS6common8messages20AutocompleteResponseZv(%common.messages.AutocompleteResponse* byval %response137) to label %postinvoke142 unwind label %landingPad133 else141: ; preds = %postinvoke138 %269 = load i8, i8* %doc %270 = trunc i8 %269 to i1 br i1 %270, label %if143, label %else145 endif140: ; preds = %endif144, %postinvoke142 store i32 0, i32* %return.slot store i32 1, i32* %branchsel.finally128 br label %finally128 if143: ; preds = %else141 invoke void @_D6client6client16printDocResponseFS6common8messages20AutocompleteResponseZv(%common.messages.AutocompleteResponse* byval %response137) to label %postinvoke146 unwind label %landingPad133 else145: ; preds = %else141 %271 = load { i64, i8* }, { i64, i8* }* %search %272 = getelementptr { i64, i8* }, { i64, i8* }* %search, i32 0, i32 0 %.len147 = load i64, i64* %272 %273 = icmp eq i64 %.len147, 0 %274 = getelementptr { i64, i8* }, { i64, i8* }* %search, i32 0, i32 1 %.ptr148 = load i8*, i8** %274 %275 = icmp eq i8* %.ptr148, null %276 = and i1 %273, %275 %277 = xor i1 %276, true br i1 %277, label %if149, label %else151 endif144: ; preds = %endif150, %postinvoke146 br label %endif140 if149: ; preds = %else145 invoke void @_D6client6client19printSearchResponseFxS6common8messages20AutocompleteResponseZv(%common.messages.AutocompleteResponse* byval %response137) to label %postinvoke152 unwind label %landingPad133 else151: ; preds = %else145 invoke void @_D6client6client23printCompletionResponseFS6common8messages20AutocompleteResponseZv(%common.messages.AutocompleteResponse* byval %response137) to label %postinvoke153 unwind label %landingPad133 endif150: ; preds = %postinvoke153, %postinvoke152 br label %endif144 } * DtoDefineFunction(__entrypoint.main): (3) * * DtoFunctionType(extern (C) int(int argc, char** argv)) * * * x86-64 ABI: Transforming return type * * * x86-64 ABI: Transforming argument types * * * Final function type: i32 (i32, i8**) * * DtoResolveFunction(__entrypoint.main): (3) * * * DtoDeclareFunction(__entrypoint.main): (3) * * * * DtoFunctionType(extern (C) int(int argc, char** argv)) * * * * func = declare i32 @main(i32, i8**) * * Doing function body for: main * * DtoCreateNestedContext for main * * * DtoCreateNestedContextType for __entrypoint.main * * CompoundStatement::toIR(): * * * ReturnStatement::toIR(): (3) * * * * CallExp::toElem: _d_run_main(argc, argv, & _Dmain) @ int * * * * * VarExp::toElem: _d_run_main @ extern (C) int(int argc, char** argv, void* mainFunc) * * * * * * DtoSymbolAddress ('_d_run_main' of type 'extern (C) int(int argc, char** argv, void* mainFunc)') * * * * * * * FuncDeclaration * * * * * DtoCallFunction() * * * * * * Building type: extern (C) int(int argc, char** argv, void* mainFunc) * * * * * * * DtoFunctionType(extern (C) int(int argc, char** argv, void* mainFunc)) * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * Final function type: i32 (i32, i8**, i8*) * * * * * * doing normal arguments * * * * * * Arguments so far: (0) * * * * * * Function type: extern (C) int(int argc, char** argv, void* mainFunc) * * * * * * DtoArgument * * * * * * * VarExp::toElem: argc @ int * * * * * * * * DtoSymbolAddress ('argc' of type 'int') * * * * * * * * * function param * * * * * * * * * type: int * * * * * * DtoArgument * * * * * * * VarExp::toElem: argv @ char** * * * * * * * * DtoSymbolAddress ('argv' of type 'char**') * * * * * * * * * function param * * * * * * * * * type: char** * * * * * * DtoArgument * * * * * * * SymOffExp::toElem: & _Dmain @ void* * * * * * * * * DtoSymbolAddress ('_Dmain' of type 'extern (C) int(char[][] args)') * * * * * * * * * FuncDeclaration * * * * * * * * Casting from 'extern (C) int function(char[][] args)' to 'void*' * * * * * * * * * src: ; Function Attrs: uwtable define i32 @_Dmain({ i64, { i64, i8* }* } %unnamed) #0 personality i32 (i32, i32, i64, i8*, i8*)* @_d_eh_personality { %args = alloca { i64, { i64, i8* }* }, align 8 %.frame = alloca %nest.main, align 8 %cursorPos = alloca i64, align 8 %importPaths = alloca { i64, { i64, i8* }* }, align 8 %port = alloca i16, align 2 %help = alloca i8, align 1 %shutdown = alloca i8, align 1 %clearCache = alloca i8, align 1 %symbolLocation = alloca i8, align 1 %doc = alloca i8, align 1 %query = alloca i8, align 1 %printVersion = alloca i8, align 1 %listImports = alloca i8, align 1 %search = alloca { i64, i8* }, align 8 %useTCP = alloca i8, align 1 %socketFile = alloca { i64, i8* }, align 8 %eh.ptr = alloca i8* %.rettmp = alloca %std.getopt.GetoptResult, align 8 %.getAddressOf_dump = alloca { i64, i8* }, align 8 %eh.selector = alloca i32 %request = alloca %common.messages.AutocompleteRequest, align 8 %socket = alloca %std.socket.Socket*, align 8 %condtmp = alloca i32*, align 8 %.makelvaluetmp = alloca i32, align 4 %.makelvaluetmp27 = alloca i32, align 4 %return.slot = alloca i32 %branchsel.finally = alloca i32 %.rettmp33 = alloca %"client.client.main.MapResult!(__lambda4, string[]).MapResult", align 8 %socket38 = alloca %std.socket.Socket*, align 8 %branchsel.finally39 = alloca i32 %socket51 = alloca %std.socket.Socket*, align 8 %response = alloca %common.messages.AutocompleteResponse, align 8 %branchsel.finally52 = alloca i32 %usingStdin = alloca i8, align 1 %fileName = alloca { i64, i8* }, align 8 %condtmp68 = alloca { i64, i8* }*, align 8 %.makelvaluetmp72 = alloca { i64, i8* }, align 8 %sourceCode = alloca { i64, i8* }, align 8 %buf = alloca [4096 x i8], align 1 %b = alloca { i64, i8* }, align 8 %f = alloca %std.stdio.File, align 8 %branchsel.finally100 = alloca i32 %socket127 = alloca %std.socket.Socket*, align 8 %branchsel.finally128 = alloca i32 %response137 = alloca %common.messages.AutocompleteResponse, align 8 store { i64, { i64, i8* }* } %unnamed, { i64, { i64, i8* }* }* %args %e = getelementptr %nest.main, %nest.main* %.frame, i32 0, i32 0 %1 = call %std.experimental.logger.core.Logger* @_D3std12experimental6logger4core9sharedLogFNdNfZC3std12experimental6logger4core6Logger() %2 = bitcast %nest.main* %.frame to i8* %3 = insertvalue { i8*, void (i8*)* } undef, i8* %2, 0 %.func = insertvalue { i8*, void (i8*)* } %3, void (i8*)* @_D6client6client4mainFAAyaZ9__lambda2MFNfZv, 1 call void @_D3std12experimental6logger4core6Logger12fatalHandlerMFNaNdNiNfDFNfZvZv(%std.experimental.logger.core.Logger* %1, { i8*, void (i8*)* } %.func) store i64 -1, i64* %cursorPos store { i64, { i64, i8* }* } zeroinitializer, { i64, { i64, i8* }* }* %importPaths store i16 9166, i16* %port store i8 0, i8* %help store i8 0, i8* %shutdown store i8 0, i8* %clearCache store i8 0, i8* %symbolLocation store i8 0, i8* %doc store i8 0, i8* %query store i8 0, i8* %printVersion store i8 0, i8* %listImports store { i64, i8* } zeroinitializer, { i64, i8* }* %search store i8 0, i8* %useTCP %4 = call { i64, i8* } @_D6common6socket18generateSocketNameFZAya() %.ptr = extractvalue { i64, i8* } %4, 1 %.len = extractvalue { i64, i8* } %4, 0 %5 = getelementptr { i64, i8* }, { i64, i8* }* %socketFile, i32 0, i32 0 store i64 %.len, i64* %5 %6 = getelementptr { i64, i8* }, { i64, i8* }* %socketFile, i32 0, i32 1 store i8* %.ptr, i8** %6 store { i64, i8* } { i64 3, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.232, i32 0, i32 0) }, { i64, i8* }* %.getAddressOf_dump invoke void @_D3std6getopt116__T6getoptTAyaTPmTAyaTPAAyaTAyaTPtTAyaTPbTAyaTPbTAyaTPbTAyaTPbTAyaTPbTAyaTPbTAyaTPAyaTAyaTPbTAyaTPbTAyaTPbTAyaTPAyaZ6getoptFKAAyaAyaPmAyaPAAyaAyaPtAyaPbAyaPbAyaPbAyaPbAyaPbAyaPbAyaPAyaAyaPbAyaPbAyaPbAyaPAyaZS3std6getopt12GetoptResult(%std.getopt.GetoptResult* noalias sret %.rettmp, { i64, i8* }* %socketFile, { i64, i8* } { i64 10, i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.233, i32 0, i32 0) }, i8* %useTCP, { i64, i8* }* byval %.getAddressOf_dump, i8* %listImports, { i64, i8* } { i64 11, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.231, i32 0, i32 0) }, i8* %printVersion, { i64, i8* } { i64 7, i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.230, i32 0, i32 0) }, { i64, i8* }* %search, { i64, i8* } { i64 8, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.229, i32 0, i32 0) }, i8* %query, { i64, i8* } { i64 14, i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.228, i32 0, i32 0) }, i8* %doc, { i64, i8* } { i64 5, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.227, i32 0, i32 0) }, i8* %symbolLocation, { i64, i8* } { i64 16, i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str.226, i32 0, i32 0) }, i8* %clearCache, { i64, i8* } { i64 10, i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.225, i32 0, i32 0) }, i8* %shutdown, { i64, i8* } { i64 8, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.224, i32 0, i32 0) }, i8* %help, { i64, i8* } { i64 6, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.223, i32 0, i32 0) }, i16* %port, { i64, i8* } { i64 6, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.222, i32 0, i32 0) }, { i64, { i64, i8* }* }* %importPaths, { i64, i8* } { i64 1, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.221, i32 0, i32 0) }, i64* %cursorPos, { i64, i8* } { i64 11, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.220, i32 0, i32 0) }, { i64, { i64, i8* }* }* %args) to label %postinvoke unwind label %landingPad catch.std.conv.ConvException: ; preds = %landingPad call void @_d_eh_enter_catch() %7 = load i8*, i8** %eh.ptr store %std.conv.ConvException* null, %std.conv.ConvException** %e %8 = bitcast i8* %7 to %std.conv.ConvException** %9 = load %std.conv.ConvException*, %std.conv.ConvException** %8 store %std.conv.ConvException* %9, %std.conv.ConvException** %e %10 = bitcast %nest.main* %.frame to i8* %11 = insertvalue { i8*, { i64, i8* } (i8*)* } undef, i8* %10, 0 %.func1 = insertvalue { i8*, { i64, i8* } (i8*)* } %11, { i64, i8* } (i8*)* @_D6client6client4mainFAAyaZ12__dgliteral3MFNaNbNiNfZAya, 1 call void @_D3std12experimental6logger4core69__T18defaultLogFunctionVE3std12experimental6logger4core8LogLeveli192Z239__T18defaultLogFunctionVii75VAyaa19_7372632f636c69656e742f636c69656e742e64VAyaa18_636c69656e742e636c69656e742e6d61696eVAyaa37_696e7420636c69656e742e636c69656e742e6d61696e28737472696e675b5d206172677329VAyaa13_636c69656e742e636c69656e74TAyaZ18defaultLogFunctionFNfLAyaZv({ i8*, { i64, i8* } (i8*)* } %.func1) %12 = getelementptr { i64, { i64, i8* }* }, { i64, { i64, i8* }* }* %args, i32 0, i32 1 %.ptr2 = load { i64, i8* }*, { i64, i8* }** %12 %13 = getelementptr { i64, i8* }, { i64, i8* }* %.ptr2, i64 0 %14 = load { i64, i8* }, { i64, i8* }* %13 call void @_D6client6client9printHelpFAyaZv({ i64, i8* } %14) ret i32 1 try.success.or.caught: ; preds = %postinvoke, %afterreturn %15 = bitcast %common.messages.AutocompleteRequest* %request to i8* call void @llvm.memset.p0i8.i64(i8* %15, i8 0, i64 80, i32 1, i1 false) %16 = load i8, i8* %help %17 = trunc i8 %16 to i1 br i1 %17, label %if, label %endif afterreturn: ; No predecessors! br label %try.success.or.caught postinvoke: ; preds = %0 br label %try.success.or.caught landingPad: ; preds = %0 %18 = landingpad { i8*, i32 } catch %object.TypeInfo_Class* @_D3std4conv13ConvException7__ClassZ %19 = extractvalue { i8*, i32 } %18, 0 store i8* %19, i8** %eh.ptr %20 = extractvalue { i8*, i32 } %18, 1 store i32 %20, i32* %eh.selector %21 = call i32 @llvm.eh.typeid.for(i8* bitcast (%object.TypeInfo_Class* @_D3std4conv13ConvException7__ClassZ to i8*)) %22 = load i32, i32* %eh.selector %23 = icmp eq i32 %22, %21 br i1 %23, label %catch.std.conv.ConvException, label %unwind.resume unwind.resume: ; preds = %finally128, %finally100, %finally52, %finally39, %finally, %landingPad %24 = load i8*, i8** %eh.ptr call void @_d_eh_resume_unwind(i8* %24) unreachable if: ; preds = %try.success.or.caught %25 = getelementptr { i64, { i64, i8* }* }, { i64, { i64, i8* }* }* %args, i32 0, i32 1 %.ptr3 = load { i64, i8* }*, { i64, i8* }** %25 %26 = getelementptr { i64, i8* }, { i64, i8* }* %.ptr3, i64 0 %27 = load { i64, i8* }, { i64, i8* }* %26 call void @_D6client6client9printHelpFAyaZv({ i64, i8* } %27) ret i32 0 endif: ; preds = %afterreturn4, %try.success.or.caught %28 = load i8, i8* %printVersion %29 = trunc i8 %28 to i1 br i1 %29, label %if5, label %endif6 afterreturn4: ; No predecessors! br label %endif if5: ; preds = %endif call void @_D3std5stdio22__T5writeTAyaTAyaTAyaZ5writeFNfAyaAyaAyaZv({ i64, i8* } { i64 41, i8* getelementptr inbounds ([42 x i8], [42 x i8]* @.str.236, i32 0, i32 0) }, { i64, i8* } { i64 1, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.235, i32 0, i32 0) }, { i64, i8* } { i64 12, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.234, i32 0, i32 0) }) ret i32 0 endif6: ; preds = %afterreturn7, %endif %30 = load i8, i8* %useTCP %31 = trunc i8 %30 to i1 br i1 %31, label %if8, label %endif9 afterreturn7: ; No predecessors! br label %endif6 if8: ; preds = %endif6 store { i64, i8* } zeroinitializer, { i64, i8* }* %socketFile br label %endif9 endif9: ; preds = %if8, %endif6 %32 = load i8, i8* %query %33 = trunc i8 %32 to i1 br i1 %33, label %if10, label %else if10: ; preds = %endif9 %34 = load i8, i8* %useTCP %35 = trunc i8 %34 to i1 %36 = load { i64, i8* }, { i64, i8* }* %socketFile %37 = load i16, i16* %port %38 = call i1 @_D6common8messages15serverIsRunningFbAyatZb(i16 zeroext %37, { i64, i8* } %36, i1 %35) br i1 %38, label %if12, label %else14 else: ; preds = %endif9 %39 = load i8, i8* %shutdown %40 = trunc i8 %39 to i1 br i1 %40, label %ororend, label %oror endif11: ; preds = %endif18, %endif13 %41 = getelementptr { i64, { i64, i8* }* }, { i64, { i64, i8* }* }* %args, i32 0, i32 0 %.len67 = load i64, i64* %41 %42 = icmp ule i64 %.len67, 1 %43 = zext i1 %42 to i8 store i8 %43, i8* %usingStdin %44 = load i8, i8* %usingStdin %45 = trunc i8 %44 to i1 br i1 %45, label %condtrue69, label %condfalse70 if12: ; preds = %if10 call void @_D3std5stdio16__T7writelnTAyaZ7writelnFNfAyaZv({ i64, i8* } { i64 17, i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.237, i32 0, i32 0) }) ret i32 0 else14: ; preds = %if10 call void @_D3std5stdio16__T7writelnTAyaZ7writelnFNfAyaZv({ i64, i8* } { i64 21, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.238, i32 0, i32 0) }) ret i32 1 endif13: ; preds = %afterreturn16, %afterreturn15 br label %endif11 afterreturn15: ; No predecessors! br label %endif13 afterreturn16: ; No predecessors! br label %endif13 oror: ; preds = %else %46 = load i8, i8* %clearCache %47 = trunc i8 %46 to i1 br label %ororend ororend: ; preds = %oror, %else %ororval = phi i1 [ true, %else ], [ %47, %oror ] br i1 %ororval, label %if17, label %else19 if17: ; preds = %ororend %48 = load i8, i8* %shutdown %49 = trunc i8 %48 to i1 br i1 %49, label %if20, label %else22 else19: ; preds = %ororend %50 = getelementptr { i64, { i64, i8* }* }, { i64, { i64, i8* }* }* %importPaths, i32 0, i32 0 %.len29 = load i64, i64* %50 %51 = icmp ugt i64 %.len29, 0 br i1 %51, label %if30, label %else32 endif18: ; preds = %endif31, %try.success br label %endif11 if20: ; preds = %if17 %52 = getelementptr %common.messages.AutocompleteRequest, %common.messages.AutocompleteRequest* %request, i32 0, i32 1 store i16 8, i16* %52 br label %endif21 else22: ; preds = %if17 %53 = load i8, i8* %clearCache %54 = trunc i8 %53 to i1 br i1 %54, label %if23, label %endif24 endif21: ; preds = %endif24, %if20 %55 = load { i64, i8* }, { i64, i8* }* %socketFile %56 = load i16, i16* %port %57 = call %std.socket.Socket* @_D6client6client12createSocketFAyatZC3std6socket6Socket(i16 zeroext %56, { i64, i8* } %55) store %std.socket.Socket* %57, %std.socket.Socket** %socket %58 = load %std.socket.Socket*, %std.socket.Socket** %socket %59 = invoke i1 @_D6common8messages11sendRequestFC3std6socket6SocketS6common8messages19AutocompleteRequestZb(%common.messages.AutocompleteRequest* byval %request, %std.socket.Socket* %58) to label %postinvoke26 unwind label %landingPad25 if23: ; preds = %else22 %60 = getelementptr %common.messages.AutocompleteRequest, %common.messages.AutocompleteRequest* %request, i32 0, i32 1 store i16 2, i16* %60 br label %endif24 endif24: ; preds = %if23, %else22 br label %endif21 finally: ; preds = %afterreturn28, %condend, %landingPad25 %61 = load %std.socket.Socket*, %std.socket.Socket** %socket %62 = getelementptr %std.socket.Socket, %std.socket.Socket* %61, i32 0, i32 0 %63 = load %std.socket.Socket.__vtbl*, %std.socket.Socket.__vtbl** %62 %"socket.shutdown@vtbl" = getelementptr %std.socket.Socket.__vtbl, %std.socket.Socket.__vtbl* %63, i32 0, i32 15 %socket.shutdown = load void (%std.socket.Socket*, i32)*, void (%std.socket.Socket*, i32)** %"socket.shutdown@vtbl", align 8 %64 = load %std.socket.Socket*, %std.socket.Socket** %socket call void %socket.shutdown(%std.socket.Socket* %64, i32 2) %65 = load %std.socket.Socket*, %std.socket.Socket** %socket %66 = getelementptr %std.socket.Socket, %std.socket.Socket* %65, i32 0, i32 0 %67 = load %std.socket.Socket.__vtbl*, %std.socket.Socket.__vtbl** %66 %"socket.close@vtbl" = getelementptr %std.socket.Socket.__vtbl, %std.socket.Socket.__vtbl* %67, i32 0, i32 16 %socket.close = load void (%std.socket.Socket*)*, void (%std.socket.Socket*)** %"socket.close@vtbl", align 8 %68 = load %std.socket.Socket*, %std.socket.Socket** %socket call void %socket.close(%std.socket.Socket* %68) %69 = load i32, i32* %branchsel.finally switch i32 %69, label %unwind.resume [ i32 1, label %return i32 2, label %try.success ] condtrue: ; preds = %postinvoke26 store i32 0, i32* %.makelvaluetmp store i32* %.makelvaluetmp, i32** %condtmp br label %condend condfalse: ; preds = %postinvoke26 store i32 1, i32* %.makelvaluetmp27 store i32* %.makelvaluetmp27, i32** %condtmp br label %condend condend: ; preds = %condfalse, %condtrue %70 = load i32*, i32** %condtmp %71 = load i32, i32* %70 %72 = load i32, i32* %70 store i32 %72, i32* %return.slot store i32 1, i32* %branchsel.finally br label %finally postinvoke26: ; preds = %endif21 br i1 %59, label %condtrue, label %condfalse landingPad25: ; preds = %endif21 %73 = landingpad { i8*, i32 } cleanup %74 = extractvalue { i8*, i32 } %73, 0 store i8* %74, i8** %eh.ptr %75 = extractvalue { i8*, i32 } %73, 1 store i32 %75, i32* %eh.selector store i32 0, i32* %branchsel.finally br label %finally return: ; preds = %finally128, %finally52, %finally39, %finally %76 = load i32, i32* %return.slot ret i32 %76 afterreturn28: ; No predecessors! store i32 2, i32* %branchsel.finally br label %finally try.success: ; preds = %finally br label %endif18 if30: ; preds = %else19 %77 = getelementptr %common.messages.AutocompleteRequest, %common.messages.AutocompleteRequest* %request, i32 0, i32 1 %78 = load i16, i16* %77 %79 = zext i16 %78 to i32 %80 = or i32 %79, 4 %81 = trunc i32 %80 to i16 store i16 %81, i16* %77 %82 = getelementptr %common.messages.AutocompleteRequest, %common.messages.AutocompleteRequest* %request, i32 0, i32 3 %83 = bitcast %nest.main* %.frame to i8* %84 = load { i64, { i64, i8* }* }, { i64, { i64, i8* }* }* %importPaths call void @_D3std9algorithm9iteration46__T3mapS356client6client4mainFAAyaZ9__lambda4Z13__T3mapTAAyaZ3mapMFNaNbNiNfAAyaZS3std9algorithm9iteration57__T9MapResultS356client6client4mainFAAyaZ9__lambda4TAAyaZ9MapResult(%"client.client.main.MapResult!(__lambda4, string[]).MapResult"* noalias sret %.rettmp33, i8* %83, { i64, { i64, i8* }* } %84) %85 = call { i64, { i64, i8* }* } @_D3std5array105__T5arrayTS3std9algorithm9iteration57__T9MapResultS356client6client4mainFAAyaZ9__lambda4TAAyaZ9MapResultZ5arrayFNaNfS3std9algorithm9iteration57__T9MapResultS356client6client4mainFAAyaZ9__lambda4TAAyaZ9MapResultZAAya(%"client.client.main.MapResult!(__lambda4, string[]).MapResult"* byval %.rettmp33) %.ptr34 = extractvalue { i64, { i64, i8* }* } %85, 1 %.len35 = extractvalue { i64, { i64, i8* }* } %85, 0 %86 = getelementptr { i64, { i64, i8* }* }, { i64, { i64, i8* }* }* %82, i32 0, i32 0 store i64 %.len35, i64* %86 %87 = getelementptr { i64, { i64, i8* }* }, { i64, { i64, i8* }* }* %82, i32 0, i32 1 store { i64, i8* }* %.ptr34, { i64, i8* }** %87 %88 = load i64, i64* %cursorPos %89 = icmp eq i64 %88, -1 br i1 %89, label %if36, label %endif37 else32: ; preds = %else19 %90 = load i8, i8* %listImports %91 = trunc i8 %90 to i1 br i1 %91, label %if48, label %else50 endif31: ; preds = %endif49, %endif37 br label %endif18 if36: ; preds = %if30 %92 = load { i64, i8* }, { i64, i8* }* %socketFile %93 = load i16, i16* %port %94 = call %std.socket.Socket* @_D6client6client12createSocketFAyatZC3std6socket6Socket(i16 zeroext %93, { i64, i8* } %92) store %std.socket.Socket* %94, %std.socket.Socket** %socket38 %95 = load %std.socket.Socket*, %std.socket.Socket** %socket38 %96 = invoke i1 @_D6common8messages11sendRequestFC3std6socket6SocketS6common8messages19AutocompleteRequestZb(%common.messages.AutocompleteRequest* byval %request, %std.socket.Socket* %95) to label %postinvoke45 unwind label %landingPad44 endif37: ; preds = %if30 br label %endif31 finally39: ; preds = %endif47, %if46, %landingPad44 %97 = load %std.socket.Socket*, %std.socket.Socket** %socket38 %98 = getelementptr %std.socket.Socket, %std.socket.Socket* %97, i32 0, i32 0 %99 = load %std.socket.Socket.__vtbl*, %std.socket.Socket.__vtbl** %98 %"socket.shutdown@vtbl40" = getelementptr %std.socket.Socket.__vtbl, %std.socket.Socket.__vtbl* %99, i32 0, i32 15 %socket.shutdown41 = load void (%std.socket.Socket*, i32)*, void (%std.socket.Socket*, i32)** %"socket.shutdown@vtbl40", align 8 %100 = load %std.socket.Socket*, %std.socket.Socket** %socket38 call void %socket.shutdown41(%std.socket.Socket* %100, i32 2) %101 = load %std.socket.Socket*, %std.socket.Socket** %socket38 %102 = getelementptr %std.socket.Socket, %std.socket.Socket* %101, i32 0, i32 0 %103 = load %std.socket.Socket.__vtbl*, %std.socket.Socket.__vtbl** %102 %"socket.close@vtbl42" = getelementptr %std.socket.Socket.__vtbl, %std.socket.Socket.__vtbl* %103, i32 0, i32 16 %socket.close43 = load void (%std.socket.Socket*)*, void (%std.socket.Socket*)** %"socket.close@vtbl42", align 8 %104 = load %std.socket.Socket*, %std.socket.Socket** %socket38 call void %socket.close43(%std.socket.Socket* %104) %105 = load i32, i32* %branchsel.finally39 switch i32 %105, label %unwind.resume [ i32 1, label %return ] postinvoke45: ; preds = %if36 %106 = icmp eq i1 %96, false br i1 %106, label %if46, label %endif47 landingPad44: ; preds = %if36 %107 = landingpad { i8*, i32 } cleanup %108 = extractvalue { i8*, i32 } %107, 0 store i8* %108, i8** %eh.ptr %109 = extractvalue { i8*, i32 } %107, 1 store i32 %109, i32* %eh.selector store i32 0, i32* %branchsel.finally39 br label %finally39 if46: ; preds = %postinvoke45 store i32 1, i32* %return.slot store i32 1, i32* %branchsel.finally39 br label %finally39 endif47: ; preds = %postinvoke45 store i32 0, i32* %return.slot store i32 1, i32* %branchsel.finally39 br label %finally39 if48: ; preds = %else32 %110 = getelementptr %common.messages.AutocompleteRequest, %common.messages.AutocompleteRequest* %request, i32 0, i32 1 %111 = load i16, i16* %110 %112 = zext i16 %111 to i32 %113 = or i32 %112, 256 %114 = trunc i32 %113 to i16 store i16 %114, i16* %110 %115 = load { i64, i8* }, { i64, i8* }* %socketFile %116 = load i16, i16* %port %117 = call %std.socket.Socket* @_D6client6client12createSocketFAyatZC3std6socket6Socket(i16 zeroext %116, { i64, i8* } %115) store %std.socket.Socket* %117, %std.socket.Socket** %socket51 %118 = load %std.socket.Socket*, %std.socket.Socket** %socket51 %119 = invoke i1 @_D6common8messages11sendRequestFC3std6socket6SocketS6common8messages19AutocompleteRequestZb(%common.messages.AutocompleteRequest* byval %request, %std.socket.Socket* %118) to label %postinvoke58 unwind label %landingPad57 else50: ; preds = %else32 %120 = load { i64, i8* }, { i64, i8* }* %search %121 = getelementptr { i64, i8* }, { i64, i8* }* %search, i32 0, i32 0 %.len61 = load i64, i64* %121 %122 = getelementptr { i64, i8* }, { i64, i8* }* %search, i32 0, i32 1 %.ptr62 = load i8*, i8** %122 %123 = insertvalue { i64, i8* } undef, i64 %.len61, 0 %124 = insertvalue { i64, i8* } %123, i8* %.ptr62, 1 %125 = call i32 @_adEq2({ i64, i8* } %124, { i64, i8* } zeroinitializer, %object.TypeInfo* @_D12TypeInfo_Aya6__initZ) #1 %126 = icmp ne i32 %125, 0 br i1 %126, label %andand, label %andandend endif49: ; preds = %endif64 br label %endif31 finally52: ; preds = %postinvoke60, %landingPad57 %127 = load %std.socket.Socket*, %std.socket.Socket** %socket51 %128 = getelementptr %std.socket.Socket, %std.socket.Socket* %127, i32 0, i32 0 %129 = load %std.socket.Socket.__vtbl*, %std.socket.Socket.__vtbl** %128 %"socket.shutdown@vtbl53" = getelementptr %std.socket.Socket.__vtbl, %std.socket.Socket.__vtbl* %129, i32 0, i32 15 %socket.shutdown54 = load void (%std.socket.Socket*, i32)*, void (%std.socket.Socket*, i32)** %"socket.shutdown@vtbl53", align 8 %130 = load %std.socket.Socket*, %std.socket.Socket** %socket51 call void %socket.shutdown54(%std.socket.Socket* %130, i32 2) %131 = load %std.socket.Socket*, %std.socket.Socket** %socket51 %132 = getelementptr %std.socket.Socket, %std.socket.Socket* %131, i32 0, i32 0 %133 = load %std.socket.Socket.__vtbl*, %std.socket.Socket.__vtbl** %132 %"socket.close@vtbl55" = getelementptr %std.socket.Socket.__vtbl, %std.socket.Socket.__vtbl* %133, i32 0, i32 16 %socket.close56 = load void (%std.socket.Socket*)*, void (%std.socket.Socket*)** %"socket.close@vtbl55", align 8 %134 = load %std.socket.Socket*, %std.socket.Socket** %socket51 call void %socket.close56(%std.socket.Socket* %134) %135 = load i32, i32* %branchsel.finally52 switch i32 %135, label %unwind.resume [ i32 1, label %return ] postinvoke58: ; preds = %if48 %136 = load %std.socket.Socket*, %std.socket.Socket** %socket51 invoke void @_D6common8messages11getResponseFC3std6socket6SocketZS6common8messages20AutocompleteResponse(%common.messages.AutocompleteResponse* noalias sret %response, %std.socket.Socket* %136) to label %postinvoke59 unwind label %landingPad57 postinvoke59: ; preds = %postinvoke58 invoke void @_D6client6client15printImportListFxS6common8messages20AutocompleteResponseZv(%common.messages.AutocompleteResponse* byval %response) to label %postinvoke60 unwind label %landingPad57 postinvoke60: ; preds = %postinvoke59 store i32 0, i32* %return.slot store i32 1, i32* %branchsel.finally52 br label %finally52 landingPad57: ; preds = %postinvoke59, %postinvoke58, %if48 %137 = landingpad { i8*, i32 } cleanup %138 = extractvalue { i8*, i32 } %137, 0 store i8* %138, i8** %eh.ptr %139 = extractvalue { i8*, i32 } %137, 1 store i32 %139, i32* %eh.selector store i32 0, i32* %branchsel.finally52 br label %finally52 andand: ; preds = %else50 %140 = load i64, i64* %cursorPos %141 = icmp eq i64 %140, -1 br label %andandend andandend: ; preds = %andand, %else50 %andandval = phi i1 [ false, %else50 ], [ %141, %andand ] br i1 %andandval, label %if63, label %endif64 if63: ; preds = %andandend %142 = getelementptr { i64, { i64, i8* }* }, { i64, { i64, i8* }* }* %args, i32 0, i32 1 %.ptr65 = load { i64, i8* }*, { i64, i8* }** %142 %143 = getelementptr { i64, i8* }, { i64, i8* }* %.ptr65, i64 0 %144 = load { i64, i8* }, { i64, i8* }* %143 call void @_D6client6client9printHelpFAyaZv({ i64, i8* } %144) ret i32 1 endif64: ; preds = %afterreturn66, %andandend br label %endif49 afterreturn66: ; No predecessors! br label %endif64 condtrue69: ; preds = %endif11 store { i64, i8* } { i64 5, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.239, i32 0, i32 0) }, { i64, i8* }* %.makelvaluetmp72 store { i64, i8* }* %.makelvaluetmp72, { i64, i8* }** %condtmp68 br label %condend71 condfalse70: ; preds = %endif11 %145 = getelementptr { i64, { i64, i8* }* }, { i64, { i64, i8* }* }* %args, i32 0, i32 1 %.ptr73 = load { i64, i8* }*, { i64, i8* }** %145 %146 = getelementptr { i64, i8* }, { i64, i8* }* %.ptr73, i64 1 store { i64, i8* }* %146, { i64, i8* }** %condtmp68 br label %condend71 condend71: ; preds = %condfalse70, %condtrue69 %147 = load { i64, i8* }*, { i64, i8* }** %condtmp68 %148 = getelementptr { i64, i8* }, { i64, i8* }* %147, i32 0, i32 1 %.ptr74 = load i8*, i8** %148 %149 = getelementptr { i64, i8* }, { i64, i8* }* %147, i32 0, i32 0 %.len75 = load i64, i64* %149 %150 = getelementptr { i64, i8* }, { i64, i8* }* %fileName, i32 0, i32 0 store i64 %.len75, i64* %150 %151 = getelementptr { i64, i8* }, { i64, i8* }* %fileName, i32 0, i32 1 store i8* %.ptr74, i8** %151 %152 = load i8, i8* %usingStdin %153 = trunc i8 %152 to i1 %154 = icmp eq i1 %153, false br i1 %154, label %andand76, label %andandend77 andand76: ; preds = %condend71 %155 = getelementptr { i64, { i64, i8* }* }, { i64, { i64, i8* }* }* %args, i32 0, i32 1 %.ptr78 = load { i64, i8* }*, { i64, i8* }** %155 %156 = getelementptr { i64, i8* }, { i64, i8* }* %.ptr78, i64 1 %157 = load { i64, i8* }, { i64, i8* }* %156 %158 = call i1 @_D3std4file6existsFNbNiNexAaZb({ i64, i8* } %157) %159 = icmp eq i1 %158, false br label %andandend77 andandend77: ; preds = %andand76, %condend71 %andandval79 = phi i1 [ false, %condend71 ], [ %159, %andand76 ] br i1 %andandval79, label %if80, label %endif81 if80: ; preds = %andandend77 %160 = getelementptr { i64, { i64, i8* }* }, { i64, { i64, i8* }* }* %args, i32 0, i32 1 %.ptr82 = load { i64, i8* }*, { i64, i8* }** %160 %161 = getelementptr { i64, i8* }, { i64, i8* }* %.ptr82, i64 1 %162 = load { i64, i8* }, { i64, i8* }* %161 call void @_D3std5stdio4File19__T8writeflnTaTAyaZ8writeflnMFNfxAaAyaZv(%std.stdio.File* @_D3std5stdio6stderrS3std5stdio4File, { i64, i8* } %162, { i64, i8* } { i64 17, i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.240, i32 0, i32 0) }) ret i32 1 endif81: ; preds = %afterreturn83, %andandend77 store { i64, i8* } zeroinitializer, { i64, i8* }* %sourceCode %163 = load i8, i8* %usingStdin %164 = trunc i8 %163 to i1 br i1 %164, label %if84, label %else86 afterreturn83: ; No predecessors! br label %endif81 if84: ; preds = %endif81 %sarrayptr = getelementptr [4096 x i8], [4096 x i8]* %buf, i32 0, i32 0 call void @llvm.memset.p0i8.i64(i8* %sarrayptr, i8 0, i64 4096, i32 1, i1 false) br label %forcond else86: ; preds = %endif81 %165 = getelementptr { i64, { i64, i8* }* }, { i64, { i64, i8* }* }* %args, i32 0, i32 1 %.ptr94 = load { i64, i8* }*, { i64, i8* }** %165 %166 = getelementptr { i64, i8* }, { i64, i8* }* %.ptr94, i64 1 %167 = load { i64, i8* }, { i64, i8* }* %166 %168 = call i1 @_D3std4file6existsFNbNiNexAaZb({ i64, i8* } %167) %169 = icmp eq i1 %168, false br i1 %169, label %if95, label %endif96 endif85: ; preds = %try.success108, %endfor %170 = getelementptr %common.messages.AutocompleteRequest, %common.messages.AutocompleteRequest* %request, i32 0, i32 0 %171 = getelementptr { i64, i8* }, { i64, i8* }* %fileName, i32 0, i32 1 %.ptr109 = load i8*, i8** %171 %172 = getelementptr { i64, i8* }, { i64, i8* }* %fileName, i32 0, i32 0 %.len110 = load i64, i64* %172 %173 = getelementptr { i64, i8* }, { i64, i8* }* %170, i32 0, i32 0 store i64 %.len110, i64* %173 %174 = getelementptr { i64, i8* }, { i64, i8* }* %170, i32 0, i32 1 store i8* %.ptr109, i8** %174 %175 = getelementptr %common.messages.AutocompleteRequest, %common.messages.AutocompleteRequest* %request, i32 0, i32 3 %176 = getelementptr { i64, { i64, i8* }* }, { i64, { i64, i8* }* }* %importPaths, i32 0, i32 1 %.ptr111 = load { i64, i8* }*, { i64, i8* }** %176 %177 = getelementptr { i64, { i64, i8* }* }, { i64, { i64, i8* }* }* %importPaths, i32 0, i32 0 %.len112 = load i64, i64* %177 %178 = getelementptr { i64, { i64, i8* }* }, { i64, { i64, i8* }* }* %175, i32 0, i32 0 store i64 %.len112, i64* %178 %179 = getelementptr { i64, { i64, i8* }* }, { i64, { i64, i8* }* }* %175, i32 0, i32 1 store { i64, i8* }* %.ptr111, { i64, i8* }** %179 %180 = getelementptr %common.messages.AutocompleteRequest, %common.messages.AutocompleteRequest* %request, i32 0, i32 4 %181 = getelementptr { i64, i8* }, { i64, i8* }* %sourceCode, i32 0, i32 1 %.ptr113 = load i8*, i8** %181 %182 = getelementptr { i64, i8* }, { i64, i8* }* %sourceCode, i32 0, i32 0 %.len114 = load i64, i64* %182 %183 = getelementptr { i64, i8* }, { i64, i8* }* %180, i32 0, i32 0 store i64 %.len114, i64* %183 %184 = getelementptr { i64, i8* }, { i64, i8* }* %180, i32 0, i32 1 store i8* %.ptr113, i8** %184 %185 = getelementptr %common.messages.AutocompleteRequest, %common.messages.AutocompleteRequest* %request, i32 0, i32 5 %186 = load i64, i64* %cursorPos store i64 %186, i64* %185 %187 = getelementptr %common.messages.AutocompleteRequest, %common.messages.AutocompleteRequest* %request, i32 0, i32 6 %188 = getelementptr { i64, i8* }, { i64, i8* }* %search, i32 0, i32 1 %.ptr115 = load i8*, i8** %188 %189 = getelementptr { i64, i8* }, { i64, i8* }* %search, i32 0, i32 0 %.len116 = load i64, i64* %189 %190 = getelementptr { i64, i8* }, { i64, i8* }* %187, i32 0, i32 0 store i64 %.len116, i64* %190 %191 = getelementptr { i64, i8* }, { i64, i8* }* %187, i32 0, i32 1 store i8* %.ptr115, i8** %191 %192 = load i8, i8* %symbolLocation %193 = trunc i8 %192 to i1 br i1 %193, label %if117, label %else119 forcond: ; preds = %forinc, %if84 br i1 true, label %forbody, label %endfor forbody: ; preds = %forcond %194 = bitcast [4096 x i8]* %buf to i8* %195 = insertvalue { i64, i8* } { i64 4096, i8* undef }, i8* %194, 1 %196 = call { i64, i8* } @_D3std5stdio4File14__T7rawReadThZ7rawReadMFAhZAh(%std.stdio.File* @_D3std5stdio5stdinS3std5stdio4File, { i64, i8* } %195) %.ptr87 = extractvalue { i64, i8* } %196, 1 %.len88 = extractvalue { i64, i8* } %196, 0 %197 = getelementptr { i64, i8* }, { i64, i8* }* %b, i32 0, i32 0 store i64 %.len88, i64* %197 %198 = getelementptr { i64, i8* }, { i64, i8* }* %b, i32 0, i32 1 store i8* %.ptr87, i8** %198 %199 = getelementptr { i64, i8* }, { i64, i8* }* %b, i32 0, i32 0 %.len89 = load i64, i64* %199 %200 = icmp eq i64 %.len89, 0 br i1 %200, label %if90, label %endif91 forinc: ; preds = %endif91 br label %forcond endfor: ; preds = %if90, %forcond br label %endif85 if90: ; preds = %forbody br label %endfor endif91: ; preds = %afterbreak, %forbody %201 = load { i64, i8* }, { i64, i8* }* %b %.appendedArray = call { i64, i8* } @_d_arrayappendT(%object.TypeInfo* @_D11TypeInfo_Ah6__initZ, { i64, i8* }* %sourceCode, { i64, i8* } %201) %.len92 = extractvalue { i64, i8* } %.appendedArray, 0 %.ptr93 = extractvalue { i64, i8* } %.appendedArray, 1 %202 = getelementptr { i64, i8* }, { i64, i8* }* %sourceCode, i32 0, i32 0 store i64 %.len92, i64* %202 %203 = getelementptr { i64, i8* }, { i64, i8* }* %sourceCode, i32 0, i32 1 store i8* %.ptr93, i8** %203 br label %forinc afterbreak: ; No predecessors! br label %endif91 if95: ; preds = %else86 %204 = getelementptr { i64, { i64, i8* }* }, { i64, { i64, i8* }* }* %args, i32 0, i32 1 %.ptr97 = load { i64, i8* }*, { i64, i8* }** %204 %205 = getelementptr { i64, i8* }, { i64, i8* }* %.ptr97, i64 1 %206 = load { i64, i8* }, { i64, i8* }* %205 call void @_D3std5stdio4File20__T7writelnTAyaTAyaZ7writelnMFNfAyaAyaZv(%std.stdio.File* @_D3std5stdio6stderrS3std5stdio4File, { i64, i8* } %206, { i64, i8* } { i64 15, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.241, i32 0, i32 0) }) ret i32 1 endif96: ; preds = %afterreturn98, %else86 %207 = bitcast %std.stdio.File* %f to i8* call void @llvm.memset.p0i8.i64(i8* %207, i8 0, i64 24, i32 1, i1 false) %208 = getelementptr { i64, { i64, i8* }* }, { i64, { i64, i8* }* }* %args, i32 0, i32 1 %.ptr99 = load { i64, i8* }*, { i64, i8* }** %208 %209 = getelementptr { i64, i8* }, { i64, i8* }* %.ptr99, i64 1 %210 = load { i64, i8* }, { i64, i8* }* %209 %211 = call %std.stdio.File* @_D3std5stdio4File6__ctorMFNcNfAyaxAaZS3std5stdio4File(%std.stdio.File* returned %f, { i64, i8* } { i64 2, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.242, i32 0, i32 0) }, { i64, i8* } %210) %212 = invoke i64 @_D3std5stdio4File4sizeMFNdNfZm(%std.stdio.File* %f) to label %postinvoke102 unwind label %landingPad101 afterreturn98: ; No predecessors! br label %endif96 finally100: ; preds = %postinvoke107, %landingPad101 call void @_D3std5stdio4File6__dtorMFNfZv(%std.stdio.File* %f) %213 = load i32, i32* %branchsel.finally100 switch i32 %213, label %unwind.resume [ i32 1, label %try.success108 ] postinvoke102: ; preds = %endif96 %214 = invoke i64 @_D3std4conv9__T2toTmZ9__T2toTmZ2toFNaNbNiNfmZm(i64 %212) to label %postinvoke103 unwind label %landingPad101 postinvoke103: ; preds = %postinvoke102 %215 = invoke { i64, i8* } @_D3std5array29__T18uninitializedArrayTAhTmZ18uninitializedArrayFNaNbNemZAh(i64 %214) to label %postinvoke104 unwind label %landingPad101 postinvoke104: ; preds = %postinvoke103 %.ptr105 = extractvalue { i64, i8* } %215, 1 %.len106 = extractvalue { i64, i8* } %215, 0 %216 = getelementptr { i64, i8* }, { i64, i8* }* %sourceCode, i32 0, i32 0 store i64 %.len106, i64* %216 %217 = getelementptr { i64, i8* }, { i64, i8* }* %sourceCode, i32 0, i32 1 store i8* %.ptr105, i8** %217 %218 = load { i64, i8* }, { i64, i8* }* %sourceCode %219 = invoke { i64, i8* } @_D3std5stdio4File14__T7rawReadThZ7rawReadMFAhZAh(%std.stdio.File* %f, { i64, i8* } %218) to label %postinvoke107 unwind label %landingPad101 postinvoke107: ; preds = %postinvoke104 store i32 1, i32* %branchsel.finally100 br label %finally100 landingPad101: ; preds = %postinvoke104, %postinvoke103, %postinvoke102, %endif96 %220 = landingpad { i8*, i32 } cleanup %221 = extractvalue { i8*, i32 } %220, 0 store i8* %221, i8** %eh.ptr %222 = extractvalue { i8*, i32 } %220, 1 store i32 %222, i32* %eh.selector store i32 0, i32* %branchsel.finally100 br label %finally100 try.success108: ; preds = %finally100 br label %endif85 if117: ; preds = %endif85 %223 = getelementptr %common.messages.AutocompleteRequest, %common.messages.AutocompleteRequest* %request, i32 0, i32 1 %224 = load i16, i16* %223 %225 = zext i16 %224 to i32 %226 = or i32 %225, 16 %227 = trunc i32 %226 to i16 store i16 %227, i16* %223 br label %endif118 else119: ; preds = %endif85 %228 = load i8, i8* %doc %229 = trunc i8 %228 to i1 br i1 %229, label %if120, label %else122 endif118: ; preds = %endif121, %if117 %230 = load { i64, i8* }, { i64, i8* }* %socketFile %231 = load i16, i16* %port %232 = call %std.socket.Socket* @_D6client6client12createSocketFAyatZC3std6socket6Socket(i16 zeroext %231, { i64, i8* } %230) store %std.socket.Socket* %232, %std.socket.Socket** %socket127 %233 = load %std.socket.Socket*, %std.socket.Socket** %socket127 %234 = invoke i1 @_D6common8messages11sendRequestFC3std6socket6SocketS6common8messages19AutocompleteRequestZb(%common.messages.AutocompleteRequest* byval %request, %std.socket.Socket* %233) to label %postinvoke134 unwind label %landingPad133 if120: ; preds = %else119 %235 = getelementptr %common.messages.AutocompleteRequest, %common.messages.AutocompleteRequest* %request, i32 0, i32 1 %236 = load i16, i16* %235 %237 = zext i16 %236 to i32 %238 = or i32 %237, 32 %239 = trunc i32 %238 to i16 store i16 %239, i16* %235 br label %endif121 else122: ; preds = %else119 %240 = load { i64, i8* }, { i64, i8* }* %search %241 = getelementptr { i64, i8* }, { i64, i8* }* %search, i32 0, i32 1 %.ptr126 = load i8*, i8** %241 %242 = icmp ne i8* %.ptr126, null br i1 %242, label %if123, label %else125 endif121: ; preds = %endif124, %if120 br label %endif118 if123: ; preds = %else122 %243 = getelementptr %common.messages.AutocompleteRequest, %common.messages.AutocompleteRequest* %request, i32 0, i32 1 %244 = load i16, i16* %243 %245 = zext i16 %244 to i32 %246 = or i32 %245, 128 %247 = trunc i32 %246 to i16 store i16 %247, i16* %243 br label %endif124 else125: ; preds = %else122 %248 = getelementptr %common.messages.AutocompleteRequest, %common.messages.AutocompleteRequest* %request, i32 0, i32 1 %249 = load i16, i16* %248 %250 = zext i16 %249 to i32 %251 = or i32 %250, 1 %252 = trunc i32 %251 to i16 store i16 %252, i16* %248 br label %endif124 endif124: ; preds = %else125, %if123 br label %endif121 finally128: ; preds = %endif140, %if135, %landingPad133 %253 = load %std.socket.Socket*, %std.socket.Socket** %socket127 %254 = getelementptr %std.socket.Socket, %std.socket.Socket* %253, i32 0, i32 0 %255 = load %std.socket.Socket.__vtbl*, %std.socket.Socket.__vtbl** %254 %"socket.shutdown@vtbl129" = getelementptr %std.socket.Socket.__vtbl, %std.socket.Socket.__vtbl* %255, i32 0, i32 15 %socket.shutdown130 = load void (%std.socket.Socket*, i32)*, void (%std.socket.Socket*, i32)** %"socket.shutdown@vtbl129", align 8 %256 = load %std.socket.Socket*, %std.socket.Socket** %socket127 call void %socket.shutdown130(%std.socket.Socket* %256, i32 2) %257 = load %std.socket.Socket*, %std.socket.Socket** %socket127 %258 = getelementptr %std.socket.Socket, %std.socket.Socket* %257, i32 0, i32 0 %259 = load %std.socket.Socket.__vtbl*, %std.socket.Socket.__vtbl** %258 %"socket.close@vtbl131" = getelementptr %std.socket.Socket.__vtbl, %std.socket.Socket.__vtbl* %259, i32 0, i32 16 %socket.close132 = load void (%std.socket.Socket*)*, void (%std.socket.Socket*)** %"socket.close@vtbl131", align 8 %260 = load %std.socket.Socket*, %std.socket.Socket** %socket127 call void %socket.close132(%std.socket.Socket* %260) %261 = load i32, i32* %branchsel.finally128 switch i32 %261, label %unwind.resume [ i32 1, label %return ] postinvoke134: ; preds = %endif118 %262 = icmp eq i1 %234, false br i1 %262, label %if135, label %endif136 postinvoke138: ; preds = %endif136 %263 = load i8, i8* %symbolLocation %264 = trunc i8 %263 to i1 br i1 %264, label %if139, label %else141 postinvoke142: ; preds = %if139 br label %endif140 postinvoke146: ; preds = %if143 br label %endif144 postinvoke152: ; preds = %if149 br label %endif150 postinvoke153: ; preds = %else151 br label %endif150 landingPad133: ; preds = %else151, %if149, %if143, %if139, %endif136, %endif118 %265 = landingpad { i8*, i32 } cleanup %266 = extractvalue { i8*, i32 } %265, 0 store i8* %266, i8** %eh.ptr %267 = extractvalue { i8*, i32 } %265, 1 store i32 %267, i32* %eh.selector store i32 0, i32* %branchsel.finally128 br label %finally128 if135: ; preds = %postinvoke134 store i32 1, i32* %return.slot store i32 1, i32* %branchsel.finally128 br label %finally128 endif136: ; preds = %postinvoke134 %268 = load %std.socket.Socket*, %std.socket.Socket** %socket127 invoke void @_D6common8messages11getResponseFC3std6socket6SocketZS6common8messages20AutocompleteResponse(%common.messages.AutocompleteResponse* noalias sret %response137, %std.socket.Socket* %268) to label %postinvoke138 unwind label %landingPad133 if139: ; preds = %postinvoke138 invoke void @_D6client6client21printLocationResponseFS6common8messages20AutocompleteResponseZv(%common.messages.AutocompleteResponse* byval %response137) to label %postinvoke142 unwind label %landingPad133 else141: ; preds = %postinvoke138 %269 = load i8, i8* %doc %270 = trunc i8 %269 to i1 br i1 %270, label %if143, label %else145 endif140: ; preds = %endif144, %postinvoke142 store i32 0, i32* %return.slot store i32 1, i32* %branchsel.finally128 br label %finally128 if143: ; preds = %else141 invoke void @_D6client6client16printDocResponseFS6common8messages20AutocompleteResponseZv(%common.messages.AutocompleteResponse* byval %response137) to label %postinvoke146 unwind label %landingPad133 else145: ; preds = %else141 %271 = load { i64, i8* }, { i64, i8* }* %search %272 = getelementptr { i64, i8* }, { i64, i8* }* %search, i32 0, i32 0 %.len147 = load i64, i64* %272 %273 = icmp eq i64 %.len147, 0 %274 = getelementptr { i64, i8* }, { i64, i8* }* %search, i32 0, i32 1 %.ptr148 = load i8*, i8** %274 %275 = icmp eq i8* %.ptr148, null %276 = and i1 %273, %275 %277 = xor i1 %276, true br i1 %277, label %if149, label %else151 endif144: ; preds = %endif150, %postinvoke146 br label %endif140 if149: ; preds = %else145 invoke void @_D6client6client19printSearchResponseFxS6common8messages20AutocompleteResponseZv(%common.messages.AutocompleteResponse* byval %response137) to label %postinvoke152 unwind label %landingPad133 else151: ; preds = %else145 invoke void @_D6client6client23printCompletionResponseFS6common8messages20AutocompleteResponseZv(%common.messages.AutocompleteResponse* byval %response137) to label %postinvoke153 unwind label %landingPad133 endif150: ; preds = %postinvoke153, %postinvoke152 br label %endif144 } * * * * * * * * * to type: i8* * * * * return value is '0x1311f950' code msgpack CodeGenerator::emit(msgpack) * *** Initializing D runtime declarations *** * Ignoring Dsymbol::codegen for msgpack.object * Ignoring Dsymbol::codegen for msgpack.std * Ignoring Dsymbol::codegen for msgpack.std * Ignoring Dsymbol::codegen for msgpack.std * Ignoring Dsymbol::codegen for msgpack.std * Ignoring Dsymbol::codegen for msgpack.std * Ignoring Dsymbol::codegen for msgpack.std * Ignoring Dsymbol::codegen for msgpack.std * Ignoring Dsymbol::codegen for __anonymous * Ignoring Dsymbol::codegen for msgpack.core * VarDeclaration::codegen(): 'msgpack.EnableReal' * * DtoResolveVariable(msgpack.EnableReal) * Ignoring Dsymbol::codegen for msgpack.pack(bool withFieldName = false, Args...)(in Args args) * DtoDefineFunction(msgpack.__unittestL122_3): msgpack-d/src/msgpack.d(122) * * Ignoring unittest msgpack.__unittestL122_3 * * No code generation for unit test declaration __unittestL122_3 * DtoDefineFunction(msgpack.unpack): msgpack-d/src/msgpack.d(149) * * DtoFunctionType(@trusted Unpacked(const(ubyte[]) buffer)) * * * Building type: Unpacked* * * * * Building type: Unpacked * * * * * Building struct type msgpack.Unpacked @ msgpack-d/src/msgpack.d(3808) * * * * * * adding default initializer for struct field value * * * * * * final struct type: %msgpack.Unpacked = type { %msgpack.Value } * * * x86-64 ABI: Transforming argument types * * * Final function type: void (%msgpack.Unpacked*, { i64, i8* }) * * DtoResolveFunction(msgpack.unpack): msgpack-d/src/msgpack.d(149) * * * DtoDeclareFunction(msgpack.unpack): msgpack-d/src/msgpack.d(149) * * * * DtoFunctionType(@trusted Unpacked(const(ubyte[]) buffer)) * * * * func = declare void @_D7msgpack6unpackFNexAhZS7msgpack8Unpacked(%msgpack.Unpacked*, { i64, i8* }) * * Doing function body for: unpack * * DtoCreateNestedContext for unpack * * * DtoCreateNestedContextType for msgpack.unpack * * CompoundStatement::toIR(): * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(150) * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(151) * * * * * DeclarationExp::toElem: StreamingUnpacker unpacker = unpacker = 0 , unpacker.this(buffer, 8192LU); | T=void * * * * * * DtoDeclarationExp: unpacker * * * * * * * VarDeclaration * * * * * * * DtoVarDeclaration(vdtype = StreamingUnpacker) * * * * * * * * Building type: StreamingUnpacker * * * * * * * * * Building struct type msgpack.StreamingUnpacker @ msgpack-d/src/msgpack.d(3949) * * * * * * * * * * adding default initializer for struct field context_ * * * * * * * * * * adding default initializer for struct field buffer_ * * * * * * * * * * adding default initializer for struct field used_ * * * * * * * * * * adding default initializer for struct field offset_ * * * * * * * * * * adding default initializer for struct field parsed_ * * * * * * * * * * adding default initializer for struct field hasRaw_ * * * * * * * * * * Building type: Context * * * * * * * * * * * Building struct type msgpack.StreamingUnpacker.Context @ msgpack-d/src/msgpack.d(4004) * * * * * * * * * * * * adding default initializer for struct field state * * * * * * * * * * * * adding default initializer for struct field trail * * * * * * * * * * * * adding default initializer for struct field top * * * * * * * * * * * * adding default initializer for struct field stack * * * * * * * * * * * * Building type: State * * * * * * * * * * * * Building type: State * * * * * * * * * * * * Building type: Container[] * * * * * * * * * * * * * Building type: Container * * * * * * * * * * * * * * Building struct type msgpack.StreamingUnpacker.Context.Container @ msgpack-d/src/msgpack.d(4006) * * * * * * * * * * * * * * * adding default initializer for struct field type * * * * * * * * * * * * * * * adding default initializer for struct field value * * * * * * * * * * * * * * * adding default initializer for struct field key * * * * * * * * * * * * * * * adding default initializer for struct field count * * * * * * * * * * * * * * * Building type: ContainerElement * * * * * * * * * * * * * * * Building type: ContainerElement * * * * * * * * * * * * * * * final struct type: %msgpack.StreamingUnpacker.Context.Container = type { i32, [12 x i8], %msgpack.Value, %msgpack.Value, i64, [8 x i8] } * * * * * * * * * * * * final struct type: %msgpack.StreamingUnpacker.Context = type { i32, [4 x i8], i64, i64, { i64, %msgpack.StreamingUnpacker.Context.Container* } } * * * * * * * * * * final struct type: %msgpack.StreamingUnpacker = type { %msgpack.StreamingUnpacker.Context, { i64, i8* }, i64, i64, i64, i8, [7 x i8] } * * * * * * * * llvm value for decl: %unpacker = alloca %msgpack.StreamingUnpacker, align 8 * * * * * * * * expression initializer * * * * * * * * CommaExp::toElem: unpacker = 0 , unpacker.this(buffer, 8192LU) @ StreamingUnpacker * * * * * * * * * AssignExp::toElem: unpacker = 0 | (StreamingUnpacker)(StreamingUnpacker = int) * * * * * * * * * * VarExp::toElem: unpacker @ StreamingUnpacker * * * * * * * * * * * DtoSymbolAddress ('unpacker' of type 'StreamingUnpacker') * * * * * * * * * * * * a normal variable * * * * * * * * * * IntegerExp::toElem: 0 @ int * * * * * * * * * * * IntegerExp::toConstElem: 0 @ int * * * * * * * * * * * * value = i32 0 * * * * * * * * * * performing aggregate zero initialization * * * * * * * * * CallExp::toElem: unpacker.this(buffer, 8192LU) @ StreamingUnpacker * * * * * * * * * * DotVarExp::toElem: unpacker.this @ ref @safe StreamingUnpacker(const(ubyte[]) target, const(ulong) bufferSize = 8192LU) * * * * * * * * * * * VarExp::toElem: unpacker @ StreamingUnpacker * * * * * * * * * * * * DtoSymbolAddress ('unpacker' of type 'StreamingUnpacker') * * * * * * * * * * * * * a normal variable * * * * * * * * * * * isMember = this is: StreamingUnpacker * * * * * * * * * * * DtoFunctionType(ref @safe StreamingUnpacker(const(ubyte[]) target, const(ulong) bufferSize = 8192LU)) * * * * * * * * * * * * Building type: StreamingUnpacker* * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * Final function type: %msgpack.StreamingUnpacker* (%msgpack.StreamingUnpacker*, i64, { i64, i8* }) * * * * * * * * * * * DtoResolveFunction(msgpack.StreamingUnpacker.this): msgpack-d/src/msgpack.d(4034) * * * * * * * * * * * * DtoDeclareFunction(msgpack.StreamingUnpacker.this): msgpack-d/src/msgpack.d(4034) * * * * * * * * * * * * * isMember = this is: StreamingUnpacker * * * * * * * * * * * * * DtoFunctionType(ref @safe StreamingUnpacker(const(ubyte[]) target, const(ulong) bufferSize = 8192LU)) * * * * * * * * * * * * * func = declare %msgpack.StreamingUnpacker* @_D7msgpack17StreamingUnpacker6__ctorMFNcNfxAhxmZS7msgpack17StreamingUnpacker(%msgpack.StreamingUnpacker*, i64, { i64, i8* }) * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * Building type: ref @safe StreamingUnpacker(const(ubyte[]) target, const(ulong) bufferSize = 8192LU) * * * * * * * * * * * * DtoFunctionType(ref @safe StreamingUnpacker(const(ubyte[]) target, const(ulong) bufferSize = 8192LU)) * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * Final function type: %msgpack.StreamingUnpacker* (i64, { i64, i8* }) * * * * * * * * * * * doing normal arguments * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * %unpacker = alloca %msgpack.StreamingUnpacker, align 8 * * * * * * * * * * * Function type: ref @safe StreamingUnpacker(const(ubyte[]) target, const(ulong) bufferSize = 8192LU) * * * * * * * * * * * DtoArgument * * * * * * * * * * * * VarExp::toElem: buffer @ const(ubyte[]) * * * * * * * * * * * * * DtoSymbolAddress ('buffer' of type 'const(ubyte[])') * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * type: const(ubyte[]) * * * * * * * * * * * DtoArgument * * * * * * * * * * * * IntegerExp::toElem: 8192LU @ const(ulong) * * * * * * * * * * * * * IntegerExp::toConstElem: 8192LU @ const(ulong) * * * * * * * * * * * * * * value = i64 8192 * * * * IfStatement::toIR(): msgpack-d/src/msgpack.d(153) * * * * * NotExp::toElem: !unpacker.execute() @ bool * * * * * * CallExp::toElem: unpacker.execute() @ bool * * * * * * * DotVarExp::toElem: unpacker.execute @ @trusted bool() * * * * * * * * VarExp::toElem: unpacker @ StreamingUnpacker * * * * * * * * * DtoSymbolAddress ('unpacker' of type 'StreamingUnpacker') * * * * * * * * * * a normal variable * * * * * * * * isMember = this is: StreamingUnpacker * * * * * * * * DtoFunctionType(@trusted bool()) * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * Final function type: i1 (%msgpack.StreamingUnpacker*) * * * * * * * * DtoResolveFunction(msgpack.StreamingUnpacker.execute): msgpack-d/src/msgpack.d(4106) * * * * * * * * * DtoDeclareFunction(msgpack.StreamingUnpacker.execute): msgpack-d/src/msgpack.d(4106) * * * * * * * * * * isMember = this is: StreamingUnpacker * * * * * * * * * * DtoFunctionType(@trusted bool()) * * * * * * * * * * func = declare i1 @_D7msgpack17StreamingUnpacker7executeMFNeZb(%msgpack.StreamingUnpacker*) * * * * * * * DtoCallFunction() * * * * * * * * Building type: @trusted bool() * * * * * * * * * DtoFunctionType(@trusted bool()) * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: i1 () * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (1) * * * * * * * * * %unpacker = alloca %msgpack.StreamingUnpacker, align 8 * * * * * * * * Function type: @trusted bool() * * * * * ThrowStatement::toIR(): msgpack-d/src/msgpack.d(154) * * * * * * NewExp::toElem: new UnpackException("Deserialization failure") @ msgpack.UnpackException * * * * * * * new class * * * * * * * DtoResolveClass(msgpack.UnpackException): msgpack-d/src/msgpack.d(1630) * * * * * * * * DtoResolveClass(msgpack.MessagePackException): msgpack-d/src/msgpack.d(253) * * * * * * * * * Building type: msgpack.MessagePackException * * * * * * * * * * Building class type msgpack.MessagePackException @ msgpack-d/src/msgpack.d(253) * * * * * * * * * * * Instance size: 72 * * * * * * * * * * * adding default initializer for struct field msg * * * * * * * * * * * adding default initializer for struct field file * * * * * * * * * * * adding default initializer for struct field line * * * * * * * * * * * adding default initializer for struct field info * * * * * * * * * * * adding default initializer for struct field next * * * * * * * * * * * Building vtbl type for class msgpack.MessagePackException * * * * * * * * * * * * Adding type of object.Throwable.toString * * * * * * * * * * * * isMember = this is: object.Throwable * * * * * * * * * * * * DtoFunctionType(string()) * * * * * * * * * * * * Adding type of object.Object.toHash * * * * * * * * * * * * isMember = this is: object.Object * * * * * * * * * * * * DtoFunctionType(nothrow @trusted ulong()) * * * * * * * * * * * * Adding type of object.Object.opCmp * * * * * * * * * * * * isMember = this is: object.Object * * * * * * * * * * * * DtoFunctionType(int(Object o)) * * * * * * * * * * * * Adding type of object.Object.opEquals * * * * * * * * * * * * isMember = this is: object.Object * * * * * * * * * * * * DtoFunctionType(bool(Object o)) * * * * * * * * * * * * Adding type of object.Throwable.toString * * * * * * * * * * * * isMember = this is: object.Throwable * * * * * * * * * * * * DtoFunctionType(const void(scope void delegate(const(char[])) sink)) * * * * * * * * * * * class type: %msgpack.MessagePackException = type { %msgpack.MessagePackException.__vtbl*, i8*, { i64, i8* }, { i64, i8* }, i64, %object.Throwable.TraceInfo*, %object.Throwable* } * * * * * * * * Building type: msgpack.UnpackException * * * * * * * * * Building class type msgpack.UnpackException @ msgpack-d/src/msgpack.d(1630) * * * * * * * * * * Instance size: 72 * * * * * * * * * * adding default initializer for struct field msg * * * * * * * * * * adding default initializer for struct field file * * * * * * * * * * adding default initializer for struct field line * * * * * * * * * * adding default initializer for struct field info * * * * * * * * * * adding default initializer for struct field next * * * * * * * * * * Building vtbl type for class msgpack.UnpackException * * * * * * * * * * * Adding type of object.Throwable.toString * * * * * * * * * * * isMember = this is: object.Throwable * * * * * * * * * * * DtoFunctionType(string()) * * * * * * * * * * * Adding type of object.Object.toHash * * * * * * * * * * * isMember = this is: object.Object * * * * * * * * * * * DtoFunctionType(nothrow @trusted ulong()) * * * * * * * * * * * Adding type of object.Object.opCmp * * * * * * * * * * * isMember = this is: object.Object * * * * * * * * * * * DtoFunctionType(int(Object o)) * * * * * * * * * * * Adding type of object.Object.opEquals * * * * * * * * * * * isMember = this is: object.Object * * * * * * * * * * * DtoFunctionType(bool(Object o)) * * * * * * * * * * * Adding type of object.Throwable.toString * * * * * * * * * * * isMember = this is: object.Throwable * * * * * * * * * * * DtoFunctionType(const void(scope void delegate(const(char[])) sink)) * * * * * * * * * * class type: %msgpack.UnpackException = type { %msgpack.UnpackException.__vtbl*, i8*, { i64, i8* }, { i64, i8* }, i64, %object.Throwable.TraceInfo*, %object.Throwable* } * * * * * * * Calling constructor * * * * * * * isMember = this is: msgpack.UnpackException * * * * * * * DtoFunctionType(@trusted UnpackException(string message)) * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * Final function type: %msgpack.UnpackException* (%msgpack.UnpackException*, { i64, i8* }) * * * * * * * DtoResolveFunction(msgpack.UnpackException.this): msgpack-d/src/msgpack.d(1632) * * * * * * * * DtoDeclareFunction(msgpack.UnpackException.this): msgpack-d/src/msgpack.d(1632) * * * * * * * * * isMember = this is: msgpack.UnpackException * * * * * * * * * DtoFunctionType(@trusted UnpackException(string message)) * * * * * * * * * func = declare %msgpack.UnpackException* @_D7msgpack15UnpackException6__ctorMFNeAyaZC7msgpack15UnpackException(%msgpack.UnpackException*, { i64, i8* }) * * * * * * * DtoCallFunction() * * * * * * * * Building type: @trusted UnpackException(string message) * * * * * * * * * DtoFunctionType(@trusted UnpackException(string message)) * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: %msgpack.UnpackException* ({ i64, i8* }) * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (1) * * * * * * * * * %.newclass_gc = bitcast %object.Object* %.newclass_gc_alloc to %msgpack.UnpackException* * * * * * * * * Function type: @trusted UnpackException(string message) * * * * * * * * DtoArgument * * * * * * * * * StringExp::toElem: "Deserialization failure" @ string * * * * * * * * * * type: [24 x i8] * * * * * * * * * * init: [24 x i8] c"Deserialization failure\00" * * * * ReturnStatement::toIR(): msgpack-d/src/msgpack.d(156) * * * * * CallExp::toElem: unpacker.unpacked() @ Unpacked * * * * * * DotVarExp::toElem: unpacker.unpacked @ @property @safe Unpacked() * * * * * * * VarExp::toElem: unpacker @ StreamingUnpacker * * * * * * * * DtoSymbolAddress ('unpacker' of type 'StreamingUnpacker') * * * * * * * * * a normal variable * * * * * * * isMember = this is: StreamingUnpacker * * * * * * * DtoFunctionType(@property @safe Unpacked()) * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * Final function type: void (%msgpack.Unpacked*, %msgpack.StreamingUnpacker*) * * * * * * * DtoResolveFunction(msgpack.StreamingUnpacker.unpacked): msgpack-d/src/msgpack.d(4048) * * * * * * * * DtoDeclareFunction(msgpack.StreamingUnpacker.unpacked): msgpack-d/src/msgpack.d(4048) * * * * * * * * * isMember = this is: StreamingUnpacker * * * * * * * * * DtoFunctionType(@property @safe Unpacked()) * * * * * * * * * func = declare void @_D7msgpack17StreamingUnpacker8unpackedMFNdNfZS7msgpack8Unpacked(%msgpack.Unpacked*, %msgpack.StreamingUnpacker*) * * * * * * DtoCallFunction() * * * * * * * Building type: @property @safe Unpacked() * * * * * * * * DtoFunctionType(@property @safe Unpacked()) * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * Final function type: void (%msgpack.Unpacked*) * * * * * * * doing normal arguments * * * * * * * Arguments so far: (2) * * * * * * * * %.rettmp = alloca %msgpack.Unpacked, align 16 * * * * * * * * %unpacker = alloca %msgpack.StreamingUnpacker, align 8 * * * * * * * Function type: @property @safe Unpacked() * * * * * DtoAssign() * Ignoring Dsymbol::codegen for msgpack.unpack(bool withFieldName = false, Args...)(in ubyte[] buffer, ref Args args) * Ignoring Dsymbol::codegen for msgpack.unpack(Type, bool withFieldName = false)(in ubyte[] buffer) * DtoDefineFunction(msgpack.__unittestL194_4): msgpack-d/src/msgpack.d(194) * * Ignoring unittest msgpack.__unittestL194_4 * * No code generation for unit test declaration __unittestL194_4 * DtoDefineFunction(msgpack.__unittestL236_5): msgpack-d/src/msgpack.d(236) * * Ignoring unittest msgpack.__unittestL236_5 * * No code generation for unit test declaration __unittestL236_5 * ClassDeclaration::codegen: 'msgpack.MessagePackException' * * DtoDefineFunction(msgpack.MessagePackException.this): msgpack-d/src/msgpack.d(255) * * * isMember = this is: msgpack.MessagePackException * * * DtoFunctionType(pure @trusted MessagePackException(string message)) * * * * x86-64 ABI: Transforming return type * * * * x86-64 ABI: Transforming argument types * * * * Final function type: %msgpack.MessagePackException* (%msgpack.MessagePackException*, { i64, i8* }) * * * DtoResolveFunction(msgpack.MessagePackException.this): msgpack-d/src/msgpack.d(255) * * * * DtoDeclareFunction(msgpack.MessagePackException.this): msgpack-d/src/msgpack.d(255) * * * * * isMember = this is: msgpack.MessagePackException * * * * * DtoFunctionType(pure @trusted MessagePackException(string message)) * * * * * func = declare %msgpack.MessagePackException* @_D7msgpack20MessagePackException6__ctorMFNaNeAyaZC7msgpack20MessagePackException(%msgpack.MessagePackException*, { i64, i8* }) * * * Doing function body for: this * * * DtoCreateNestedContext for this * * * * DtoCreateNestedContextType for msgpack.MessagePackException.this * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(255) * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(257) * * * * * * CallExp::toElem: super.this(message, "msgpack-d/src/msgpack.d", 257LU, null) @ msgpack.MessagePackException * * * * * * * DotVarExp::toElem: super.this @ pure nothrow @safe Exception(string msg, string file = __FILE__, ulong line = cast(ulong)__LINE__, Throwable next = null) * * * * * * * * ThisExp::toElem: super @ object.Exception * * * * * * * * * normal this exp * * * * * * * DtoCallFunction() * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (1) * * * * * * * * * %2 = bitcast %msgpack.MessagePackException* %1 to %object.Exception* * * * * * * * * Function type: pure nothrow @safe Exception(string msg, string file = __FILE__, ulong line = cast(ulong)__LINE__, Throwable next = null) * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: message @ string * * * * * * * * * * DtoSymbolAddress ('message' of type 'string') * * * * * * * * * * * function param * * * * * * * * * * * type: string * * * * * * * * DtoArgument * * * * * * * * * StringExp::toElem: "msgpack-d/src/msgpack.d" @ string * * * * * * * * * * type: [24 x i8] * * * * * * * * * * init: [24 x i8] c"msgpack-d/src/msgpack.d\00" * * * * * * * * DtoArgument * * * * * * * * * IntegerExp::toElem: 257LU @ ulong * * * * * * * * * * IntegerExp::toConstElem: 257LU @ ulong * * * * * * * * * * * value = i64 257 * * * * * * * * DtoArgument * * * * * * * * * NullExp::toElem(type=object.Throwable): null * * * * * * * * * * NullExp::toConstElem(type=object.Throwable): null * * * * * * * * Rewrite: putParam * * * * * * * * repainting return value from 'object.Exception' to 'msgpack.MessagePackException' * * * * * * * * final return value: %4 = bitcast %object.Exception* %3 to %msgpack.MessagePackException* * * * * * ReturnStatement::toIR(): msgpack-d/src/msgpack.d(255) * * * * * * ThisExp::toElem: this @ msgpack.MessagePackException * * * * * * * this exp without var declaration * * * * * * return value is '0x131310f8' * * Building default initializer for msgpack.MessagePackException * * * Creating initializer constant for MessagePackException * * * * Implicit initializer: msg @+16 * * * * * DtoConstExpInit(targetType = string, exp = null) * * * * * * NullExp::toConstElem(type=string): null * * * * Implicit initializer: file @+32 * * * * * DtoConstExpInit(targetType = string, exp = null) * * * * * * NullExp::toConstElem(type=string): null * * * * Implicit initializer: line @+48 * * * * * DtoConstExpInit(targetType = ulong, exp = 0LU) * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * value = i64 0 * * * * Implicit initializer: info @+56 * * * * * DtoConstExpInit(targetType = object.Throwable.TraceInfo, exp = null) * * * * * * NullExp::toConstElem(type=object.Throwable.TraceInfo): null * * * * Implicit initializer: next @+64 * * * * * DtoConstExpInit(targetType = object.Throwable, exp = null) * * * * * * NullExp::toConstElem(type=object.Throwable): null * * * * adding field msg * * * * adding field file * * * * adding field line * * * * adding field info * * * * adding field next * * * * final initializer: %msgpack.MessagePackException_init { %msgpack.MessagePackException.__vtbl* @_D7msgpack20MessagePackException6__vtblZ, i8* null, { i64, i8* } zeroinitializer, { i64, i8* } zeroinitializer, i64 0, %object.Throwable.TraceInfo* null, %object.Throwable* null } * * Building vtbl initializer * * * isMember = this is: object.Throwable * * * DtoFunctionType(string()) * * * DtoResolveFunction(object.Throwable.toString): /usr/include/dlang/ldc/object.di(374) * * * * DtoDeclareFunction(object.Throwable.toString): /usr/include/dlang/ldc/object.di(374) * * * * * isMember = this is: object.Throwable * * * * * DtoFunctionType(string()) * * * * * func = declare { i64, i8* } @_D6object9Throwable8toStringMFZAya(%object.Throwable*) * * * isMember = this is: object.Object * * * DtoFunctionType(nothrow @trusted ulong()) * * * DtoResolveFunction(object.Object.toHash): /usr/include/dlang/ldc/object.di(50) * * * * DtoDeclareFunction(object.Object.toHash): /usr/include/dlang/ldc/object.di(50) * * * * * isMember = this is: object.Object * * * * * DtoFunctionType(nothrow @trusted ulong()) * * * * * func = declare i64 @_D6object6Object6toHashMFNbNeZm(%object.Object*) * * * isMember = this is: object.Object * * * DtoFunctionType(int(Object o)) * * * DtoResolveFunction(object.Object.opCmp): /usr/include/dlang/ldc/object.di(51) * * * * DtoDeclareFunction(object.Object.opCmp): /usr/include/dlang/ldc/object.di(51) * * * * * isMember = this is: object.Object * * * * * DtoFunctionType(int(Object o)) * * * * * func = declare i32 @_D6object6Object5opCmpMFC6ObjectZi(%object.Object*, %object.Object*) * * * isMember = this is: object.Object * * * DtoFunctionType(bool(Object o)) * * * DtoResolveFunction(object.Object.opEquals): /usr/include/dlang/ldc/object.di(53) * * * * DtoDeclareFunction(object.Object.opEquals): /usr/include/dlang/ldc/object.di(53) * * * * * isMember = this is: object.Object * * * * * DtoFunctionType(bool(Object o)) * * * * * func = declare i1 @_D6object6Object8opEqualsMFC6ObjectZb(%object.Object*, %object.Object*) * * * isMember = this is: object.Throwable * * * DtoFunctionType(const void(scope void delegate(const(char[])) sink)) * * * DtoResolveFunction(object.Throwable.toString): /usr/include/dlang/ldc/object.di(375) * * * * DtoDeclareFunction(object.Throwable.toString): /usr/include/dlang/ldc/object.di(375) * * * * * isMember = this is: object.Throwable * * * * * DtoFunctionType(const void(scope void delegate(const(char[])) sink)) * * * * * func = declare void @_D6object9Throwable8toStringMxFMDFxAaZvZv(%object.Throwable*, { i8*, void (i8*, { i64, i8* })* }) * * DtoDefineClassInfo(MessagePackException) * * * DtoResolveClass(object.TypeInfo_Class): /usr/include/dlang/ldc/object.di(196) * * * Building ClassInfo.interfaces * * * IntegerExp::toConstElem: cast(void*)305419896LU @ void* * * * * pointer * StructDeclaration::codegen: 'msgpack.nonPacked' * * Resolving struct type: nonPacked (msgpack-d/src/msgpack.d(276)) * * * Building type: nonPacked * * * * Building struct type msgpack.nonPacked @ msgpack-d/src/msgpack.d(276) * * * * * final struct type: %msgpack.nonPacked = type { [1 x i8] } * * Building default initializer for msgpack.nonPacked * * * Creating initializer constant for nonPacked * * * * final initializer: %msgpack.nonPacked_init zeroinitializer * * DtoTypeInfoOf(type = 'nonPacked', base='1') * * * Type::getTypeInfo(): nonPacked * * * * TypeInfoDeclaration::codegen(typeid(nonPacked)) * * * * * type = 'nonPacked' * * * * * typeinfo mangle: _D28TypeInfo_S7msgpack9nonPacked6__initZ * * * * * TypeInfoStructDeclaration::llvmDefine() typeid(nonPacked) * * * * * * IntegerExp::toConstElem: cast(void*)305419896LU @ void* * * * * * * * pointer * * * TypeInfoDeclaration::codegen(typeid(nonPacked)) * Ignoring Dsymbol::codegen for msgpack.isPackedField(alias field) * Ignoring Dsymbol::codegen for msgpack.PackerImpl(Stream) if (isOutputRange!(Stream, ubyte) && isOutputRange!(Stream, ubyte[])) * Ignoring Dsymbol::codegen for msgpack.Packer * Ignoring Dsymbol::codegen for msgpack.registerPackHandler(T, alias Handler, Stream = Appender!(ubyte[]))() * Ignoring Dsymbol::codegen for msgpack.packer(Stream)(Stream stream, bool withFieldName = false) * StructDeclaration::codegen: 'msgpack.RefBuffer' * * Resolving struct type: RefBuffer (msgpack-d/src/msgpack.d(1052)) * * * Building type: RefBuffer * * * * Building struct type msgpack.RefBuffer @ msgpack-d/src/msgpack.d(1052) * * * * * adding default initializer for struct field Threshold * * * * * adding default initializer for struct field ChunkSize * * * * * adding default initializer for struct field chunks_ * * * * * adding default initializer for struct field index_ * * * * * adding default initializer for struct field vecList_ * * * * * Building type: Chunk[] * * * * * * Building type: Chunk * * * * * * * Building struct type msgpack.RefBuffer.Chunk @ msgpack-d/src/msgpack.d(1055) * * * * * * * * adding default initializer for struct field data * * * * * * * * adding default initializer for struct field used * * * * * * * * final struct type: %msgpack.RefBuffer.Chunk = type { { i64, i8* }, i64 } * * * * * Building type: iovec[] * * * * * * Building type: iovec * * * * * * * Building struct type core.sys.posix.sys.uio.iovec @ /usr/include/dlang/ldc/core/sys/posix/sys/uio.d(42) * * * * * * * * adding default initializer for struct field iov_base * * * * * * * * adding default initializer for struct field iov_len * * * * * * * * final struct type: %core.sys.posix.sys.uio.iovec = type { i8*, i64 } * * * * * final struct type: %msgpack.RefBuffer = type { i64, i64, { i64, %msgpack.RefBuffer.Chunk* }, i64, { i64, %core.sys.posix.sys.uio.iovec* } } * * StructDeclaration::codegen: 'msgpack.RefBuffer.Chunk' * * * Resolving struct type: Chunk (msgpack-d/src/msgpack.d(1055)) * * * VarDeclaration::codegen(): 'msgpack.RefBuffer.Chunk.data' * * * * DtoResolveVariable(msgpack.RefBuffer.Chunk.data) * * * VarDeclaration::codegen(): 'msgpack.RefBuffer.Chunk.used' * * * * DtoResolveVariable(msgpack.RefBuffer.Chunk.used) * * * Building default initializer for msgpack.RefBuffer.Chunk * * * * Creating initializer constant for Chunk * * * * * Implicit initializer: data @+0 * * * * * * DtoConstExpInit(targetType = ubyte[], exp = null) * * * * * * * NullExp::toConstElem(type=ubyte[]): null * * * * * Implicit initializer: used @+16 * * * * * * DtoConstExpInit(targetType = ulong, exp = 0LU) * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * value = i64 0 * * * * * adding field data * * * * * adding field used * * * * * final initializer: %msgpack.RefBuffer.Chunk_init zeroinitializer * * * DtoTypeInfoOf(type = 'Chunk', base='1') * * * * Type::getTypeInfo(): Chunk * * * * * TypeInfoDeclaration::codegen(typeid(Chunk)) * * * * * * type = 'Chunk' * * * * * * typeinfo mangle: _D34TypeInfo_S7msgpack9RefBuffer5Chunk6__initZ * * * * * * TypeInfoStructDeclaration::llvmDefine() typeid(Chunk) * * * * * * * DtoFunctionType(nothrow @trusted ulong(ref const(Chunk) p)) * * * * * * * * Building type: const(Chunk)* * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * Final function type: i64 (%msgpack.RefBuffer.Chunk*) * * * * * * * DtoResolveFunction(msgpack.RefBuffer.Chunk.__xtoHash): * * * * * * * * DtoDeclareFunction(msgpack.RefBuffer.Chunk.__xtoHash): * * * * * * * * * DtoFunctionType(nothrow @trusted ulong(ref const(Chunk) p)) * * * * * * * * * func = declare i64 @_D7msgpack9RefBuffer5Chunk9__xtoHashFNbNeKxS7msgpack9RefBuffer5ChunkZm(%msgpack.RefBuffer.Chunk*) * * * * * * * DtoFunctionType(bool(ref const(Chunk) p, ref const(Chunk) q)) * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * Final function type: i1 (%msgpack.RefBuffer.Chunk*, %msgpack.RefBuffer.Chunk*) * * * * * * * DtoResolveFunction(msgpack.RefBuffer.Chunk.__xopEquals): * * * * * * * * DtoDeclareFunction(msgpack.RefBuffer.Chunk.__xopEquals): * * * * * * * * * DtoFunctionType(bool(ref const(Chunk) p, ref const(Chunk) q)) * * * * * * * * * func = declare i1 @_D7msgpack9RefBuffer5Chunk11__xopEqualsFKxS7msgpack9RefBuffer5ChunkKxS7msgpack9RefBuffer5ChunkZb(%msgpack.RefBuffer.Chunk*, %msgpack.RefBuffer.Chunk*) * * * * * * * IntegerExp::toConstElem: cast(void*)305419896LU @ void* * * * * * * * * pointer * * * * TypeInfoDeclaration::codegen(typeid(Chunk)) * * * DtoDefineFunction(msgpack.RefBuffer.Chunk.__xopEquals): * * * * Doing function body for: __xopEquals * * * * DtoCreateNestedContext for __xopEquals * * * * * DtoCreateNestedContextType for msgpack.RefBuffer.Chunk.__xopEquals * * * * CompoundStatement::toIR(): * * * * * ReturnStatement::toIR(): * * * * * * AndAndExp::toElem: p.data == q.data && p.used == q.used @ bool * * * * * * * EqualExp::toElem: p.data == q.data @ bool * * * * * * * * DotVarExp::toElem: p.data @ const(ubyte[]) * * * * * * * * * VarExp::toElem: p @ const(Chunk) * * * * * * * * * * DtoSymbolAddress ('p' of type 'const(Chunk)') * * * * * * * * * * * function param * * * * * * * * * * * type: const(Chunk) * * * * * * * * * Indexing aggregate field msgpack.RefBuffer.Chunk.data: * * * * * * * * * * Value: %1 = getelementptr %msgpack.RefBuffer.Chunk, %msgpack.RefBuffer.Chunk* %p_arg, i32 0, i32 0 * * * * * * * * DotVarExp::toElem: q.data @ const(ubyte[]) * * * * * * * * * VarExp::toElem: q @ const(Chunk) * * * * * * * * * * DtoSymbolAddress ('q' of type 'const(Chunk)') * * * * * * * * * * * function param * * * * * * * * * * * type: const(Chunk) * * * * * * * * * Indexing aggregate field msgpack.RefBuffer.Chunk.data: * * * * * * * * * * Value: %2 = getelementptr %msgpack.RefBuffer.Chunk, %msgpack.RefBuffer.Chunk* %q_arg, i32 0, i32 0 * * * * * * * * static or dynamic array * * * * * * * * comparing arrays * * * * * * * * casting to dynamic arrays * * * * * * * * DtoCastArray * * * * * * * * * from array or sarray * * * * * * * * * to array * * * * * * * * * DtoArrayLen * * * * * * * * * DtoArrayPtr * * * * * * * * * isslice * * * * * * * * DtoCastArray * * * * * * * * * from array or sarray * * * * * * * * * to array * * * * * * * * * DtoArrayLen * * * * * * * * * DtoArrayPtr * * * * * * * * * isslice * * * * * * * * DtoTypeInfoOf(type = 'const(ubyte)[]', base='1') * * * * * * * * * Type::getTypeInfo(): const(ubyte)[] * * * * * * * * * TypeInfoDeclaration::codegen(typeid(const(ubyte)[])) * * * * * * * EqualExp::toElem: p.used == q.used @ bool * * * * * * * * DotVarExp::toElem: p.used @ const(ulong) * * * * * * * * * VarExp::toElem: p @ const(Chunk) * * * * * * * * * * DtoSymbolAddress ('p' of type 'const(Chunk)') * * * * * * * * * * * function param * * * * * * * * * * * type: const(Chunk) * * * * * * * * * Indexing aggregate field msgpack.RefBuffer.Chunk.used: * * * * * * * * * * Value: %15 = getelementptr %msgpack.RefBuffer.Chunk, %msgpack.RefBuffer.Chunk* %p_arg, i32 0, i32 1 * * * * * * * * DotVarExp::toElem: q.used @ const(ulong) * * * * * * * * * VarExp::toElem: q @ const(Chunk) * * * * * * * * * * DtoSymbolAddress ('q' of type 'const(Chunk)') * * * * * * * * * * * function param * * * * * * * * * * * type: const(Chunk) * * * * * * * * * Indexing aggregate field msgpack.RefBuffer.Chunk.used: * * * * * * * * * * Value: %16 = getelementptr %msgpack.RefBuffer.Chunk, %msgpack.RefBuffer.Chunk* %q_arg, i32 0, i32 1 * * * * * * * * integral or pointer or interface * * * * * * * * lv: %17 = load i64, i64* %15 * * * * * * * * rv: %18 = load i64, i64* %16 * * * * * * return value is '0x1313d9b8' * * * DtoDefineFunction(msgpack.RefBuffer.Chunk.__xtoHash): * * * * Doing function body for: __xtoHash * * * * DtoCreateNestedContext for __xtoHash * * * * * DtoCreateNestedContextType for msgpack.RefBuffer.Chunk.__xtoHash * * * * CompoundStatement::toIR(): * * * * * CompoundStatement::toIR(): * * * * * * ExpStatement::toIR(): * * * * * * * DeclarationExp::toElem: ulong h = 0LU; | T=void * * * * * * * * DtoDeclarationExp: h * * * * * * * * * VarDeclaration * * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * * llvm value for decl: %h = alloca i64, align 8 * * * * * * * * * * expression initializer * * * * * * * * * * AssignExp::toElem: h = 0LU | (ulong)(ulong = ulong) * * * * * * * * * * * VarExp::toElem: h @ ulong * * * * * * * * * * * * DtoSymbolAddress ('h' of type 'ulong') * * * * * * * * * * * * * a normal variable * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * lhs: %h = alloca i64, align 8 * * * * * * * * * * * * rhs: i64 0 * * * * * * UnrolledLoopStatement::toIR(): * * * * * * * ScopeStatement::toIR(): * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * ExpStatement::toIR(): * * * * * * * * * * DeclarationExp::toElem: enum ulong i = 0LU; | T=void * * * * * * * * * * * DtoDeclarationExp: i * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * Manifest constant, nothing to do. * * * * * * * * * ExpStatement::toIR(): * * * * * * * * * * DeclarationExp::toElem: alias T = const(ubyte[]); | T=void * * * * * * * * * * * DtoDeclarationExp: T * * * * * * * * * * * * Ignoring Symbol: alias * * * * * * * * * ExpStatement::toIR(): * * * * * * * * * * AddAssignExp::toElem: h += typeid(const(ubyte[])).getHash(cast(const(void*))&p.data) @ ulong * * * * * * * * * * * Caching l-value of h += typeid(const(ubyte[])).getHash(cast(const(void*))&p.data) => h * * * * * * * * * * * * VarExp::toElem: h @ ulong * * * * * * * * * * * * * DtoSymbolAddress ('h' of type 'ulong') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * AddExp::toElem: h + typeid(const(ubyte[])).getHash(cast(const(void*))&p.data) @ ulong * * * * * * * * * * * * VarExp::toElem: h @ ulong * * * * * * * * * * * * CallExp::toElem: typeid(const(ubyte[])).getHash(cast(const(void*))&p.data) @ ulong * * * * * * * * * * * * * DotVarExp::toElem: typeid(const(ubyte[])).getHash @ const nothrow @trusted ulong(const(void*) p) * * * * * * * * * * * * * * SymOffExp::toElem: typeid(const(ubyte[])) @ object.TypeInfo * * * * * * * * * * * * * * * DtoSymbolAddress ('typeid(const(ubyte[]))' of type 'object.TypeInfo_Const') * * * * * * * * * * * * * * * * TypeInfoDeclaration * * * * * * * * * * * * * * * Casting from 'TypeInfo_Const*' to 'object.TypeInfo' * * * * * * * * * * * * * * * * src: %object.TypeInfo_Const* bitcast (%"typeid(const(ubyte[]))"* @_D12TypeInfo_xAh6__initZ to %object.TypeInfo_Const*) * * * * * * * * * * * * * * * * to type: %object.TypeInfo* * * * * * * * * * * * * * * vthis: %object.TypeInfo* bitcast (%"typeid(const(ubyte[]))"* @_D12TypeInfo_xAh6__initZ to %object.TypeInfo*) * * * * * * * * * * * * * * funcval: %3 = load i64 (%object.TypeInfo*, i8*)*, i64 (%object.TypeInfo*, i8*)** %"typeid(const(ubyte[])).getHash@vtbl", align 8 * * * * * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * * * * * DtoFunctionType(const nothrow @trusted ulong(const(void*) p)) * * * * * * * * * * * * * * funcval casted: %"typeid(const(ubyte[])).getHash" = load i64 (%object.TypeInfo*, i8*)*, i64 (%object.TypeInfo*, i8*)** %"typeid(const(ubyte[])).getHash@vtbl", align 8 * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * %object.TypeInfo* bitcast (%"typeid(const(ubyte[]))"* @_D12TypeInfo_xAh6__initZ to %object.TypeInfo*) * * * * * * * * * * * * * * Function type: const nothrow @trusted ulong(const(void*) p) * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * CastExp::toElem: cast(const(void*))&p.data @ const(void*) * * * * * * * * * * * * * * * * AddrExp::toElem: &p.data @ const(ubyte[])* * * * * * * * * * * * * * * * * * DotVarExp::toElem: p.data @ const(ubyte[]) * * * * * * * * * * * * * * * * * * VarExp::toElem: p @ const(Chunk) * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('p' of type 'const(Chunk)') * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * type: const(Chunk) * * * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.RefBuffer.Chunk.data: * * * * * * * * * * * * * * * * * * * Value: %3 = getelementptr %msgpack.RefBuffer.Chunk, %msgpack.RefBuffer.Chunk* %p_arg, i32 0, i32 0 * * * * * * * * * * * * * * * * * is nothing special * * * * * * * * * * * * * * * * * lval: %3 = getelementptr %msgpack.RefBuffer.Chunk, %msgpack.RefBuffer.Chunk* %p_arg, i32 0, i32 0 * * * * * * * * * * * * * * * * Casting from 'const(ubyte[])*' to 'const(void*)' * * * * * * * * * * * * * * * * * src: %3 = getelementptr %msgpack.RefBuffer.Chunk, %msgpack.RefBuffer.Chunk* %p_arg, i32 0, i32 0 * * * * * * * * * * * * * * * * * to type: i8* * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * lhs: %h = alloca i64, align 8 * * * * * * * * * * * * rhs: %7 = add i64 %6, %5 * * * * * * * ScopeStatement::toIR(): * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * ExpStatement::toIR(): * * * * * * * * * * DeclarationExp::toElem: enum ulong i = 1LU; | T=void * * * * * * * * * * * DtoDeclarationExp: i * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * Manifest constant, nothing to do. * * * * * * * * * ExpStatement::toIR(): * * * * * * * * * * DeclarationExp::toElem: alias T = const(ulong); | T=void * * * * * * * * * * * DtoDeclarationExp: T * * * * * * * * * * * * Ignoring Symbol: alias * * * * * * * * * ExpStatement::toIR(): * * * * * * * * * * AddAssignExp::toElem: h += typeid(const(ulong)).getHash(cast(const(void*))&p.used) @ ulong * * * * * * * * * * * Caching l-value of h += typeid(const(ulong)).getHash(cast(const(void*))&p.used) => h * * * * * * * * * * * * VarExp::toElem: h @ ulong * * * * * * * * * * * * * DtoSymbolAddress ('h' of type 'ulong') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * AddExp::toElem: h + typeid(const(ulong)).getHash(cast(const(void*))&p.used) @ ulong * * * * * * * * * * * * VarExp::toElem: h @ ulong * * * * * * * * * * * * CallExp::toElem: typeid(const(ulong)).getHash(cast(const(void*))&p.used) @ ulong * * * * * * * * * * * * * DotVarExp::toElem: typeid(const(ulong)).getHash @ const nothrow @trusted ulong(const(void*) p) * * * * * * * * * * * * * * SymOffExp::toElem: typeid(const(ulong)) @ object.TypeInfo * * * * * * * * * * * * * * * DtoSymbolAddress ('typeid(const(ulong))' of type 'object.TypeInfo_Const') * * * * * * * * * * * * * * * * TypeInfoDeclaration * * * * * * * * * * * * * * * Casting from 'TypeInfo_Const*' to 'object.TypeInfo' * * * * * * * * * * * * * * * * src: %object.TypeInfo_Const* bitcast (%"typeid(const(ulong))"* @_D11TypeInfo_xm6__initZ to %object.TypeInfo_Const*) * * * * * * * * * * * * * * * * to type: %object.TypeInfo* * * * * * * * * * * * * * * vthis: %object.TypeInfo* bitcast (%"typeid(const(ulong))"* @_D11TypeInfo_xm6__initZ to %object.TypeInfo*) * * * * * * * * * * * * * * funcval: %10 = load i64 (%object.TypeInfo*, i8*)*, i64 (%object.TypeInfo*, i8*)** %"typeid(const(ulong)).getHash@vtbl", align 8 * * * * * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * * * * * DtoFunctionType(const nothrow @trusted ulong(const(void*) p)) * * * * * * * * * * * * * * funcval casted: %"typeid(const(ulong)).getHash" = load i64 (%object.TypeInfo*, i8*)*, i64 (%object.TypeInfo*, i8*)** %"typeid(const(ulong)).getHash@vtbl", align 8 * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * %object.TypeInfo* bitcast (%"typeid(const(ulong))"* @_D11TypeInfo_xm6__initZ to %object.TypeInfo*) * * * * * * * * * * * * * * Function type: const nothrow @trusted ulong(const(void*) p) * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * CastExp::toElem: cast(const(void*))&p.used @ const(void*) * * * * * * * * * * * * * * * * AddrExp::toElem: &p.used @ const(ulong)* * * * * * * * * * * * * * * * * * DotVarExp::toElem: p.used @ const(ulong) * * * * * * * * * * * * * * * * * * VarExp::toElem: p @ const(Chunk) * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('p' of type 'const(Chunk)') * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * type: const(Chunk) * * * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.RefBuffer.Chunk.used: * * * * * * * * * * * * * * * * * * * Value: %10 = getelementptr %msgpack.RefBuffer.Chunk, %msgpack.RefBuffer.Chunk* %p_arg, i32 0, i32 1 * * * * * * * * * * * * * * * * * is nothing special * * * * * * * * * * * * * * * * * lval: %10 = getelementptr %msgpack.RefBuffer.Chunk, %msgpack.RefBuffer.Chunk* %p_arg, i32 0, i32 1 * * * * * * * * * * * * * * * * Casting from 'const(ulong)*' to 'const(void*)' * * * * * * * * * * * * * * * * * src: %10 = getelementptr %msgpack.RefBuffer.Chunk, %msgpack.RefBuffer.Chunk* %p_arg, i32 0, i32 1 * * * * * * * * * * * * * * * * * to type: i8* * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * lhs: %h = alloca i64, align 8 * * * * * * * * * * * * rhs: %14 = add i64 %13, %12 * * * * * * ReturnStatement::toIR(): * * * * * * * VarExp::toElem: h @ ulong * * * * * * * * DtoSymbolAddress ('h' of type 'ulong') * * * * * * * * * a normal variable * * * * * * * return value is '0x13142678' * * VarDeclaration::codegen(): 'msgpack.RefBuffer.Threshold' * * * DtoResolveVariable(msgpack.RefBuffer.Threshold) * * VarDeclaration::codegen(): 'msgpack.RefBuffer.ChunkSize' * * * DtoResolveVariable(msgpack.RefBuffer.ChunkSize) * * VarDeclaration::codegen(): 'msgpack.RefBuffer.chunks_' * * * DtoResolveVariable(msgpack.RefBuffer.chunks_) * * VarDeclaration::codegen(): 'msgpack.RefBuffer.index_' * * * DtoResolveVariable(msgpack.RefBuffer.index_) * * VarDeclaration::codegen(): 'msgpack.RefBuffer.vecList_' * * * DtoResolveVariable(msgpack.RefBuffer.vecList_) * * DtoDefineFunction(msgpack.RefBuffer.this): msgpack-d/src/msgpack.d(1081) * * * isMember = this is: RefBuffer * * * DtoFunctionType(ref @safe RefBuffer(const(ulong) threshold, const(ulong) chunkSize = 8192LU)) * * * * Building type: RefBuffer* * * * * x86-64 ABI: Transforming argument types * * * * Final function type: %msgpack.RefBuffer* (%msgpack.RefBuffer*, i64, i64) * * * DtoResolveFunction(msgpack.RefBuffer.this): msgpack-d/src/msgpack.d(1081) * * * * DtoDeclareFunction(msgpack.RefBuffer.this): msgpack-d/src/msgpack.d(1081) * * * * * isMember = this is: RefBuffer * * * * * DtoFunctionType(ref @safe RefBuffer(const(ulong) threshold, const(ulong) chunkSize = 8192LU)) * * * * * func = declare %msgpack.RefBuffer* @_D7msgpack9RefBuffer6__ctorMFNcNfxmxmZS7msgpack9RefBuffer(%msgpack.RefBuffer*, i64, i64) * * * Doing function body for: this * * * DtoCreateNestedContext for this * * * * DtoCreateNestedContextType for msgpack.RefBuffer.this * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(1081) * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(1082) * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(1083) * * * * * * * AssignExp::toElem: this.Threshold = threshold | (immutable(ulong))(immutable(ulong) = immutable(ulong)) * * * * * * * * DotVarExp::toElem: this.Threshold @ immutable(ulong) * * * * * * * * * ThisExp::toElem: this @ RefBuffer * * * * * * * * * * normal this exp * * * * * * * * * Indexing aggregate field msgpack.RefBuffer.Threshold: * * * * * * * * * * Value: %1 = getelementptr %msgpack.RefBuffer, %msgpack.RefBuffer* %.this_arg, i32 0, i32 0 * * * * * * * * VarExp::toElem: threshold @ immutable(ulong) * * * * * * * * * DtoSymbolAddress ('threshold' of type 'const(ulong)') * * * * * * * * * * function param * * * * * * * * * * type: const(ulong) * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * DtoAssign() * * * * * * * * * lhs: %1 = getelementptr %msgpack.RefBuffer, %msgpack.RefBuffer* %.this_arg, i32 0, i32 0 * * * * * * * * * rhs: %2 = load i64, i64* %threshold * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(1084) * * * * * * * AssignExp::toElem: this.ChunkSize = chunkSize | (immutable(ulong))(immutable(ulong) = immutable(ulong)) * * * * * * * * DotVarExp::toElem: this.ChunkSize @ immutable(ulong) * * * * * * * * * ThisExp::toElem: this @ RefBuffer * * * * * * * * * * normal this exp * * * * * * * * * Indexing aggregate field msgpack.RefBuffer.ChunkSize: * * * * * * * * * * Value: %3 = getelementptr %msgpack.RefBuffer, %msgpack.RefBuffer* %.this_arg, i32 0, i32 1 * * * * * * * * VarExp::toElem: chunkSize @ immutable(ulong) * * * * * * * * * DtoSymbolAddress ('chunkSize' of type 'const(ulong)') * * * * * * * * * * function param * * * * * * * * * * type: const(ulong) * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * DtoAssign() * * * * * * * * * lhs: %3 = getelementptr %msgpack.RefBuffer, %msgpack.RefBuffer* %.this_arg, i32 0, i32 1 * * * * * * * * * rhs: %4 = load i64, i64* %chunkSize * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(1086) * * * * * * * AssignExp::toElem: this.chunks_.length = 1LU | (ulong)(ulong = ulong) * * * * * * * * performing array.length assignment * * * * * * * * DotVarExp::toElem: this.chunks_ @ Chunk[] * * * * * * * * * ThisExp::toElem: this @ RefBuffer * * * * * * * * * * normal this exp * * * * * * * * * Indexing aggregate field msgpack.RefBuffer.chunks_: * * * * * * * * * * Value: %5 = getelementptr %msgpack.RefBuffer, %msgpack.RefBuffer* %.this_arg, i32 0, i32 2 * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * value = i64 1 * * * * * * * * DtoResizeDynArray : Chunk[] * * * * * * * * * DtoTypeInfoOf(type = 'Chunk[]', base='1') * * * * * * * * * * Type::getTypeInfo(): Chunk[] * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(Chunk[])) * * * * * * * * * * * * type = 'Chunk[]' * * * * * * * * * * * * typeinfo mangle: _D35TypeInfo_AS7msgpack9RefBuffer5Chunk6__initZ * * * * * * * * * * * * TypeInfoArrayDeclaration::llvmDefine() typeid(Chunk[]) * * * * * * * * * * * * * DtoTypeInfoOf(type = 'Chunk', base='1') * * * * * * * * * * * * * * Type::getTypeInfo(): Chunk * * * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(Chunk)) * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(Chunk[])) * * * * * * * * DtoAssign() * * * * * * * * * DtoArrayAssign * * * * * * * * * * DtoArrayPtr * * * * * * * * * * DtoArrayLen * * * * * * * * * * SetArray * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(1087) * * * * * * * AssignExp::toElem: this.chunks_[this.index_].data.length = chunkSize | (ulong)(ulong = ulong) * * * * * * * * performing array.length assignment * * * * * * * * DotVarExp::toElem: this.chunks_[this.index_].data @ ubyte[] * * * * * * * * * IndexExp::toElem: this.chunks_[this.index_] @ Chunk * * * * * * * * * * DotVarExp::toElem: this.chunks_ @ Chunk[] * * * * * * * * * * * ThisExp::toElem: this @ RefBuffer * * * * * * * * * * * * normal this exp * * * * * * * * * * * Indexing aggregate field msgpack.RefBuffer.chunks_: * * * * * * * * * * * * Value: %9 = getelementptr %msgpack.RefBuffer, %msgpack.RefBuffer* %.this_arg, i32 0, i32 2 * * * * * * * * * * DotVarExp::toElem: this.index_ @ ulong * * * * * * * * * * * ThisExp::toElem: this @ RefBuffer * * * * * * * * * * * * normal this exp * * * * * * * * * * * Indexing aggregate field msgpack.RefBuffer.index_: * * * * * * * * * * * * Value: %10 = getelementptr %msgpack.RefBuffer, %msgpack.RefBuffer* %.this_arg, i32 0, i32 3 * * * * * * * * * * DtoArrayLen * * * * * * * * * * DtoArrayPtr * * * * * * * * * Indexing aggregate field msgpack.RefBuffer.Chunk.data: * * * * * * * * * * Value: %16 = getelementptr %msgpack.RefBuffer.Chunk, %msgpack.RefBuffer.Chunk* %15, i32 0, i32 0 * * * * * * * * VarExp::toElem: chunkSize @ ulong * * * * * * * * * DtoSymbolAddress ('chunkSize' of type 'const(ulong)') * * * * * * * * * * function param * * * * * * * * * * type: const(ulong) * * * * * * * * DtoResizeDynArray : ubyte[] * * * * * * * * * DtoTypeInfoOf(type = 'ubyte[]', base='1') * * * * * * * * * * Type::getTypeInfo(): ubyte[] * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(ubyte[])) * * * * * * * * DtoAssign() * * * * * * * * * DtoArrayAssign * * * * * * * * * * DtoArrayPtr * * * * * * * * * * DtoArrayLen * * * * * * * * * * SetArray * * * * * ReturnStatement::toIR(): msgpack-d/src/msgpack.d(1081) * * * * * * AddrExp::toElem: &this @ RefBuffer* * * * * * * * ThisExp::toElem: this @ RefBuffer * * * * * * * * this exp without var declaration * * * * * * * is nothing special * * * * * * * lval: %msgpack.RefBuffer* %.this_arg * * * * * * return value is '0x13143910' * * DtoDefineFunction(msgpack.RefBuffer.data): msgpack-d/src/msgpack.d(1098) * * * isMember = this is: RefBuffer * * * DtoFunctionType(nothrow @property @safe ubyte[]()) * * * * x86-64 ABI: Transforming return type * * * * x86-64 ABI: Transforming argument types * * * * Final function type: { i64, i8* } (%msgpack.RefBuffer*) * * * DtoResolveFunction(msgpack.RefBuffer.data): msgpack-d/src/msgpack.d(1098) * * * * DtoDeclareFunction(msgpack.RefBuffer.data): msgpack-d/src/msgpack.d(1098) * * * * * isMember = this is: RefBuffer * * * * * DtoFunctionType(nothrow @property @safe ubyte[]()) * * * * * func = declare { i64, i8* } @_D7msgpack9RefBuffer4dataMFNbNdNfZAh(%msgpack.RefBuffer*) * * * Doing function body for: data * * * DtoCreateNestedContext for data * * * * DtoCreateNestedContextType for msgpack.RefBuffer.data * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(1099) * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(1100) * * * * * * DeclarationExp::toElem: ubyte[] result = null; | T=void * * * * * * * DtoDeclarationExp: result * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = ubyte[]) * * * * * * * * * llvm value for decl: %result = alloca { i64, i8* }, align 8 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: result = null | (ubyte[])(ubyte[] = ubyte[]) * * * * * * * * * * VarExp::toElem: result @ ubyte[] * * * * * * * * * * * DtoSymbolAddress ('result' of type 'ubyte[]') * * * * * * * * * * * * a normal variable * * * * * * * * * * NullExp::toElem(type=ubyte[]): null * * * * * * * * * * * NullExp::toConstElem(type=ubyte[]): null * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * DtoSetArrayToNull * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(1102) * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(1102) * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(1102) * * * * * * * * DeclarationExp::toElem: Chunk[] __aggr3496 = this.chunks_[]; | T=void * * * * * * * * * DtoDeclarationExp: __aggr3496 * * * * * * * * * * VarDeclaration * * * * * * * * * * DtoVarDeclaration(vdtype = Chunk[]) * * * * * * * * * * * llvm value for decl: %__aggr3496 = alloca { i64, %msgpack.RefBuffer.Chunk* }, align 8 * * * * * * * * * * * expression initializer * * * * * * * * * * * AssignExp::toElem: __aggr3496 = this.chunks_[] | (Chunk[])(Chunk[] = Chunk[]) * * * * * * * * * * * * VarExp::toElem: __aggr3496 @ Chunk[] * * * * * * * * * * * * * DtoSymbolAddress ('__aggr3496' of type 'Chunk[]') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * SliceExp::toElem: this.chunks_[] @ Chunk[] * * * * * * * * * * * * * DotVarExp::toElem: this.chunks_ @ Chunk[] * * * * * * * * * * * * * * ThisExp::toElem: this @ RefBuffer * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * Indexing aggregate field msgpack.RefBuffer.chunks_: * * * * * * * * * * * * * * * Value: %1 = getelementptr %msgpack.RefBuffer, %msgpack.RefBuffer* %.this_arg, i32 0, i32 2 * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * SetArray * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(1102) * * * * * * * * DeclarationExp::toElem: ulong __key3497 = 0LU; | T=void * * * * * * * * * DtoDeclarationExp: __key3497 * * * * * * * * * * VarDeclaration * * * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * * * llvm value for decl: %__key3497 = alloca i64, align 8 * * * * * * * * * * * expression initializer * * * * * * * * * * * AssignExp::toElem: __key3497 = 0LU | (ulong)(ulong = ulong) * * * * * * * * * * * * VarExp::toElem: __key3497 @ ulong * * * * * * * * * * * * * DtoSymbolAddress ('__key3497' of type 'ulong') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * lhs: %__key3497 = alloca i64, align 8 * * * * * * * * * * * * * rhs: i64 0 * * * * * * * ForStatement::toIR(): msgpack-d/src/msgpack.d(1102) * * * * * * * * CmpExp::toElem: __key3497 < __aggr3496.length @ bool * * * * * * * * * VarExp::toElem: __key3497 @ ulong * * * * * * * * * * DtoSymbolAddress ('__key3497' of type 'ulong') * * * * * * * * * * * a normal variable * * * * * * * * * ArrayLengthExp::toElem: __aggr3496.length @ ulong * * * * * * * * * * VarExp::toElem: __aggr3496 @ Chunk[] * * * * * * * * * * * DtoSymbolAddress ('__aggr3496' of type 'Chunk[]') * * * * * * * * * * * * a normal variable * * * * * * * * * * DtoArrayLen * * * * * * * * * type 1: %7 = load i64, i64* %__key3497 * * * * * * * * * type 2: %.len1 = load i64, i64* %6 * * * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(1102) * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(1102) * * * * * * * * * * DeclarationExp::toElem: ref Chunk chunk = __aggr3496[__key3497]; | T=void * * * * * * * * * * * DtoDeclarationExp: chunk * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * DtoVarDeclaration(vdtype = Chunk) * * * * * * * * * * * * * Building type: Chunk* * * * * * * * * * * * * * llvm value for decl: %chunk = alloca %msgpack.RefBuffer.Chunk*, align 8 * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * AssignExp::toElem: chunk = __aggr3496[__key3497] | (Chunk)(Chunk = Chunk) * * * * * * * * * * * * * * performing ref variable initialization * * * * * * * * * * * * * * VarExp::toElem: chunk @ Chunk * * * * * * * * * * * * * * * DtoSymbolAddress ('chunk' of type 'Chunk') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * IndexExp::toElem: __aggr3496[__key3497] @ Chunk * * * * * * * * * * * * * * * VarExp::toElem: __aggr3496 @ Chunk[] * * * * * * * * * * * * * * * * DtoSymbolAddress ('__aggr3496' of type 'Chunk[]') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * VarExp::toElem: __key3497 @ ulong * * * * * * * * * * * * * * * * DtoSymbolAddress ('__key3497' of type 'ulong') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(1103) * * * * * * * * * * CatAssignExp::toElem: result ~= chunk.data[0..chunk.used] @ ubyte[] * * * * * * * * * * * VarExp::toElem: result @ ubyte[] * * * * * * * * * * * * DtoSymbolAddress ('result' of type 'ubyte[]') * * * * * * * * * * * * * a normal variable * * * * * * * * * * * DtoCatAssignArray * * * * * * * * * * * * SliceExp::toElem: chunk.data[0..chunk.used] @ ubyte[] * * * * * * * * * * * * * DotVarExp::toElem: chunk.data @ ubyte[] * * * * * * * * * * * * * * VarExp::toElem: chunk @ Chunk * * * * * * * * * * * * * * * DtoSymbolAddress ('chunk' of type 'Chunk') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * Indexing aggregate field msgpack.RefBuffer.Chunk.data: * * * * * * * * * * * * * * * Value: %15 = getelementptr %msgpack.RefBuffer.Chunk, %msgpack.RefBuffer.Chunk* %14, i32 0, i32 0 * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * DotVarExp::toElem: chunk.used @ ulong * * * * * * * * * * * * * * VarExp::toElem: chunk @ Chunk * * * * * * * * * * * * * * * DtoSymbolAddress ('chunk' of type 'Chunk') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * Indexing aggregate field msgpack.RefBuffer.Chunk.used: * * * * * * * * * * * * * * * Value: %18 = getelementptr %msgpack.RefBuffer.Chunk, %msgpack.RefBuffer.Chunk* %17, i32 0, i32 1 * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * DtoTypeInfoOf(type = 'ubyte[]', base='1') * * * * * * * * * * * * * Type::getTypeInfo(): ubyte[] * * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(ubyte[])) * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * SetArray * * * * * * * * AddAssignExp::toElem: __key3497 += 1LU @ ulong * * * * * * * * * Caching l-value of __key3497 += 1LU => __key3497 * * * * * * * * * * VarExp::toElem: __key3497 @ ulong * * * * * * * * * * * DtoSymbolAddress ('__key3497' of type 'ulong') * * * * * * * * * * * * a normal variable * * * * * * * * * AddExp::toElem: __key3497 + 1LU @ ulong * * * * * * * * * * VarExp::toElem: __key3497 @ ulong * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * value = i64 1 * * * * * * * * * DtoAssign() * * * * * * * * * * lhs: %__key3497 = alloca i64, align 8 * * * * * * * * * * rhs: %12 = add i64 %11, 1 * * * * * ReturnStatement::toIR(): msgpack-d/src/msgpack.d(1105) * * * * * * VarExp::toElem: result @ ubyte[] * * * * * * * DtoSymbolAddress ('result' of type 'ubyte[]') * * * * * * * * a normal variable * * * * * * return value is '0x1314f2b8' * * DtoDefineFunction(msgpack.RefBuffer.vector): msgpack-d/src/msgpack.d(1116) * * * isMember = this is: RefBuffer * * * DtoFunctionType(nothrow @property ref @safe iovec[]()) * * * * Building type: iovec[]* * * * * x86-64 ABI: Transforming argument types * * * * Final function type: { i64, %core.sys.posix.sys.uio.iovec* }* (%msgpack.RefBuffer*) * * * DtoResolveFunction(msgpack.RefBuffer.vector): msgpack-d/src/msgpack.d(1116) * * * * DtoDeclareFunction(msgpack.RefBuffer.vector): msgpack-d/src/msgpack.d(1116) * * * * * isMember = this is: RefBuffer * * * * * DtoFunctionType(nothrow @property ref @safe iovec[]()) * * * * * func = declare { i64, %core.sys.posix.sys.uio.iovec* }* @_D7msgpack9RefBuffer6vectorMFNbNcNdNfZAS4core3sys5posix3sys3uio5iovec(%msgpack.RefBuffer*) * * * Doing function body for: vector * * * DtoCreateNestedContext for vector * * * * DtoCreateNestedContextType for msgpack.RefBuffer.vector * * * CompoundStatement::toIR(): * * * * ReturnStatement::toIR(): msgpack-d/src/msgpack.d(1118) * * * * * AddrExp::toElem: &this.vecList_ @ iovec[]* * * * * * * DotVarExp::toElem: this.vecList_ @ iovec[] * * * * * * * ThisExp::toElem: this @ RefBuffer * * * * * * * * normal this exp * * * * * * * Indexing aggregate field msgpack.RefBuffer.vecList_: * * * * * * * * Value: %1 = getelementptr %msgpack.RefBuffer, %msgpack.RefBuffer* %.this_arg, i32 0, i32 4 * * * * * * is nothing special * * * * * * lval: %1 = getelementptr %msgpack.RefBuffer, %msgpack.RefBuffer* %.this_arg, i32 0, i32 4 * * * * * return value is '0x131504f8' * * DtoDefineFunction(msgpack.RefBuffer.put): msgpack-d/src/msgpack.d(1131) * * * isMember = this is: RefBuffer * * * DtoFunctionType(@safe void(const(ubyte) value)) * * * * x86-64 ABI: Transforming argument types * * * * Final function type: void (%msgpack.RefBuffer*, i8) * * * DtoResolveFunction(msgpack.RefBuffer.put): msgpack-d/src/msgpack.d(1131) * * * * DtoDeclareFunction(msgpack.RefBuffer.put): msgpack-d/src/msgpack.d(1131) * * * * * isMember = this is: RefBuffer * * * * * DtoFunctionType(@safe void(const(ubyte) value)) * * * * * func = declare void @_D7msgpack9RefBuffer3putMFNfxhZv(%msgpack.RefBuffer*, i8) * * * Doing function body for: put * * * DtoCreateNestedContext for put * * * * DtoCreateNestedContextType for msgpack.RefBuffer.put * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(1132) * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(1133) * * * * * * DeclarationExp::toElem: ubyte[1] values = [value]; | T=void * * * * * * * DtoDeclarationExp: values * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = ubyte[1]) * * * * * * * * * Building type: ubyte[1] * * * * * * * * * llvm value for decl: %values = alloca [1 x i8], align 1 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: values = [value] | (ubyte[1])(ubyte[1] = ubyte[1]) * * * * * * * * * * VarExp::toElem: values @ ubyte[1] * * * * * * * * * * * DtoSymbolAddress ('values' of type 'ubyte[1]') * * * * * * * * * * * * a normal variable * * * * * * * * * * ArrayLiteralExp::toElem: [value] @ ubyte[1] * * * * * * * * * * * static array literal with length 1 of D type: 'ubyte[1]' has llvm type: '[1 x i8]' * * * * * * * * * * * llvm storage type: '[1 x i8]' * * * * * * * * * * * VarExp::toElem: value @ ubyte * * * * * * * * * * * * DtoSymbolAddress ('value' of type 'const(ubyte)') * * * * * * * * * * * * * function param * * * * * * * * * * * * * type: const(ubyte) * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * lhs: %1 = getelementptr [1 x i8], [1 x i8]* %arrayliteral, i32 0, i32 0 * * * * * * * * * * * * rhs: %2 = load i8, i8* %value * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * DtoArrayLen * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(1134) * * * * * * CallExp::toElem: this.putCopy(cast(const(ubyte[]))values) @ void * * * * * * * DotVarExp::toElem: this.putCopy @ @trusted void(const(ubyte[]) value) * * * * * * * * ThisExp::toElem: this @ RefBuffer * * * * * * * * * normal this exp * * * * * * * * isMember = this is: RefBuffer * * * * * * * * DtoFunctionType(@trusted void(const(ubyte[]) value)) * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * Final function type: void (%msgpack.RefBuffer*, { i64, i8* }) * * * * * * * * DtoResolveFunction(msgpack.RefBuffer.putCopy): msgpack-d/src/msgpack.d(1171) * * * * * * * * * DtoDeclareFunction(msgpack.RefBuffer.putCopy): msgpack-d/src/msgpack.d(1171) * * * * * * * * * * isMember = this is: RefBuffer * * * * * * * * * * DtoFunctionType(@trusted void(const(ubyte[]) value)) * * * * * * * * * * func = declare void @_D7msgpack9RefBuffer7putCopyMFNexAhZv(%msgpack.RefBuffer*, { i64, i8* }) * * * * * * * DtoCallFunction() * * * * * * * * Building type: @trusted void(const(ubyte[]) value) * * * * * * * * * DtoFunctionType(@trusted void(const(ubyte[]) value)) * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: void ({ i64, i8* }) * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (1) * * * * * * * * * %msgpack.RefBuffer* %.this_arg * * * * * * * * Function type: @trusted void(const(ubyte[]) value) * * * * * * * * DtoArgument * * * * * * * * * CastExp::toElem: cast(const(ubyte[]))values @ const(ubyte[]) * * * * * * * * * * VarExp::toElem: values @ ubyte[1] * * * * * * * * * * * DtoSymbolAddress ('values' of type 'ubyte[1]') * * * * * * * * * * * * a normal variable * * * * * * * * * * Casting from 'ubyte[1]' to 'const(ubyte[])' * * * * * * * * * * * DtoCastArray * * * * * * * * * * * * from array or sarray * * * * * * * * * * * * to array * * * * * * * * * * * * uvalTy = [1 x i8]* * * * * * * * * * * * * isslice * * DtoDefineFunction(msgpack.RefBuffer.put): msgpack-d/src/msgpack.d(1140) * * * isMember = this is: RefBuffer * * * DtoFunctionType(@safe void(const(ubyte[]) value)) * * * * x86-64 ABI: Transforming argument types * * * * Final function type: void (%msgpack.RefBuffer*, { i64, i8* }) * * * DtoResolveFunction(msgpack.RefBuffer.put): msgpack-d/src/msgpack.d(1140) * * * * DtoDeclareFunction(msgpack.RefBuffer.put): msgpack-d/src/msgpack.d(1140) * * * * * isMember = this is: RefBuffer * * * * * DtoFunctionType(@safe void(const(ubyte[]) value)) * * * * * func = declare void @_D7msgpack9RefBuffer3putMFNfxAhZv(%msgpack.RefBuffer*, { i64, i8* }) * * * Doing function body for: put * * * DtoCreateNestedContext for put * * * * DtoCreateNestedContextType for msgpack.RefBuffer.put * * * CompoundStatement::toIR(): * * * * IfStatement::toIR(): msgpack-d/src/msgpack.d(1142) * * * * * CmpExp::toElem: value.length < this.Threshold @ bool * * * * * * ArrayLengthExp::toElem: value.length @ ulong * * * * * * * VarExp::toElem: value @ const(ubyte[]) * * * * * * * * DtoSymbolAddress ('value' of type 'const(ubyte[])') * * * * * * * * * function param * * * * * * * * * type: const(ubyte[]) * * * * * * * DtoArrayLen * * * * * * DotVarExp::toElem: this.Threshold @ ulong * * * * * * * ThisExp::toElem: this @ RefBuffer * * * * * * * * normal this exp * * * * * * * Indexing aggregate field msgpack.RefBuffer.Threshold: * * * * * * * * Value: %2 = getelementptr %msgpack.RefBuffer, %msgpack.RefBuffer* %.this_arg, i32 0, i32 0 * * * * * * type 1: %.len = load i64, i64* %1 * * * * * * type 2: %3 = load i64, i64* %2 * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(1143) * * * * * * CallExp::toElem: this.putCopy(value) @ void * * * * * * * DotVarExp::toElem: this.putCopy @ @trusted void(const(ubyte[]) value) * * * * * * * * ThisExp::toElem: this @ RefBuffer * * * * * * * * * normal this exp * * * * * * * DtoCallFunction() * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (1) * * * * * * * * * %msgpack.RefBuffer* %.this_arg * * * * * * * * Function type: @trusted void(const(ubyte[]) value) * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: value @ const(ubyte[]) * * * * * * * * * * DtoSymbolAddress ('value' of type 'const(ubyte[])') * * * * * * * * * * * function param * * * * * * * * * * * type: const(ubyte[]) * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(1145) * * * * * * CallExp::toElem: this.putRef(value) @ void * * * * * * * DotVarExp::toElem: this.putRef @ @trusted void(const(ubyte[]) value) * * * * * * * * ThisExp::toElem: this @ RefBuffer * * * * * * * * * normal this exp * * * * * * * * isMember = this is: RefBuffer * * * * * * * * DtoFunctionType(@trusted void(const(ubyte[]) value)) * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * Final function type: void (%msgpack.RefBuffer*, { i64, i8* }) * * * * * * * * DtoResolveFunction(msgpack.RefBuffer.putRef): msgpack-d/src/msgpack.d(1157) * * * * * * * * * DtoDeclareFunction(msgpack.RefBuffer.putRef): msgpack-d/src/msgpack.d(1157) * * * * * * * * * * isMember = this is: RefBuffer * * * * * * * * * * DtoFunctionType(@trusted void(const(ubyte[]) value)) * * * * * * * * * * func = declare void @_D7msgpack9RefBuffer6putRefMFNexAhZv(%msgpack.RefBuffer*, { i64, i8* }) * * * * * * * DtoCallFunction() * * * * * * * * Building type: @trusted void(const(ubyte[]) value) * * * * * * * * * DtoFunctionType(@trusted void(const(ubyte[]) value)) * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: void ({ i64, i8* }) * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (1) * * * * * * * * * %msgpack.RefBuffer* %.this_arg * * * * * * * * Function type: @trusted void(const(ubyte[]) value) * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: value @ const(ubyte[]) * * * * * * * * * * DtoSymbolAddress ('value' of type 'const(ubyte[])') * * * * * * * * * * * function param * * * * * * * * * * * type: const(ubyte[]) * * DtoDefineFunction(msgpack.RefBuffer.putRef): msgpack-d/src/msgpack.d(1157) * * * Doing function body for: putRef * * * DtoCreateNestedContext for putRef * * * * DtoCreateNestedContextType for msgpack.RefBuffer.putRef * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(1158) * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(1159) * * * * * * CommaExp::toElem: iovec[]* __arraylength3498 = &this.vecList_; , (*__arraylength3498).length = (*__arraylength3498).length + 1LU @ ulong * * * * * * * DeclarationExp::toElem: iovec[]* __arraylength3498 = &this.vecList_; | T=void * * * * * * * * DtoDeclarationExp: __arraylength3498 * * * * * * * * * VarDeclaration * * * * * * * * * DtoVarDeclaration(vdtype = iovec[]*) * * * * * * * * * * llvm value for decl: %__arraylength3498 = alloca { i64, %core.sys.posix.sys.uio.iovec* }*, align 8 * * * * * * * * * * expression initializer * * * * * * * * * * AssignExp::toElem: __arraylength3498 = &this.vecList_ | (iovec[]*)(iovec[]* = iovec[]*) * * * * * * * * * * * VarExp::toElem: __arraylength3498 @ iovec[]* * * * * * * * * * * * * DtoSymbolAddress ('__arraylength3498' of type 'iovec[]*') * * * * * * * * * * * * * a normal variable * * * * * * * * * * * AddrExp::toElem: &this.vecList_ @ iovec[]* * * * * * * * * * * * * DotVarExp::toElem: this.vecList_ @ iovec[] * * * * * * * * * * * * * ThisExp::toElem: this @ RefBuffer * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * Indexing aggregate field msgpack.RefBuffer.vecList_: * * * * * * * * * * * * * * Value: %1 = getelementptr %msgpack.RefBuffer, %msgpack.RefBuffer* %.this_arg, i32 0, i32 4 * * * * * * * * * * * * is nothing special * * * * * * * * * * * * lval: %1 = getelementptr %msgpack.RefBuffer, %msgpack.RefBuffer* %.this_arg, i32 0, i32 4 * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * lhs: %__arraylength3498 = alloca { i64, %core.sys.posix.sys.uio.iovec* }*, align 8 * * * * * * * * * * * * rhs: %1 = getelementptr %msgpack.RefBuffer, %msgpack.RefBuffer* %.this_arg, i32 0, i32 4 * * * * * * * AssignExp::toElem: (*__arraylength3498).length = (*__arraylength3498).length + 1LU | (ulong)(ulong = ulong) * * * * * * * * performing array.length assignment * * * * * * * * PtrExp::toElem: *__arraylength3498 @ iovec[] * * * * * * * * * VarExp::toElem: __arraylength3498 @ iovec[]* * * * * * * * * * * DtoSymbolAddress ('__arraylength3498' of type 'iovec[]*') * * * * * * * * * * * a normal variable * * * * * * * * AddExp::toElem: (*__arraylength3498).length + 1LU @ ulong * * * * * * * * * ArrayLengthExp::toElem: (*__arraylength3498).length @ ulong * * * * * * * * * * PtrExp::toElem: *__arraylength3498 @ iovec[] * * * * * * * * * * * VarExp::toElem: __arraylength3498 @ iovec[]* * * * * * * * * * * * * DtoSymbolAddress ('__arraylength3498' of type 'iovec[]*') * * * * * * * * * * * * * a normal variable * * * * * * * * * * DtoArrayLen * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * value = i64 1 * * * * * * * * DtoResizeDynArray : iovec[] * * * * * * * * * DtoTypeInfoOf(type = 'iovec[]', base='1') * * * * * * * * * * Type::getTypeInfo(): iovec[] * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(iovec[])) * * * * * * * * * * * * type = 'iovec[]' * * * * * * * * * * * * typeinfo mangle: _D40TypeInfo_AS4core3sys5posix3sys3uio5iovec6__initZ * * * * * * * * * * * * TypeInfoArrayDeclaration::llvmDefine() typeid(iovec[]) * * * * * * * * * * * * * DtoTypeInfoOf(type = 'iovec', base='1') * * * * * * * * * * * * * * Type::getTypeInfo(): iovec * * * * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(iovec)) * * * * * * * * * * * * * * * * type = 'iovec' * * * * * * * * * * * * * * * * typeinfo mangle: _D39TypeInfo_S4core3sys5posix3sys3uio5iovec6__initZ * * * * * * * * * * * * * * * * TypeInfoStructDeclaration::llvmDefine() typeid(iovec) * * * * * * * * * * * * * * * * * Resolving struct type: iovec (/usr/include/dlang/ldc/core/sys/posix/sys/uio.d(42)) * * * * * * * * * * * * * * * * * DtoTypeInfoOf(type = 'void*', base='1') * * * * * * * * * * * * * * * * * * Type::getTypeInfo(): void* * * * * * * * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(void*)) * * * * * * * * * * * * * * * * * DtoTypeInfoOf(type = 'ulong', base='1') * * * * * * * * * * * * * * * * * * Type::getTypeInfo(): ulong * * * * * * * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(ulong)) * * * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(iovec)) * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(iovec[])) * * * * * * * * DtoAssign() * * * * * * * * * DtoArrayAssign * * * * * * * * * * DtoArrayPtr * * * * * * * * * * DtoArrayLen * * * * * * * * * * SetArray * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(1160) * * * * * * AssignExp::toElem: this.vecList_[__dollar - 1LU] = iovec(cast(void*)cast(const(ubyte)*)value, value.length) | (iovec)(iovec = iovec) * * * * * * * IndexExp::toElem: this.vecList_[__dollar - 1LU] @ iovec * * * * * * * * DotVarExp::toElem: this.vecList_ @ iovec[] * * * * * * * * * ThisExp::toElem: this @ RefBuffer * * * * * * * * * * normal this exp * * * * * * * * * Indexing aggregate field msgpack.RefBuffer.vecList_: * * * * * * * * * * Value: %9 = getelementptr %msgpack.RefBuffer, %msgpack.RefBuffer* %.this_arg, i32 0, i32 4 * * * * * * * * MinExp::toElem: __dollar - 1LU @ ulong * * * * * * * * * VarExp::toElem: __dollar @ ulong * * * * * * * * * * DtoSymbolAddress ('__dollar' of type 'ulong') * * * * * * * * * * * Id::dollar * * * * * * * * * * * DtoArrayLen * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * value = i64 1 * * * * * * * * DtoArrayPtr * * * * * * * StructLiteralExp::toElem: iovec(cast(void*)cast(const(ubyte)*)value, value.length) @ iovec * * * * * * * * initializing field: void* iov_base (+0) * * * * * * * * * expr 0 = cast(void*)cast(const(ubyte)*)value * * * * * * * * * CastExp::toElem: cast(void*)cast(const(ubyte)*)value @ void* * * * * * * * * * * CastExp::toElem: cast(const(ubyte)*)value @ const(ubyte)* * * * * * * * * * * * VarExp::toElem: value @ const(ubyte[]) * * * * * * * * * * * * DtoSymbolAddress ('value' of type 'const(ubyte[])') * * * * * * * * * * * * * function param * * * * * * * * * * * * * type: const(ubyte[]) * * * * * * * * * * * Casting from 'const(ubyte[])' to 'const(ubyte)*' * * * * * * * * * * * * DtoCastArray * * * * * * * * * * * * * from array or sarray * * * * * * * * * * * * * to pointer * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * Casting from 'const(ubyte)*' to 'void*' * * * * * * * * * * * src: %.ptr5 = load i8*, i8** %14 * * * * * * * * * * * to type: i8* * * * * * * * * * Indexing aggregate field core.sys.posix.sys.uio.iovec.iov_base: * * * * * * * * * * Value: %15 = getelementptr %core.sys.posix.sys.uio.iovec, %core.sys.posix.sys.uio.iovec* %.structliteral, i32 0, i32 0 * * * * * * * * * DtoAssign() * * * * * * * * * * lhs: %15 = getelementptr %core.sys.posix.sys.uio.iovec, %core.sys.posix.sys.uio.iovec* %.structliteral, i32 0, i32 0 * * * * * * * * * * rhs: %.ptr5 = load i8*, i8** %14 * * * * * * * * initializing field: ulong iov_len (+8) * * * * * * * * * expr 1 = value.length * * * * * * * * * ArrayLengthExp::toElem: value.length @ ulong * * * * * * * * * * VarExp::toElem: value @ const(ubyte[]) * * * * * * * * * * * DtoSymbolAddress ('value' of type 'const(ubyte[])') * * * * * * * * * * * * function param * * * * * * * * * * * * type: const(ubyte[]) * * * * * * * * * * DtoArrayLen * * * * * * * * * Indexing aggregate field core.sys.posix.sys.uio.iovec.iov_len: * * * * * * * * * * Value: %17 = getelementptr %core.sys.posix.sys.uio.iovec, %core.sys.posix.sys.uio.iovec* %.structliteral, i32 0, i32 1 * * * * * * * * * DtoAssign() * * * * * * * * * * lhs: %17 = getelementptr %core.sys.posix.sys.uio.iovec, %core.sys.posix.sys.uio.iovec* %.structliteral, i32 0, i32 1 * * * * * * * * * * rhs: %.len6 = load i64, i64* %16 * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * DtoAssign() * * DtoDefineFunction(msgpack.RefBuffer.putCopy): msgpack-d/src/msgpack.d(1171) * * * Doing function body for: putCopy * * * DtoCreateNestedContext for putCopy * * * * DtoCreateNestedContextType for msgpack.RefBuffer.putCopy * * * * * has nested frame * * * * * Function putCopy has depth 0 * * * * * Nested var 'this' of type %msgpack.RefBuffer* * * * * * frameType = %nest.putCopy = type { %msgpack.RefBuffer* } * * * * nested param: this * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(1172) * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(1176) * * * * * * DeclarationExp::toElem: void expand(const(ulong) size) { const const(ulong) newSize = size < this.ChunkSize ? this.ChunkSize : size; this.index_++; this.chunks_.length = 1LU; this.chunks_[this.index_].data.length = newSize; } | T=void * * * * * * * DtoDeclarationExp: expand * * * * * * * * FuncDeclaration * * * * * * * * DtoDefineFunction(msgpack.RefBuffer.putCopy.expand): msgpack-d/src/msgpack.d(1176) * * * * * * * * * DtoFunctionType(void(const(ulong) size)) * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: void (i8*, i64) * * * * * * * * * DtoResolveFunction(msgpack.RefBuffer.putCopy.expand): msgpack-d/src/msgpack.d(1176) * * * * * * * * * * DtoDeclareFunction(msgpack.RefBuffer.putCopy.expand): msgpack-d/src/msgpack.d(1176) * * * * * * * * * * * DtoFunctionType(void(const(ulong) size)) * * * * * * * * * * * func = declare void @_D7msgpack9RefBuffer7putCopyMFNexAhZ6expandMFxmZv(i8*, i64) * * * * * * * * * Doing function body for: expand * * * * * * * * * DtoCreateNestedContext for expand * * * * * * * * * * DtoCreateNestedContextType for msgpack.RefBuffer.putCopy.expand * * * * * * * * * * * DtoCreateNestedContextType for msgpack.RefBuffer.putCopy * * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(1177) * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(1178) * * * * * * * * * * * * DeclarationExp::toElem: const const(ulong) newSize = size < this.ChunkSize ? this.ChunkSize : size; | T=void * * * * * * * * * * * * * DtoDeclarationExp: newSize * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = const(ulong)) * * * * * * * * * * * * * * * llvm value for decl: %newSize = alloca i64, align 8 * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * AssignExp::toElem: newSize = size < this.ChunkSize ? this.ChunkSize : size | (const(ulong))(const(ulong) = const(ulong)) * * * * * * * * * * * * * * * * VarExp::toElem: newSize @ const(ulong) * * * * * * * * * * * * * * * * * DtoSymbolAddress ('newSize' of type 'const(ulong)') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * CondExp::toElem: size < this.ChunkSize ? this.ChunkSize : size @ const(ulong) * * * * * * * * * * * * * * * * * CmpExp::toElem: size < this.ChunkSize @ bool * * * * * * * * * * * * * * * * * * VarExp::toElem: size @ ulong * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('size' of type 'const(ulong)') * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * type: const(ulong) * * * * * * * * * * * * * * * * * * DotVarExp::toElem: this.ChunkSize @ ulong * * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ RefBuffer * * * * * * * * * * * * * * * * * * * * nested this exp * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for this @ msgpack-d/src/msgpack.d(1178) * * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.RefBuffer.putCopy * * * * * * * * * * * * * * * * * * * * * Context: %2 = bitcast i8* %1 to %nest.putCopy* * * * * * * * * * * * * * * * * * * * * * of type: %nest.putCopy = type { %msgpack.RefBuffer* } * * * * * * * * * * * * * * * * * * * * * Variable: this * * * * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * * * * Function: expand * * * * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * * * * Addr: %this = getelementptr %nest.putCopy, %nest.putCopy* %2, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * * * of type: %msgpack.RefBuffer** * * * * * * * * * * * * * * * * * * * * * Was byref, now: %3 = load %msgpack.RefBuffer*, %msgpack.RefBuffer** %this, align 8 * * * * * * * * * * * * * * * * * * * * * of type: %msgpack.RefBuffer* * * * * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.RefBuffer.ChunkSize: * * * * * * * * * * * * * * * * * * * * Value: %4 = getelementptr %msgpack.RefBuffer, %msgpack.RefBuffer* %3, i32 0, i32 1 * * * * * * * * * * * * * * * * * * type 1: %5 = load i64, i64* %size * * * * * * * * * * * * * * * * * * type 2: %6 = load i64, i64* %4 * * * * * * * * * * * * * * * * * DotVarExp::toElem: this.ChunkSize @ ulong * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ RefBuffer * * * * * * * * * * * * * * * * * * * nested this exp * * * * * * * * * * * * * * * * * * * DtoNestedVariable for this @ msgpack-d/src/msgpack.d(1178) * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.RefBuffer.putCopy * * * * * * * * * * * * * * * * * * * * Context: %9 = bitcast i8* %8 to %nest.putCopy* * * * * * * * * * * * * * * * * * * * * of type: %nest.putCopy = type { %msgpack.RefBuffer* } * * * * * * * * * * * * * * * * * * * * Variable: this * * * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * * * Function: expand * * * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * * * Addr: %this1 = getelementptr %nest.putCopy, %nest.putCopy* %9, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * * of type: %msgpack.RefBuffer** * * * * * * * * * * * * * * * * * * * * Was byref, now: %10 = load %msgpack.RefBuffer*, %msgpack.RefBuffer** %this1, align 8 * * * * * * * * * * * * * * * * * * * * of type: %msgpack.RefBuffer* * * * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.RefBuffer.ChunkSize: * * * * * * * * * * * * * * * * * * * Value: %11 = getelementptr %msgpack.RefBuffer, %msgpack.RefBuffer* %10, i32 0, i32 1 * * * * * * * * * * * * * * * * * VarExp::toElem: size @ ulong * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('size' of type 'const(ulong)') * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * type: const(ulong) * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * lhs: %newSize = alloca i64, align 8 * * * * * * * * * * * * * * * * * rhs: %13 = load i64, i64* %12 * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(1180) * * * * * * * * * * * * PostExp::toElem: this.index_++ @ ulong * * * * * * * * * * * * * DotVarExp::toElem: this.index_ @ ulong * * * * * * * * * * * * * * ThisExp::toElem: this @ RefBuffer * * * * * * * * * * * * * * * nested this exp * * * * * * * * * * * * * * * DtoNestedVariable for this @ msgpack-d/src/msgpack.d(1180) * * * * * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.RefBuffer.putCopy * * * * * * * * * * * * * * * * Context: %15 = bitcast i8* %14 to %nest.putCopy* * * * * * * * * * * * * * * * * of type: %nest.putCopy = type { %msgpack.RefBuffer* } * * * * * * * * * * * * * * * * Variable: this * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * Function: expand * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * Addr: %this2 = getelementptr %nest.putCopy, %nest.putCopy* %15, i32 0, i32 0 * * * * * * * * * * * * * * * * of type: %msgpack.RefBuffer** * * * * * * * * * * * * * * * * Was byref, now: %16 = load %msgpack.RefBuffer*, %msgpack.RefBuffer** %this2, align 8 * * * * * * * * * * * * * * * * of type: %msgpack.RefBuffer* * * * * * * * * * * * * * * Indexing aggregate field msgpack.RefBuffer.index_: * * * * * * * * * * * * * * * Value: %17 = getelementptr %msgpack.RefBuffer, %msgpack.RefBuffer* %16, i32 0, i32 3 * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(1181) * * * * * * * * * * * * AssignExp::toElem: this.chunks_.length = 1LU | (ulong)(ulong = ulong) * * * * * * * * * * * * * performing array.length assignment * * * * * * * * * * * * * DotVarExp::toElem: this.chunks_ @ Chunk[] * * * * * * * * * * * * * * ThisExp::toElem: this @ RefBuffer * * * * * * * * * * * * * * * nested this exp * * * * * * * * * * * * * * * DtoNestedVariable for this @ msgpack-d/src/msgpack.d(1181) * * * * * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.RefBuffer.putCopy * * * * * * * * * * * * * * * * Context: %21 = bitcast i8* %20 to %nest.putCopy* * * * * * * * * * * * * * * * * of type: %nest.putCopy = type { %msgpack.RefBuffer* } * * * * * * * * * * * * * * * * Variable: this * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * Function: expand * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * Addr: %this3 = getelementptr %nest.putCopy, %nest.putCopy* %21, i32 0, i32 0 * * * * * * * * * * * * * * * * of type: %msgpack.RefBuffer** * * * * * * * * * * * * * * * * Was byref, now: %22 = load %msgpack.RefBuffer*, %msgpack.RefBuffer** %this3, align 8 * * * * * * * * * * * * * * * * of type: %msgpack.RefBuffer* * * * * * * * * * * * * * * Indexing aggregate field msgpack.RefBuffer.chunks_: * * * * * * * * * * * * * * * Value: %23 = getelementptr %msgpack.RefBuffer, %msgpack.RefBuffer* %22, i32 0, i32 2 * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * DtoResizeDynArray : Chunk[] * * * * * * * * * * * * * * DtoTypeInfoOf(type = 'Chunk[]', base='1') * * * * * * * * * * * * * * * Type::getTypeInfo(): Chunk[] * * * * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(Chunk[])) * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * SetArray * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(1182) * * * * * * * * * * * * AssignExp::toElem: this.chunks_[this.index_].data.length = newSize | (ulong)(ulong = ulong) * * * * * * * * * * * * * performing array.length assignment * * * * * * * * * * * * * DotVarExp::toElem: this.chunks_[this.index_].data @ ubyte[] * * * * * * * * * * * * * * IndexExp::toElem: this.chunks_[this.index_] @ Chunk * * * * * * * * * * * * * * * DotVarExp::toElem: this.chunks_ @ Chunk[] * * * * * * * * * * * * * * * * ThisExp::toElem: this @ RefBuffer * * * * * * * * * * * * * * * * * nested this exp * * * * * * * * * * * * * * * * * DtoNestedVariable for this @ msgpack-d/src/msgpack.d(1182) * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.RefBuffer.putCopy * * * * * * * * * * * * * * * * * * Context: %28 = bitcast i8* %27 to %nest.putCopy* * * * * * * * * * * * * * * * * * * of type: %nest.putCopy = type { %msgpack.RefBuffer* } * * * * * * * * * * * * * * * * * * Variable: this * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * Function: expand * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * Addr: %this5 = getelementptr %nest.putCopy, %nest.putCopy* %28, i32 0, i32 0 * * * * * * * * * * * * * * * * * * of type: %msgpack.RefBuffer** * * * * * * * * * * * * * * * * * * Was byref, now: %29 = load %msgpack.RefBuffer*, %msgpack.RefBuffer** %this5, align 8 * * * * * * * * * * * * * * * * * * of type: %msgpack.RefBuffer* * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.RefBuffer.chunks_: * * * * * * * * * * * * * * * * * Value: %30 = getelementptr %msgpack.RefBuffer, %msgpack.RefBuffer* %29, i32 0, i32 2 * * * * * * * * * * * * * * * DotVarExp::toElem: this.index_ @ ulong * * * * * * * * * * * * * * * * ThisExp::toElem: this @ RefBuffer * * * * * * * * * * * * * * * * * nested this exp * * * * * * * * * * * * * * * * * DtoNestedVariable for this @ msgpack-d/src/msgpack.d(1182) * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.RefBuffer.putCopy * * * * * * * * * * * * * * * * * * Context: %32 = bitcast i8* %31 to %nest.putCopy* * * * * * * * * * * * * * * * * * * of type: %nest.putCopy = type { %msgpack.RefBuffer* } * * * * * * * * * * * * * * * * * * Variable: this * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * Function: expand * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * Addr: %this6 = getelementptr %nest.putCopy, %nest.putCopy* %32, i32 0, i32 0 * * * * * * * * * * * * * * * * * * of type: %msgpack.RefBuffer** * * * * * * * * * * * * * * * * * * Was byref, now: %33 = load %msgpack.RefBuffer*, %msgpack.RefBuffer** %this6, align 8 * * * * * * * * * * * * * * * * * * of type: %msgpack.RefBuffer* * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.RefBuffer.index_: * * * * * * * * * * * * * * * * * Value: %34 = getelementptr %msgpack.RefBuffer, %msgpack.RefBuffer* %33, i32 0, i32 3 * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * Indexing aggregate field msgpack.RefBuffer.Chunk.data: * * * * * * * * * * * * * * * Value: %38 = getelementptr %msgpack.RefBuffer.Chunk, %msgpack.RefBuffer.Chunk* %37, i32 0, i32 0 * * * * * * * * * * * * * VarExp::toElem: newSize @ ulong * * * * * * * * * * * * * * DtoSymbolAddress ('newSize' of type 'const(ulong)') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * DtoResizeDynArray : ubyte[] * * * * * * * * * * * * * * DtoTypeInfoOf(type = 'ubyte[]', base='1') * * * * * * * * * * * * * * * Type::getTypeInfo(): ubyte[] * * * * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(ubyte[])) * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * SetArray * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(1185) * * * * * * DeclarationExp::toElem: const const(ulong) size = value.length; | T=void * * * * * * * DtoDeclarationExp: size * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = const(ulong)) * * * * * * * * * llvm value for decl: %size = alloca i64, align 8 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: size = value.length | (const(ulong))(const(ulong) = const(ulong)) * * * * * * * * * * VarExp::toElem: size @ const(ulong) * * * * * * * * * * * DtoSymbolAddress ('size' of type 'const(ulong)') * * * * * * * * * * * * a normal variable * * * * * * * * * * ArrayLengthExp::toElem: value.length @ const(ulong) * * * * * * * * * * * VarExp::toElem: value @ const(ubyte[]) * * * * * * * * * * * * DtoSymbolAddress ('value' of type 'const(ubyte[])') * * * * * * * * * * * * * function param * * * * * * * * * * * * * type: const(ubyte[]) * * * * * * * * * * * DtoArrayLen * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %size = alloca i64, align 8 * * * * * * * * * * * rhs: %.len = load i64, i64* %1 * * * * * IfStatement::toIR(): msgpack-d/src/msgpack.d(1188) * * * * * * CmpExp::toElem: this.chunks_[this.index_].data.length - this.chunks_[this.index_].used < size @ bool * * * * * * * MinExp::toElem: this.chunks_[this.index_].data.length - this.chunks_[this.index_].used @ ulong * * * * * * * * ArrayLengthExp::toElem: this.chunks_[this.index_].data.length @ ulong * * * * * * * * * DotVarExp::toElem: this.chunks_[this.index_].data @ ubyte[] * * * * * * * * * * IndexExp::toElem: this.chunks_[this.index_] @ Chunk * * * * * * * * * * * DotVarExp::toElem: this.chunks_ @ Chunk[] * * * * * * * * * * * * ThisExp::toElem: this @ RefBuffer * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * Indexing aggregate field msgpack.RefBuffer.chunks_: * * * * * * * * * * * * * Value: %2 = getelementptr %msgpack.RefBuffer, %msgpack.RefBuffer* %.this_arg, i32 0, i32 2 * * * * * * * * * * * DotVarExp::toElem: this.index_ @ ulong * * * * * * * * * * * * ThisExp::toElem: this @ RefBuffer * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * Indexing aggregate field msgpack.RefBuffer.index_: * * * * * * * * * * * * * Value: %3 = getelementptr %msgpack.RefBuffer, %msgpack.RefBuffer* %.this_arg, i32 0, i32 3 * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * Indexing aggregate field msgpack.RefBuffer.Chunk.data: * * * * * * * * * * * Value: %7 = getelementptr %msgpack.RefBuffer.Chunk, %msgpack.RefBuffer.Chunk* %6, i32 0, i32 0 * * * * * * * * * DtoArrayLen * * * * * * * * DotVarExp::toElem: this.chunks_[this.index_].used @ ulong * * * * * * * * * IndexExp::toElem: this.chunks_[this.index_] @ Chunk * * * * * * * * * * DotVarExp::toElem: this.chunks_ @ Chunk[] * * * * * * * * * * * ThisExp::toElem: this @ RefBuffer * * * * * * * * * * * * normal this exp * * * * * * * * * * * Indexing aggregate field msgpack.RefBuffer.chunks_: * * * * * * * * * * * * Value: %9 = getelementptr %msgpack.RefBuffer, %msgpack.RefBuffer* %.this_arg, i32 0, i32 2 * * * * * * * * * * DotVarExp::toElem: this.index_ @ ulong * * * * * * * * * * * ThisExp::toElem: this @ RefBuffer * * * * * * * * * * * * normal this exp * * * * * * * * * * * Indexing aggregate field msgpack.RefBuffer.index_: * * * * * * * * * * * * Value: %10 = getelementptr %msgpack.RefBuffer, %msgpack.RefBuffer* %.this_arg, i32 0, i32 3 * * * * * * * * * * DtoArrayPtr * * * * * * * * * Indexing aggregate field msgpack.RefBuffer.Chunk.used: * * * * * * * * * * Value: %14 = getelementptr %msgpack.RefBuffer.Chunk, %msgpack.RefBuffer.Chunk* %13, i32 0, i32 1 * * * * * * * VarExp::toElem: size @ ulong * * * * * * * * DtoSymbolAddress ('size' of type 'const(ulong)') * * * * * * * * * a normal variable * * * * * * * type 1: %16 = sub i64 %.len1, %15 * * * * * * * type 2: %17 = load i64, i64* %size * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(1189) * * * * * * * CallExp::toElem: expand(size) @ void * * * * * * * * VarExp::toElem: expand @ void(const(ulong) size) * * * * * * * * * DtoSymbolAddress ('expand' of type 'void(const(ulong) size)') * * * * * * * * * * FuncDeclaration * * * * * * * * DtoCallFunction() * * * * * * * * * Building type: void(const(ulong) size) * * * * * * * * * * DtoFunctionType(void(const(ulong) size)) * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * Final function type: void (i64) * * * * * * * * * DtoNestedContext for msgpack.RefBuffer.putCopy.expand * * * * * * * * * * DtoCreateNestedContextType for msgpack.RefBuffer.putCopy.expand * * * * * * * * * * Parent frame is from putCopy * * * * * * * * * * Current function is putCopy * * * * * * * * * * Context is from putCopy * * * * * * * * * * Needed depth: 0 * * * * * * * * * * Context depth: 0 * * * * * * * * * * Calling sibling function or directly nested function * * * * * * * * * * result = %.frame = alloca %nest.putCopy, align 8 * * * * * * * * * * of type %nest.putCopy* * * * * * * * * * doing normal arguments * * * * * * * * * Arguments so far: (1) * * * * * * * * * * %19 = bitcast %nest.putCopy* %.frame to i8* * * * * * * * * * Function type: void(const(ulong) size) * * * * * * * * * DtoArgument * * * * * * * * * * VarExp::toElem: size @ const(ulong) * * * * * * * * * * * DtoSymbolAddress ('size' of type 'const(ulong)') * * * * * * * * * * * * a normal variable * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(1191) * * * * * * DeclarationExp::toElem: const const(ulong) base = this.chunks_[this.index_].used; | T=void * * * * * * * DtoDeclarationExp: base * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = const(ulong)) * * * * * * * * * llvm value for decl: %base = alloca i64, align 8 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: base = this.chunks_[this.index_].used | (const(ulong))(const(ulong) = const(ulong)) * * * * * * * * * * VarExp::toElem: base @ const(ulong) * * * * * * * * * * * DtoSymbolAddress ('base' of type 'const(ulong)') * * * * * * * * * * * * a normal variable * * * * * * * * * * DotVarExp::toElem: this.chunks_[this.index_].used @ const(ulong) * * * * * * * * * * * IndexExp::toElem: this.chunks_[this.index_] @ Chunk * * * * * * * * * * * * DotVarExp::toElem: this.chunks_ @ Chunk[] * * * * * * * * * * * * * ThisExp::toElem: this @ RefBuffer * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * Indexing aggregate field msgpack.RefBuffer.chunks_: * * * * * * * * * * * * * * Value: %21 = getelementptr %msgpack.RefBuffer, %msgpack.RefBuffer* %.this_arg, i32 0, i32 2 * * * * * * * * * * * * DotVarExp::toElem: this.index_ @ ulong * * * * * * * * * * * * * ThisExp::toElem: this @ RefBuffer * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * Indexing aggregate field msgpack.RefBuffer.index_: * * * * * * * * * * * * * * Value: %22 = getelementptr %msgpack.RefBuffer, %msgpack.RefBuffer* %.this_arg, i32 0, i32 3 * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * Indexing aggregate field msgpack.RefBuffer.Chunk.used: * * * * * * * * * * * * Value: %26 = getelementptr %msgpack.RefBuffer.Chunk, %msgpack.RefBuffer.Chunk* %25, i32 0, i32 1 * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %base = alloca i64, align 8 * * * * * * * * * * * rhs: %27 = load i64, i64* %26 * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(1192) * * * * * * DeclarationExp::toElem: ubyte[] data = this.chunks_[this.index_].data[base..base + size]; | T=void * * * * * * * DtoDeclarationExp: data * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = ubyte[]) * * * * * * * * * llvm value for decl: %data = alloca { i64, i8* }, align 8 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: data = this.chunks_[this.index_].data[base..base + size] | (ubyte[])(ubyte[] = ubyte[]) * * * * * * * * * * VarExp::toElem: data @ ubyte[] * * * * * * * * * * * DtoSymbolAddress ('data' of type 'ubyte[]') * * * * * * * * * * * * a normal variable * * * * * * * * * * SliceExp::toElem: this.chunks_[this.index_].data[base..base + size] @ ubyte[] * * * * * * * * * * * DotVarExp::toElem: this.chunks_[this.index_].data @ ubyte[] * * * * * * * * * * * * IndexExp::toElem: this.chunks_[this.index_] @ Chunk * * * * * * * * * * * * * DotVarExp::toElem: this.chunks_ @ Chunk[] * * * * * * * * * * * * * * ThisExp::toElem: this @ RefBuffer * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * Indexing aggregate field msgpack.RefBuffer.chunks_: * * * * * * * * * * * * * * * Value: %28 = getelementptr %msgpack.RefBuffer, %msgpack.RefBuffer* %.this_arg, i32 0, i32 2 * * * * * * * * * * * * * DotVarExp::toElem: this.index_ @ ulong * * * * * * * * * * * * * * ThisExp::toElem: this @ RefBuffer * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * Indexing aggregate field msgpack.RefBuffer.index_: * * * * * * * * * * * * * * * Value: %29 = getelementptr %msgpack.RefBuffer, %msgpack.RefBuffer* %.this_arg, i32 0, i32 3 * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * Indexing aggregate field msgpack.RefBuffer.Chunk.data: * * * * * * * * * * * * * Value: %33 = getelementptr %msgpack.RefBuffer.Chunk, %msgpack.RefBuffer.Chunk* %32, i32 0, i32 0 * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * VarExp::toElem: base @ ulong * * * * * * * * * * * * DtoSymbolAddress ('base' of type 'const(ulong)') * * * * * * * * * * * * * a normal variable * * * * * * * * * * * AddExp::toElem: base + size @ ulong * * * * * * * * * * * * VarExp::toElem: base @ const(ulong) * * * * * * * * * * * * * DtoSymbolAddress ('base' of type 'const(ulong)') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * VarExp::toElem: size @ const(ulong) * * * * * * * * * * * * * DtoSymbolAddress ('size' of type 'const(ulong)') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * DtoAssign() * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * SetArray * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(1194) * * * * * * AssignExp::toElem: data[] = value[] | (ubyte[])(ubyte[] = const(ubyte[])) * * * * * * * performing static array literal assignment * * * * * * * SliceExp::toElem: data[] @ ubyte[] * * * * * * * * VarExp::toElem: data @ ubyte[] * * * * * * * * * DtoSymbolAddress ('data' of type 'ubyte[]') * * * * * * * * * * a normal variable * * * * * * * * DtoArrayPtr * * * * * * * * DtoArrayLen * * * * * * * SliceExp::toElem: value[] @ const(ubyte[]) * * * * * * * * VarExp::toElem: value @ const(ubyte[]) * * * * * * * * * DtoSymbolAddress ('value' of type 'const(ubyte[])') * * * * * * * * * * function param * * * * * * * * * * type: const(ubyte[]) * * * * * * * * DtoArrayPtr * * * * * * * * DtoArrayLen * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * DtoAssign() * * * * * * * * DtoArrayAssign * * * * * * * * * DtoArrayPtr * * * * * * * * * DtoArrayLen * * * * * * * * * DtoArrayPtr * * * * * * * * * DtoArrayLen * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(1195) * * * * * * AddAssignExp::toElem: this.chunks_[this.index_].used += size @ ulong * * * * * * * Caching l-value of this.chunks_[this.index_].used += size => this.chunks_[this.index_].used * * * * * * * * DotVarExp::toElem: this.chunks_[this.index_].used @ ulong * * * * * * * * * IndexExp::toElem: this.chunks_[this.index_] @ Chunk * * * * * * * * * * DotVarExp::toElem: this.chunks_ @ Chunk[] * * * * * * * * * * * ThisExp::toElem: this @ RefBuffer * * * * * * * * * * * * normal this exp * * * * * * * * * * * Indexing aggregate field msgpack.RefBuffer.chunks_: * * * * * * * * * * * * Value: %48 = getelementptr %msgpack.RefBuffer, %msgpack.RefBuffer* %.this_arg, i32 0, i32 2 * * * * * * * * * * DotVarExp::toElem: this.index_ @ ulong * * * * * * * * * * * ThisExp::toElem: this @ RefBuffer * * * * * * * * * * * * normal this exp * * * * * * * * * * * Indexing aggregate field msgpack.RefBuffer.index_: * * * * * * * * * * * * Value: %49 = getelementptr %msgpack.RefBuffer, %msgpack.RefBuffer* %.this_arg, i32 0, i32 3 * * * * * * * * * * DtoArrayPtr * * * * * * * * * Indexing aggregate field msgpack.RefBuffer.Chunk.used: * * * * * * * * * * Value: %53 = getelementptr %msgpack.RefBuffer.Chunk, %msgpack.RefBuffer.Chunk* %52, i32 0, i32 1 * * * * * * * AddExp::toElem: this.chunks_[this.index_].used + size @ ulong * * * * * * * * DotVarExp::toElem: this.chunks_[this.index_].used @ ulong * * * * * * * * * using cached lvalue * * * * * * * * VarExp::toElem: size @ ulong * * * * * * * * * DtoSymbolAddress ('size' of type 'const(ulong)') * * * * * * * * * * a normal variable * * * * * * * DtoAssign() * * * * * * * * lhs: %53 = getelementptr %msgpack.RefBuffer.Chunk, %msgpack.RefBuffer.Chunk* %52, i32 0, i32 1 * * * * * * * * rhs: %56 = add i64 %54, %55 * * * * * IfStatement::toIR(): msgpack-d/src/msgpack.d(1198) * * * * * * AndAndExp::toElem: this.vecList_.length && cast(ubyte*)data == this.vecList_[__dollar - 1LU].iov_base + cast(long)this.vecList_[__dollar - 1LU].iov_len * 1L @ bool * * * * * * * ArrayLengthExp::toElem: this.vecList_.length @ ulong * * * * * * * * DotVarExp::toElem: this.vecList_ @ iovec[] * * * * * * * * * ThisExp::toElem: this @ RefBuffer * * * * * * * * * * normal this exp * * * * * * * * * Indexing aggregate field msgpack.RefBuffer.vecList_: * * * * * * * * * * Value: %57 = getelementptr %msgpack.RefBuffer, %msgpack.RefBuffer* %.this_arg, i32 0, i32 4 * * * * * * * * DtoArrayLen * * * * * * * Casting from 'ulong' to 'bool' * * * * * * * EqualExp::toElem: cast(ubyte*)data == this.vecList_[__dollar - 1LU].iov_base + cast(long)this.vecList_[__dollar - 1LU].iov_len * 1L @ bool * * * * * * * * CastExp::toElem: cast(ubyte*)data @ ubyte* * * * * * * * * * VarExp::toElem: data @ ubyte[] * * * * * * * * * * DtoSymbolAddress ('data' of type 'ubyte[]') * * * * * * * * * * * a normal variable * * * * * * * * * Casting from 'ubyte[]' to 'ubyte*' * * * * * * * * * * DtoCastArray * * * * * * * * * * * from array or sarray * * * * * * * * * * * to pointer * * * * * * * * * * * DtoArrayPtr * * * * * * * * AddExp::toElem: this.vecList_[__dollar - 1LU].iov_base + cast(long)this.vecList_[__dollar - 1LU].iov_len * 1L @ void* * * * * * * * * * DotVarExp::toElem: this.vecList_[__dollar - 1LU].iov_base @ void* * * * * * * * * * * IndexExp::toElem: this.vecList_[__dollar - 1LU] @ iovec * * * * * * * * * * * DotVarExp::toElem: this.vecList_ @ iovec[] * * * * * * * * * * * * ThisExp::toElem: this @ RefBuffer * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * Indexing aggregate field msgpack.RefBuffer.vecList_: * * * * * * * * * * * * * Value: %61 = getelementptr %msgpack.RefBuffer, %msgpack.RefBuffer* %.this_arg, i32 0, i32 4 * * * * * * * * * * * MinExp::toElem: __dollar - 1LU @ ulong * * * * * * * * * * * * VarExp::toElem: __dollar @ ulong * * * * * * * * * * * * * DtoSymbolAddress ('__dollar' of type 'ulong') * * * * * * * * * * * * * * Id::dollar * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * Indexing aggregate field core.sys.posix.sys.uio.iovec.iov_base: * * * * * * * * * * * Value: %66 = getelementptr %core.sys.posix.sys.uio.iovec, %core.sys.posix.sys.uio.iovec* %65, i32 0, i32 0 * * * * * * * * * Adding integer to pointer * * * * * * * * * CastExp::toElem: cast(long)this.vecList_[__dollar - 1LU].iov_len @ long * * * * * * * * * * DotVarExp::toElem: this.vecList_[__dollar - 1LU].iov_len @ ulong * * * * * * * * * * * IndexExp::toElem: this.vecList_[__dollar - 1LU] @ iovec * * * * * * * * * * * * DotVarExp::toElem: this.vecList_ @ iovec[] * * * * * * * * * * * * * ThisExp::toElem: this @ RefBuffer * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * Indexing aggregate field msgpack.RefBuffer.vecList_: * * * * * * * * * * * * * * Value: %67 = getelementptr %msgpack.RefBuffer, %msgpack.RefBuffer* %.this_arg, i32 0, i32 4 * * * * * * * * * * * * MinExp::toElem: __dollar - 1LU @ ulong * * * * * * * * * * * * * VarExp::toElem: __dollar @ ulong * * * * * * * * * * * * * * DtoSymbolAddress ('__dollar' of type 'ulong') * * * * * * * * * * * * * * * Id::dollar * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * Indexing aggregate field core.sys.posix.sys.uio.iovec.iov_len: * * * * * * * * * * * * Value: %72 = getelementptr %core.sys.posix.sys.uio.iovec, %core.sys.posix.sys.uio.iovec* %71, i32 0, i32 1 * * * * * * * * * * Casting from 'ulong' to 'long' * * * * * * * * integral or pointer or interface * * * * * * * * lv: %.ptr12 = load i8*, i8** %60 * * * * * * * * rv: %75 = getelementptr i8, i8* %74, i64 %73 * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(1200) * * * * * * * AddAssignExp::toElem: this.vecList_[__dollar - 1LU].iov_len += size @ ulong * * * * * * * * Caching l-value of this.vecList_[__dollar - 1LU].iov_len += size => this.vecList_[__dollar - 1LU].iov_len * * * * * * * * * DotVarExp::toElem: this.vecList_[__dollar - 1LU].iov_len @ ulong * * * * * * * * * * IndexExp::toElem: this.vecList_[__dollar - 1LU] @ iovec * * * * * * * * * * * DotVarExp::toElem: this.vecList_ @ iovec[] * * * * * * * * * * * * ThisExp::toElem: this @ RefBuffer * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * Indexing aggregate field msgpack.RefBuffer.vecList_: * * * * * * * * * * * * * Value: %77 = getelementptr %msgpack.RefBuffer, %msgpack.RefBuffer* %.this_arg, i32 0, i32 4 * * * * * * * * * * * MinExp::toElem: __dollar - 1LU @ ulong * * * * * * * * * * * * VarExp::toElem: __dollar @ ulong * * * * * * * * * * * * * DtoSymbolAddress ('__dollar' of type 'ulong') * * * * * * * * * * * * * * Id::dollar * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * Indexing aggregate field core.sys.posix.sys.uio.iovec.iov_len: * * * * * * * * * * * Value: %82 = getelementptr %core.sys.posix.sys.uio.iovec, %core.sys.posix.sys.uio.iovec* %81, i32 0, i32 1 * * * * * * * * AddExp::toElem: this.vecList_[__dollar - 1LU].iov_len + size @ ulong * * * * * * * * * DotVarExp::toElem: this.vecList_[__dollar - 1LU].iov_len @ ulong * * * * * * * * * * using cached lvalue * * * * * * * * * VarExp::toElem: size @ ulong * * * * * * * * * * DtoSymbolAddress ('size' of type 'const(ulong)') * * * * * * * * * * * a normal variable * * * * * * * * DtoAssign() * * * * * * * * * lhs: %82 = getelementptr %core.sys.posix.sys.uio.iovec, %core.sys.posix.sys.uio.iovec* %81, i32 0, i32 1 * * * * * * * * * rhs: %85 = add i64 %83, %84 * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(1202) * * * * * * * CallExp::toElem: this.putRef(data) @ void * * * * * * * * DotVarExp::toElem: this.putRef @ @trusted void(const(ubyte[]) value) * * * * * * * * * ThisExp::toElem: this @ RefBuffer * * * * * * * * * * normal this exp * * * * * * * * DtoCallFunction() * * * * * * * * * doing normal arguments * * * * * * * * * Arguments so far: (1) * * * * * * * * * * %msgpack.RefBuffer* %.this_arg * * * * * * * * * Function type: @trusted void(const(ubyte[]) value) * * * * * * * * * DtoArgument * * * * * * * * * * VarExp::toElem: data @ const(ubyte[]) * * * * * * * * * * * DtoSymbolAddress ('data' of type 'ubyte[]') * * * * * * * * * * * * a normal variable * * Building default initializer for msgpack.RefBuffer * * * Creating initializer constant for RefBuffer * * * * Implicit initializer: Threshold @+0 * * * * * DtoConstExpInit(targetType = immutable(ulong), exp = 0LU) * * * * * * IntegerExp::toConstElem: 0LU @ immutable(ulong) * * * * * * * value = i64 0 * * * * Implicit initializer: ChunkSize @+8 * * * * * DtoConstExpInit(targetType = immutable(ulong), exp = 0LU) * * * * * * IntegerExp::toConstElem: 0LU @ immutable(ulong) * * * * * * * value = i64 0 * * * * Implicit initializer: chunks_ @+16 * * * * * DtoConstExpInit(targetType = Chunk[], exp = null) * * * * * * NullExp::toConstElem(type=Chunk[]): null * * * * Implicit initializer: index_ @+32 * * * * * DtoConstExpInit(targetType = ulong, exp = 0LU) * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * value = i64 0 * * * * Implicit initializer: vecList_ @+40 * * * * * DtoConstExpInit(targetType = iovec[], exp = null) * * * * * * NullExp::toConstElem(type=iovec[]): null * * * * adding field Threshold * * * * adding field ChunkSize * * * * adding field chunks_ * * * * adding field index_ * * * * adding field vecList_ * * * * final initializer: %msgpack.RefBuffer_init zeroinitializer * * DtoTypeInfoOf(type = 'RefBuffer', base='1') * * * Type::getTypeInfo(): RefBuffer * * * * TypeInfoDeclaration::codegen(typeid(RefBuffer)) * * * * * type = 'RefBuffer' * * * * * typeinfo mangle: _D28TypeInfo_S7msgpack9RefBuffer6__initZ * * * * * TypeInfoStructDeclaration::llvmDefine() typeid(RefBuffer) * * * * * * DtoFunctionType(nothrow @trusted ulong(ref const(RefBuffer) p)) * * * * * * * Building type: const(RefBuffer)* * * * * * * * x86-64 ABI: Transforming return type * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * Final function type: i64 (%msgpack.RefBuffer*) * * * * * * DtoResolveFunction(msgpack.RefBuffer.__xtoHash): * * * * * * * DtoDeclareFunction(msgpack.RefBuffer.__xtoHash): * * * * * * * * DtoFunctionType(nothrow @trusted ulong(ref const(RefBuffer) p)) * * * * * * * * func = declare i64 @_D7msgpack9RefBuffer9__xtoHashFNbNeKxS7msgpack9RefBufferZm(%msgpack.RefBuffer*) * * * * * * DtoFunctionType(bool(ref const(RefBuffer) p, ref const(RefBuffer) q)) * * * * * * * x86-64 ABI: Transforming return type * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * Final function type: i1 (%msgpack.RefBuffer*, %msgpack.RefBuffer*) * * * * * * DtoResolveFunction(msgpack.RefBuffer.__xopEquals): * * * * * * * DtoDeclareFunction(msgpack.RefBuffer.__xopEquals): * * * * * * * * DtoFunctionType(bool(ref const(RefBuffer) p, ref const(RefBuffer) q)) * * * * * * * * func = declare i1 @_D7msgpack9RefBuffer11__xopEqualsFKxS7msgpack9RefBufferKxS7msgpack9RefBufferZb(%msgpack.RefBuffer*, %msgpack.RefBuffer*) * * * * * * IntegerExp::toConstElem: cast(void*)305419896LU @ void* * * * * * * * pointer * * * TypeInfoDeclaration::codegen(typeid(RefBuffer)) * * DtoDefineFunction(msgpack.RefBuffer.__xopEquals): * * * Doing function body for: __xopEquals * * * DtoCreateNestedContext for __xopEquals * * * * DtoCreateNestedContextType for msgpack.RefBuffer.__xopEquals * * * CompoundStatement::toIR(): * * * * ReturnStatement::toIR(): * * * * * AndAndExp::toElem: p.Threshold == q.Threshold && p.ChunkSize == q.ChunkSize && p.chunks_ == q.chunks_ && p.index_ == q.index_ && p.vecList_ == q.vecList_ @ bool * * * * * * AndAndExp::toElem: p.Threshold == q.Threshold && p.ChunkSize == q.ChunkSize && p.chunks_ == q.chunks_ && p.index_ == q.index_ @ bool * * * * * * * AndAndExp::toElem: p.Threshold == q.Threshold && p.ChunkSize == q.ChunkSize && p.chunks_ == q.chunks_ @ bool * * * * * * * * AndAndExp::toElem: p.Threshold == q.Threshold && p.ChunkSize == q.ChunkSize @ bool * * * * * * * * * EqualExp::toElem: p.Threshold == q.Threshold @ bool * * * * * * * * * * DotVarExp::toElem: p.Threshold @ immutable(ulong) * * * * * * * * * * * VarExp::toElem: p @ const(RefBuffer) * * * * * * * * * * * * DtoSymbolAddress ('p' of type 'const(RefBuffer)') * * * * * * * * * * * * * function param * * * * * * * * * * * * * type: const(RefBuffer) * * * * * * * * * * * Indexing aggregate field msgpack.RefBuffer.Threshold: * * * * * * * * * * * * Value: %1 = getelementptr %msgpack.RefBuffer, %msgpack.RefBuffer* %p_arg, i32 0, i32 0 * * * * * * * * * * DotVarExp::toElem: q.Threshold @ immutable(ulong) * * * * * * * * * * * VarExp::toElem: q @ const(RefBuffer) * * * * * * * * * * * * DtoSymbolAddress ('q' of type 'const(RefBuffer)') * * * * * * * * * * * * * function param * * * * * * * * * * * * * type: const(RefBuffer) * * * * * * * * * * * Indexing aggregate field msgpack.RefBuffer.Threshold: * * * * * * * * * * * * Value: %2 = getelementptr %msgpack.RefBuffer, %msgpack.RefBuffer* %q_arg, i32 0, i32 0 * * * * * * * * * * integral or pointer or interface * * * * * * * * * * lv: %3 = load i64, i64* %1 * * * * * * * * * * rv: %4 = load i64, i64* %2 * * * * * * * * * EqualExp::toElem: p.ChunkSize == q.ChunkSize @ bool * * * * * * * * * * DotVarExp::toElem: p.ChunkSize @ immutable(ulong) * * * * * * * * * * * VarExp::toElem: p @ const(RefBuffer) * * * * * * * * * * * * DtoSymbolAddress ('p' of type 'const(RefBuffer)') * * * * * * * * * * * * * function param * * * * * * * * * * * * * type: const(RefBuffer) * * * * * * * * * * * Indexing aggregate field msgpack.RefBuffer.ChunkSize: * * * * * * * * * * * * Value: %6 = getelementptr %msgpack.RefBuffer, %msgpack.RefBuffer* %p_arg, i32 0, i32 1 * * * * * * * * * * DotVarExp::toElem: q.ChunkSize @ immutable(ulong) * * * * * * * * * * * VarExp::toElem: q @ const(RefBuffer) * * * * * * * * * * * * DtoSymbolAddress ('q' of type 'const(RefBuffer)') * * * * * * * * * * * * * function param * * * * * * * * * * * * * type: const(RefBuffer) * * * * * * * * * * * Indexing aggregate field msgpack.RefBuffer.ChunkSize: * * * * * * * * * * * * Value: %7 = getelementptr %msgpack.RefBuffer, %msgpack.RefBuffer* %q_arg, i32 0, i32 1 * * * * * * * * * * integral or pointer or interface * * * * * * * * * * lv: %8 = load i64, i64* %6 * * * * * * * * * * rv: %9 = load i64, i64* %7 * * * * * * * * EqualExp::toElem: p.chunks_ == q.chunks_ @ bool * * * * * * * * * DotVarExp::toElem: p.chunks_ @ const(Chunk[]) * * * * * * * * * * VarExp::toElem: p @ const(RefBuffer) * * * * * * * * * * * DtoSymbolAddress ('p' of type 'const(RefBuffer)') * * * * * * * * * * * * function param * * * * * * * * * * * * type: const(RefBuffer) * * * * * * * * * * Indexing aggregate field msgpack.RefBuffer.chunks_: * * * * * * * * * * * Value: %11 = getelementptr %msgpack.RefBuffer, %msgpack.RefBuffer* %p_arg, i32 0, i32 2 * * * * * * * * * DotVarExp::toElem: q.chunks_ @ const(Chunk[]) * * * * * * * * * * VarExp::toElem: q @ const(RefBuffer) * * * * * * * * * * * DtoSymbolAddress ('q' of type 'const(RefBuffer)') * * * * * * * * * * * * function param * * * * * * * * * * * * type: const(RefBuffer) * * * * * * * * * * Indexing aggregate field msgpack.RefBuffer.chunks_: * * * * * * * * * * * Value: %12 = getelementptr %msgpack.RefBuffer, %msgpack.RefBuffer* %q_arg, i32 0, i32 2 * * * * * * * * * static or dynamic array * * * * * * * * * comparing arrays * * * * * * * * * casting to dynamic arrays * * * * * * * * * DtoCastArray * * * * * * * * * * Building type: const(Chunk)[] * * * * * * * * * * from array or sarray * * * * * * * * * * to array * * * * * * * * * * DtoArrayLen * * * * * * * * * * DtoArrayPtr * * * * * * * * * * isslice * * * * * * * * * DtoCastArray * * * * * * * * * * from array or sarray * * * * * * * * * * to array * * * * * * * * * * DtoArrayLen * * * * * * * * * * DtoArrayPtr * * * * * * * * * * isslice * * * * * * * * * DtoTypeInfoOf(type = 'const(Chunk)[]', base='1') * * * * * * * * * * Type::getTypeInfo(): const(Chunk)[] * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(const(Chunk)[])) * * * * * * * * * * * * type = 'const(Chunk)[]' * * * * * * * * * * * * typeinfo mangle: _D36TypeInfo_AxS7msgpack9RefBuffer5Chunk6__initZ * * * * * * * * * * * * TypeInfoArrayDeclaration::llvmDefine() typeid(const(Chunk)[]) * * * * * * * * * * * * * DtoTypeInfoOf(type = 'const(Chunk)', base='1') * * * * * * * * * * * * * * Type::getTypeInfo(): const(Chunk) * * * * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(const(Chunk))) * * * * * * * * * * * * * * * * type = 'const(Chunk)' * * * * * * * * * * * * * * * * typeinfo mangle: _D35TypeInfo_xS7msgpack9RefBuffer5Chunk6__initZ * * * * * * * * * * * * * * * * TypeInfoConstDeclaration::llvmDefine() typeid(const(Chunk)) * * * * * * * * * * * * * * * * * DtoTypeInfoOf(type = 'Chunk', base='1') * * * * * * * * * * * * * * * * * * Type::getTypeInfo(): Chunk * * * * * * * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(Chunk)) * * * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(const(Chunk))) * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(const(Chunk)[])) * * * * * * * EqualExp::toElem: p.index_ == q.index_ @ bool * * * * * * * * DotVarExp::toElem: p.index_ @ const(ulong) * * * * * * * * * VarExp::toElem: p @ const(RefBuffer) * * * * * * * * * * DtoSymbolAddress ('p' of type 'const(RefBuffer)') * * * * * * * * * * * function param * * * * * * * * * * * type: const(RefBuffer) * * * * * * * * * Indexing aggregate field msgpack.RefBuffer.index_: * * * * * * * * * * Value: %35 = getelementptr %msgpack.RefBuffer, %msgpack.RefBuffer* %p_arg, i32 0, i32 3 * * * * * * * * DotVarExp::toElem: q.index_ @ const(ulong) * * * * * * * * * VarExp::toElem: q @ const(RefBuffer) * * * * * * * * * * DtoSymbolAddress ('q' of type 'const(RefBuffer)') * * * * * * * * * * * function param * * * * * * * * * * * type: const(RefBuffer) * * * * * * * * * Indexing aggregate field msgpack.RefBuffer.index_: * * * * * * * * * * Value: %36 = getelementptr %msgpack.RefBuffer, %msgpack.RefBuffer* %q_arg, i32 0, i32 3 * * * * * * * * integral or pointer or interface * * * * * * * * lv: %37 = load i64, i64* %35 * * * * * * * * rv: %38 = load i64, i64* %36 * * * * * * EqualExp::toElem: p.vecList_ == q.vecList_ @ bool * * * * * * * DotVarExp::toElem: p.vecList_ @ const(iovec[]) * * * * * * * * VarExp::toElem: p @ const(RefBuffer) * * * * * * * * * DtoSymbolAddress ('p' of type 'const(RefBuffer)') * * * * * * * * * * function param * * * * * * * * * * type: const(RefBuffer) * * * * * * * * Indexing aggregate field msgpack.RefBuffer.vecList_: * * * * * * * * * Value: %40 = getelementptr %msgpack.RefBuffer, %msgpack.RefBuffer* %p_arg, i32 0, i32 4 * * * * * * * DotVarExp::toElem: q.vecList_ @ const(iovec[]) * * * * * * * * VarExp::toElem: q @ const(RefBuffer) * * * * * * * * * DtoSymbolAddress ('q' of type 'const(RefBuffer)') * * * * * * * * * * function param * * * * * * * * * * type: const(RefBuffer) * * * * * * * * Indexing aggregate field msgpack.RefBuffer.vecList_: * * * * * * * * * Value: %41 = getelementptr %msgpack.RefBuffer, %msgpack.RefBuffer* %q_arg, i32 0, i32 4 * * * * * * * static or dynamic array * * * * * * * comparing arrays * * * * * * * casting to dynamic arrays * * * * * * * DtoCastArray * * * * * * * * Building type: const(iovec)[] * * * * * * * * from array or sarray * * * * * * * * to array * * * * * * * * DtoArrayLen * * * * * * * * DtoArrayPtr * * * * * * * * isslice * * * * * * * DtoCastArray * * * * * * * * from array or sarray * * * * * * * * to array * * * * * * * * DtoArrayLen * * * * * * * * DtoArrayPtr * * * * * * * * isslice * * * * * * * DtoTypeInfoOf(type = 'const(iovec)[]', base='1') * * * * * * * * Type::getTypeInfo(): const(iovec)[] * * * * * * * * * TypeInfoDeclaration::codegen(typeid(const(iovec)[])) * * * * * * * * * * type = 'const(iovec)[]' * * * * * * * * * * typeinfo mangle: _D41TypeInfo_AxS4core3sys5posix3sys3uio5iovec6__initZ * * * * * * * * * * TypeInfoArrayDeclaration::llvmDefine() typeid(const(iovec)[]) * * * * * * * * * * * DtoTypeInfoOf(type = 'const(iovec)', base='1') * * * * * * * * * * * * Type::getTypeInfo(): const(iovec) * * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(const(iovec))) * * * * * * * * * * * * * * type = 'const(iovec)' * * * * * * * * * * * * * * typeinfo mangle: _D40TypeInfo_xS4core3sys5posix3sys3uio5iovec6__initZ * * * * * * * * * * * * * * TypeInfoConstDeclaration::llvmDefine() typeid(const(iovec)) * * * * * * * * * * * * * * * DtoTypeInfoOf(type = 'iovec', base='1') * * * * * * * * * * * * * * * * Type::getTypeInfo(): iovec * * * * * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(iovec)) * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(const(iovec))) * * * * * * * * TypeInfoDeclaration::codegen(typeid(const(iovec)[])) * * * * * return value is '0x1317e708' * * DtoDefineFunction(msgpack.RefBuffer.__xtoHash): * * * Doing function body for: __xtoHash * * * DtoCreateNestedContext for __xtoHash * * * * DtoCreateNestedContextType for msgpack.RefBuffer.__xtoHash * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): * * * * * ExpStatement::toIR(): * * * * * * DeclarationExp::toElem: ulong h = 0LU; | T=void * * * * * * * DtoDeclarationExp: h * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * llvm value for decl: %h = alloca i64, align 8 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: h = 0LU | (ulong)(ulong = ulong) * * * * * * * * * * VarExp::toElem: h @ ulong * * * * * * * * * * * DtoSymbolAddress ('h' of type 'ulong') * * * * * * * * * * * * a normal variable * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * value = i64 0 * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %h = alloca i64, align 8 * * * * * * * * * * * rhs: i64 0 * * * * * UnrolledLoopStatement::toIR(): * * * * * * ScopeStatement::toIR(): * * * * * * * CompoundStatement::toIR(): * * * * * * * * ExpStatement::toIR(): * * * * * * * * * DeclarationExp::toElem: enum ulong i = 0LU; | T=void * * * * * * * * * * DtoDeclarationExp: i * * * * * * * * * * * VarDeclaration * * * * * * * * * * * Manifest constant, nothing to do. * * * * * * * * ExpStatement::toIR(): * * * * * * * * * DeclarationExp::toElem: alias T = immutable(ulong); | T=void * * * * * * * * * * DtoDeclarationExp: T * * * * * * * * * * * Ignoring Symbol: alias * * * * * * * * ExpStatement::toIR(): * * * * * * * * * AddAssignExp::toElem: h += typeid(immutable(ulong)).getHash(cast(const(void*))&p.Threshold) @ ulong * * * * * * * * * * Caching l-value of h += typeid(immutable(ulong)).getHash(cast(const(void*))&p.Threshold) => h * * * * * * * * * * * VarExp::toElem: h @ ulong * * * * * * * * * * * * DtoSymbolAddress ('h' of type 'ulong') * * * * * * * * * * * * * a normal variable * * * * * * * * * * AddExp::toElem: h + typeid(immutable(ulong)).getHash(cast(const(void*))&p.Threshold) @ ulong * * * * * * * * * * * VarExp::toElem: h @ ulong * * * * * * * * * * * CallExp::toElem: typeid(immutable(ulong)).getHash(cast(const(void*))&p.Threshold) @ ulong * * * * * * * * * * * * DotVarExp::toElem: typeid(immutable(ulong)).getHash @ const nothrow @trusted ulong(const(void*) p) * * * * * * * * * * * * * SymOffExp::toElem: typeid(immutable(ulong)) @ object.TypeInfo * * * * * * * * * * * * * * DtoSymbolAddress ('typeid(immutable(ulong))' of type 'object.TypeInfo_Invariant') * * * * * * * * * * * * * * * TypeInfoDeclaration * * * * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(immutable(ulong))) * * * * * * * * * * * * * * * * type = 'immutable(ulong)' * * * * * * * * * * * * * * * * typeinfo mangle: _D11TypeInfo_ym6__initZ * * * * * * * * * * * * * * * * TypeInfoInvariantDeclaration::llvmDefine() typeid(immutable(ulong)) * * * * * * * * * * * * * * * * * DtoTypeInfoOf(type = 'ulong', base='1') * * * * * * * * * * * * * * * * * * Type::getTypeInfo(): ulong * * * * * * * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(ulong)) * * * * * * * * * * * * * * Casting from 'TypeInfo_Invariant*' to 'object.TypeInfo' * * * * * * * * * * * * * * * src: %object.TypeInfo_Invariant* bitcast (%"typeid(immutable(ulong))"* @_D11TypeInfo_ym6__initZ to %object.TypeInfo_Invariant*) * * * * * * * * * * * * * * * to type: %object.TypeInfo* * * * * * * * * * * * * * vthis: %object.TypeInfo* bitcast (%"typeid(immutable(ulong))"* @_D11TypeInfo_ym6__initZ to %object.TypeInfo*) * * * * * * * * * * * * * funcval: %3 = load i64 (%object.TypeInfo*, i8*)*, i64 (%object.TypeInfo*, i8*)** %"typeid(immutable(ulong)).getHash@vtbl", align 8 * * * * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * * * * DtoFunctionType(const nothrow @trusted ulong(const(void*) p)) * * * * * * * * * * * * * funcval casted: %"typeid(immutable(ulong)).getHash" = load i64 (%object.TypeInfo*, i8*)*, i64 (%object.TypeInfo*, i8*)** %"typeid(immutable(ulong)).getHash@vtbl", align 8 * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * %object.TypeInfo* bitcast (%"typeid(immutable(ulong))"* @_D11TypeInfo_ym6__initZ to %object.TypeInfo*) * * * * * * * * * * * * * Function type: const nothrow @trusted ulong(const(void*) p) * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * CastExp::toElem: cast(const(void*))&p.Threshold @ const(void*) * * * * * * * * * * * * * * * AddrExp::toElem: &p.Threshold @ immutable(ulong)* * * * * * * * * * * * * * * * * DotVarExp::toElem: p.Threshold @ immutable(ulong) * * * * * * * * * * * * * * * * * VarExp::toElem: p @ const(RefBuffer) * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('p' of type 'const(RefBuffer)') * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * type: const(RefBuffer) * * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.RefBuffer.Threshold: * * * * * * * * * * * * * * * * * * Value: %3 = getelementptr %msgpack.RefBuffer, %msgpack.RefBuffer* %p_arg, i32 0, i32 0 * * * * * * * * * * * * * * * * is nothing special * * * * * * * * * * * * * * * * lval: %3 = getelementptr %msgpack.RefBuffer, %msgpack.RefBuffer* %p_arg, i32 0, i32 0 * * * * * * * * * * * * * * * * Building type: immutable(ulong)* * * * * * * * * * * * * * * * Casting from 'immutable(ulong)*' to 'const(void*)' * * * * * * * * * * * * * * * * src: %3 = getelementptr %msgpack.RefBuffer, %msgpack.RefBuffer* %p_arg, i32 0, i32 0 * * * * * * * * * * * * * * * * to type: i8* * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %h = alloca i64, align 8 * * * * * * * * * * * rhs: %7 = add i64 %6, %5 * * * * * * ScopeStatement::toIR(): * * * * * * * CompoundStatement::toIR(): * * * * * * * * ExpStatement::toIR(): * * * * * * * * * DeclarationExp::toElem: enum ulong i = 1LU; | T=void * * * * * * * * * * DtoDeclarationExp: i * * * * * * * * * * * VarDeclaration * * * * * * * * * * * Manifest constant, nothing to do. * * * * * * * * ExpStatement::toIR(): * * * * * * * * * DeclarationExp::toElem: alias T = immutable(ulong); | T=void * * * * * * * * * * DtoDeclarationExp: T * * * * * * * * * * * Ignoring Symbol: alias * * * * * * * * ExpStatement::toIR(): * * * * * * * * * AddAssignExp::toElem: h += typeid(immutable(ulong)).getHash(cast(const(void*))&p.ChunkSize) @ ulong * * * * * * * * * * Caching l-value of h += typeid(immutable(ulong)).getHash(cast(const(void*))&p.ChunkSize) => h * * * * * * * * * * * VarExp::toElem: h @ ulong * * * * * * * * * * * * DtoSymbolAddress ('h' of type 'ulong') * * * * * * * * * * * * * a normal variable * * * * * * * * * * AddExp::toElem: h + typeid(immutable(ulong)).getHash(cast(const(void*))&p.ChunkSize) @ ulong * * * * * * * * * * * VarExp::toElem: h @ ulong * * * * * * * * * * * CallExp::toElem: typeid(immutable(ulong)).getHash(cast(const(void*))&p.ChunkSize) @ ulong * * * * * * * * * * * * DotVarExp::toElem: typeid(immutable(ulong)).getHash @ const nothrow @trusted ulong(const(void*) p) * * * * * * * * * * * * * SymOffExp::toElem: typeid(immutable(ulong)) @ object.TypeInfo * * * * * * * * * * * * * * DtoSymbolAddress ('typeid(immutable(ulong))' of type 'object.TypeInfo_Invariant') * * * * * * * * * * * * * * * TypeInfoDeclaration * * * * * * * * * * * * * * Casting from 'TypeInfo_Invariant*' to 'object.TypeInfo' * * * * * * * * * * * * * * * src: %object.TypeInfo_Invariant* bitcast (%"typeid(immutable(ulong))"* @_D11TypeInfo_ym6__initZ to %object.TypeInfo_Invariant*) * * * * * * * * * * * * * * * to type: %object.TypeInfo* * * * * * * * * * * * * * vthis: %object.TypeInfo* bitcast (%"typeid(immutable(ulong))"* @_D11TypeInfo_ym6__initZ to %object.TypeInfo*) * * * * * * * * * * * * * funcval: %10 = load i64 (%object.TypeInfo*, i8*)*, i64 (%object.TypeInfo*, i8*)** %"typeid(immutable(ulong)).getHash@vtbl5", align 8 * * * * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * * * * DtoFunctionType(const nothrow @trusted ulong(const(void*) p)) * * * * * * * * * * * * * funcval casted: %"typeid(immutable(ulong)).getHash6" = load i64 (%object.TypeInfo*, i8*)*, i64 (%object.TypeInfo*, i8*)** %"typeid(immutable(ulong)).getHash@vtbl5", align 8 * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * %object.TypeInfo* bitcast (%"typeid(immutable(ulong))"* @_D11TypeInfo_ym6__initZ to %object.TypeInfo*) * * * * * * * * * * * * * Function type: const nothrow @trusted ulong(const(void*) p) * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * CastExp::toElem: cast(const(void*))&p.ChunkSize @ const(void*) * * * * * * * * * * * * * * * AddrExp::toElem: &p.ChunkSize @ immutable(ulong)* * * * * * * * * * * * * * * * * DotVarExp::toElem: p.ChunkSize @ immutable(ulong) * * * * * * * * * * * * * * * * * VarExp::toElem: p @ const(RefBuffer) * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('p' of type 'const(RefBuffer)') * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * type: const(RefBuffer) * * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.RefBuffer.ChunkSize: * * * * * * * * * * * * * * * * * * Value: %10 = getelementptr %msgpack.RefBuffer, %msgpack.RefBuffer* %p_arg, i32 0, i32 1 * * * * * * * * * * * * * * * * is nothing special * * * * * * * * * * * * * * * * lval: %10 = getelementptr %msgpack.RefBuffer, %msgpack.RefBuffer* %p_arg, i32 0, i32 1 * * * * * * * * * * * * * * * Casting from 'immutable(ulong)*' to 'const(void*)' * * * * * * * * * * * * * * * * src: %10 = getelementptr %msgpack.RefBuffer, %msgpack.RefBuffer* %p_arg, i32 0, i32 1 * * * * * * * * * * * * * * * * to type: i8* * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %h = alloca i64, align 8 * * * * * * * * * * * rhs: %14 = add i64 %13, %12 * * * * * * ScopeStatement::toIR(): * * * * * * * CompoundStatement::toIR(): * * * * * * * * ExpStatement::toIR(): * * * * * * * * * DeclarationExp::toElem: enum ulong i = 2LU; | T=void * * * * * * * * * * DtoDeclarationExp: i * * * * * * * * * * * VarDeclaration * * * * * * * * * * * Manifest constant, nothing to do. * * * * * * * * ExpStatement::toIR(): * * * * * * * * * DeclarationExp::toElem: alias T = const(Chunk[]); | T=void * * * * * * * * * * DtoDeclarationExp: T * * * * * * * * * * * Ignoring Symbol: alias * * * * * * * * ExpStatement::toIR(): * * * * * * * * * AddAssignExp::toElem: h += typeid(const(Chunk[])).getHash(cast(const(void*))&p.chunks_) @ ulong * * * * * * * * * * Caching l-value of h += typeid(const(Chunk[])).getHash(cast(const(void*))&p.chunks_) => h * * * * * * * * * * * VarExp::toElem: h @ ulong * * * * * * * * * * * * DtoSymbolAddress ('h' of type 'ulong') * * * * * * * * * * * * * a normal variable * * * * * * * * * * AddExp::toElem: h + typeid(const(Chunk[])).getHash(cast(const(void*))&p.chunks_) @ ulong * * * * * * * * * * * VarExp::toElem: h @ ulong * * * * * * * * * * * CallExp::toElem: typeid(const(Chunk[])).getHash(cast(const(void*))&p.chunks_) @ ulong * * * * * * * * * * * * DotVarExp::toElem: typeid(const(Chunk[])).getHash @ const nothrow @trusted ulong(const(void*) p) * * * * * * * * * * * * * SymOffExp::toElem: typeid(const(Chunk[])) @ object.TypeInfo * * * * * * * * * * * * * * DtoSymbolAddress ('typeid(const(Chunk[]))' of type 'object.TypeInfo_Const') * * * * * * * * * * * * * * * TypeInfoDeclaration * * * * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(const(Chunk[]))) * * * * * * * * * * * * * * * * type = 'const(Chunk[])' * * * * * * * * * * * * * * * * typeinfo mangle: _D36TypeInfo_xAS7msgpack9RefBuffer5Chunk6__initZ * * * * * * * * * * * * * * * * TypeInfoConstDeclaration::llvmDefine() typeid(const(Chunk[])) * * * * * * * * * * * * * * * * * DtoTypeInfoOf(type = 'const(Chunk)[]', base='1') * * * * * * * * * * * * * * * * * * Type::getTypeInfo(): const(Chunk)[] * * * * * * * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(const(Chunk)[])) * * * * * * * * * * * * * * Casting from 'TypeInfo_Const*' to 'object.TypeInfo' * * * * * * * * * * * * * * * src: %object.TypeInfo_Const* bitcast (%"typeid(const(Chunk[]))"* @_D36TypeInfo_xAS7msgpack9RefBuffer5Chunk6__initZ to %object.TypeInfo_Const*) * * * * * * * * * * * * * * * to type: %object.TypeInfo* * * * * * * * * * * * * * vthis: %object.TypeInfo* bitcast (%"typeid(const(Chunk[]))"* @_D36TypeInfo_xAS7msgpack9RefBuffer5Chunk6__initZ to %object.TypeInfo*) * * * * * * * * * * * * * funcval: %17 = load i64 (%object.TypeInfo*, i8*)*, i64 (%object.TypeInfo*, i8*)** %"typeid(const(Chunk[])).getHash@vtbl", align 8 * * * * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * * * * DtoFunctionType(const nothrow @trusted ulong(const(void*) p)) * * * * * * * * * * * * * funcval casted: %"typeid(const(Chunk[])).getHash" = load i64 (%object.TypeInfo*, i8*)*, i64 (%object.TypeInfo*, i8*)** %"typeid(const(Chunk[])).getHash@vtbl", align 8 * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * %object.TypeInfo* bitcast (%"typeid(const(Chunk[]))"* @_D36TypeInfo_xAS7msgpack9RefBuffer5Chunk6__initZ to %object.TypeInfo*) * * * * * * * * * * * * * Function type: const nothrow @trusted ulong(const(void*) p) * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * CastExp::toElem: cast(const(void*))&p.chunks_ @ const(void*) * * * * * * * * * * * * * * * AddrExp::toElem: &p.chunks_ @ const(Chunk[])* * * * * * * * * * * * * * * * * DotVarExp::toElem: p.chunks_ @ const(Chunk[]) * * * * * * * * * * * * * * * * * VarExp::toElem: p @ const(RefBuffer) * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('p' of type 'const(RefBuffer)') * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * type: const(RefBuffer) * * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.RefBuffer.chunks_: * * * * * * * * * * * * * * * * * * Value: %17 = getelementptr %msgpack.RefBuffer, %msgpack.RefBuffer* %p_arg, i32 0, i32 2 * * * * * * * * * * * * * * * * is nothing special * * * * * * * * * * * * * * * * lval: %17 = getelementptr %msgpack.RefBuffer, %msgpack.RefBuffer* %p_arg, i32 0, i32 2 * * * * * * * * * * * * * * * * Building type: const(Chunk[])* * * * * * * * * * * * * * * * Casting from 'const(Chunk[])*' to 'const(void*)' * * * * * * * * * * * * * * * * src: %17 = getelementptr %msgpack.RefBuffer, %msgpack.RefBuffer* %p_arg, i32 0, i32 2 * * * * * * * * * * * * * * * * to type: i8* * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %h = alloca i64, align 8 * * * * * * * * * * * rhs: %21 = add i64 %20, %19 * * * * * * ScopeStatement::toIR(): * * * * * * * CompoundStatement::toIR(): * * * * * * * * ExpStatement::toIR(): * * * * * * * * * DeclarationExp::toElem: enum ulong i = 3LU; | T=void * * * * * * * * * * DtoDeclarationExp: i * * * * * * * * * * * VarDeclaration * * * * * * * * * * * Manifest constant, nothing to do. * * * * * * * * ExpStatement::toIR(): * * * * * * * * * DeclarationExp::toElem: alias T = const(ulong); | T=void * * * * * * * * * * DtoDeclarationExp: T * * * * * * * * * * * Ignoring Symbol: alias * * * * * * * * ExpStatement::toIR(): * * * * * * * * * AddAssignExp::toElem: h += typeid(const(ulong)).getHash(cast(const(void*))&p.index_) @ ulong * * * * * * * * * * Caching l-value of h += typeid(const(ulong)).getHash(cast(const(void*))&p.index_) => h * * * * * * * * * * * VarExp::toElem: h @ ulong * * * * * * * * * * * * DtoSymbolAddress ('h' of type 'ulong') * * * * * * * * * * * * * a normal variable * * * * * * * * * * AddExp::toElem: h + typeid(const(ulong)).getHash(cast(const(void*))&p.index_) @ ulong * * * * * * * * * * * VarExp::toElem: h @ ulong * * * * * * * * * * * CallExp::toElem: typeid(const(ulong)).getHash(cast(const(void*))&p.index_) @ ulong * * * * * * * * * * * * DotVarExp::toElem: typeid(const(ulong)).getHash @ const nothrow @trusted ulong(const(void*) p) * * * * * * * * * * * * * SymOffExp::toElem: typeid(const(ulong)) @ object.TypeInfo * * * * * * * * * * * * * * DtoSymbolAddress ('typeid(const(ulong))' of type 'object.TypeInfo_Const') * * * * * * * * * * * * * * * TypeInfoDeclaration * * * * * * * * * * * * * * Casting from 'TypeInfo_Const*' to 'object.TypeInfo' * * * * * * * * * * * * * * * src: %object.TypeInfo_Const* bitcast (%"typeid(const(ulong))"* @_D11TypeInfo_xm6__initZ to %object.TypeInfo_Const*) * * * * * * * * * * * * * * * to type: %object.TypeInfo* * * * * * * * * * * * * * vthis: %object.TypeInfo* bitcast (%"typeid(const(ulong))"* @_D11TypeInfo_xm6__initZ to %object.TypeInfo*) * * * * * * * * * * * * * funcval: %24 = load i64 (%object.TypeInfo*, i8*)*, i64 (%object.TypeInfo*, i8*)** %"typeid(const(ulong)).getHash@vtbl", align 8 * * * * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * * * * DtoFunctionType(const nothrow @trusted ulong(const(void*) p)) * * * * * * * * * * * * * funcval casted: %"typeid(const(ulong)).getHash" = load i64 (%object.TypeInfo*, i8*)*, i64 (%object.TypeInfo*, i8*)** %"typeid(const(ulong)).getHash@vtbl", align 8 * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * %object.TypeInfo* bitcast (%"typeid(const(ulong))"* @_D11TypeInfo_xm6__initZ to %object.TypeInfo*) * * * * * * * * * * * * * Function type: const nothrow @trusted ulong(const(void*) p) * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * CastExp::toElem: cast(const(void*))&p.index_ @ const(void*) * * * * * * * * * * * * * * * AddrExp::toElem: &p.index_ @ const(ulong)* * * * * * * * * * * * * * * * * DotVarExp::toElem: p.index_ @ const(ulong) * * * * * * * * * * * * * * * * * VarExp::toElem: p @ const(RefBuffer) * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('p' of type 'const(RefBuffer)') * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * type: const(RefBuffer) * * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.RefBuffer.index_: * * * * * * * * * * * * * * * * * * Value: %24 = getelementptr %msgpack.RefBuffer, %msgpack.RefBuffer* %p_arg, i32 0, i32 3 * * * * * * * * * * * * * * * * is nothing special * * * * * * * * * * * * * * * * lval: %24 = getelementptr %msgpack.RefBuffer, %msgpack.RefBuffer* %p_arg, i32 0, i32 3 * * * * * * * * * * * * * * * Casting from 'const(ulong)*' to 'const(void*)' * * * * * * * * * * * * * * * * src: %24 = getelementptr %msgpack.RefBuffer, %msgpack.RefBuffer* %p_arg, i32 0, i32 3 * * * * * * * * * * * * * * * * to type: i8* * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %h = alloca i64, align 8 * * * * * * * * * * * rhs: %28 = add i64 %27, %26 * * * * * * ScopeStatement::toIR(): * * * * * * * CompoundStatement::toIR(): * * * * * * * * ExpStatement::toIR(): * * * * * * * * * DeclarationExp::toElem: enum ulong i = 4LU; | T=void * * * * * * * * * * DtoDeclarationExp: i * * * * * * * * * * * VarDeclaration * * * * * * * * * * * Manifest constant, nothing to do. * * * * * * * * ExpStatement::toIR(): * * * * * * * * * DeclarationExp::toElem: alias T = const(iovec[]); | T=void * * * * * * * * * * DtoDeclarationExp: T * * * * * * * * * * * Ignoring Symbol: alias * * * * * * * * ExpStatement::toIR(): * * * * * * * * * AddAssignExp::toElem: h += typeid(const(iovec[])).getHash(cast(const(void*))&p.vecList_) @ ulong * * * * * * * * * * Caching l-value of h += typeid(const(iovec[])).getHash(cast(const(void*))&p.vecList_) => h * * * * * * * * * * * VarExp::toElem: h @ ulong * * * * * * * * * * * * DtoSymbolAddress ('h' of type 'ulong') * * * * * * * * * * * * * a normal variable * * * * * * * * * * AddExp::toElem: h + typeid(const(iovec[])).getHash(cast(const(void*))&p.vecList_) @ ulong * * * * * * * * * * * VarExp::toElem: h @ ulong * * * * * * * * * * * CallExp::toElem: typeid(const(iovec[])).getHash(cast(const(void*))&p.vecList_) @ ulong * * * * * * * * * * * * DotVarExp::toElem: typeid(const(iovec[])).getHash @ const nothrow @trusted ulong(const(void*) p) * * * * * * * * * * * * * SymOffExp::toElem: typeid(const(iovec[])) @ object.TypeInfo * * * * * * * * * * * * * * DtoSymbolAddress ('typeid(const(iovec[]))' of type 'object.TypeInfo_Const') * * * * * * * * * * * * * * * TypeInfoDeclaration * * * * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(const(iovec[]))) * * * * * * * * * * * * * * * * type = 'const(iovec[])' * * * * * * * * * * * * * * * * typeinfo mangle: _D41TypeInfo_xAS4core3sys5posix3sys3uio5iovec6__initZ * * * * * * * * * * * * * * * * TypeInfoConstDeclaration::llvmDefine() typeid(const(iovec[])) * * * * * * * * * * * * * * * * * DtoTypeInfoOf(type = 'const(iovec)[]', base='1') * * * * * * * * * * * * * * * * * * Type::getTypeInfo(): const(iovec)[] * * * * * * * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(const(iovec)[])) * * * * * * * * * * * * * * Casting from 'TypeInfo_Const*' to 'object.TypeInfo' * * * * * * * * * * * * * * * src: %object.TypeInfo_Const* bitcast (%"typeid(const(iovec[]))"* @_D41TypeInfo_xAS4core3sys5posix3sys3uio5iovec6__initZ to %object.TypeInfo_Const*) * * * * * * * * * * * * * * * to type: %object.TypeInfo* * * * * * * * * * * * * * vthis: %object.TypeInfo* bitcast (%"typeid(const(iovec[]))"* @_D41TypeInfo_xAS4core3sys5posix3sys3uio5iovec6__initZ to %object.TypeInfo*) * * * * * * * * * * * * * funcval: %31 = load i64 (%object.TypeInfo*, i8*)*, i64 (%object.TypeInfo*, i8*)** %"typeid(const(iovec[])).getHash@vtbl", align 8 * * * * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * * * * DtoFunctionType(const nothrow @trusted ulong(const(void*) p)) * * * * * * * * * * * * * funcval casted: %"typeid(const(iovec[])).getHash" = load i64 (%object.TypeInfo*, i8*)*, i64 (%object.TypeInfo*, i8*)** %"typeid(const(iovec[])).getHash@vtbl", align 8 * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * %object.TypeInfo* bitcast (%"typeid(const(iovec[]))"* @_D41TypeInfo_xAS4core3sys5posix3sys3uio5iovec6__initZ to %object.TypeInfo*) * * * * * * * * * * * * * Function type: const nothrow @trusted ulong(const(void*) p) * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * CastExp::toElem: cast(const(void*))&p.vecList_ @ const(void*) * * * * * * * * * * * * * * * AddrExp::toElem: &p.vecList_ @ const(iovec[])* * * * * * * * * * * * * * * * * DotVarExp::toElem: p.vecList_ @ const(iovec[]) * * * * * * * * * * * * * * * * * VarExp::toElem: p @ const(RefBuffer) * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('p' of type 'const(RefBuffer)') * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * type: const(RefBuffer) * * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.RefBuffer.vecList_: * * * * * * * * * * * * * * * * * * Value: %31 = getelementptr %msgpack.RefBuffer, %msgpack.RefBuffer* %p_arg, i32 0, i32 4 * * * * * * * * * * * * * * * * is nothing special * * * * * * * * * * * * * * * * lval: %31 = getelementptr %msgpack.RefBuffer, %msgpack.RefBuffer* %p_arg, i32 0, i32 4 * * * * * * * * * * * * * * * * Building type: const(iovec[])* * * * * * * * * * * * * * * * Casting from 'const(iovec[])*' to 'const(void*)' * * * * * * * * * * * * * * * * src: %31 = getelementptr %msgpack.RefBuffer, %msgpack.RefBuffer* %p_arg, i32 0, i32 4 * * * * * * * * * * * * * * * * to type: i8* * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %h = alloca i64, align 8 * * * * * * * * * * * rhs: %35 = add i64 %34, %33 * * * * * ReturnStatement::toIR(): * * * * * * VarExp::toElem: h @ ulong * * * * * * * DtoSymbolAddress ('h' of type 'ulong') * * * * * * * * a normal variable * * * * * * return value is '0x1318d948' * DtoDefineFunction(msgpack.__unittestL1207_6): msgpack-d/src/msgpack.d(1207) * * Ignoring unittest msgpack.__unittestL1207_6 * * No code generation for unit test declaration __unittestL1207_6 * DtoDefineFunction(msgpack.__unittestL1246_7): msgpack-d/src/msgpack.d(1246) * * Ignoring unittest msgpack.__unittestL1246_7 * * No code generation for unit test declaration __unittestL1246_7 * ClassDeclaration::codegen: 'msgpack.UnpackException' * * DtoDefineFunction(msgpack.UnpackException.this): msgpack-d/src/msgpack.d(1632) * * * Doing function body for: this * * * DtoCreateNestedContext for this * * * * DtoCreateNestedContextType for msgpack.UnpackException.this * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(1632) * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(1634) * * * * * * CallExp::toElem: super.this(message) @ msgpack.UnpackException * * * * * * * DotVarExp::toElem: super.this @ pure @trusted MessagePackException(string message) * * * * * * * * ThisExp::toElem: super @ msgpack.MessagePackException * * * * * * * * * normal this exp * * * * * * * DtoCallFunction() * * * * * * * * Building type: pure @trusted MessagePackException(string message) * * * * * * * * * DtoFunctionType(pure @trusted MessagePackException(string message)) * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: %msgpack.MessagePackException* ({ i64, i8* }) * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (1) * * * * * * * * * %2 = bitcast %msgpack.UnpackException* %1 to %msgpack.MessagePackException* * * * * * * * * Function type: pure @trusted MessagePackException(string message) * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: message @ string * * * * * * * * * * DtoSymbolAddress ('message' of type 'string') * * * * * * * * * * * function param * * * * * * * * * * * type: string * * * * * * * * repainting return value from 'msgpack.MessagePackException' to 'msgpack.UnpackException' * * * * * * * * final return value: %5 = bitcast %msgpack.MessagePackException* %4 to %msgpack.UnpackException* * * * * * ReturnStatement::toIR(): msgpack-d/src/msgpack.d(1632) * * * * * * ThisExp::toElem: this @ msgpack.UnpackException * * * * * * * this exp without var declaration * * * * * * return value is '0x1318ef78' * * Building default initializer for msgpack.UnpackException * * * Creating initializer constant for UnpackException * * * * Implicit initializer: msg @+16 * * * * * DtoConstExpInit(targetType = string, exp = null) * * * * * * NullExp::toConstElem(type=string): null * * * * Implicit initializer: file @+32 * * * * * DtoConstExpInit(targetType = string, exp = null) * * * * * * NullExp::toConstElem(type=string): null * * * * Implicit initializer: line @+48 * * * * * DtoConstExpInit(targetType = ulong, exp = 0LU) * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * value = i64 0 * * * * Implicit initializer: info @+56 * * * * * DtoConstExpInit(targetType = object.Throwable.TraceInfo, exp = null) * * * * * * NullExp::toConstElem(type=object.Throwable.TraceInfo): null * * * * Implicit initializer: next @+64 * * * * * DtoConstExpInit(targetType = object.Throwable, exp = null) * * * * * * NullExp::toConstElem(type=object.Throwable): null * * * * adding field msg * * * * adding field file * * * * adding field line * * * * adding field info * * * * adding field next * * * * final initializer: %msgpack.UnpackException_init { %msgpack.UnpackException.__vtbl* @_D7msgpack15UnpackException6__vtblZ, i8* null, { i64, i8* } zeroinitializer, { i64, i8* } zeroinitializer, i64 0, %object.Throwable.TraceInfo* null, %object.Throwable* null } * * Building vtbl initializer * * DtoDefineClassInfo(UnpackException) * * * Building ClassInfo.interfaces * * * IntegerExp::toConstElem: cast(void*)305419896LU @ void* * * * * pointer * Ignoring Dsymbol::codegen for msgpack.InternalBuffer() * StructDeclaration::codegen: 'msgpack.Unpacker' * * Resolving struct type: Unpacker (msgpack-d/src/msgpack.d(1890)) * * * Building type: Unpacker * * * * Building struct type msgpack.Unpacker @ msgpack-d/src/msgpack.d(1890) * * * * * adding default initializer for struct field buffer_ * * * * * adding default initializer for struct field used_ * * * * * adding default initializer for struct field offset_ * * * * * adding default initializer for struct field parsed_ * * * * * adding default initializer for struct field hasRaw_ * * * * * adding default initializer for struct field withFieldName_ * * * * * final struct type: %msgpack.Unpacker = type { { i64, i8* }, i64, i64, i64, i8, i8, [6 x i8] } * * Ignoring Dsymbol::codegen for msgpack.Unpacker.UnpackHandler * * VarDeclaration::codegen(): 'msgpack.Unpacker.unpackHandlers' * * * DtoResolveVariable(msgpack.Unpacker.unpackHandlers) * * * * data segment * * * * parent: Unpacker (struct) * * * * Building type: void delegate(ref Unpacker, void*) @system[TypeInfo] * * * * @_D7msgpack8Unpacker14unpackHandlersHC8TypeInfoDFKS7msgpack8UnpackerPvZv = external thread_local global i8*, align 8 * * * data segment * * * const default initializer for void delegate(ref Unpacker, void*) @system[TypeInfo] * * * DtoConstExpInit(targetType = void delegate(ref Unpacker, void*) @system[TypeInfo], exp = null) * * * * NullExp::toConstElem(type=void delegate(ref Unpacker, void*) @system[TypeInfo]): null * * * * * Building type: void delegate(ref Unpacker, void*) @system[TypeInfo] * * * @_D7msgpack8Unpacker14unpackHandlersHC8TypeInfoDFKS7msgpack8UnpackerPvZv = thread_local global i8* null, align 8 * * Ignoring Dsymbol::codegen for msgpack.Unpacker.registerHandler(T, alias Handler)() * * VarDeclaration::codegen(): 'msgpack.Unpacker.Offset' * * * DtoResolveVariable(msgpack.Unpacker.Offset) * * TemplateInstance::codegen: 'msgpack.Unpacker.InternalBuffer!()' * * * VarDeclaration::codegen(): 'msgpack.Unpacker.InternalBuffer!().buffer_' * * * * DtoResolveVariable(msgpack.Unpacker.InternalBuffer!().buffer_) * * * VarDeclaration::codegen(): 'msgpack.Unpacker.InternalBuffer!().used_' * * * * DtoResolveVariable(msgpack.Unpacker.InternalBuffer!().used_) * * * VarDeclaration::codegen(): 'msgpack.Unpacker.InternalBuffer!().offset_' * * * * DtoResolveVariable(msgpack.Unpacker.InternalBuffer!().offset_) * * * VarDeclaration::codegen(): 'msgpack.Unpacker.InternalBuffer!().parsed_' * * * * DtoResolveVariable(msgpack.Unpacker.InternalBuffer!().parsed_) * * * VarDeclaration::codegen(): 'msgpack.Unpacker.InternalBuffer!().hasRaw_' * * * * DtoResolveVariable(msgpack.Unpacker.InternalBuffer!().hasRaw_) * * * DtoDefineFunction(msgpack.Unpacker.InternalBuffer!().buffer): msgpack-d/src/msgpack.d(1750) * * * * isMember = this is: Unpacker * * * * DtoFunctionType(nothrow @property @safe ubyte[]()) * * * * * Building type: Unpacker* * * * * * x86-64 ABI: Transforming return type * * * * * x86-64 ABI: Transforming argument types * * * * * Final function type: { i64, i8* } (%msgpack.Unpacker*) * * * * DtoResolveFunction(msgpack.Unpacker.InternalBuffer!().buffer): msgpack-d/src/msgpack.d(1750) * * * * * DtoDeclareFunction(msgpack.Unpacker.InternalBuffer!().buffer): msgpack-d/src/msgpack.d(1750) * * * * * * isMember = this is: Unpacker * * * * * * DtoFunctionType(nothrow @property @safe ubyte[]()) * * * * * * func = declare { i64, i8* } @_D7msgpack8Unpacker9__mixin216bufferMFNbNdNfZAh(%msgpack.Unpacker*) * * * * Doing function body for: buffer * * * * DtoCreateNestedContext for buffer * * * * * DtoCreateNestedContextType for msgpack.Unpacker.InternalBuffer!().buffer * * * * CompoundStatement::toIR(): * * * * * ReturnStatement::toIR(): msgpack-d/src/msgpack.d(1752) * * * * * * DotVarExp::toElem: this.buffer_ @ ubyte[] * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * normal this exp * * * * * * * Indexing aggregate field msgpack.Unpacker.InternalBuffer!().buffer_: * * * * * * * * Value: %1 = getelementptr %msgpack.Unpacker, %msgpack.Unpacker* %.this_arg, i32 0, i32 0 * * * * * * return value is '0x13193a88' * * * DtoDefineFunction(msgpack.Unpacker.InternalBuffer!().feed): msgpack-d/src/msgpack.d(1757) * * * * isMember = this is: Unpacker * * * * DtoFunctionType(@safe void(const(ubyte[]) target)) * * * * * x86-64 ABI: Transforming argument types * * * * * Final function type: void (%msgpack.Unpacker*, { i64, i8* }) * * * * DtoResolveFunction(msgpack.Unpacker.InternalBuffer!().feed): msgpack-d/src/msgpack.d(1757) * * * * * DtoDeclareFunction(msgpack.Unpacker.InternalBuffer!().feed): msgpack-d/src/msgpack.d(1757) * * * * * * isMember = this is: Unpacker * * * * * * DtoFunctionType(@safe void(const(ubyte[]) target)) * * * * * * func = declare void @_D7msgpack8Unpacker9__mixin214feedMFNfxAhZv(%msgpack.Unpacker*, { i64, i8* }) * * * * Doing function body for: feed * * * * DtoCreateNestedContext for feed * * * * * DtoCreateNestedContextType for msgpack.Unpacker.InternalBuffer!().feed * * * * * * has nested frame * * * * * * Function feed has depth 0 * * * * * * Nested var 'this' of type %msgpack.Unpacker* * * * * * * frameType = %nest.feed = type { %msgpack.Unpacker* } * * * * * nested param: this * * * * CompoundStatement::toIR(): * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(1763) * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(1770) * * * * * * * DeclarationExp::toElem: @safe void expandBuffer(const(ulong) size) { if (this.used_ == this.offset_ && !this.hasRaw_) { this.used_ = (this.offset_ = 0LU); if (this.buffer_.length < size) this.buffer_.length = size; return ; } ubyte[] unparsed = this.buffer_[this.offset_..this.used_]; ulong restSize = this.buffer_.length - this.used_ + this.offset_; ulong newSize = size > restSize ? this.unparsedSize() + size : this.buffer_.length; if (this.hasRaw_) { this.hasRaw_ = false; this.buffer_ = new ubyte[](newSize); } else { this.buffer_.length = newSize; ubyte[] area = this.buffer_[0..this.unparsedSize()]; unparsed = overlap(area, unparsed) ? dup(unparsed) : unparsed; } this.buffer_[0..this.unparsedSize()] = unparsed[]; this.used_ = this.unparsedSize(); this.offset_ = 0LU; } | T=void * * * * * * * * DtoDeclarationExp: expandBuffer * * * * * * * * * FuncDeclaration * * * * * * * * * DtoDefineFunction(msgpack.Unpacker.InternalBuffer!().feed.expandBuffer): msgpack-d/src/msgpack.d(1770) * * * * * * * * * * DtoFunctionType(@safe void(const(ulong) size)) * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * Final function type: void (i8*, i64) * * * * * * * * * * DtoResolveFunction(msgpack.Unpacker.InternalBuffer!().feed.expandBuffer): msgpack-d/src/msgpack.d(1770) * * * * * * * * * * * DtoDeclareFunction(msgpack.Unpacker.InternalBuffer!().feed.expandBuffer): msgpack-d/src/msgpack.d(1770) * * * * * * * * * * * * DtoFunctionType(@safe void(const(ulong) size)) * * * * * * * * * * * * func = declare void @_D7msgpack8Unpacker9__mixin214feedMFNfxAhZ12expandBufferMFNfxmZv(i8*, i64) * * * * * * * * * * Doing function body for: expandBuffer * * * * * * * * * * DtoCreateNestedContext for expandBuffer * * * * * * * * * * * DtoCreateNestedContextType for msgpack.Unpacker.InternalBuffer!().feed.expandBuffer * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.Unpacker.InternalBuffer!().feed * * * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(1771) * * * * * * * * * * * * IfStatement::toIR(): msgpack-d/src/msgpack.d(1773) * * * * * * * * * * * * * AndAndExp::toElem: this.used_ == this.offset_ && !this.hasRaw_ @ bool * * * * * * * * * * * * * * EqualExp::toElem: this.used_ == this.offset_ @ bool * * * * * * * * * * * * * * * DotVarExp::toElem: this.used_ @ ulong * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * * * * * * * * * nested this exp * * * * * * * * * * * * * * * * * DtoNestedVariable for this @ msgpack-d/src/msgpack.d(1773) * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.Unpacker.InternalBuffer!().feed * * * * * * * * * * * * * * * * * * Context: %2 = bitcast i8* %1 to %nest.feed* * * * * * * * * * * * * * * * * * * of type: %nest.feed = type { %msgpack.Unpacker* } * * * * * * * * * * * * * * * * * * Variable: this * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * Function: expandBuffer * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * Addr: %this = getelementptr %nest.feed, %nest.feed* %2, i32 0, i32 0 * * * * * * * * * * * * * * * * * * of type: %msgpack.Unpacker** * * * * * * * * * * * * * * * * * * Was byref, now: %3 = load %msgpack.Unpacker*, %msgpack.Unpacker** %this, align 8 * * * * * * * * * * * * * * * * * * of type: %msgpack.Unpacker* * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.Unpacker.InternalBuffer!().used_: * * * * * * * * * * * * * * * * * Value: %4 = getelementptr %msgpack.Unpacker, %msgpack.Unpacker* %3, i32 0, i32 1 * * * * * * * * * * * * * * * DotVarExp::toElem: this.offset_ @ ulong * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * * * * * * * * * nested this exp * * * * * * * * * * * * * * * * * DtoNestedVariable for this @ msgpack-d/src/msgpack.d(1773) * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.Unpacker.InternalBuffer!().feed * * * * * * * * * * * * * * * * * * Context: %6 = bitcast i8* %5 to %nest.feed* * * * * * * * * * * * * * * * * * * of type: %nest.feed = type { %msgpack.Unpacker* } * * * * * * * * * * * * * * * * * * Variable: this * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * Function: expandBuffer * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * Addr: %this1 = getelementptr %nest.feed, %nest.feed* %6, i32 0, i32 0 * * * * * * * * * * * * * * * * * * of type: %msgpack.Unpacker** * * * * * * * * * * * * * * * * * * Was byref, now: %7 = load %msgpack.Unpacker*, %msgpack.Unpacker** %this1, align 8 * * * * * * * * * * * * * * * * * * of type: %msgpack.Unpacker* * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.Unpacker.InternalBuffer!().offset_: * * * * * * * * * * * * * * * * * Value: %8 = getelementptr %msgpack.Unpacker, %msgpack.Unpacker* %7, i32 0, i32 2 * * * * * * * * * * * * * * * integral or pointer or interface * * * * * * * * * * * * * * * lv: %9 = load i64, i64* %4 * * * * * * * * * * * * * * * rv: %10 = load i64, i64* %8 * * * * * * * * * * * * * * NotExp::toElem: !this.hasRaw_ @ bool * * * * * * * * * * * * * * * DotVarExp::toElem: this.hasRaw_ @ bool * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * * * * * * * * * nested this exp * * * * * * * * * * * * * * * * * DtoNestedVariable for this @ msgpack-d/src/msgpack.d(1773) * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.Unpacker.InternalBuffer!().feed * * * * * * * * * * * * * * * * * * Context: %13 = bitcast i8* %12 to %nest.feed* * * * * * * * * * * * * * * * * * * of type: %nest.feed = type { %msgpack.Unpacker* } * * * * * * * * * * * * * * * * * * Variable: this * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * Function: expandBuffer * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * Addr: %this2 = getelementptr %nest.feed, %nest.feed* %13, i32 0, i32 0 * * * * * * * * * * * * * * * * * * of type: %msgpack.Unpacker** * * * * * * * * * * * * * * * * * * Was byref, now: %14 = load %msgpack.Unpacker*, %msgpack.Unpacker** %this2, align 8 * * * * * * * * * * * * * * * * * * of type: %msgpack.Unpacker* * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.Unpacker.InternalBuffer!().hasRaw_: * * * * * * * * * * * * * * * * * Value: %15 = getelementptr %msgpack.Unpacker, %msgpack.Unpacker* %14, i32 0, i32 4 * * * * * * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(1773) * * * * * * * * * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(1773) * * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(1774) * * * * * * * * * * * * * * * * AssignExp::toElem: this.used_ = (this.offset_ = 0LU) | (ulong)(ulong = ulong) * * * * * * * * * * * * * * * * * DotVarExp::toElem: this.used_ @ ulong * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * * * * * * * * * * * nested this exp * * * * * * * * * * * * * * * * * * * DtoNestedVariable for this @ msgpack-d/src/msgpack.d(1774) * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.Unpacker.InternalBuffer!().feed * * * * * * * * * * * * * * * * * * * * Context: %20 = bitcast i8* %19 to %nest.feed* * * * * * * * * * * * * * * * * * * * * of type: %nest.feed = type { %msgpack.Unpacker* } * * * * * * * * * * * * * * * * * * * * Variable: this * * * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * * * Function: expandBuffer * * * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * * * Addr: %this3 = getelementptr %nest.feed, %nest.feed* %20, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * * of type: %msgpack.Unpacker** * * * * * * * * * * * * * * * * * * * * Was byref, now: %21 = load %msgpack.Unpacker*, %msgpack.Unpacker** %this3, align 8 * * * * * * * * * * * * * * * * * * * * of type: %msgpack.Unpacker* * * * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.Unpacker.InternalBuffer!().used_: * * * * * * * * * * * * * * * * * * * Value: %22 = getelementptr %msgpack.Unpacker, %msgpack.Unpacker* %21, i32 0, i32 1 * * * * * * * * * * * * * * * * * AssignExp::toElem: this.offset_ = 0LU | (ulong)(ulong = ulong) * * * * * * * * * * * * * * * * * * DotVarExp::toElem: this.offset_ @ ulong * * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * * * * * * * * * * * * nested this exp * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for this @ msgpack-d/src/msgpack.d(1774) * * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.Unpacker.InternalBuffer!().feed * * * * * * * * * * * * * * * * * * * * * Context: %24 = bitcast i8* %23 to %nest.feed* * * * * * * * * * * * * * * * * * * * * * of type: %nest.feed = type { %msgpack.Unpacker* } * * * * * * * * * * * * * * * * * * * * * Variable: this * * * * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * * * * Function: expandBuffer * * * * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * * * * Addr: %this4 = getelementptr %nest.feed, %nest.feed* %24, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * * * of type: %msgpack.Unpacker** * * * * * * * * * * * * * * * * * * * * * Was byref, now: %25 = load %msgpack.Unpacker*, %msgpack.Unpacker** %this4, align 8 * * * * * * * * * * * * * * * * * * * * * of type: %msgpack.Unpacker* * * * * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.Unpacker.InternalBuffer!().offset_: * * * * * * * * * * * * * * * * * * * * Value: %26 = getelementptr %msgpack.Unpacker, %msgpack.Unpacker* %25, i32 0, i32 2 * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * lhs: %26 = getelementptr %msgpack.Unpacker, %msgpack.Unpacker* %25, i32 0, i32 2 * * * * * * * * * * * * * * * * * * * rhs: i64 0 * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * lhs: %22 = getelementptr %msgpack.Unpacker, %msgpack.Unpacker* %21, i32 0, i32 1 * * * * * * * * * * * * * * * * * * rhs: %27 = load i64, i64* %26 * * * * * * * * * * * * * * * IfStatement::toIR(): msgpack-d/src/msgpack.d(1776) * * * * * * * * * * * * * * * * CmpExp::toElem: this.buffer_.length < size @ bool * * * * * * * * * * * * * * * * * ArrayLengthExp::toElem: this.buffer_.length @ ulong * * * * * * * * * * * * * * * * * * DotVarExp::toElem: this.buffer_ @ ubyte[] * * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * * * * * * * * * * * * nested this exp * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for this @ msgpack-d/src/msgpack.d(1776) * * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.Unpacker.InternalBuffer!().feed * * * * * * * * * * * * * * * * * * * * * Context: %29 = bitcast i8* %28 to %nest.feed* * * * * * * * * * * * * * * * * * * * * * of type: %nest.feed = type { %msgpack.Unpacker* } * * * * * * * * * * * * * * * * * * * * * Variable: this * * * * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * * * * Function: expandBuffer * * * * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * * * * Addr: %this5 = getelementptr %nest.feed, %nest.feed* %29, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * * * of type: %msgpack.Unpacker** * * * * * * * * * * * * * * * * * * * * * Was byref, now: %30 = load %msgpack.Unpacker*, %msgpack.Unpacker** %this5, align 8 * * * * * * * * * * * * * * * * * * * * * of type: %msgpack.Unpacker* * * * * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.Unpacker.InternalBuffer!().buffer_: * * * * * * * * * * * * * * * * * * * * Value: %31 = getelementptr %msgpack.Unpacker, %msgpack.Unpacker* %30, i32 0, i32 0 * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * VarExp::toElem: size @ ulong * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('size' of type 'const(ulong)') * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * type: const(ulong) * * * * * * * * * * * * * * * * * type 1: %.len = load i64, i64* %32 * * * * * * * * * * * * * * * * * type 2: %33 = load i64, i64* %size * * * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(1777) * * * * * * * * * * * * * * * * * AssignExp::toElem: this.buffer_.length = size | (ulong)(ulong = ulong) * * * * * * * * * * * * * * * * * * performing array.length assignment * * * * * * * * * * * * * * * * * * DotVarExp::toElem: this.buffer_ @ ubyte[] * * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * * * * * * * * * * * * nested this exp * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for this @ msgpack-d/src/msgpack.d(1777) * * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.Unpacker.InternalBuffer!().feed * * * * * * * * * * * * * * * * * * * * * Context: %36 = bitcast i8* %35 to %nest.feed* * * * * * * * * * * * * * * * * * * * * * of type: %nest.feed = type { %msgpack.Unpacker* } * * * * * * * * * * * * * * * * * * * * * Variable: this * * * * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * * * * Function: expandBuffer * * * * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * * * * Addr: %this8 = getelementptr %nest.feed, %nest.feed* %36, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * * * of type: %msgpack.Unpacker** * * * * * * * * * * * * * * * * * * * * * Was byref, now: %37 = load %msgpack.Unpacker*, %msgpack.Unpacker** %this8, align 8 * * * * * * * * * * * * * * * * * * * * * of type: %msgpack.Unpacker* * * * * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.Unpacker.InternalBuffer!().buffer_: * * * * * * * * * * * * * * * * * * * * Value: %38 = getelementptr %msgpack.Unpacker, %msgpack.Unpacker* %37, i32 0, i32 0 * * * * * * * * * * * * * * * * * * VarExp::toElem: size @ ulong * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('size' of type 'const(ulong)') * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * type: const(ulong) * * * * * * * * * * * * * * * * * * DtoResizeDynArray : ubyte[] * * * * * * * * * * * * * * * * * * * DtoTypeInfoOf(type = 'ubyte[]', base='1') * * * * * * * * * * * * * * * * * * * * Type::getTypeInfo(): ubyte[] * * * * * * * * * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(ubyte[])) * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * * * SetArray * * * * * * * * * * * * * * * ReturnStatement::toIR(): msgpack-d/src/msgpack.d(1779) * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(1783) * * * * * * * * * * * * * DeclarationExp::toElem: ubyte[] unparsed = this.buffer_[this.offset_..this.used_]; | T=void * * * * * * * * * * * * * * DtoDeclarationExp: unparsed * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = ubyte[]) * * * * * * * * * * * * * * * * llvm value for decl: %unparsed = alloca { i64, i8* }, align 8 * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * AssignExp::toElem: unparsed = this.buffer_[this.offset_..this.used_] | (ubyte[])(ubyte[] = ubyte[]) * * * * * * * * * * * * * * * * * VarExp::toElem: unparsed @ ubyte[] * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('unparsed' of type 'ubyte[]') * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * SliceExp::toElem: this.buffer_[this.offset_..this.used_] @ ubyte[] * * * * * * * * * * * * * * * * * * DotVarExp::toElem: this.buffer_ @ ubyte[] * * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * * * * * * * * * * * * nested this exp * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for this @ msgpack-d/src/msgpack.d(1783) * * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.Unpacker.InternalBuffer!().feed * * * * * * * * * * * * * * * * * * * * * Context: %36 = bitcast i8* %35 to %nest.feed* * * * * * * * * * * * * * * * * * * * * * of type: %nest.feed = type { %msgpack.Unpacker* } * * * * * * * * * * * * * * * * * * * * * Variable: this * * * * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * * * * Function: expandBuffer * * * * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * * * * Addr: %this10 = getelementptr %nest.feed, %nest.feed* %36, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * * * of type: %msgpack.Unpacker** * * * * * * * * * * * * * * * * * * * * * Was byref, now: %37 = load %msgpack.Unpacker*, %msgpack.Unpacker** %this10, align 8 * * * * * * * * * * * * * * * * * * * * * of type: %msgpack.Unpacker* * * * * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.Unpacker.InternalBuffer!().buffer_: * * * * * * * * * * * * * * * * * * * * Value: %38 = getelementptr %msgpack.Unpacker, %msgpack.Unpacker* %37, i32 0, i32 0 * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * DotVarExp::toElem: this.offset_ @ ulong * * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * * * * * * * * * * * * nested this exp * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for this @ msgpack-d/src/msgpack.d(1783) * * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.Unpacker.InternalBuffer!().feed * * * * * * * * * * * * * * * * * * * * * Context: %41 = bitcast i8* %40 to %nest.feed* * * * * * * * * * * * * * * * * * * * * * of type: %nest.feed = type { %msgpack.Unpacker* } * * * * * * * * * * * * * * * * * * * * * Variable: this * * * * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * * * * Function: expandBuffer * * * * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * * * * Addr: %this12 = getelementptr %nest.feed, %nest.feed* %41, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * * * of type: %msgpack.Unpacker** * * * * * * * * * * * * * * * * * * * * * Was byref, now: %42 = load %msgpack.Unpacker*, %msgpack.Unpacker** %this12, align 8 * * * * * * * * * * * * * * * * * * * * * of type: %msgpack.Unpacker* * * * * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.Unpacker.InternalBuffer!().offset_: * * * * * * * * * * * * * * * * * * * * Value: %43 = getelementptr %msgpack.Unpacker, %msgpack.Unpacker* %42, i32 0, i32 2 * * * * * * * * * * * * * * * * * * DotVarExp::toElem: this.used_ @ ulong * * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * * * * * * * * * * * * nested this exp * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for this @ msgpack-d/src/msgpack.d(1783) * * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.Unpacker.InternalBuffer!().feed * * * * * * * * * * * * * * * * * * * * * Context: %45 = bitcast i8* %44 to %nest.feed* * * * * * * * * * * * * * * * * * * * * * of type: %nest.feed = type { %msgpack.Unpacker* } * * * * * * * * * * * * * * * * * * * * * Variable: this * * * * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * * * * Function: expandBuffer * * * * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * * * * Addr: %this13 = getelementptr %nest.feed, %nest.feed* %45, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * * * of type: %msgpack.Unpacker** * * * * * * * * * * * * * * * * * * * * * Was byref, now: %46 = load %msgpack.Unpacker*, %msgpack.Unpacker** %this13, align 8 * * * * * * * * * * * * * * * * * * * * * of type: %msgpack.Unpacker* * * * * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.Unpacker.InternalBuffer!().used_: * * * * * * * * * * * * * * * * * * * * Value: %47 = getelementptr %msgpack.Unpacker, %msgpack.Unpacker* %46, i32 0, i32 1 * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * * SetArray * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(1784) * * * * * * * * * * * * * DeclarationExp::toElem: ulong restSize = this.buffer_.length - this.used_ + this.offset_; | T=void * * * * * * * * * * * * * * DtoDeclarationExp: restSize * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * * * * * * * * llvm value for decl: %restSize = alloca i64, align 8 * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * AssignExp::toElem: restSize = this.buffer_.length - this.used_ + this.offset_ | (ulong)(ulong = ulong) * * * * * * * * * * * * * * * * * VarExp::toElem: restSize @ ulong * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('restSize' of type 'ulong') * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * AddExp::toElem: this.buffer_.length - this.used_ + this.offset_ @ ulong * * * * * * * * * * * * * * * * * * MinExp::toElem: this.buffer_.length - this.used_ @ ulong * * * * * * * * * * * * * * * * * * * ArrayLengthExp::toElem: this.buffer_.length @ ulong * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: this.buffer_ @ ubyte[] * * * * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * * * * * * * * * * * * * * nested this exp * * * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for this @ msgpack-d/src/msgpack.d(1784) * * * * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.Unpacker.InternalBuffer!().feed * * * * * * * * * * * * * * * * * * * * * * * Context: %63 = bitcast i8* %62 to %nest.feed* * * * * * * * * * * * * * * * * * * * * * * * of type: %nest.feed = type { %msgpack.Unpacker* } * * * * * * * * * * * * * * * * * * * * * * * Variable: this * * * * * * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * * * * * * Function: expandBuffer * * * * * * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * * * * * * Addr: %this15 = getelementptr %nest.feed, %nest.feed* %63, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * * * * * of type: %msgpack.Unpacker** * * * * * * * * * * * * * * * * * * * * * * * Was byref, now: %64 = load %msgpack.Unpacker*, %msgpack.Unpacker** %this15, align 8 * * * * * * * * * * * * * * * * * * * * * * * of type: %msgpack.Unpacker* * * * * * * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.Unpacker.InternalBuffer!().buffer_: * * * * * * * * * * * * * * * * * * * * * * Value: %65 = getelementptr %msgpack.Unpacker, %msgpack.Unpacker* %64, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: this.used_ @ ulong * * * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * * * * * * * * * * * * * nested this exp * * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for this @ msgpack-d/src/msgpack.d(1784) * * * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.Unpacker.InternalBuffer!().feed * * * * * * * * * * * * * * * * * * * * * * Context: %68 = bitcast i8* %67 to %nest.feed* * * * * * * * * * * * * * * * * * * * * * * of type: %nest.feed = type { %msgpack.Unpacker* } * * * * * * * * * * * * * * * * * * * * * * Variable: this * * * * * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * * * * * Function: expandBuffer * * * * * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * * * * * Addr: %this17 = getelementptr %nest.feed, %nest.feed* %68, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * * * * of type: %msgpack.Unpacker** * * * * * * * * * * * * * * * * * * * * * * Was byref, now: %69 = load %msgpack.Unpacker*, %msgpack.Unpacker** %this17, align 8 * * * * * * * * * * * * * * * * * * * * * * of type: %msgpack.Unpacker* * * * * * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.Unpacker.InternalBuffer!().used_: * * * * * * * * * * * * * * * * * * * * * Value: %70 = getelementptr %msgpack.Unpacker, %msgpack.Unpacker* %69, i32 0, i32 1 * * * * * * * * * * * * * * * * * * DotVarExp::toElem: this.offset_ @ ulong * * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * * * * * * * * * * * * nested this exp * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for this @ msgpack-d/src/msgpack.d(1784) * * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.Unpacker.InternalBuffer!().feed * * * * * * * * * * * * * * * * * * * * * Context: %74 = bitcast i8* %73 to %nest.feed* * * * * * * * * * * * * * * * * * * * * * of type: %nest.feed = type { %msgpack.Unpacker* } * * * * * * * * * * * * * * * * * * * * * Variable: this * * * * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * * * * Function: expandBuffer * * * * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * * * * Addr: %this18 = getelementptr %nest.feed, %nest.feed* %74, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * * * of type: %msgpack.Unpacker** * * * * * * * * * * * * * * * * * * * * * Was byref, now: %75 = load %msgpack.Unpacker*, %msgpack.Unpacker** %this18, align 8 * * * * * * * * * * * * * * * * * * * * * of type: %msgpack.Unpacker* * * * * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.Unpacker.InternalBuffer!().offset_: * * * * * * * * * * * * * * * * * * * * Value: %76 = getelementptr %msgpack.Unpacker, %msgpack.Unpacker* %75, i32 0, i32 2 * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * lhs: %restSize = alloca i64, align 8 * * * * * * * * * * * * * * * * * * rhs: %78 = add i64 %72, %77 * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(1785) * * * * * * * * * * * * * DeclarationExp::toElem: ulong newSize = size > restSize ? this.unparsedSize() + size : this.buffer_.length; | T=void * * * * * * * * * * * * * * DtoDeclarationExp: newSize * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * * * * * * * * llvm value for decl: %newSize = alloca i64, align 8 * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * AssignExp::toElem: newSize = size > restSize ? this.unparsedSize() + size : this.buffer_.length | (ulong)(ulong = ulong) * * * * * * * * * * * * * * * * * VarExp::toElem: newSize @ ulong * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('newSize' of type 'ulong') * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * CondExp::toElem: size > restSize ? this.unparsedSize() + size : this.buffer_.length @ ulong * * * * * * * * * * * * * * * * * * CmpExp::toElem: size > restSize @ bool * * * * * * * * * * * * * * * * * * * VarExp::toElem: size @ ulong * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('size' of type 'const(ulong)') * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * type: const(ulong) * * * * * * * * * * * * * * * * * * * VarExp::toElem: restSize @ ulong * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('restSize' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * type 1: %79 = load i64, i64* %size * * * * * * * * * * * * * * * * * * * type 2: %80 = load i64, i64* %restSize * * * * * * * * * * * * * * * * * * AddExp::toElem: this.unparsedSize() + size @ ulong * * * * * * * * * * * * * * * * * * * CallExp::toElem: this.unparsedSize() @ ulong * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: this.unparsedSize @ const nothrow @property @safe ulong() * * * * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * * * * * * * * * * * * * * nested this exp * * * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for this @ msgpack-d/src/msgpack.d(1785) * * * * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.Unpacker.InternalBuffer!().feed * * * * * * * * * * * * * * * * * * * * * * * Context: %83 = bitcast i8* %82 to %nest.feed* * * * * * * * * * * * * * * * * * * * * * * * of type: %nest.feed = type { %msgpack.Unpacker* } * * * * * * * * * * * * * * * * * * * * * * * Variable: this * * * * * * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * * * * * * Function: expandBuffer * * * * * * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * * * * * * Addr: %this19 = getelementptr %nest.feed, %nest.feed* %83, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * * * * * of type: %msgpack.Unpacker** * * * * * * * * * * * * * * * * * * * * * * * Was byref, now: %84 = load %msgpack.Unpacker*, %msgpack.Unpacker** %this19, align 8 * * * * * * * * * * * * * * * * * * * * * * * of type: %msgpack.Unpacker* * * * * * * * * * * * * * * * * * * * * * isMember = this is: Unpacker * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(const nothrow @property @safe ulong()) * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * * * Final function type: i64 (%msgpack.Unpacker*) * * * * * * * * * * * * * * * * * * * * * DtoResolveFunction(msgpack.Unpacker.InternalBuffer!().unparsedSize): msgpack-d/src/msgpack.d(1846) * * * * * * * * * * * * * * * * * * * * * * DtoDeclareFunction(msgpack.Unpacker.InternalBuffer!().unparsedSize): msgpack-d/src/msgpack.d(1846) * * * * * * * * * * * * * * * * * * * * * * * isMember = this is: Unpacker * * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(const nothrow @property @safe ulong()) * * * * * * * * * * * * * * * * * * * * * * * func = declare i64 @_D7msgpack8Unpacker9__mixin2112unparsedSizeMxFNbNdNfZm(%msgpack.Unpacker*) * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * Building type: const nothrow @property @safe ulong() * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(const nothrow @property @safe ulong()) * * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * * * * Final function type: i64 () * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * * * * * %84 = load %msgpack.Unpacker*, %msgpack.Unpacker** %this19, align 8 * * * * * * * * * * * * * * * * * * * * * Function type: const nothrow @property @safe ulong() * * * * * * * * * * * * * * * * * * * VarExp::toElem: size @ ulong * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('size' of type 'const(ulong)') * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * type: const(ulong) * * * * * * * * * * * * * * * * * * ArrayLengthExp::toElem: this.buffer_.length @ ulong * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: this.buffer_ @ ubyte[] * * * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * * * * * * * * * * * * * nested this exp * * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for this @ msgpack-d/src/msgpack.d(1785) * * * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.Unpacker.InternalBuffer!().feed * * * * * * * * * * * * * * * * * * * * * * Context: %89 = bitcast i8* %88 to %nest.feed* * * * * * * * * * * * * * * * * * * * * * * of type: %nest.feed = type { %msgpack.Unpacker* } * * * * * * * * * * * * * * * * * * * * * * Variable: this * * * * * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * * * * * Function: expandBuffer * * * * * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * * * * * Addr: %this20 = getelementptr %nest.feed, %nest.feed* %89, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * * * * of type: %msgpack.Unpacker** * * * * * * * * * * * * * * * * * * * * * * Was byref, now: %90 = load %msgpack.Unpacker*, %msgpack.Unpacker** %this20, align 8 * * * * * * * * * * * * * * * * * * * * * * of type: %msgpack.Unpacker* * * * * * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.Unpacker.InternalBuffer!().buffer_: * * * * * * * * * * * * * * * * * * * * * Value: %91 = getelementptr %msgpack.Unpacker, %msgpack.Unpacker* %90, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * lhs: %newSize = alloca i64, align 8 * * * * * * * * * * * * * * * * * * rhs: %94 = load i64, i64* %93 * * * * * * * * * * * * IfStatement::toIR(): msgpack-d/src/msgpack.d(1787) * * * * * * * * * * * * * DotVarExp::toElem: this.hasRaw_ @ bool * * * * * * * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * * * * * * * nested this exp * * * * * * * * * * * * * * * DtoNestedVariable for this @ msgpack-d/src/msgpack.d(1787) * * * * * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.Unpacker.InternalBuffer!().feed * * * * * * * * * * * * * * * * Context: %96 = bitcast i8* %95 to %nest.feed* * * * * * * * * * * * * * * * * of type: %nest.feed = type { %msgpack.Unpacker* } * * * * * * * * * * * * * * * * Variable: this * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * Function: expandBuffer * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * Addr: %this23 = getelementptr %nest.feed, %nest.feed* %96, i32 0, i32 0 * * * * * * * * * * * * * * * * of type: %msgpack.Unpacker** * * * * * * * * * * * * * * * * Was byref, now: %97 = load %msgpack.Unpacker*, %msgpack.Unpacker** %this23, align 8 * * * * * * * * * * * * * * * * of type: %msgpack.Unpacker* * * * * * * * * * * * * * * Indexing aggregate field msgpack.Unpacker.InternalBuffer!().hasRaw_: * * * * * * * * * * * * * * * Value: %98 = getelementptr %msgpack.Unpacker, %msgpack.Unpacker* %97, i32 0, i32 4 * * * * * * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(1787) * * * * * * * * * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(1787) * * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(1788) * * * * * * * * * * * * * * * * AssignExp::toElem: this.hasRaw_ = false | (bool)(bool = bool) * * * * * * * * * * * * * * * * * DotVarExp::toElem: this.hasRaw_ @ bool * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * * * * * * * * * * * nested this exp * * * * * * * * * * * * * * * * * * * DtoNestedVariable for this @ msgpack-d/src/msgpack.d(1788) * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.Unpacker.InternalBuffer!().feed * * * * * * * * * * * * * * * * * * * * Context: %102 = bitcast i8* %101 to %nest.feed* * * * * * * * * * * * * * * * * * * * * of type: %nest.feed = type { %msgpack.Unpacker* } * * * * * * * * * * * * * * * * * * * * Variable: this * * * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * * * Function: expandBuffer * * * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * * * Addr: %this26 = getelementptr %nest.feed, %nest.feed* %102, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * * of type: %msgpack.Unpacker** * * * * * * * * * * * * * * * * * * * * Was byref, now: %103 = load %msgpack.Unpacker*, %msgpack.Unpacker** %this26, align 8 * * * * * * * * * * * * * * * * * * * * of type: %msgpack.Unpacker* * * * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.Unpacker.InternalBuffer!().hasRaw_: * * * * * * * * * * * * * * * * * * * Value: %104 = getelementptr %msgpack.Unpacker, %msgpack.Unpacker* %103, i32 0, i32 4 * * * * * * * * * * * * * * * * * IntegerExp::toElem: false @ bool * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: false @ bool * * * * * * * * * * * * * * * * * * * value = i1 false * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(1789) * * * * * * * * * * * * * * * * AssignExp::toElem: this.buffer_ = new ubyte[](newSize) | (ubyte[])(ubyte[] = ubyte[]) * * * * * * * * * * * * * * * * * DotVarExp::toElem: this.buffer_ @ ubyte[] * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * * * * * * * * * * * nested this exp * * * * * * * * * * * * * * * * * * * DtoNestedVariable for this @ msgpack-d/src/msgpack.d(1789) * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.Unpacker.InternalBuffer!().feed * * * * * * * * * * * * * * * * * * * * Context: %106 = bitcast i8* %105 to %nest.feed* * * * * * * * * * * * * * * * * * * * * of type: %nest.feed = type { %msgpack.Unpacker* } * * * * * * * * * * * * * * * * * * * * Variable: this * * * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * * * Function: expandBuffer * * * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * * * Addr: %this27 = getelementptr %nest.feed, %nest.feed* %106, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * * of type: %msgpack.Unpacker** * * * * * * * * * * * * * * * * * * * * Was byref, now: %107 = load %msgpack.Unpacker*, %msgpack.Unpacker** %this27, align 8 * * * * * * * * * * * * * * * * * * * * of type: %msgpack.Unpacker* * * * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.Unpacker.InternalBuffer!().buffer_: * * * * * * * * * * * * * * * * * * * Value: %108 = getelementptr %msgpack.Unpacker, %msgpack.Unpacker* %107, i32 0, i32 0 * * * * * * * * * * * * * * * * * NewExp::toElem: new ubyte[](newSize) @ ubyte[] * * * * * * * * * * * * * * * * * * new dynamic array: ubyte[] * * * * * * * * * * * * * * * * * * VarExp::toElem: newSize @ ulong * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('newSize' of type 'ulong') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * DtoNewDynArray : ubyte[] * * * * * * * * * * * * * * * * * * * DtoTypeInfoOf(type = 'ubyte[]', base='1') * * * * * * * * * * * * * * * * * * * * Type::getTypeInfo(): ubyte[] * * * * * * * * * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(ubyte[])) * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * * SetArray * * * * * * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(1790) * * * * * * * * * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(1790) * * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(1791) * * * * * * * * * * * * * * * * AssignExp::toElem: this.buffer_.length = newSize | (ulong)(ulong = ulong) * * * * * * * * * * * * * * * * * performing array.length assignment * * * * * * * * * * * * * * * * * DotVarExp::toElem: this.buffer_ @ ubyte[] * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * * * * * * * * * * * nested this exp * * * * * * * * * * * * * * * * * * * DtoNestedVariable for this @ msgpack-d/src/msgpack.d(1791) * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.Unpacker.InternalBuffer!().feed * * * * * * * * * * * * * * * * * * * * Context: %113 = bitcast i8* %112 to %nest.feed* * * * * * * * * * * * * * * * * * * * * of type: %nest.feed = type { %msgpack.Unpacker* } * * * * * * * * * * * * * * * * * * * * Variable: this * * * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * * * Function: expandBuffer * * * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * * * Addr: %this31 = getelementptr %nest.feed, %nest.feed* %113, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * * of type: %msgpack.Unpacker** * * * * * * * * * * * * * * * * * * * * Was byref, now: %114 = load %msgpack.Unpacker*, %msgpack.Unpacker** %this31, align 8 * * * * * * * * * * * * * * * * * * * * of type: %msgpack.Unpacker* * * * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.Unpacker.InternalBuffer!().buffer_: * * * * * * * * * * * * * * * * * * * Value: %115 = getelementptr %msgpack.Unpacker, %msgpack.Unpacker* %114, i32 0, i32 0 * * * * * * * * * * * * * * * * * VarExp::toElem: newSize @ ulong * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('newSize' of type 'ulong') * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * DtoResizeDynArray : ubyte[] * * * * * * * * * * * * * * * * * * DtoTypeInfoOf(type = 'ubyte[]', base='1') * * * * * * * * * * * * * * * * * * * Type::getTypeInfo(): ubyte[] * * * * * * * * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(ubyte[])) * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * * SetArray * * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(1794) * * * * * * * * * * * * * * * * DeclarationExp::toElem: ubyte[] area = this.buffer_[0..this.unparsedSize()]; | T=void * * * * * * * * * * * * * * * * * DtoDeclarationExp: area * * * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = ubyte[]) * * * * * * * * * * * * * * * * * * * llvm value for decl: %area = alloca { i64, i8* }, align 8 * * * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * * * AssignExp::toElem: area = this.buffer_[0..this.unparsedSize()] | (ubyte[])(ubyte[] = ubyte[]) * * * * * * * * * * * * * * * * * * * * VarExp::toElem: area @ ubyte[] * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('area' of type 'ubyte[]') * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * SliceExp::toElem: this.buffer_[0..this.unparsedSize()] @ ubyte[] * * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: this.buffer_ @ ubyte[] * * * * * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * * * * * * * * * * * * * * * nested this exp * * * * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for this @ msgpack-d/src/msgpack.d(1794) * * * * * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.Unpacker.InternalBuffer!().feed * * * * * * * * * * * * * * * * * * * * * * * * Context: %120 = bitcast i8* %119 to %nest.feed* * * * * * * * * * * * * * * * * * * * * * * * * of type: %nest.feed = type { %msgpack.Unpacker* } * * * * * * * * * * * * * * * * * * * * * * * * Variable: this * * * * * * * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * * * * * * * Function: expandBuffer * * * * * * * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * * * * * * * Addr: %this35 = getelementptr %nest.feed, %nest.feed* %120, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * * * * * * of type: %msgpack.Unpacker** * * * * * * * * * * * * * * * * * * * * * * * * Was byref, now: %121 = load %msgpack.Unpacker*, %msgpack.Unpacker** %this35, align 8 * * * * * * * * * * * * * * * * * * * * * * * * of type: %msgpack.Unpacker* * * * * * * * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.Unpacker.InternalBuffer!().buffer_: * * * * * * * * * * * * * * * * * * * * * * * Value: %122 = getelementptr %msgpack.Unpacker, %msgpack.Unpacker* %121, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * * * * * * * * * CallExp::toElem: this.unparsedSize() @ ulong * * * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: this.unparsedSize @ const nothrow @property @safe ulong() * * * * * * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * * * * * * * * * * * * * * * * nested this exp * * * * * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for this @ msgpack-d/src/msgpack.d(1794) * * * * * * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.Unpacker.InternalBuffer!().feed * * * * * * * * * * * * * * * * * * * * * * * * * Context: %125 = bitcast i8* %124 to %nest.feed* * * * * * * * * * * * * * * * * * * * * * * * * * of type: %nest.feed = type { %msgpack.Unpacker* } * * * * * * * * * * * * * * * * * * * * * * * * * Variable: this * * * * * * * * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * * * * * * * * Function: expandBuffer * * * * * * * * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * * * * * * * * Addr: %this37 = getelementptr %nest.feed, %nest.feed* %125, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * * * * * * * of type: %msgpack.Unpacker** * * * * * * * * * * * * * * * * * * * * * * * * * Was byref, now: %126 = load %msgpack.Unpacker*, %msgpack.Unpacker** %this37, align 8 * * * * * * * * * * * * * * * * * * * * * * * * * of type: %msgpack.Unpacker* * * * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * * * * * * * %126 = load %msgpack.Unpacker*, %msgpack.Unpacker** %this37, align 8 * * * * * * * * * * * * * * * * * * * * * * * Function type: const nothrow @property @safe ulong() * * * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * * * * * SetArray * * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(1795) * * * * * * * * * * * * * * * * AssignExp::toElem: unparsed = overlap(area, unparsed) ? dup(unparsed) : unparsed | (ubyte[])(ubyte[] = ubyte[]) * * * * * * * * * * * * * * * * * VarExp::toElem: unparsed @ ubyte[] * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('unparsed' of type 'ubyte[]') * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * CondExp::toElem: overlap(area, unparsed) ? dup(unparsed) : unparsed @ ubyte[] * * * * * * * * * * * * * * * * * * CallExp::toElem: overlap(area, unparsed) @ ubyte[] * * * * * * * * * * * * * * * * * * * VarExp::toElem: overlap @ pure nothrow @nogc @trusted inout(ubyte)[](inout(ubyte)[] r1, inout(ubyte)[] r2) * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('overlap' of type 'pure nothrow @nogc @trusted inout(ubyte)[](inout(ubyte)[] r1, inout(ubyte)[] r2)') * * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * Building type: pure nothrow @nogc @trusted inout(ubyte)[](inout(ubyte)[] r1, inout(ubyte)[] r2) * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted inout(ubyte)[](inout(ubyte)[] r1, inout(ubyte)[] r2)) * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * * * Final function type: { i64, i8* } ({ i64, i8* }, { i64, i8* }) * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @trusted inout(ubyte)[](inout(ubyte)[] r1, inout(ubyte)[] r2) * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: area @ ubyte[] * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('area' of type 'ubyte[]') * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: unparsed @ ubyte[] * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('unparsed' of type 'ubyte[]') * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * Casting from 'ubyte[]' to 'bool' * * * * * * * * * * * * * * * * * * * DtoCastArray * * * * * * * * * * * * * * * * * * * * from array or sarray * * * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * CallExp::toElem: dup(unparsed) @ ubyte[] * * * * * * * * * * * * * * * * * * * VarExp::toElem: dup @ pure nothrow @property @safe ubyte[](const(ubyte)[] a) * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('dup' of type 'pure nothrow @property @safe ubyte[](const(ubyte)[] a)') * * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * Building type: pure nothrow @property @safe ubyte[](const(ubyte)[] a) * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @property @safe ubyte[](const(ubyte)[] a)) * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * * * Final function type: { i64, i8* } ({ i64, i8* }) * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * * Function type: pure nothrow @property @safe ubyte[](const(ubyte)[] a) * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: unparsed @ const(ubyte)[] * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('unparsed' of type 'ubyte[]') * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * VarExp::toElem: unparsed @ ubyte[] * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('unparsed' of type 'ubyte[]') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * * SetArray * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(1798) * * * * * * * * * * * * * AssignExp::toElem: this.buffer_[0..this.unparsedSize()] = unparsed[] | (ubyte[])(ubyte[] = const(ubyte[])) * * * * * * * * * * * * * * performing static array literal assignment * * * * * * * * * * * * * * SliceExp::toElem: this.buffer_[0..this.unparsedSize()] @ ubyte[] * * * * * * * * * * * * * * * DotVarExp::toElem: this.buffer_ @ ubyte[] * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * * * * * * * * * nested this exp * * * * * * * * * * * * * * * * * DtoNestedVariable for this @ msgpack-d/src/msgpack.d(1798) * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.Unpacker.InternalBuffer!().feed * * * * * * * * * * * * * * * * * * Context: %130 = bitcast i8* %129 to %nest.feed* * * * * * * * * * * * * * * * * * * of type: %nest.feed = type { %msgpack.Unpacker* } * * * * * * * * * * * * * * * * * * Variable: this * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * Function: expandBuffer * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * Addr: %this51 = getelementptr %nest.feed, %nest.feed* %130, i32 0, i32 0 * * * * * * * * * * * * * * * * * * of type: %msgpack.Unpacker** * * * * * * * * * * * * * * * * * * Was byref, now: %131 = load %msgpack.Unpacker*, %msgpack.Unpacker** %this51, align 8 * * * * * * * * * * * * * * * * * * of type: %msgpack.Unpacker* * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.Unpacker.InternalBuffer!().buffer_: * * * * * * * * * * * * * * * * * Value: %132 = getelementptr %msgpack.Unpacker, %msgpack.Unpacker* %131, i32 0, i32 0 * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * * * CallExp::toElem: this.unparsedSize() @ ulong * * * * * * * * * * * * * * * * DotVarExp::toElem: this.unparsedSize @ const nothrow @property @safe ulong() * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * * * * * * * * * * nested this exp * * * * * * * * * * * * * * * * * * DtoNestedVariable for this @ msgpack-d/src/msgpack.d(1798) * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.Unpacker.InternalBuffer!().feed * * * * * * * * * * * * * * * * * * * Context: %135 = bitcast i8* %134 to %nest.feed* * * * * * * * * * * * * * * * * * * * of type: %nest.feed = type { %msgpack.Unpacker* } * * * * * * * * * * * * * * * * * * * Variable: this * * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * * Function: expandBuffer * * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * * Addr: %this53 = getelementptr %nest.feed, %nest.feed* %135, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * of type: %msgpack.Unpacker** * * * * * * * * * * * * * * * * * * * Was byref, now: %136 = load %msgpack.Unpacker*, %msgpack.Unpacker** %this53, align 8 * * * * * * * * * * * * * * * * * * * of type: %msgpack.Unpacker* * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * %136 = load %msgpack.Unpacker*, %msgpack.Unpacker** %this53, align 8 * * * * * * * * * * * * * * * * * Function type: const nothrow @property @safe ulong() * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * SliceExp::toElem: unparsed[] @ const(ubyte[]) * * * * * * * * * * * * * * * VarExp::toElem: unparsed @ ubyte[] * * * * * * * * * * * * * * * * DtoSymbolAddress ('unparsed' of type 'ubyte[]') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(1799) * * * * * * * * * * * * * AssignExp::toElem: this.used_ = this.unparsedSize() | (ulong)(ulong = ulong) * * * * * * * * * * * * * * DotVarExp::toElem: this.used_ @ ulong * * * * * * * * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * * * * * * * * nested this exp * * * * * * * * * * * * * * * * DtoNestedVariable for this @ msgpack-d/src/msgpack.d(1799) * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.Unpacker.InternalBuffer!().feed * * * * * * * * * * * * * * * * * Context: %159 = bitcast i8* %158 to %nest.feed* * * * * * * * * * * * * * * * * * of type: %nest.feed = type { %msgpack.Unpacker* } * * * * * * * * * * * * * * * * * Variable: this * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * Function: expandBuffer * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * Addr: %this61 = getelementptr %nest.feed, %nest.feed* %159, i32 0, i32 0 * * * * * * * * * * * * * * * * * of type: %msgpack.Unpacker** * * * * * * * * * * * * * * * * * Was byref, now: %160 = load %msgpack.Unpacker*, %msgpack.Unpacker** %this61, align 8 * * * * * * * * * * * * * * * * * of type: %msgpack.Unpacker* * * * * * * * * * * * * * * * Indexing aggregate field msgpack.Unpacker.InternalBuffer!().used_: * * * * * * * * * * * * * * * * Value: %161 = getelementptr %msgpack.Unpacker, %msgpack.Unpacker* %160, i32 0, i32 1 * * * * * * * * * * * * * * CallExp::toElem: this.unparsedSize() @ ulong * * * * * * * * * * * * * * * DotVarExp::toElem: this.unparsedSize @ const nothrow @property @safe ulong() * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * * * * * * * * * nested this exp * * * * * * * * * * * * * * * * * DtoNestedVariable for this @ msgpack-d/src/msgpack.d(1799) * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.Unpacker.InternalBuffer!().feed * * * * * * * * * * * * * * * * * * Context: %163 = bitcast i8* %162 to %nest.feed* * * * * * * * * * * * * * * * * * * of type: %nest.feed = type { %msgpack.Unpacker* } * * * * * * * * * * * * * * * * * * Variable: this * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * Function: expandBuffer * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * Addr: %this62 = getelementptr %nest.feed, %nest.feed* %163, i32 0, i32 0 * * * * * * * * * * * * * * * * * * of type: %msgpack.Unpacker** * * * * * * * * * * * * * * * * * * Was byref, now: %164 = load %msgpack.Unpacker*, %msgpack.Unpacker** %this62, align 8 * * * * * * * * * * * * * * * * * * of type: %msgpack.Unpacker* * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * %164 = load %msgpack.Unpacker*, %msgpack.Unpacker** %this62, align 8 * * * * * * * * * * * * * * * * Function type: const nothrow @property @safe ulong() * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * lhs: %161 = getelementptr %msgpack.Unpacker, %msgpack.Unpacker* %160, i32 0, i32 1 * * * * * * * * * * * * * * * rhs: %165 = call i64 @_D7msgpack8Unpacker9__mixin2112unparsedSizeMxFNbNdNfZm(%msgpack.Unpacker* %164) * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(1800) * * * * * * * * * * * * * AssignExp::toElem: this.offset_ = 0LU | (ulong)(ulong = ulong) * * * * * * * * * * * * * * DotVarExp::toElem: this.offset_ @ ulong * * * * * * * * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * * * * * * * * nested this exp * * * * * * * * * * * * * * * * DtoNestedVariable for this @ msgpack-d/src/msgpack.d(1800) * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.Unpacker.InternalBuffer!().feed * * * * * * * * * * * * * * * * * Context: %167 = bitcast i8* %166 to %nest.feed* * * * * * * * * * * * * * * * * * of type: %nest.feed = type { %msgpack.Unpacker* } * * * * * * * * * * * * * * * * * Variable: this * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * Function: expandBuffer * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * Addr: %this63 = getelementptr %nest.feed, %nest.feed* %167, i32 0, i32 0 * * * * * * * * * * * * * * * * * of type: %msgpack.Unpacker** * * * * * * * * * * * * * * * * * Was byref, now: %168 = load %msgpack.Unpacker*, %msgpack.Unpacker** %this63, align 8 * * * * * * * * * * * * * * * * * of type: %msgpack.Unpacker* * * * * * * * * * * * * * * * Indexing aggregate field msgpack.Unpacker.InternalBuffer!().offset_: * * * * * * * * * * * * * * * * Value: %169 = getelementptr %msgpack.Unpacker, %msgpack.Unpacker* %168, i32 0, i32 2 * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * lhs: %169 = getelementptr %msgpack.Unpacker, %msgpack.Unpacker* %168, i32 0, i32 2 * * * * * * * * * * * * * * * rhs: i64 0 * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(1803) * * * * * * * DeclarationExp::toElem: const const(ulong) size = target.length; | T=void * * * * * * * * DtoDeclarationExp: size * * * * * * * * * VarDeclaration * * * * * * * * * DtoVarDeclaration(vdtype = const(ulong)) * * * * * * * * * * llvm value for decl: %size = alloca i64, align 8 * * * * * * * * * * expression initializer * * * * * * * * * * AssignExp::toElem: size = target.length | (const(ulong))(const(ulong) = const(ulong)) * * * * * * * * * * * VarExp::toElem: size @ const(ulong) * * * * * * * * * * * * DtoSymbolAddress ('size' of type 'const(ulong)') * * * * * * * * * * * * * a normal variable * * * * * * * * * * * ArrayLengthExp::toElem: target.length @ const(ulong) * * * * * * * * * * * * VarExp::toElem: target @ const(ubyte[]) * * * * * * * * * * * * * DtoSymbolAddress ('target' of type 'const(ubyte[])') * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * type: const(ubyte[]) * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * lhs: %size = alloca i64, align 8 * * * * * * * * * * * * rhs: %.len = load i64, i64* %1 * * * * * * IfStatement::toIR(): msgpack-d/src/msgpack.d(1806) * * * * * * * CmpExp::toElem: this.buffer_.length - this.used_ < size @ bool * * * * * * * * MinExp::toElem: this.buffer_.length - this.used_ @ ulong * * * * * * * * * ArrayLengthExp::toElem: this.buffer_.length @ ulong * * * * * * * * * * DotVarExp::toElem: this.buffer_ @ ubyte[] * * * * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * * * * normal this exp * * * * * * * * * * * Indexing aggregate field msgpack.Unpacker.InternalBuffer!().buffer_: * * * * * * * * * * * * Value: %2 = getelementptr %msgpack.Unpacker, %msgpack.Unpacker* %.this_arg, i32 0, i32 0 * * * * * * * * * * DtoArrayLen * * * * * * * * * DotVarExp::toElem: this.used_ @ ulong * * * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * * * normal this exp * * * * * * * * * * Indexing aggregate field msgpack.Unpacker.InternalBuffer!().used_: * * * * * * * * * * * Value: %4 = getelementptr %msgpack.Unpacker, %msgpack.Unpacker* %.this_arg, i32 0, i32 1 * * * * * * * * VarExp::toElem: size @ ulong * * * * * * * * * DtoSymbolAddress ('size' of type 'const(ulong)') * * * * * * * * * * a normal variable * * * * * * * * type 1: %6 = sub i64 %.len1, %5 * * * * * * * * type 2: %7 = load i64, i64* %size * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(1807) * * * * * * * * CallExp::toElem: expandBuffer(size) @ void * * * * * * * * * VarExp::toElem: expandBuffer @ @safe void(const(ulong) size) * * * * * * * * * * DtoSymbolAddress ('expandBuffer' of type '@safe void(const(ulong) size)') * * * * * * * * * * * FuncDeclaration * * * * * * * * * DtoCallFunction() * * * * * * * * * * Building type: @safe void(const(ulong) size) * * * * * * * * * * * DtoFunctionType(@safe void(const(ulong) size)) * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * Final function type: void (i64) * * * * * * * * * * DtoNestedContext for msgpack.Unpacker.InternalBuffer!().feed.expandBuffer * * * * * * * * * * * DtoCreateNestedContextType for msgpack.Unpacker.InternalBuffer!().feed.expandBuffer * * * * * * * * * * * Parent frame is from feed * * * * * * * * * * * Current function is feed * * * * * * * * * * * Context is from feed * * * * * * * * * * * Needed depth: 0 * * * * * * * * * * * Context depth: 0 * * * * * * * * * * * Calling sibling function or directly nested function * * * * * * * * * * * result = %.frame = alloca %nest.feed, align 8 * * * * * * * * * * * of type %nest.feed* * * * * * * * * * * doing normal arguments * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * %9 = bitcast %nest.feed* %.frame to i8* * * * * * * * * * * Function type: @safe void(const(ulong) size) * * * * * * * * * * DtoArgument * * * * * * * * * * * VarExp::toElem: size @ const(ulong) * * * * * * * * * * * * DtoSymbolAddress ('size' of type 'const(ulong)') * * * * * * * * * * * * * a normal variable * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(1809) * * * * * * * AssignExp::toElem: this.buffer_[this.used_..this.used_ + size] = target[] | (ubyte[])(ubyte[] = const(ubyte[])) * * * * * * * * performing static array literal assignment * * * * * * * * SliceExp::toElem: this.buffer_[this.used_..this.used_ + size] @ ubyte[] * * * * * * * * * DotVarExp::toElem: this.buffer_ @ ubyte[] * * * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * * * normal this exp * * * * * * * * * * Indexing aggregate field msgpack.Unpacker.InternalBuffer!().buffer_: * * * * * * * * * * * Value: %11 = getelementptr %msgpack.Unpacker, %msgpack.Unpacker* %.this_arg, i32 0, i32 0 * * * * * * * * * DtoArrayPtr * * * * * * * * * DotVarExp::toElem: this.used_ @ ulong * * * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * * * normal this exp * * * * * * * * * * Indexing aggregate field msgpack.Unpacker.InternalBuffer!().used_: * * * * * * * * * * * Value: %13 = getelementptr %msgpack.Unpacker, %msgpack.Unpacker* %.this_arg, i32 0, i32 1 * * * * * * * * * AddExp::toElem: this.used_ + size @ ulong * * * * * * * * * * DotVarExp::toElem: this.used_ @ ulong * * * * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * * * * normal this exp * * * * * * * * * * * Indexing aggregate field msgpack.Unpacker.InternalBuffer!().used_: * * * * * * * * * * * * Value: %14 = getelementptr %msgpack.Unpacker, %msgpack.Unpacker* %.this_arg, i32 0, i32 1 * * * * * * * * * * VarExp::toElem: size @ ulong * * * * * * * * * * * DtoSymbolAddress ('size' of type 'const(ulong)') * * * * * * * * * * * * a normal variable * * * * * * * * * DtoArrayLen * * * * * * * * SliceExp::toElem: target[] @ const(ubyte[]) * * * * * * * * * VarExp::toElem: target @ const(ubyte[]) * * * * * * * * * * DtoSymbolAddress ('target' of type 'const(ubyte[])') * * * * * * * * * * * function param * * * * * * * * * * * type: const(ubyte[]) * * * * * * * * * DtoArrayPtr * * * * * * * * * DtoArrayLen * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * DtoAssign() * * * * * * * * * DtoArrayAssign * * * * * * * * * * DtoArrayPtr * * * * * * * * * * DtoArrayLen * * * * * * * * * * DtoArrayPtr * * * * * * * * * * DtoArrayLen * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(1810) * * * * * * * AddAssignExp::toElem: this.used_ += size @ ulong * * * * * * * * Caching l-value of this.used_ += size => this.used_ * * * * * * * * * DotVarExp::toElem: this.used_ @ ulong * * * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * * * normal this exp * * * * * * * * * * Indexing aggregate field msgpack.Unpacker.InternalBuffer!().used_: * * * * * * * * * * * Value: %26 = getelementptr %msgpack.Unpacker, %msgpack.Unpacker* %.this_arg, i32 0, i32 1 * * * * * * * * AddExp::toElem: this.used_ + size @ ulong * * * * * * * * * DotVarExp::toElem: this.used_ @ ulong * * * * * * * * * * using cached lvalue * * * * * * * * * VarExp::toElem: size @ ulong * * * * * * * * * * DtoSymbolAddress ('size' of type 'const(ulong)') * * * * * * * * * * * a normal variable * * * * * * * * DtoAssign() * * * * * * * * * lhs: %26 = getelementptr %msgpack.Unpacker, %msgpack.Unpacker* %.this_arg, i32 0, i32 1 * * * * * * * * * rhs: %29 = add i64 %27, %28 * * * DtoDefineFunction(msgpack.Unpacker.InternalBuffer!().bufferConsumed): msgpack-d/src/msgpack.d(1815) * * * * isMember = this is: Unpacker * * * * DtoFunctionType(nothrow @safe void(const(ulong) size)) * * * * * x86-64 ABI: Transforming argument types * * * * * Final function type: void (%msgpack.Unpacker*, i64) * * * * DtoResolveFunction(msgpack.Unpacker.InternalBuffer!().bufferConsumed): msgpack-d/src/msgpack.d(1815) * * * * * DtoDeclareFunction(msgpack.Unpacker.InternalBuffer!().bufferConsumed): msgpack-d/src/msgpack.d(1815) * * * * * * isMember = this is: Unpacker * * * * * * DtoFunctionType(nothrow @safe void(const(ulong) size)) * * * * * * func = declare void @_D7msgpack8Unpacker9__mixin2114bufferConsumedMFNbNfxmZv(%msgpack.Unpacker*, i64) * * * * Doing function body for: bufferConsumed * * * * DtoCreateNestedContext for bufferConsumed * * * * * DtoCreateNestedContextType for msgpack.Unpacker.InternalBuffer!().bufferConsumed * * * * CompoundStatement::toIR(): * * * * * IfStatement::toIR(): msgpack-d/src/msgpack.d(1817) * * * * * * CmpExp::toElem: this.used_ + size > this.buffer_.length @ bool * * * * * * * AddExp::toElem: this.used_ + size @ ulong * * * * * * * * DotVarExp::toElem: this.used_ @ ulong * * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * * normal this exp * * * * * * * * * Indexing aggregate field msgpack.Unpacker.InternalBuffer!().used_: * * * * * * * * * * Value: %1 = getelementptr %msgpack.Unpacker, %msgpack.Unpacker* %.this_arg, i32 0, i32 1 * * * * * * * * VarExp::toElem: size @ ulong * * * * * * * * * DtoSymbolAddress ('size' of type 'const(ulong)') * * * * * * * * * * function param * * * * * * * * * * type: const(ulong) * * * * * * * ArrayLengthExp::toElem: this.buffer_.length @ ulong * * * * * * * * DotVarExp::toElem: this.buffer_ @ ubyte[] * * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * * normal this exp * * * * * * * * * Indexing aggregate field msgpack.Unpacker.InternalBuffer!().buffer_: * * * * * * * * * * Value: %5 = getelementptr %msgpack.Unpacker, %msgpack.Unpacker* %.this_arg, i32 0, i32 0 * * * * * * * * DtoArrayLen * * * * * * * type 1: %4 = add i64 %2, %3 * * * * * * * type 2: %.len = load i64, i64* %6 * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(1818) * * * * * * * AssignExp::toElem: this.used_ = this.buffer_.length | (ulong)(ulong = ulong) * * * * * * * * DotVarExp::toElem: this.used_ @ ulong * * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * * normal this exp * * * * * * * * * Indexing aggregate field msgpack.Unpacker.InternalBuffer!().used_: * * * * * * * * * * Value: %8 = getelementptr %msgpack.Unpacker, %msgpack.Unpacker* %.this_arg, i32 0, i32 1 * * * * * * * * ArrayLengthExp::toElem: this.buffer_.length @ ulong * * * * * * * * * DotVarExp::toElem: this.buffer_ @ ubyte[] * * * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * * * normal this exp * * * * * * * * * * Indexing aggregate field msgpack.Unpacker.InternalBuffer!().buffer_: * * * * * * * * * * * Value: %9 = getelementptr %msgpack.Unpacker, %msgpack.Unpacker* %.this_arg, i32 0, i32 0 * * * * * * * * * DtoArrayLen * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * DtoAssign() * * * * * * * * * lhs: %8 = getelementptr %msgpack.Unpacker, %msgpack.Unpacker* %.this_arg, i32 0, i32 1 * * * * * * * * * rhs: %.len1 = load i64, i64* %10 * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(1820) * * * * * * * AddAssignExp::toElem: this.used_ += size @ ulong * * * * * * * * Caching l-value of this.used_ += size => this.used_ * * * * * * * * * DotVarExp::toElem: this.used_ @ ulong * * * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * * * normal this exp * * * * * * * * * * Indexing aggregate field msgpack.Unpacker.InternalBuffer!().used_: * * * * * * * * * * * Value: %11 = getelementptr %msgpack.Unpacker, %msgpack.Unpacker* %.this_arg, i32 0, i32 1 * * * * * * * * AddExp::toElem: this.used_ + size @ ulong * * * * * * * * * DotVarExp::toElem: this.used_ @ ulong * * * * * * * * * * using cached lvalue * * * * * * * * * VarExp::toElem: size @ ulong * * * * * * * * * * DtoSymbolAddress ('size' of type 'const(ulong)') * * * * * * * * * * * function param * * * * * * * * * * * type: const(ulong) * * * * * * * * DtoAssign() * * * * * * * * * lhs: %11 = getelementptr %msgpack.Unpacker, %msgpack.Unpacker* %.this_arg, i32 0, i32 1 * * * * * * * * * rhs: %14 = add i64 %12, %13 * * * DtoDefineFunction(msgpack.Unpacker.InternalBuffer!().removeUnparsed): msgpack-d/src/msgpack.d(1825) * * * * isMember = this is: Unpacker * * * * DtoFunctionType(nothrow @safe void()) * * * * * x86-64 ABI: Transforming argument types * * * * * Final function type: void (%msgpack.Unpacker*) * * * * DtoResolveFunction(msgpack.Unpacker.InternalBuffer!().removeUnparsed): msgpack-d/src/msgpack.d(1825) * * * * * DtoDeclareFunction(msgpack.Unpacker.InternalBuffer!().removeUnparsed): msgpack-d/src/msgpack.d(1825) * * * * * * isMember = this is: Unpacker * * * * * * DtoFunctionType(nothrow @safe void()) * * * * * * func = declare void @_D7msgpack8Unpacker9__mixin2114removeUnparsedMFNbNfZv(%msgpack.Unpacker*) * * * * Doing function body for: removeUnparsed * * * * DtoCreateNestedContext for removeUnparsed * * * * * DtoCreateNestedContextType for msgpack.Unpacker.InternalBuffer!().removeUnparsed * * * * CompoundStatement::toIR(): * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(1827) * * * * * * AssignExp::toElem: this.used_ = this.offset_ | (ulong)(ulong = ulong) * * * * * * * DotVarExp::toElem: this.used_ @ ulong * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * normal this exp * * * * * * * * Indexing aggregate field msgpack.Unpacker.InternalBuffer!().used_: * * * * * * * * * Value: %1 = getelementptr %msgpack.Unpacker, %msgpack.Unpacker* %.this_arg, i32 0, i32 1 * * * * * * * DotVarExp::toElem: this.offset_ @ ulong * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * normal this exp * * * * * * * * Indexing aggregate field msgpack.Unpacker.InternalBuffer!().offset_: * * * * * * * * * Value: %2 = getelementptr %msgpack.Unpacker, %msgpack.Unpacker* %.this_arg, i32 0, i32 2 * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * DtoAssign() * * * * * * * * lhs: %1 = getelementptr %msgpack.Unpacker, %msgpack.Unpacker* %.this_arg, i32 0, i32 1 * * * * * * * * rhs: %3 = load i64, i64* %2 * * * DtoDefineFunction(msgpack.Unpacker.InternalBuffer!().size): msgpack-d/src/msgpack.d(1832) * * * * isMember = this is: Unpacker * * * * DtoFunctionType(const nothrow @property @safe ulong()) * * * * * x86-64 ABI: Transforming return type * * * * * x86-64 ABI: Transforming argument types * * * * * Final function type: i64 (%msgpack.Unpacker*) * * * * DtoResolveFunction(msgpack.Unpacker.InternalBuffer!().size): msgpack-d/src/msgpack.d(1832) * * * * * DtoDeclareFunction(msgpack.Unpacker.InternalBuffer!().size): msgpack-d/src/msgpack.d(1832) * * * * * * isMember = this is: Unpacker * * * * * * DtoFunctionType(const nothrow @property @safe ulong()) * * * * * * func = declare i64 @_D7msgpack8Unpacker9__mixin214sizeMxFNbNdNfZm(%msgpack.Unpacker*) * * * * Doing function body for: size * * * * DtoCreateNestedContext for size * * * * * DtoCreateNestedContextType for msgpack.Unpacker.InternalBuffer!().size * * * * CompoundStatement::toIR(): * * * * * ReturnStatement::toIR(): msgpack-d/src/msgpack.d(1834) * * * * * * AddExp::toElem: this.parsed_ - this.offset_ + this.used_ @ ulong * * * * * * * MinExp::toElem: this.parsed_ - this.offset_ @ const(ulong) * * * * * * * * DotVarExp::toElem: this.parsed_ @ const(ulong) * * * * * * * * * ThisExp::toElem: this @ const(Unpacker) * * * * * * * * * * normal this exp * * * * * * * * * Indexing aggregate field msgpack.Unpacker.InternalBuffer!().parsed_: * * * * * * * * * * Value: %1 = getelementptr %msgpack.Unpacker, %msgpack.Unpacker* %.this_arg, i32 0, i32 3 * * * * * * * * DotVarExp::toElem: this.offset_ @ const(ulong) * * * * * * * * * ThisExp::toElem: this @ const(Unpacker) * * * * * * * * * * normal this exp * * * * * * * * * Indexing aggregate field msgpack.Unpacker.InternalBuffer!().offset_: * * * * * * * * * * Value: %2 = getelementptr %msgpack.Unpacker, %msgpack.Unpacker* %.this_arg, i32 0, i32 2 * * * * * * * DotVarExp::toElem: this.used_ @ const(ulong) * * * * * * * * ThisExp::toElem: this @ const(Unpacker) * * * * * * * * * normal this exp * * * * * * * * Indexing aggregate field msgpack.Unpacker.InternalBuffer!().used_: * * * * * * * * * Value: %6 = getelementptr %msgpack.Unpacker, %msgpack.Unpacker* %.this_arg, i32 0, i32 1 * * * * * * return value is '0x131b9470' * * * DtoDefineFunction(msgpack.Unpacker.InternalBuffer!().parsedSize): msgpack-d/src/msgpack.d(1839) * * * * isMember = this is: Unpacker * * * * DtoFunctionType(const nothrow @property @safe ulong()) * * * * * x86-64 ABI: Transforming return type * * * * * x86-64 ABI: Transforming argument types * * * * * Final function type: i64 (%msgpack.Unpacker*) * * * * DtoResolveFunction(msgpack.Unpacker.InternalBuffer!().parsedSize): msgpack-d/src/msgpack.d(1839) * * * * * DtoDeclareFunction(msgpack.Unpacker.InternalBuffer!().parsedSize): msgpack-d/src/msgpack.d(1839) * * * * * * isMember = this is: Unpacker * * * * * * DtoFunctionType(const nothrow @property @safe ulong()) * * * * * * func = declare i64 @_D7msgpack8Unpacker9__mixin2110parsedSizeMxFNbNdNfZm(%msgpack.Unpacker*) * * * * Doing function body for: parsedSize * * * * DtoCreateNestedContext for parsedSize * * * * * DtoCreateNestedContextType for msgpack.Unpacker.InternalBuffer!().parsedSize * * * * CompoundStatement::toIR(): * * * * * ReturnStatement::toIR(): msgpack-d/src/msgpack.d(1841) * * * * * * DotVarExp::toElem: this.parsed_ @ ulong * * * * * * * ThisExp::toElem: this @ const(Unpacker) * * * * * * * * normal this exp * * * * * * * Indexing aggregate field msgpack.Unpacker.InternalBuffer!().parsed_: * * * * * * * * Value: %1 = getelementptr %msgpack.Unpacker, %msgpack.Unpacker* %.this_arg, i32 0, i32 3 * * * * * * return value is '0x131baa18' * * * DtoDefineFunction(msgpack.Unpacker.InternalBuffer!().unparsedSize): msgpack-d/src/msgpack.d(1846) * * * * Doing function body for: unparsedSize * * * * DtoCreateNestedContext for unparsedSize * * * * * DtoCreateNestedContextType for msgpack.Unpacker.InternalBuffer!().unparsedSize * * * * CompoundStatement::toIR(): * * * * * ReturnStatement::toIR(): msgpack-d/src/msgpack.d(1848) * * * * * * MinExp::toElem: this.used_ - this.offset_ @ ulong * * * * * * * DotVarExp::toElem: this.used_ @ const(ulong) * * * * * * * * ThisExp::toElem: this @ const(Unpacker) * * * * * * * * * normal this exp * * * * * * * * Indexing aggregate field msgpack.Unpacker.InternalBuffer!().used_: * * * * * * * * * Value: %1 = getelementptr %msgpack.Unpacker, %msgpack.Unpacker* %.this_arg, i32 0, i32 1 * * * * * * * DotVarExp::toElem: this.offset_ @ const(ulong) * * * * * * * * ThisExp::toElem: this @ const(Unpacker) * * * * * * * * * normal this exp * * * * * * * * Indexing aggregate field msgpack.Unpacker.InternalBuffer!().offset_: * * * * * * * * * Value: %2 = getelementptr %msgpack.Unpacker, %msgpack.Unpacker* %.this_arg, i32 0, i32 2 * * * * * * return value is '0x131bb470' * * * DtoDefineFunction(msgpack.Unpacker.InternalBuffer!().initializeBuffer): msgpack-d/src/msgpack.d(1854) * * * * isMember = this is: Unpacker * * * * DtoFunctionType(nothrow @safe void(const(ubyte[]) target, const(ulong) bufferSize = 8192LU)) * * * * * x86-64 ABI: Transforming argument types * * * * * Final function type: void (%msgpack.Unpacker*, i64, { i64, i8* }) * * * * DtoResolveFunction(msgpack.Unpacker.InternalBuffer!().initializeBuffer): msgpack-d/src/msgpack.d(1854) * * * * * DtoDeclareFunction(msgpack.Unpacker.InternalBuffer!().initializeBuffer): msgpack-d/src/msgpack.d(1854) * * * * * * isMember = this is: Unpacker * * * * * * DtoFunctionType(nothrow @safe void(const(ubyte[]) target, const(ulong) bufferSize = 8192LU)) * * * * * * func = declare void @_D7msgpack8Unpacker9__mixin2116initializeBufferMFNbNfxAhxmZv(%msgpack.Unpacker*, i64, { i64, i8* }) * * * * Doing function body for: initializeBuffer * * * * DtoCreateNestedContext for initializeBuffer * * * * * DtoCreateNestedContextType for msgpack.Unpacker.InternalBuffer!().initializeBuffer * * * * CompoundStatement::toIR(): * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(1855) * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(1856) * * * * * * * DeclarationExp::toElem: const const(ulong) size = target.length; | T=void * * * * * * * * DtoDeclarationExp: size * * * * * * * * * VarDeclaration * * * * * * * * * DtoVarDeclaration(vdtype = const(ulong)) * * * * * * * * * * llvm value for decl: %size = alloca i64, align 8 * * * * * * * * * * expression initializer * * * * * * * * * * AssignExp::toElem: size = target.length | (const(ulong))(const(ulong) = const(ulong)) * * * * * * * * * * * VarExp::toElem: size @ const(ulong) * * * * * * * * * * * * DtoSymbolAddress ('size' of type 'const(ulong)') * * * * * * * * * * * * * a normal variable * * * * * * * * * * * ArrayLengthExp::toElem: target.length @ const(ulong) * * * * * * * * * * * * VarExp::toElem: target @ const(ubyte[]) * * * * * * * * * * * * * DtoSymbolAddress ('target' of type 'const(ubyte[])') * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * type: const(ubyte[]) * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * lhs: %size = alloca i64, align 8 * * * * * * * * * * * * rhs: %.len = load i64, i64* %1 * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(1858) * * * * * * * AssignExp::toElem: this.buffer_ = new ubyte[](size > bufferSize ? size : bufferSize) | (ubyte[])(ubyte[] = ubyte[]) * * * * * * * * DotVarExp::toElem: this.buffer_ @ ubyte[] * * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * * normal this exp * * * * * * * * * Indexing aggregate field msgpack.Unpacker.InternalBuffer!().buffer_: * * * * * * * * * * Value: %2 = getelementptr %msgpack.Unpacker, %msgpack.Unpacker* %.this_arg, i32 0, i32 0 * * * * * * * * NewExp::toElem: new ubyte[](size > bufferSize ? size : bufferSize) @ ubyte[] * * * * * * * * * new dynamic array: ubyte[] * * * * * * * * * CondExp::toElem: size > bufferSize ? size : bufferSize @ ulong * * * * * * * * * * CmpExp::toElem: size > bufferSize @ bool * * * * * * * * * * * VarExp::toElem: size @ const(ulong) * * * * * * * * * * * * DtoSymbolAddress ('size' of type 'const(ulong)') * * * * * * * * * * * * * a normal variable * * * * * * * * * * * VarExp::toElem: bufferSize @ const(ulong) * * * * * * * * * * * * DtoSymbolAddress ('bufferSize' of type 'const(ulong)') * * * * * * * * * * * * * function param * * * * * * * * * * * * * type: const(ulong) * * * * * * * * * * * type 1: %3 = load i64, i64* %size * * * * * * * * * * * type 2: %4 = load i64, i64* %bufferSize * * * * * * * * * * VarExp::toElem: size @ ulong * * * * * * * * * * * DtoSymbolAddress ('size' of type 'const(ulong)') * * * * * * * * * * * * a normal variable * * * * * * * * * * VarExp::toElem: bufferSize @ ulong * * * * * * * * * * * DtoSymbolAddress ('bufferSize' of type 'const(ulong)') * * * * * * * * * * * * function param * * * * * * * * * * * * type: const(ulong) * * * * * * * * * DtoNewDynArray : ubyte[] * * * * * * * * * * DtoTypeInfoOf(type = 'ubyte[]', base='1') * * * * * * * * * * * Type::getTypeInfo(): ubyte[] * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(ubyte[])) * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * DtoAssign() * * * * * * * * * DtoArrayAssign * * * * * * * * * * DtoArrayPtr * * * * * * * * * * DtoArrayLen * * * * * * * * * * SetArray * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(1859) * * * * * * * AssignExp::toElem: this.used_ = size | (ulong)(ulong = ulong) * * * * * * * * DotVarExp::toElem: this.used_ @ ulong * * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * * normal this exp * * * * * * * * * Indexing aggregate field msgpack.Unpacker.InternalBuffer!().used_: * * * * * * * * * * Value: %10 = getelementptr %msgpack.Unpacker, %msgpack.Unpacker* %.this_arg, i32 0, i32 1 * * * * * * * * VarExp::toElem: size @ ulong * * * * * * * * * DtoSymbolAddress ('size' of type 'const(ulong)') * * * * * * * * * * a normal variable * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * DtoAssign() * * * * * * * * * lhs: %10 = getelementptr %msgpack.Unpacker, %msgpack.Unpacker* %.this_arg, i32 0, i32 1 * * * * * * * * * rhs: %11 = load i64, i64* %size * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(1860) * * * * * * * AssignExp::toElem: this.buffer_[0..size] = target[] | (ubyte[])(ubyte[] = const(ubyte[])) * * * * * * * * performing static array literal assignment * * * * * * * * SliceExp::toElem: this.buffer_[0..size] @ ubyte[] * * * * * * * * * DotVarExp::toElem: this.buffer_ @ ubyte[] * * * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * * * normal this exp * * * * * * * * * * Indexing aggregate field msgpack.Unpacker.InternalBuffer!().buffer_: * * * * * * * * * * * Value: %12 = getelementptr %msgpack.Unpacker, %msgpack.Unpacker* %.this_arg, i32 0, i32 0 * * * * * * * * * DtoArrayPtr * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * value = i64 0 * * * * * * * * * VarExp::toElem: size @ ulong * * * * * * * * * * DtoSymbolAddress ('size' of type 'const(ulong)') * * * * * * * * * * * a normal variable * * * * * * * * * DtoArrayLen * * * * * * * * SliceExp::toElem: target[] @ const(ubyte[]) * * * * * * * * * VarExp::toElem: target @ const(ubyte[]) * * * * * * * * * * DtoSymbolAddress ('target' of type 'const(ubyte[])') * * * * * * * * * * * function param * * * * * * * * * * * type: const(ubyte[]) * * * * * * * * * DtoArrayPtr * * * * * * * * * DtoArrayLen * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * DtoAssign() * * * * * * * * * DtoArrayAssign * * * * * * * * * * DtoArrayPtr * * * * * * * * * * DtoArrayLen * * * * * * * * * * DtoArrayPtr * * * * * * * * * * DtoArrayLen * * VarDeclaration::codegen(): 'msgpack.Unpacker.withFieldName_' * * * DtoResolveVariable(msgpack.Unpacker.withFieldName_) * * DtoDefineFunction(msgpack.Unpacker.this): msgpack-d/src/msgpack.d(1921) * * * isMember = this is: Unpacker * * * DtoFunctionType(ref @trusted Unpacker(const(ubyte[]) target, const(ulong) bufferSize = 8192LU, bool withFieldName = false)) * * * * x86-64 ABI: Transforming argument types * * * * Final function type: %msgpack.Unpacker* (%msgpack.Unpacker*, i1, i64, { i64, i8* }) * * * DtoResolveFunction(msgpack.Unpacker.this): msgpack-d/src/msgpack.d(1921) * * * * DtoDeclareFunction(msgpack.Unpacker.this): msgpack-d/src/msgpack.d(1921) * * * * * isMember = this is: Unpacker * * * * * DtoFunctionType(ref @trusted Unpacker(const(ubyte[]) target, const(ulong) bufferSize = 8192LU, bool withFieldName = false)) * * * * * func = declare %msgpack.Unpacker* @_D7msgpack8Unpacker6__ctorMFNcNexAhxmbZS7msgpack8Unpacker(%msgpack.Unpacker*, i1, i64, { i64, i8* }) * * * Doing function body for: this * * * DtoCreateNestedContext for this * * * * DtoCreateNestedContextType for msgpack.Unpacker.this * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(1921) * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(1922) * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(1923) * * * * * * * CallExp::toElem: this.initializeBuffer(target, bufferSize) @ void * * * * * * * * DotVarExp::toElem: this.initializeBuffer @ nothrow @safe void(const(ubyte[]) target, const(ulong) bufferSize = 8192LU) * * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * * normal this exp * * * * * * * * DtoCallFunction() * * * * * * * * * Building type: nothrow @safe void(const(ubyte[]) target, const(ulong) bufferSize = 8192LU) * * * * * * * * * * DtoFunctionType(nothrow @safe void(const(ubyte[]) target, const(ulong) bufferSize = 8192LU)) * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * Final function type: void (i64, { i64, i8* }) * * * * * * * * * doing normal arguments * * * * * * * * * Arguments so far: (1) * * * * * * * * * * %msgpack.Unpacker* %.this_arg * * * * * * * * * Function type: nothrow @safe void(const(ubyte[]) target, const(ulong) bufferSize = 8192LU) * * * * * * * * * DtoArgument * * * * * * * * * * VarExp::toElem: target @ const(ubyte[]) * * * * * * * * * * * DtoSymbolAddress ('target' of type 'const(ubyte[])') * * * * * * * * * * * * function param * * * * * * * * * * * * type: const(ubyte[]) * * * * * * * * * DtoArgument * * * * * * * * * * VarExp::toElem: bufferSize @ const(ulong) * * * * * * * * * * * DtoSymbolAddress ('bufferSize' of type 'const(ulong)') * * * * * * * * * * * * function param * * * * * * * * * * * * type: const(ulong) * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(1924) * * * * * * * AssignExp::toElem: this.withFieldName_ = withFieldName | (bool)(bool = bool) * * * * * * * * DotVarExp::toElem: this.withFieldName_ @ bool * * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * * normal this exp * * * * * * * * * Indexing aggregate field msgpack.Unpacker.withFieldName_: * * * * * * * * * * Value: %4 = getelementptr %msgpack.Unpacker, %msgpack.Unpacker* %.this_arg, i32 0, i32 5 * * * * * * * * VarExp::toElem: withFieldName @ bool * * * * * * * * * DtoSymbolAddress ('withFieldName' of type 'bool') * * * * * * * * * * function param * * * * * * * * * * type: bool * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * DtoAssign() * * * * * ReturnStatement::toIR(): msgpack-d/src/msgpack.d(1921) * * * * * * AddrExp::toElem: &this @ Unpacker* * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * this exp without var declaration * * * * * * * is nothing special * * * * * * * lval: %msgpack.Unpacker* %.this_arg * * * * * * return value is '0x131bcd50' * * DtoDefineFunction(msgpack.Unpacker.clear): msgpack-d/src/msgpack.d(1932) * * * isMember = this is: Unpacker * * * DtoFunctionType(nothrow @safe void()) * * * * x86-64 ABI: Transforming argument types * * * * Final function type: void (%msgpack.Unpacker*) * * * DtoResolveFunction(msgpack.Unpacker.clear): msgpack-d/src/msgpack.d(1932) * * * * DtoDeclareFunction(msgpack.Unpacker.clear): msgpack-d/src/msgpack.d(1932) * * * * * isMember = this is: Unpacker * * * * * DtoFunctionType(nothrow @safe void()) * * * * * func = declare void @_D7msgpack8Unpacker5clearMFNbNfZv(%msgpack.Unpacker*) * * * Doing function body for: clear * * * DtoCreateNestedContext for clear * * * * DtoCreateNestedContextType for msgpack.Unpacker.clear * * * CompoundStatement::toIR(): * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(1934) * * * * * AssignExp::toElem: this.parsed_ = 0LU | (ulong)(ulong = ulong) * * * * * * DotVarExp::toElem: this.parsed_ @ ulong * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * normal this exp * * * * * * * Indexing aggregate field msgpack.Unpacker.InternalBuffer!().parsed_: * * * * * * * * Value: %1 = getelementptr %msgpack.Unpacker, %msgpack.Unpacker* %.this_arg, i32 0, i32 3 * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * value = i64 0 * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * DtoAssign() * * * * * * * lhs: %1 = getelementptr %msgpack.Unpacker, %msgpack.Unpacker* %.this_arg, i32 0, i32 3 * * * * * * * rhs: i64 0 * * Ignoring Dsymbol::codegen for msgpack.Unpacker.unpack(T)(ref T value) if (is(Unqual!T == bool)) * * Ignoring Dsymbol::codegen for msgpack.Unpacker.unpack(T)(ref T value) if (isUnsigned!T && !is(Unqual!T == enum)) * * Ignoring Dsymbol::codegen for msgpack.Unpacker.unpack(T)(ref T value) if (isSigned!T && isIntegral!T && !is(Unqual!T == enum)) * * Ignoring Dsymbol::codegen for msgpack.Unpacker.unpack(T)(ref T value) if (isFloatingPoint!T && !is(Unqual!T == enum)) * * Ignoring Dsymbol::codegen for msgpack.Unpacker.unpack(T)(ref T value) if (is(Unqual!T == enum)) * * Ignoring Dsymbol::codegen for msgpack.Unpacker.unpack(T)(T value) if (isPointer!T) * * Ignoring Dsymbol::codegen for msgpack.Unpacker.unpack(Types...)(ref Types objects) if (Types.length > 1) * * Ignoring Dsymbol::codegen for msgpack.Unpacker.unpack(T)(ref T array) if (isArray!T && !is(Unqual!T == enum)) * * Ignoring Dsymbol::codegen for msgpack.Unpacker.unpack(T)(ref T array) if (isAssociativeArray!T) * * Ignoring Dsymbol::codegen for msgpack.Unpacker.unpack(T, Args...)(ref T object, auto ref Args args) if (is(Unqual!T == class)) * * Ignoring Dsymbol::codegen for msgpack.Unpacker.unpack(T)(ref T object) if (is(Unqual!T == struct)) * * Ignoring Dsymbol::codegen for msgpack.Unpacker.unpackArray(Types...)(ref Types objects) * * Ignoring Dsymbol::codegen for msgpack.Unpacker.unpackMap(Types...)(ref Types objects) * * DtoDefineFunction(msgpack.Unpacker.beginArray): msgpack-d/src/msgpack.d(2552) * * * isMember = this is: Unpacker * * * DtoFunctionType(@safe ulong()) * * * * x86-64 ABI: Transforming return type * * * * x86-64 ABI: Transforming argument types * * * * Final function type: i64 (%msgpack.Unpacker*) * * * DtoResolveFunction(msgpack.Unpacker.beginArray): msgpack-d/src/msgpack.d(2552) * * * * DtoDeclareFunction(msgpack.Unpacker.beginArray): msgpack-d/src/msgpack.d(2552) * * * * * isMember = this is: Unpacker * * * * * DtoFunctionType(@safe ulong()) * * * * * func = declare i64 @_D7msgpack8Unpacker10beginArrayMFNfZm(%msgpack.Unpacker*) * * * Doing function body for: beginArray * * * DtoCreateNestedContext for beginArray * * * * DtoCreateNestedContextType for msgpack.Unpacker.beginArray * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(2553) * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(2554) * * * * * * CallExp::toElem: this.canRead(1LU, 0LU) @ void * * * * * * * DotVarExp::toElem: this.canRead @ @safe void(const(ulong) size, const(ulong) offset = 1LU) * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * normal this exp * * * * * * * * isMember = this is: Unpacker * * * * * * * * DtoFunctionType(@safe void(const(ulong) size, const(ulong) offset = 1LU)) * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * Final function type: void (%msgpack.Unpacker*, i64, i64) * * * * * * * * DtoResolveFunction(msgpack.Unpacker.canRead): msgpack-d/src/msgpack.d(2721) * * * * * * * * * DtoDeclareFunction(msgpack.Unpacker.canRead): msgpack-d/src/msgpack.d(2721) * * * * * * * * * * isMember = this is: Unpacker * * * * * * * * * * DtoFunctionType(@safe void(const(ulong) size, const(ulong) offset = 1LU)) * * * * * * * * * * func = declare void @_D7msgpack8Unpacker7canReadMFNfxmxmZv(%msgpack.Unpacker*, i64, i64) * * * * * * * DtoCallFunction() * * * * * * * * Building type: @safe void(const(ulong) size, const(ulong) offset = 1LU) * * * * * * * * * DtoFunctionType(@safe void(const(ulong) size, const(ulong) offset = 1LU)) * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: void (i64, i64) * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (1) * * * * * * * * * %msgpack.Unpacker* %.this_arg * * * * * * * * Function type: @safe void(const(ulong) size, const(ulong) offset = 1LU) * * * * * * * * DtoArgument * * * * * * * * * IntegerExp::toElem: 1LU @ const(ulong) * * * * * * * * * * IntegerExp::toConstElem: 1LU @ const(ulong) * * * * * * * * * * * value = i64 1 * * * * * * * * DtoArgument * * * * * * * * * IntegerExp::toElem: 0LU @ const(ulong) * * * * * * * * * * IntegerExp::toConstElem: 0LU @ const(ulong) * * * * * * * * * * * value = i64 0 * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(2555) * * * * * * DeclarationExp::toElem: const const(ubyte) header = this.read(); | T=void * * * * * * * DtoDeclarationExp: header * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = const(ubyte)) * * * * * * * * * llvm value for decl: %header = alloca i8, align 1 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: header = this.read() | (const(ubyte))(const(ubyte) = const(ubyte)) * * * * * * * * * * VarExp::toElem: header @ const(ubyte) * * * * * * * * * * * DtoSymbolAddress ('header' of type 'const(ubyte)') * * * * * * * * * * * * a normal variable * * * * * * * * * * CallExp::toElem: this.read() @ const(ubyte) * * * * * * * * * * * DotVarExp::toElem: this.read @ nothrow @safe ubyte() * * * * * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * isMember = this is: Unpacker * * * * * * * * * * * * DtoFunctionType(nothrow @safe ubyte()) * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * Final function type: i8 (%msgpack.Unpacker*) * * * * * * * * * * * * DtoResolveFunction(msgpack.Unpacker.read): msgpack-d/src/msgpack.d(2736) * * * * * * * * * * * * * DtoDeclareFunction(msgpack.Unpacker.read): msgpack-d/src/msgpack.d(2736) * * * * * * * * * * * * * * isMember = this is: Unpacker * * * * * * * * * * * * * * DtoFunctionType(nothrow @safe ubyte()) * * * * * * * * * * * * * * func = declare i8 @_D7msgpack8Unpacker4readMFNbNfZh(%msgpack.Unpacker*) * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * Building type: nothrow @safe ubyte() * * * * * * * * * * * * * DtoFunctionType(nothrow @safe ubyte()) * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * Final function type: i8 () * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * %msgpack.Unpacker* %.this_arg * * * * * * * * * * * * Function type: nothrow @safe ubyte() * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %header = alloca i8, align 1 * * * * * * * * * * * rhs: %1 = call zeroext i8 @_D7msgpack8Unpacker4readMFNbNfZh(%msgpack.Unpacker* %.this_arg) * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(2556) * * * * * * DeclarationExp::toElem: ulong length = 0LU; | T=void * * * * * * * DtoDeclarationExp: length * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * llvm value for decl: %length = alloca i64, align 8 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: length = 0LU | (ulong)(ulong = ulong) * * * * * * * * * * VarExp::toElem: length @ ulong * * * * * * * * * * * DtoSymbolAddress ('length' of type 'ulong') * * * * * * * * * * * * a normal variable * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * value = i64 0 * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %length = alloca i64, align 8 * * * * * * * * * * * rhs: i64 0 * * * * * IfStatement::toIR(): msgpack-d/src/msgpack.d(2558) * * * * * * AndAndExp::toElem: 144 <= cast(int)header && cast(int)header <= 159 @ bool * * * * * * * CmpExp::toElem: 144 <= cast(int)header @ bool * * * * * * * * IntegerExp::toElem: 144 @ int * * * * * * * * * IntegerExp::toConstElem: 144 @ int * * * * * * * * * * value = i32 144 * * * * * * * * CastExp::toElem: cast(int)header @ int * * * * * * * * * VarExp::toElem: header @ const(ubyte) * * * * * * * * * * DtoSymbolAddress ('header' of type 'const(ubyte)') * * * * * * * * * * * a normal variable * * * * * * * * * Casting from 'const(ubyte)' to 'int' * * * * * * * * * * cast to: i32 * * * * * * * * type 1: i32 144 * * * * * * * * type 2: %3 = zext i8 %2 to i32 * * * * * * * CmpExp::toElem: cast(int)header <= 159 @ bool * * * * * * * * CastExp::toElem: cast(int)header @ int * * * * * * * * * VarExp::toElem: header @ const(ubyte) * * * * * * * * * * DtoSymbolAddress ('header' of type 'const(ubyte)') * * * * * * * * * * * a normal variable * * * * * * * * * Casting from 'const(ubyte)' to 'int' * * * * * * * * * * cast to: i32 * * * * * * * * IntegerExp::toElem: 159 @ int * * * * * * * * * IntegerExp::toConstElem: 159 @ int * * * * * * * * * * value = i32 159 * * * * * * * * type 1: %6 = zext i8 %5 to i32 * * * * * * * * type 2: i32 159 * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(2558) * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(2559) * * * * * * * * AssignExp::toElem: length = cast(ulong)(cast(int)header & 15) | (ulong)(ulong = ulong) * * * * * * * * * VarExp::toElem: length @ ulong * * * * * * * * * * DtoSymbolAddress ('length' of type 'ulong') * * * * * * * * * * * a normal variable * * * * * * * * * CastExp::toElem: cast(ulong)(cast(int)header & 15) @ ulong * * * * * * * * * * AndExp::toElem: cast(int)header & 15 @ int * * * * * * * * * * * CastExp::toElem: cast(int)header @ int * * * * * * * * * * * * VarExp::toElem: header @ const(ubyte) * * * * * * * * * * * * * DtoSymbolAddress ('header' of type 'const(ubyte)') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * Casting from 'const(ubyte)' to 'int' * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * IntegerExp::toElem: 15 @ int * * * * * * * * * * * * IntegerExp::toConstElem: 15 @ int * * * * * * * * * * * * * value = i32 15 * * * * * * * * * * Casting from 'int' to 'ulong' * * * * * * * * * * * cast to: i64 * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * DtoAssign() * * * * * * * * * * lhs: %length = alloca i64, align 8 * * * * * * * * * * rhs: %11 = sext i32 %10 to i64 * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(2560) * * * * * * * SwitchStatement::toIR(): msgpack-d/src/msgpack.d(2561) * * * * * * * * has default * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(2561) * * * * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(2561) * * * * * * * * * * CaseStatement::toIR(): msgpack-d/src/msgpack.d(2562) * * * * * * * * * * * IntegerExp::toConstElem: 220 @ int * * * * * * * * * * * * value = i32 220 * * * * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(2562) * * * * * * * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(2562) * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(2563) * * * * * * * * * * * * * * CallExp::toElem: this.canRead(2LU, 1LU) @ void * * * * * * * * * * * * * * * DotVarExp::toElem: this.canRead @ @safe void(const(ulong) size, const(ulong) offset = 1LU) * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * %msgpack.Unpacker* %.this_arg * * * * * * * * * * * * * * * * Function type: @safe void(const(ulong) size, const(ulong) offset = 1LU) * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * IntegerExp::toElem: 2LU @ const(ulong) * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 2LU @ const(ulong) * * * * * * * * * * * * * * * * * * * value = i64 2 * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ const(ulong) * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ const(ulong) * * * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(2564) * * * * * * * * * * * * * * AssignExp::toElem: length = load16To(this.read(2LU)) | (ulong)(ulong = ulong) * * * * * * * * * * * * * * * VarExp::toElem: length @ ulong * * * * * * * * * * * * * * * * DtoSymbolAddress ('length' of type 'ulong') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * CallExp::toElem: load16To(this.read(2LU)) @ ulong * * * * * * * * * * * * * * * * VarExp::toElem: load16To @ pure nothrow @nogc @trusted ulong(ubyte[] buffer) * * * * * * * * * * * * * * * * * DtoSymbolAddress ('load16To' of type 'pure nothrow @nogc @trusted ulong(ubyte[] buffer)') * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted ulong(ubyte[] buffer)) * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * Final function type: i64 ({ i64, i8* }) * * * * * * * * * * * * * * * * * * DtoResolveFunction(msgpack.load16To!ulong.load16To): msgpack-d/src/msgpack.d(5177) * * * * * * * * * * * * * * * * * * * DtoDeclareFunction(msgpack.load16To!ulong.load16To): msgpack-d/src/msgpack.d(5177) * * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted ulong(ubyte[] buffer)) * * * * * * * * * * * * * * * * * * * * func = declare i64 @_D7msgpack15__T8load16ToTmZ8load16ToFNaNbNiNeAhZm({ i64, i8* }) * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * Building type: pure nothrow @nogc @trusted ulong(ubyte[] buffer) * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted ulong(ubyte[] buffer)) * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * Final function type: i64 ({ i64, i8* }) * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @trusted ulong(ubyte[] buffer) * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * CallExp::toElem: this.read(2LU) @ ubyte[] * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: this.read @ nothrow @safe ubyte[](const(ulong) size) * * * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * * * * * isMember = this is: Unpacker * * * * * * * * * * * * * * * * * * * * DtoFunctionType(nothrow @safe ubyte[](const(ulong) size)) * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * * Final function type: { i64, i8* } (%msgpack.Unpacker*, i64) * * * * * * * * * * * * * * * * * * * * DtoResolveFunction(msgpack.Unpacker.read): msgpack-d/src/msgpack.d(2746) * * * * * * * * * * * * * * * * * * * * * DtoDeclareFunction(msgpack.Unpacker.read): msgpack-d/src/msgpack.d(2746) * * * * * * * * * * * * * * * * * * * * * * isMember = this is: Unpacker * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(nothrow @safe ubyte[](const(ulong) size)) * * * * * * * * * * * * * * * * * * * * * * func = declare { i64, i8* } @_D7msgpack8Unpacker4readMFNbNfxmZAh(%msgpack.Unpacker*, i64) * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * Building type: nothrow @safe ubyte[](const(ulong) size) * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(nothrow @safe ubyte[](const(ulong) size)) * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * * * Final function type: { i64, i8* } (i64) * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * * * * %msgpack.Unpacker* %.this_arg * * * * * * * * * * * * * * * * * * * * Function type: nothrow @safe ubyte[](const(ulong) size) * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 2LU @ const(ulong) * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 2LU @ const(ulong) * * * * * * * * * * * * * * * * * * * * * * * value = i64 2 * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * lhs: %length = alloca i64, align 8 * * * * * * * * * * * * * * * * rhs: %13 = call i64 @_D7msgpack15__T8load16ToTmZ8load16ToFNaNbNiNeAhZm({ i64, i8* } %12) * * * * * * * * * * * * * BreakStatement::toIR(): msgpack-d/src/msgpack.d(2565) * * * * * * * * * * CaseStatement::toIR(): msgpack-d/src/msgpack.d(2566) * * * * * * * * * * * IntegerExp::toConstElem: 221 @ int * * * * * * * * * * * * value = i32 221 * * * * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(2566) * * * * * * * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(2566) * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(2567) * * * * * * * * * * * * * * CallExp::toElem: this.canRead(4LU, 1LU) @ void * * * * * * * * * * * * * * * DotVarExp::toElem: this.canRead @ @safe void(const(ulong) size, const(ulong) offset = 1LU) * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * %msgpack.Unpacker* %.this_arg * * * * * * * * * * * * * * * * Function type: @safe void(const(ulong) size, const(ulong) offset = 1LU) * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * IntegerExp::toElem: 4LU @ const(ulong) * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 4LU @ const(ulong) * * * * * * * * * * * * * * * * * * * value = i64 4 * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ const(ulong) * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ const(ulong) * * * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(2568) * * * * * * * * * * * * * * AssignExp::toElem: length = load32To(this.read(4LU)) | (ulong)(ulong = ulong) * * * * * * * * * * * * * * * VarExp::toElem: length @ ulong * * * * * * * * * * * * * * * * DtoSymbolAddress ('length' of type 'ulong') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * CallExp::toElem: load32To(this.read(4LU)) @ ulong * * * * * * * * * * * * * * * * VarExp::toElem: load32To @ pure nothrow @nogc @trusted ulong(ubyte[] buffer) * * * * * * * * * * * * * * * * * DtoSymbolAddress ('load32To' of type 'pure nothrow @nogc @trusted ulong(ubyte[] buffer)') * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted ulong(ubyte[] buffer)) * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * Final function type: i64 ({ i64, i8* }) * * * * * * * * * * * * * * * * * * DtoResolveFunction(msgpack.load32To!ulong.load32To): msgpack-d/src/msgpack.d(5184) * * * * * * * * * * * * * * * * * * * DtoDeclareFunction(msgpack.load32To!ulong.load32To): msgpack-d/src/msgpack.d(5184) * * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted ulong(ubyte[] buffer)) * * * * * * * * * * * * * * * * * * * * func = declare i64 @_D7msgpack15__T8load32ToTmZ8load32ToFNaNbNiNeAhZm({ i64, i8* }) * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * Building type: pure nothrow @nogc @trusted ulong(ubyte[] buffer) * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted ulong(ubyte[] buffer)) * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * Final function type: i64 ({ i64, i8* }) * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @trusted ulong(ubyte[] buffer) * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * CallExp::toElem: this.read(4LU) @ ubyte[] * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: this.read @ nothrow @safe ubyte[](const(ulong) size) * * * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * * * * %msgpack.Unpacker* %.this_arg * * * * * * * * * * * * * * * * * * * * Function type: nothrow @safe ubyte[](const(ulong) size) * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 4LU @ const(ulong) * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 4LU @ const(ulong) * * * * * * * * * * * * * * * * * * * * * * * value = i64 4 * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * lhs: %length = alloca i64, align 8 * * * * * * * * * * * * * * * * rhs: %15 = call i64 @_D7msgpack15__T8load32ToTmZ8load32ToFNaNbNiNeAhZm({ i64, i8* } %14) * * * * * * * * * * * * * BreakStatement::toIR(): msgpack-d/src/msgpack.d(2569) * * * * * * * * * * CaseStatement::toIR(): msgpack-d/src/msgpack.d(2570) * * * * * * * * * * * IntegerExp::toConstElem: 192 @ int * * * * * * * * * * * * value = i32 192 * * * * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(2570) * * * * * * * * * * * * BreakStatement::toIR(): msgpack-d/src/msgpack.d(2571) * * * * * * * * * * DefaultStatement::toIR(): msgpack-d/src/msgpack.d(2572) * * * * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(2572) * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(2573) * * * * * * * * * * * * * CallExp::toElem: this.rollback(0LU) @ void * * * * * * * * * * * * * * DotVarExp::toElem: this.rollback @ @safe void(const(ulong) size = 0LU) * * * * * * * * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * isMember = this is: Unpacker * * * * * * * * * * * * * * * DtoFunctionType(@safe void(const(ulong) size = 0LU)) * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * Final function type: void (%msgpack.Unpacker*, i64) * * * * * * * * * * * * * * * DtoResolveFunction(msgpack.Unpacker.rollback): msgpack-d/src/msgpack.d(2760) * * * * * * * * * * * * * * * * DtoDeclareFunction(msgpack.Unpacker.rollback): msgpack-d/src/msgpack.d(2760) * * * * * * * * * * * * * * * * * isMember = this is: Unpacker * * * * * * * * * * * * * * * * * DtoFunctionType(@safe void(const(ulong) size = 0LU)) * * * * * * * * * * * * * * * * * func = declare void @_D7msgpack8Unpacker8rollbackMFNfxmZv(%msgpack.Unpacker*, i64) * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * Building type: @safe void(const(ulong) size = 0LU) * * * * * * * * * * * * * * * * DtoFunctionType(@safe void(const(ulong) size = 0LU)) * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * Final function type: void (i64) * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * %msgpack.Unpacker* %.this_arg * * * * * * * * * * * * * * * Function type: @safe void(const(ulong) size = 0LU) * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ const(ulong) * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ const(ulong) * * * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * CastExp::toElem: cast(int)header @ int * * * * * * * * * VarExp::toElem: header @ const(ubyte) * * * * * * * * * * DtoSymbolAddress ('header' of type 'const(ubyte)') * * * * * * * * * * * a normal variable * * * * * * * * * Casting from 'const(ubyte)' to 'int' * * * * * * * * * * cast to: i32 * * * * * ReturnStatement::toIR(): msgpack-d/src/msgpack.d(2577) * * * * * * VarExp::toElem: length @ ulong * * * * * * * DtoSymbolAddress ('length' of type 'ulong') * * * * * * * * a normal variable * * * * * * return value is '0x131dd308' * * DtoDefineFunction(msgpack.Unpacker.beginMap): msgpack-d/src/msgpack.d(2583) * * * isMember = this is: Unpacker * * * DtoFunctionType(@safe ulong()) * * * * x86-64 ABI: Transforming return type * * * * x86-64 ABI: Transforming argument types * * * * Final function type: i64 (%msgpack.Unpacker*) * * * DtoResolveFunction(msgpack.Unpacker.beginMap): msgpack-d/src/msgpack.d(2583) * * * * DtoDeclareFunction(msgpack.Unpacker.beginMap): msgpack-d/src/msgpack.d(2583) * * * * * isMember = this is: Unpacker * * * * * DtoFunctionType(@safe ulong()) * * * * * func = declare i64 @_D7msgpack8Unpacker8beginMapMFNfZm(%msgpack.Unpacker*) * * * Doing function body for: beginMap * * * DtoCreateNestedContext for beginMap * * * * DtoCreateNestedContextType for msgpack.Unpacker.beginMap * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(2584) * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(2585) * * * * * * CallExp::toElem: this.canRead(1LU, 0LU) @ void * * * * * * * DotVarExp::toElem: this.canRead @ @safe void(const(ulong) size, const(ulong) offset = 1LU) * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * normal this exp * * * * * * * DtoCallFunction() * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (1) * * * * * * * * * %msgpack.Unpacker* %.this_arg * * * * * * * * Function type: @safe void(const(ulong) size, const(ulong) offset = 1LU) * * * * * * * * DtoArgument * * * * * * * * * IntegerExp::toElem: 1LU @ const(ulong) * * * * * * * * * * IntegerExp::toConstElem: 1LU @ const(ulong) * * * * * * * * * * * value = i64 1 * * * * * * * * DtoArgument * * * * * * * * * IntegerExp::toElem: 0LU @ const(ulong) * * * * * * * * * * IntegerExp::toConstElem: 0LU @ const(ulong) * * * * * * * * * * * value = i64 0 * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(2586) * * * * * * DeclarationExp::toElem: const const(ubyte) header = this.read(); | T=void * * * * * * * DtoDeclarationExp: header * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = const(ubyte)) * * * * * * * * * llvm value for decl: %header = alloca i8, align 1 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: header = this.read() | (const(ubyte))(const(ubyte) = const(ubyte)) * * * * * * * * * * VarExp::toElem: header @ const(ubyte) * * * * * * * * * * * DtoSymbolAddress ('header' of type 'const(ubyte)') * * * * * * * * * * * * a normal variable * * * * * * * * * * CallExp::toElem: this.read() @ const(ubyte) * * * * * * * * * * * DotVarExp::toElem: this.read @ nothrow @safe ubyte() * * * * * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * * * * * normal this exp * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * %msgpack.Unpacker* %.this_arg * * * * * * * * * * * * Function type: nothrow @safe ubyte() * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %header = alloca i8, align 1 * * * * * * * * * * * rhs: %1 = call zeroext i8 @_D7msgpack8Unpacker4readMFNbNfZh(%msgpack.Unpacker* %.this_arg) * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(2587) * * * * * * DeclarationExp::toElem: ulong length = 0LU; | T=void * * * * * * * DtoDeclarationExp: length * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * llvm value for decl: %length = alloca i64, align 8 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: length = 0LU | (ulong)(ulong = ulong) * * * * * * * * * * VarExp::toElem: length @ ulong * * * * * * * * * * * DtoSymbolAddress ('length' of type 'ulong') * * * * * * * * * * * * a normal variable * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * value = i64 0 * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %length = alloca i64, align 8 * * * * * * * * * * * rhs: i64 0 * * * * * IfStatement::toIR(): msgpack-d/src/msgpack.d(2589) * * * * * * AndAndExp::toElem: 128 <= cast(int)header && cast(int)header <= 143 @ bool * * * * * * * CmpExp::toElem: 128 <= cast(int)header @ bool * * * * * * * * IntegerExp::toElem: 128 @ int * * * * * * * * * IntegerExp::toConstElem: 128 @ int * * * * * * * * * * value = i32 128 * * * * * * * * CastExp::toElem: cast(int)header @ int * * * * * * * * * VarExp::toElem: header @ const(ubyte) * * * * * * * * * * DtoSymbolAddress ('header' of type 'const(ubyte)') * * * * * * * * * * * a normal variable * * * * * * * * * Casting from 'const(ubyte)' to 'int' * * * * * * * * * * cast to: i32 * * * * * * * * type 1: i32 128 * * * * * * * * type 2: %3 = zext i8 %2 to i32 * * * * * * * CmpExp::toElem: cast(int)header <= 143 @ bool * * * * * * * * CastExp::toElem: cast(int)header @ int * * * * * * * * * VarExp::toElem: header @ const(ubyte) * * * * * * * * * * DtoSymbolAddress ('header' of type 'const(ubyte)') * * * * * * * * * * * a normal variable * * * * * * * * * Casting from 'const(ubyte)' to 'int' * * * * * * * * * * cast to: i32 * * * * * * * * IntegerExp::toElem: 143 @ int * * * * * * * * * IntegerExp::toConstElem: 143 @ int * * * * * * * * * * value = i32 143 * * * * * * * * type 1: %6 = zext i8 %5 to i32 * * * * * * * * type 2: i32 143 * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(2589) * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(2590) * * * * * * * * AssignExp::toElem: length = cast(ulong)(cast(int)header & 15) | (ulong)(ulong = ulong) * * * * * * * * * VarExp::toElem: length @ ulong * * * * * * * * * * DtoSymbolAddress ('length' of type 'ulong') * * * * * * * * * * * a normal variable * * * * * * * * * CastExp::toElem: cast(ulong)(cast(int)header & 15) @ ulong * * * * * * * * * * AndExp::toElem: cast(int)header & 15 @ int * * * * * * * * * * * CastExp::toElem: cast(int)header @ int * * * * * * * * * * * * VarExp::toElem: header @ const(ubyte) * * * * * * * * * * * * * DtoSymbolAddress ('header' of type 'const(ubyte)') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * Casting from 'const(ubyte)' to 'int' * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * IntegerExp::toElem: 15 @ int * * * * * * * * * * * * IntegerExp::toConstElem: 15 @ int * * * * * * * * * * * * * value = i32 15 * * * * * * * * * * Casting from 'int' to 'ulong' * * * * * * * * * * * cast to: i64 * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * DtoAssign() * * * * * * * * * * lhs: %length = alloca i64, align 8 * * * * * * * * * * rhs: %11 = sext i32 %10 to i64 * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(2591) * * * * * * * SwitchStatement::toIR(): msgpack-d/src/msgpack.d(2592) * * * * * * * * has default * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(2592) * * * * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(2592) * * * * * * * * * * CaseStatement::toIR(): msgpack-d/src/msgpack.d(2593) * * * * * * * * * * * IntegerExp::toConstElem: 222 @ int * * * * * * * * * * * * value = i32 222 * * * * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(2593) * * * * * * * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(2593) * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(2594) * * * * * * * * * * * * * * CallExp::toElem: this.canRead(2LU, 1LU) @ void * * * * * * * * * * * * * * * DotVarExp::toElem: this.canRead @ @safe void(const(ulong) size, const(ulong) offset = 1LU) * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * %msgpack.Unpacker* %.this_arg * * * * * * * * * * * * * * * * Function type: @safe void(const(ulong) size, const(ulong) offset = 1LU) * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * IntegerExp::toElem: 2LU @ const(ulong) * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 2LU @ const(ulong) * * * * * * * * * * * * * * * * * * * value = i64 2 * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ const(ulong) * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ const(ulong) * * * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(2595) * * * * * * * * * * * * * * AssignExp::toElem: length = load16To(this.read(2LU)) | (ulong)(ulong = ulong) * * * * * * * * * * * * * * * VarExp::toElem: length @ ulong * * * * * * * * * * * * * * * * DtoSymbolAddress ('length' of type 'ulong') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * CallExp::toElem: load16To(this.read(2LU)) @ ulong * * * * * * * * * * * * * * * * VarExp::toElem: load16To @ pure nothrow @nogc @trusted ulong(ubyte[] buffer) * * * * * * * * * * * * * * * * * DtoSymbolAddress ('load16To' of type 'pure nothrow @nogc @trusted ulong(ubyte[] buffer)') * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @trusted ulong(ubyte[] buffer) * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * CallExp::toElem: this.read(2LU) @ ubyte[] * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: this.read @ nothrow @safe ubyte[](const(ulong) size) * * * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * * * * %msgpack.Unpacker* %.this_arg * * * * * * * * * * * * * * * * * * * * Function type: nothrow @safe ubyte[](const(ulong) size) * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 2LU @ const(ulong) * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 2LU @ const(ulong) * * * * * * * * * * * * * * * * * * * * * * * value = i64 2 * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * lhs: %length = alloca i64, align 8 * * * * * * * * * * * * * * * * rhs: %13 = call i64 @_D7msgpack15__T8load16ToTmZ8load16ToFNaNbNiNeAhZm({ i64, i8* } %12) * * * * * * * * * * * * * BreakStatement::toIR(): msgpack-d/src/msgpack.d(2596) * * * * * * * * * * CaseStatement::toIR(): msgpack-d/src/msgpack.d(2597) * * * * * * * * * * * IntegerExp::toConstElem: 223 @ int * * * * * * * * * * * * value = i32 223 * * * * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(2597) * * * * * * * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(2597) * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(2598) * * * * * * * * * * * * * * CallExp::toElem: this.canRead(4LU, 1LU) @ void * * * * * * * * * * * * * * * DotVarExp::toElem: this.canRead @ @safe void(const(ulong) size, const(ulong) offset = 1LU) * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * %msgpack.Unpacker* %.this_arg * * * * * * * * * * * * * * * * Function type: @safe void(const(ulong) size, const(ulong) offset = 1LU) * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * IntegerExp::toElem: 4LU @ const(ulong) * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 4LU @ const(ulong) * * * * * * * * * * * * * * * * * * * value = i64 4 * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ const(ulong) * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ const(ulong) * * * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(2599) * * * * * * * * * * * * * * AssignExp::toElem: length = load32To(this.read(4LU)) | (ulong)(ulong = ulong) * * * * * * * * * * * * * * * VarExp::toElem: length @ ulong * * * * * * * * * * * * * * * * DtoSymbolAddress ('length' of type 'ulong') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * CallExp::toElem: load32To(this.read(4LU)) @ ulong * * * * * * * * * * * * * * * * VarExp::toElem: load32To @ pure nothrow @nogc @trusted ulong(ubyte[] buffer) * * * * * * * * * * * * * * * * * DtoSymbolAddress ('load32To' of type 'pure nothrow @nogc @trusted ulong(ubyte[] buffer)') * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @trusted ulong(ubyte[] buffer) * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * CallExp::toElem: this.read(4LU) @ ubyte[] * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: this.read @ nothrow @safe ubyte[](const(ulong) size) * * * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * * * * %msgpack.Unpacker* %.this_arg * * * * * * * * * * * * * * * * * * * * Function type: nothrow @safe ubyte[](const(ulong) size) * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 4LU @ const(ulong) * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 4LU @ const(ulong) * * * * * * * * * * * * * * * * * * * * * * * value = i64 4 * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * lhs: %length = alloca i64, align 8 * * * * * * * * * * * * * * * * rhs: %15 = call i64 @_D7msgpack15__T8load32ToTmZ8load32ToFNaNbNiNeAhZm({ i64, i8* } %14) * * * * * * * * * * * * * BreakStatement::toIR(): msgpack-d/src/msgpack.d(2600) * * * * * * * * * * CaseStatement::toIR(): msgpack-d/src/msgpack.d(2601) * * * * * * * * * * * IntegerExp::toConstElem: 192 @ int * * * * * * * * * * * * value = i32 192 * * * * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(2601) * * * * * * * * * * * * BreakStatement::toIR(): msgpack-d/src/msgpack.d(2602) * * * * * * * * * * DefaultStatement::toIR(): msgpack-d/src/msgpack.d(2603) * * * * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(2603) * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(2604) * * * * * * * * * * * * * CallExp::toElem: this.rollback(0LU) @ void * * * * * * * * * * * * * * DotVarExp::toElem: this.rollback @ @safe void(const(ulong) size = 0LU) * * * * * * * * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * %msgpack.Unpacker* %.this_arg * * * * * * * * * * * * * * * Function type: @safe void(const(ulong) size = 0LU) * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ const(ulong) * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ const(ulong) * * * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * CastExp::toElem: cast(int)header @ int * * * * * * * * * VarExp::toElem: header @ const(ubyte) * * * * * * * * * * DtoSymbolAddress ('header' of type 'const(ubyte)') * * * * * * * * * * * a normal variable * * * * * * * * * Casting from 'const(ubyte)' to 'int' * * * * * * * * * * cast to: i32 * * * * * ReturnStatement::toIR(): msgpack-d/src/msgpack.d(2608) * * * * * * VarExp::toElem: length @ ulong * * * * * * * DtoSymbolAddress ('length' of type 'ulong') * * * * * * * * a normal variable * * * * * * return value is '0x131e8f28' * * Ignoring Dsymbol::codegen for msgpack.Unpacker.scan(Types...)(scope int delegate(ref Types) dg) * * Ignoring Dsymbol::codegen for msgpack.Unpacker.opApply(Types...)(scope int delegate(ref Types) dg) * * Ignoring Dsymbol::codegen for msgpack.Unpacker.unpackNil(T)(ref T value) * * DtoDefineFunction(msgpack.Unpacker.checkNil): msgpack-d/src/msgpack.d(2690) * * * isMember = this is: Unpacker * * * DtoFunctionType(@safe bool()) * * * * x86-64 ABI: Transforming return type * * * * x86-64 ABI: Transforming argument types * * * * Final function type: i1 (%msgpack.Unpacker*) * * * DtoResolveFunction(msgpack.Unpacker.checkNil): msgpack-d/src/msgpack.d(2690) * * * * DtoDeclareFunction(msgpack.Unpacker.checkNil): msgpack-d/src/msgpack.d(2690) * * * * * isMember = this is: Unpacker * * * * * DtoFunctionType(@safe bool()) * * * * * func = declare i1 @_D7msgpack8Unpacker8checkNilMFNfZb(%msgpack.Unpacker*) * * * Doing function body for: checkNil * * * DtoCreateNestedContext for checkNil * * * * DtoCreateNestedContextType for msgpack.Unpacker.checkNil * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(2691) * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(2692) * * * * * * CallExp::toElem: this.canRead(1LU, 0LU) @ void * * * * * * * DotVarExp::toElem: this.canRead @ @safe void(const(ulong) size, const(ulong) offset = 1LU) * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * normal this exp * * * * * * * DtoCallFunction() * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (1) * * * * * * * * * %msgpack.Unpacker* %.this_arg * * * * * * * * Function type: @safe void(const(ulong) size, const(ulong) offset = 1LU) * * * * * * * * DtoArgument * * * * * * * * * IntegerExp::toElem: 1LU @ const(ulong) * * * * * * * * * * IntegerExp::toConstElem: 1LU @ const(ulong) * * * * * * * * * * * value = i64 1 * * * * * * * * DtoArgument * * * * * * * * * IntegerExp::toElem: 0LU @ const(ulong) * * * * * * * * * * IntegerExp::toConstElem: 0LU @ const(ulong) * * * * * * * * * * * value = i64 0 * * * * * ReturnStatement::toIR(): msgpack-d/src/msgpack.d(2694) * * * * * * EqualExp::toElem: cast(int)this.buffer_[this.offset_] == 192 @ bool * * * * * * * CastExp::toElem: cast(int)this.buffer_[this.offset_] @ int * * * * * * * * IndexExp::toElem: this.buffer_[this.offset_] @ ubyte * * * * * * * * * DotVarExp::toElem: this.buffer_ @ ubyte[] * * * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * * * normal this exp * * * * * * * * * * Indexing aggregate field msgpack.Unpacker.InternalBuffer!().buffer_: * * * * * * * * * * * Value: %1 = getelementptr %msgpack.Unpacker, %msgpack.Unpacker* %.this_arg, i32 0, i32 0 * * * * * * * * * DotVarExp::toElem: this.offset_ @ ulong * * * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * * * normal this exp * * * * * * * * * * Indexing aggregate field msgpack.Unpacker.InternalBuffer!().offset_: * * * * * * * * * * * Value: %2 = getelementptr %msgpack.Unpacker, %msgpack.Unpacker* %.this_arg, i32 0, i32 2 * * * * * * * * * DtoArrayLen * * * * * * * * * DtoArrayPtr * * * * * * * * Casting from 'ubyte' to 'int' * * * * * * * * * cast to: i32 * * * * * * * IntegerExp::toElem: 192 @ int * * * * * * * * IntegerExp::toConstElem: 192 @ int * * * * * * * * * value = i32 192 * * * * * * * integral or pointer or interface * * * * * * * lv: %9 = zext i8 %8 to i32 * * * * * * * rv: i32 192 * * * * * * return value is '0x131ec4b0' * * Ignoring Dsymbol::codegen for msgpack.Unpacker.calculateSize(bool rawType = false)(in size_t length) * * DtoDefineFunction(msgpack.Unpacker.canRead): msgpack-d/src/msgpack.d(2721) * * * Doing function body for: canRead * * * DtoCreateNestedContext for canRead * * * * DtoCreateNestedContextType for msgpack.Unpacker.canRead * * * CompoundStatement::toIR(): * * * * IfStatement::toIR(): msgpack-d/src/msgpack.d(2723) * * * * * CmpExp::toElem: this.used_ - this.offset_ < size @ bool * * * * * * MinExp::toElem: this.used_ - this.offset_ @ ulong * * * * * * * DotVarExp::toElem: this.used_ @ ulong * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * normal this exp * * * * * * * * Indexing aggregate field msgpack.Unpacker.InternalBuffer!().used_: * * * * * * * * * Value: %1 = getelementptr %msgpack.Unpacker, %msgpack.Unpacker* %.this_arg, i32 0, i32 1 * * * * * * * DotVarExp::toElem: this.offset_ @ ulong * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * normal this exp * * * * * * * * Indexing aggregate field msgpack.Unpacker.InternalBuffer!().offset_: * * * * * * * * * Value: %2 = getelementptr %msgpack.Unpacker, %msgpack.Unpacker* %.this_arg, i32 0, i32 2 * * * * * * VarExp::toElem: size @ ulong * * * * * * * DtoSymbolAddress ('size' of type 'const(ulong)') * * * * * * * * function param * * * * * * * * type: const(ulong) * * * * * * type 1: %5 = sub i64 %3, %4 * * * * * * type 2: %6 = load i64, i64* %size * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(2723) * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(2723) * * * * * * * IfStatement::toIR(): msgpack-d/src/msgpack.d(2724) * * * * * * * * VarExp::toElem: offset @ const(ulong) * * * * * * * * * DtoSymbolAddress ('offset' of type 'const(ulong)') * * * * * * * * * * function param * * * * * * * * * * type: const(ulong) * * * * * * * * if conditional: %8 = load i64, i64* %offset * * * * * * * * Casting from 'const(ulong)' to 'bool' * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(2725) * * * * * * * * * MinAssignExp::toElem: this.offset_ -= offset @ ulong * * * * * * * * * * Caching l-value of this.offset_ -= offset => this.offset_ * * * * * * * * * * * DotVarExp::toElem: this.offset_ @ ulong * * * * * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * Indexing aggregate field msgpack.Unpacker.InternalBuffer!().offset_: * * * * * * * * * * * * * Value: %11 = getelementptr %msgpack.Unpacker, %msgpack.Unpacker* %.this_arg, i32 0, i32 2 * * * * * * * * * * MinExp::toElem: this.offset_ - offset @ ulong * * * * * * * * * * * DotVarExp::toElem: this.offset_ @ ulong * * * * * * * * * * * * using cached lvalue * * * * * * * * * * * VarExp::toElem: offset @ ulong * * * * * * * * * * * * DtoSymbolAddress ('offset' of type 'const(ulong)') * * * * * * * * * * * * * function param * * * * * * * * * * * * * type: const(ulong) * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %11 = getelementptr %msgpack.Unpacker, %msgpack.Unpacker* %.this_arg, i32 0, i32 2 * * * * * * * * * * * rhs: %14 = sub i64 %12, %13 * * * * * * * ThrowStatement::toIR(): msgpack-d/src/msgpack.d(2727) * * * * * * * * NewExp::toElem: new UnpackException("Insufficient buffer") @ msgpack.UnpackException * * * * * * * * * new class * * * * * * * * * Calling constructor * * * * * * * * * DtoCallFunction() * * * * * * * * * * doing normal arguments * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * %.newclass_gc = bitcast %object.Object* %.newclass_gc_alloc to %msgpack.UnpackException* * * * * * * * * * * Function type: @trusted UnpackException(string message) * * * * * * * * * * DtoArgument * * * * * * * * * * * StringExp::toElem: "Insufficient buffer" @ string * * * * * * * * * * * * type: [20 x i8] * * * * * * * * * * * * init: [20 x i8] c"Insufficient buffer\00" * * DtoDefineFunction(msgpack.Unpacker.read): msgpack-d/src/msgpack.d(2736) * * * Doing function body for: read * * * DtoCreateNestedContext for read * * * * DtoCreateNestedContextType for msgpack.Unpacker.read * * * CompoundStatement::toIR(): * * * * ReturnStatement::toIR(): msgpack-d/src/msgpack.d(2738) * * * * * IndexExp::toElem: this.buffer_[this.offset_++] @ ubyte * * * * * * DotVarExp::toElem: this.buffer_ @ ubyte[] * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * normal this exp * * * * * * * Indexing aggregate field msgpack.Unpacker.InternalBuffer!().buffer_: * * * * * * * * Value: %1 = getelementptr %msgpack.Unpacker, %msgpack.Unpacker* %.this_arg, i32 0, i32 0 * * * * * * PostExp::toElem: this.offset_++ @ ulong * * * * * * * DotVarExp::toElem: this.offset_ @ ulong * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * normal this exp * * * * * * * * Indexing aggregate field msgpack.Unpacker.InternalBuffer!().offset_: * * * * * * * * * Value: %2 = getelementptr %msgpack.Unpacker, %msgpack.Unpacker* %.this_arg, i32 0, i32 2 * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * value = i64 1 * * * * * * DtoArrayLen * * * * * * DtoArrayPtr * * * * * return value is '0x131f0b88' * * DtoDefineFunction(msgpack.Unpacker.read): msgpack-d/src/msgpack.d(2746) * * * Doing function body for: read * * * DtoCreateNestedContext for read * * * * DtoCreateNestedContextType for msgpack.Unpacker.read * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(2747) * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(2748) * * * * * * DeclarationExp::toElem: ubyte[] result = this.buffer_[this.offset_..this.offset_ + size]; | T=void * * * * * * * DtoDeclarationExp: result * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = ubyte[]) * * * * * * * * * llvm value for decl: %result = alloca { i64, i8* }, align 8 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: result = this.buffer_[this.offset_..this.offset_ + size] | (ubyte[])(ubyte[] = ubyte[]) * * * * * * * * * * VarExp::toElem: result @ ubyte[] * * * * * * * * * * * DtoSymbolAddress ('result' of type 'ubyte[]') * * * * * * * * * * * * a normal variable * * * * * * * * * * SliceExp::toElem: this.buffer_[this.offset_..this.offset_ + size] @ ubyte[] * * * * * * * * * * * DotVarExp::toElem: this.buffer_ @ ubyte[] * * * * * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * Indexing aggregate field msgpack.Unpacker.InternalBuffer!().buffer_: * * * * * * * * * * * * * Value: %1 = getelementptr %msgpack.Unpacker, %msgpack.Unpacker* %.this_arg, i32 0, i32 0 * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * DotVarExp::toElem: this.offset_ @ ulong * * * * * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * Indexing aggregate field msgpack.Unpacker.InternalBuffer!().offset_: * * * * * * * * * * * * * Value: %3 = getelementptr %msgpack.Unpacker, %msgpack.Unpacker* %.this_arg, i32 0, i32 2 * * * * * * * * * * * AddExp::toElem: this.offset_ + size @ ulong * * * * * * * * * * * * DotVarExp::toElem: this.offset_ @ ulong * * * * * * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * Indexing aggregate field msgpack.Unpacker.InternalBuffer!().offset_: * * * * * * * * * * * * * * Value: %4 = getelementptr %msgpack.Unpacker, %msgpack.Unpacker* %.this_arg, i32 0, i32 2 * * * * * * * * * * * * VarExp::toElem: size @ ulong * * * * * * * * * * * * * DtoSymbolAddress ('size' of type 'const(ulong)') * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * type: const(ulong) * * * * * * * * * * * DtoArrayLen * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * DtoAssign() * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * SetArray * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(2750) * * * * * * AddAssignExp::toElem: this.offset_ += size @ ulong * * * * * * * Caching l-value of this.offset_ += size => this.offset_ * * * * * * * * DotVarExp::toElem: this.offset_ @ ulong * * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * * normal this exp * * * * * * * * * Indexing aggregate field msgpack.Unpacker.InternalBuffer!().offset_: * * * * * * * * * * Value: %14 = getelementptr %msgpack.Unpacker, %msgpack.Unpacker* %.this_arg, i32 0, i32 2 * * * * * * * AddExp::toElem: this.offset_ + size @ ulong * * * * * * * * DotVarExp::toElem: this.offset_ @ ulong * * * * * * * * * using cached lvalue * * * * * * * * VarExp::toElem: size @ ulong * * * * * * * * * DtoSymbolAddress ('size' of type 'const(ulong)') * * * * * * * * * * function param * * * * * * * * * * type: const(ulong) * * * * * * * DtoAssign() * * * * * * * * lhs: %14 = getelementptr %msgpack.Unpacker, %msgpack.Unpacker* %.this_arg, i32 0, i32 2 * * * * * * * * rhs: %17 = add i64 %15, %16 * * * * * ReturnStatement::toIR(): msgpack-d/src/msgpack.d(2752) * * * * * * VarExp::toElem: result @ ubyte[] * * * * * * * DtoSymbolAddress ('result' of type 'ubyte[]') * * * * * * * * a normal variable * * * * * * return value is '0x131f3468' * * DtoDefineFunction(msgpack.Unpacker.rollback): msgpack-d/src/msgpack.d(2760) * * * Doing function body for: rollback * * * DtoCreateNestedContext for rollback * * * * DtoCreateNestedContextType for msgpack.Unpacker.rollback * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(2761) * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(2762) * * * * * * MinAssignExp::toElem: this.offset_ -= size + 1LU @ ulong * * * * * * * Caching l-value of this.offset_ -= size + 1LU => this.offset_ * * * * * * * * DotVarExp::toElem: this.offset_ @ ulong * * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * * normal this exp * * * * * * * * * Indexing aggregate field msgpack.Unpacker.InternalBuffer!().offset_: * * * * * * * * * * Value: %1 = getelementptr %msgpack.Unpacker, %msgpack.Unpacker* %.this_arg, i32 0, i32 2 * * * * * * * MinExp::toElem: this.offset_ - (size + 1LU) @ ulong * * * * * * * * DotVarExp::toElem: this.offset_ @ ulong * * * * * * * * * using cached lvalue * * * * * * * * AddExp::toElem: size + 1LU @ ulong * * * * * * * * * VarExp::toElem: size @ ulong * * * * * * * * * * DtoSymbolAddress ('size' of type 'const(ulong)') * * * * * * * * * * * function param * * * * * * * * * * * type: const(ulong) * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * value = i64 1 * * * * * * * DtoAssign() * * * * * * * * lhs: %1 = getelementptr %msgpack.Unpacker, %msgpack.Unpacker* %.this_arg, i32 0, i32 2 * * * * * * * * rhs: %5 = sub i64 %4, %3 * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(2763) * * * * * * CallExp::toElem: onInvalidType() @ void * * * * * * * VarExp::toElem: onInvalidType @ pure @safe void() * * * * * * * * DtoSymbolAddress ('onInvalidType' of type 'pure @safe void()') * * * * * * * * * FuncDeclaration * * * * * * * * * DtoFunctionType(pure @safe void()) * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: void () * * * * * * * * * DtoResolveFunction(msgpack.onInvalidType): msgpack-d/src/msgpack.d(4637) * * * * * * * * * * DtoDeclareFunction(msgpack.onInvalidType): msgpack-d/src/msgpack.d(4637) * * * * * * * * * * * DtoFunctionType(pure @safe void()) * * * * * * * * * * * func = declare void @_D7msgpack13onInvalidTypeFNaNfZv() * * * * * * * DtoCallFunction() * * * * * * * * Building type: pure @safe void() * * * * * * * * * DtoFunctionType(pure @safe void()) * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: void () * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (0) * * * * * * * * Function type: pure @safe void() * * Building default initializer for msgpack.Unpacker * * * Creating initializer constant for Unpacker * * * * Implicit initializer: buffer_ @+0 * * * * * DtoConstExpInit(targetType = ubyte[], exp = null) * * * * * * NullExp::toConstElem(type=ubyte[]): null * * * * Implicit initializer: used_ @+16 * * * * * DtoConstExpInit(targetType = ulong, exp = 0LU) * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * value = i64 0 * * * * Implicit initializer: offset_ @+24 * * * * * DtoConstExpInit(targetType = ulong, exp = 0LU) * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * value = i64 0 * * * * Implicit initializer: parsed_ @+32 * * * * * DtoConstExpInit(targetType = ulong, exp = 0LU) * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * value = i64 0 * * * * Implicit initializer: hasRaw_ @+40 * * * * * DtoConstExpInit(targetType = bool, exp = false) * * * * * * IntegerExp::toConstElem: false @ bool * * * * * * * value = i1 false * * * * * * Fixing up unresolved implicit integer conversion. * * * * Implicit initializer: withFieldName_ @+41 * * * * * DtoConstExpInit(targetType = bool, exp = false) * * * * * * IntegerExp::toConstElem: false @ bool * * * * * * * value = i1 false * * * * * * Fixing up unresolved implicit integer conversion. * * * * adding field buffer_ * * * * adding field used_ * * * * adding field offset_ * * * * adding field parsed_ * * * * adding field hasRaw_ * * * * adding field withFieldName_ * * * * final initializer: %msgpack.Unpacker_init zeroinitializer * * DtoTypeInfoOf(type = 'Unpacker', base='1') * * * Type::getTypeInfo(): Unpacker * * * * TypeInfoDeclaration::codegen(typeid(Unpacker)) * * * * * type = 'Unpacker' * * * * * typeinfo mangle: _D27TypeInfo_S7msgpack8Unpacker6__initZ * * * * * TypeInfoStructDeclaration::llvmDefine() typeid(Unpacker) * * * * * * DtoFunctionType(nothrow @trusted ulong(ref const(Unpacker) p)) * * * * * * * Building type: const(Unpacker)* * * * * * * * x86-64 ABI: Transforming return type * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * Final function type: i64 (%msgpack.Unpacker*) * * * * * * DtoResolveFunction(msgpack.Unpacker.__xtoHash): * * * * * * * DtoDeclareFunction(msgpack.Unpacker.__xtoHash): * * * * * * * * DtoFunctionType(nothrow @trusted ulong(ref const(Unpacker) p)) * * * * * * * * func = declare i64 @_D7msgpack8Unpacker9__xtoHashFNbNeKxS7msgpack8UnpackerZm(%msgpack.Unpacker*) * * * * * * DtoFunctionType(bool(ref const(Unpacker) p, ref const(Unpacker) q)) * * * * * * * x86-64 ABI: Transforming return type * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * Final function type: i1 (%msgpack.Unpacker*, %msgpack.Unpacker*) * * * * * * DtoResolveFunction(msgpack.Unpacker.__xopEquals): * * * * * * * DtoDeclareFunction(msgpack.Unpacker.__xopEquals): * * * * * * * * DtoFunctionType(bool(ref const(Unpacker) p, ref const(Unpacker) q)) * * * * * * * * func = declare i1 @_D7msgpack8Unpacker11__xopEqualsFKxS7msgpack8UnpackerKxS7msgpack8UnpackerZb(%msgpack.Unpacker*, %msgpack.Unpacker*) * * * * * * IntegerExp::toConstElem: cast(void*)305419896LU @ void* * * * * * * * pointer * * * TypeInfoDeclaration::codegen(typeid(Unpacker)) * * DtoDefineFunction(msgpack.Unpacker.__xopEquals): * * * Doing function body for: __xopEquals * * * DtoCreateNestedContext for __xopEquals * * * * DtoCreateNestedContextType for msgpack.Unpacker.__xopEquals * * * CompoundStatement::toIR(): * * * * ReturnStatement::toIR(): * * * * * AndAndExp::toElem: p.buffer_ == q.buffer_ && p.used_ == q.used_ && p.offset_ == q.offset_ && p.parsed_ == q.parsed_ && cast(int)p.hasRaw_ == cast(int)q.hasRaw_ && cast(int)p.withFieldName_ == cast(int)q.withFieldName_ @ bool * * * * * * AndAndExp::toElem: p.buffer_ == q.buffer_ && p.used_ == q.used_ && p.offset_ == q.offset_ && p.parsed_ == q.parsed_ && cast(int)p.hasRaw_ == cast(int)q.hasRaw_ @ bool * * * * * * * AndAndExp::toElem: p.buffer_ == q.buffer_ && p.used_ == q.used_ && p.offset_ == q.offset_ && p.parsed_ == q.parsed_ @ bool * * * * * * * * AndAndExp::toElem: p.buffer_ == q.buffer_ && p.used_ == q.used_ && p.offset_ == q.offset_ @ bool * * * * * * * * * AndAndExp::toElem: p.buffer_ == q.buffer_ && p.used_ == q.used_ @ bool * * * * * * * * * * EqualExp::toElem: p.buffer_ == q.buffer_ @ bool * * * * * * * * * * * DotVarExp::toElem: p.buffer_ @ const(ubyte[]) * * * * * * * * * * * * VarExp::toElem: p @ const(Unpacker) * * * * * * * * * * * * * DtoSymbolAddress ('p' of type 'const(Unpacker)') * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * type: const(Unpacker) * * * * * * * * * * * * Indexing aggregate field msgpack.Unpacker.InternalBuffer!().buffer_: * * * * * * * * * * * * * Value: %1 = getelementptr %msgpack.Unpacker, %msgpack.Unpacker* %p_arg, i32 0, i32 0 * * * * * * * * * * * DotVarExp::toElem: q.buffer_ @ const(ubyte[]) * * * * * * * * * * * * VarExp::toElem: q @ const(Unpacker) * * * * * * * * * * * * * DtoSymbolAddress ('q' of type 'const(Unpacker)') * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * type: const(Unpacker) * * * * * * * * * * * * Indexing aggregate field msgpack.Unpacker.InternalBuffer!().buffer_: * * * * * * * * * * * * * Value: %2 = getelementptr %msgpack.Unpacker, %msgpack.Unpacker* %q_arg, i32 0, i32 0 * * * * * * * * * * * static or dynamic array * * * * * * * * * * * comparing arrays * * * * * * * * * * * casting to dynamic arrays * * * * * * * * * * * DtoCastArray * * * * * * * * * * * * from array or sarray * * * * * * * * * * * * to array * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * isslice * * * * * * * * * * * DtoCastArray * * * * * * * * * * * * from array or sarray * * * * * * * * * * * * to array * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * isslice * * * * * * * * * * * DtoTypeInfoOf(type = 'const(ubyte)[]', base='1') * * * * * * * * * * * * Type::getTypeInfo(): const(ubyte)[] * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(const(ubyte)[])) * * * * * * * * * * EqualExp::toElem: p.used_ == q.used_ @ bool * * * * * * * * * * * DotVarExp::toElem: p.used_ @ const(ulong) * * * * * * * * * * * * VarExp::toElem: p @ const(Unpacker) * * * * * * * * * * * * * DtoSymbolAddress ('p' of type 'const(Unpacker)') * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * type: const(Unpacker) * * * * * * * * * * * * Indexing aggregate field msgpack.Unpacker.InternalBuffer!().used_: * * * * * * * * * * * * * Value: %15 = getelementptr %msgpack.Unpacker, %msgpack.Unpacker* %p_arg, i32 0, i32 1 * * * * * * * * * * * DotVarExp::toElem: q.used_ @ const(ulong) * * * * * * * * * * * * VarExp::toElem: q @ const(Unpacker) * * * * * * * * * * * * * DtoSymbolAddress ('q' of type 'const(Unpacker)') * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * type: const(Unpacker) * * * * * * * * * * * * Indexing aggregate field msgpack.Unpacker.InternalBuffer!().used_: * * * * * * * * * * * * * Value: %16 = getelementptr %msgpack.Unpacker, %msgpack.Unpacker* %q_arg, i32 0, i32 1 * * * * * * * * * * * integral or pointer or interface * * * * * * * * * * * lv: %17 = load i64, i64* %15 * * * * * * * * * * * rv: %18 = load i64, i64* %16 * * * * * * * * * EqualExp::toElem: p.offset_ == q.offset_ @ bool * * * * * * * * * * DotVarExp::toElem: p.offset_ @ const(ulong) * * * * * * * * * * * VarExp::toElem: p @ const(Unpacker) * * * * * * * * * * * * DtoSymbolAddress ('p' of type 'const(Unpacker)') * * * * * * * * * * * * * function param * * * * * * * * * * * * * type: const(Unpacker) * * * * * * * * * * * Indexing aggregate field msgpack.Unpacker.InternalBuffer!().offset_: * * * * * * * * * * * * Value: %20 = getelementptr %msgpack.Unpacker, %msgpack.Unpacker* %p_arg, i32 0, i32 2 * * * * * * * * * * DotVarExp::toElem: q.offset_ @ const(ulong) * * * * * * * * * * * VarExp::toElem: q @ const(Unpacker) * * * * * * * * * * * * DtoSymbolAddress ('q' of type 'const(Unpacker)') * * * * * * * * * * * * * function param * * * * * * * * * * * * * type: const(Unpacker) * * * * * * * * * * * Indexing aggregate field msgpack.Unpacker.InternalBuffer!().offset_: * * * * * * * * * * * * Value: %21 = getelementptr %msgpack.Unpacker, %msgpack.Unpacker* %q_arg, i32 0, i32 2 * * * * * * * * * * integral or pointer or interface * * * * * * * * * * lv: %22 = load i64, i64* %20 * * * * * * * * * * rv: %23 = load i64, i64* %21 * * * * * * * * EqualExp::toElem: p.parsed_ == q.parsed_ @ bool * * * * * * * * * DotVarExp::toElem: p.parsed_ @ const(ulong) * * * * * * * * * * VarExp::toElem: p @ const(Unpacker) * * * * * * * * * * * DtoSymbolAddress ('p' of type 'const(Unpacker)') * * * * * * * * * * * * function param * * * * * * * * * * * * type: const(Unpacker) * * * * * * * * * * Indexing aggregate field msgpack.Unpacker.InternalBuffer!().parsed_: * * * * * * * * * * * Value: %25 = getelementptr %msgpack.Unpacker, %msgpack.Unpacker* %p_arg, i32 0, i32 3 * * * * * * * * * DotVarExp::toElem: q.parsed_ @ const(ulong) * * * * * * * * * * VarExp::toElem: q @ const(Unpacker) * * * * * * * * * * * DtoSymbolAddress ('q' of type 'const(Unpacker)') * * * * * * * * * * * * function param * * * * * * * * * * * * type: const(Unpacker) * * * * * * * * * * Indexing aggregate field msgpack.Unpacker.InternalBuffer!().parsed_: * * * * * * * * * * * Value: %26 = getelementptr %msgpack.Unpacker, %msgpack.Unpacker* %q_arg, i32 0, i32 3 * * * * * * * * * integral or pointer or interface * * * * * * * * * lv: %27 = load i64, i64* %25 * * * * * * * * * rv: %28 = load i64, i64* %26 * * * * * * * EqualExp::toElem: cast(int)p.hasRaw_ == cast(int)q.hasRaw_ @ bool * * * * * * * * CastExp::toElem: cast(int)p.hasRaw_ @ int * * * * * * * * * DotVarExp::toElem: p.hasRaw_ @ const(bool) * * * * * * * * * * VarExp::toElem: p @ const(Unpacker) * * * * * * * * * * * DtoSymbolAddress ('p' of type 'const(Unpacker)') * * * * * * * * * * * * function param * * * * * * * * * * * * type: const(Unpacker) * * * * * * * * * * Indexing aggregate field msgpack.Unpacker.InternalBuffer!().hasRaw_: * * * * * * * * * * * Value: %30 = getelementptr %msgpack.Unpacker, %msgpack.Unpacker* %p_arg, i32 0, i32 4 * * * * * * * * * Casting from 'const(bool)' to 'int' * * * * * * * * * * cast to: i32 * * * * * * * * CastExp::toElem: cast(int)q.hasRaw_ @ int * * * * * * * * * DotVarExp::toElem: q.hasRaw_ @ const(bool) * * * * * * * * * * VarExp::toElem: q @ const(Unpacker) * * * * * * * * * * * DtoSymbolAddress ('q' of type 'const(Unpacker)') * * * * * * * * * * * * function param * * * * * * * * * * * * type: const(Unpacker) * * * * * * * * * * Indexing aggregate field msgpack.Unpacker.InternalBuffer!().hasRaw_: * * * * * * * * * * * Value: %34 = getelementptr %msgpack.Unpacker, %msgpack.Unpacker* %q_arg, i32 0, i32 4 * * * * * * * * * Casting from 'const(bool)' to 'int' * * * * * * * * * * cast to: i32 * * * * * * * * integral or pointer or interface * * * * * * * * lv: %33 = zext i1 %32 to i32 * * * * * * * * rv: %37 = zext i1 %36 to i32 * * * * * * EqualExp::toElem: cast(int)p.withFieldName_ == cast(int)q.withFieldName_ @ bool * * * * * * * CastExp::toElem: cast(int)p.withFieldName_ @ int * * * * * * * * DotVarExp::toElem: p.withFieldName_ @ const(bool) * * * * * * * * * VarExp::toElem: p @ const(Unpacker) * * * * * * * * * * DtoSymbolAddress ('p' of type 'const(Unpacker)') * * * * * * * * * * * function param * * * * * * * * * * * type: const(Unpacker) * * * * * * * * * Indexing aggregate field msgpack.Unpacker.withFieldName_: * * * * * * * * * * Value: %39 = getelementptr %msgpack.Unpacker, %msgpack.Unpacker* %p_arg, i32 0, i32 5 * * * * * * * * Casting from 'const(bool)' to 'int' * * * * * * * * * cast to: i32 * * * * * * * CastExp::toElem: cast(int)q.withFieldName_ @ int * * * * * * * * DotVarExp::toElem: q.withFieldName_ @ const(bool) * * * * * * * * * VarExp::toElem: q @ const(Unpacker) * * * * * * * * * * DtoSymbolAddress ('q' of type 'const(Unpacker)') * * * * * * * * * * * function param * * * * * * * * * * * type: const(Unpacker) * * * * * * * * * Indexing aggregate field msgpack.Unpacker.withFieldName_: * * * * * * * * * * Value: %43 = getelementptr %msgpack.Unpacker, %msgpack.Unpacker* %q_arg, i32 0, i32 5 * * * * * * * * Casting from 'const(bool)' to 'int' * * * * * * * * * cast to: i32 * * * * * * * integral or pointer or interface * * * * * * * lv: %42 = zext i1 %41 to i32 * * * * * * * rv: %46 = zext i1 %45 to i32 * * * * * return value is '0x131fe108' * * DtoDefineFunction(msgpack.Unpacker.__xtoHash): * * * Doing function body for: __xtoHash * * * DtoCreateNestedContext for __xtoHash * * * * DtoCreateNestedContextType for msgpack.Unpacker.__xtoHash * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): * * * * * ExpStatement::toIR(): * * * * * * DeclarationExp::toElem: ulong h = 0LU; | T=void * * * * * * * DtoDeclarationExp: h * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * llvm value for decl: %h = alloca i64, align 8 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: h = 0LU | (ulong)(ulong = ulong) * * * * * * * * * * VarExp::toElem: h @ ulong * * * * * * * * * * * DtoSymbolAddress ('h' of type 'ulong') * * * * * * * * * * * * a normal variable * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * value = i64 0 * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %h = alloca i64, align 8 * * * * * * * * * * * rhs: i64 0 * * * * * UnrolledLoopStatement::toIR(): * * * * * * ScopeStatement::toIR(): * * * * * * * CompoundStatement::toIR(): * * * * * * * * ExpStatement::toIR(): * * * * * * * * * DeclarationExp::toElem: enum ulong i = 0LU; | T=void * * * * * * * * * * DtoDeclarationExp: i * * * * * * * * * * * VarDeclaration * * * * * * * * * * * Manifest constant, nothing to do. * * * * * * * * ExpStatement::toIR(): * * * * * * * * * DeclarationExp::toElem: alias T = const(ubyte[]); | T=void * * * * * * * * * * DtoDeclarationExp: T * * * * * * * * * * * Ignoring Symbol: alias * * * * * * * * ExpStatement::toIR(): * * * * * * * * * AddAssignExp::toElem: h += typeid(const(ubyte[])).getHash(cast(const(void*))&p.buffer_) @ ulong * * * * * * * * * * Caching l-value of h += typeid(const(ubyte[])).getHash(cast(const(void*))&p.buffer_) => h * * * * * * * * * * * VarExp::toElem: h @ ulong * * * * * * * * * * * * DtoSymbolAddress ('h' of type 'ulong') * * * * * * * * * * * * * a normal variable * * * * * * * * * * AddExp::toElem: h + typeid(const(ubyte[])).getHash(cast(const(void*))&p.buffer_) @ ulong * * * * * * * * * * * VarExp::toElem: h @ ulong * * * * * * * * * * * CallExp::toElem: typeid(const(ubyte[])).getHash(cast(const(void*))&p.buffer_) @ ulong * * * * * * * * * * * * DotVarExp::toElem: typeid(const(ubyte[])).getHash @ const nothrow @trusted ulong(const(void*) p) * * * * * * * * * * * * * SymOffExp::toElem: typeid(const(ubyte[])) @ object.TypeInfo * * * * * * * * * * * * * * DtoSymbolAddress ('typeid(const(ubyte[]))' of type 'object.TypeInfo_Const') * * * * * * * * * * * * * * * TypeInfoDeclaration * * * * * * * * * * * * * * Casting from 'TypeInfo_Const*' to 'object.TypeInfo' * * * * * * * * * * * * * * * src: %object.TypeInfo_Const* bitcast (%"typeid(const(ubyte[]))"* @_D12TypeInfo_xAh6__initZ to %object.TypeInfo_Const*) * * * * * * * * * * * * * * * to type: %object.TypeInfo* * * * * * * * * * * * * * vthis: %object.TypeInfo* bitcast (%"typeid(const(ubyte[]))"* @_D12TypeInfo_xAh6__initZ to %object.TypeInfo*) * * * * * * * * * * * * * funcval: %3 = load i64 (%object.TypeInfo*, i8*)*, i64 (%object.TypeInfo*, i8*)** %"typeid(const(ubyte[])).getHash@vtbl", align 8 * * * * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * * * * DtoFunctionType(const nothrow @trusted ulong(const(void*) p)) * * * * * * * * * * * * * funcval casted: %"typeid(const(ubyte[])).getHash" = load i64 (%object.TypeInfo*, i8*)*, i64 (%object.TypeInfo*, i8*)** %"typeid(const(ubyte[])).getHash@vtbl", align 8 * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * %object.TypeInfo* bitcast (%"typeid(const(ubyte[]))"* @_D12TypeInfo_xAh6__initZ to %object.TypeInfo*) * * * * * * * * * * * * * Function type: const nothrow @trusted ulong(const(void*) p) * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * CastExp::toElem: cast(const(void*))&p.buffer_ @ const(void*) * * * * * * * * * * * * * * * AddrExp::toElem: &p.buffer_ @ const(ubyte[])* * * * * * * * * * * * * * * * * DotVarExp::toElem: p.buffer_ @ const(ubyte[]) * * * * * * * * * * * * * * * * * VarExp::toElem: p @ const(Unpacker) * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('p' of type 'const(Unpacker)') * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * type: const(Unpacker) * * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.Unpacker.InternalBuffer!().buffer_: * * * * * * * * * * * * * * * * * * Value: %3 = getelementptr %msgpack.Unpacker, %msgpack.Unpacker* %p_arg, i32 0, i32 0 * * * * * * * * * * * * * * * * is nothing special * * * * * * * * * * * * * * * * lval: %3 = getelementptr %msgpack.Unpacker, %msgpack.Unpacker* %p_arg, i32 0, i32 0 * * * * * * * * * * * * * * * Casting from 'const(ubyte[])*' to 'const(void*)' * * * * * * * * * * * * * * * * src: %3 = getelementptr %msgpack.Unpacker, %msgpack.Unpacker* %p_arg, i32 0, i32 0 * * * * * * * * * * * * * * * * to type: i8* * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %h = alloca i64, align 8 * * * * * * * * * * * rhs: %7 = add i64 %6, %5 * * * * * * ScopeStatement::toIR(): * * * * * * * CompoundStatement::toIR(): * * * * * * * * ExpStatement::toIR(): * * * * * * * * * DeclarationExp::toElem: enum ulong i = 1LU; | T=void * * * * * * * * * * DtoDeclarationExp: i * * * * * * * * * * * VarDeclaration * * * * * * * * * * * Manifest constant, nothing to do. * * * * * * * * ExpStatement::toIR(): * * * * * * * * * DeclarationExp::toElem: alias T = const(ulong); | T=void * * * * * * * * * * DtoDeclarationExp: T * * * * * * * * * * * Ignoring Symbol: alias * * * * * * * * ExpStatement::toIR(): * * * * * * * * * AddAssignExp::toElem: h += typeid(const(ulong)).getHash(cast(const(void*))&p.used_) @ ulong * * * * * * * * * * Caching l-value of h += typeid(const(ulong)).getHash(cast(const(void*))&p.used_) => h * * * * * * * * * * * VarExp::toElem: h @ ulong * * * * * * * * * * * * DtoSymbolAddress ('h' of type 'ulong') * * * * * * * * * * * * * a normal variable * * * * * * * * * * AddExp::toElem: h + typeid(const(ulong)).getHash(cast(const(void*))&p.used_) @ ulong * * * * * * * * * * * VarExp::toElem: h @ ulong * * * * * * * * * * * CallExp::toElem: typeid(const(ulong)).getHash(cast(const(void*))&p.used_) @ ulong * * * * * * * * * * * * DotVarExp::toElem: typeid(const(ulong)).getHash @ const nothrow @trusted ulong(const(void*) p) * * * * * * * * * * * * * SymOffExp::toElem: typeid(const(ulong)) @ object.TypeInfo * * * * * * * * * * * * * * DtoSymbolAddress ('typeid(const(ulong))' of type 'object.TypeInfo_Const') * * * * * * * * * * * * * * * TypeInfoDeclaration * * * * * * * * * * * * * * Casting from 'TypeInfo_Const*' to 'object.TypeInfo' * * * * * * * * * * * * * * * src: %object.TypeInfo_Const* bitcast (%"typeid(const(ulong))"* @_D11TypeInfo_xm6__initZ to %object.TypeInfo_Const*) * * * * * * * * * * * * * * * to type: %object.TypeInfo* * * * * * * * * * * * * * vthis: %object.TypeInfo* bitcast (%"typeid(const(ulong))"* @_D11TypeInfo_xm6__initZ to %object.TypeInfo*) * * * * * * * * * * * * * funcval: %10 = load i64 (%object.TypeInfo*, i8*)*, i64 (%object.TypeInfo*, i8*)** %"typeid(const(ulong)).getHash@vtbl", align 8 * * * * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * * * * DtoFunctionType(const nothrow @trusted ulong(const(void*) p)) * * * * * * * * * * * * * funcval casted: %"typeid(const(ulong)).getHash" = load i64 (%object.TypeInfo*, i8*)*, i64 (%object.TypeInfo*, i8*)** %"typeid(const(ulong)).getHash@vtbl", align 8 * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * %object.TypeInfo* bitcast (%"typeid(const(ulong))"* @_D11TypeInfo_xm6__initZ to %object.TypeInfo*) * * * * * * * * * * * * * Function type: const nothrow @trusted ulong(const(void*) p) * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * CastExp::toElem: cast(const(void*))&p.used_ @ const(void*) * * * * * * * * * * * * * * * AddrExp::toElem: &p.used_ @ const(ulong)* * * * * * * * * * * * * * * * * DotVarExp::toElem: p.used_ @ const(ulong) * * * * * * * * * * * * * * * * * VarExp::toElem: p @ const(Unpacker) * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('p' of type 'const(Unpacker)') * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * type: const(Unpacker) * * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.Unpacker.InternalBuffer!().used_: * * * * * * * * * * * * * * * * * * Value: %10 = getelementptr %msgpack.Unpacker, %msgpack.Unpacker* %p_arg, i32 0, i32 1 * * * * * * * * * * * * * * * * is nothing special * * * * * * * * * * * * * * * * lval: %10 = getelementptr %msgpack.Unpacker, %msgpack.Unpacker* %p_arg, i32 0, i32 1 * * * * * * * * * * * * * * * Casting from 'const(ulong)*' to 'const(void*)' * * * * * * * * * * * * * * * * src: %10 = getelementptr %msgpack.Unpacker, %msgpack.Unpacker* %p_arg, i32 0, i32 1 * * * * * * * * * * * * * * * * to type: i8* * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %h = alloca i64, align 8 * * * * * * * * * * * rhs: %14 = add i64 %13, %12 * * * * * * ScopeStatement::toIR(): * * * * * * * CompoundStatement::toIR(): * * * * * * * * ExpStatement::toIR(): * * * * * * * * * DeclarationExp::toElem: enum ulong i = 2LU; | T=void * * * * * * * * * * DtoDeclarationExp: i * * * * * * * * * * * VarDeclaration * * * * * * * * * * * Manifest constant, nothing to do. * * * * * * * * ExpStatement::toIR(): * * * * * * * * * DeclarationExp::toElem: alias T = const(ulong); | T=void * * * * * * * * * * DtoDeclarationExp: T * * * * * * * * * * * Ignoring Symbol: alias * * * * * * * * ExpStatement::toIR(): * * * * * * * * * AddAssignExp::toElem: h += typeid(const(ulong)).getHash(cast(const(void*))&p.offset_) @ ulong * * * * * * * * * * Caching l-value of h += typeid(const(ulong)).getHash(cast(const(void*))&p.offset_) => h * * * * * * * * * * * VarExp::toElem: h @ ulong * * * * * * * * * * * * DtoSymbolAddress ('h' of type 'ulong') * * * * * * * * * * * * * a normal variable * * * * * * * * * * AddExp::toElem: h + typeid(const(ulong)).getHash(cast(const(void*))&p.offset_) @ ulong * * * * * * * * * * * VarExp::toElem: h @ ulong * * * * * * * * * * * CallExp::toElem: typeid(const(ulong)).getHash(cast(const(void*))&p.offset_) @ ulong * * * * * * * * * * * * DotVarExp::toElem: typeid(const(ulong)).getHash @ const nothrow @trusted ulong(const(void*) p) * * * * * * * * * * * * * SymOffExp::toElem: typeid(const(ulong)) @ object.TypeInfo * * * * * * * * * * * * * * DtoSymbolAddress ('typeid(const(ulong))' of type 'object.TypeInfo_Const') * * * * * * * * * * * * * * * TypeInfoDeclaration * * * * * * * * * * * * * * Casting from 'TypeInfo_Const*' to 'object.TypeInfo' * * * * * * * * * * * * * * * src: %object.TypeInfo_Const* bitcast (%"typeid(const(ulong))"* @_D11TypeInfo_xm6__initZ to %object.TypeInfo_Const*) * * * * * * * * * * * * * * * to type: %object.TypeInfo* * * * * * * * * * * * * * vthis: %object.TypeInfo* bitcast (%"typeid(const(ulong))"* @_D11TypeInfo_xm6__initZ to %object.TypeInfo*) * * * * * * * * * * * * * funcval: %17 = load i64 (%object.TypeInfo*, i8*)*, i64 (%object.TypeInfo*, i8*)** %"typeid(const(ulong)).getHash@vtbl6", align 8 * * * * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * * * * DtoFunctionType(const nothrow @trusted ulong(const(void*) p)) * * * * * * * * * * * * * funcval casted: %"typeid(const(ulong)).getHash7" = load i64 (%object.TypeInfo*, i8*)*, i64 (%object.TypeInfo*, i8*)** %"typeid(const(ulong)).getHash@vtbl6", align 8 * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * %object.TypeInfo* bitcast (%"typeid(const(ulong))"* @_D11TypeInfo_xm6__initZ to %object.TypeInfo*) * * * * * * * * * * * * * Function type: const nothrow @trusted ulong(const(void*) p) * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * CastExp::toElem: cast(const(void*))&p.offset_ @ const(void*) * * * * * * * * * * * * * * * AddrExp::toElem: &p.offset_ @ const(ulong)* * * * * * * * * * * * * * * * * DotVarExp::toElem: p.offset_ @ const(ulong) * * * * * * * * * * * * * * * * * VarExp::toElem: p @ const(Unpacker) * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('p' of type 'const(Unpacker)') * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * type: const(Unpacker) * * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.Unpacker.InternalBuffer!().offset_: * * * * * * * * * * * * * * * * * * Value: %17 = getelementptr %msgpack.Unpacker, %msgpack.Unpacker* %p_arg, i32 0, i32 2 * * * * * * * * * * * * * * * * is nothing special * * * * * * * * * * * * * * * * lval: %17 = getelementptr %msgpack.Unpacker, %msgpack.Unpacker* %p_arg, i32 0, i32 2 * * * * * * * * * * * * * * * Casting from 'const(ulong)*' to 'const(void*)' * * * * * * * * * * * * * * * * src: %17 = getelementptr %msgpack.Unpacker, %msgpack.Unpacker* %p_arg, i32 0, i32 2 * * * * * * * * * * * * * * * * to type: i8* * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %h = alloca i64, align 8 * * * * * * * * * * * rhs: %21 = add i64 %20, %19 * * * * * * ScopeStatement::toIR(): * * * * * * * CompoundStatement::toIR(): * * * * * * * * ExpStatement::toIR(): * * * * * * * * * DeclarationExp::toElem: enum ulong i = 3LU; | T=void * * * * * * * * * * DtoDeclarationExp: i * * * * * * * * * * * VarDeclaration * * * * * * * * * * * Manifest constant, nothing to do. * * * * * * * * ExpStatement::toIR(): * * * * * * * * * DeclarationExp::toElem: alias T = const(ulong); | T=void * * * * * * * * * * DtoDeclarationExp: T * * * * * * * * * * * Ignoring Symbol: alias * * * * * * * * ExpStatement::toIR(): * * * * * * * * * AddAssignExp::toElem: h += typeid(const(ulong)).getHash(cast(const(void*))&p.parsed_) @ ulong * * * * * * * * * * Caching l-value of h += typeid(const(ulong)).getHash(cast(const(void*))&p.parsed_) => h * * * * * * * * * * * VarExp::toElem: h @ ulong * * * * * * * * * * * * DtoSymbolAddress ('h' of type 'ulong') * * * * * * * * * * * * * a normal variable * * * * * * * * * * AddExp::toElem: h + typeid(const(ulong)).getHash(cast(const(void*))&p.parsed_) @ ulong * * * * * * * * * * * VarExp::toElem: h @ ulong * * * * * * * * * * * CallExp::toElem: typeid(const(ulong)).getHash(cast(const(void*))&p.parsed_) @ ulong * * * * * * * * * * * * DotVarExp::toElem: typeid(const(ulong)).getHash @ const nothrow @trusted ulong(const(void*) p) * * * * * * * * * * * * * SymOffExp::toElem: typeid(const(ulong)) @ object.TypeInfo * * * * * * * * * * * * * * DtoSymbolAddress ('typeid(const(ulong))' of type 'object.TypeInfo_Const') * * * * * * * * * * * * * * * TypeInfoDeclaration * * * * * * * * * * * * * * Casting from 'TypeInfo_Const*' to 'object.TypeInfo' * * * * * * * * * * * * * * * src: %object.TypeInfo_Const* bitcast (%"typeid(const(ulong))"* @_D11TypeInfo_xm6__initZ to %object.TypeInfo_Const*) * * * * * * * * * * * * * * * to type: %object.TypeInfo* * * * * * * * * * * * * * vthis: %object.TypeInfo* bitcast (%"typeid(const(ulong))"* @_D11TypeInfo_xm6__initZ to %object.TypeInfo*) * * * * * * * * * * * * * funcval: %24 = load i64 (%object.TypeInfo*, i8*)*, i64 (%object.TypeInfo*, i8*)** %"typeid(const(ulong)).getHash@vtbl8", align 8 * * * * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * * * * DtoFunctionType(const nothrow @trusted ulong(const(void*) p)) * * * * * * * * * * * * * funcval casted: %"typeid(const(ulong)).getHash9" = load i64 (%object.TypeInfo*, i8*)*, i64 (%object.TypeInfo*, i8*)** %"typeid(const(ulong)).getHash@vtbl8", align 8 * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * %object.TypeInfo* bitcast (%"typeid(const(ulong))"* @_D11TypeInfo_xm6__initZ to %object.TypeInfo*) * * * * * * * * * * * * * Function type: const nothrow @trusted ulong(const(void*) p) * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * CastExp::toElem: cast(const(void*))&p.parsed_ @ const(void*) * * * * * * * * * * * * * * * AddrExp::toElem: &p.parsed_ @ const(ulong)* * * * * * * * * * * * * * * * * DotVarExp::toElem: p.parsed_ @ const(ulong) * * * * * * * * * * * * * * * * * VarExp::toElem: p @ const(Unpacker) * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('p' of type 'const(Unpacker)') * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * type: const(Unpacker) * * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.Unpacker.InternalBuffer!().parsed_: * * * * * * * * * * * * * * * * * * Value: %24 = getelementptr %msgpack.Unpacker, %msgpack.Unpacker* %p_arg, i32 0, i32 3 * * * * * * * * * * * * * * * * is nothing special * * * * * * * * * * * * * * * * lval: %24 = getelementptr %msgpack.Unpacker, %msgpack.Unpacker* %p_arg, i32 0, i32 3 * * * * * * * * * * * * * * * Casting from 'const(ulong)*' to 'const(void*)' * * * * * * * * * * * * * * * * src: %24 = getelementptr %msgpack.Unpacker, %msgpack.Unpacker* %p_arg, i32 0, i32 3 * * * * * * * * * * * * * * * * to type: i8* * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %h = alloca i64, align 8 * * * * * * * * * * * rhs: %28 = add i64 %27, %26 * * * * * * ScopeStatement::toIR(): * * * * * * * CompoundStatement::toIR(): * * * * * * * * ExpStatement::toIR(): * * * * * * * * * DeclarationExp::toElem: enum ulong i = 4LU; | T=void * * * * * * * * * * DtoDeclarationExp: i * * * * * * * * * * * VarDeclaration * * * * * * * * * * * Manifest constant, nothing to do. * * * * * * * * ExpStatement::toIR(): * * * * * * * * * DeclarationExp::toElem: alias T = const(bool); | T=void * * * * * * * * * * DtoDeclarationExp: T * * * * * * * * * * * Ignoring Symbol: alias * * * * * * * * ExpStatement::toIR(): * * * * * * * * * AddAssignExp::toElem: h += typeid(const(bool)).getHash(cast(const(void*))&p.hasRaw_) @ ulong * * * * * * * * * * Caching l-value of h += typeid(const(bool)).getHash(cast(const(void*))&p.hasRaw_) => h * * * * * * * * * * * VarExp::toElem: h @ ulong * * * * * * * * * * * * DtoSymbolAddress ('h' of type 'ulong') * * * * * * * * * * * * * a normal variable * * * * * * * * * * AddExp::toElem: h + typeid(const(bool)).getHash(cast(const(void*))&p.hasRaw_) @ ulong * * * * * * * * * * * VarExp::toElem: h @ ulong * * * * * * * * * * * CallExp::toElem: typeid(const(bool)).getHash(cast(const(void*))&p.hasRaw_) @ ulong * * * * * * * * * * * * DotVarExp::toElem: typeid(const(bool)).getHash @ const nothrow @trusted ulong(const(void*) p) * * * * * * * * * * * * * SymOffExp::toElem: typeid(const(bool)) @ object.TypeInfo * * * * * * * * * * * * * * DtoSymbolAddress ('typeid(const(bool))' of type 'object.TypeInfo_Const') * * * * * * * * * * * * * * * TypeInfoDeclaration * * * * * * * * * * * * * * Casting from 'TypeInfo_Const*' to 'object.TypeInfo' * * * * * * * * * * * * * * * src: %object.TypeInfo_Const* bitcast (%"typeid(const(bool))"* @_D11TypeInfo_xb6__initZ to %object.TypeInfo_Const*) * * * * * * * * * * * * * * * to type: %object.TypeInfo* * * * * * * * * * * * * * vthis: %object.TypeInfo* bitcast (%"typeid(const(bool))"* @_D11TypeInfo_xb6__initZ to %object.TypeInfo*) * * * * * * * * * * * * * funcval: %31 = load i64 (%object.TypeInfo*, i8*)*, i64 (%object.TypeInfo*, i8*)** %"typeid(const(bool)).getHash@vtbl", align 8 * * * * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * * * * DtoFunctionType(const nothrow @trusted ulong(const(void*) p)) * * * * * * * * * * * * * funcval casted: %"typeid(const(bool)).getHash" = load i64 (%object.TypeInfo*, i8*)*, i64 (%object.TypeInfo*, i8*)** %"typeid(const(bool)).getHash@vtbl", align 8 * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * %object.TypeInfo* bitcast (%"typeid(const(bool))"* @_D11TypeInfo_xb6__initZ to %object.TypeInfo*) * * * * * * * * * * * * * Function type: const nothrow @trusted ulong(const(void*) p) * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * CastExp::toElem: cast(const(void*))&p.hasRaw_ @ const(void*) * * * * * * * * * * * * * * * AddrExp::toElem: &p.hasRaw_ @ const(bool)* * * * * * * * * * * * * * * * * DotVarExp::toElem: p.hasRaw_ @ const(bool) * * * * * * * * * * * * * * * * * VarExp::toElem: p @ const(Unpacker) * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('p' of type 'const(Unpacker)') * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * type: const(Unpacker) * * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.Unpacker.InternalBuffer!().hasRaw_: * * * * * * * * * * * * * * * * * * Value: %31 = getelementptr %msgpack.Unpacker, %msgpack.Unpacker* %p_arg, i32 0, i32 4 * * * * * * * * * * * * * * * * is nothing special * * * * * * * * * * * * * * * * lval: %31 = getelementptr %msgpack.Unpacker, %msgpack.Unpacker* %p_arg, i32 0, i32 4 * * * * * * * * * * * * * * * Casting from 'const(bool)*' to 'const(void*)' * * * * * * * * * * * * * * * * src: %31 = getelementptr %msgpack.Unpacker, %msgpack.Unpacker* %p_arg, i32 0, i32 4 * * * * * * * * * * * * * * * * to type: i8* * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %h = alloca i64, align 8 * * * * * * * * * * * rhs: %34 = add i64 %33, %32 * * * * * * ScopeStatement::toIR(): * * * * * * * CompoundStatement::toIR(): * * * * * * * * ExpStatement::toIR(): * * * * * * * * * DeclarationExp::toElem: enum ulong i = 5LU; | T=void * * * * * * * * * * DtoDeclarationExp: i * * * * * * * * * * * VarDeclaration * * * * * * * * * * * Manifest constant, nothing to do. * * * * * * * * ExpStatement::toIR(): * * * * * * * * * DeclarationExp::toElem: alias T = const(bool); | T=void * * * * * * * * * * DtoDeclarationExp: T * * * * * * * * * * * Ignoring Symbol: alias * * * * * * * * ExpStatement::toIR(): * * * * * * * * * AddAssignExp::toElem: h += typeid(const(bool)).getHash(cast(const(void*))&p.withFieldName_) @ ulong * * * * * * * * * * Caching l-value of h += typeid(const(bool)).getHash(cast(const(void*))&p.withFieldName_) => h * * * * * * * * * * * VarExp::toElem: h @ ulong * * * * * * * * * * * * DtoSymbolAddress ('h' of type 'ulong') * * * * * * * * * * * * * a normal variable * * * * * * * * * * AddExp::toElem: h + typeid(const(bool)).getHash(cast(const(void*))&p.withFieldName_) @ ulong * * * * * * * * * * * VarExp::toElem: h @ ulong * * * * * * * * * * * CallExp::toElem: typeid(const(bool)).getHash(cast(const(void*))&p.withFieldName_) @ ulong * * * * * * * * * * * * DotVarExp::toElem: typeid(const(bool)).getHash @ const nothrow @trusted ulong(const(void*) p) * * * * * * * * * * * * * SymOffExp::toElem: typeid(const(bool)) @ object.TypeInfo * * * * * * * * * * * * * * DtoSymbolAddress ('typeid(const(bool))' of type 'object.TypeInfo_Const') * * * * * * * * * * * * * * * TypeInfoDeclaration * * * * * * * * * * * * * * Casting from 'TypeInfo_Const*' to 'object.TypeInfo' * * * * * * * * * * * * * * * src: %object.TypeInfo_Const* bitcast (%"typeid(const(bool))"* @_D11TypeInfo_xb6__initZ to %object.TypeInfo_Const*) * * * * * * * * * * * * * * * to type: %object.TypeInfo* * * * * * * * * * * * * * vthis: %object.TypeInfo* bitcast (%"typeid(const(bool))"* @_D11TypeInfo_xb6__initZ to %object.TypeInfo*) * * * * * * * * * * * * * funcval: %37 = load i64 (%object.TypeInfo*, i8*)*, i64 (%object.TypeInfo*, i8*)** %"typeid(const(bool)).getHash@vtbl10", align 8 * * * * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * * * * DtoFunctionType(const nothrow @trusted ulong(const(void*) p)) * * * * * * * * * * * * * funcval casted: %"typeid(const(bool)).getHash11" = load i64 (%object.TypeInfo*, i8*)*, i64 (%object.TypeInfo*, i8*)** %"typeid(const(bool)).getHash@vtbl10", align 8 * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * %object.TypeInfo* bitcast (%"typeid(const(bool))"* @_D11TypeInfo_xb6__initZ to %object.TypeInfo*) * * * * * * * * * * * * * Function type: const nothrow @trusted ulong(const(void*) p) * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * CastExp::toElem: cast(const(void*))&p.withFieldName_ @ const(void*) * * * * * * * * * * * * * * * AddrExp::toElem: &p.withFieldName_ @ const(bool)* * * * * * * * * * * * * * * * * DotVarExp::toElem: p.withFieldName_ @ const(bool) * * * * * * * * * * * * * * * * * VarExp::toElem: p @ const(Unpacker) * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('p' of type 'const(Unpacker)') * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * type: const(Unpacker) * * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.Unpacker.withFieldName_: * * * * * * * * * * * * * * * * * * Value: %37 = getelementptr %msgpack.Unpacker, %msgpack.Unpacker* %p_arg, i32 0, i32 5 * * * * * * * * * * * * * * * * is nothing special * * * * * * * * * * * * * * * * lval: %37 = getelementptr %msgpack.Unpacker, %msgpack.Unpacker* %p_arg, i32 0, i32 5 * * * * * * * * * * * * * * * Casting from 'const(bool)*' to 'const(void*)' * * * * * * * * * * * * * * * * src: %37 = getelementptr %msgpack.Unpacker, %msgpack.Unpacker* %p_arg, i32 0, i32 5 * * * * * * * * * * * * * * * * to type: i8* * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %h = alloca i64, align 8 * * * * * * * * * * * rhs: %40 = add i64 %39, %38 * * * * * ReturnStatement::toIR(): * * * * * * VarExp::toElem: h @ ulong * * * * * * * DtoSymbolAddress ('h' of type 'ulong') * * * * * * * * a normal variable * * * * * * return value is '0x1320a2d8' * Ignoring Dsymbol::codegen for msgpack.registerUnpackHandler(T, alias Handler)() * DtoDefineFunction(msgpack.__unittestL2782_8): msgpack-d/src/msgpack.d(2782) * * Ignoring unittest msgpack.__unittestL2782_8 * * No code generation for unit test declaration __unittestL2782_8 * StructDeclaration::codegen: 'msgpack.Value' * * Ignoring EnumDeclaration::codegen: 'msgpack.Value.Type' * * StructDeclaration::codegen: 'msgpack.Value.Via' * * * Resolving struct type: Via (msgpack-d/src/msgpack.d(3124)) * * * VarDeclaration::codegen(): 'msgpack.Value.Via.boolean' * * * * DtoResolveVariable(msgpack.Value.Via.boolean) * * * VarDeclaration::codegen(): 'msgpack.Value.Via.uinteger' * * * * DtoResolveVariable(msgpack.Value.Via.uinteger) * * * VarDeclaration::codegen(): 'msgpack.Value.Via.integer' * * * * DtoResolveVariable(msgpack.Value.Via.integer) * * * VarDeclaration::codegen(): 'msgpack.Value.Via.floating' * * * * DtoResolveVariable(msgpack.Value.Via.floating) * * * VarDeclaration::codegen(): 'msgpack.Value.Via.array' * * * * DtoResolveVariable(msgpack.Value.Via.array) * * * VarDeclaration::codegen(): 'msgpack.Value.Via.map' * * * * DtoResolveVariable(msgpack.Value.Via.map) * * * VarDeclaration::codegen(): 'msgpack.Value.Via.raw' * * * * DtoResolveVariable(msgpack.Value.Via.raw) * * * Building default initializer for msgpack.Value.Via * * * * Creating initializer constant for Via * * * * * Implicit initializer: boolean @+0 * * * * * * DtoConstExpInit(targetType = bool, exp = false) * * * * * * * IntegerExp::toConstElem: false @ bool * * * * * * * * value = i1 false * * * * * * * Fixing up unresolved implicit integer conversion. * * * * * adding field boolean * * * * * final initializer: %msgpack.Value.Via_init zeroinitializer * * * DtoTypeInfoOf(type = 'Via', base='1') * * * * Type::getTypeInfo(): Via * * * * * TypeInfoDeclaration::codegen(typeid(Via)) * * * * * * type = 'Via' * * * * * * typeinfo mangle: _D28TypeInfo_S7msgpack5Value3Via6__initZ * * * * * * TypeInfoStructDeclaration::llvmDefine() typeid(Via) * * * * * * * IntegerExp::toConstElem: cast(void*)305419896LU @ void* * * * * * * * * pointer * * * * TypeInfoDeclaration::codegen(typeid(Via)) * * VarDeclaration::codegen(): 'msgpack.Value.type' * * * DtoResolveVariable(msgpack.Value.type) * * VarDeclaration::codegen(): 'msgpack.Value.via' * * * DtoResolveVariable(msgpack.Value.via) * * DtoDefineFunction(msgpack.Value.this): msgpack-d/src/msgpack.d(3148) * * * isMember = this is: Value * * * DtoFunctionType(ref @safe Value(Type type)) * * * * Building type: Type * * * * x86-64 ABI: Transforming argument types * * * * Final function type: %msgpack.Value* (%msgpack.Value*, i32) * * * DtoResolveFunction(msgpack.Value.this): msgpack-d/src/msgpack.d(3148) * * * * DtoDeclareFunction(msgpack.Value.this): msgpack-d/src/msgpack.d(3148) * * * * * isMember = this is: Value * * * * * DtoFunctionType(ref @safe Value(Type type)) * * * * * func = declare %msgpack.Value* @_D7msgpack5Value6__ctorMFNcNfE7msgpack5Value4TypeZS7msgpack5Value(%msgpack.Value*, i32) * * * Doing function body for: this * * * Building type: Type * * * DtoCreateNestedContext for this * * * * DtoCreateNestedContextType for msgpack.Value.this * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(3148) * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(3150) * * * * * * AssignExp::toElem: this.type = type | (Type)(Type = Type) * * * * * * * DotVarExp::toElem: this.type @ Type * * * * * * * * ThisExp::toElem: this @ Value * * * * * * * * * normal this exp * * * * * * * * Indexing aggregate field msgpack.Value.type: * * * * * * * * * Building type: Type * * * * * * * * * Value: %1 = getelementptr %msgpack.Value, %msgpack.Value* %.this_arg, i32 0, i32 0 * * * * * * * VarExp::toElem: type @ Type * * * * * * * * DtoSymbolAddress ('type' of type 'Type') * * * * * * * * * function param * * * * * * * * * type: Type * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * DtoAssign() * * * * * * * * lhs: %1 = getelementptr %msgpack.Value, %msgpack.Value* %.this_arg, i32 0, i32 0 * * * * * * * * rhs: %2 = load i32, i32* %type * * * * * ReturnStatement::toIR(): msgpack-d/src/msgpack.d(3148) * * * * * * AddrExp::toElem: &this @ Value* * * * * * * * ThisExp::toElem: this @ Value * * * * * * * * this exp without var declaration * * * * * * * is nothing special * * * * * * * lval: %msgpack.Value* %.this_arg * * * * * * return value is '0x1320c9d0' * * DtoDefineFunction(msgpack.Value.this): msgpack-d/src/msgpack.d(3154) * * * isMember = this is: Value * * * DtoFunctionType(ref @safe Value(typeof(null) _param_0)) * * * * x86-64 ABI: Transforming argument types * * * * Final function type: %msgpack.Value* (%msgpack.Value*, i8*) * * * DtoResolveFunction(msgpack.Value.this): msgpack-d/src/msgpack.d(3154) * * * * DtoDeclareFunction(msgpack.Value.this): msgpack-d/src/msgpack.d(3154) * * * * * isMember = this is: Value * * * * * DtoFunctionType(ref @safe Value(typeof(null) _param_0)) * * * * * func = declare %msgpack.Value* @_D7msgpack5Value6__ctorMFNcNfnZS7msgpack5Value(%msgpack.Value*, i8*) * * * Doing function body for: this * * * DtoCreateNestedContext for this * * * * DtoCreateNestedContextType for msgpack.Value.this * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(3154) * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(3156) * * * * * * CallExp::toElem: this.this(cast(Type)0) @ Value * * * * * * * DotVarExp::toElem: this.this @ ref @safe Value(Type type) * * * * * * * * ThisExp::toElem: this @ Value * * * * * * * * * normal this exp * * * * * * * DtoCallFunction() * * * * * * * * Building type: ref @safe Value(Type type) * * * * * * * * * DtoFunctionType(ref @safe Value(Type type)) * * * * * * * * * * Building type: Type * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: %msgpack.Value* (i32) * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (1) * * * * * * * * * %msgpack.Value* %.this_arg * * * * * * * * Function type: ref @safe Value(Type type) * * * * * * * * DtoArgument * * * * * * * * * IntegerExp::toElem: cast(Type)0 @ Type * * * * * * * * * * IntegerExp::toConstElem: cast(Type)0 @ Type * * * * * * * * * * * Building type: Type * * * * * * * * * * * value = i32 0 * * * * * ReturnStatement::toIR(): msgpack-d/src/msgpack.d(3154) * * * * * * AddrExp::toElem: &this @ Value* * * * * * * * ThisExp::toElem: this @ Value * * * * * * * * this exp without var declaration * * * * * * * is nothing special * * * * * * * lval: %msgpack.Value* %.this_arg * * * * * * return value is '0x1320e5f0' * * DtoDefineFunction(msgpack.Value.this): msgpack-d/src/msgpack.d(3161) * * * isMember = this is: Value * * * DtoFunctionType(ref @trusted Value(bool value, Type type = cast(Type)1)) * * * * Building type: Type * * * * x86-64 ABI: Transforming argument types * * * * Final function type: %msgpack.Value* (%msgpack.Value*, i32, i1) * * * DtoResolveFunction(msgpack.Value.this): msgpack-d/src/msgpack.d(3161) * * * * DtoDeclareFunction(msgpack.Value.this): msgpack-d/src/msgpack.d(3161) * * * * * isMember = this is: Value * * * * * DtoFunctionType(ref @trusted Value(bool value, Type type = cast(Type)1)) * * * * * func = declare %msgpack.Value* @_D7msgpack5Value6__ctorMFNcNebE7msgpack5Value4TypeZS7msgpack5Value(%msgpack.Value*, i32, i1) * * * Doing function body for: this * * * Building type: Type * * * DtoCreateNestedContext for this * * * * DtoCreateNestedContextType for msgpack.Value.this * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(3161) * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(3162) * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(3163) * * * * * * * CallExp::toElem: this.this(type) @ Value * * * * * * * * DotVarExp::toElem: this.this @ ref @safe Value(Type type) * * * * * * * * * ThisExp::toElem: this @ Value * * * * * * * * * * normal this exp * * * * * * * * DtoCallFunction() * * * * * * * * * doing normal arguments * * * * * * * * * Arguments so far: (1) * * * * * * * * * * %msgpack.Value* %.this_arg * * * * * * * * * Function type: ref @safe Value(Type type) * * * * * * * * * DtoArgument * * * * * * * * * * VarExp::toElem: type @ Type * * * * * * * * * * * DtoSymbolAddress ('type' of type 'Type') * * * * * * * * * * * * function param * * * * * * * * * * * * type: Type * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(3164) * * * * * * * AssignExp::toElem: this.via.boolean = value | (bool)(bool = bool) * * * * * * * * DotVarExp::toElem: this.via.boolean @ bool * * * * * * * * * DotVarExp::toElem: this.via @ Via * * * * * * * * * * ThisExp::toElem: this @ Value * * * * * * * * * * * normal this exp * * * * * * * * * * Indexing aggregate field msgpack.Value.via: * * * * * * * * * * * Value: %4 = getelementptr %msgpack.Value, %msgpack.Value* %.this_arg, i32 0, i32 2 * * * * * * * * * Indexing aggregate field msgpack.Value.Via.boolean: * * * * * * * * * * Value: %5 = getelementptr %msgpack.Value.Via, %msgpack.Value.Via* %4, i32 0, i32 0 * * * * * * * * VarExp::toElem: value @ bool * * * * * * * * * DtoSymbolAddress ('value' of type 'bool') * * * * * * * * * * function param * * * * * * * * * * type: bool * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * DtoAssign() * * * * * ReturnStatement::toIR(): msgpack-d/src/msgpack.d(3161) * * * * * * AddrExp::toElem: &this @ Value* * * * * * * * ThisExp::toElem: this @ Value * * * * * * * * this exp without var declaration * * * * * * * is nothing special * * * * * * * lval: %msgpack.Value* %.this_arg * * * * * * return value is '0x1320e860' * * DtoDefineFunction(msgpack.Value.this): msgpack-d/src/msgpack.d(3170) * * * isMember = this is: Value * * * DtoFunctionType(ref @trusted Value(ulong value, Type type = cast(Type)2)) * * * * Building type: Type * * * * x86-64 ABI: Transforming argument types * * * * Final function type: %msgpack.Value* (%msgpack.Value*, i32, i64) * * * DtoResolveFunction(msgpack.Value.this): msgpack-d/src/msgpack.d(3170) * * * * DtoDeclareFunction(msgpack.Value.this): msgpack-d/src/msgpack.d(3170) * * * * * isMember = this is: Value * * * * * DtoFunctionType(ref @trusted Value(ulong value, Type type = cast(Type)2)) * * * * * func = declare %msgpack.Value* @_D7msgpack5Value6__ctorMFNcNemE7msgpack5Value4TypeZS7msgpack5Value(%msgpack.Value*, i32, i64) * * * Doing function body for: this * * * Building type: Type * * * DtoCreateNestedContext for this * * * * DtoCreateNestedContextType for msgpack.Value.this * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(3170) * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(3171) * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(3172) * * * * * * * CallExp::toElem: this.this(type) @ Value * * * * * * * * DotVarExp::toElem: this.this @ ref @safe Value(Type type) * * * * * * * * * ThisExp::toElem: this @ Value * * * * * * * * * * normal this exp * * * * * * * * DtoCallFunction() * * * * * * * * * doing normal arguments * * * * * * * * * Arguments so far: (1) * * * * * * * * * * %msgpack.Value* %.this_arg * * * * * * * * * Function type: ref @safe Value(Type type) * * * * * * * * * DtoArgument * * * * * * * * * * VarExp::toElem: type @ Type * * * * * * * * * * * DtoSymbolAddress ('type' of type 'Type') * * * * * * * * * * * * function param * * * * * * * * * * * * type: Type * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(3173) * * * * * * * AssignExp::toElem: this.via.uinteger = value | (ulong)(ulong = ulong) * * * * * * * * DotVarExp::toElem: this.via.uinteger @ ulong * * * * * * * * * DotVarExp::toElem: this.via @ Via * * * * * * * * * * ThisExp::toElem: this @ Value * * * * * * * * * * * normal this exp * * * * * * * * * * Indexing aggregate field msgpack.Value.via: * * * * * * * * * * * Value: %3 = getelementptr %msgpack.Value, %msgpack.Value* %.this_arg, i32 0, i32 2 * * * * * * * * * Indexing aggregate field msgpack.Value.Via.uinteger: * * * * * * * * * * Value: %5 = bitcast i8* %4 to i64* * * * * * * * * VarExp::toElem: value @ ulong * * * * * * * * * DtoSymbolAddress ('value' of type 'ulong') * * * * * * * * * * function param * * * * * * * * * * type: ulong * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * DtoAssign() * * * * * * * * * lhs: %5 = bitcast i8* %4 to i64* * * * * * * * * * rhs: %6 = load i64, i64* %value * * * * * ReturnStatement::toIR(): msgpack-d/src/msgpack.d(3170) * * * * * * AddrExp::toElem: &this @ Value* * * * * * * * ThisExp::toElem: this @ Value * * * * * * * * this exp without var declaration * * * * * * * is nothing special * * * * * * * lval: %msgpack.Value* %.this_arg * * * * * * return value is '0x13210b40' * * DtoDefineFunction(msgpack.Value.this): msgpack-d/src/msgpack.d(3179) * * * isMember = this is: Value * * * DtoFunctionType(ref @trusted Value(long value, Type type = cast(Type)3)) * * * * Building type: Type * * * * x86-64 ABI: Transforming argument types * * * * Final function type: %msgpack.Value* (%msgpack.Value*, i32, i64) * * * DtoResolveFunction(msgpack.Value.this): msgpack-d/src/msgpack.d(3179) * * * * DtoDeclareFunction(msgpack.Value.this): msgpack-d/src/msgpack.d(3179) * * * * * isMember = this is: Value * * * * * DtoFunctionType(ref @trusted Value(long value, Type type = cast(Type)3)) * * * * * func = declare %msgpack.Value* @_D7msgpack5Value6__ctorMFNcNelE7msgpack5Value4TypeZS7msgpack5Value(%msgpack.Value*, i32, i64) * * * Doing function body for: this * * * Building type: Type * * * DtoCreateNestedContext for this * * * * DtoCreateNestedContextType for msgpack.Value.this * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(3179) * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(3180) * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(3181) * * * * * * * CallExp::toElem: this.this(type) @ Value * * * * * * * * DotVarExp::toElem: this.this @ ref @safe Value(Type type) * * * * * * * * * ThisExp::toElem: this @ Value * * * * * * * * * * normal this exp * * * * * * * * DtoCallFunction() * * * * * * * * * doing normal arguments * * * * * * * * * Arguments so far: (1) * * * * * * * * * * %msgpack.Value* %.this_arg * * * * * * * * * Function type: ref @safe Value(Type type) * * * * * * * * * DtoArgument * * * * * * * * * * VarExp::toElem: type @ Type * * * * * * * * * * * DtoSymbolAddress ('type' of type 'Type') * * * * * * * * * * * * function param * * * * * * * * * * * * type: Type * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(3182) * * * * * * * AssignExp::toElem: this.via.integer = value | (long)(long = long) * * * * * * * * DotVarExp::toElem: this.via.integer @ long * * * * * * * * * DotVarExp::toElem: this.via @ Via * * * * * * * * * * ThisExp::toElem: this @ Value * * * * * * * * * * * normal this exp * * * * * * * * * * Indexing aggregate field msgpack.Value.via: * * * * * * * * * * * Value: %3 = getelementptr %msgpack.Value, %msgpack.Value* %.this_arg, i32 0, i32 2 * * * * * * * * * Indexing aggregate field msgpack.Value.Via.integer: * * * * * * * * * * Value: %5 = bitcast i8* %4 to i64* * * * * * * * * VarExp::toElem: value @ long * * * * * * * * * DtoSymbolAddress ('value' of type 'long') * * * * * * * * * * function param * * * * * * * * * * type: long * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * DtoAssign() * * * * * * * * * lhs: %5 = bitcast i8* %4 to i64* * * * * * * * * * rhs: %6 = load i64, i64* %value * * * * * ReturnStatement::toIR(): msgpack-d/src/msgpack.d(3179) * * * * * * AddrExp::toElem: &this @ Value* * * * * * * * ThisExp::toElem: this @ Value * * * * * * * * this exp without var declaration * * * * * * * is nothing special * * * * * * * lval: %msgpack.Value* %.this_arg * * * * * * return value is '0x13213370' * * DtoDefineFunction(msgpack.Value.this): msgpack-d/src/msgpack.d(3188) * * * isMember = this is: Value * * * DtoFunctionType(ref @trusted Value(real value, Type type = cast(Type)4)) * * * * Building type: Type * * * * x86-64 ABI: Transforming argument types * * * * Final function type: %msgpack.Value* (%msgpack.Value*, i32, x86_fp80) * * * DtoResolveFunction(msgpack.Value.this): msgpack-d/src/msgpack.d(3188) * * * * DtoDeclareFunction(msgpack.Value.this): msgpack-d/src/msgpack.d(3188) * * * * * isMember = this is: Value * * * * * DtoFunctionType(ref @trusted Value(real value, Type type = cast(Type)4)) * * * * * func = declare %msgpack.Value* @_D7msgpack5Value6__ctorMFNcNeeE7msgpack5Value4TypeZS7msgpack5Value(%msgpack.Value*, i32, x86_fp80) * * * Doing function body for: this * * * Building type: Type * * * DtoCreateNestedContext for this * * * * DtoCreateNestedContextType for msgpack.Value.this * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(3188) * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(3189) * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(3190) * * * * * * * CallExp::toElem: this.this(type) @ Value * * * * * * * * DotVarExp::toElem: this.this @ ref @safe Value(Type type) * * * * * * * * * ThisExp::toElem: this @ Value * * * * * * * * * * normal this exp * * * * * * * * DtoCallFunction() * * * * * * * * * doing normal arguments * * * * * * * * * Arguments so far: (1) * * * * * * * * * * %msgpack.Value* %.this_arg * * * * * * * * * Function type: ref @safe Value(Type type) * * * * * * * * * DtoArgument * * * * * * * * * * VarExp::toElem: type @ Type * * * * * * * * * * * DtoSymbolAddress ('type' of type 'Type') * * * * * * * * * * * * function param * * * * * * * * * * * * type: Type * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(3191) * * * * * * * AssignExp::toElem: this.via.floating = value | (real)(real = real) * * * * * * * * DotVarExp::toElem: this.via.floating @ real * * * * * * * * * DotVarExp::toElem: this.via @ Via * * * * * * * * * * ThisExp::toElem: this @ Value * * * * * * * * * * * normal this exp * * * * * * * * * * Indexing aggregate field msgpack.Value.via: * * * * * * * * * * * Value: %3 = getelementptr %msgpack.Value, %msgpack.Value* %.this_arg, i32 0, i32 2 * * * * * * * * * Indexing aggregate field msgpack.Value.Via.floating: * * * * * * * * * * Value: %5 = bitcast i8* %4 to x86_fp80* * * * * * * * * VarExp::toElem: value @ real * * * * * * * * * DtoSymbolAddress ('value' of type 'real') * * * * * * * * * * function param * * * * * * * * * * type: real * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * DtoAssign() * * * * * * * * * lhs: %5 = bitcast i8* %4 to x86_fp80* * * * * * * * * * rhs: %6 = load x86_fp80, x86_fp80* %value * * * * * ReturnStatement::toIR(): msgpack-d/src/msgpack.d(3188) * * * * * * AddrExp::toElem: &this @ Value* * * * * * * * ThisExp::toElem: this @ Value * * * * * * * * this exp without var declaration * * * * * * * is nothing special * * * * * * * lval: %msgpack.Value* %.this_arg * * * * * * return value is '0x13217370' * * DtoDefineFunction(msgpack.Value.this): msgpack-d/src/msgpack.d(3197) * * * isMember = this is: Value * * * DtoFunctionType(ref @trusted Value(Value[] value, Type type = cast(Type)5)) * * * * Building type: Type * * * * x86-64 ABI: Transforming argument types * * * * Final function type: %msgpack.Value* (%msgpack.Value*, i32, { i64, %msgpack.Value* }) * * * DtoResolveFunction(msgpack.Value.this): msgpack-d/src/msgpack.d(3197) * * * * DtoDeclareFunction(msgpack.Value.this): msgpack-d/src/msgpack.d(3197) * * * * * isMember = this is: Value * * * * * DtoFunctionType(ref @trusted Value(Value[] value, Type type = cast(Type)5)) * * * * * func = declare %msgpack.Value* @_D7msgpack5Value6__ctorMFNcNeAS7msgpack5ValueE7msgpack5Value4TypeZS7msgpack5Value(%msgpack.Value*, i32, { i64, %msgpack.Value* }) * * * Doing function body for: this * * * Building type: Type * * * DtoCreateNestedContext for this * * * * DtoCreateNestedContextType for msgpack.Value.this * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(3197) * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(3198) * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(3199) * * * * * * * CallExp::toElem: this.this(type) @ Value * * * * * * * * DotVarExp::toElem: this.this @ ref @safe Value(Type type) * * * * * * * * * ThisExp::toElem: this @ Value * * * * * * * * * * normal this exp * * * * * * * * DtoCallFunction() * * * * * * * * * doing normal arguments * * * * * * * * * Arguments so far: (1) * * * * * * * * * * %msgpack.Value* %.this_arg * * * * * * * * * Function type: ref @safe Value(Type type) * * * * * * * * * DtoArgument * * * * * * * * * * VarExp::toElem: type @ Type * * * * * * * * * * * DtoSymbolAddress ('type' of type 'Type') * * * * * * * * * * * * function param * * * * * * * * * * * * type: Type * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(3200) * * * * * * * AssignExp::toElem: this.via.array = value | (Value[])(Value[] = Value[]) * * * * * * * * DotVarExp::toElem: this.via.array @ Value[] * * * * * * * * * DotVarExp::toElem: this.via @ Via * * * * * * * * * * ThisExp::toElem: this @ Value * * * * * * * * * * * normal this exp * * * * * * * * * * Indexing aggregate field msgpack.Value.via: * * * * * * * * * * * Value: %3 = getelementptr %msgpack.Value, %msgpack.Value* %.this_arg, i32 0, i32 2 * * * * * * * * * Indexing aggregate field msgpack.Value.Via.array: * * * * * * * * * * Value: %5 = bitcast i8* %4 to { i64, %msgpack.Value* }* * * * * * * * * VarExp::toElem: value @ Value[] * * * * * * * * * DtoSymbolAddress ('value' of type 'Value[]') * * * * * * * * * * function param * * * * * * * * * * type: Value[] * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * DtoAssign() * * * * * * * * * DtoArrayAssign * * * * * * * * * * DtoArrayPtr * * * * * * * * * * DtoArrayLen * * * * * * * * * * SetArray * * * * * ReturnStatement::toIR(): msgpack-d/src/msgpack.d(3197) * * * * * * AddrExp::toElem: &this @ Value* * * * * * * * ThisExp::toElem: this @ Value * * * * * * * * this exp without var declaration * * * * * * * is nothing special * * * * * * * lval: %msgpack.Value* %.this_arg * * * * * * return value is '0x1321c880' * * DtoDefineFunction(msgpack.Value.this): msgpack-d/src/msgpack.d(3206) * * * isMember = this is: Value * * * DtoFunctionType(ref @trusted Value(Value[Value] value, Type type = cast(Type)6)) * * * * Building type: Value[Value] * * * * Building type: Type * * * * x86-64 ABI: Transforming argument types * * * * Final function type: %msgpack.Value* (%msgpack.Value*, i32, i8*) * * * DtoResolveFunction(msgpack.Value.this): msgpack-d/src/msgpack.d(3206) * * * * DtoDeclareFunction(msgpack.Value.this): msgpack-d/src/msgpack.d(3206) * * * * * isMember = this is: Value * * * * * DtoFunctionType(ref @trusted Value(Value[Value] value, Type type = cast(Type)6)) * * * * * func = declare %msgpack.Value* @_D7msgpack5Value6__ctorMFNcNeHS7msgpack5ValueS7msgpack5ValueE7msgpack5Value4TypeZS7msgpack5Value(%msgpack.Value*, i32, i8*) * * * Doing function body for: this * * * Building type: Value[Value] * * * Building type: Type * * * DtoCreateNestedContext for this * * * * DtoCreateNestedContextType for msgpack.Value.this * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(3206) * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(3207) * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(3208) * * * * * * * CallExp::toElem: this.this(type) @ Value * * * * * * * * DotVarExp::toElem: this.this @ ref @safe Value(Type type) * * * * * * * * * ThisExp::toElem: this @ Value * * * * * * * * * * normal this exp * * * * * * * * DtoCallFunction() * * * * * * * * * doing normal arguments * * * * * * * * * Arguments so far: (1) * * * * * * * * * * %msgpack.Value* %.this_arg * * * * * * * * * Function type: ref @safe Value(Type type) * * * * * * * * * DtoArgument * * * * * * * * * * VarExp::toElem: type @ Type * * * * * * * * * * * DtoSymbolAddress ('type' of type 'Type') * * * * * * * * * * * * function param * * * * * * * * * * * * type: Type * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(3209) * * * * * * * AssignExp::toElem: this.via.map = value | (Value[Value])(Value[Value] = Value[Value]) * * * * * * * * DotVarExp::toElem: this.via.map @ Value[Value] * * * * * * * * * DotVarExp::toElem: this.via @ Via * * * * * * * * * * ThisExp::toElem: this @ Value * * * * * * * * * * * normal this exp * * * * * * * * * * Indexing aggregate field msgpack.Value.via: * * * * * * * * * * * Value: %3 = getelementptr %msgpack.Value, %msgpack.Value* %.this_arg, i32 0, i32 2 * * * * * * * * * Indexing aggregate field msgpack.Value.Via.map: * * * * * * * * * * Building type: Value[Value] * * * * * * * * * * Value: %5 = bitcast i8* %4 to i8** * * * * * * * * VarExp::toElem: value @ Value[Value] * * * * * * * * * DtoSymbolAddress ('value' of type 'Value[Value]') * * * * * * * * * * function param * * * * * * * * * * type: Value[Value] * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * DtoAssign() * * * * * * * * * lhs: %5 = bitcast i8* %4 to i8** * * * * * * * * * rhs: %6 = load i8*, i8** %value * * * * * ReturnStatement::toIR(): msgpack-d/src/msgpack.d(3206) * * * * * * AddrExp::toElem: &this @ Value* * * * * * * * ThisExp::toElem: this @ Value * * * * * * * * this exp without var declaration * * * * * * * is nothing special * * * * * * * lval: %msgpack.Value* %.this_arg * * * * * * return value is '0x1321aa20' * * DtoDefineFunction(msgpack.Value.this): msgpack-d/src/msgpack.d(3215) * * * isMember = this is: Value * * * DtoFunctionType(ref @trusted Value(ubyte[] value, Type type = cast(Type)7)) * * * * Building type: Type * * * * x86-64 ABI: Transforming argument types * * * * Final function type: %msgpack.Value* (%msgpack.Value*, i32, { i64, i8* }) * * * DtoResolveFunction(msgpack.Value.this): msgpack-d/src/msgpack.d(3215) * * * * DtoDeclareFunction(msgpack.Value.this): msgpack-d/src/msgpack.d(3215) * * * * * isMember = this is: Value * * * * * DtoFunctionType(ref @trusted Value(ubyte[] value, Type type = cast(Type)7)) * * * * * func = declare %msgpack.Value* @_D7msgpack5Value6__ctorMFNcNeAhE7msgpack5Value4TypeZS7msgpack5Value(%msgpack.Value*, i32, { i64, i8* }) * * * Doing function body for: this * * * Building type: Type * * * DtoCreateNestedContext for this * * * * DtoCreateNestedContextType for msgpack.Value.this * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(3215) * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(3216) * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(3217) * * * * * * * CallExp::toElem: this.this(type) @ Value * * * * * * * * DotVarExp::toElem: this.this @ ref @safe Value(Type type) * * * * * * * * * ThisExp::toElem: this @ Value * * * * * * * * * * normal this exp * * * * * * * * DtoCallFunction() * * * * * * * * * doing normal arguments * * * * * * * * * Arguments so far: (1) * * * * * * * * * * %msgpack.Value* %.this_arg * * * * * * * * * Function type: ref @safe Value(Type type) * * * * * * * * * DtoArgument * * * * * * * * * * VarExp::toElem: type @ Type * * * * * * * * * * * DtoSymbolAddress ('type' of type 'Type') * * * * * * * * * * * * function param * * * * * * * * * * * * type: Type * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(3218) * * * * * * * AssignExp::toElem: this.via.raw = value | (ubyte[])(ubyte[] = ubyte[]) * * * * * * * * DotVarExp::toElem: this.via.raw @ ubyte[] * * * * * * * * * DotVarExp::toElem: this.via @ Via * * * * * * * * * * ThisExp::toElem: this @ Value * * * * * * * * * * * normal this exp * * * * * * * * * * Indexing aggregate field msgpack.Value.via: * * * * * * * * * * * Value: %3 = getelementptr %msgpack.Value, %msgpack.Value* %.this_arg, i32 0, i32 2 * * * * * * * * * Indexing aggregate field msgpack.Value.Via.raw: * * * * * * * * * * Value: %5 = bitcast i8* %4 to { i64, i8* }* * * * * * * * * VarExp::toElem: value @ ubyte[] * * * * * * * * * DtoSymbolAddress ('value' of type 'ubyte[]') * * * * * * * * * * function param * * * * * * * * * * type: ubyte[] * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * DtoAssign() * * * * * * * * * DtoArrayAssign * * * * * * * * * * DtoArrayPtr * * * * * * * * * * DtoArrayLen * * * * * * * * * * SetArray * * * * * ReturnStatement::toIR(): msgpack-d/src/msgpack.d(3215) * * * * * * AddrExp::toElem: &this @ Value* * * * * * * * ThisExp::toElem: this @ Value * * * * * * * * this exp without var declaration * * * * * * * is nothing special * * * * * * * lval: %msgpack.Value* %.this_arg * * * * * * return value is '0x1321d030' * * DtoDefineFunction(msgpack.Value.this): msgpack-d/src/msgpack.d(3223) * * * isMember = this is: Value * * * DtoFunctionType(ref @trusted Value(string value, Type type = cast(Type)7)) * * * * Building type: Type * * * * x86-64 ABI: Transforming argument types * * * * Final function type: %msgpack.Value* (%msgpack.Value*, i32, { i64, i8* }) * * * DtoResolveFunction(msgpack.Value.this): msgpack-d/src/msgpack.d(3223) * * * * DtoDeclareFunction(msgpack.Value.this): msgpack-d/src/msgpack.d(3223) * * * * * isMember = this is: Value * * * * * DtoFunctionType(ref @trusted Value(string value, Type type = cast(Type)7)) * * * * * func = declare %msgpack.Value* @_D7msgpack5Value6__ctorMFNcNeAyaE7msgpack5Value4TypeZS7msgpack5Value(%msgpack.Value*, i32, { i64, i8* }) * * * Doing function body for: this * * * Building type: Type * * * DtoCreateNestedContext for this * * * * DtoCreateNestedContextType for msgpack.Value.this * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(3223) * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(3224) * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(3225) * * * * * * * CallExp::toElem: this.this(type) @ Value * * * * * * * * DotVarExp::toElem: this.this @ ref @safe Value(Type type) * * * * * * * * * ThisExp::toElem: this @ Value * * * * * * * * * * normal this exp * * * * * * * * DtoCallFunction() * * * * * * * * * doing normal arguments * * * * * * * * * Arguments so far: (1) * * * * * * * * * * %msgpack.Value* %.this_arg * * * * * * * * * Function type: ref @safe Value(Type type) * * * * * * * * * DtoArgument * * * * * * * * * * VarExp::toElem: type @ Type * * * * * * * * * * * DtoSymbolAddress ('type' of type 'Type') * * * * * * * * * * * * function param * * * * * * * * * * * * type: Type * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(3226) * * * * * * * AssignExp::toElem: this.via.raw = cast(ubyte[])value | (ubyte[])(ubyte[] = ubyte[]) * * * * * * * * DotVarExp::toElem: this.via.raw @ ubyte[] * * * * * * * * * DotVarExp::toElem: this.via @ Via * * * * * * * * * * ThisExp::toElem: this @ Value * * * * * * * * * * * normal this exp * * * * * * * * * * Indexing aggregate field msgpack.Value.via: * * * * * * * * * * * Value: %3 = getelementptr %msgpack.Value, %msgpack.Value* %.this_arg, i32 0, i32 2 * * * * * * * * * Indexing aggregate field msgpack.Value.Via.raw: * * * * * * * * * * Value: %5 = bitcast i8* %4 to { i64, i8* }* * * * * * * * * CastExp::toElem: cast(ubyte[])value @ ubyte[] * * * * * * * * * VarExp::toElem: value @ string * * * * * * * * * * DtoSymbolAddress ('value' of type 'string') * * * * * * * * * * * function param * * * * * * * * * * * type: string * * * * * * * * * Casting from 'string' to 'ubyte[]' * * * * * * * * * * DtoCastArray * * * * * * * * * * * from array or sarray * * * * * * * * * * * to array * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * isslice * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * DtoAssign() * * * * * * * * * DtoArrayAssign * * * * * * * * * * DtoArrayPtr * * * * * * * * * * DtoArrayLen * * * * * * * * * * SetArray * * * * * ReturnStatement::toIR(): msgpack-d/src/msgpack.d(3223) * * * * * * AddrExp::toElem: &this @ Value* * * * * * * * ThisExp::toElem: this @ Value * * * * * * * * this exp without var declaration * * * * * * * is nothing special * * * * * * * lval: %msgpack.Value* %.this_arg * * * * * * return value is '0x1321fd30' * * Ignoring Dsymbol::codegen for msgpack.Value.as(T)() if (is(Unqual!T == bool)) * * Ignoring Dsymbol::codegen for msgpack.Value.as(T)() if (isIntegral!T && !is(Unqual!T == enum)) * * Ignoring Dsymbol::codegen for msgpack.Value.as(T)() if (isFloatingPoint!T && !is(Unqual!T == enum)) * * Ignoring Dsymbol::codegen for msgpack.Value.as(T)() if (is(Unqual!T == enum)) * * Ignoring Dsymbol::codegen for msgpack.Value.as(T)() if (isArray!T && !is(Unqual!T == enum)) * * Ignoring Dsymbol::codegen for msgpack.Value.as(T)() if (isAssociativeArray!T) * * Ignoring Dsymbol::codegen for msgpack.Value.as(T, Args...)(Args args) if (is(Unqual!T == class)) * * Ignoring Dsymbol::codegen for msgpack.Value.as(T)() if (is(Unqual!T == struct)) * * Ignoring Dsymbol::codegen for msgpack.Value.toMsgpack(Packer)(ref Packer packer) * * Ignoring Dsymbol::codegen for msgpack.Value.opEquals(Tdummy = void)(ref const Value other) * * Ignoring Dsymbol::codegen for msgpack.Value.opEquals(T : bool)(in T other) * * Ignoring Dsymbol::codegen for msgpack.Value.opEquals(T : ulong)(in T other) * * Ignoring Dsymbol::codegen for msgpack.Value.opEquals(T : real)(in T other) * * Ignoring Dsymbol::codegen for msgpack.Value.opEquals(T : const(Value[]))(in T other) * * Ignoring Dsymbol::codegen for msgpack.Value.opEquals(T : const(Value[Value]))(in T other) * * Ignoring Dsymbol::codegen for msgpack.Value.opEquals(T : const(ubyte)[])(in T other) * * Ignoring Dsymbol::codegen for msgpack.Value.opEquals(T : string)(in T other) * * DtoDefineFunction(msgpack.Value.toHash): msgpack-d/src/msgpack.d(3593) * * * Doing function body for: toHash * * * DtoCreateNestedContext for toHash * * * * DtoCreateNestedContextType for msgpack.Value.toHash * * * * * has nested frame * * * * * Function toHash has depth 0 * * * * * Nested var 'ret' of type i64 * * * * * frameType = %nest.toHash = type { i64 } * * * * nested var: ret * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(3594) * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(3595) * * * * * * DeclarationExp::toElem: static template getHash(T) | T=void * * * * * * * DtoDeclarationExp: __anonymous * * * * * * * * AttribDeclaration * * * * * * * * DtoDeclarationExp: getHash(T)(T* v) * * * * * * * * * Ignoring Symbol: template * * * * * SwitchStatement::toIR(): msgpack-d/src/msgpack.d(3600) * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(3600) * * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(3600) * * * * * * * * CaseStatement::toIR(): msgpack-d/src/msgpack.d(3601) * * * * * * * * * IntegerExp::toConstElem: cast(Type)0 @ const(Type) * * * * * * * * * * Building type: Type * * * * * * * * * * value = i32 0 * * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(3601) * * * * * * * * * * ReturnStatement::toIR(): msgpack-d/src/msgpack.d(3601) * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * return value is '0x120dec80' * * * * * * * * CaseStatement::toIR(): msgpack-d/src/msgpack.d(3602) * * * * * * * * * IntegerExp::toConstElem: cast(Type)1 @ const(Type) * * * * * * * * * * Building type: Type * * * * * * * * * * value = i32 1 * * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(3602) * * * * * * * * * * ReturnStatement::toIR(): msgpack-d/src/msgpack.d(3602) * * * * * * * * * * * CallExp::toElem: getHash(&this.via.boolean) @ ulong * * * * * * * * * * * * VarExp::toElem: getHash @ nothrow @safe ulong(const(bool)* v) * * * * * * * * * * * * * DtoSymbolAddress ('getHash' of type 'nothrow @safe ulong(const(bool)* v)') * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * DtoFunctionType(nothrow @safe ulong(const(bool)* v)) * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * Final function type: i64 (i8*) * * * * * * * * * * * * * * DtoResolveFunction(msgpack.Value.toHash.getHash!(const(bool)).getHash): msgpack-d/src/msgpack.d(3595) * * * * * * * * * * * * * * * DtoDeclareFunction(msgpack.Value.toHash.getHash!(const(bool)).getHash): msgpack-d/src/msgpack.d(3595) * * * * * * * * * * * * * * * * DtoFunctionType(nothrow @safe ulong(const(bool)* v)) * * * * * * * * * * * * * * * * func = declare i64 @_D7msgpack5Value6toHashMxFNbNeZ15__T7getHashTxbZ7getHashFNbNfPxbZm(i8*) * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * Building type: nothrow @safe ulong(const(bool)* v) * * * * * * * * * * * * * * DtoFunctionType(nothrow @safe ulong(const(bool)* v)) * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * Final function type: i64 (i8*) * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * Function type: nothrow @safe ulong(const(bool)* v) * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * AddrExp::toElem: &this.via.boolean @ const(bool)* * * * * * * * * * * * * * * * DotVarExp::toElem: this.via.boolean @ const(bool) * * * * * * * * * * * * * * * * DotVarExp::toElem: this.via @ const(Via) * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ const(Value) * * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.Value.via: * * * * * * * * * * * * * * * * * * Value: %1 = getelementptr %msgpack.Value, %msgpack.Value* %.this_arg, i32 0, i32 2 * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.Value.Via.boolean: * * * * * * * * * * * * * * * * * Value: %2 = getelementptr %msgpack.Value.Via, %msgpack.Value.Via* %1, i32 0, i32 0 * * * * * * * * * * * * * * * is nothing special * * * * * * * * * * * * * * * lval: %2 = getelementptr %msgpack.Value.Via, %msgpack.Value.Via* %1, i32 0, i32 0 * * * * * * * * * * * return value is '0x13229a00' * * * * * * * * CaseStatement::toIR(): msgpack-d/src/msgpack.d(3603) * * * * * * * * * IntegerExp::toConstElem: cast(Type)2 @ const(Type) * * * * * * * * * * Building type: Type * * * * * * * * * * value = i32 2 * * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(3603) * * * * * * * * * * ReturnStatement::toIR(): msgpack-d/src/msgpack.d(3603) * * * * * * * * * * * CallExp::toElem: getHash(&this.via.uinteger) @ ulong * * * * * * * * * * * * VarExp::toElem: getHash @ nothrow @safe ulong(const(ulong)* v) * * * * * * * * * * * * * DtoSymbolAddress ('getHash' of type 'nothrow @safe ulong(const(ulong)* v)') * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * DtoFunctionType(nothrow @safe ulong(const(ulong)* v)) * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * Final function type: i64 (i64*) * * * * * * * * * * * * * * DtoResolveFunction(msgpack.Value.toHash.getHash!(const(ulong)).getHash): msgpack-d/src/msgpack.d(3595) * * * * * * * * * * * * * * * DtoDeclareFunction(msgpack.Value.toHash.getHash!(const(ulong)).getHash): msgpack-d/src/msgpack.d(3595) * * * * * * * * * * * * * * * * DtoFunctionType(nothrow @safe ulong(const(ulong)* v)) * * * * * * * * * * * * * * * * func = declare i64 @_D7msgpack5Value6toHashMxFNbNeZ15__T7getHashTxmZ7getHashFNbNfPxmZm(i64*) * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * Building type: nothrow @safe ulong(const(ulong)* v) * * * * * * * * * * * * * * DtoFunctionType(nothrow @safe ulong(const(ulong)* v)) * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * Final function type: i64 (i64*) * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * Function type: nothrow @safe ulong(const(ulong)* v) * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * AddrExp::toElem: &this.via.uinteger @ const(ulong)* * * * * * * * * * * * * * * * DotVarExp::toElem: this.via.uinteger @ const(ulong) * * * * * * * * * * * * * * * * DotVarExp::toElem: this.via @ const(Via) * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ const(Value) * * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.Value.via: * * * * * * * * * * * * * * * * * * Value: %4 = getelementptr %msgpack.Value, %msgpack.Value* %.this_arg, i32 0, i32 2 * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.Value.Via.uinteger: * * * * * * * * * * * * * * * * * Value: %6 = bitcast i8* %5 to i64* * * * * * * * * * * * * * * * is nothing special * * * * * * * * * * * * * * * lval: %6 = bitcast i8* %5 to i64* * * * * * * * * * * * return value is '0x1322baf0' * * * * * * * * CaseStatement::toIR(): msgpack-d/src/msgpack.d(3604) * * * * * * * * * IntegerExp::toConstElem: cast(Type)3 @ const(Type) * * * * * * * * * * Building type: Type * * * * * * * * * * value = i32 3 * * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(3604) * * * * * * * * * * ReturnStatement::toIR(): msgpack-d/src/msgpack.d(3604) * * * * * * * * * * * CallExp::toElem: getHash(&this.via.integer) @ ulong * * * * * * * * * * * * VarExp::toElem: getHash @ nothrow @safe ulong(const(long)* v) * * * * * * * * * * * * * DtoSymbolAddress ('getHash' of type 'nothrow @safe ulong(const(long)* v)') * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * DtoFunctionType(nothrow @safe ulong(const(long)* v)) * * * * * * * * * * * * * * * Building type: const(long)* * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * Final function type: i64 (i64*) * * * * * * * * * * * * * * DtoResolveFunction(msgpack.Value.toHash.getHash!(const(long)).getHash): msgpack-d/src/msgpack.d(3595) * * * * * * * * * * * * * * * DtoDeclareFunction(msgpack.Value.toHash.getHash!(const(long)).getHash): msgpack-d/src/msgpack.d(3595) * * * * * * * * * * * * * * * * DtoFunctionType(nothrow @safe ulong(const(long)* v)) * * * * * * * * * * * * * * * * func = declare i64 @_D7msgpack5Value6toHashMxFNbNeZ15__T7getHashTxlZ7getHashFNbNfPxlZm(i64*) * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * Building type: nothrow @safe ulong(const(long)* v) * * * * * * * * * * * * * * DtoFunctionType(nothrow @safe ulong(const(long)* v)) * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * Final function type: i64 (i64*) * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * Function type: nothrow @safe ulong(const(long)* v) * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * AddrExp::toElem: &this.via.integer @ const(long)* * * * * * * * * * * * * * * * DotVarExp::toElem: this.via.integer @ const(long) * * * * * * * * * * * * * * * * DotVarExp::toElem: this.via @ const(Via) * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ const(Value) * * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.Value.via: * * * * * * * * * * * * * * * * * * Value: %8 = getelementptr %msgpack.Value, %msgpack.Value* %.this_arg, i32 0, i32 2 * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.Value.Via.integer: * * * * * * * * * * * * * * * * * Value: %10 = bitcast i8* %9 to i64* * * * * * * * * * * * * * * * is nothing special * * * * * * * * * * * * * * * lval: %10 = bitcast i8* %9 to i64* * * * * * * * * * * * return value is '0x1322dd90' * * * * * * * * CaseStatement::toIR(): msgpack-d/src/msgpack.d(3605) * * * * * * * * * IntegerExp::toConstElem: cast(Type)4 @ const(Type) * * * * * * * * * * Building type: Type * * * * * * * * * * value = i32 4 * * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(3605) * * * * * * * * * * ReturnStatement::toIR(): msgpack-d/src/msgpack.d(3605) * * * * * * * * * * * CallExp::toElem: getHash(&this.via.floating) @ ulong * * * * * * * * * * * * VarExp::toElem: getHash @ nothrow @safe ulong(const(real)* v) * * * * * * * * * * * * * DtoSymbolAddress ('getHash' of type 'nothrow @safe ulong(const(real)* v)') * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * DtoFunctionType(nothrow @safe ulong(const(real)* v)) * * * * * * * * * * * * * * * Building type: const(real)* * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * Final function type: i64 (x86_fp80*) * * * * * * * * * * * * * * DtoResolveFunction(msgpack.Value.toHash.getHash!(const(real)).getHash): msgpack-d/src/msgpack.d(3595) * * * * * * * * * * * * * * * DtoDeclareFunction(msgpack.Value.toHash.getHash!(const(real)).getHash): msgpack-d/src/msgpack.d(3595) * * * * * * * * * * * * * * * * DtoFunctionType(nothrow @safe ulong(const(real)* v)) * * * * * * * * * * * * * * * * func = declare i64 @_D7msgpack5Value6toHashMxFNbNeZ15__T7getHashTxeZ7getHashFNbNfPxeZm(x86_fp80*) * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * Building type: nothrow @safe ulong(const(real)* v) * * * * * * * * * * * * * * DtoFunctionType(nothrow @safe ulong(const(real)* v)) * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * Final function type: i64 (x86_fp80*) * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * Function type: nothrow @safe ulong(const(real)* v) * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * AddrExp::toElem: &this.via.floating @ const(real)* * * * * * * * * * * * * * * * DotVarExp::toElem: this.via.floating @ const(real) * * * * * * * * * * * * * * * * DotVarExp::toElem: this.via @ const(Via) * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ const(Value) * * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.Value.via: * * * * * * * * * * * * * * * * * * Value: %12 = getelementptr %msgpack.Value, %msgpack.Value* %.this_arg, i32 0, i32 2 * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.Value.Via.floating: * * * * * * * * * * * * * * * * * Value: %14 = bitcast i8* %13 to x86_fp80* * * * * * * * * * * * * * * * is nothing special * * * * * * * * * * * * * * * lval: %14 = bitcast i8* %13 to x86_fp80* * * * * * * * * * * * return value is '0x1322fed0' * * * * * * * * CaseStatement::toIR(): msgpack-d/src/msgpack.d(3606) * * * * * * * * * IntegerExp::toConstElem: cast(Type)7 @ const(Type) * * * * * * * * * * Building type: Type * * * * * * * * * * value = i32 7 * * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(3606) * * * * * * * * * * ReturnStatement::toIR(): msgpack-d/src/msgpack.d(3606) * * * * * * * * * * * CallExp::toElem: getHash(&this.via.raw) @ ulong * * * * * * * * * * * * VarExp::toElem: getHash @ nothrow @safe ulong(const(ubyte[])* v) * * * * * * * * * * * * * DtoSymbolAddress ('getHash' of type 'nothrow @safe ulong(const(ubyte[])* v)') * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * DtoFunctionType(nothrow @safe ulong(const(ubyte[])* v)) * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * Final function type: i64 ({ i64, i8* }*) * * * * * * * * * * * * * * DtoResolveFunction(msgpack.Value.toHash.getHash!(const(ubyte[])).getHash): msgpack-d/src/msgpack.d(3595) * * * * * * * * * * * * * * * DtoDeclareFunction(msgpack.Value.toHash.getHash!(const(ubyte[])).getHash): msgpack-d/src/msgpack.d(3595) * * * * * * * * * * * * * * * * DtoFunctionType(nothrow @safe ulong(const(ubyte[])* v)) * * * * * * * * * * * * * * * * func = declare i64 @_D7msgpack5Value6toHashMxFNbNeZ16__T7getHashTxAhZ7getHashFNbNfPxAhZm({ i64, i8* }*) * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * Building type: nothrow @safe ulong(const(ubyte[])* v) * * * * * * * * * * * * * * DtoFunctionType(nothrow @safe ulong(const(ubyte[])* v)) * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * Final function type: i64 ({ i64, i8* }*) * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * Function type: nothrow @safe ulong(const(ubyte[])* v) * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * AddrExp::toElem: &this.via.raw @ const(ubyte[])* * * * * * * * * * * * * * * * DotVarExp::toElem: this.via.raw @ const(ubyte[]) * * * * * * * * * * * * * * * * DotVarExp::toElem: this.via @ const(Via) * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ const(Value) * * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.Value.via: * * * * * * * * * * * * * * * * * * Value: %16 = getelementptr %msgpack.Value, %msgpack.Value* %.this_arg, i32 0, i32 2 * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.Value.Via.raw: * * * * * * * * * * * * * * * * * Value: %18 = bitcast i8* %17 to { i64, i8* }* * * * * * * * * * * * * * * * is nothing special * * * * * * * * * * * * * * * lval: %18 = bitcast i8* %17 to { i64, i8* }* * * * * * * * * * * * return value is '0x132326b0' * * * * * * * * CaseStatement::toIR(): msgpack-d/src/msgpack.d(3607) * * * * * * * * * IntegerExp::toConstElem: cast(Type)5 @ const(Type) * * * * * * * * * * Building type: Type * * * * * * * * * * value = i32 5 * * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(3607) * * * * * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(3607) * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(3608) * * * * * * * * * * * * DeclarationExp::toElem: ulong ret = 0LU; | T=void * * * * * * * * * * * * * DtoDeclarationExp: ret * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * * * * * * * llvm value for decl: %ret12 = alloca i64, align 8 * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * AssignExp::toElem: ret = 0LU | (ulong)(ulong = ulong) * * * * * * * * * * * * * * * * VarExp::toElem: ret @ ulong * * * * * * * * * * * * * * * * * DtoSymbolAddress ('ret' of type 'ulong') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * lhs: %ret12 = alloca i64, align 8 * * * * * * * * * * * * * * * * * rhs: i64 0 * * * * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(3609) * * * * * * * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(3609) * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(3609) * * * * * * * * * * * * * * DeclarationExp::toElem: const(Value)[] __aggr3503 = this.via.array[]; | T=void * * * * * * * * * * * * * * * DtoDeclarationExp: __aggr3503 * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = const(Value)[]) * * * * * * * * * * * * * * * * * llvm value for decl: %__aggr3503 = alloca { i64, %msgpack.Value* }, align 8 * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * AssignExp::toElem: __aggr3503 = this.via.array[] | (const(Value)[])(const(Value)[] = const(Value)[]) * * * * * * * * * * * * * * * * * * VarExp::toElem: __aggr3503 @ const(Value)[] * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__aggr3503' of type 'const(Value)[]') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * SliceExp::toElem: this.via.array[] @ const(Value)[] * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: this.via.array @ const(Value[]) * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: this.via @ const(Via) * * * * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ const(Value) * * * * * * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.Value.via: * * * * * * * * * * * * * * * * * * * * * * Value: %20 = getelementptr %msgpack.Value, %msgpack.Value* %.this_arg, i32 0, i32 2 * * * * * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.Value.Via.array: * * * * * * * * * * * * * * * * * * * * * Value: %22 = bitcast i8* %21 to { i64, %msgpack.Value* }* * * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * * * SetArray * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(3609) * * * * * * * * * * * * * * DeclarationExp::toElem: ulong __key3504 = 0LU; | T=void * * * * * * * * * * * * * * * DtoDeclarationExp: __key3504 * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * * * * * * * * * llvm value for decl: %__key3504 = alloca i64, align 8 * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * AssignExp::toElem: __key3504 = 0LU | (ulong)(ulong = ulong) * * * * * * * * * * * * * * * * * * VarExp::toElem: __key3504 @ ulong * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__key3504' of type 'ulong') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * lhs: %__key3504 = alloca i64, align 8 * * * * * * * * * * * * * * * * * * * rhs: i64 0 * * * * * * * * * * * * * ForStatement::toIR(): msgpack-d/src/msgpack.d(3609) * * * * * * * * * * * * * * CmpExp::toElem: __key3504 < __aggr3503.length @ bool * * * * * * * * * * * * * * * VarExp::toElem: __key3504 @ ulong * * * * * * * * * * * * * * * * DtoSymbolAddress ('__key3504' of type 'ulong') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * ArrayLengthExp::toElem: __aggr3503.length @ ulong * * * * * * * * * * * * * * * * VarExp::toElem: __aggr3503 @ const(Value)[] * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__aggr3503' of type 'const(Value)[]') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * type 1: %28 = load i64, i64* %__key3504 * * * * * * * * * * * * * * * type 2: %.len13 = load i64, i64* %27 * * * * * * * * * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(3609) * * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(3609) * * * * * * * * * * * * * * * * DeclarationExp::toElem: const const(Value) elem = __aggr3503[__key3504]; | T=void * * * * * * * * * * * * * * * * * DtoDeclarationExp: elem * * * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = const(Value)) * * * * * * * * * * * * * * * * * * * llvm value for decl: %elem = alloca %msgpack.Value, align 16 * * * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * * * AssignExp::toElem: elem = __aggr3503[__key3504] | (const(Value))(const(Value) = const(Value)) * * * * * * * * * * * * * * * * * * * * VarExp::toElem: elem @ const(Value) * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('elem' of type 'const(Value)') * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * IndexExp::toElem: __aggr3503[__key3504] @ const(Value) * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: __aggr3503 @ const(Value)[] * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__aggr3503' of type 'const(Value)[]') * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: __key3504 @ ulong * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__key3504' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(3610) * * * * * * * * * * * * * * * * XorAssignExp::toElem: ret ^= elem.toHash() @ ulong * * * * * * * * * * * * * * * * * Caching l-value of ret ^= elem.toHash() => ret * * * * * * * * * * * * * * * * * * VarExp::toElem: ret @ ulong * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('ret' of type 'ulong') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * XorExp::toElem: ret ^ elem.toHash() @ ulong * * * * * * * * * * * * * * * * * * VarExp::toElem: ret @ ulong * * * * * * * * * * * * * * * * * * CallExp::toElem: elem.toHash() @ ulong * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: elem.toHash @ const nothrow @trusted ulong() * * * * * * * * * * * * * * * * * * * * VarExp::toElem: elem @ const(Value) * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('elem' of type 'const(Value)') * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * Building type: const nothrow @trusted ulong() * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(const nothrow @trusted ulong()) * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * * * Final function type: i64 () * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * * * * %elem = alloca %msgpack.Value, align 16 * * * * * * * * * * * * * * * * * * * * Function type: const nothrow @trusted ulong() * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * lhs: %ret12 = alloca i64, align 8 * * * * * * * * * * * * * * * * * * rhs: %37 = xor i64 %36, %35 * * * * * * * * * * * * * * AddAssignExp::toElem: __key3504 += 1LU @ ulong * * * * * * * * * * * * * * * Caching l-value of __key3504 += 1LU => __key3504 * * * * * * * * * * * * * * * * VarExp::toElem: __key3504 @ ulong * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__key3504' of type 'ulong') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * AddExp::toElem: __key3504 + 1LU @ ulong * * * * * * * * * * * * * * * * VarExp::toElem: __key3504 @ ulong * * * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * lhs: %__key3504 = alloca i64, align 8 * * * * * * * * * * * * * * * * rhs: %39 = add i64 %38, 1 * * * * * * * * * * * ReturnStatement::toIR(): msgpack-d/src/msgpack.d(3611) * * * * * * * * * * * * VarExp::toElem: ret @ ulong * * * * * * * * * * * * * DtoSymbolAddress ('ret' of type 'ulong') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * return value is '0x13237938' * * * * * * * * CaseStatement::toIR(): msgpack-d/src/msgpack.d(3612) * * * * * * * * * IntegerExp::toConstElem: cast(Type)6 @ const(Type) * * * * * * * * * * Building type: Type * * * * * * * * * * value = i32 6 * * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(3612) * * * * * * * * * * TryCatchStatement::toIR(): msgpack-d/src/msgpack.d(3613) * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(3620) * * * * * * * * * * * * HaltExp::toElem: halt * * * * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(3613) * * * * * * * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(3613) * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(3614) * * * * * * * * * * * * * * DeclarationExp::toElem: ulong ret = 0LU; | T=void * * * * * * * * * * * * * * * DtoDeclarationExp: ret * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * * * * * * * * * has nestedref set (referenced by nested function/delegate) * * * * * * * * * * * * * * * * * llvm value for decl: %ret = getelementptr %nest.toHash, %nest.toHash* %.frame, i32 0, i32 0 * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * AssignExp::toElem: ret = 0LU | (ulong)(ulong = ulong) * * * * * * * * * * * * * * * * * * VarExp::toElem: ret @ ulong * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('ret' of type 'ulong') * * * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for ret @ msgpack-d/src/msgpack.d(3614) * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * lhs: %ret = getelementptr %nest.toHash, %nest.toHash* %.frame, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * rhs: i64 0 * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(3615) * * * * * * * * * * * * * * CallExp::toElem: _aaApply2(this.via.map, 32LU, delegate int(ref Value __applyArg0, ref const(Value) __applyArg1) => 0) @ int * * * * * * * * * * * * * * * VarExp::toElem: _aaApply2 @ extern (C) int(void*, in ulong, int delegate(void*, void*)) * * * * * * * * * * * * * * * * DtoSymbolAddress ('_aaApply2' of type 'extern (C) int(void*, in ulong, int delegate(void*, void*))') * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * DtoFunctionType(extern (C) int(void*, in ulong, int delegate(void*, void*))) * * * * * * * * * * * * * * * * * * Building type: int delegate(void*, void*) * * * * * * * * * * * * * * * * * * * DtoFunctionType(int(void*, void*)) * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * Final function type: i32 (i8*, i8*, i8*) * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * Final function type: i32 (i8*, i64, { i8*, i32 (i8*, i8*, i8*)* }) * * * * * * * * * * * * * * * * * DtoResolveFunction(_aaApply2): * * * * * * * * * * * * * * * * * * DtoDeclareFunction(_aaApply2): * * * * * * * * * * * * * * * * * * * DtoFunctionType(extern (C) int(void*, in ulong, int delegate(void*, void*))) * * * * * * * * * * * * * * * * * * * func = declare i32 @_aaApply2(i8*, i64, { i8*, i32 (i8*, i8*, i8*)* }) * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * Building type: extern (C) int(void*, in ulong, int delegate(void*, void*)) * * * * * * * * * * * * * * * * * DtoFunctionType(extern (C) int(void*, in ulong, int delegate(void*, void*))) * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * Final function type: i32 (i8*, i64, { i8*, i32 (i8*, i8*, i8*)* }) * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * Function type: extern (C) int(void*, in ulong, int delegate(void*, void*)) * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * DotVarExp::toElem: this.via.map @ const(Value[Value]) * * * * * * * * * * * * * * * * * * DotVarExp::toElem: this.via @ const(Via) * * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ const(Value) * * * * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.Value.via: * * * * * * * * * * * * * * * * * * * * Value: %42 = getelementptr %msgpack.Value, %msgpack.Value* %.this_arg, i32 0, i32 2 * * * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.Value.Via.map: * * * * * * * * * * * * * * * * * * * Building type: Value[Value] * * * * * * * * * * * * * * * * * * * Value: %44 = bitcast i8* %43 to i8** * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * IntegerExp::toElem: 32LU @ ulong * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 32LU @ ulong * * * * * * * * * * * * * * * * * * * value = i64 32 * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * FuncExp::toElem: __foreachbody1 @ int delegate(void*, void*) * * * * * * * * * * * * * * * * * * nested * * * * * * * * * * * * * * * * * * kind = delegate * * * * * * * * * * * * * * * * * * DtoDefineFunction(msgpack.Value.toHash.__foreachbody1): msgpack-d/src/msgpack.d(3615) * * * * * * * * * * * * * * * * * * * DtoFunctionType(nothrow @trusted int(ref Value __applyArg0, ref const(Value) __applyArg1)) * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * Final function type: i32 (i8*, %msgpack.Value*, %msgpack.Value*) * * * * * * * * * * * * * * * * * * * DtoResolveFunction(msgpack.Value.toHash.__foreachbody1): msgpack-d/src/msgpack.d(3615) * * * * * * * * * * * * * * * * * * * * DtoDeclareFunction(msgpack.Value.toHash.__foreachbody1): msgpack-d/src/msgpack.d(3615) * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(nothrow @trusted int(ref Value __applyArg0, ref const(Value) __applyArg1)) * * * * * * * * * * * * * * * * * * * * * func = declare i32 @_D7msgpack5Value6toHashMxFNbNeZ14__foreachbody1MFNbNeKS7msgpack5ValueKxS7msgpack5ValueZi(i8*, %msgpack.Value*, %msgpack.Value*) * * * * * * * * * * * * * * * * * * * Doing function body for: __foreachbody1 * * * * * * * * * * * * * * * * * * * DtoCreateNestedContext for __foreachbody1 * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.Value.toHash.__foreachbody1 * * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.Value.toHash * * * * * * * * * * * * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * * * * * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * * * * * * * * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(3615) * * * * * * * * * * * * * * * * * * * * * * ExpStatement::toIR(): * * * * * * * * * * * * * * * * * * * * * * * DeclarationExp::toElem: const const(Value) value = __applyArg1; | T=void * * * * * * * * * * * * * * * * * * * * * * * * DtoDeclarationExp: value * * * * * * * * * * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = const(Value)) * * * * * * * * * * * * * * * * * * * * * * * * * * llvm value for decl: %value = alloca %msgpack.Value, align 16 * * * * * * * * * * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * * * * * * * * * * AssignExp::toElem: value = __applyArg1 | (const(Value))(const(Value) = const(Value)) * * * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: value @ const(Value) * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('value' of type 'const(Value)') * * * * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: __applyArg1 @ const(Value) * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__applyArg1' of type 'const(Value)') * * * * * * * * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * * * * * * * * type: const(Value) * * * * * * * * * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * * * ExpStatement::toIR(): * * * * * * * * * * * * * * * * * * * * * * * DeclarationExp::toElem: Value key = __applyArg0; | T=void * * * * * * * * * * * * * * * * * * * * * * * * DtoDeclarationExp: key * * * * * * * * * * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = Value) * * * * * * * * * * * * * * * * * * * * * * * * * * llvm value for decl: %key = alloca %msgpack.Value, align 16 * * * * * * * * * * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * * * * * * * * * * AssignExp::toElem: key = __applyArg0 | (Value)(Value = Value) * * * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: key @ Value * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('key' of type 'Value') * * * * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: __applyArg0 @ Value * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__applyArg0' of type 'Value') * * * * * * * * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * * * * * * * * type: Value * * * * * * * * * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(3616) * * * * * * * * * * * * * * * * * * * * * * * XorAssignExp::toElem: ret ^= key.toHash() @ ulong * * * * * * * * * * * * * * * * * * * * * * * * Caching l-value of ret ^= key.toHash() => ret * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: ret @ ulong * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('ret' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for ret @ msgpack-d/src/msgpack.d(3616) * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.Value.toHash * * * * * * * * * * * * * * * * * * * * * * * * * * * * Context: %6 = bitcast i8* %5 to %nest.toHash* * * * * * * * * * * * * * * * * * * * * * * * * * * * * of type: %nest.toHash = type { i64 } * * * * * * * * * * * * * * * * * * * * * * * * * * * * Variable: ret * * * * * * * * * * * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * * * * * * * * * * * Function: __foreachbody1 * * * * * * * * * * * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * * * * * * * * * * * Addr: %ret = getelementptr %nest.toHash, %nest.toHash* %6, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * * * * * * * * * * of type: i64* * * * * * * * * * * * * * * * * * * * * * * * * XorExp::toElem: ret ^ key.toHash() @ ulong * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: ret @ ulong * * * * * * * * * * * * * * * * * * * * * * * * * CallExp::toElem: key.toHash() @ ulong * * * * * * * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: key.toHash @ const nothrow @trusted ulong() * * * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: key @ Value * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('key' of type 'Value') * * * * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * * * * * * * * * * * %key = alloca %msgpack.Value, align 16 * * * * * * * * * * * * * * * * * * * * * * * * * * * Function type: const nothrow @trusted ulong() * * * * * * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * * * * * * lhs: %ret = getelementptr %nest.toHash, %nest.toHash* %6, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * * * * * * * rhs: %9 = xor i64 %8, %7 * * * * * * * * * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(3617) * * * * * * * * * * * * * * * * * * * * * * * XorAssignExp::toElem: ret ^= value.toHash() @ ulong * * * * * * * * * * * * * * * * * * * * * * * * Caching l-value of ret ^= value.toHash() => ret * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: ret @ ulong * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('ret' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for ret @ msgpack-d/src/msgpack.d(3617) * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.Value.toHash * * * * * * * * * * * * * * * * * * * * * * * * * * * * Context: %11 = bitcast i8* %10 to %nest.toHash* * * * * * * * * * * * * * * * * * * * * * * * * * * * * of type: %nest.toHash = type { i64 } * * * * * * * * * * * * * * * * * * * * * * * * * * * * Variable: ret * * * * * * * * * * * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * * * * * * * * * * * Function: __foreachbody1 * * * * * * * * * * * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * * * * * * * * * * * Addr: %ret1 = getelementptr %nest.toHash, %nest.toHash* %11, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * * * * * * * * * * of type: i64* * * * * * * * * * * * * * * * * * * * * * * * * XorExp::toElem: ret ^ value.toHash() @ ulong * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: ret @ ulong * * * * * * * * * * * * * * * * * * * * * * * * * CallExp::toElem: value.toHash() @ ulong * * * * * * * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: value.toHash @ const nothrow @trusted ulong() * * * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: value @ const(Value) * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('value' of type 'const(Value)') * * * * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * * * * * * * * * * * %value = alloca %msgpack.Value, align 16 * * * * * * * * * * * * * * * * * * * * * * * * * * * Function type: const nothrow @trusted ulong() * * * * * * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * * * * * * lhs: %ret1 = getelementptr %nest.toHash, %nest.toHash* %11, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * * * * * * * rhs: %14 = xor i64 %13, %12 * * * * * * * * * * * * * * * * * * * * * ReturnStatement::toIR(): * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 0 @ int * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0 @ int * * * * * * * * * * * * * * * * * * * * * * * * value = i32 0 * * * * * * * * * * * * * * * * * * * * * * return value is '0x120e1350' * * * * * * * * * * * * * ReturnStatement::toIR(): msgpack-d/src/msgpack.d(3619) * * * * * * * * * * * * * * VarExp::toElem: ret @ ulong * * * * * * * * * * * * * * * DtoSymbolAddress ('ret' of type 'ulong') * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * DtoNestedVariable for ret @ msgpack-d/src/msgpack.d(3619) * * * * * * * * * * * * * * return value is '0x1323fcb8' * * * * * * DotVarExp::toElem: this.type @ const(Type) * * * * * * * ThisExp::toElem: this @ const(Value) * * * * * * * * normal this exp * * * * * * * Indexing aggregate field msgpack.Value.type: * * * * * * * * Building type: Type * * * * * * * * Value: %1 = getelementptr %msgpack.Value, %msgpack.Value* %.this_arg, i32 0, i32 0 * * Building default initializer for msgpack.Value * * * Creating initializer constant for Value * * * * Implicit initializer: type @+0 * * * * * DtoConstExpInit(targetType = Type, exp = cast(Type)0) * * * * * * IntegerExp::toConstElem: cast(Type)0 @ Type * * * * * * * Building type: Type * * * * * * * value = i32 0 * * * * Implicit initializer: via @+16 * * * * * DtoConstExpInit(targetType = Via, exp = Via) * * * * * * VarExp::toConstElem: Via @ Via * * * * * * * Sym: type=Via * * * * adding field type * * * * Building type: Type * * * * adding field via * * * * final initializer: %msgpack.Value_init zeroinitializer * * DtoTypeInfoOf(type = 'Value', base='1') * * * Type::getTypeInfo(): Value * * * TypeInfoDeclaration::codegen(typeid(Value)) * * DtoDefineFunction(msgpack.Value.__xopEquals): * * * Doing function body for: __xopEquals * * * DtoCreateNestedContext for __xopEquals * * * * DtoCreateNestedContextType for msgpack.Value.__xopEquals * * * CompoundStatement::toIR(): * * * * ReturnStatement::toIR(): * * * * * CallExp::toElem: p.opEquals(q) @ bool * * * * * * DotVarExp::toElem: p.opEquals @ const @trusted bool(ref const(Value) other) * * * * * * * VarExp::toElem: p @ const(Value) * * * * * * * * DtoSymbolAddress ('p' of type 'const(Value)') * * * * * * * * * function param * * * * * * * * * type: const(Value) * * * * * * DtoCallFunction() * * * * * * * doing normal arguments * * * * * * * Arguments so far: (1) * * * * * * * * %msgpack.Value* %p_arg * * * * * * * Function type: const @trusted bool(ref const(Value) other) * * * * * * * DtoArgument * * * * * * * * VarExp::toElem: q @ const(Value) * * * * * * * * * DtoSymbolAddress ('q' of type 'const(Value)') * * * * * * * * * * function param * * * * * * * * * * type: const(Value) * * * * * return value is '0x13240eb8' * * DtoDefineFunction(msgpack.Value.toHash): msgpack-d/src/msgpack.d(3593) * DtoDefineFunction(msgpack.__unittestL3626_9): msgpack-d/src/msgpack.d(3626) * * Ignoring unittest msgpack.__unittestL3626_9 * * No code generation for unit test declaration __unittestL3626_9 * StructDeclaration::codegen: 'msgpack.Unpacked' * * Resolving struct type: Unpacked (msgpack-d/src/msgpack.d(3808)) * * VarDeclaration::codegen(): 'msgpack.Unpacked.value' * * * DtoResolveVariable(msgpack.Unpacked.value) * * Ignoring Dsymbol::codegen for msgpack.Unpacked.__anonymous * * DtoDefineFunction(msgpack.Unpacked.this): msgpack-d/src/msgpack.d(3822) * * * isMember = this is: Unpacked * * * DtoFunctionType(ref @safe Unpacked(ref Value value)) * * * * x86-64 ABI: Transforming argument types * * * * Final function type: %msgpack.Unpacked* (%msgpack.Unpacked*, %msgpack.Value*) * * * DtoResolveFunction(msgpack.Unpacked.this): msgpack-d/src/msgpack.d(3822) * * * * DtoDeclareFunction(msgpack.Unpacked.this): msgpack-d/src/msgpack.d(3822) * * * * * isMember = this is: Unpacked * * * * * DtoFunctionType(ref @safe Unpacked(ref Value value)) * * * * * func = declare %msgpack.Unpacked* @_D7msgpack8Unpacked6__ctorMFNcNfKS7msgpack5ValueZS7msgpack8Unpacked(%msgpack.Unpacked*, %msgpack.Value*) * * * Doing function body for: this * * * DtoCreateNestedContext for this * * * * DtoCreateNestedContextType for msgpack.Unpacked.this * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(3822) * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(3824) * * * * * * AssignExp::toElem: this.value = value | (Value)(Value = Value) * * * * * * * DotVarExp::toElem: this.value @ Value * * * * * * * * ThisExp::toElem: this @ Unpacked * * * * * * * * * normal this exp * * * * * * * * Indexing aggregate field msgpack.Unpacked.value: * * * * * * * * * Value: %1 = getelementptr %msgpack.Unpacked, %msgpack.Unpacked* %.this_arg, i32 0, i32 0 * * * * * * * VarExp::toElem: value @ Value * * * * * * * * DtoSymbolAddress ('value' of type 'Value') * * * * * * * * * function param * * * * * * * * * type: Value * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * DtoAssign() * * * * * ReturnStatement::toIR(): msgpack-d/src/msgpack.d(3822) * * * * * * AddrExp::toElem: &this @ Unpacked* * * * * * * * ThisExp::toElem: this @ Unpacked * * * * * * * * this exp without var declaration * * * * * * * is nothing special * * * * * * * lval: %msgpack.Unpacked* %.this_arg * * * * * * return value is '0x13241ee0' * * DtoDefineFunction(msgpack.Unpacked.empty): msgpack-d/src/msgpack.d(3835) * * * isMember = this is: Unpacked * * * DtoFunctionType(const nothrow @property @trusted bool()) * * * * x86-64 ABI: Transforming return type * * * * x86-64 ABI: Transforming argument types * * * * Final function type: i1 (%msgpack.Unpacked*) * * * DtoResolveFunction(msgpack.Unpacked.empty): msgpack-d/src/msgpack.d(3835) * * * * DtoDeclareFunction(msgpack.Unpacked.empty): msgpack-d/src/msgpack.d(3835) * * * * * isMember = this is: Unpacked * * * * * DtoFunctionType(const nothrow @property @trusted bool()) * * * * * func = declare i1 @_D7msgpack8Unpacked5emptyMxFNbNdNeZb(%msgpack.Unpacked*) * * * Doing function body for: empty * * * DtoCreateNestedContext for empty * * * * DtoCreateNestedContextType for msgpack.Unpacked.empty * * * CompoundStatement::toIR(): * * * * ReturnStatement::toIR(): msgpack-d/src/msgpack.d(3837) * * * * * AndAndExp::toElem: this.value.type == cast(Type)5 && !this.value.via.array.length @ bool * * * * * * EqualExp::toElem: this.value.type == cast(Type)5 @ bool * * * * * * * DotVarExp::toElem: this.value.type @ const(Type) * * * * * * * * DotVarExp::toElem: this.value @ const(Value) * * * * * * * * * ThisExp::toElem: this @ const(Unpacked) * * * * * * * * * * normal this exp * * * * * * * * * Indexing aggregate field msgpack.Unpacked.value: * * * * * * * * * * Value: %1 = getelementptr %msgpack.Unpacked, %msgpack.Unpacked* %.this_arg, i32 0, i32 0 * * * * * * * * Indexing aggregate field msgpack.Value.type: * * * * * * * * * Building type: Type * * * * * * * * * Value: %2 = getelementptr %msgpack.Value, %msgpack.Value* %1, i32 0, i32 0 * * * * * * * IntegerExp::toElem: cast(Type)5 @ Type * * * * * * * * IntegerExp::toConstElem: cast(Type)5 @ Type * * * * * * * * * Building type: Type * * * * * * * * * value = i32 5 * * * * * * * integral or pointer or interface * * * * * * * lv: %3 = load i32, i32* %2 * * * * * * * rv: i32 5 * * * * * * NotExp::toElem: !this.value.via.array.length @ bool * * * * * * * ArrayLengthExp::toElem: this.value.via.array.length @ ulong * * * * * * * * DotVarExp::toElem: this.value.via.array @ const(Value[]) * * * * * * * * * DotVarExp::toElem: this.value.via @ const(Via) * * * * * * * * * * DotVarExp::toElem: this.value @ const(Value) * * * * * * * * * * * ThisExp::toElem: this @ const(Unpacked) * * * * * * * * * * * * normal this exp * * * * * * * * * * * Indexing aggregate field msgpack.Unpacked.value: * * * * * * * * * * * * Value: %5 = getelementptr %msgpack.Unpacked, %msgpack.Unpacked* %.this_arg, i32 0, i32 0 * * * * * * * * * * Indexing aggregate field msgpack.Value.via: * * * * * * * * * * * Value: %6 = getelementptr %msgpack.Value, %msgpack.Value* %5, i32 0, i32 2 * * * * * * * * * Indexing aggregate field msgpack.Value.Via.array: * * * * * * * * * * Value: %8 = bitcast i8* %7 to { i64, %msgpack.Value* }* * * * * * * * * DtoArrayLen * * * * * * * Casting from 'ulong' to 'bool' * * * * * return value is '0x132452d8' * * DtoDefineFunction(msgpack.Unpacked.length): msgpack-d/src/msgpack.d(3848) * * * isMember = this is: Unpacked * * * DtoFunctionType(@property @trusted ulong()) * * * * x86-64 ABI: Transforming return type * * * * x86-64 ABI: Transforming argument types * * * * Final function type: i64 (%msgpack.Unpacked*) * * * DtoResolveFunction(msgpack.Unpacked.length): msgpack-d/src/msgpack.d(3848) * * * * DtoDeclareFunction(msgpack.Unpacked.length): msgpack-d/src/msgpack.d(3848) * * * * * isMember = this is: Unpacked * * * * * DtoFunctionType(@property @trusted ulong()) * * * * * func = declare i64 @_D7msgpack8Unpacked6lengthMFNdNeZm(%msgpack.Unpacked*) * * * Doing function body for: length * * * DtoCreateNestedContext for length * * * * DtoCreateNestedContextType for msgpack.Unpacked.length * * * CompoundStatement::toIR(): * * * * ReturnStatement::toIR(): msgpack-d/src/msgpack.d(3850) * * * * * ArrayLengthExp::toElem: this.value.via.array.length @ ulong * * * * * * DotVarExp::toElem: this.value.via.array @ Value[] * * * * * * * DotVarExp::toElem: this.value.via @ Via * * * * * * * * DotVarExp::toElem: this.value @ Value * * * * * * * * * ThisExp::toElem: this @ Unpacked * * * * * * * * * * normal this exp * * * * * * * * * Indexing aggregate field msgpack.Unpacked.value: * * * * * * * * * * Value: %1 = getelementptr %msgpack.Unpacked, %msgpack.Unpacked* %.this_arg, i32 0, i32 0 * * * * * * * * Indexing aggregate field msgpack.Value.via: * * * * * * * * * Value: %2 = getelementptr %msgpack.Value, %msgpack.Value* %1, i32 0, i32 2 * * * * * * * Indexing aggregate field msgpack.Value.Via.array: * * * * * * * * Value: %4 = bitcast i8* %3 to { i64, %msgpack.Value* }* * * * * * * DtoArrayLen * * * * * return value is '0x13246998' * * DtoDefineFunction(msgpack.Unpacked.front): msgpack-d/src/msgpack.d(3861) * * * isMember = this is: Unpacked * * * DtoFunctionType(@property ref @trusted Value()) * * * * x86-64 ABI: Transforming argument types * * * * Final function type: %msgpack.Value* (%msgpack.Unpacked*) * * * DtoResolveFunction(msgpack.Unpacked.front): msgpack-d/src/msgpack.d(3861) * * * * DtoDeclareFunction(msgpack.Unpacked.front): msgpack-d/src/msgpack.d(3861) * * * * * isMember = this is: Unpacked * * * * * DtoFunctionType(@property ref @trusted Value()) * * * * * func = declare %msgpack.Value* @_D7msgpack8Unpacked5frontMFNcNdNeZS7msgpack5Value(%msgpack.Unpacked*) * * * Doing function body for: front * * * DtoCreateNestedContext for front * * * * DtoCreateNestedContextType for msgpack.Unpacked.front * * * CompoundStatement::toIR(): * * * * ReturnStatement::toIR(): msgpack-d/src/msgpack.d(3863) * * * * * AddrExp::toElem: &front(this.value.via.array) @ Value* * * * * * * CallExp::toElem: front(this.value.via.array) @ Value * * * * * * * VarExp::toElem: front @ pure nothrow @nogc @property ref @safe Value(Value[] a) * * * * * * * * DtoSymbolAddress ('front' of type 'pure nothrow @nogc @property ref @safe Value(Value[] a)') * * * * * * * * * FuncDeclaration * * * * * * * DtoCallFunction() * * * * * * * * Building type: pure nothrow @nogc @property ref @safe Value(Value[] a) * * * * * * * * * DtoFunctionType(pure nothrow @nogc @property ref @safe Value(Value[] a)) * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: %msgpack.Value* ({ i64, %msgpack.Value* }) * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (0) * * * * * * * * Function type: pure nothrow @nogc @property ref @safe Value(Value[] a) * * * * * * * * DtoArgument * * * * * * * * * DotVarExp::toElem: this.value.via.array @ Value[] * * * * * * * * * * DotVarExp::toElem: this.value.via @ Via * * * * * * * * * * * DotVarExp::toElem: this.value @ Value * * * * * * * * * * * * ThisExp::toElem: this @ Unpacked * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * Indexing aggregate field msgpack.Unpacked.value: * * * * * * * * * * * * * Value: %1 = getelementptr %msgpack.Unpacked, %msgpack.Unpacked* %.this_arg, i32 0, i32 0 * * * * * * * * * * * Indexing aggregate field msgpack.Value.via: * * * * * * * * * * * * Value: %2 = getelementptr %msgpack.Value, %msgpack.Value* %1, i32 0, i32 2 * * * * * * * * * * Indexing aggregate field msgpack.Value.Via.array: * * * * * * * * * * * Value: %4 = bitcast i8* %3 to { i64, %msgpack.Value* }* * * * * * * is nothing special * * * * * * lval: %6 = call %msgpack.Value* @_D3std5range10primitives26__T5frontTS7msgpack5ValueZ5frontFNaNbNcNdNiNfAS7msgpack5ValueZS7msgpack5Value({ i64, %msgpack.Value* } %5) * * * * * return value is '0x13248570' * * DtoDefineFunction(msgpack.Unpacked.popFront): msgpack-d/src/msgpack.d(3871) * * * isMember = this is: Unpacked * * * DtoFunctionType(@trusted void()) * * * * x86-64 ABI: Transforming argument types * * * * Final function type: void (%msgpack.Unpacked*) * * * DtoResolveFunction(msgpack.Unpacked.popFront): msgpack-d/src/msgpack.d(3871) * * * * DtoDeclareFunction(msgpack.Unpacked.popFront): msgpack-d/src/msgpack.d(3871) * * * * * isMember = this is: Unpacked * * * * * DtoFunctionType(@trusted void()) * * * * * func = declare void @_D7msgpack8Unpacked8popFrontMFNeZv(%msgpack.Unpacked*) * * * Doing function body for: popFront * * * DtoCreateNestedContext for popFront * * * * DtoCreateNestedContextType for msgpack.Unpacked.popFront * * * CompoundStatement::toIR(): * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(3873) * * * * * CallExp::toElem: popFront(this.value.via.array) @ void * * * * * * VarExp::toElem: popFront @ pure nothrow @nogc @safe void(ref Value[] a) * * * * * * * DtoSymbolAddress ('popFront' of type 'pure nothrow @nogc @safe void(ref Value[] a)') * * * * * * * * FuncDeclaration * * * * * * DtoCallFunction() * * * * * * * Building type: pure nothrow @nogc @safe void(ref Value[] a) * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe void(ref Value[] a)) * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * Final function type: void ({ i64, %msgpack.Value* }*) * * * * * * * doing normal arguments * * * * * * * Arguments so far: (0) * * * * * * * Function type: pure nothrow @nogc @safe void(ref Value[] a) * * * * * * * DtoArgument * * * * * * * * DotVarExp::toElem: this.value.via.array @ Value[] * * * * * * * * * DotVarExp::toElem: this.value.via @ Via * * * * * * * * * * DotVarExp::toElem: this.value @ Value * * * * * * * * * * * ThisExp::toElem: this @ Unpacked * * * * * * * * * * * * normal this exp * * * * * * * * * * * Indexing aggregate field msgpack.Unpacked.value: * * * * * * * * * * * * Value: %1 = getelementptr %msgpack.Unpacked, %msgpack.Unpacked* %.this_arg, i32 0, i32 0 * * * * * * * * * * Indexing aggregate field msgpack.Value.via: * * * * * * * * * * * Value: %2 = getelementptr %msgpack.Value, %msgpack.Value* %1, i32 0, i32 2 * * * * * * * * * Indexing aggregate field msgpack.Value.Via.array: * * * * * * * * * * Value: %4 = bitcast i8* %3 to { i64, %msgpack.Value* }* * * DtoDefineFunction(msgpack.Unpacked.opIndex): msgpack-d/src/msgpack.d(3883) * * * isMember = this is: Unpacked * * * DtoFunctionType(nothrow ref @trusted Value(ulong n)) * * * * x86-64 ABI: Transforming argument types * * * * Final function type: %msgpack.Value* (%msgpack.Unpacked*, i64) * * * DtoResolveFunction(msgpack.Unpacked.opIndex): msgpack-d/src/msgpack.d(3883) * * * * DtoDeclareFunction(msgpack.Unpacked.opIndex): msgpack-d/src/msgpack.d(3883) * * * * * isMember = this is: Unpacked * * * * * DtoFunctionType(nothrow ref @trusted Value(ulong n)) * * * * * func = declare %msgpack.Value* @_D7msgpack8Unpacked7opIndexMFNbNcNemZS7msgpack5Value(%msgpack.Unpacked*, i64) * * * Doing function body for: opIndex * * * DtoCreateNestedContext for opIndex * * * * DtoCreateNestedContextType for msgpack.Unpacked.opIndex * * * CompoundStatement::toIR(): * * * * ReturnStatement::toIR(): msgpack-d/src/msgpack.d(3885) * * * * * AddrExp::toElem: &this.value.via.array[n] @ Value* * * * * * * IndexExp::toElem: this.value.via.array[n] @ Value * * * * * * * DotVarExp::toElem: this.value.via.array @ Value[] * * * * * * * * DotVarExp::toElem: this.value.via @ Via * * * * * * * * * DotVarExp::toElem: this.value @ Value * * * * * * * * * * ThisExp::toElem: this @ Unpacked * * * * * * * * * * * normal this exp * * * * * * * * * * Indexing aggregate field msgpack.Unpacked.value: * * * * * * * * * * * Value: %1 = getelementptr %msgpack.Unpacked, %msgpack.Unpacked* %.this_arg, i32 0, i32 0 * * * * * * * * * Indexing aggregate field msgpack.Value.via: * * * * * * * * * * Value: %2 = getelementptr %msgpack.Value, %msgpack.Value* %1, i32 0, i32 2 * * * * * * * * Indexing aggregate field msgpack.Value.Via.array: * * * * * * * * * Value: %4 = bitcast i8* %3 to { i64, %msgpack.Value* }* * * * * * * * VarExp::toElem: n @ ulong * * * * * * * * DtoSymbolAddress ('n' of type 'ulong') * * * * * * * * * function param * * * * * * * * * type: ulong * * * * * * * DtoArrayPtr * * * * * * is nothing special * * * * * * lval: %7 = getelementptr %msgpack.Value, %msgpack.Value* %.ptr, i64 %6 * * * * * return value is '0x1324baa0' * * DtoDefineFunction(msgpack.Unpacked.opSlice): msgpack-d/src/msgpack.d(3899) * * * isMember = this is: Unpacked * * * DtoFunctionType(@trusted Value[](ulong from, ulong to)) * * * * x86-64 ABI: Transforming return type * * * * x86-64 ABI: Transforming argument types * * * * Final function type: { i64, %msgpack.Value* } (%msgpack.Unpacked*, i64, i64) * * * DtoResolveFunction(msgpack.Unpacked.opSlice): msgpack-d/src/msgpack.d(3899) * * * * DtoDeclareFunction(msgpack.Unpacked.opSlice): msgpack-d/src/msgpack.d(3899) * * * * * isMember = this is: Unpacked * * * * * DtoFunctionType(@trusted Value[](ulong from, ulong to)) * * * * * func = declare { i64, %msgpack.Value* } @_D7msgpack8Unpacked7opSliceMFNemmZAS7msgpack5Value(%msgpack.Unpacked*, i64, i64) * * * Doing function body for: opSlice * * * DtoCreateNestedContext for opSlice * * * * DtoCreateNestedContextType for msgpack.Unpacked.opSlice * * * CompoundStatement::toIR(): * * * * ReturnStatement::toIR(): msgpack-d/src/msgpack.d(3901) * * * * * SliceExp::toElem: this.value.via.array[from..to] @ Value[] * * * * * * DotVarExp::toElem: this.value.via.array @ Value[] * * * * * * * DotVarExp::toElem: this.value.via @ Via * * * * * * * * DotVarExp::toElem: this.value @ Value * * * * * * * * * ThisExp::toElem: this @ Unpacked * * * * * * * * * * normal this exp * * * * * * * * * Indexing aggregate field msgpack.Unpacked.value: * * * * * * * * * * Value: %1 = getelementptr %msgpack.Unpacked, %msgpack.Unpacked* %.this_arg, i32 0, i32 0 * * * * * * * * Indexing aggregate field msgpack.Value.via: * * * * * * * * * Value: %2 = getelementptr %msgpack.Value, %msgpack.Value* %1, i32 0, i32 2 * * * * * * * Indexing aggregate field msgpack.Value.Via.array: * * * * * * * * Value: %4 = bitcast i8* %3 to { i64, %msgpack.Value* }* * * * * * * DtoArrayPtr * * * * * * VarExp::toElem: from @ ulong * * * * * * * DtoSymbolAddress ('from' of type 'ulong') * * * * * * * * function param * * * * * * * * type: ulong * * * * * * VarExp::toElem: to @ ulong * * * * * * * DtoSymbolAddress ('to' of type 'ulong') * * * * * * * * function param * * * * * * * * type: ulong * * * * * return value is '0x1324deb0' * * DtoDefineFunction(msgpack.Unpacked.save): msgpack-d/src/msgpack.d(3911) * * * isMember = this is: Unpacked * * * DtoFunctionType(@property @safe Unpacked()) * * * * x86-64 ABI: Transforming argument types * * * * Final function type: void (%msgpack.Unpacked*, %msgpack.Unpacked*) * * * DtoResolveFunction(msgpack.Unpacked.save): msgpack-d/src/msgpack.d(3911) * * * * DtoDeclareFunction(msgpack.Unpacked.save): msgpack-d/src/msgpack.d(3911) * * * * * isMember = this is: Unpacked * * * * * DtoFunctionType(@property @safe Unpacked()) * * * * * func = declare void @_D7msgpack8Unpacked4saveMFNdNfZS7msgpack8Unpacked(%msgpack.Unpacked*, %msgpack.Unpacked*) * * * Doing function body for: save * * * DtoCreateNestedContext for save * * * * DtoCreateNestedContextType for msgpack.Unpacked.save * * * CompoundStatement::toIR(): * * * * ReturnStatement::toIR(): msgpack-d/src/msgpack.d(3913) * * * * * CallExp::toElem: Unpacked(Value(cast(Type)0, Via(false, , , , , , ))).this(this.value) @ Unpacked * * * * * * DotVarExp::toElem: Unpacked(Value(cast(Type)0, Via(false, , , , , , ))).this @ ref @safe Unpacked(ref Value value) * * * * * * * StructLiteralExp::toElem: Unpacked(Value(cast(Type)0, Via(false, , , , , , ))) @ Unpacked * * * * * * * * initializing field: Value value (+0) * * * * * * * * * expr 0 = Value(cast(Type)0, Via(false, , , , , , )) * * * * * * * * * StructLiteralExp::toElem: Value(cast(Type)0, Via(false, , , , , , )) @ Value * * * * * * * * * * initializing field: Type type (+0) * * * * * * * * * * * expr 0 = cast(Type)0 * * * * * * * * * * * IntegerExp::toElem: cast(Type)0 @ Type * * * * * * * * * * * * IntegerExp::toConstElem: cast(Type)0 @ Type * * * * * * * * * * * * * Building type: Type * * * * * * * * * * * * * value = i32 0 * * * * * * * * * * * Indexing aggregate field msgpack.Value.type: * * * * * * * * * * * * Building type: Type * * * * * * * * * * * * Value: %1 = getelementptr %msgpack.Value, %msgpack.Value* %.structliteral1, i32 0, i32 0 * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * lhs: %1 = getelementptr %msgpack.Value, %msgpack.Value* %.structliteral1, i32 0, i32 0 * * * * * * * * * * * * rhs: i32 0 * * * * * * * * * * * Building type: Type * * * * * * * * * * initializing field: Via via (+16) * * * * * * * * * * * expr 1 = Via(false, , , , , , ) * * * * * * * * * * * StructLiteralExp::toElem: Via(false, , , , , , ) @ Via * * * * * * * * * * * * initializing field: bool boolean (+0) * * * * * * * * * * * * * expr 0 = false * * * * * * * * * * * * * IntegerExp::toElem: false @ bool * * * * * * * * * * * * * * IntegerExp::toConstElem: false @ bool * * * * * * * * * * * * * * * value = i1 false * * * * * * * * * * * * * Indexing aggregate field msgpack.Value.Via.boolean: * * * * * * * * * * * * * * Value: %3 = getelementptr %msgpack.Value.Via, %msgpack.Value.Via* %.structliteral2, i32 0, i32 0 * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * skipping field: ulong uinteger (+0) * * * * * * * * * * * Indexing aggregate field msgpack.Value.via: * * * * * * * * * * * * Value: %5 = getelementptr %msgpack.Value, %msgpack.Value* %.structliteral1, i32 0, i32 2 * * * * * * * * * * * DtoAssign() * * * * * * * * * Indexing aggregate field msgpack.Unpacked.value: * * * * * * * * * * Value: %8 = getelementptr %msgpack.Unpacked, %msgpack.Unpacked* %.structliteral, i32 0, i32 0 * * * * * * * * * DtoAssign() * * * * * * DtoCallFunction() * * * * * * * Building type: ref @safe Unpacked(ref Value value) * * * * * * * * DtoFunctionType(ref @safe Unpacked(ref Value value)) * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * Final function type: %msgpack.Unpacked* (%msgpack.Value*) * * * * * * * doing normal arguments * * * * * * * Arguments so far: (1) * * * * * * * * %.structliteral = alloca %msgpack.Unpacked, align 16 * * * * * * * Function type: ref @safe Unpacked(ref Value value) * * * * * * * DtoArgument * * * * * * * * DotVarExp::toElem: this.value @ Value * * * * * * * * * ThisExp::toElem: this @ Unpacked * * * * * * * * * * normal this exp * * * * * * * * * Indexing aggregate field msgpack.Unpacked.value: * * * * * * * * * * Value: %11 = getelementptr %msgpack.Unpacked, %msgpack.Unpacked* %.this_arg, i32 0, i32 0 * * * * * DtoAssign() * * Building default initializer for msgpack.Unpacked * * * Creating initializer constant for Unpacked * * * * Implicit initializer: value @+0 * * * * * DtoConstExpInit(targetType = Value, exp = Value) * * * * * * VarExp::toConstElem: Value @ Value * * * * * * * Sym: type=Value * * * * adding field value * * * * final initializer: %msgpack.Unpacked_init zeroinitializer * * DtoTypeInfoOf(type = 'Unpacked', base='1') * * * Type::getTypeInfo(): Unpacked * * * * TypeInfoDeclaration::codegen(typeid(Unpacked)) * * * * * type = 'Unpacked' * * * * * typeinfo mangle: _D27TypeInfo_S7msgpack8Unpacked6__initZ * * * * * TypeInfoStructDeclaration::llvmDefine() typeid(Unpacked) * * * * * * DtoFunctionType(nothrow @trusted ulong(ref const(Unpacked) p)) * * * * * * * Building type: const(Unpacked)* * * * * * * * x86-64 ABI: Transforming return type * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * Final function type: i64 (%msgpack.Unpacked*) * * * * * * DtoResolveFunction(msgpack.Unpacked.__xtoHash): * * * * * * * DtoDeclareFunction(msgpack.Unpacked.__xtoHash): * * * * * * * * DtoFunctionType(nothrow @trusted ulong(ref const(Unpacked) p)) * * * * * * * * func = declare i64 @_D7msgpack8Unpacked9__xtoHashFNbNeKxS7msgpack8UnpackedZm(%msgpack.Unpacked*) * * * * * * DtoFunctionType(bool(ref const(Unpacked) p, ref const(Unpacked) q)) * * * * * * * x86-64 ABI: Transforming return type * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * Final function type: i1 (%msgpack.Unpacked*, %msgpack.Unpacked*) * * * * * * DtoResolveFunction(msgpack.Unpacked.__xopEquals): * * * * * * * DtoDeclareFunction(msgpack.Unpacked.__xopEquals): * * * * * * * * DtoFunctionType(bool(ref const(Unpacked) p, ref const(Unpacked) q)) * * * * * * * * func = declare i1 @_D7msgpack8Unpacked11__xopEqualsFKxS7msgpack8UnpackedKxS7msgpack8UnpackedZb(%msgpack.Unpacked*, %msgpack.Unpacked*) * * * * * * IntegerExp::toConstElem: cast(void*)305419896LU @ void* * * * * * * * pointer * * * TypeInfoDeclaration::codegen(typeid(Unpacked)) * * DtoDefineFunction(msgpack.Unpacked.__xopEquals): * * * Doing function body for: __xopEquals * * * DtoCreateNestedContext for __xopEquals * * * * DtoCreateNestedContextType for msgpack.Unpacked.__xopEquals * * * CompoundStatement::toIR(): * * * * ReturnStatement::toIR(): * * * * * CallExp::toElem: p.value.opEquals(q.value) @ bool * * * * * * DotVarExp::toElem: p.value.opEquals @ const @trusted bool(ref const(Value) other) * * * * * * * DotVarExp::toElem: p.value @ const(Value) * * * * * * * * VarExp::toElem: p @ const(Unpacked) * * * * * * * * * DtoSymbolAddress ('p' of type 'const(Unpacked)') * * * * * * * * * * function param * * * * * * * * * * type: const(Unpacked) * * * * * * * * Indexing aggregate field msgpack.Unpacked.value: * * * * * * * * * Value: %1 = getelementptr %msgpack.Unpacked, %msgpack.Unpacked* %p_arg, i32 0, i32 0 * * * * * * DtoCallFunction() * * * * * * * doing normal arguments * * * * * * * Arguments so far: (1) * * * * * * * * %1 = getelementptr %msgpack.Unpacked, %msgpack.Unpacked* %p_arg, i32 0, i32 0 * * * * * * * Function type: const @trusted bool(ref const(Value) other) * * * * * * * DtoArgument * * * * * * * * DotVarExp::toElem: q.value @ const(Value) * * * * * * * * * VarExp::toElem: q @ const(Unpacked) * * * * * * * * * * DtoSymbolAddress ('q' of type 'const(Unpacked)') * * * * * * * * * * * function param * * * * * * * * * * * type: const(Unpacked) * * * * * * * * * Indexing aggregate field msgpack.Unpacked.value: * * * * * * * * * * Value: %2 = getelementptr %msgpack.Unpacked, %msgpack.Unpacked* %q_arg, i32 0, i32 0 * * * * * return value is '0x13256868' * * DtoDefineFunction(msgpack.Unpacked.__xtoHash): * * * Doing function body for: __xtoHash * * * DtoCreateNestedContext for __xtoHash * * * * DtoCreateNestedContextType for msgpack.Unpacked.__xtoHash * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): * * * * * ExpStatement::toIR(): * * * * * * DeclarationExp::toElem: ulong h = 0LU; | T=void * * * * * * * DtoDeclarationExp: h * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * llvm value for decl: %h = alloca i64, align 8 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: h = 0LU | (ulong)(ulong = ulong) * * * * * * * * * * VarExp::toElem: h @ ulong * * * * * * * * * * * DtoSymbolAddress ('h' of type 'ulong') * * * * * * * * * * * * a normal variable * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * value = i64 0 * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %h = alloca i64, align 8 * * * * * * * * * * * rhs: i64 0 * * * * * UnrolledLoopStatement::toIR(): * * * * * * ScopeStatement::toIR(): * * * * * * * CompoundStatement::toIR(): * * * * * * * * ExpStatement::toIR(): * * * * * * * * * DeclarationExp::toElem: enum ulong i = 0LU; | T=void * * * * * * * * * * DtoDeclarationExp: i * * * * * * * * * * * VarDeclaration * * * * * * * * * * * Manifest constant, nothing to do. * * * * * * * * ExpStatement::toIR(): * * * * * * * * * DeclarationExp::toElem: alias T = const(Value); | T=void * * * * * * * * * * DtoDeclarationExp: T * * * * * * * * * * * Ignoring Symbol: alias * * * * * * * * ExpStatement::toIR(): * * * * * * * * * AddAssignExp::toElem: h += typeid(const(Value)).getHash(cast(const(void*))&p.value) @ ulong * * * * * * * * * * Caching l-value of h += typeid(const(Value)).getHash(cast(const(void*))&p.value) => h * * * * * * * * * * * VarExp::toElem: h @ ulong * * * * * * * * * * * * DtoSymbolAddress ('h' of type 'ulong') * * * * * * * * * * * * * a normal variable * * * * * * * * * * AddExp::toElem: h + typeid(const(Value)).getHash(cast(const(void*))&p.value) @ ulong * * * * * * * * * * * VarExp::toElem: h @ ulong * * * * * * * * * * * CallExp::toElem: typeid(const(Value)).getHash(cast(const(void*))&p.value) @ ulong * * * * * * * * * * * * DotVarExp::toElem: typeid(const(Value)).getHash @ const nothrow @trusted ulong(const(void*) p) * * * * * * * * * * * * * SymOffExp::toElem: typeid(const(Value)) @ object.TypeInfo * * * * * * * * * * * * * * DtoSymbolAddress ('typeid(const(Value))' of type 'object.TypeInfo_Const') * * * * * * * * * * * * * * * TypeInfoDeclaration * * * * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(const(Value))) * * * * * * * * * * * * * * * * type = 'const(Value)' * * * * * * * * * * * * * * * * typeinfo mangle: _D25TypeInfo_xS7msgpack5Value6__initZ * * * * * * * * * * * * * * * * TypeInfoConstDeclaration::llvmDefine() typeid(const(Value)) * * * * * * * * * * * * * * * * * DtoTypeInfoOf(type = 'Value', base='1') * * * * * * * * * * * * * * * * * * Type::getTypeInfo(): Value * * * * * * * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(Value)) * * * * * * * * * * * * * * Casting from 'TypeInfo_Const*' to 'object.TypeInfo' * * * * * * * * * * * * * * * src: %object.TypeInfo_Const* bitcast (%"typeid(const(Value))"* @_D25TypeInfo_xS7msgpack5Value6__initZ to %object.TypeInfo_Const*) * * * * * * * * * * * * * * * to type: %object.TypeInfo* * * * * * * * * * * * * * vthis: %object.TypeInfo* bitcast (%"typeid(const(Value))"* @_D25TypeInfo_xS7msgpack5Value6__initZ to %object.TypeInfo*) * * * * * * * * * * * * * funcval: %3 = load i64 (%object.TypeInfo*, i8*)*, i64 (%object.TypeInfo*, i8*)** %"typeid(const(Value)).getHash@vtbl", align 8 * * * * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * * * * DtoFunctionType(const nothrow @trusted ulong(const(void*) p)) * * * * * * * * * * * * * funcval casted: %"typeid(const(Value)).getHash" = load i64 (%object.TypeInfo*, i8*)*, i64 (%object.TypeInfo*, i8*)** %"typeid(const(Value)).getHash@vtbl", align 8 * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * %object.TypeInfo* bitcast (%"typeid(const(Value))"* @_D25TypeInfo_xS7msgpack5Value6__initZ to %object.TypeInfo*) * * * * * * * * * * * * * Function type: const nothrow @trusted ulong(const(void*) p) * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * CastExp::toElem: cast(const(void*))&p.value @ const(void*) * * * * * * * * * * * * * * * AddrExp::toElem: &p.value @ const(Value)* * * * * * * * * * * * * * * * * DotVarExp::toElem: p.value @ const(Value) * * * * * * * * * * * * * * * * * VarExp::toElem: p @ const(Unpacked) * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('p' of type 'const(Unpacked)') * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * type: const(Unpacked) * * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.Unpacked.value: * * * * * * * * * * * * * * * * * * Value: %3 = getelementptr %msgpack.Unpacked, %msgpack.Unpacked* %p_arg, i32 0, i32 0 * * * * * * * * * * * * * * * * is nothing special * * * * * * * * * * * * * * * * lval: %3 = getelementptr %msgpack.Unpacked, %msgpack.Unpacked* %p_arg, i32 0, i32 0 * * * * * * * * * * * * * * * Casting from 'const(Value)*' to 'const(void*)' * * * * * * * * * * * * * * * * src: %3 = getelementptr %msgpack.Unpacked, %msgpack.Unpacked* %p_arg, i32 0, i32 0 * * * * * * * * * * * * * * * * to type: i8* * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %h = alloca i64, align 8 * * * * * * * * * * * rhs: %7 = add i64 %6, %5 * * * * * ReturnStatement::toIR(): * * * * * * VarExp::toElem: h @ ulong * * * * * * * DtoSymbolAddress ('h' of type 'ulong') * * * * * * * * a normal variable * * * * * * return value is '0x132598f8' * DtoDefineFunction(msgpack.__unittestL3918_10): msgpack-d/src/msgpack.d(3918) * * Ignoring unittest msgpack.__unittestL3918_10 * * No code generation for unit test declaration __unittestL3918_10 * StructDeclaration::codegen: 'msgpack.StreamingUnpacker' * * Resolving struct type: StreamingUnpacker (msgpack-d/src/msgpack.d(3949)) * * Ignoring EnumDeclaration::codegen: 'msgpack.StreamingUnpacker.State' * * Ignoring EnumDeclaration::codegen: 'msgpack.StreamingUnpacker.ContainerElement' * * StructDeclaration::codegen: 'msgpack.StreamingUnpacker.Context' * * * Resolving struct type: Context (msgpack-d/src/msgpack.d(4004)) * * * StructDeclaration::codegen: 'msgpack.StreamingUnpacker.Context.Container' * * * * Resolving struct type: Container (msgpack-d/src/msgpack.d(4006)) * * * * VarDeclaration::codegen(): 'msgpack.StreamingUnpacker.Context.Container.type' * * * * * DtoResolveVariable(msgpack.StreamingUnpacker.Context.Container.type) * * * * VarDeclaration::codegen(): 'msgpack.StreamingUnpacker.Context.Container.value' * * * * * DtoResolveVariable(msgpack.StreamingUnpacker.Context.Container.value) * * * * VarDeclaration::codegen(): 'msgpack.StreamingUnpacker.Context.Container.key' * * * * * DtoResolveVariable(msgpack.StreamingUnpacker.Context.Container.key) * * * * VarDeclaration::codegen(): 'msgpack.StreamingUnpacker.Context.Container.count' * * * * * DtoResolveVariable(msgpack.StreamingUnpacker.Context.Container.count) * * * * Building default initializer for msgpack.StreamingUnpacker.Context.Container * * * * * Creating initializer constant for Container * * * * * * Implicit initializer: type @+0 * * * * * * * DtoConstExpInit(targetType = ContainerElement, exp = cast(ContainerElement)0) * * * * * * * * IntegerExp::toConstElem: cast(ContainerElement)0 @ ContainerElement * * * * * * * * * Building type: ContainerElement * * * * * * * * * value = i32 0 * * * * * * Implicit initializer: value @+16 * * * * * * * DtoConstExpInit(targetType = Value, exp = Value) * * * * * * * * VarExp::toConstElem: Value @ Value * * * * * * * * * Sym: type=Value * * * * * * Implicit initializer: key @+48 * * * * * * * DtoConstExpInit(targetType = Value, exp = Value) * * * * * * * * VarExp::toConstElem: Value @ Value * * * * * * * * * Sym: type=Value * * * * * * Implicit initializer: count @+80 * * * * * * * DtoConstExpInit(targetType = ulong, exp = 0LU) * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * value = i64 0 * * * * * * adding field type * * * * * * Building type: ContainerElement * * * * * * adding field value * * * * * * adding field key * * * * * * adding field count * * * * * * final initializer: %msgpack.StreamingUnpacker.Context.Container_init zeroinitializer * * * * DtoTypeInfoOf(type = 'Container', base='1') * * * * * Type::getTypeInfo(): Container * * * * * * TypeInfoDeclaration::codegen(typeid(Container)) * * * * * * * type = 'Container' * * * * * * * typeinfo mangle: _D55TypeInfo_S7msgpack17StreamingUnpacker7Context9Container6__initZ * * * * * * * TypeInfoStructDeclaration::llvmDefine() typeid(Container) * * * * * * * * DtoFunctionType(nothrow @trusted ulong(ref const(Container) p)) * * * * * * * * * Building type: const(Container)* * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * Final function type: i64 (%msgpack.StreamingUnpacker.Context.Container*) * * * * * * * * DtoResolveFunction(msgpack.StreamingUnpacker.Context.Container.__xtoHash): * * * * * * * * * DtoDeclareFunction(msgpack.StreamingUnpacker.Context.Container.__xtoHash): * * * * * * * * * * DtoFunctionType(nothrow @trusted ulong(ref const(Container) p)) * * * * * * * * * * func = declare i64 @_D7msgpack17StreamingUnpacker7Context9Container9__xtoHashFNbNeKxS7msgpack17StreamingUnpacker7Context9ContainerZm(%msgpack.StreamingUnpacker.Context.Container*) * * * * * * * * DtoFunctionType(bool(ref const(Container) p, ref const(Container) q)) * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * Final function type: i1 (%msgpack.StreamingUnpacker.Context.Container*, %msgpack.StreamingUnpacker.Context.Container*) * * * * * * * * DtoResolveFunction(msgpack.StreamingUnpacker.Context.Container.__xopEquals): * * * * * * * * * DtoDeclareFunction(msgpack.StreamingUnpacker.Context.Container.__xopEquals): * * * * * * * * * * DtoFunctionType(bool(ref const(Container) p, ref const(Container) q)) * * * * * * * * * * func = declare i1 @_D7msgpack17StreamingUnpacker7Context9Container11__xopEqualsFKxS7msgpack17StreamingUnpacker7Context9ContainerKxS7msgpack17StreamingUnpacker7Context9ContainerZb(%msgpack.StreamingUnpacker.Context.Container*, %msgpack.StreamingUnpacker.Context.Container*) * * * * * * * * IntegerExp::toConstElem: cast(void*)305419896LU @ void* * * * * * * * * * pointer * * * * * TypeInfoDeclaration::codegen(typeid(Container)) * * * * DtoDefineFunction(msgpack.StreamingUnpacker.Context.Container.__xopEquals): * * * * * Doing function body for: __xopEquals * * * * * DtoCreateNestedContext for __xopEquals * * * * * * DtoCreateNestedContextType for msgpack.StreamingUnpacker.Context.Container.__xopEquals * * * * * CompoundStatement::toIR(): * * * * * * ReturnStatement::toIR(): * * * * * * * AndAndExp::toElem: p.type == q.type && p.value.opEquals(q.value) && p.key.opEquals(q.key) && p.count == q.count @ bool * * * * * * * * AndAndExp::toElem: p.type == q.type && p.value.opEquals(q.value) && p.key.opEquals(q.key) @ bool * * * * * * * * * AndAndExp::toElem: p.type == q.type && p.value.opEquals(q.value) @ bool * * * * * * * * * * EqualExp::toElem: p.type == q.type @ bool * * * * * * * * * * * DotVarExp::toElem: p.type @ const(ContainerElement) * * * * * * * * * * * * VarExp::toElem: p @ const(Container) * * * * * * * * * * * * * DtoSymbolAddress ('p' of type 'const(Container)') * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * type: const(Container) * * * * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.Context.Container.type: * * * * * * * * * * * * * Building type: ContainerElement * * * * * * * * * * * * * Value: %1 = getelementptr %msgpack.StreamingUnpacker.Context.Container, %msgpack.StreamingUnpacker.Context.Container* %p_arg, i32 0, i32 0 * * * * * * * * * * * DotVarExp::toElem: q.type @ const(ContainerElement) * * * * * * * * * * * * VarExp::toElem: q @ const(Container) * * * * * * * * * * * * * DtoSymbolAddress ('q' of type 'const(Container)') * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * type: const(Container) * * * * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.Context.Container.type: * * * * * * * * * * * * * Building type: ContainerElement * * * * * * * * * * * * * Value: %2 = getelementptr %msgpack.StreamingUnpacker.Context.Container, %msgpack.StreamingUnpacker.Context.Container* %q_arg, i32 0, i32 0 * * * * * * * * * * * integral or pointer or interface * * * * * * * * * * * lv: %3 = load i32, i32* %1 * * * * * * * * * * * rv: %4 = load i32, i32* %2 * * * * * * * * * * CallExp::toElem: p.value.opEquals(q.value) @ bool * * * * * * * * * * * DotVarExp::toElem: p.value.opEquals @ const @trusted bool(ref const(Value) other) * * * * * * * * * * * * DotVarExp::toElem: p.value @ const(Value) * * * * * * * * * * * * * VarExp::toElem: p @ const(Container) * * * * * * * * * * * * * * DtoSymbolAddress ('p' of type 'const(Container)') * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * type: const(Container) * * * * * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.Context.Container.value: * * * * * * * * * * * * * * Value: %6 = getelementptr %msgpack.StreamingUnpacker.Context.Container, %msgpack.StreamingUnpacker.Context.Container* %p_arg, i32 0, i32 2 * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * %6 = getelementptr %msgpack.StreamingUnpacker.Context.Container, %msgpack.StreamingUnpacker.Context.Container* %p_arg, i32 0, i32 2 * * * * * * * * * * * * Function type: const @trusted bool(ref const(Value) other) * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * DotVarExp::toElem: q.value @ const(Value) * * * * * * * * * * * * * * VarExp::toElem: q @ const(Container) * * * * * * * * * * * * * * * DtoSymbolAddress ('q' of type 'const(Container)') * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * type: const(Container) * * * * * * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.Context.Container.value: * * * * * * * * * * * * * * * Value: %7 = getelementptr %msgpack.StreamingUnpacker.Context.Container, %msgpack.StreamingUnpacker.Context.Container* %q_arg, i32 0, i32 2 * * * * * * * * * CallExp::toElem: p.key.opEquals(q.key) @ bool * * * * * * * * * * DotVarExp::toElem: p.key.opEquals @ const @trusted bool(ref const(Value) other) * * * * * * * * * * * DotVarExp::toElem: p.key @ const(Value) * * * * * * * * * * * * VarExp::toElem: p @ const(Container) * * * * * * * * * * * * * DtoSymbolAddress ('p' of type 'const(Container)') * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * type: const(Container) * * * * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.Context.Container.key: * * * * * * * * * * * * * Value: %9 = getelementptr %msgpack.StreamingUnpacker.Context.Container, %msgpack.StreamingUnpacker.Context.Container* %p_arg, i32 0, i32 3 * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * doing normal arguments * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * %9 = getelementptr %msgpack.StreamingUnpacker.Context.Container, %msgpack.StreamingUnpacker.Context.Container* %p_arg, i32 0, i32 3 * * * * * * * * * * * Function type: const @trusted bool(ref const(Value) other) * * * * * * * * * * * DtoArgument * * * * * * * * * * * * DotVarExp::toElem: q.key @ const(Value) * * * * * * * * * * * * * VarExp::toElem: q @ const(Container) * * * * * * * * * * * * * * DtoSymbolAddress ('q' of type 'const(Container)') * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * type: const(Container) * * * * * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.Context.Container.key: * * * * * * * * * * * * * * Value: %10 = getelementptr %msgpack.StreamingUnpacker.Context.Container, %msgpack.StreamingUnpacker.Context.Container* %q_arg, i32 0, i32 3 * * * * * * * * EqualExp::toElem: p.count == q.count @ bool * * * * * * * * * DotVarExp::toElem: p.count @ const(ulong) * * * * * * * * * * VarExp::toElem: p @ const(Container) * * * * * * * * * * * DtoSymbolAddress ('p' of type 'const(Container)') * * * * * * * * * * * * function param * * * * * * * * * * * * type: const(Container) * * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.Context.Container.count: * * * * * * * * * * * Value: %12 = getelementptr %msgpack.StreamingUnpacker.Context.Container, %msgpack.StreamingUnpacker.Context.Container* %p_arg, i32 0, i32 4 * * * * * * * * * DotVarExp::toElem: q.count @ const(ulong) * * * * * * * * * * VarExp::toElem: q @ const(Container) * * * * * * * * * * * DtoSymbolAddress ('q' of type 'const(Container)') * * * * * * * * * * * * function param * * * * * * * * * * * * type: const(Container) * * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.Context.Container.count: * * * * * * * * * * * Value: %13 = getelementptr %msgpack.StreamingUnpacker.Context.Container, %msgpack.StreamingUnpacker.Context.Container* %q_arg, i32 0, i32 4 * * * * * * * * * integral or pointer or interface * * * * * * * * * lv: %14 = load i64, i64* %12 * * * * * * * * * rv: %15 = load i64, i64* %13 * * * * * * * return value is '0x13260328' * * * * DtoDefineFunction(msgpack.StreamingUnpacker.Context.Container.__xtoHash): * * * * * Doing function body for: __xtoHash * * * * * DtoCreateNestedContext for __xtoHash * * * * * * DtoCreateNestedContextType for msgpack.StreamingUnpacker.Context.Container.__xtoHash * * * * * CompoundStatement::toIR(): * * * * * * CompoundStatement::toIR(): * * * * * * * ExpStatement::toIR(): * * * * * * * * DeclarationExp::toElem: ulong h = 0LU; | T=void * * * * * * * * * DtoDeclarationExp: h * * * * * * * * * * VarDeclaration * * * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * * * llvm value for decl: %h = alloca i64, align 8 * * * * * * * * * * * expression initializer * * * * * * * * * * * AssignExp::toElem: h = 0LU | (ulong)(ulong = ulong) * * * * * * * * * * * * VarExp::toElem: h @ ulong * * * * * * * * * * * * * DtoSymbolAddress ('h' of type 'ulong') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * lhs: %h = alloca i64, align 8 * * * * * * * * * * * * * rhs: i64 0 * * * * * * * UnrolledLoopStatement::toIR(): * * * * * * * * ScopeStatement::toIR(): * * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * * ExpStatement::toIR(): * * * * * * * * * * * DeclarationExp::toElem: enum ulong i = 0LU; | T=void * * * * * * * * * * * * DtoDeclarationExp: i * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * Manifest constant, nothing to do. * * * * * * * * * * ExpStatement::toIR(): * * * * * * * * * * * DeclarationExp::toElem: alias T = const(ContainerElement); | T=void * * * * * * * * * * * * DtoDeclarationExp: T * * * * * * * * * * * * * Ignoring Symbol: alias * * * * * * * * * * ExpStatement::toIR(): * * * * * * * * * * * AddAssignExp::toElem: h += typeid(const(ContainerElement)).getHash(cast(const(void*))&p.type) @ ulong * * * * * * * * * * * * Caching l-value of h += typeid(const(ContainerElement)).getHash(cast(const(void*))&p.type) => h * * * * * * * * * * * * * VarExp::toElem: h @ ulong * * * * * * * * * * * * * * DtoSymbolAddress ('h' of type 'ulong') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * AddExp::toElem: h + typeid(const(ContainerElement)).getHash(cast(const(void*))&p.type) @ ulong * * * * * * * * * * * * * VarExp::toElem: h @ ulong * * * * * * * * * * * * * CallExp::toElem: typeid(const(ContainerElement)).getHash(cast(const(void*))&p.type) @ ulong * * * * * * * * * * * * * * DotVarExp::toElem: typeid(const(ContainerElement)).getHash @ const nothrow @trusted ulong(const(void*) p) * * * * * * * * * * * * * * * SymOffExp::toElem: typeid(const(ContainerElement)) @ object.TypeInfo * * * * * * * * * * * * * * * * DtoSymbolAddress ('typeid(const(ContainerElement))' of type 'object.TypeInfo_Const') * * * * * * * * * * * * * * * * * TypeInfoDeclaration * * * * * * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(const(ContainerElement))) * * * * * * * * * * * * * * * * * * type = 'const(ContainerElement)' * * * * * * * * * * * * * * * * * * typeinfo mangle: _D56TypeInfo_xE7msgpack17StreamingUnpacker16ContainerElement6__initZ * * * * * * * * * * * * * * * * * * Building type: ContainerElement * * * * * * * * * * * * * * * * * * TypeInfoConstDeclaration::llvmDefine() typeid(const(ContainerElement)) * * * * * * * * * * * * * * * * * * * DtoTypeInfoOf(type = 'ContainerElement', base='1') * * * * * * * * * * * * * * * * * * * * Type::getTypeInfo(): ContainerElement * * * * * * * * * * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(ContainerElement)) * * * * * * * * * * * * * * * * * * * * * * type = 'ContainerElement' * * * * * * * * * * * * * * * * * * * * * * typeinfo mangle: _D55TypeInfo_E7msgpack17StreamingUnpacker16ContainerElement6__initZ * * * * * * * * * * * * * * * * * * * * * * Building type: ContainerElement * * * * * * * * * * * * * * * * * * * * * * TypeInfoEnumDeclaration::llvmDefine() typeid(ContainerElement) * * * * * * * * * * * * * * * * * * * * * * * DtoTypeInfoOf(type = 'int', base='1') * * * * * * * * * * * * * * * * * * * * * * * * Type::getTypeInfo(): int * * * * * * * * * * * * * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(int)) * * * * * * * * * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(ContainerElement)) * * * * * * * * * * * * * * * * Casting from 'TypeInfo_Const*' to 'object.TypeInfo' * * * * * * * * * * * * * * * * * src: %object.TypeInfo_Const* bitcast (%"typeid(const(ContainerElement))"* @_D56TypeInfo_xE7msgpack17StreamingUnpacker16ContainerElement6__initZ to %object.TypeInfo_Const*) * * * * * * * * * * * * * * * * * to type: %object.TypeInfo* * * * * * * * * * * * * * * * vthis: %object.TypeInfo* bitcast (%"typeid(const(ContainerElement))"* @_D56TypeInfo_xE7msgpack17StreamingUnpacker16ContainerElement6__initZ to %object.TypeInfo*) * * * * * * * * * * * * * * * funcval: %3 = load i64 (%object.TypeInfo*, i8*)*, i64 (%object.TypeInfo*, i8*)** %"typeid(const(ContainerElement)).getHash@vtbl", align 8 * * * * * * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * * * * * * DtoFunctionType(const nothrow @trusted ulong(const(void*) p)) * * * * * * * * * * * * * * * funcval casted: %"typeid(const(ContainerElement)).getHash" = load i64 (%object.TypeInfo*, i8*)*, i64 (%object.TypeInfo*, i8*)** %"typeid(const(ContainerElement)).getHash@vtbl", align 8 * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * %object.TypeInfo* bitcast (%"typeid(const(ContainerElement))"* @_D56TypeInfo_xE7msgpack17StreamingUnpacker16ContainerElement6__initZ to %object.TypeInfo*) * * * * * * * * * * * * * * * Function type: const nothrow @trusted ulong(const(void*) p) * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * CastExp::toElem: cast(const(void*))&p.type @ const(void*) * * * * * * * * * * * * * * * * * AddrExp::toElem: &p.type @ const(ContainerElement)* * * * * * * * * * * * * * * * * * * DotVarExp::toElem: p.type @ const(ContainerElement) * * * * * * * * * * * * * * * * * * * VarExp::toElem: p @ const(Container) * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('p' of type 'const(Container)') * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * type: const(Container) * * * * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.Context.Container.type: * * * * * * * * * * * * * * * * * * * * Building type: ContainerElement * * * * * * * * * * * * * * * * * * * * Value: %3 = getelementptr %msgpack.StreamingUnpacker.Context.Container, %msgpack.StreamingUnpacker.Context.Container* %p_arg, i32 0, i32 0 * * * * * * * * * * * * * * * * * * is nothing special * * * * * * * * * * * * * * * * * * lval: %3 = getelementptr %msgpack.StreamingUnpacker.Context.Container, %msgpack.StreamingUnpacker.Context.Container* %p_arg, i32 0, i32 0 * * * * * * * * * * * * * * * * * * Building type: const(ContainerElement)* * * * * * * * * * * * * * * * * * * * Building type: ContainerElement * * * * * * * * * * * * * * * * * Casting from 'const(ContainerElement)*' to 'const(void*)' * * * * * * * * * * * * * * * * * * src: %3 = getelementptr %msgpack.StreamingUnpacker.Context.Container, %msgpack.StreamingUnpacker.Context.Container* %p_arg, i32 0, i32 0 * * * * * * * * * * * * * * * * * * to type: i8* * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * lhs: %h = alloca i64, align 8 * * * * * * * * * * * * * rhs: %7 = add i64 %6, %5 * * * * * * * * ScopeStatement::toIR(): * * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * * ExpStatement::toIR(): * * * * * * * * * * * DeclarationExp::toElem: enum ulong i = 1LU; | T=void * * * * * * * * * * * * DtoDeclarationExp: i * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * Manifest constant, nothing to do. * * * * * * * * * * ExpStatement::toIR(): * * * * * * * * * * * DeclarationExp::toElem: alias T = const(Value); | T=void * * * * * * * * * * * * DtoDeclarationExp: T * * * * * * * * * * * * * Ignoring Symbol: alias * * * * * * * * * * ExpStatement::toIR(): * * * * * * * * * * * AddAssignExp::toElem: h += typeid(const(Value)).getHash(cast(const(void*))&p.value) @ ulong * * * * * * * * * * * * Caching l-value of h += typeid(const(Value)).getHash(cast(const(void*))&p.value) => h * * * * * * * * * * * * * VarExp::toElem: h @ ulong * * * * * * * * * * * * * * DtoSymbolAddress ('h' of type 'ulong') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * AddExp::toElem: h + typeid(const(Value)).getHash(cast(const(void*))&p.value) @ ulong * * * * * * * * * * * * * VarExp::toElem: h @ ulong * * * * * * * * * * * * * CallExp::toElem: typeid(const(Value)).getHash(cast(const(void*))&p.value) @ ulong * * * * * * * * * * * * * * DotVarExp::toElem: typeid(const(Value)).getHash @ const nothrow @trusted ulong(const(void*) p) * * * * * * * * * * * * * * * SymOffExp::toElem: typeid(const(Value)) @ object.TypeInfo * * * * * * * * * * * * * * * * DtoSymbolAddress ('typeid(const(Value))' of type 'object.TypeInfo_Const') * * * * * * * * * * * * * * * * * TypeInfoDeclaration * * * * * * * * * * * * * * * * Casting from 'TypeInfo_Const*' to 'object.TypeInfo' * * * * * * * * * * * * * * * * * src: %object.TypeInfo_Const* bitcast (%"typeid(const(Value))"* @_D25TypeInfo_xS7msgpack5Value6__initZ to %object.TypeInfo_Const*) * * * * * * * * * * * * * * * * * to type: %object.TypeInfo* * * * * * * * * * * * * * * * vthis: %object.TypeInfo* bitcast (%"typeid(const(Value))"* @_D25TypeInfo_xS7msgpack5Value6__initZ to %object.TypeInfo*) * * * * * * * * * * * * * * * funcval: %10 = load i64 (%object.TypeInfo*, i8*)*, i64 (%object.TypeInfo*, i8*)** %"typeid(const(Value)).getHash@vtbl", align 8 * * * * * * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * * * * * * DtoFunctionType(const nothrow @trusted ulong(const(void*) p)) * * * * * * * * * * * * * * * funcval casted: %"typeid(const(Value)).getHash" = load i64 (%object.TypeInfo*, i8*)*, i64 (%object.TypeInfo*, i8*)** %"typeid(const(Value)).getHash@vtbl", align 8 * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * %object.TypeInfo* bitcast (%"typeid(const(Value))"* @_D25TypeInfo_xS7msgpack5Value6__initZ to %object.TypeInfo*) * * * * * * * * * * * * * * * Function type: const nothrow @trusted ulong(const(void*) p) * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * CastExp::toElem: cast(const(void*))&p.value @ const(void*) * * * * * * * * * * * * * * * * * AddrExp::toElem: &p.value @ const(Value)* * * * * * * * * * * * * * * * * * * DotVarExp::toElem: p.value @ const(Value) * * * * * * * * * * * * * * * * * * * VarExp::toElem: p @ const(Container) * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('p' of type 'const(Container)') * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * type: const(Container) * * * * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.Context.Container.value: * * * * * * * * * * * * * * * * * * * * Value: %10 = getelementptr %msgpack.StreamingUnpacker.Context.Container, %msgpack.StreamingUnpacker.Context.Container* %p_arg, i32 0, i32 2 * * * * * * * * * * * * * * * * * * is nothing special * * * * * * * * * * * * * * * * * * lval: %10 = getelementptr %msgpack.StreamingUnpacker.Context.Container, %msgpack.StreamingUnpacker.Context.Container* %p_arg, i32 0, i32 2 * * * * * * * * * * * * * * * * * Casting from 'const(Value)*' to 'const(void*)' * * * * * * * * * * * * * * * * * * src: %10 = getelementptr %msgpack.StreamingUnpacker.Context.Container, %msgpack.StreamingUnpacker.Context.Container* %p_arg, i32 0, i32 2 * * * * * * * * * * * * * * * * * * to type: i8* * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * lhs: %h = alloca i64, align 8 * * * * * * * * * * * * * rhs: %14 = add i64 %13, %12 * * * * * * * * ScopeStatement::toIR(): * * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * * ExpStatement::toIR(): * * * * * * * * * * * DeclarationExp::toElem: enum ulong i = 2LU; | T=void * * * * * * * * * * * * DtoDeclarationExp: i * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * Manifest constant, nothing to do. * * * * * * * * * * ExpStatement::toIR(): * * * * * * * * * * * DeclarationExp::toElem: alias T = const(Value); | T=void * * * * * * * * * * * * DtoDeclarationExp: T * * * * * * * * * * * * * Ignoring Symbol: alias * * * * * * * * * * ExpStatement::toIR(): * * * * * * * * * * * AddAssignExp::toElem: h += typeid(const(Value)).getHash(cast(const(void*))&p.key) @ ulong * * * * * * * * * * * * Caching l-value of h += typeid(const(Value)).getHash(cast(const(void*))&p.key) => h * * * * * * * * * * * * * VarExp::toElem: h @ ulong * * * * * * * * * * * * * * DtoSymbolAddress ('h' of type 'ulong') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * AddExp::toElem: h + typeid(const(Value)).getHash(cast(const(void*))&p.key) @ ulong * * * * * * * * * * * * * VarExp::toElem: h @ ulong * * * * * * * * * * * * * CallExp::toElem: typeid(const(Value)).getHash(cast(const(void*))&p.key) @ ulong * * * * * * * * * * * * * * DotVarExp::toElem: typeid(const(Value)).getHash @ const nothrow @trusted ulong(const(void*) p) * * * * * * * * * * * * * * * SymOffExp::toElem: typeid(const(Value)) @ object.TypeInfo * * * * * * * * * * * * * * * * DtoSymbolAddress ('typeid(const(Value))' of type 'object.TypeInfo_Const') * * * * * * * * * * * * * * * * * TypeInfoDeclaration * * * * * * * * * * * * * * * * Casting from 'TypeInfo_Const*' to 'object.TypeInfo' * * * * * * * * * * * * * * * * * src: %object.TypeInfo_Const* bitcast (%"typeid(const(Value))"* @_D25TypeInfo_xS7msgpack5Value6__initZ to %object.TypeInfo_Const*) * * * * * * * * * * * * * * * * * to type: %object.TypeInfo* * * * * * * * * * * * * * * * vthis: %object.TypeInfo* bitcast (%"typeid(const(Value))"* @_D25TypeInfo_xS7msgpack5Value6__initZ to %object.TypeInfo*) * * * * * * * * * * * * * * * funcval: %17 = load i64 (%object.TypeInfo*, i8*)*, i64 (%object.TypeInfo*, i8*)** %"typeid(const(Value)).getHash@vtbl4", align 8 * * * * * * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * * * * * * DtoFunctionType(const nothrow @trusted ulong(const(void*) p)) * * * * * * * * * * * * * * * funcval casted: %"typeid(const(Value)).getHash5" = load i64 (%object.TypeInfo*, i8*)*, i64 (%object.TypeInfo*, i8*)** %"typeid(const(Value)).getHash@vtbl4", align 8 * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * %object.TypeInfo* bitcast (%"typeid(const(Value))"* @_D25TypeInfo_xS7msgpack5Value6__initZ to %object.TypeInfo*) * * * * * * * * * * * * * * * Function type: const nothrow @trusted ulong(const(void*) p) * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * CastExp::toElem: cast(const(void*))&p.key @ const(void*) * * * * * * * * * * * * * * * * * AddrExp::toElem: &p.key @ const(Value)* * * * * * * * * * * * * * * * * * * DotVarExp::toElem: p.key @ const(Value) * * * * * * * * * * * * * * * * * * * VarExp::toElem: p @ const(Container) * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('p' of type 'const(Container)') * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * type: const(Container) * * * * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.Context.Container.key: * * * * * * * * * * * * * * * * * * * * Value: %17 = getelementptr %msgpack.StreamingUnpacker.Context.Container, %msgpack.StreamingUnpacker.Context.Container* %p_arg, i32 0, i32 3 * * * * * * * * * * * * * * * * * * is nothing special * * * * * * * * * * * * * * * * * * lval: %17 = getelementptr %msgpack.StreamingUnpacker.Context.Container, %msgpack.StreamingUnpacker.Context.Container* %p_arg, i32 0, i32 3 * * * * * * * * * * * * * * * * * Casting from 'const(Value)*' to 'const(void*)' * * * * * * * * * * * * * * * * * * src: %17 = getelementptr %msgpack.StreamingUnpacker.Context.Container, %msgpack.StreamingUnpacker.Context.Container* %p_arg, i32 0, i32 3 * * * * * * * * * * * * * * * * * * to type: i8* * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * lhs: %h = alloca i64, align 8 * * * * * * * * * * * * * rhs: %21 = add i64 %20, %19 * * * * * * * * ScopeStatement::toIR(): * * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * * ExpStatement::toIR(): * * * * * * * * * * * DeclarationExp::toElem: enum ulong i = 3LU; | T=void * * * * * * * * * * * * DtoDeclarationExp: i * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * Manifest constant, nothing to do. * * * * * * * * * * ExpStatement::toIR(): * * * * * * * * * * * DeclarationExp::toElem: alias T = const(ulong); | T=void * * * * * * * * * * * * DtoDeclarationExp: T * * * * * * * * * * * * * Ignoring Symbol: alias * * * * * * * * * * ExpStatement::toIR(): * * * * * * * * * * * AddAssignExp::toElem: h += typeid(const(ulong)).getHash(cast(const(void*))&p.count) @ ulong * * * * * * * * * * * * Caching l-value of h += typeid(const(ulong)).getHash(cast(const(void*))&p.count) => h * * * * * * * * * * * * * VarExp::toElem: h @ ulong * * * * * * * * * * * * * * DtoSymbolAddress ('h' of type 'ulong') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * AddExp::toElem: h + typeid(const(ulong)).getHash(cast(const(void*))&p.count) @ ulong * * * * * * * * * * * * * VarExp::toElem: h @ ulong * * * * * * * * * * * * * CallExp::toElem: typeid(const(ulong)).getHash(cast(const(void*))&p.count) @ ulong * * * * * * * * * * * * * * DotVarExp::toElem: typeid(const(ulong)).getHash @ const nothrow @trusted ulong(const(void*) p) * * * * * * * * * * * * * * * SymOffExp::toElem: typeid(const(ulong)) @ object.TypeInfo * * * * * * * * * * * * * * * * DtoSymbolAddress ('typeid(const(ulong))' of type 'object.TypeInfo_Const') * * * * * * * * * * * * * * * * * TypeInfoDeclaration * * * * * * * * * * * * * * * * Casting from 'TypeInfo_Const*' to 'object.TypeInfo' * * * * * * * * * * * * * * * * * src: %object.TypeInfo_Const* bitcast (%"typeid(const(ulong))"* @_D11TypeInfo_xm6__initZ to %object.TypeInfo_Const*) * * * * * * * * * * * * * * * * * to type: %object.TypeInfo* * * * * * * * * * * * * * * * vthis: %object.TypeInfo* bitcast (%"typeid(const(ulong))"* @_D11TypeInfo_xm6__initZ to %object.TypeInfo*) * * * * * * * * * * * * * * * funcval: %24 = load i64 (%object.TypeInfo*, i8*)*, i64 (%object.TypeInfo*, i8*)** %"typeid(const(ulong)).getHash@vtbl", align 8 * * * * * * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * * * * * * DtoFunctionType(const nothrow @trusted ulong(const(void*) p)) * * * * * * * * * * * * * * * funcval casted: %"typeid(const(ulong)).getHash" = load i64 (%object.TypeInfo*, i8*)*, i64 (%object.TypeInfo*, i8*)** %"typeid(const(ulong)).getHash@vtbl", align 8 * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * %object.TypeInfo* bitcast (%"typeid(const(ulong))"* @_D11TypeInfo_xm6__initZ to %object.TypeInfo*) * * * * * * * * * * * * * * * Function type: const nothrow @trusted ulong(const(void*) p) * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * CastExp::toElem: cast(const(void*))&p.count @ const(void*) * * * * * * * * * * * * * * * * * AddrExp::toElem: &p.count @ const(ulong)* * * * * * * * * * * * * * * * * * * DotVarExp::toElem: p.count @ const(ulong) * * * * * * * * * * * * * * * * * * * VarExp::toElem: p @ const(Container) * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('p' of type 'const(Container)') * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * type: const(Container) * * * * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.Context.Container.count: * * * * * * * * * * * * * * * * * * * * Value: %24 = getelementptr %msgpack.StreamingUnpacker.Context.Container, %msgpack.StreamingUnpacker.Context.Container* %p_arg, i32 0, i32 4 * * * * * * * * * * * * * * * * * * is nothing special * * * * * * * * * * * * * * * * * * lval: %24 = getelementptr %msgpack.StreamingUnpacker.Context.Container, %msgpack.StreamingUnpacker.Context.Container* %p_arg, i32 0, i32 4 * * * * * * * * * * * * * * * * * Casting from 'const(ulong)*' to 'const(void*)' * * * * * * * * * * * * * * * * * * src: %24 = getelementptr %msgpack.StreamingUnpacker.Context.Container, %msgpack.StreamingUnpacker.Context.Container* %p_arg, i32 0, i32 4 * * * * * * * * * * * * * * * * * * to type: i8* * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * lhs: %h = alloca i64, align 8 * * * * * * * * * * * * * rhs: %28 = add i64 %27, %26 * * * * * * * ReturnStatement::toIR(): * * * * * * * * VarExp::toElem: h @ ulong * * * * * * * * * DtoSymbolAddress ('h' of type 'ulong') * * * * * * * * * * a normal variable * * * * * * * * return value is '0x13269c28' * * * VarDeclaration::codegen(): 'msgpack.StreamingUnpacker.Context.state' * * * * DtoResolveVariable(msgpack.StreamingUnpacker.Context.state) * * * VarDeclaration::codegen(): 'msgpack.StreamingUnpacker.Context.trail' * * * * DtoResolveVariable(msgpack.StreamingUnpacker.Context.trail) * * * VarDeclaration::codegen(): 'msgpack.StreamingUnpacker.Context.top' * * * * DtoResolveVariable(msgpack.StreamingUnpacker.Context.top) * * * VarDeclaration::codegen(): 'msgpack.StreamingUnpacker.Context.stack' * * * * DtoResolveVariable(msgpack.StreamingUnpacker.Context.stack) * * * Building default initializer for msgpack.StreamingUnpacker.Context * * * * Creating initializer constant for Context * * * * * Implicit initializer: state @+0 * * * * * * DtoConstExpInit(targetType = State, exp = cast(State)0) * * * * * * * IntegerExp::toConstElem: cast(State)0 @ State * * * * * * * * Building type: State * * * * * * * * value = i32 0 * * * * * Implicit initializer: trail @+8 * * * * * * DtoConstExpInit(targetType = ulong, exp = 0LU) * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * value = i64 0 * * * * * Implicit initializer: top @+16 * * * * * * DtoConstExpInit(targetType = ulong, exp = 0LU) * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * value = i64 0 * * * * * Implicit initializer: stack @+24 * * * * * * DtoConstExpInit(targetType = Container[], exp = null) * * * * * * * NullExp::toConstElem(type=Container[]): null * * * * * adding field state * * * * * Building type: State * * * * * adding field trail * * * * * adding field top * * * * * adding field stack * * * * * final initializer: %msgpack.StreamingUnpacker.Context_init zeroinitializer * * * DtoTypeInfoOf(type = 'Context', base='1') * * * * Type::getTypeInfo(): Context * * * * * TypeInfoDeclaration::codegen(typeid(Context)) * * * * * * type = 'Context' * * * * * * typeinfo mangle: _D45TypeInfo_S7msgpack17StreamingUnpacker7Context6__initZ * * * * * * TypeInfoStructDeclaration::llvmDefine() typeid(Context) * * * * * * * DtoFunctionType(nothrow @trusted ulong(ref const(Context) p)) * * * * * * * * Building type: const(Context)* * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * Final function type: i64 (%msgpack.StreamingUnpacker.Context*) * * * * * * * DtoResolveFunction(msgpack.StreamingUnpacker.Context.__xtoHash): * * * * * * * * DtoDeclareFunction(msgpack.StreamingUnpacker.Context.__xtoHash): * * * * * * * * * DtoFunctionType(nothrow @trusted ulong(ref const(Context) p)) * * * * * * * * * func = declare i64 @_D7msgpack17StreamingUnpacker7Context9__xtoHashFNbNeKxS7msgpack17StreamingUnpacker7ContextZm(%msgpack.StreamingUnpacker.Context*) * * * * * * * DtoFunctionType(bool(ref const(Context) p, ref const(Context) q)) * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * Final function type: i1 (%msgpack.StreamingUnpacker.Context*, %msgpack.StreamingUnpacker.Context*) * * * * * * * DtoResolveFunction(msgpack.StreamingUnpacker.Context.__xopEquals): * * * * * * * * DtoDeclareFunction(msgpack.StreamingUnpacker.Context.__xopEquals): * * * * * * * * * DtoFunctionType(bool(ref const(Context) p, ref const(Context) q)) * * * * * * * * * func = declare i1 @_D7msgpack17StreamingUnpacker7Context11__xopEqualsFKxS7msgpack17StreamingUnpacker7ContextKxS7msgpack17StreamingUnpacker7ContextZb(%msgpack.StreamingUnpacker.Context*, %msgpack.StreamingUnpacker.Context*) * * * * * * * IntegerExp::toConstElem: cast(void*)305419896LU @ void* * * * * * * * * pointer * * * * TypeInfoDeclaration::codegen(typeid(Context)) * * * DtoDefineFunction(msgpack.StreamingUnpacker.Context.__xopEquals): * * * * Doing function body for: __xopEquals * * * * DtoCreateNestedContext for __xopEquals * * * * * DtoCreateNestedContextType for msgpack.StreamingUnpacker.Context.__xopEquals * * * * CompoundStatement::toIR(): * * * * * ReturnStatement::toIR(): * * * * * * AndAndExp::toElem: p.state == q.state && p.trail == q.trail && p.top == q.top && p.stack == q.stack @ bool * * * * * * * AndAndExp::toElem: p.state == q.state && p.trail == q.trail && p.top == q.top @ bool * * * * * * * * AndAndExp::toElem: p.state == q.state && p.trail == q.trail @ bool * * * * * * * * * EqualExp::toElem: p.state == q.state @ bool * * * * * * * * * * DotVarExp::toElem: p.state @ const(State) * * * * * * * * * * * VarExp::toElem: p @ const(Context) * * * * * * * * * * * * DtoSymbolAddress ('p' of type 'const(Context)') * * * * * * * * * * * * * function param * * * * * * * * * * * * * type: const(Context) * * * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.Context.state: * * * * * * * * * * * * Building type: State * * * * * * * * * * * * Value: %1 = getelementptr %msgpack.StreamingUnpacker.Context, %msgpack.StreamingUnpacker.Context* %p_arg, i32 0, i32 0 * * * * * * * * * * DotVarExp::toElem: q.state @ const(State) * * * * * * * * * * * VarExp::toElem: q @ const(Context) * * * * * * * * * * * * DtoSymbolAddress ('q' of type 'const(Context)') * * * * * * * * * * * * * function param * * * * * * * * * * * * * type: const(Context) * * * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.Context.state: * * * * * * * * * * * * Building type: State * * * * * * * * * * * * Value: %2 = getelementptr %msgpack.StreamingUnpacker.Context, %msgpack.StreamingUnpacker.Context* %q_arg, i32 0, i32 0 * * * * * * * * * * integral or pointer or interface * * * * * * * * * * lv: %3 = load i32, i32* %1 * * * * * * * * * * rv: %4 = load i32, i32* %2 * * * * * * * * * EqualExp::toElem: p.trail == q.trail @ bool * * * * * * * * * * DotVarExp::toElem: p.trail @ const(ulong) * * * * * * * * * * * VarExp::toElem: p @ const(Context) * * * * * * * * * * * * DtoSymbolAddress ('p' of type 'const(Context)') * * * * * * * * * * * * * function param * * * * * * * * * * * * * type: const(Context) * * * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.Context.trail: * * * * * * * * * * * * Value: %6 = getelementptr %msgpack.StreamingUnpacker.Context, %msgpack.StreamingUnpacker.Context* %p_arg, i32 0, i32 2 * * * * * * * * * * DotVarExp::toElem: q.trail @ const(ulong) * * * * * * * * * * * VarExp::toElem: q @ const(Context) * * * * * * * * * * * * DtoSymbolAddress ('q' of type 'const(Context)') * * * * * * * * * * * * * function param * * * * * * * * * * * * * type: const(Context) * * * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.Context.trail: * * * * * * * * * * * * Value: %7 = getelementptr %msgpack.StreamingUnpacker.Context, %msgpack.StreamingUnpacker.Context* %q_arg, i32 0, i32 2 * * * * * * * * * * integral or pointer or interface * * * * * * * * * * lv: %8 = load i64, i64* %6 * * * * * * * * * * rv: %9 = load i64, i64* %7 * * * * * * * * EqualExp::toElem: p.top == q.top @ bool * * * * * * * * * DotVarExp::toElem: p.top @ const(ulong) * * * * * * * * * * VarExp::toElem: p @ const(Context) * * * * * * * * * * * DtoSymbolAddress ('p' of type 'const(Context)') * * * * * * * * * * * * function param * * * * * * * * * * * * type: const(Context) * * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.Context.top: * * * * * * * * * * * Value: %11 = getelementptr %msgpack.StreamingUnpacker.Context, %msgpack.StreamingUnpacker.Context* %p_arg, i32 0, i32 3 * * * * * * * * * DotVarExp::toElem: q.top @ const(ulong) * * * * * * * * * * VarExp::toElem: q @ const(Context) * * * * * * * * * * * DtoSymbolAddress ('q' of type 'const(Context)') * * * * * * * * * * * * function param * * * * * * * * * * * * type: const(Context) * * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.Context.top: * * * * * * * * * * * Value: %12 = getelementptr %msgpack.StreamingUnpacker.Context, %msgpack.StreamingUnpacker.Context* %q_arg, i32 0, i32 3 * * * * * * * * * integral or pointer or interface * * * * * * * * * lv: %13 = load i64, i64* %11 * * * * * * * * * rv: %14 = load i64, i64* %12 * * * * * * * EqualExp::toElem: p.stack == q.stack @ bool * * * * * * * * DotVarExp::toElem: p.stack @ const(Container[]) * * * * * * * * * VarExp::toElem: p @ const(Context) * * * * * * * * * * DtoSymbolAddress ('p' of type 'const(Context)') * * * * * * * * * * * function param * * * * * * * * * * * type: const(Context) * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.Context.stack: * * * * * * * * * * Value: %16 = getelementptr %msgpack.StreamingUnpacker.Context, %msgpack.StreamingUnpacker.Context* %p_arg, i32 0, i32 4 * * * * * * * * DotVarExp::toElem: q.stack @ const(Container[]) * * * * * * * * * VarExp::toElem: q @ const(Context) * * * * * * * * * * DtoSymbolAddress ('q' of type 'const(Context)') * * * * * * * * * * * function param * * * * * * * * * * * type: const(Context) * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.Context.stack: * * * * * * * * * * Value: %17 = getelementptr %msgpack.StreamingUnpacker.Context, %msgpack.StreamingUnpacker.Context* %q_arg, i32 0, i32 4 * * * * * * * * static or dynamic array * * * * * * * * comparing arrays * * * * * * * * casting to dynamic arrays * * * * * * * * DtoCastArray * * * * * * * * * Building type: const(Container)[] * * * * * * * * * from array or sarray * * * * * * * * * to array * * * * * * * * * DtoArrayLen * * * * * * * * * DtoArrayPtr * * * * * * * * * isslice * * * * * * * * DtoCastArray * * * * * * * * * from array or sarray * * * * * * * * * to array * * * * * * * * * DtoArrayLen * * * * * * * * * DtoArrayPtr * * * * * * * * * isslice * * * * * * * * DtoTypeInfoOf(type = 'const(Container)[]', base='1') * * * * * * * * * Type::getTypeInfo(): const(Container)[] * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(const(Container)[])) * * * * * * * * * * * type = 'const(Container)[]' * * * * * * * * * * * typeinfo mangle: _D57TypeInfo_AxS7msgpack17StreamingUnpacker7Context9Container6__initZ * * * * * * * * * * * TypeInfoArrayDeclaration::llvmDefine() typeid(const(Container)[]) * * * * * * * * * * * * DtoTypeInfoOf(type = 'const(Container)', base='1') * * * * * * * * * * * * * Type::getTypeInfo(): const(Container) * * * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(const(Container))) * * * * * * * * * * * * * * * type = 'const(Container)' * * * * * * * * * * * * * * * typeinfo mangle: _D56TypeInfo_xS7msgpack17StreamingUnpacker7Context9Container6__initZ * * * * * * * * * * * * * * * TypeInfoConstDeclaration::llvmDefine() typeid(const(Container)) * * * * * * * * * * * * * * * * DtoTypeInfoOf(type = 'Container', base='1') * * * * * * * * * * * * * * * * * Type::getTypeInfo(): Container * * * * * * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(Container)) * * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(const(Container))) * * * * * * * * * TypeInfoDeclaration::codegen(typeid(const(Container)[])) * * * * * * return value is '0x13271e78' * * * DtoDefineFunction(msgpack.StreamingUnpacker.Context.__xtoHash): * * * * Doing function body for: __xtoHash * * * * DtoCreateNestedContext for __xtoHash * * * * * DtoCreateNestedContextType for msgpack.StreamingUnpacker.Context.__xtoHash * * * * CompoundStatement::toIR(): * * * * * CompoundStatement::toIR(): * * * * * * ExpStatement::toIR(): * * * * * * * DeclarationExp::toElem: ulong h = 0LU; | T=void * * * * * * * * DtoDeclarationExp: h * * * * * * * * * VarDeclaration * * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * * llvm value for decl: %h = alloca i64, align 8 * * * * * * * * * * expression initializer * * * * * * * * * * AssignExp::toElem: h = 0LU | (ulong)(ulong = ulong) * * * * * * * * * * * VarExp::toElem: h @ ulong * * * * * * * * * * * * DtoSymbolAddress ('h' of type 'ulong') * * * * * * * * * * * * * a normal variable * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * lhs: %h = alloca i64, align 8 * * * * * * * * * * * * rhs: i64 0 * * * * * * UnrolledLoopStatement::toIR(): * * * * * * * ScopeStatement::toIR(): * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * ExpStatement::toIR(): * * * * * * * * * * DeclarationExp::toElem: enum ulong i = 0LU; | T=void * * * * * * * * * * * DtoDeclarationExp: i * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * Manifest constant, nothing to do. * * * * * * * * * ExpStatement::toIR(): * * * * * * * * * * DeclarationExp::toElem: alias T = const(State); | T=void * * * * * * * * * * * DtoDeclarationExp: T * * * * * * * * * * * * Ignoring Symbol: alias * * * * * * * * * ExpStatement::toIR(): * * * * * * * * * * AddAssignExp::toElem: h += typeid(const(State)).getHash(cast(const(void*))&p.state) @ ulong * * * * * * * * * * * Caching l-value of h += typeid(const(State)).getHash(cast(const(void*))&p.state) => h * * * * * * * * * * * * VarExp::toElem: h @ ulong * * * * * * * * * * * * * DtoSymbolAddress ('h' of type 'ulong') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * AddExp::toElem: h + typeid(const(State)).getHash(cast(const(void*))&p.state) @ ulong * * * * * * * * * * * * VarExp::toElem: h @ ulong * * * * * * * * * * * * CallExp::toElem: typeid(const(State)).getHash(cast(const(void*))&p.state) @ ulong * * * * * * * * * * * * * DotVarExp::toElem: typeid(const(State)).getHash @ const nothrow @trusted ulong(const(void*) p) * * * * * * * * * * * * * * SymOffExp::toElem: typeid(const(State)) @ object.TypeInfo * * * * * * * * * * * * * * * DtoSymbolAddress ('typeid(const(State))' of type 'object.TypeInfo_Const') * * * * * * * * * * * * * * * * TypeInfoDeclaration * * * * * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(const(State))) * * * * * * * * * * * * * * * * * type = 'const(State)' * * * * * * * * * * * * * * * * * typeinfo mangle: _D44TypeInfo_xE7msgpack17StreamingUnpacker5State6__initZ * * * * * * * * * * * * * * * * * Building type: State * * * * * * * * * * * * * * * * * TypeInfoConstDeclaration::llvmDefine() typeid(const(State)) * * * * * * * * * * * * * * * * * * DtoTypeInfoOf(type = 'State', base='1') * * * * * * * * * * * * * * * * * * * Type::getTypeInfo(): State * * * * * * * * * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(State)) * * * * * * * * * * * * * * * * * * * * * type = 'State' * * * * * * * * * * * * * * * * * * * * * typeinfo mangle: _D43TypeInfo_E7msgpack17StreamingUnpacker5State6__initZ * * * * * * * * * * * * * * * * * * * * * Building type: State * * * * * * * * * * * * * * * * * * * * * TypeInfoEnumDeclaration::llvmDefine() typeid(State) * * * * * * * * * * * * * * * * * * * * * * DtoTypeInfoOf(type = 'int', base='1') * * * * * * * * * * * * * * * * * * * * * * * Type::getTypeInfo(): int * * * * * * * * * * * * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(int)) * * * * * * * * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(State)) * * * * * * * * * * * * * * * Casting from 'TypeInfo_Const*' to 'object.TypeInfo' * * * * * * * * * * * * * * * * src: %object.TypeInfo_Const* bitcast (%"typeid(const(State))"* @_D44TypeInfo_xE7msgpack17StreamingUnpacker5State6__initZ to %object.TypeInfo_Const*) * * * * * * * * * * * * * * * * to type: %object.TypeInfo* * * * * * * * * * * * * * * vthis: %object.TypeInfo* bitcast (%"typeid(const(State))"* @_D44TypeInfo_xE7msgpack17StreamingUnpacker5State6__initZ to %object.TypeInfo*) * * * * * * * * * * * * * * funcval: %3 = load i64 (%object.TypeInfo*, i8*)*, i64 (%object.TypeInfo*, i8*)** %"typeid(const(State)).getHash@vtbl", align 8 * * * * * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * * * * * DtoFunctionType(const nothrow @trusted ulong(const(void*) p)) * * * * * * * * * * * * * * funcval casted: %"typeid(const(State)).getHash" = load i64 (%object.TypeInfo*, i8*)*, i64 (%object.TypeInfo*, i8*)** %"typeid(const(State)).getHash@vtbl", align 8 * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * %object.TypeInfo* bitcast (%"typeid(const(State))"* @_D44TypeInfo_xE7msgpack17StreamingUnpacker5State6__initZ to %object.TypeInfo*) * * * * * * * * * * * * * * Function type: const nothrow @trusted ulong(const(void*) p) * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * CastExp::toElem: cast(const(void*))&p.state @ const(void*) * * * * * * * * * * * * * * * * AddrExp::toElem: &p.state @ const(State)* * * * * * * * * * * * * * * * * * DotVarExp::toElem: p.state @ const(State) * * * * * * * * * * * * * * * * * * VarExp::toElem: p @ const(Context) * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('p' of type 'const(Context)') * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * type: const(Context) * * * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.Context.state: * * * * * * * * * * * * * * * * * * * Building type: State * * * * * * * * * * * * * * * * * * * Value: %3 = getelementptr %msgpack.StreamingUnpacker.Context, %msgpack.StreamingUnpacker.Context* %p_arg, i32 0, i32 0 * * * * * * * * * * * * * * * * * is nothing special * * * * * * * * * * * * * * * * * lval: %3 = getelementptr %msgpack.StreamingUnpacker.Context, %msgpack.StreamingUnpacker.Context* %p_arg, i32 0, i32 0 * * * * * * * * * * * * * * * * * Building type: const(State)* * * * * * * * * * * * * * * * * * * Building type: State * * * * * * * * * * * * * * * * Casting from 'const(State)*' to 'const(void*)' * * * * * * * * * * * * * * * * * src: %3 = getelementptr %msgpack.StreamingUnpacker.Context, %msgpack.StreamingUnpacker.Context* %p_arg, i32 0, i32 0 * * * * * * * * * * * * * * * * * to type: i8* * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * lhs: %h = alloca i64, align 8 * * * * * * * * * * * * rhs: %7 = add i64 %6, %5 * * * * * * * ScopeStatement::toIR(): * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * ExpStatement::toIR(): * * * * * * * * * * DeclarationExp::toElem: enum ulong i = 1LU; | T=void * * * * * * * * * * * DtoDeclarationExp: i * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * Manifest constant, nothing to do. * * * * * * * * * ExpStatement::toIR(): * * * * * * * * * * DeclarationExp::toElem: alias T = const(ulong); | T=void * * * * * * * * * * * DtoDeclarationExp: T * * * * * * * * * * * * Ignoring Symbol: alias * * * * * * * * * ExpStatement::toIR(): * * * * * * * * * * AddAssignExp::toElem: h += typeid(const(ulong)).getHash(cast(const(void*))&p.trail) @ ulong * * * * * * * * * * * Caching l-value of h += typeid(const(ulong)).getHash(cast(const(void*))&p.trail) => h * * * * * * * * * * * * VarExp::toElem: h @ ulong * * * * * * * * * * * * * DtoSymbolAddress ('h' of type 'ulong') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * AddExp::toElem: h + typeid(const(ulong)).getHash(cast(const(void*))&p.trail) @ ulong * * * * * * * * * * * * VarExp::toElem: h @ ulong * * * * * * * * * * * * CallExp::toElem: typeid(const(ulong)).getHash(cast(const(void*))&p.trail) @ ulong * * * * * * * * * * * * * DotVarExp::toElem: typeid(const(ulong)).getHash @ const nothrow @trusted ulong(const(void*) p) * * * * * * * * * * * * * * SymOffExp::toElem: typeid(const(ulong)) @ object.TypeInfo * * * * * * * * * * * * * * * DtoSymbolAddress ('typeid(const(ulong))' of type 'object.TypeInfo_Const') * * * * * * * * * * * * * * * * TypeInfoDeclaration * * * * * * * * * * * * * * * Casting from 'TypeInfo_Const*' to 'object.TypeInfo' * * * * * * * * * * * * * * * * src: %object.TypeInfo_Const* bitcast (%"typeid(const(ulong))"* @_D11TypeInfo_xm6__initZ to %object.TypeInfo_Const*) * * * * * * * * * * * * * * * * to type: %object.TypeInfo* * * * * * * * * * * * * * * vthis: %object.TypeInfo* bitcast (%"typeid(const(ulong))"* @_D11TypeInfo_xm6__initZ to %object.TypeInfo*) * * * * * * * * * * * * * * funcval: %10 = load i64 (%object.TypeInfo*, i8*)*, i64 (%object.TypeInfo*, i8*)** %"typeid(const(ulong)).getHash@vtbl", align 8 * * * * * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * * * * * DtoFunctionType(const nothrow @trusted ulong(const(void*) p)) * * * * * * * * * * * * * * funcval casted: %"typeid(const(ulong)).getHash" = load i64 (%object.TypeInfo*, i8*)*, i64 (%object.TypeInfo*, i8*)** %"typeid(const(ulong)).getHash@vtbl", align 8 * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * %object.TypeInfo* bitcast (%"typeid(const(ulong))"* @_D11TypeInfo_xm6__initZ to %object.TypeInfo*) * * * * * * * * * * * * * * Function type: const nothrow @trusted ulong(const(void*) p) * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * CastExp::toElem: cast(const(void*))&p.trail @ const(void*) * * * * * * * * * * * * * * * * AddrExp::toElem: &p.trail @ const(ulong)* * * * * * * * * * * * * * * * * * DotVarExp::toElem: p.trail @ const(ulong) * * * * * * * * * * * * * * * * * * VarExp::toElem: p @ const(Context) * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('p' of type 'const(Context)') * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * type: const(Context) * * * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.Context.trail: * * * * * * * * * * * * * * * * * * * Value: %10 = getelementptr %msgpack.StreamingUnpacker.Context, %msgpack.StreamingUnpacker.Context* %p_arg, i32 0, i32 2 * * * * * * * * * * * * * * * * * is nothing special * * * * * * * * * * * * * * * * * lval: %10 = getelementptr %msgpack.StreamingUnpacker.Context, %msgpack.StreamingUnpacker.Context* %p_arg, i32 0, i32 2 * * * * * * * * * * * * * * * * Casting from 'const(ulong)*' to 'const(void*)' * * * * * * * * * * * * * * * * * src: %10 = getelementptr %msgpack.StreamingUnpacker.Context, %msgpack.StreamingUnpacker.Context* %p_arg, i32 0, i32 2 * * * * * * * * * * * * * * * * * to type: i8* * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * lhs: %h = alloca i64, align 8 * * * * * * * * * * * * rhs: %14 = add i64 %13, %12 * * * * * * * ScopeStatement::toIR(): * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * ExpStatement::toIR(): * * * * * * * * * * DeclarationExp::toElem: enum ulong i = 2LU; | T=void * * * * * * * * * * * DtoDeclarationExp: i * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * Manifest constant, nothing to do. * * * * * * * * * ExpStatement::toIR(): * * * * * * * * * * DeclarationExp::toElem: alias T = const(ulong); | T=void * * * * * * * * * * * DtoDeclarationExp: T * * * * * * * * * * * * Ignoring Symbol: alias * * * * * * * * * ExpStatement::toIR(): * * * * * * * * * * AddAssignExp::toElem: h += typeid(const(ulong)).getHash(cast(const(void*))&p.top) @ ulong * * * * * * * * * * * Caching l-value of h += typeid(const(ulong)).getHash(cast(const(void*))&p.top) => h * * * * * * * * * * * * VarExp::toElem: h @ ulong * * * * * * * * * * * * * DtoSymbolAddress ('h' of type 'ulong') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * AddExp::toElem: h + typeid(const(ulong)).getHash(cast(const(void*))&p.top) @ ulong * * * * * * * * * * * * VarExp::toElem: h @ ulong * * * * * * * * * * * * CallExp::toElem: typeid(const(ulong)).getHash(cast(const(void*))&p.top) @ ulong * * * * * * * * * * * * * DotVarExp::toElem: typeid(const(ulong)).getHash @ const nothrow @trusted ulong(const(void*) p) * * * * * * * * * * * * * * SymOffExp::toElem: typeid(const(ulong)) @ object.TypeInfo * * * * * * * * * * * * * * * DtoSymbolAddress ('typeid(const(ulong))' of type 'object.TypeInfo_Const') * * * * * * * * * * * * * * * * TypeInfoDeclaration * * * * * * * * * * * * * * * Casting from 'TypeInfo_Const*' to 'object.TypeInfo' * * * * * * * * * * * * * * * * src: %object.TypeInfo_Const* bitcast (%"typeid(const(ulong))"* @_D11TypeInfo_xm6__initZ to %object.TypeInfo_Const*) * * * * * * * * * * * * * * * * to type: %object.TypeInfo* * * * * * * * * * * * * * * vthis: %object.TypeInfo* bitcast (%"typeid(const(ulong))"* @_D11TypeInfo_xm6__initZ to %object.TypeInfo*) * * * * * * * * * * * * * * funcval: %17 = load i64 (%object.TypeInfo*, i8*)*, i64 (%object.TypeInfo*, i8*)** %"typeid(const(ulong)).getHash@vtbl4", align 8 * * * * * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * * * * * DtoFunctionType(const nothrow @trusted ulong(const(void*) p)) * * * * * * * * * * * * * * funcval casted: %"typeid(const(ulong)).getHash5" = load i64 (%object.TypeInfo*, i8*)*, i64 (%object.TypeInfo*, i8*)** %"typeid(const(ulong)).getHash@vtbl4", align 8 * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * %object.TypeInfo* bitcast (%"typeid(const(ulong))"* @_D11TypeInfo_xm6__initZ to %object.TypeInfo*) * * * * * * * * * * * * * * Function type: const nothrow @trusted ulong(const(void*) p) * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * CastExp::toElem: cast(const(void*))&p.top @ const(void*) * * * * * * * * * * * * * * * * AddrExp::toElem: &p.top @ const(ulong)* * * * * * * * * * * * * * * * * * DotVarExp::toElem: p.top @ const(ulong) * * * * * * * * * * * * * * * * * * VarExp::toElem: p @ const(Context) * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('p' of type 'const(Context)') * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * type: const(Context) * * * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.Context.top: * * * * * * * * * * * * * * * * * * * Value: %17 = getelementptr %msgpack.StreamingUnpacker.Context, %msgpack.StreamingUnpacker.Context* %p_arg, i32 0, i32 3 * * * * * * * * * * * * * * * * * is nothing special * * * * * * * * * * * * * * * * * lval: %17 = getelementptr %msgpack.StreamingUnpacker.Context, %msgpack.StreamingUnpacker.Context* %p_arg, i32 0, i32 3 * * * * * * * * * * * * * * * * Casting from 'const(ulong)*' to 'const(void*)' * * * * * * * * * * * * * * * * * src: %17 = getelementptr %msgpack.StreamingUnpacker.Context, %msgpack.StreamingUnpacker.Context* %p_arg, i32 0, i32 3 * * * * * * * * * * * * * * * * * to type: i8* * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * lhs: %h = alloca i64, align 8 * * * * * * * * * * * * rhs: %21 = add i64 %20, %19 * * * * * * * ScopeStatement::toIR(): * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * ExpStatement::toIR(): * * * * * * * * * * DeclarationExp::toElem: enum ulong i = 3LU; | T=void * * * * * * * * * * * DtoDeclarationExp: i * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * Manifest constant, nothing to do. * * * * * * * * * ExpStatement::toIR(): * * * * * * * * * * DeclarationExp::toElem: alias T = const(Container[]); | T=void * * * * * * * * * * * DtoDeclarationExp: T * * * * * * * * * * * * Ignoring Symbol: alias * * * * * * * * * ExpStatement::toIR(): * * * * * * * * * * AddAssignExp::toElem: h += typeid(const(Container[])).getHash(cast(const(void*))&p.stack) @ ulong * * * * * * * * * * * Caching l-value of h += typeid(const(Container[])).getHash(cast(const(void*))&p.stack) => h * * * * * * * * * * * * VarExp::toElem: h @ ulong * * * * * * * * * * * * * DtoSymbolAddress ('h' of type 'ulong') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * AddExp::toElem: h + typeid(const(Container[])).getHash(cast(const(void*))&p.stack) @ ulong * * * * * * * * * * * * VarExp::toElem: h @ ulong * * * * * * * * * * * * CallExp::toElem: typeid(const(Container[])).getHash(cast(const(void*))&p.stack) @ ulong * * * * * * * * * * * * * DotVarExp::toElem: typeid(const(Container[])).getHash @ const nothrow @trusted ulong(const(void*) p) * * * * * * * * * * * * * * SymOffExp::toElem: typeid(const(Container[])) @ object.TypeInfo * * * * * * * * * * * * * * * DtoSymbolAddress ('typeid(const(Container[]))' of type 'object.TypeInfo_Const') * * * * * * * * * * * * * * * * TypeInfoDeclaration * * * * * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(const(Container[]))) * * * * * * * * * * * * * * * * * type = 'const(Container[])' * * * * * * * * * * * * * * * * * typeinfo mangle: _D57TypeInfo_xAS7msgpack17StreamingUnpacker7Context9Container6__initZ * * * * * * * * * * * * * * * * * TypeInfoConstDeclaration::llvmDefine() typeid(const(Container[])) * * * * * * * * * * * * * * * * * * DtoTypeInfoOf(type = 'const(Container)[]', base='1') * * * * * * * * * * * * * * * * * * * Type::getTypeInfo(): const(Container)[] * * * * * * * * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(const(Container)[])) * * * * * * * * * * * * * * * Casting from 'TypeInfo_Const*' to 'object.TypeInfo' * * * * * * * * * * * * * * * * src: %object.TypeInfo_Const* bitcast (%"typeid(const(Container[]))"* @_D57TypeInfo_xAS7msgpack17StreamingUnpacker7Context9Container6__initZ to %object.TypeInfo_Const*) * * * * * * * * * * * * * * * * to type: %object.TypeInfo* * * * * * * * * * * * * * * vthis: %object.TypeInfo* bitcast (%"typeid(const(Container[]))"* @_D57TypeInfo_xAS7msgpack17StreamingUnpacker7Context9Container6__initZ to %object.TypeInfo*) * * * * * * * * * * * * * * funcval: %24 = load i64 (%object.TypeInfo*, i8*)*, i64 (%object.TypeInfo*, i8*)** %"typeid(const(Container[])).getHash@vtbl", align 8 * * * * * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * * * * * DtoFunctionType(const nothrow @trusted ulong(const(void*) p)) * * * * * * * * * * * * * * funcval casted: %"typeid(const(Container[])).getHash" = load i64 (%object.TypeInfo*, i8*)*, i64 (%object.TypeInfo*, i8*)** %"typeid(const(Container[])).getHash@vtbl", align 8 * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * %object.TypeInfo* bitcast (%"typeid(const(Container[]))"* @_D57TypeInfo_xAS7msgpack17StreamingUnpacker7Context9Container6__initZ to %object.TypeInfo*) * * * * * * * * * * * * * * Function type: const nothrow @trusted ulong(const(void*) p) * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * CastExp::toElem: cast(const(void*))&p.stack @ const(void*) * * * * * * * * * * * * * * * * AddrExp::toElem: &p.stack @ const(Container[])* * * * * * * * * * * * * * * * * * DotVarExp::toElem: p.stack @ const(Container[]) * * * * * * * * * * * * * * * * * * VarExp::toElem: p @ const(Context) * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('p' of type 'const(Context)') * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * type: const(Context) * * * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.Context.stack: * * * * * * * * * * * * * * * * * * * Value: %24 = getelementptr %msgpack.StreamingUnpacker.Context, %msgpack.StreamingUnpacker.Context* %p_arg, i32 0, i32 4 * * * * * * * * * * * * * * * * * is nothing special * * * * * * * * * * * * * * * * * lval: %24 = getelementptr %msgpack.StreamingUnpacker.Context, %msgpack.StreamingUnpacker.Context* %p_arg, i32 0, i32 4 * * * * * * * * * * * * * * * * * Building type: const(Container[])* * * * * * * * * * * * * * * * * Casting from 'const(Container[])*' to 'const(void*)' * * * * * * * * * * * * * * * * * src: %24 = getelementptr %msgpack.StreamingUnpacker.Context, %msgpack.StreamingUnpacker.Context* %p_arg, i32 0, i32 4 * * * * * * * * * * * * * * * * * to type: i8* * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * lhs: %h = alloca i64, align 8 * * * * * * * * * * * * rhs: %28 = add i64 %27, %26 * * * * * * ReturnStatement::toIR(): * * * * * * * VarExp::toElem: h @ ulong * * * * * * * * DtoSymbolAddress ('h' of type 'ulong') * * * * * * * * * a normal variable * * * * * * * return value is '0x1327c9b8' * * VarDeclaration::codegen(): 'msgpack.StreamingUnpacker.context_' * * * DtoResolveVariable(msgpack.StreamingUnpacker.context_) * * TemplateInstance::codegen: 'msgpack.StreamingUnpacker.InternalBuffer!()' * * * VarDeclaration::codegen(): 'msgpack.StreamingUnpacker.InternalBuffer!().buffer_' * * * * DtoResolveVariable(msgpack.StreamingUnpacker.InternalBuffer!().buffer_) * * * VarDeclaration::codegen(): 'msgpack.StreamingUnpacker.InternalBuffer!().used_' * * * * DtoResolveVariable(msgpack.StreamingUnpacker.InternalBuffer!().used_) * * * VarDeclaration::codegen(): 'msgpack.StreamingUnpacker.InternalBuffer!().offset_' * * * * DtoResolveVariable(msgpack.StreamingUnpacker.InternalBuffer!().offset_) * * * VarDeclaration::codegen(): 'msgpack.StreamingUnpacker.InternalBuffer!().parsed_' * * * * DtoResolveVariable(msgpack.StreamingUnpacker.InternalBuffer!().parsed_) * * * VarDeclaration::codegen(): 'msgpack.StreamingUnpacker.InternalBuffer!().hasRaw_' * * * * DtoResolveVariable(msgpack.StreamingUnpacker.InternalBuffer!().hasRaw_) * * * DtoDefineFunction(msgpack.StreamingUnpacker.InternalBuffer!().buffer): msgpack-d/src/msgpack.d(1750) * * * * isMember = this is: StreamingUnpacker * * * * DtoFunctionType(nothrow @property @safe ubyte[]()) * * * * * x86-64 ABI: Transforming return type * * * * * x86-64 ABI: Transforming argument types * * * * * Final function type: { i64, i8* } (%msgpack.StreamingUnpacker*) * * * * DtoResolveFunction(msgpack.StreamingUnpacker.InternalBuffer!().buffer): msgpack-d/src/msgpack.d(1750) * * * * * DtoDeclareFunction(msgpack.StreamingUnpacker.InternalBuffer!().buffer): msgpack-d/src/msgpack.d(1750) * * * * * * isMember = this is: StreamingUnpacker * * * * * * DtoFunctionType(nothrow @property @safe ubyte[]()) * * * * * * func = declare { i64, i8* } @_D7msgpack17StreamingUnpacker9__mixin126bufferMFNbNdNfZAh(%msgpack.StreamingUnpacker*) * * * * Doing function body for: buffer * * * * DtoCreateNestedContext for buffer * * * * * DtoCreateNestedContextType for msgpack.StreamingUnpacker.InternalBuffer!().buffer * * * * CompoundStatement::toIR(): * * * * * ReturnStatement::toIR(): msgpack-d/src/msgpack.d(1752) * * * * * * DotVarExp::toElem: this.buffer_ @ ubyte[] * * * * * * * ThisExp::toElem: this @ StreamingUnpacker * * * * * * * * normal this exp * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.InternalBuffer!().buffer_: * * * * * * * * Value: %1 = getelementptr %msgpack.StreamingUnpacker, %msgpack.StreamingUnpacker* %.this_arg, i32 0, i32 1 * * * * * * return value is '0x1327e6c8' * * * DtoDefineFunction(msgpack.StreamingUnpacker.InternalBuffer!().feed): msgpack-d/src/msgpack.d(1757) * * * * isMember = this is: StreamingUnpacker * * * * DtoFunctionType(@safe void(const(ubyte[]) target)) * * * * * x86-64 ABI: Transforming argument types * * * * * Final function type: void (%msgpack.StreamingUnpacker*, { i64, i8* }) * * * * DtoResolveFunction(msgpack.StreamingUnpacker.InternalBuffer!().feed): msgpack-d/src/msgpack.d(1757) * * * * * DtoDeclareFunction(msgpack.StreamingUnpacker.InternalBuffer!().feed): msgpack-d/src/msgpack.d(1757) * * * * * * isMember = this is: StreamingUnpacker * * * * * * DtoFunctionType(@safe void(const(ubyte[]) target)) * * * * * * func = declare void @_D7msgpack17StreamingUnpacker9__mixin124feedMFNfxAhZv(%msgpack.StreamingUnpacker*, { i64, i8* }) * * * * Doing function body for: feed * * * * DtoCreateNestedContext for feed * * * * * DtoCreateNestedContextType for msgpack.StreamingUnpacker.InternalBuffer!().feed * * * * * * has nested frame * * * * * * Function feed has depth 0 * * * * * * Nested var 'this' of type %msgpack.StreamingUnpacker* * * * * * * frameType = %nest.feed.15 = type { %msgpack.StreamingUnpacker* } * * * * * nested param: this * * * * CompoundStatement::toIR(): * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(1763) * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(1770) * * * * * * * DeclarationExp::toElem: @safe void expandBuffer(const(ulong) size) { if (this.used_ == this.offset_ && !this.hasRaw_) { this.used_ = (this.offset_ = 0LU); if (this.buffer_.length < size) this.buffer_.length = size; return ; } ubyte[] unparsed = this.buffer_[this.offset_..this.used_]; ulong restSize = this.buffer_.length - this.used_ + this.offset_; ulong newSize = size > restSize ? this.unparsedSize() + size : this.buffer_.length; if (this.hasRaw_) { this.hasRaw_ = false; this.buffer_ = new ubyte[](newSize); } else { this.buffer_.length = newSize; ubyte[] area = this.buffer_[0..this.unparsedSize()]; unparsed = overlap(area, unparsed) ? dup(unparsed) : unparsed; } this.buffer_[0..this.unparsedSize()] = unparsed[]; this.used_ = this.unparsedSize(); this.offset_ = 0LU; } | T=void * * * * * * * * DtoDeclarationExp: expandBuffer * * * * * * * * * FuncDeclaration * * * * * * * * * DtoDefineFunction(msgpack.StreamingUnpacker.InternalBuffer!().feed.expandBuffer): msgpack-d/src/msgpack.d(1770) * * * * * * * * * * DtoFunctionType(@safe void(const(ulong) size)) * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * Final function type: void (i8*, i64) * * * * * * * * * * DtoResolveFunction(msgpack.StreamingUnpacker.InternalBuffer!().feed.expandBuffer): msgpack-d/src/msgpack.d(1770) * * * * * * * * * * * DtoDeclareFunction(msgpack.StreamingUnpacker.InternalBuffer!().feed.expandBuffer): msgpack-d/src/msgpack.d(1770) * * * * * * * * * * * * DtoFunctionType(@safe void(const(ulong) size)) * * * * * * * * * * * * func = declare void @_D7msgpack17StreamingUnpacker9__mixin124feedMFNfxAhZ12expandBufferMFNfxmZv(i8*, i64) * * * * * * * * * * Doing function body for: expandBuffer * * * * * * * * * * DtoCreateNestedContext for expandBuffer * * * * * * * * * * * DtoCreateNestedContextType for msgpack.StreamingUnpacker.InternalBuffer!().feed.expandBuffer * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.StreamingUnpacker.InternalBuffer!().feed * * * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(1771) * * * * * * * * * * * * IfStatement::toIR(): msgpack-d/src/msgpack.d(1773) * * * * * * * * * * * * * AndAndExp::toElem: this.used_ == this.offset_ && !this.hasRaw_ @ bool * * * * * * * * * * * * * * EqualExp::toElem: this.used_ == this.offset_ @ bool * * * * * * * * * * * * * * * DotVarExp::toElem: this.used_ @ ulong * * * * * * * * * * * * * * * * ThisExp::toElem: this @ StreamingUnpacker * * * * * * * * * * * * * * * * * nested this exp * * * * * * * * * * * * * * * * * DtoNestedVariable for this @ msgpack-d/src/msgpack.d(1773) * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.StreamingUnpacker.InternalBuffer!().feed * * * * * * * * * * * * * * * * * * Context: %2 = bitcast i8* %1 to %nest.feed.15* * * * * * * * * * * * * * * * * * * of type: %nest.feed.15 = type { %msgpack.StreamingUnpacker* } * * * * * * * * * * * * * * * * * * Variable: this * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * Function: expandBuffer * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * Addr: %this = getelementptr %nest.feed.15, %nest.feed.15* %2, i32 0, i32 0 * * * * * * * * * * * * * * * * * * of type: %msgpack.StreamingUnpacker** * * * * * * * * * * * * * * * * * * Was byref, now: %3 = load %msgpack.StreamingUnpacker*, %msgpack.StreamingUnpacker** %this, align 8 * * * * * * * * * * * * * * * * * * of type: %msgpack.StreamingUnpacker* * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.InternalBuffer!().used_: * * * * * * * * * * * * * * * * * Value: %4 = getelementptr %msgpack.StreamingUnpacker, %msgpack.StreamingUnpacker* %3, i32 0, i32 2 * * * * * * * * * * * * * * * DotVarExp::toElem: this.offset_ @ ulong * * * * * * * * * * * * * * * * ThisExp::toElem: this @ StreamingUnpacker * * * * * * * * * * * * * * * * * nested this exp * * * * * * * * * * * * * * * * * DtoNestedVariable for this @ msgpack-d/src/msgpack.d(1773) * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.StreamingUnpacker.InternalBuffer!().feed * * * * * * * * * * * * * * * * * * Context: %6 = bitcast i8* %5 to %nest.feed.15* * * * * * * * * * * * * * * * * * * of type: %nest.feed.15 = type { %msgpack.StreamingUnpacker* } * * * * * * * * * * * * * * * * * * Variable: this * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * Function: expandBuffer * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * Addr: %this1 = getelementptr %nest.feed.15, %nest.feed.15* %6, i32 0, i32 0 * * * * * * * * * * * * * * * * * * of type: %msgpack.StreamingUnpacker** * * * * * * * * * * * * * * * * * * Was byref, now: %7 = load %msgpack.StreamingUnpacker*, %msgpack.StreamingUnpacker** %this1, align 8 * * * * * * * * * * * * * * * * * * of type: %msgpack.StreamingUnpacker* * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.InternalBuffer!().offset_: * * * * * * * * * * * * * * * * * Value: %8 = getelementptr %msgpack.StreamingUnpacker, %msgpack.StreamingUnpacker* %7, i32 0, i32 3 * * * * * * * * * * * * * * * integral or pointer or interface * * * * * * * * * * * * * * * lv: %9 = load i64, i64* %4 * * * * * * * * * * * * * * * rv: %10 = load i64, i64* %8 * * * * * * * * * * * * * * NotExp::toElem: !this.hasRaw_ @ bool * * * * * * * * * * * * * * * DotVarExp::toElem: this.hasRaw_ @ bool * * * * * * * * * * * * * * * * ThisExp::toElem: this @ StreamingUnpacker * * * * * * * * * * * * * * * * * nested this exp * * * * * * * * * * * * * * * * * DtoNestedVariable for this @ msgpack-d/src/msgpack.d(1773) * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.StreamingUnpacker.InternalBuffer!().feed * * * * * * * * * * * * * * * * * * Context: %13 = bitcast i8* %12 to %nest.feed.15* * * * * * * * * * * * * * * * * * * of type: %nest.feed.15 = type { %msgpack.StreamingUnpacker* } * * * * * * * * * * * * * * * * * * Variable: this * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * Function: expandBuffer * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * Addr: %this2 = getelementptr %nest.feed.15, %nest.feed.15* %13, i32 0, i32 0 * * * * * * * * * * * * * * * * * * of type: %msgpack.StreamingUnpacker** * * * * * * * * * * * * * * * * * * Was byref, now: %14 = load %msgpack.StreamingUnpacker*, %msgpack.StreamingUnpacker** %this2, align 8 * * * * * * * * * * * * * * * * * * of type: %msgpack.StreamingUnpacker* * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.InternalBuffer!().hasRaw_: * * * * * * * * * * * * * * * * * Value: %15 = getelementptr %msgpack.StreamingUnpacker, %msgpack.StreamingUnpacker* %14, i32 0, i32 5 * * * * * * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(1773) * * * * * * * * * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(1773) * * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(1774) * * * * * * * * * * * * * * * * AssignExp::toElem: this.used_ = (this.offset_ = 0LU) | (ulong)(ulong = ulong) * * * * * * * * * * * * * * * * * DotVarExp::toElem: this.used_ @ ulong * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ StreamingUnpacker * * * * * * * * * * * * * * * * * * * nested this exp * * * * * * * * * * * * * * * * * * * DtoNestedVariable for this @ msgpack-d/src/msgpack.d(1774) * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.StreamingUnpacker.InternalBuffer!().feed * * * * * * * * * * * * * * * * * * * * Context: %20 = bitcast i8* %19 to %nest.feed.15* * * * * * * * * * * * * * * * * * * * * of type: %nest.feed.15 = type { %msgpack.StreamingUnpacker* } * * * * * * * * * * * * * * * * * * * * Variable: this * * * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * * * Function: expandBuffer * * * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * * * Addr: %this3 = getelementptr %nest.feed.15, %nest.feed.15* %20, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * * of type: %msgpack.StreamingUnpacker** * * * * * * * * * * * * * * * * * * * * Was byref, now: %21 = load %msgpack.StreamingUnpacker*, %msgpack.StreamingUnpacker** %this3, align 8 * * * * * * * * * * * * * * * * * * * * of type: %msgpack.StreamingUnpacker* * * * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.InternalBuffer!().used_: * * * * * * * * * * * * * * * * * * * Value: %22 = getelementptr %msgpack.StreamingUnpacker, %msgpack.StreamingUnpacker* %21, i32 0, i32 2 * * * * * * * * * * * * * * * * * AssignExp::toElem: this.offset_ = 0LU | (ulong)(ulong = ulong) * * * * * * * * * * * * * * * * * * DotVarExp::toElem: this.offset_ @ ulong * * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ StreamingUnpacker * * * * * * * * * * * * * * * * * * * * nested this exp * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for this @ msgpack-d/src/msgpack.d(1774) * * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.StreamingUnpacker.InternalBuffer!().feed * * * * * * * * * * * * * * * * * * * * * Context: %24 = bitcast i8* %23 to %nest.feed.15* * * * * * * * * * * * * * * * * * * * * * of type: %nest.feed.15 = type { %msgpack.StreamingUnpacker* } * * * * * * * * * * * * * * * * * * * * * Variable: this * * * * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * * * * Function: expandBuffer * * * * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * * * * Addr: %this4 = getelementptr %nest.feed.15, %nest.feed.15* %24, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * * * of type: %msgpack.StreamingUnpacker** * * * * * * * * * * * * * * * * * * * * * Was byref, now: %25 = load %msgpack.StreamingUnpacker*, %msgpack.StreamingUnpacker** %this4, align 8 * * * * * * * * * * * * * * * * * * * * * of type: %msgpack.StreamingUnpacker* * * * * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.InternalBuffer!().offset_: * * * * * * * * * * * * * * * * * * * * Value: %26 = getelementptr %msgpack.StreamingUnpacker, %msgpack.StreamingUnpacker* %25, i32 0, i32 3 * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * lhs: %26 = getelementptr %msgpack.StreamingUnpacker, %msgpack.StreamingUnpacker* %25, i32 0, i32 3 * * * * * * * * * * * * * * * * * * * rhs: i64 0 * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * lhs: %22 = getelementptr %msgpack.StreamingUnpacker, %msgpack.StreamingUnpacker* %21, i32 0, i32 2 * * * * * * * * * * * * * * * * * * rhs: %27 = load i64, i64* %26 * * * * * * * * * * * * * * * IfStatement::toIR(): msgpack-d/src/msgpack.d(1776) * * * * * * * * * * * * * * * * CmpExp::toElem: this.buffer_.length < size @ bool * * * * * * * * * * * * * * * * * ArrayLengthExp::toElem: this.buffer_.length @ ulong * * * * * * * * * * * * * * * * * * DotVarExp::toElem: this.buffer_ @ ubyte[] * * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ StreamingUnpacker * * * * * * * * * * * * * * * * * * * * nested this exp * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for this @ msgpack-d/src/msgpack.d(1776) * * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.StreamingUnpacker.InternalBuffer!().feed * * * * * * * * * * * * * * * * * * * * * Context: %29 = bitcast i8* %28 to %nest.feed.15* * * * * * * * * * * * * * * * * * * * * * of type: %nest.feed.15 = type { %msgpack.StreamingUnpacker* } * * * * * * * * * * * * * * * * * * * * * Variable: this * * * * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * * * * Function: expandBuffer * * * * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * * * * Addr: %this5 = getelementptr %nest.feed.15, %nest.feed.15* %29, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * * * of type: %msgpack.StreamingUnpacker** * * * * * * * * * * * * * * * * * * * * * Was byref, now: %30 = load %msgpack.StreamingUnpacker*, %msgpack.StreamingUnpacker** %this5, align 8 * * * * * * * * * * * * * * * * * * * * * of type: %msgpack.StreamingUnpacker* * * * * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.InternalBuffer!().buffer_: * * * * * * * * * * * * * * * * * * * * Value: %31 = getelementptr %msgpack.StreamingUnpacker, %msgpack.StreamingUnpacker* %30, i32 0, i32 1 * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * VarExp::toElem: size @ ulong * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('size' of type 'const(ulong)') * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * type: const(ulong) * * * * * * * * * * * * * * * * * type 1: %.len = load i64, i64* %32 * * * * * * * * * * * * * * * * * type 2: %33 = load i64, i64* %size * * * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(1777) * * * * * * * * * * * * * * * * * AssignExp::toElem: this.buffer_.length = size | (ulong)(ulong = ulong) * * * * * * * * * * * * * * * * * * performing array.length assignment * * * * * * * * * * * * * * * * * * DotVarExp::toElem: this.buffer_ @ ubyte[] * * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ StreamingUnpacker * * * * * * * * * * * * * * * * * * * * nested this exp * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for this @ msgpack-d/src/msgpack.d(1777) * * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.StreamingUnpacker.InternalBuffer!().feed * * * * * * * * * * * * * * * * * * * * * Context: %36 = bitcast i8* %35 to %nest.feed.15* * * * * * * * * * * * * * * * * * * * * * of type: %nest.feed.15 = type { %msgpack.StreamingUnpacker* } * * * * * * * * * * * * * * * * * * * * * Variable: this * * * * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * * * * Function: expandBuffer * * * * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * * * * Addr: %this8 = getelementptr %nest.feed.15, %nest.feed.15* %36, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * * * of type: %msgpack.StreamingUnpacker** * * * * * * * * * * * * * * * * * * * * * Was byref, now: %37 = load %msgpack.StreamingUnpacker*, %msgpack.StreamingUnpacker** %this8, align 8 * * * * * * * * * * * * * * * * * * * * * of type: %msgpack.StreamingUnpacker* * * * * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.InternalBuffer!().buffer_: * * * * * * * * * * * * * * * * * * * * Value: %38 = getelementptr %msgpack.StreamingUnpacker, %msgpack.StreamingUnpacker* %37, i32 0, i32 1 * * * * * * * * * * * * * * * * * * VarExp::toElem: size @ ulong * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('size' of type 'const(ulong)') * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * type: const(ulong) * * * * * * * * * * * * * * * * * * DtoResizeDynArray : ubyte[] * * * * * * * * * * * * * * * * * * * DtoTypeInfoOf(type = 'ubyte[]', base='1') * * * * * * * * * * * * * * * * * * * * Type::getTypeInfo(): ubyte[] * * * * * * * * * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(ubyte[])) * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * * * SetArray * * * * * * * * * * * * * * * ReturnStatement::toIR(): msgpack-d/src/msgpack.d(1779) * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(1783) * * * * * * * * * * * * * DeclarationExp::toElem: ubyte[] unparsed = this.buffer_[this.offset_..this.used_]; | T=void * * * * * * * * * * * * * * DtoDeclarationExp: unparsed * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = ubyte[]) * * * * * * * * * * * * * * * * llvm value for decl: %unparsed = alloca { i64, i8* }, align 8 * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * AssignExp::toElem: unparsed = this.buffer_[this.offset_..this.used_] | (ubyte[])(ubyte[] = ubyte[]) * * * * * * * * * * * * * * * * * VarExp::toElem: unparsed @ ubyte[] * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('unparsed' of type 'ubyte[]') * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * SliceExp::toElem: this.buffer_[this.offset_..this.used_] @ ubyte[] * * * * * * * * * * * * * * * * * * DotVarExp::toElem: this.buffer_ @ ubyte[] * * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ StreamingUnpacker * * * * * * * * * * * * * * * * * * * * nested this exp * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for this @ msgpack-d/src/msgpack.d(1783) * * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.StreamingUnpacker.InternalBuffer!().feed * * * * * * * * * * * * * * * * * * * * * Context: %36 = bitcast i8* %35 to %nest.feed.15* * * * * * * * * * * * * * * * * * * * * * of type: %nest.feed.15 = type { %msgpack.StreamingUnpacker* } * * * * * * * * * * * * * * * * * * * * * Variable: this * * * * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * * * * Function: expandBuffer * * * * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * * * * Addr: %this10 = getelementptr %nest.feed.15, %nest.feed.15* %36, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * * * of type: %msgpack.StreamingUnpacker** * * * * * * * * * * * * * * * * * * * * * Was byref, now: %37 = load %msgpack.StreamingUnpacker*, %msgpack.StreamingUnpacker** %this10, align 8 * * * * * * * * * * * * * * * * * * * * * of type: %msgpack.StreamingUnpacker* * * * * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.InternalBuffer!().buffer_: * * * * * * * * * * * * * * * * * * * * Value: %38 = getelementptr %msgpack.StreamingUnpacker, %msgpack.StreamingUnpacker* %37, i32 0, i32 1 * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * DotVarExp::toElem: this.offset_ @ ulong * * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ StreamingUnpacker * * * * * * * * * * * * * * * * * * * * nested this exp * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for this @ msgpack-d/src/msgpack.d(1783) * * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.StreamingUnpacker.InternalBuffer!().feed * * * * * * * * * * * * * * * * * * * * * Context: %41 = bitcast i8* %40 to %nest.feed.15* * * * * * * * * * * * * * * * * * * * * * of type: %nest.feed.15 = type { %msgpack.StreamingUnpacker* } * * * * * * * * * * * * * * * * * * * * * Variable: this * * * * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * * * * Function: expandBuffer * * * * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * * * * Addr: %this12 = getelementptr %nest.feed.15, %nest.feed.15* %41, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * * * of type: %msgpack.StreamingUnpacker** * * * * * * * * * * * * * * * * * * * * * Was byref, now: %42 = load %msgpack.StreamingUnpacker*, %msgpack.StreamingUnpacker** %this12, align 8 * * * * * * * * * * * * * * * * * * * * * of type: %msgpack.StreamingUnpacker* * * * * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.InternalBuffer!().offset_: * * * * * * * * * * * * * * * * * * * * Value: %43 = getelementptr %msgpack.StreamingUnpacker, %msgpack.StreamingUnpacker* %42, i32 0, i32 3 * * * * * * * * * * * * * * * * * * DotVarExp::toElem: this.used_ @ ulong * * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ StreamingUnpacker * * * * * * * * * * * * * * * * * * * * nested this exp * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for this @ msgpack-d/src/msgpack.d(1783) * * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.StreamingUnpacker.InternalBuffer!().feed * * * * * * * * * * * * * * * * * * * * * Context: %45 = bitcast i8* %44 to %nest.feed.15* * * * * * * * * * * * * * * * * * * * * * of type: %nest.feed.15 = type { %msgpack.StreamingUnpacker* } * * * * * * * * * * * * * * * * * * * * * Variable: this * * * * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * * * * Function: expandBuffer * * * * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * * * * Addr: %this13 = getelementptr %nest.feed.15, %nest.feed.15* %45, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * * * of type: %msgpack.StreamingUnpacker** * * * * * * * * * * * * * * * * * * * * * Was byref, now: %46 = load %msgpack.StreamingUnpacker*, %msgpack.StreamingUnpacker** %this13, align 8 * * * * * * * * * * * * * * * * * * * * * of type: %msgpack.StreamingUnpacker* * * * * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.InternalBuffer!().used_: * * * * * * * * * * * * * * * * * * * * Value: %47 = getelementptr %msgpack.StreamingUnpacker, %msgpack.StreamingUnpacker* %46, i32 0, i32 2 * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * * SetArray * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(1784) * * * * * * * * * * * * * DeclarationExp::toElem: ulong restSize = this.buffer_.length - this.used_ + this.offset_; | T=void * * * * * * * * * * * * * * DtoDeclarationExp: restSize * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * * * * * * * * llvm value for decl: %restSize = alloca i64, align 8 * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * AssignExp::toElem: restSize = this.buffer_.length - this.used_ + this.offset_ | (ulong)(ulong = ulong) * * * * * * * * * * * * * * * * * VarExp::toElem: restSize @ ulong * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('restSize' of type 'ulong') * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * AddExp::toElem: this.buffer_.length - this.used_ + this.offset_ @ ulong * * * * * * * * * * * * * * * * * * MinExp::toElem: this.buffer_.length - this.used_ @ ulong * * * * * * * * * * * * * * * * * * * ArrayLengthExp::toElem: this.buffer_.length @ ulong * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: this.buffer_ @ ubyte[] * * * * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ StreamingUnpacker * * * * * * * * * * * * * * * * * * * * * * nested this exp * * * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for this @ msgpack-d/src/msgpack.d(1784) * * * * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.StreamingUnpacker.InternalBuffer!().feed * * * * * * * * * * * * * * * * * * * * * * * Context: %63 = bitcast i8* %62 to %nest.feed.15* * * * * * * * * * * * * * * * * * * * * * * * of type: %nest.feed.15 = type { %msgpack.StreamingUnpacker* } * * * * * * * * * * * * * * * * * * * * * * * Variable: this * * * * * * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * * * * * * Function: expandBuffer * * * * * * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * * * * * * Addr: %this15 = getelementptr %nest.feed.15, %nest.feed.15* %63, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * * * * * of type: %msgpack.StreamingUnpacker** * * * * * * * * * * * * * * * * * * * * * * * Was byref, now: %64 = load %msgpack.StreamingUnpacker*, %msgpack.StreamingUnpacker** %this15, align 8 * * * * * * * * * * * * * * * * * * * * * * * of type: %msgpack.StreamingUnpacker* * * * * * * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.InternalBuffer!().buffer_: * * * * * * * * * * * * * * * * * * * * * * Value: %65 = getelementptr %msgpack.StreamingUnpacker, %msgpack.StreamingUnpacker* %64, i32 0, i32 1 * * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: this.used_ @ ulong * * * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ StreamingUnpacker * * * * * * * * * * * * * * * * * * * * * nested this exp * * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for this @ msgpack-d/src/msgpack.d(1784) * * * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.StreamingUnpacker.InternalBuffer!().feed * * * * * * * * * * * * * * * * * * * * * * Context: %68 = bitcast i8* %67 to %nest.feed.15* * * * * * * * * * * * * * * * * * * * * * * of type: %nest.feed.15 = type { %msgpack.StreamingUnpacker* } * * * * * * * * * * * * * * * * * * * * * * Variable: this * * * * * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * * * * * Function: expandBuffer * * * * * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * * * * * Addr: %this17 = getelementptr %nest.feed.15, %nest.feed.15* %68, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * * * * of type: %msgpack.StreamingUnpacker** * * * * * * * * * * * * * * * * * * * * * * Was byref, now: %69 = load %msgpack.StreamingUnpacker*, %msgpack.StreamingUnpacker** %this17, align 8 * * * * * * * * * * * * * * * * * * * * * * of type: %msgpack.StreamingUnpacker* * * * * * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.InternalBuffer!().used_: * * * * * * * * * * * * * * * * * * * * * Value: %70 = getelementptr %msgpack.StreamingUnpacker, %msgpack.StreamingUnpacker* %69, i32 0, i32 2 * * * * * * * * * * * * * * * * * * DotVarExp::toElem: this.offset_ @ ulong * * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ StreamingUnpacker * * * * * * * * * * * * * * * * * * * * nested this exp * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for this @ msgpack-d/src/msgpack.d(1784) * * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.StreamingUnpacker.InternalBuffer!().feed * * * * * * * * * * * * * * * * * * * * * Context: %74 = bitcast i8* %73 to %nest.feed.15* * * * * * * * * * * * * * * * * * * * * * of type: %nest.feed.15 = type { %msgpack.StreamingUnpacker* } * * * * * * * * * * * * * * * * * * * * * Variable: this * * * * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * * * * Function: expandBuffer * * * * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * * * * Addr: %this18 = getelementptr %nest.feed.15, %nest.feed.15* %74, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * * * of type: %msgpack.StreamingUnpacker** * * * * * * * * * * * * * * * * * * * * * Was byref, now: %75 = load %msgpack.StreamingUnpacker*, %msgpack.StreamingUnpacker** %this18, align 8 * * * * * * * * * * * * * * * * * * * * * of type: %msgpack.StreamingUnpacker* * * * * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.InternalBuffer!().offset_: * * * * * * * * * * * * * * * * * * * * Value: %76 = getelementptr %msgpack.StreamingUnpacker, %msgpack.StreamingUnpacker* %75, i32 0, i32 3 * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * lhs: %restSize = alloca i64, align 8 * * * * * * * * * * * * * * * * * * rhs: %78 = add i64 %72, %77 * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(1785) * * * * * * * * * * * * * DeclarationExp::toElem: ulong newSize = size > restSize ? this.unparsedSize() + size : this.buffer_.length; | T=void * * * * * * * * * * * * * * DtoDeclarationExp: newSize * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * * * * * * * * llvm value for decl: %newSize = alloca i64, align 8 * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * AssignExp::toElem: newSize = size > restSize ? this.unparsedSize() + size : this.buffer_.length | (ulong)(ulong = ulong) * * * * * * * * * * * * * * * * * VarExp::toElem: newSize @ ulong * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('newSize' of type 'ulong') * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * CondExp::toElem: size > restSize ? this.unparsedSize() + size : this.buffer_.length @ ulong * * * * * * * * * * * * * * * * * * CmpExp::toElem: size > restSize @ bool * * * * * * * * * * * * * * * * * * * VarExp::toElem: size @ ulong * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('size' of type 'const(ulong)') * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * type: const(ulong) * * * * * * * * * * * * * * * * * * * VarExp::toElem: restSize @ ulong * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('restSize' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * type 1: %79 = load i64, i64* %size * * * * * * * * * * * * * * * * * * * type 2: %80 = load i64, i64* %restSize * * * * * * * * * * * * * * * * * * AddExp::toElem: this.unparsedSize() + size @ ulong * * * * * * * * * * * * * * * * * * * CallExp::toElem: this.unparsedSize() @ ulong * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: this.unparsedSize @ const nothrow @property @safe ulong() * * * * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ StreamingUnpacker * * * * * * * * * * * * * * * * * * * * * * nested this exp * * * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for this @ msgpack-d/src/msgpack.d(1785) * * * * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.StreamingUnpacker.InternalBuffer!().feed * * * * * * * * * * * * * * * * * * * * * * * Context: %83 = bitcast i8* %82 to %nest.feed.15* * * * * * * * * * * * * * * * * * * * * * * * of type: %nest.feed.15 = type { %msgpack.StreamingUnpacker* } * * * * * * * * * * * * * * * * * * * * * * * Variable: this * * * * * * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * * * * * * Function: expandBuffer * * * * * * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * * * * * * Addr: %this19 = getelementptr %nest.feed.15, %nest.feed.15* %83, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * * * * * of type: %msgpack.StreamingUnpacker** * * * * * * * * * * * * * * * * * * * * * * * Was byref, now: %84 = load %msgpack.StreamingUnpacker*, %msgpack.StreamingUnpacker** %this19, align 8 * * * * * * * * * * * * * * * * * * * * * * * of type: %msgpack.StreamingUnpacker* * * * * * * * * * * * * * * * * * * * * * isMember = this is: StreamingUnpacker * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(const nothrow @property @safe ulong()) * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * * * Final function type: i64 (%msgpack.StreamingUnpacker*) * * * * * * * * * * * * * * * * * * * * * DtoResolveFunction(msgpack.StreamingUnpacker.InternalBuffer!().unparsedSize): msgpack-d/src/msgpack.d(1846) * * * * * * * * * * * * * * * * * * * * * * DtoDeclareFunction(msgpack.StreamingUnpacker.InternalBuffer!().unparsedSize): msgpack-d/src/msgpack.d(1846) * * * * * * * * * * * * * * * * * * * * * * * isMember = this is: StreamingUnpacker * * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(const nothrow @property @safe ulong()) * * * * * * * * * * * * * * * * * * * * * * * func = declare i64 @_D7msgpack17StreamingUnpacker9__mixin1212unparsedSizeMxFNbNdNfZm(%msgpack.StreamingUnpacker*) * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * Building type: const nothrow @property @safe ulong() * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(const nothrow @property @safe ulong()) * * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * * * * Final function type: i64 () * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * * * * * %84 = load %msgpack.StreamingUnpacker*, %msgpack.StreamingUnpacker** %this19, align 8 * * * * * * * * * * * * * * * * * * * * * Function type: const nothrow @property @safe ulong() * * * * * * * * * * * * * * * * * * * VarExp::toElem: size @ ulong * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('size' of type 'const(ulong)') * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * type: const(ulong) * * * * * * * * * * * * * * * * * * ArrayLengthExp::toElem: this.buffer_.length @ ulong * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: this.buffer_ @ ubyte[] * * * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ StreamingUnpacker * * * * * * * * * * * * * * * * * * * * * nested this exp * * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for this @ msgpack-d/src/msgpack.d(1785) * * * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.StreamingUnpacker.InternalBuffer!().feed * * * * * * * * * * * * * * * * * * * * * * Context: %89 = bitcast i8* %88 to %nest.feed.15* * * * * * * * * * * * * * * * * * * * * * * of type: %nest.feed.15 = type { %msgpack.StreamingUnpacker* } * * * * * * * * * * * * * * * * * * * * * * Variable: this * * * * * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * * * * * Function: expandBuffer * * * * * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * * * * * Addr: %this20 = getelementptr %nest.feed.15, %nest.feed.15* %89, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * * * * of type: %msgpack.StreamingUnpacker** * * * * * * * * * * * * * * * * * * * * * * Was byref, now: %90 = load %msgpack.StreamingUnpacker*, %msgpack.StreamingUnpacker** %this20, align 8 * * * * * * * * * * * * * * * * * * * * * * of type: %msgpack.StreamingUnpacker* * * * * * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.InternalBuffer!().buffer_: * * * * * * * * * * * * * * * * * * * * * Value: %91 = getelementptr %msgpack.StreamingUnpacker, %msgpack.StreamingUnpacker* %90, i32 0, i32 1 * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * lhs: %newSize = alloca i64, align 8 * * * * * * * * * * * * * * * * * * rhs: %94 = load i64, i64* %93 * * * * * * * * * * * * IfStatement::toIR(): msgpack-d/src/msgpack.d(1787) * * * * * * * * * * * * * DotVarExp::toElem: this.hasRaw_ @ bool * * * * * * * * * * * * * * ThisExp::toElem: this @ StreamingUnpacker * * * * * * * * * * * * * * * nested this exp * * * * * * * * * * * * * * * DtoNestedVariable for this @ msgpack-d/src/msgpack.d(1787) * * * * * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.StreamingUnpacker.InternalBuffer!().feed * * * * * * * * * * * * * * * * Context: %96 = bitcast i8* %95 to %nest.feed.15* * * * * * * * * * * * * * * * * of type: %nest.feed.15 = type { %msgpack.StreamingUnpacker* } * * * * * * * * * * * * * * * * Variable: this * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * Function: expandBuffer * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * Addr: %this23 = getelementptr %nest.feed.15, %nest.feed.15* %96, i32 0, i32 0 * * * * * * * * * * * * * * * * of type: %msgpack.StreamingUnpacker** * * * * * * * * * * * * * * * * Was byref, now: %97 = load %msgpack.StreamingUnpacker*, %msgpack.StreamingUnpacker** %this23, align 8 * * * * * * * * * * * * * * * * of type: %msgpack.StreamingUnpacker* * * * * * * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.InternalBuffer!().hasRaw_: * * * * * * * * * * * * * * * Value: %98 = getelementptr %msgpack.StreamingUnpacker, %msgpack.StreamingUnpacker* %97, i32 0, i32 5 * * * * * * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(1787) * * * * * * * * * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(1787) * * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(1788) * * * * * * * * * * * * * * * * AssignExp::toElem: this.hasRaw_ = false | (bool)(bool = bool) * * * * * * * * * * * * * * * * * DotVarExp::toElem: this.hasRaw_ @ bool * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ StreamingUnpacker * * * * * * * * * * * * * * * * * * * nested this exp * * * * * * * * * * * * * * * * * * * DtoNestedVariable for this @ msgpack-d/src/msgpack.d(1788) * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.StreamingUnpacker.InternalBuffer!().feed * * * * * * * * * * * * * * * * * * * * Context: %102 = bitcast i8* %101 to %nest.feed.15* * * * * * * * * * * * * * * * * * * * * of type: %nest.feed.15 = type { %msgpack.StreamingUnpacker* } * * * * * * * * * * * * * * * * * * * * Variable: this * * * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * * * Function: expandBuffer * * * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * * * Addr: %this26 = getelementptr %nest.feed.15, %nest.feed.15* %102, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * * of type: %msgpack.StreamingUnpacker** * * * * * * * * * * * * * * * * * * * * Was byref, now: %103 = load %msgpack.StreamingUnpacker*, %msgpack.StreamingUnpacker** %this26, align 8 * * * * * * * * * * * * * * * * * * * * of type: %msgpack.StreamingUnpacker* * * * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.InternalBuffer!().hasRaw_: * * * * * * * * * * * * * * * * * * * Value: %104 = getelementptr %msgpack.StreamingUnpacker, %msgpack.StreamingUnpacker* %103, i32 0, i32 5 * * * * * * * * * * * * * * * * * IntegerExp::toElem: false @ bool * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: false @ bool * * * * * * * * * * * * * * * * * * * value = i1 false * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(1789) * * * * * * * * * * * * * * * * AssignExp::toElem: this.buffer_ = new ubyte[](newSize) | (ubyte[])(ubyte[] = ubyte[]) * * * * * * * * * * * * * * * * * DotVarExp::toElem: this.buffer_ @ ubyte[] * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ StreamingUnpacker * * * * * * * * * * * * * * * * * * * nested this exp * * * * * * * * * * * * * * * * * * * DtoNestedVariable for this @ msgpack-d/src/msgpack.d(1789) * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.StreamingUnpacker.InternalBuffer!().feed * * * * * * * * * * * * * * * * * * * * Context: %106 = bitcast i8* %105 to %nest.feed.15* * * * * * * * * * * * * * * * * * * * * of type: %nest.feed.15 = type { %msgpack.StreamingUnpacker* } * * * * * * * * * * * * * * * * * * * * Variable: this * * * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * * * Function: expandBuffer * * * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * * * Addr: %this27 = getelementptr %nest.feed.15, %nest.feed.15* %106, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * * of type: %msgpack.StreamingUnpacker** * * * * * * * * * * * * * * * * * * * * Was byref, now: %107 = load %msgpack.StreamingUnpacker*, %msgpack.StreamingUnpacker** %this27, align 8 * * * * * * * * * * * * * * * * * * * * of type: %msgpack.StreamingUnpacker* * * * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.InternalBuffer!().buffer_: * * * * * * * * * * * * * * * * * * * Value: %108 = getelementptr %msgpack.StreamingUnpacker, %msgpack.StreamingUnpacker* %107, i32 0, i32 1 * * * * * * * * * * * * * * * * * NewExp::toElem: new ubyte[](newSize) @ ubyte[] * * * * * * * * * * * * * * * * * * new dynamic array: ubyte[] * * * * * * * * * * * * * * * * * * VarExp::toElem: newSize @ ulong * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('newSize' of type 'ulong') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * DtoNewDynArray : ubyte[] * * * * * * * * * * * * * * * * * * * DtoTypeInfoOf(type = 'ubyte[]', base='1') * * * * * * * * * * * * * * * * * * * * Type::getTypeInfo(): ubyte[] * * * * * * * * * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(ubyte[])) * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * * SetArray * * * * * * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(1790) * * * * * * * * * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(1790) * * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(1791) * * * * * * * * * * * * * * * * AssignExp::toElem: this.buffer_.length = newSize | (ulong)(ulong = ulong) * * * * * * * * * * * * * * * * * performing array.length assignment * * * * * * * * * * * * * * * * * DotVarExp::toElem: this.buffer_ @ ubyte[] * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ StreamingUnpacker * * * * * * * * * * * * * * * * * * * nested this exp * * * * * * * * * * * * * * * * * * * DtoNestedVariable for this @ msgpack-d/src/msgpack.d(1791) * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.StreamingUnpacker.InternalBuffer!().feed * * * * * * * * * * * * * * * * * * * * Context: %113 = bitcast i8* %112 to %nest.feed.15* * * * * * * * * * * * * * * * * * * * * of type: %nest.feed.15 = type { %msgpack.StreamingUnpacker* } * * * * * * * * * * * * * * * * * * * * Variable: this * * * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * * * Function: expandBuffer * * * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * * * Addr: %this31 = getelementptr %nest.feed.15, %nest.feed.15* %113, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * * of type: %msgpack.StreamingUnpacker** * * * * * * * * * * * * * * * * * * * * Was byref, now: %114 = load %msgpack.StreamingUnpacker*, %msgpack.StreamingUnpacker** %this31, align 8 * * * * * * * * * * * * * * * * * * * * of type: %msgpack.StreamingUnpacker* * * * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.InternalBuffer!().buffer_: * * * * * * * * * * * * * * * * * * * Value: %115 = getelementptr %msgpack.StreamingUnpacker, %msgpack.StreamingUnpacker* %114, i32 0, i32 1 * * * * * * * * * * * * * * * * * VarExp::toElem: newSize @ ulong * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('newSize' of type 'ulong') * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * DtoResizeDynArray : ubyte[] * * * * * * * * * * * * * * * * * * DtoTypeInfoOf(type = 'ubyte[]', base='1') * * * * * * * * * * * * * * * * * * * Type::getTypeInfo(): ubyte[] * * * * * * * * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(ubyte[])) * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * * SetArray * * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(1794) * * * * * * * * * * * * * * * * DeclarationExp::toElem: ubyte[] area = this.buffer_[0..this.unparsedSize()]; | T=void * * * * * * * * * * * * * * * * * DtoDeclarationExp: area * * * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = ubyte[]) * * * * * * * * * * * * * * * * * * * llvm value for decl: %area = alloca { i64, i8* }, align 8 * * * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * * * AssignExp::toElem: area = this.buffer_[0..this.unparsedSize()] | (ubyte[])(ubyte[] = ubyte[]) * * * * * * * * * * * * * * * * * * * * VarExp::toElem: area @ ubyte[] * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('area' of type 'ubyte[]') * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * SliceExp::toElem: this.buffer_[0..this.unparsedSize()] @ ubyte[] * * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: this.buffer_ @ ubyte[] * * * * * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ StreamingUnpacker * * * * * * * * * * * * * * * * * * * * * * * nested this exp * * * * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for this @ msgpack-d/src/msgpack.d(1794) * * * * * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.StreamingUnpacker.InternalBuffer!().feed * * * * * * * * * * * * * * * * * * * * * * * * Context: %120 = bitcast i8* %119 to %nest.feed.15* * * * * * * * * * * * * * * * * * * * * * * * * of type: %nest.feed.15 = type { %msgpack.StreamingUnpacker* } * * * * * * * * * * * * * * * * * * * * * * * * Variable: this * * * * * * * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * * * * * * * Function: expandBuffer * * * * * * * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * * * * * * * Addr: %this35 = getelementptr %nest.feed.15, %nest.feed.15* %120, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * * * * * * of type: %msgpack.StreamingUnpacker** * * * * * * * * * * * * * * * * * * * * * * * * Was byref, now: %121 = load %msgpack.StreamingUnpacker*, %msgpack.StreamingUnpacker** %this35, align 8 * * * * * * * * * * * * * * * * * * * * * * * * of type: %msgpack.StreamingUnpacker* * * * * * * * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.InternalBuffer!().buffer_: * * * * * * * * * * * * * * * * * * * * * * * Value: %122 = getelementptr %msgpack.StreamingUnpacker, %msgpack.StreamingUnpacker* %121, i32 0, i32 1 * * * * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * * * * * * * * * CallExp::toElem: this.unparsedSize() @ ulong * * * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: this.unparsedSize @ const nothrow @property @safe ulong() * * * * * * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ StreamingUnpacker * * * * * * * * * * * * * * * * * * * * * * * * nested this exp * * * * * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for this @ msgpack-d/src/msgpack.d(1794) * * * * * * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.StreamingUnpacker.InternalBuffer!().feed * * * * * * * * * * * * * * * * * * * * * * * * * Context: %125 = bitcast i8* %124 to %nest.feed.15* * * * * * * * * * * * * * * * * * * * * * * * * * of type: %nest.feed.15 = type { %msgpack.StreamingUnpacker* } * * * * * * * * * * * * * * * * * * * * * * * * * Variable: this * * * * * * * * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * * * * * * * * Function: expandBuffer * * * * * * * * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * * * * * * * * Addr: %this37 = getelementptr %nest.feed.15, %nest.feed.15* %125, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * * * * * * * of type: %msgpack.StreamingUnpacker** * * * * * * * * * * * * * * * * * * * * * * * * * Was byref, now: %126 = load %msgpack.StreamingUnpacker*, %msgpack.StreamingUnpacker** %this37, align 8 * * * * * * * * * * * * * * * * * * * * * * * * * of type: %msgpack.StreamingUnpacker* * * * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * * * * * * * %126 = load %msgpack.StreamingUnpacker*, %msgpack.StreamingUnpacker** %this37, align 8 * * * * * * * * * * * * * * * * * * * * * * * Function type: const nothrow @property @safe ulong() * * * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * * * * * SetArray * * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(1795) * * * * * * * * * * * * * * * * AssignExp::toElem: unparsed = overlap(area, unparsed) ? dup(unparsed) : unparsed | (ubyte[])(ubyte[] = ubyte[]) * * * * * * * * * * * * * * * * * VarExp::toElem: unparsed @ ubyte[] * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('unparsed' of type 'ubyte[]') * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * CondExp::toElem: overlap(area, unparsed) ? dup(unparsed) : unparsed @ ubyte[] * * * * * * * * * * * * * * * * * * CallExp::toElem: overlap(area, unparsed) @ ubyte[] * * * * * * * * * * * * * * * * * * * VarExp::toElem: overlap @ pure nothrow @nogc @trusted inout(ubyte)[](inout(ubyte)[] r1, inout(ubyte)[] r2) * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('overlap' of type 'pure nothrow @nogc @trusted inout(ubyte)[](inout(ubyte)[] r1, inout(ubyte)[] r2)') * * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @trusted inout(ubyte)[](inout(ubyte)[] r1, inout(ubyte)[] r2) * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: area @ ubyte[] * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('area' of type 'ubyte[]') * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: unparsed @ ubyte[] * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('unparsed' of type 'ubyte[]') * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * Casting from 'ubyte[]' to 'bool' * * * * * * * * * * * * * * * * * * * DtoCastArray * * * * * * * * * * * * * * * * * * * * from array or sarray * * * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * CallExp::toElem: dup(unparsed) @ ubyte[] * * * * * * * * * * * * * * * * * * * VarExp::toElem: dup @ pure nothrow @property @safe ubyte[](const(ubyte)[] a) * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('dup' of type 'pure nothrow @property @safe ubyte[](const(ubyte)[] a)') * * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * * Function type: pure nothrow @property @safe ubyte[](const(ubyte)[] a) * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: unparsed @ const(ubyte)[] * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('unparsed' of type 'ubyte[]') * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * VarExp::toElem: unparsed @ ubyte[] * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('unparsed' of type 'ubyte[]') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * * SetArray * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(1798) * * * * * * * * * * * * * AssignExp::toElem: this.buffer_[0..this.unparsedSize()] = unparsed[] | (ubyte[])(ubyte[] = const(ubyte[])) * * * * * * * * * * * * * * performing static array literal assignment * * * * * * * * * * * * * * SliceExp::toElem: this.buffer_[0..this.unparsedSize()] @ ubyte[] * * * * * * * * * * * * * * * DotVarExp::toElem: this.buffer_ @ ubyte[] * * * * * * * * * * * * * * * * ThisExp::toElem: this @ StreamingUnpacker * * * * * * * * * * * * * * * * * nested this exp * * * * * * * * * * * * * * * * * DtoNestedVariable for this @ msgpack-d/src/msgpack.d(1798) * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.StreamingUnpacker.InternalBuffer!().feed * * * * * * * * * * * * * * * * * * Context: %130 = bitcast i8* %129 to %nest.feed.15* * * * * * * * * * * * * * * * * * * of type: %nest.feed.15 = type { %msgpack.StreamingUnpacker* } * * * * * * * * * * * * * * * * * * Variable: this * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * Function: expandBuffer * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * Addr: %this51 = getelementptr %nest.feed.15, %nest.feed.15* %130, i32 0, i32 0 * * * * * * * * * * * * * * * * * * of type: %msgpack.StreamingUnpacker** * * * * * * * * * * * * * * * * * * Was byref, now: %131 = load %msgpack.StreamingUnpacker*, %msgpack.StreamingUnpacker** %this51, align 8 * * * * * * * * * * * * * * * * * * of type: %msgpack.StreamingUnpacker* * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.InternalBuffer!().buffer_: * * * * * * * * * * * * * * * * * Value: %132 = getelementptr %msgpack.StreamingUnpacker, %msgpack.StreamingUnpacker* %131, i32 0, i32 1 * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * * * CallExp::toElem: this.unparsedSize() @ ulong * * * * * * * * * * * * * * * * DotVarExp::toElem: this.unparsedSize @ const nothrow @property @safe ulong() * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ StreamingUnpacker * * * * * * * * * * * * * * * * * * nested this exp * * * * * * * * * * * * * * * * * * DtoNestedVariable for this @ msgpack-d/src/msgpack.d(1798) * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.StreamingUnpacker.InternalBuffer!().feed * * * * * * * * * * * * * * * * * * * Context: %135 = bitcast i8* %134 to %nest.feed.15* * * * * * * * * * * * * * * * * * * * of type: %nest.feed.15 = type { %msgpack.StreamingUnpacker* } * * * * * * * * * * * * * * * * * * * Variable: this * * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * * Function: expandBuffer * * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * * Addr: %this53 = getelementptr %nest.feed.15, %nest.feed.15* %135, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * of type: %msgpack.StreamingUnpacker** * * * * * * * * * * * * * * * * * * * Was byref, now: %136 = load %msgpack.StreamingUnpacker*, %msgpack.StreamingUnpacker** %this53, align 8 * * * * * * * * * * * * * * * * * * * of type: %msgpack.StreamingUnpacker* * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * %136 = load %msgpack.StreamingUnpacker*, %msgpack.StreamingUnpacker** %this53, align 8 * * * * * * * * * * * * * * * * * Function type: const nothrow @property @safe ulong() * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * SliceExp::toElem: unparsed[] @ const(ubyte[]) * * * * * * * * * * * * * * * VarExp::toElem: unparsed @ ubyte[] * * * * * * * * * * * * * * * * DtoSymbolAddress ('unparsed' of type 'ubyte[]') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(1799) * * * * * * * * * * * * * AssignExp::toElem: this.used_ = this.unparsedSize() | (ulong)(ulong = ulong) * * * * * * * * * * * * * * DotVarExp::toElem: this.used_ @ ulong * * * * * * * * * * * * * * * ThisExp::toElem: this @ StreamingUnpacker * * * * * * * * * * * * * * * * nested this exp * * * * * * * * * * * * * * * * DtoNestedVariable for this @ msgpack-d/src/msgpack.d(1799) * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.StreamingUnpacker.InternalBuffer!().feed * * * * * * * * * * * * * * * * * Context: %159 = bitcast i8* %158 to %nest.feed.15* * * * * * * * * * * * * * * * * * of type: %nest.feed.15 = type { %msgpack.StreamingUnpacker* } * * * * * * * * * * * * * * * * * Variable: this * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * Function: expandBuffer * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * Addr: %this61 = getelementptr %nest.feed.15, %nest.feed.15* %159, i32 0, i32 0 * * * * * * * * * * * * * * * * * of type: %msgpack.StreamingUnpacker** * * * * * * * * * * * * * * * * * Was byref, now: %160 = load %msgpack.StreamingUnpacker*, %msgpack.StreamingUnpacker** %this61, align 8 * * * * * * * * * * * * * * * * * of type: %msgpack.StreamingUnpacker* * * * * * * * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.InternalBuffer!().used_: * * * * * * * * * * * * * * * * Value: %161 = getelementptr %msgpack.StreamingUnpacker, %msgpack.StreamingUnpacker* %160, i32 0, i32 2 * * * * * * * * * * * * * * CallExp::toElem: this.unparsedSize() @ ulong * * * * * * * * * * * * * * * DotVarExp::toElem: this.unparsedSize @ const nothrow @property @safe ulong() * * * * * * * * * * * * * * * * ThisExp::toElem: this @ StreamingUnpacker * * * * * * * * * * * * * * * * * nested this exp * * * * * * * * * * * * * * * * * DtoNestedVariable for this @ msgpack-d/src/msgpack.d(1799) * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.StreamingUnpacker.InternalBuffer!().feed * * * * * * * * * * * * * * * * * * Context: %163 = bitcast i8* %162 to %nest.feed.15* * * * * * * * * * * * * * * * * * * of type: %nest.feed.15 = type { %msgpack.StreamingUnpacker* } * * * * * * * * * * * * * * * * * * Variable: this * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * Function: expandBuffer * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * Addr: %this62 = getelementptr %nest.feed.15, %nest.feed.15* %163, i32 0, i32 0 * * * * * * * * * * * * * * * * * * of type: %msgpack.StreamingUnpacker** * * * * * * * * * * * * * * * * * * Was byref, now: %164 = load %msgpack.StreamingUnpacker*, %msgpack.StreamingUnpacker** %this62, align 8 * * * * * * * * * * * * * * * * * * of type: %msgpack.StreamingUnpacker* * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * %164 = load %msgpack.StreamingUnpacker*, %msgpack.StreamingUnpacker** %this62, align 8 * * * * * * * * * * * * * * * * Function type: const nothrow @property @safe ulong() * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * lhs: %161 = getelementptr %msgpack.StreamingUnpacker, %msgpack.StreamingUnpacker* %160, i32 0, i32 2 * * * * * * * * * * * * * * * rhs: %165 = call i64 @_D7msgpack17StreamingUnpacker9__mixin1212unparsedSizeMxFNbNdNfZm(%msgpack.StreamingUnpacker* %164) * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(1800) * * * * * * * * * * * * * AssignExp::toElem: this.offset_ = 0LU | (ulong)(ulong = ulong) * * * * * * * * * * * * * * DotVarExp::toElem: this.offset_ @ ulong * * * * * * * * * * * * * * * ThisExp::toElem: this @ StreamingUnpacker * * * * * * * * * * * * * * * * nested this exp * * * * * * * * * * * * * * * * DtoNestedVariable for this @ msgpack-d/src/msgpack.d(1800) * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.StreamingUnpacker.InternalBuffer!().feed * * * * * * * * * * * * * * * * * Context: %167 = bitcast i8* %166 to %nest.feed.15* * * * * * * * * * * * * * * * * * of type: %nest.feed.15 = type { %msgpack.StreamingUnpacker* } * * * * * * * * * * * * * * * * * Variable: this * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * Function: expandBuffer * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * Addr: %this63 = getelementptr %nest.feed.15, %nest.feed.15* %167, i32 0, i32 0 * * * * * * * * * * * * * * * * * of type: %msgpack.StreamingUnpacker** * * * * * * * * * * * * * * * * * Was byref, now: %168 = load %msgpack.StreamingUnpacker*, %msgpack.StreamingUnpacker** %this63, align 8 * * * * * * * * * * * * * * * * * of type: %msgpack.StreamingUnpacker* * * * * * * * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.InternalBuffer!().offset_: * * * * * * * * * * * * * * * * Value: %169 = getelementptr %msgpack.StreamingUnpacker, %msgpack.StreamingUnpacker* %168, i32 0, i32 3 * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * lhs: %169 = getelementptr %msgpack.StreamingUnpacker, %msgpack.StreamingUnpacker* %168, i32 0, i32 3 * * * * * * * * * * * * * * * rhs: i64 0 * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(1803) * * * * * * * DeclarationExp::toElem: const const(ulong) size = target.length; | T=void * * * * * * * * DtoDeclarationExp: size * * * * * * * * * VarDeclaration * * * * * * * * * DtoVarDeclaration(vdtype = const(ulong)) * * * * * * * * * * llvm value for decl: %size = alloca i64, align 8 * * * * * * * * * * expression initializer * * * * * * * * * * AssignExp::toElem: size = target.length | (const(ulong))(const(ulong) = const(ulong)) * * * * * * * * * * * VarExp::toElem: size @ const(ulong) * * * * * * * * * * * * DtoSymbolAddress ('size' of type 'const(ulong)') * * * * * * * * * * * * * a normal variable * * * * * * * * * * * ArrayLengthExp::toElem: target.length @ const(ulong) * * * * * * * * * * * * VarExp::toElem: target @ const(ubyte[]) * * * * * * * * * * * * * DtoSymbolAddress ('target' of type 'const(ubyte[])') * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * type: const(ubyte[]) * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * lhs: %size = alloca i64, align 8 * * * * * * * * * * * * rhs: %.len = load i64, i64* %1 * * * * * * IfStatement::toIR(): msgpack-d/src/msgpack.d(1806) * * * * * * * CmpExp::toElem: this.buffer_.length - this.used_ < size @ bool * * * * * * * * MinExp::toElem: this.buffer_.length - this.used_ @ ulong * * * * * * * * * ArrayLengthExp::toElem: this.buffer_.length @ ulong * * * * * * * * * * DotVarExp::toElem: this.buffer_ @ ubyte[] * * * * * * * * * * * ThisExp::toElem: this @ StreamingUnpacker * * * * * * * * * * * * normal this exp * * * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.InternalBuffer!().buffer_: * * * * * * * * * * * * Value: %2 = getelementptr %msgpack.StreamingUnpacker, %msgpack.StreamingUnpacker* %.this_arg, i32 0, i32 1 * * * * * * * * * * DtoArrayLen * * * * * * * * * DotVarExp::toElem: this.used_ @ ulong * * * * * * * * * * ThisExp::toElem: this @ StreamingUnpacker * * * * * * * * * * * normal this exp * * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.InternalBuffer!().used_: * * * * * * * * * * * Value: %4 = getelementptr %msgpack.StreamingUnpacker, %msgpack.StreamingUnpacker* %.this_arg, i32 0, i32 2 * * * * * * * * VarExp::toElem: size @ ulong * * * * * * * * * DtoSymbolAddress ('size' of type 'const(ulong)') * * * * * * * * * * a normal variable * * * * * * * * type 1: %6 = sub i64 %.len1, %5 * * * * * * * * type 2: %7 = load i64, i64* %size * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(1807) * * * * * * * * CallExp::toElem: expandBuffer(size) @ void * * * * * * * * * VarExp::toElem: expandBuffer @ @safe void(const(ulong) size) * * * * * * * * * * DtoSymbolAddress ('expandBuffer' of type '@safe void(const(ulong) size)') * * * * * * * * * * * FuncDeclaration * * * * * * * * * DtoCallFunction() * * * * * * * * * * Building type: @safe void(const(ulong) size) * * * * * * * * * * * DtoFunctionType(@safe void(const(ulong) size)) * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * Final function type: void (i64) * * * * * * * * * * DtoNestedContext for msgpack.StreamingUnpacker.InternalBuffer!().feed.expandBuffer * * * * * * * * * * * DtoCreateNestedContextType for msgpack.StreamingUnpacker.InternalBuffer!().feed.expandBuffer * * * * * * * * * * * Parent frame is from feed * * * * * * * * * * * Current function is feed * * * * * * * * * * * Context is from feed * * * * * * * * * * * Needed depth: 0 * * * * * * * * * * * Context depth: 0 * * * * * * * * * * * Calling sibling function or directly nested function * * * * * * * * * * * result = %.frame = alloca %nest.feed.15, align 8 * * * * * * * * * * * of type %nest.feed.15* * * * * * * * * * * doing normal arguments * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * %9 = bitcast %nest.feed.15* %.frame to i8* * * * * * * * * * * Function type: @safe void(const(ulong) size) * * * * * * * * * * DtoArgument * * * * * * * * * * * VarExp::toElem: size @ const(ulong) * * * * * * * * * * * * DtoSymbolAddress ('size' of type 'const(ulong)') * * * * * * * * * * * * * a normal variable * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(1809) * * * * * * * AssignExp::toElem: this.buffer_[this.used_..this.used_ + size] = target[] | (ubyte[])(ubyte[] = const(ubyte[])) * * * * * * * * performing static array literal assignment * * * * * * * * SliceExp::toElem: this.buffer_[this.used_..this.used_ + size] @ ubyte[] * * * * * * * * * DotVarExp::toElem: this.buffer_ @ ubyte[] * * * * * * * * * * ThisExp::toElem: this @ StreamingUnpacker * * * * * * * * * * * normal this exp * * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.InternalBuffer!().buffer_: * * * * * * * * * * * Value: %11 = getelementptr %msgpack.StreamingUnpacker, %msgpack.StreamingUnpacker* %.this_arg, i32 0, i32 1 * * * * * * * * * DtoArrayPtr * * * * * * * * * DotVarExp::toElem: this.used_ @ ulong * * * * * * * * * * ThisExp::toElem: this @ StreamingUnpacker * * * * * * * * * * * normal this exp * * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.InternalBuffer!().used_: * * * * * * * * * * * Value: %13 = getelementptr %msgpack.StreamingUnpacker, %msgpack.StreamingUnpacker* %.this_arg, i32 0, i32 2 * * * * * * * * * AddExp::toElem: this.used_ + size @ ulong * * * * * * * * * * DotVarExp::toElem: this.used_ @ ulong * * * * * * * * * * * ThisExp::toElem: this @ StreamingUnpacker * * * * * * * * * * * * normal this exp * * * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.InternalBuffer!().used_: * * * * * * * * * * * * Value: %14 = getelementptr %msgpack.StreamingUnpacker, %msgpack.StreamingUnpacker* %.this_arg, i32 0, i32 2 * * * * * * * * * * VarExp::toElem: size @ ulong * * * * * * * * * * * DtoSymbolAddress ('size' of type 'const(ulong)') * * * * * * * * * * * * a normal variable * * * * * * * * * DtoArrayLen * * * * * * * * SliceExp::toElem: target[] @ const(ubyte[]) * * * * * * * * * VarExp::toElem: target @ const(ubyte[]) * * * * * * * * * * DtoSymbolAddress ('target' of type 'const(ubyte[])') * * * * * * * * * * * function param * * * * * * * * * * * type: const(ubyte[]) * * * * * * * * * DtoArrayPtr * * * * * * * * * DtoArrayLen * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * DtoAssign() * * * * * * * * * DtoArrayAssign * * * * * * * * * * DtoArrayPtr * * * * * * * * * * DtoArrayLen * * * * * * * * * * DtoArrayPtr * * * * * * * * * * DtoArrayLen * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(1810) * * * * * * * AddAssignExp::toElem: this.used_ += size @ ulong * * * * * * * * Caching l-value of this.used_ += size => this.used_ * * * * * * * * * DotVarExp::toElem: this.used_ @ ulong * * * * * * * * * * ThisExp::toElem: this @ StreamingUnpacker * * * * * * * * * * * normal this exp * * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.InternalBuffer!().used_: * * * * * * * * * * * Value: %26 = getelementptr %msgpack.StreamingUnpacker, %msgpack.StreamingUnpacker* %.this_arg, i32 0, i32 2 * * * * * * * * AddExp::toElem: this.used_ + size @ ulong * * * * * * * * * DotVarExp::toElem: this.used_ @ ulong * * * * * * * * * * using cached lvalue * * * * * * * * * VarExp::toElem: size @ ulong * * * * * * * * * * DtoSymbolAddress ('size' of type 'const(ulong)') * * * * * * * * * * * a normal variable * * * * * * * * DtoAssign() * * * * * * * * * lhs: %26 = getelementptr %msgpack.StreamingUnpacker, %msgpack.StreamingUnpacker* %.this_arg, i32 0, i32 2 * * * * * * * * * rhs: %29 = add i64 %27, %28 * * * DtoDefineFunction(msgpack.StreamingUnpacker.InternalBuffer!().bufferConsumed): msgpack-d/src/msgpack.d(1815) * * * * isMember = this is: StreamingUnpacker * * * * DtoFunctionType(nothrow @safe void(const(ulong) size)) * * * * * x86-64 ABI: Transforming argument types * * * * * Final function type: void (%msgpack.StreamingUnpacker*, i64) * * * * DtoResolveFunction(msgpack.StreamingUnpacker.InternalBuffer!().bufferConsumed): msgpack-d/src/msgpack.d(1815) * * * * * DtoDeclareFunction(msgpack.StreamingUnpacker.InternalBuffer!().bufferConsumed): msgpack-d/src/msgpack.d(1815) * * * * * * isMember = this is: StreamingUnpacker * * * * * * DtoFunctionType(nothrow @safe void(const(ulong) size)) * * * * * * func = declare void @_D7msgpack17StreamingUnpacker9__mixin1214bufferConsumedMFNbNfxmZv(%msgpack.StreamingUnpacker*, i64) * * * * Doing function body for: bufferConsumed * * * * DtoCreateNestedContext for bufferConsumed * * * * * DtoCreateNestedContextType for msgpack.StreamingUnpacker.InternalBuffer!().bufferConsumed * * * * CompoundStatement::toIR(): * * * * * IfStatement::toIR(): msgpack-d/src/msgpack.d(1817) * * * * * * CmpExp::toElem: this.used_ + size > this.buffer_.length @ bool * * * * * * * AddExp::toElem: this.used_ + size @ ulong * * * * * * * * DotVarExp::toElem: this.used_ @ ulong * * * * * * * * * ThisExp::toElem: this @ StreamingUnpacker * * * * * * * * * * normal this exp * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.InternalBuffer!().used_: * * * * * * * * * * Value: %1 = getelementptr %msgpack.StreamingUnpacker, %msgpack.StreamingUnpacker* %.this_arg, i32 0, i32 2 * * * * * * * * VarExp::toElem: size @ ulong * * * * * * * * * DtoSymbolAddress ('size' of type 'const(ulong)') * * * * * * * * * * function param * * * * * * * * * * type: const(ulong) * * * * * * * ArrayLengthExp::toElem: this.buffer_.length @ ulong * * * * * * * * DotVarExp::toElem: this.buffer_ @ ubyte[] * * * * * * * * * ThisExp::toElem: this @ StreamingUnpacker * * * * * * * * * * normal this exp * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.InternalBuffer!().buffer_: * * * * * * * * * * Value: %5 = getelementptr %msgpack.StreamingUnpacker, %msgpack.StreamingUnpacker* %.this_arg, i32 0, i32 1 * * * * * * * * DtoArrayLen * * * * * * * type 1: %4 = add i64 %2, %3 * * * * * * * type 2: %.len = load i64, i64* %6 * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(1818) * * * * * * * AssignExp::toElem: this.used_ = this.buffer_.length | (ulong)(ulong = ulong) * * * * * * * * DotVarExp::toElem: this.used_ @ ulong * * * * * * * * * ThisExp::toElem: this @ StreamingUnpacker * * * * * * * * * * normal this exp * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.InternalBuffer!().used_: * * * * * * * * * * Value: %8 = getelementptr %msgpack.StreamingUnpacker, %msgpack.StreamingUnpacker* %.this_arg, i32 0, i32 2 * * * * * * * * ArrayLengthExp::toElem: this.buffer_.length @ ulong * * * * * * * * * DotVarExp::toElem: this.buffer_ @ ubyte[] * * * * * * * * * * ThisExp::toElem: this @ StreamingUnpacker * * * * * * * * * * * normal this exp * * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.InternalBuffer!().buffer_: * * * * * * * * * * * Value: %9 = getelementptr %msgpack.StreamingUnpacker, %msgpack.StreamingUnpacker* %.this_arg, i32 0, i32 1 * * * * * * * * * DtoArrayLen * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * DtoAssign() * * * * * * * * * lhs: %8 = getelementptr %msgpack.StreamingUnpacker, %msgpack.StreamingUnpacker* %.this_arg, i32 0, i32 2 * * * * * * * * * rhs: %.len1 = load i64, i64* %10 * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(1820) * * * * * * * AddAssignExp::toElem: this.used_ += size @ ulong * * * * * * * * Caching l-value of this.used_ += size => this.used_ * * * * * * * * * DotVarExp::toElem: this.used_ @ ulong * * * * * * * * * * ThisExp::toElem: this @ StreamingUnpacker * * * * * * * * * * * normal this exp * * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.InternalBuffer!().used_: * * * * * * * * * * * Value: %11 = getelementptr %msgpack.StreamingUnpacker, %msgpack.StreamingUnpacker* %.this_arg, i32 0, i32 2 * * * * * * * * AddExp::toElem: this.used_ + size @ ulong * * * * * * * * * DotVarExp::toElem: this.used_ @ ulong * * * * * * * * * * using cached lvalue * * * * * * * * * VarExp::toElem: size @ ulong * * * * * * * * * * DtoSymbolAddress ('size' of type 'const(ulong)') * * * * * * * * * * * function param * * * * * * * * * * * type: const(ulong) * * * * * * * * DtoAssign() * * * * * * * * * lhs: %11 = getelementptr %msgpack.StreamingUnpacker, %msgpack.StreamingUnpacker* %.this_arg, i32 0, i32 2 * * * * * * * * * rhs: %14 = add i64 %12, %13 * * * DtoDefineFunction(msgpack.StreamingUnpacker.InternalBuffer!().removeUnparsed): msgpack-d/src/msgpack.d(1825) * * * * isMember = this is: StreamingUnpacker * * * * DtoFunctionType(nothrow @safe void()) * * * * * x86-64 ABI: Transforming argument types * * * * * Final function type: void (%msgpack.StreamingUnpacker*) * * * * DtoResolveFunction(msgpack.StreamingUnpacker.InternalBuffer!().removeUnparsed): msgpack-d/src/msgpack.d(1825) * * * * * DtoDeclareFunction(msgpack.StreamingUnpacker.InternalBuffer!().removeUnparsed): msgpack-d/src/msgpack.d(1825) * * * * * * isMember = this is: StreamingUnpacker * * * * * * DtoFunctionType(nothrow @safe void()) * * * * * * func = declare void @_D7msgpack17StreamingUnpacker9__mixin1214removeUnparsedMFNbNfZv(%msgpack.StreamingUnpacker*) * * * * Doing function body for: removeUnparsed * * * * DtoCreateNestedContext for removeUnparsed * * * * * DtoCreateNestedContextType for msgpack.StreamingUnpacker.InternalBuffer!().removeUnparsed * * * * CompoundStatement::toIR(): * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(1827) * * * * * * AssignExp::toElem: this.used_ = this.offset_ | (ulong)(ulong = ulong) * * * * * * * DotVarExp::toElem: this.used_ @ ulong * * * * * * * * ThisExp::toElem: this @ StreamingUnpacker * * * * * * * * * normal this exp * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.InternalBuffer!().used_: * * * * * * * * * Value: %1 = getelementptr %msgpack.StreamingUnpacker, %msgpack.StreamingUnpacker* %.this_arg, i32 0, i32 2 * * * * * * * DotVarExp::toElem: this.offset_ @ ulong * * * * * * * * ThisExp::toElem: this @ StreamingUnpacker * * * * * * * * * normal this exp * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.InternalBuffer!().offset_: * * * * * * * * * Value: %2 = getelementptr %msgpack.StreamingUnpacker, %msgpack.StreamingUnpacker* %.this_arg, i32 0, i32 3 * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * DtoAssign() * * * * * * * * lhs: %1 = getelementptr %msgpack.StreamingUnpacker, %msgpack.StreamingUnpacker* %.this_arg, i32 0, i32 2 * * * * * * * * rhs: %3 = load i64, i64* %2 * * * DtoDefineFunction(msgpack.StreamingUnpacker.InternalBuffer!().size): msgpack-d/src/msgpack.d(1832) * * * * isMember = this is: StreamingUnpacker * * * * DtoFunctionType(const nothrow @property @safe ulong()) * * * * * x86-64 ABI: Transforming return type * * * * * x86-64 ABI: Transforming argument types * * * * * Final function type: i64 (%msgpack.StreamingUnpacker*) * * * * DtoResolveFunction(msgpack.StreamingUnpacker.InternalBuffer!().size): msgpack-d/src/msgpack.d(1832) * * * * * DtoDeclareFunction(msgpack.StreamingUnpacker.InternalBuffer!().size): msgpack-d/src/msgpack.d(1832) * * * * * * isMember = this is: StreamingUnpacker * * * * * * DtoFunctionType(const nothrow @property @safe ulong()) * * * * * * func = declare i64 @_D7msgpack17StreamingUnpacker9__mixin124sizeMxFNbNdNfZm(%msgpack.StreamingUnpacker*) * * * * Doing function body for: size * * * * DtoCreateNestedContext for size * * * * * DtoCreateNestedContextType for msgpack.StreamingUnpacker.InternalBuffer!().size * * * * CompoundStatement::toIR(): * * * * * ReturnStatement::toIR(): msgpack-d/src/msgpack.d(1834) * * * * * * AddExp::toElem: this.parsed_ - this.offset_ + this.used_ @ ulong * * * * * * * MinExp::toElem: this.parsed_ - this.offset_ @ const(ulong) * * * * * * * * DotVarExp::toElem: this.parsed_ @ const(ulong) * * * * * * * * * ThisExp::toElem: this @ const(StreamingUnpacker) * * * * * * * * * * normal this exp * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.InternalBuffer!().parsed_: * * * * * * * * * * Value: %1 = getelementptr %msgpack.StreamingUnpacker, %msgpack.StreamingUnpacker* %.this_arg, i32 0, i32 4 * * * * * * * * DotVarExp::toElem: this.offset_ @ const(ulong) * * * * * * * * * ThisExp::toElem: this @ const(StreamingUnpacker) * * * * * * * * * * normal this exp * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.InternalBuffer!().offset_: * * * * * * * * * * Value: %2 = getelementptr %msgpack.StreamingUnpacker, %msgpack.StreamingUnpacker* %.this_arg, i32 0, i32 3 * * * * * * * DotVarExp::toElem: this.used_ @ const(ulong) * * * * * * * * ThisExp::toElem: this @ const(StreamingUnpacker) * * * * * * * * * normal this exp * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.InternalBuffer!().used_: * * * * * * * * * Value: %6 = getelementptr %msgpack.StreamingUnpacker, %msgpack.StreamingUnpacker* %.this_arg, i32 0, i32 2 * * * * * * return value is '0x132a36b0' * * * DtoDefineFunction(msgpack.StreamingUnpacker.InternalBuffer!().parsedSize): msgpack-d/src/msgpack.d(1839) * * * * isMember = this is: StreamingUnpacker * * * * DtoFunctionType(const nothrow @property @safe ulong()) * * * * * x86-64 ABI: Transforming return type * * * * * x86-64 ABI: Transforming argument types * * * * * Final function type: i64 (%msgpack.StreamingUnpacker*) * * * * DtoResolveFunction(msgpack.StreamingUnpacker.InternalBuffer!().parsedSize): msgpack-d/src/msgpack.d(1839) * * * * * DtoDeclareFunction(msgpack.StreamingUnpacker.InternalBuffer!().parsedSize): msgpack-d/src/msgpack.d(1839) * * * * * * isMember = this is: StreamingUnpacker * * * * * * DtoFunctionType(const nothrow @property @safe ulong()) * * * * * * func = declare i64 @_D7msgpack17StreamingUnpacker9__mixin1210parsedSizeMxFNbNdNfZm(%msgpack.StreamingUnpacker*) * * * * Doing function body for: parsedSize * * * * DtoCreateNestedContext for parsedSize * * * * * DtoCreateNestedContextType for msgpack.StreamingUnpacker.InternalBuffer!().parsedSize * * * * CompoundStatement::toIR(): * * * * * ReturnStatement::toIR(): msgpack-d/src/msgpack.d(1841) * * * * * * DotVarExp::toElem: this.parsed_ @ ulong * * * * * * * ThisExp::toElem: this @ const(StreamingUnpacker) * * * * * * * * normal this exp * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.InternalBuffer!().parsed_: * * * * * * * * Value: %1 = getelementptr %msgpack.StreamingUnpacker, %msgpack.StreamingUnpacker* %.this_arg, i32 0, i32 4 * * * * * * return value is '0x132a4c78' * * * DtoDefineFunction(msgpack.StreamingUnpacker.InternalBuffer!().unparsedSize): msgpack-d/src/msgpack.d(1846) * * * * Doing function body for: unparsedSize * * * * DtoCreateNestedContext for unparsedSize * * * * * DtoCreateNestedContextType for msgpack.StreamingUnpacker.InternalBuffer!().unparsedSize * * * * CompoundStatement::toIR(): * * * * * ReturnStatement::toIR(): msgpack-d/src/msgpack.d(1848) * * * * * * MinExp::toElem: this.used_ - this.offset_ @ ulong * * * * * * * DotVarExp::toElem: this.used_ @ const(ulong) * * * * * * * * ThisExp::toElem: this @ const(StreamingUnpacker) * * * * * * * * * normal this exp * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.InternalBuffer!().used_: * * * * * * * * * Value: %1 = getelementptr %msgpack.StreamingUnpacker, %msgpack.StreamingUnpacker* %.this_arg, i32 0, i32 2 * * * * * * * DotVarExp::toElem: this.offset_ @ const(ulong) * * * * * * * * ThisExp::toElem: this @ const(StreamingUnpacker) * * * * * * * * * normal this exp * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.InternalBuffer!().offset_: * * * * * * * * * Value: %2 = getelementptr %msgpack.StreamingUnpacker, %msgpack.StreamingUnpacker* %.this_arg, i32 0, i32 3 * * * * * * return value is '0x132a56f0' * * * DtoDefineFunction(msgpack.StreamingUnpacker.InternalBuffer!().initializeBuffer): msgpack-d/src/msgpack.d(1854) * * * * isMember = this is: StreamingUnpacker * * * * DtoFunctionType(nothrow @safe void(const(ubyte[]) target, const(ulong) bufferSize = 8192LU)) * * * * * x86-64 ABI: Transforming argument types * * * * * Final function type: void (%msgpack.StreamingUnpacker*, i64, { i64, i8* }) * * * * DtoResolveFunction(msgpack.StreamingUnpacker.InternalBuffer!().initializeBuffer): msgpack-d/src/msgpack.d(1854) * * * * * DtoDeclareFunction(msgpack.StreamingUnpacker.InternalBuffer!().initializeBuffer): msgpack-d/src/msgpack.d(1854) * * * * * * isMember = this is: StreamingUnpacker * * * * * * DtoFunctionType(nothrow @safe void(const(ubyte[]) target, const(ulong) bufferSize = 8192LU)) * * * * * * func = declare void @_D7msgpack17StreamingUnpacker9__mixin1216initializeBufferMFNbNfxAhxmZv(%msgpack.StreamingUnpacker*, i64, { i64, i8* }) * * * * Doing function body for: initializeBuffer * * * * DtoCreateNestedContext for initializeBuffer * * * * * DtoCreateNestedContextType for msgpack.StreamingUnpacker.InternalBuffer!().initializeBuffer * * * * CompoundStatement::toIR(): * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(1855) * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(1856) * * * * * * * DeclarationExp::toElem: const const(ulong) size = target.length; | T=void * * * * * * * * DtoDeclarationExp: size * * * * * * * * * VarDeclaration * * * * * * * * * DtoVarDeclaration(vdtype = const(ulong)) * * * * * * * * * * llvm value for decl: %size = alloca i64, align 8 * * * * * * * * * * expression initializer * * * * * * * * * * AssignExp::toElem: size = target.length | (const(ulong))(const(ulong) = const(ulong)) * * * * * * * * * * * VarExp::toElem: size @ const(ulong) * * * * * * * * * * * * DtoSymbolAddress ('size' of type 'const(ulong)') * * * * * * * * * * * * * a normal variable * * * * * * * * * * * ArrayLengthExp::toElem: target.length @ const(ulong) * * * * * * * * * * * * VarExp::toElem: target @ const(ubyte[]) * * * * * * * * * * * * * DtoSymbolAddress ('target' of type 'const(ubyte[])') * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * type: const(ubyte[]) * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * lhs: %size = alloca i64, align 8 * * * * * * * * * * * * rhs: %.len = load i64, i64* %1 * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(1858) * * * * * * * AssignExp::toElem: this.buffer_ = new ubyte[](size > bufferSize ? size : bufferSize) | (ubyte[])(ubyte[] = ubyte[]) * * * * * * * * DotVarExp::toElem: this.buffer_ @ ubyte[] * * * * * * * * * ThisExp::toElem: this @ StreamingUnpacker * * * * * * * * * * normal this exp * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.InternalBuffer!().buffer_: * * * * * * * * * * Value: %2 = getelementptr %msgpack.StreamingUnpacker, %msgpack.StreamingUnpacker* %.this_arg, i32 0, i32 1 * * * * * * * * NewExp::toElem: new ubyte[](size > bufferSize ? size : bufferSize) @ ubyte[] * * * * * * * * * new dynamic array: ubyte[] * * * * * * * * * CondExp::toElem: size > bufferSize ? size : bufferSize @ ulong * * * * * * * * * * CmpExp::toElem: size > bufferSize @ bool * * * * * * * * * * * VarExp::toElem: size @ const(ulong) * * * * * * * * * * * * DtoSymbolAddress ('size' of type 'const(ulong)') * * * * * * * * * * * * * a normal variable * * * * * * * * * * * VarExp::toElem: bufferSize @ const(ulong) * * * * * * * * * * * * DtoSymbolAddress ('bufferSize' of type 'const(ulong)') * * * * * * * * * * * * * function param * * * * * * * * * * * * * type: const(ulong) * * * * * * * * * * * type 1: %3 = load i64, i64* %size * * * * * * * * * * * type 2: %4 = load i64, i64* %bufferSize * * * * * * * * * * VarExp::toElem: size @ ulong * * * * * * * * * * * DtoSymbolAddress ('size' of type 'const(ulong)') * * * * * * * * * * * * a normal variable * * * * * * * * * * VarExp::toElem: bufferSize @ ulong * * * * * * * * * * * DtoSymbolAddress ('bufferSize' of type 'const(ulong)') * * * * * * * * * * * * function param * * * * * * * * * * * * type: const(ulong) * * * * * * * * * DtoNewDynArray : ubyte[] * * * * * * * * * * DtoTypeInfoOf(type = 'ubyte[]', base='1') * * * * * * * * * * * Type::getTypeInfo(): ubyte[] * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(ubyte[])) * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * DtoAssign() * * * * * * * * * DtoArrayAssign * * * * * * * * * * DtoArrayPtr * * * * * * * * * * DtoArrayLen * * * * * * * * * * SetArray * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(1859) * * * * * * * AssignExp::toElem: this.used_ = size | (ulong)(ulong = ulong) * * * * * * * * DotVarExp::toElem: this.used_ @ ulong * * * * * * * * * ThisExp::toElem: this @ StreamingUnpacker * * * * * * * * * * normal this exp * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.InternalBuffer!().used_: * * * * * * * * * * Value: %10 = getelementptr %msgpack.StreamingUnpacker, %msgpack.StreamingUnpacker* %.this_arg, i32 0, i32 2 * * * * * * * * VarExp::toElem: size @ ulong * * * * * * * * * DtoSymbolAddress ('size' of type 'const(ulong)') * * * * * * * * * * a normal variable * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * DtoAssign() * * * * * * * * * lhs: %10 = getelementptr %msgpack.StreamingUnpacker, %msgpack.StreamingUnpacker* %.this_arg, i32 0, i32 2 * * * * * * * * * rhs: %11 = load i64, i64* %size * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(1860) * * * * * * * AssignExp::toElem: this.buffer_[0..size] = target[] | (ubyte[])(ubyte[] = const(ubyte[])) * * * * * * * * performing static array literal assignment * * * * * * * * SliceExp::toElem: this.buffer_[0..size] @ ubyte[] * * * * * * * * * DotVarExp::toElem: this.buffer_ @ ubyte[] * * * * * * * * * * ThisExp::toElem: this @ StreamingUnpacker * * * * * * * * * * * normal this exp * * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.InternalBuffer!().buffer_: * * * * * * * * * * * Value: %12 = getelementptr %msgpack.StreamingUnpacker, %msgpack.StreamingUnpacker* %.this_arg, i32 0, i32 1 * * * * * * * * * DtoArrayPtr * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * value = i64 0 * * * * * * * * * VarExp::toElem: size @ ulong * * * * * * * * * * DtoSymbolAddress ('size' of type 'const(ulong)') * * * * * * * * * * * a normal variable * * * * * * * * * DtoArrayLen * * * * * * * * SliceExp::toElem: target[] @ const(ubyte[]) * * * * * * * * * VarExp::toElem: target @ const(ubyte[]) * * * * * * * * * * DtoSymbolAddress ('target' of type 'const(ubyte[])') * * * * * * * * * * * function param * * * * * * * * * * * type: const(ubyte[]) * * * * * * * * * DtoArrayPtr * * * * * * * * * DtoArrayLen * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * DtoAssign() * * * * * * * * * DtoArrayAssign * * * * * * * * * * DtoArrayPtr * * * * * * * * * * DtoArrayLen * * * * * * * * * * DtoArrayPtr * * * * * * * * * * DtoArrayLen * * DtoDefineFunction(msgpack.StreamingUnpacker.this): msgpack-d/src/msgpack.d(4034) * * * Doing function body for: this * * * DtoCreateNestedContext for this * * * * DtoCreateNestedContextType for msgpack.StreamingUnpacker.this * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(4034) * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(4035) * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(4036) * * * * * * * CallExp::toElem: this.initializeBuffer(target, bufferSize) @ void * * * * * * * * DotVarExp::toElem: this.initializeBuffer @ nothrow @safe void(const(ubyte[]) target, const(ulong) bufferSize = 8192LU) * * * * * * * * * ThisExp::toElem: this @ StreamingUnpacker * * * * * * * * * * normal this exp * * * * * * * * DtoCallFunction() * * * * * * * * * Building type: nothrow @safe void(const(ubyte[]) target, const(ulong) bufferSize = 8192LU) * * * * * * * * * * DtoFunctionType(nothrow @safe void(const(ubyte[]) target, const(ulong) bufferSize = 8192LU)) * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * Final function type: void (i64, { i64, i8* }) * * * * * * * * * doing normal arguments * * * * * * * * * Arguments so far: (1) * * * * * * * * * * %msgpack.StreamingUnpacker* %.this_arg * * * * * * * * * Function type: nothrow @safe void(const(ubyte[]) target, const(ulong) bufferSize = 8192LU) * * * * * * * * * DtoArgument * * * * * * * * * * VarExp::toElem: target @ const(ubyte[]) * * * * * * * * * * * DtoSymbolAddress ('target' of type 'const(ubyte[])') * * * * * * * * * * * * function param * * * * * * * * * * * * type: const(ubyte[]) * * * * * * * * * DtoArgument * * * * * * * * * * VarExp::toElem: bufferSize @ const(ulong) * * * * * * * * * * * DtoSymbolAddress ('bufferSize' of type 'const(ulong)') * * * * * * * * * * * * function param * * * * * * * * * * * * type: const(ulong) * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(4037) * * * * * * * CallExp::toElem: this.initializeContext() @ void * * * * * * * * DotVarExp::toElem: this.initializeContext @ nothrow @safe void() * * * * * * * * * ThisExp::toElem: this @ StreamingUnpacker * * * * * * * * * * normal this exp * * * * * * * * * isMember = this is: StreamingUnpacker * * * * * * * * * DtoFunctionType(nothrow @safe void()) * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: void (%msgpack.StreamingUnpacker*) * * * * * * * * * DtoResolveFunction(msgpack.StreamingUnpacker.initializeContext): msgpack-d/src/msgpack.d(4446) * * * * * * * * * * DtoDeclareFunction(msgpack.StreamingUnpacker.initializeContext): msgpack-d/src/msgpack.d(4446) * * * * * * * * * * * isMember = this is: StreamingUnpacker * * * * * * * * * * * DtoFunctionType(nothrow @safe void()) * * * * * * * * * * * func = declare void @_D7msgpack17StreamingUnpacker17initializeContextMFNbNfZv(%msgpack.StreamingUnpacker*) * * * * * * * * DtoCallFunction() * * * * * * * * * Building type: nothrow @safe void() * * * * * * * * * * DtoFunctionType(nothrow @safe void()) * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * Final function type: void () * * * * * * * * * doing normal arguments * * * * * * * * * Arguments so far: (1) * * * * * * * * * * %msgpack.StreamingUnpacker* %.this_arg * * * * * * * * * Function type: nothrow @safe void() * * * * * ReturnStatement::toIR(): msgpack-d/src/msgpack.d(4034) * * * * * * AddrExp::toElem: &this @ StreamingUnpacker* * * * * * * * ThisExp::toElem: this @ StreamingUnpacker * * * * * * * * this exp without var declaration * * * * * * * is nothing special * * * * * * * lval: %msgpack.StreamingUnpacker* %.this_arg * * * * * * return value is '0x131249a0' * * DtoDefineFunction(msgpack.StreamingUnpacker.unpacked): msgpack-d/src/msgpack.d(4048) * * * Doing function body for: unpacked * * * DtoCreateNestedContext for unpacked * * * * DtoCreateNestedContextType for msgpack.StreamingUnpacker.unpacked * * * CompoundStatement::toIR(): * * * * ReturnStatement::toIR(): msgpack-d/src/msgpack.d(4050) * * * * * CallExp::toElem: Unpacked(Value(cast(Type)0, Via(false, , , , , , ))).this(this.context_.stack[0].value) @ Unpacked * * * * * * DotVarExp::toElem: Unpacked(Value(cast(Type)0, Via(false, , , , , , ))).this @ ref @safe Unpacked(ref Value value) * * * * * * * StructLiteralExp::toElem: Unpacked(Value(cast(Type)0, Via(false, , , , , , ))) @ Unpacked * * * * * * * * initializing field: Value value (+0) * * * * * * * * * expr 0 = Value(cast(Type)0, Via(false, , , , , , )) * * * * * * * * * StructLiteralExp::toElem: Value(cast(Type)0, Via(false, , , , , , )) @ Value * * * * * * * * * * initializing field: Type type (+0) * * * * * * * * * * * expr 0 = cast(Type)0 * * * * * * * * * * * IntegerExp::toElem: cast(Type)0 @ Type * * * * * * * * * * * * IntegerExp::toConstElem: cast(Type)0 @ Type * * * * * * * * * * * * * Building type: Type * * * * * * * * * * * * * value = i32 0 * * * * * * * * * * * Indexing aggregate field msgpack.Value.type: * * * * * * * * * * * * Building type: Type * * * * * * * * * * * * Value: %1 = getelementptr %msgpack.Value, %msgpack.Value* %.structliteral1, i32 0, i32 0 * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * lhs: %1 = getelementptr %msgpack.Value, %msgpack.Value* %.structliteral1, i32 0, i32 0 * * * * * * * * * * * * rhs: i32 0 * * * * * * * * * * * Building type: Type * * * * * * * * * * initializing field: Via via (+16) * * * * * * * * * * * expr 1 = Via(false, , , , , , ) * * * * * * * * * * * StructLiteralExp::toElem: Via(false, , , , , , ) @ Via * * * * * * * * * * * * initializing field: bool boolean (+0) * * * * * * * * * * * * * expr 0 = false * * * * * * * * * * * * * IntegerExp::toElem: false @ bool * * * * * * * * * * * * * * IntegerExp::toConstElem: false @ bool * * * * * * * * * * * * * * * value = i1 false * * * * * * * * * * * * * Indexing aggregate field msgpack.Value.Via.boolean: * * * * * * * * * * * * * * Value: %3 = getelementptr %msgpack.Value.Via, %msgpack.Value.Via* %.structliteral2, i32 0, i32 0 * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * skipping field: ulong uinteger (+0) * * * * * * * * * * * Indexing aggregate field msgpack.Value.via: * * * * * * * * * * * * Value: %5 = getelementptr %msgpack.Value, %msgpack.Value* %.structliteral1, i32 0, i32 2 * * * * * * * * * * * DtoAssign() * * * * * * * * * Indexing aggregate field msgpack.Unpacked.value: * * * * * * * * * * Value: %8 = getelementptr %msgpack.Unpacked, %msgpack.Unpacked* %.structliteral, i32 0, i32 0 * * * * * * * * * DtoAssign() * * * * * * DtoCallFunction() * * * * * * * doing normal arguments * * * * * * * Arguments so far: (1) * * * * * * * * %.structliteral = alloca %msgpack.Unpacked, align 16 * * * * * * * Function type: ref @safe Unpacked(ref Value value) * * * * * * * DtoArgument * * * * * * * * DotVarExp::toElem: this.context_.stack[0].value @ Value * * * * * * * * * IndexExp::toElem: this.context_.stack[0] @ Container * * * * * * * * * * DotVarExp::toElem: this.context_.stack @ Container[] * * * * * * * * * * * DotVarExp::toElem: this.context_ @ Context * * * * * * * * * * * * ThisExp::toElem: this @ StreamingUnpacker * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.context_: * * * * * * * * * * * * * Value: %11 = getelementptr %msgpack.StreamingUnpacker, %msgpack.StreamingUnpacker* %.this_arg, i32 0, i32 0 * * * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.Context.stack: * * * * * * * * * * * * Value: %12 = getelementptr %msgpack.StreamingUnpacker.Context, %msgpack.StreamingUnpacker.Context* %11, i32 0, i32 4 * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * value = i64 0 * * * * * * * * * * DtoArrayLen * * * * * * * * * * DtoArrayPtr * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.Context.Container.value: * * * * * * * * * * Value: %16 = getelementptr %msgpack.StreamingUnpacker.Context.Container, %msgpack.StreamingUnpacker.Context.Container* %15, i32 0, i32 2 * * * * * DtoAssign() * * DtoDefineFunction(msgpack.StreamingUnpacker.clear): msgpack-d/src/msgpack.d(4058) * * * isMember = this is: StreamingUnpacker * * * DtoFunctionType(nothrow @safe void()) * * * * x86-64 ABI: Transforming argument types * * * * Final function type: void (%msgpack.StreamingUnpacker*) * * * DtoResolveFunction(msgpack.StreamingUnpacker.clear): msgpack-d/src/msgpack.d(4058) * * * * DtoDeclareFunction(msgpack.StreamingUnpacker.clear): msgpack-d/src/msgpack.d(4058) * * * * * isMember = this is: StreamingUnpacker * * * * * DtoFunctionType(nothrow @safe void()) * * * * * func = declare void @_D7msgpack17StreamingUnpacker5clearMFNbNfZv(%msgpack.StreamingUnpacker*) * * * Doing function body for: clear * * * DtoCreateNestedContext for clear * * * * DtoCreateNestedContextType for msgpack.StreamingUnpacker.clear * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(4059) * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(4060) * * * * * * CallExp::toElem: this.initializeContext() @ void * * * * * * * DotVarExp::toElem: this.initializeContext @ nothrow @safe void() * * * * * * * * ThisExp::toElem: this @ StreamingUnpacker * * * * * * * * * normal this exp * * * * * * * DtoCallFunction() * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (1) * * * * * * * * * %msgpack.StreamingUnpacker* %.this_arg * * * * * * * * Function type: nothrow @safe void() * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(4062) * * * * * * AssignExp::toElem: this.parsed_ = 0LU | (ulong)(ulong = ulong) * * * * * * * DotVarExp::toElem: this.parsed_ @ ulong * * * * * * * * ThisExp::toElem: this @ StreamingUnpacker * * * * * * * * * normal this exp * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.InternalBuffer!().parsed_: * * * * * * * * * Value: %1 = getelementptr %msgpack.StreamingUnpacker, %msgpack.StreamingUnpacker* %.this_arg, i32 0, i32 4 * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * value = i64 0 * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * DtoAssign() * * * * * * * * lhs: %1 = getelementptr %msgpack.StreamingUnpacker, %msgpack.StreamingUnpacker* %.this_arg, i32 0, i32 4 * * * * * * * * rhs: i64 0 * * DtoDefineFunction(msgpack.StreamingUnpacker.purge): msgpack-d/src/msgpack.d(4087) * * * isMember = this is: StreamingUnpacker * * * DtoFunctionType(@safe Unpacked()) * * * * x86-64 ABI: Transforming argument types * * * * Final function type: void (%msgpack.Unpacked*, %msgpack.StreamingUnpacker*) * * * DtoResolveFunction(msgpack.StreamingUnpacker.purge): msgpack-d/src/msgpack.d(4087) * * * * DtoDeclareFunction(msgpack.StreamingUnpacker.purge): msgpack-d/src/msgpack.d(4087) * * * * * isMember = this is: StreamingUnpacker * * * * * DtoFunctionType(@safe Unpacked()) * * * * * func = declare void @_D7msgpack17StreamingUnpacker5purgeMFNfZS7msgpack8Unpacked(%msgpack.Unpacked*, %msgpack.StreamingUnpacker*) * * * Doing function body for: purge * * * DtoCreateNestedContext for purge * * * * DtoCreateNestedContextType for msgpack.StreamingUnpacker.purge * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(4088) * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(4089) * * * * * * DeclarationExp::toElem: Unpacked result = result = Unpacked , result.this(this.context_.stack[0].value); | T=void * * * * * * * DtoDeclarationExp: result * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = Unpacked) * * * * * * * * * llvm value for decl: %msgpack.Unpacked* %.sret_arg * * * * * * * * * expression initializer * * * * * * * * * CommaExp::toElem: result = Unpacked , result.this(this.context_.stack[0].value) @ Unpacked * * * * * * * * * * AssignExp::toElem: result = Unpacked | (Unpacked)(Unpacked = Unpacked) * * * * * * * * * * * VarExp::toElem: result @ Unpacked * * * * * * * * * * * * DtoSymbolAddress ('result' of type 'Unpacked') * * * * * * * * * * * * * a normal variable * * * * * * * * * * * VarExp::toElem: Unpacked @ Unpacked * * * * * * * * * * * * DtoSymbolAddress ('Unpacked' of type 'Unpacked') * * * * * * * * * * * * * Sym: type=Unpacked * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * DtoAssign() * * * * * * * * * * CallExp::toElem: result.this(this.context_.stack[0].value) @ Unpacked * * * * * * * * * * * DotVarExp::toElem: result.this @ ref @safe Unpacked(ref Value value) * * * * * * * * * * * * VarExp::toElem: result @ Unpacked * * * * * * * * * * * * * DtoSymbolAddress ('result' of type 'Unpacked') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * %msgpack.Unpacked* %.sret_arg * * * * * * * * * * * * Function type: ref @safe Unpacked(ref Value value) * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * DotVarExp::toElem: this.context_.stack[0].value @ Value * * * * * * * * * * * * * * IndexExp::toElem: this.context_.stack[0] @ Container * * * * * * * * * * * * * * * DotVarExp::toElem: this.context_.stack @ Container[] * * * * * * * * * * * * * * * * DotVarExp::toElem: this.context_ @ Context * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ StreamingUnpacker * * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.context_: * * * * * * * * * * * * * * * * * * Value: %2 = getelementptr %msgpack.StreamingUnpacker, %msgpack.StreamingUnpacker* %.this_arg, i32 0, i32 0 * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.Context.stack: * * * * * * * * * * * * * * * * * Value: %3 = getelementptr %msgpack.StreamingUnpacker.Context, %msgpack.StreamingUnpacker.Context* %2, i32 0, i32 4 * * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.Context.Container.value: * * * * * * * * * * * * * * * Value: %7 = getelementptr %msgpack.StreamingUnpacker.Context.Container, %msgpack.StreamingUnpacker.Context.Container* %6, i32 0, i32 2 * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(4091) * * * * * * CallExp::toElem: this.clear() @ void * * * * * * * DotVarExp::toElem: this.clear @ nothrow @safe void() * * * * * * * * ThisExp::toElem: this @ StreamingUnpacker * * * * * * * * * normal this exp * * * * * * * DtoCallFunction() * * * * * * * * Building type: nothrow @safe void() * * * * * * * * * DtoFunctionType(nothrow @safe void()) * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: void () * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (1) * * * * * * * * * %msgpack.StreamingUnpacker* %.this_arg * * * * * * * * Function type: nothrow @safe void() * * * * * ReturnStatement::toIR(): msgpack-d/src/msgpack.d(4093) * * * * * * VarExp::toElem: result @ Unpacked * * * * * * * DtoSymbolAddress ('result' of type 'Unpacked') * * * * * * * * a normal variable * * DtoDefineFunction(msgpack.StreamingUnpacker.execute): msgpack-d/src/msgpack.d(4106) * * * Doing function body for: execute * * * DtoCreateNestedContext for execute * * * * DtoCreateNestedContextType for msgpack.StreamingUnpacker.execute * * * * * has nested frame * * * * * Function execute has depth 0 * * * * * Building type: Container[]* * * * * * Nested var 'stack' of type { i64, %msgpack.StreamingUnpacker.Context.Container* }* * * * * * Nested var 'top' of type i64 * * * * * frameType = %nest.execute = type { { i64, %msgpack.StreamingUnpacker.Context.Container* }*, i64 } * * * * nested var: stack * * * * nested var: top * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(4107) * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(4113) * * * * * * DeclarationExp::toElem: bool ret = false; | T=void * * * * * * * DtoDeclarationExp: ret * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = bool) * * * * * * * * * llvm value for decl: %ret = alloca i8, align 1 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: ret = false | (bool)(bool = bool) * * * * * * * * * * VarExp::toElem: ret @ bool * * * * * * * * * * * DtoSymbolAddress ('ret' of type 'bool') * * * * * * * * * * * * a normal variable * * * * * * * * * * IntegerExp::toElem: false @ bool * * * * * * * * * * * IntegerExp::toConstElem: false @ bool * * * * * * * * * * * * value = i1 false * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(4114) * * * * * * DeclarationExp::toElem: ulong cur = this.offset_; | T=void * * * * * * * DtoDeclarationExp: cur * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * llvm value for decl: %cur = alloca i64, align 8 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: cur = this.offset_ | (ulong)(ulong = ulong) * * * * * * * * * * VarExp::toElem: cur @ ulong * * * * * * * * * * * DtoSymbolAddress ('cur' of type 'ulong') * * * * * * * * * * * * a normal variable * * * * * * * * * * DotVarExp::toElem: this.offset_ @ ulong * * * * * * * * * * * ThisExp::toElem: this @ StreamingUnpacker * * * * * * * * * * * * normal this exp * * * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.InternalBuffer!().offset_: * * * * * * * * * * * * Value: %1 = getelementptr %msgpack.StreamingUnpacker, %msgpack.StreamingUnpacker* %.this_arg, i32 0, i32 3 * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %cur = alloca i64, align 8 * * * * * * * * * * * rhs: %2 = load i64, i64* %1 * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(4115) * * * * * * DeclarationExp::toElem: Value obj = Value; | T=void * * * * * * * DtoDeclarationExp: obj * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = Value) * * * * * * * * * llvm value for decl: %obj = alloca %msgpack.Value, align 16 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: obj = Value | (Value)(Value = Value) * * * * * * * * * * VarExp::toElem: obj @ Value * * * * * * * * * * * DtoSymbolAddress ('obj' of type 'Value') * * * * * * * * * * * * a normal variable * * * * * * * * * * VarExp::toElem: Value @ Value * * * * * * * * * * * DtoSymbolAddress ('Value' of type 'Value') * * * * * * * * * * * * Sym: type=Value * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * DtoAssign() * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(4118) * * * * * * DeclarationExp::toElem: State state = this.context_.state; | T=void * * * * * * * DtoDeclarationExp: state * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = State) * * * * * * * * * Building type: State * * * * * * * * * Building type: State * * * * * * * * * llvm value for decl: %state = alloca i32, align 4 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: state = this.context_.state | (State)(State = State) * * * * * * * * * * VarExp::toElem: state @ State * * * * * * * * * * * DtoSymbolAddress ('state' of type 'State') * * * * * * * * * * * * a normal variable * * * * * * * * * * DotVarExp::toElem: this.context_.state @ State * * * * * * * * * * * DotVarExp::toElem: this.context_ @ Context * * * * * * * * * * * * ThisExp::toElem: this @ StreamingUnpacker * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.context_: * * * * * * * * * * * * * Value: %4 = getelementptr %msgpack.StreamingUnpacker, %msgpack.StreamingUnpacker* %.this_arg, i32 0, i32 0 * * * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.Context.state: * * * * * * * * * * * * Building type: State * * * * * * * * * * * * Value: %5 = getelementptr %msgpack.StreamingUnpacker.Context, %msgpack.StreamingUnpacker.Context* %4, i32 0, i32 0 * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %state = alloca i32, align 4 * * * * * * * * * * * rhs: %6 = load i32, i32* %5 * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(4119) * * * * * * DeclarationExp::toElem: ulong trail = this.context_.trail; | T=void * * * * * * * DtoDeclarationExp: trail * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * llvm value for decl: %trail = alloca i64, align 8 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: trail = this.context_.trail | (ulong)(ulong = ulong) * * * * * * * * * * VarExp::toElem: trail @ ulong * * * * * * * * * * * DtoSymbolAddress ('trail' of type 'ulong') * * * * * * * * * * * * a normal variable * * * * * * * * * * DotVarExp::toElem: this.context_.trail @ ulong * * * * * * * * * * * DotVarExp::toElem: this.context_ @ Context * * * * * * * * * * * * ThisExp::toElem: this @ StreamingUnpacker * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.context_: * * * * * * * * * * * * * Value: %7 = getelementptr %msgpack.StreamingUnpacker, %msgpack.StreamingUnpacker* %.this_arg, i32 0, i32 0 * * * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.Context.trail: * * * * * * * * * * * * Value: %8 = getelementptr %msgpack.StreamingUnpacker.Context, %msgpack.StreamingUnpacker.Context* %7, i32 0, i32 2 * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %trail = alloca i64, align 8 * * * * * * * * * * * rhs: %9 = load i64, i64* %8 * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(4120) * * * * * * DeclarationExp::toElem: ulong top = this.context_.top; | T=void * * * * * * * DtoDeclarationExp: top * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * has nestedref set (referenced by nested function/delegate) * * * * * * * * * llvm value for decl: %top = getelementptr %nest.execute, %nest.execute* %.frame, i32 0, i32 1 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: top = this.context_.top | (ulong)(ulong = ulong) * * * * * * * * * * VarExp::toElem: top @ ulong * * * * * * * * * * * DtoSymbolAddress ('top' of type 'ulong') * * * * * * * * * * * * nested variable * * * * * * * * * * * * DtoNestedVariable for top @ msgpack-d/src/msgpack.d(4120) * * * * * * * * * * DotVarExp::toElem: this.context_.top @ ulong * * * * * * * * * * * DotVarExp::toElem: this.context_ @ Context * * * * * * * * * * * * ThisExp::toElem: this @ StreamingUnpacker * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.context_: * * * * * * * * * * * * * Value: %10 = getelementptr %msgpack.StreamingUnpacker, %msgpack.StreamingUnpacker* %.this_arg, i32 0, i32 0 * * * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.Context.top: * * * * * * * * * * * * Value: %11 = getelementptr %msgpack.StreamingUnpacker.Context, %msgpack.StreamingUnpacker.Context* %10, i32 0, i32 3 * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %top = getelementptr %nest.execute, %nest.execute* %.frame, i32 0, i32 1 * * * * * * * * * * * rhs: %12 = load i64, i64* %11 * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(4121) * * * * * * DeclarationExp::toElem: Container[]* stack = &this.context_.stack; | T=void * * * * * * * DtoDeclarationExp: stack * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = Container[]*) * * * * * * * * * has nestedref set (referenced by nested function/delegate) * * * * * * * * * llvm value for decl: %stack = getelementptr %nest.execute, %nest.execute* %.frame, i32 0, i32 0 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: stack = &this.context_.stack | (Container[]*)(Container[]* = Container[]*) * * * * * * * * * * VarExp::toElem: stack @ Container[]* * * * * * * * * * * * DtoSymbolAddress ('stack' of type 'Container[]*') * * * * * * * * * * * * nested variable * * * * * * * * * * * * DtoNestedVariable for stack @ msgpack-d/src/msgpack.d(4121) * * * * * * * * * * AddrExp::toElem: &this.context_.stack @ Container[]* * * * * * * * * * * * DotVarExp::toElem: this.context_.stack @ Container[] * * * * * * * * * * * * DotVarExp::toElem: this.context_ @ Context * * * * * * * * * * * * * ThisExp::toElem: this @ StreamingUnpacker * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.context_: * * * * * * * * * * * * * * Value: %13 = getelementptr %msgpack.StreamingUnpacker, %msgpack.StreamingUnpacker* %.this_arg, i32 0, i32 0 * * * * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.Context.stack: * * * * * * * * * * * * * Value: %14 = getelementptr %msgpack.StreamingUnpacker.Context, %msgpack.StreamingUnpacker.Context* %13, i32 0, i32 4 * * * * * * * * * * * is nothing special * * * * * * * * * * * lval: %14 = getelementptr %msgpack.StreamingUnpacker.Context, %msgpack.StreamingUnpacker.Context* %13, i32 0, i32 4 * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %stack = getelementptr %nest.execute, %nest.execute* %.frame, i32 0, i32 0 * * * * * * * * * * * rhs: %14 = getelementptr %msgpack.StreamingUnpacker.Context, %msgpack.StreamingUnpacker.Context* %13, i32 0, i32 4 * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(4126) * * * * * * DeclarationExp::toElem: template startContainer(string Type) | T=void * * * * * * * DtoDeclarationExp: startContainer(string Type)(ContainerElement type, size_t length) * * * * * * * * Ignoring Symbol: template * * * * * IfStatement::toIR(): msgpack-d/src/msgpack.d(4136) * * * * * * EqualExp::toElem: this.used_ - this.offset_ == 0LU @ bool * * * * * * * MinExp::toElem: this.used_ - this.offset_ @ ulong * * * * * * * * DotVarExp::toElem: this.used_ @ ulong * * * * * * * * * ThisExp::toElem: this @ StreamingUnpacker * * * * * * * * * * normal this exp * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.InternalBuffer!().used_: * * * * * * * * * * Value: %15 = getelementptr %msgpack.StreamingUnpacker, %msgpack.StreamingUnpacker* %.this_arg, i32 0, i32 2 * * * * * * * * DotVarExp::toElem: this.offset_ @ ulong * * * * * * * * * ThisExp::toElem: this @ StreamingUnpacker * * * * * * * * * * normal this exp * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.InternalBuffer!().offset_: * * * * * * * * * * Value: %16 = getelementptr %msgpack.StreamingUnpacker, %msgpack.StreamingUnpacker* %.this_arg, i32 0, i32 3 * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * value = i64 0 * * * * * * * integral or pointer or interface * * * * * * * lv: %19 = sub i64 %17, %18 * * * * * * * rv: i64 0 * * * * * * GotoStatement::toIR(): msgpack-d/src/msgpack.d(4137) * * * * * DoStatement::toIR(): msgpack-d/src/msgpack.d(4139) * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(4139) * * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(4139) * * * * * * * * LabelStatement::toIR(): msgpack-d/src/msgpack.d(4140) * * * * * * * * * IfStatement::toIR(): msgpack-d/src/msgpack.d(4141) * * * * * * * * * * EqualExp::toElem: state == cast(State)0 @ bool * * * * * * * * * * * VarExp::toElem: state @ State * * * * * * * * * * * * DtoSymbolAddress ('state' of type 'State') * * * * * * * * * * * * * a normal variable * * * * * * * * * * * IntegerExp::toElem: cast(State)0 @ State * * * * * * * * * * * * IntegerExp::toConstElem: cast(State)0 @ State * * * * * * * * * * * * * Building type: State * * * * * * * * * * * * * value = i32 0 * * * * * * * * * * * integral or pointer or interface * * * * * * * * * * * lv: %21 = load i32, i32* %state * * * * * * * * * * * rv: i32 0 * * * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(4141) * * * * * * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(4141) * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(4142) * * * * * * * * * * * * * DeclarationExp::toElem: const const(ubyte) header = this.buffer_[cur]; | T=void * * * * * * * * * * * * * * DtoDeclarationExp: header * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = const(ubyte)) * * * * * * * * * * * * * * * * llvm value for decl: %header = alloca i8, align 1 * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * AssignExp::toElem: header = this.buffer_[cur] | (const(ubyte))(const(ubyte) = const(ubyte)) * * * * * * * * * * * * * * * * * VarExp::toElem: header @ const(ubyte) * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('header' of type 'const(ubyte)') * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * IndexExp::toElem: this.buffer_[cur] @ const(ubyte) * * * * * * * * * * * * * * * * * * DotVarExp::toElem: this.buffer_ @ ubyte[] * * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ StreamingUnpacker * * * * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.InternalBuffer!().buffer_: * * * * * * * * * * * * * * * * * * * * Value: %23 = getelementptr %msgpack.StreamingUnpacker, %msgpack.StreamingUnpacker* %.this_arg, i32 0, i32 1 * * * * * * * * * * * * * * * * * * VarExp::toElem: cur @ ulong * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('cur' of type 'ulong') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * lhs: %header = alloca i8, align 1 * * * * * * * * * * * * * * * * * * rhs: %27 = load i8, i8* %26 * * * * * * * * * * * * IfStatement::toIR(): msgpack-d/src/msgpack.d(4144) * * * * * * * * * * * * * AndAndExp::toElem: 0 <= cast(int)header && cast(int)header <= 127 @ bool * * * * * * * * * * * * * * CmpExp::toElem: 0 <= cast(int)header @ bool * * * * * * * * * * * * * * * IntegerExp::toElem: 0 @ int * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0 @ int * * * * * * * * * * * * * * * * * value = i32 0 * * * * * * * * * * * * * * * CastExp::toElem: cast(int)header @ int * * * * * * * * * * * * * * * * VarExp::toElem: header @ const(ubyte) * * * * * * * * * * * * * * * * * DtoSymbolAddress ('header' of type 'const(ubyte)') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * Casting from 'const(ubyte)' to 'int' * * * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * * * * type 1: i32 0 * * * * * * * * * * * * * * * type 2: %29 = zext i8 %28 to i32 * * * * * * * * * * * * * * CmpExp::toElem: cast(int)header <= 127 @ bool * * * * * * * * * * * * * * * CastExp::toElem: cast(int)header @ int * * * * * * * * * * * * * * * * VarExp::toElem: header @ const(ubyte) * * * * * * * * * * * * * * * * * DtoSymbolAddress ('header' of type 'const(ubyte)') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * Casting from 'const(ubyte)' to 'int' * * * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * * * * IntegerExp::toElem: 127 @ int * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 127 @ int * * * * * * * * * * * * * * * * * value = i32 127 * * * * * * * * * * * * * * * type 1: %32 = zext i8 %31 to i32 * * * * * * * * * * * * * * * type 2: i32 127 * * * * * * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(4144) * * * * * * * * * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(4144) * * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(4145) * * * * * * * * * * * * * * * * CallExp::toElem: callbackUInt(obj, cast(ulong)header) @ void * * * * * * * * * * * * * * * * * VarExp::toElem: callbackUInt @ @trusted void(ref Value value, ulong number) * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('callbackUInt' of type '@trusted void(ref Value value, ulong number)') * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * DtoFunctionType(@trusted void(ref Value value, ulong number)) * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * Final function type: void (i64, %msgpack.Value*) * * * * * * * * * * * * * * * * * * * DtoResolveFunction(msgpack.callbackUInt): msgpack-d/src/msgpack.d(4501) * * * * * * * * * * * * * * * * * * * * DtoDeclareFunction(msgpack.callbackUInt): msgpack-d/src/msgpack.d(4501) * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(@trusted void(ref Value value, ulong number)) * * * * * * * * * * * * * * * * * * * * * func = declare void @_D7msgpack12callbackUIntFNeKS7msgpack5ValuemZv(i64, %msgpack.Value*) * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * Building type: @trusted void(ref Value value, ulong number) * * * * * * * * * * * * * * * * * * * DtoFunctionType(@trusted void(ref Value value, ulong number)) * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * Final function type: void (i64, %msgpack.Value*) * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * Function type: @trusted void(ref Value value, ulong number) * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * VarExp::toElem: obj @ Value * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('obj' of type 'Value') * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * CastExp::toElem: cast(ulong)header @ ulong * * * * * * * * * * * * * * * * * * * * VarExp::toElem: header @ const(ubyte) * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('header' of type 'const(ubyte)') * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * Casting from 'const(ubyte)' to 'ulong' * * * * * * * * * * * * * * * * * * * * * cast to: i64 * * * * * * * * * * * * * * * GotoStatement::toIR(): msgpack-d/src/msgpack.d(4146) * * * * * * * * * * * * * IfStatement::toIR(): msgpack-d/src/msgpack.d(4147) * * * * * * * * * * * * * * AndAndExp::toElem: 224 <= cast(int)header && cast(int)header <= 255 @ bool * * * * * * * * * * * * * * * CmpExp::toElem: 224 <= cast(int)header @ bool * * * * * * * * * * * * * * * * IntegerExp::toElem: 224 @ int * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 224 @ int * * * * * * * * * * * * * * * * * * value = i32 224 * * * * * * * * * * * * * * * * CastExp::toElem: cast(int)header @ int * * * * * * * * * * * * * * * * * VarExp::toElem: header @ const(ubyte) * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('header' of type 'const(ubyte)') * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * Casting from 'const(ubyte)' to 'int' * * * * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * * * * * type 1: i32 224 * * * * * * * * * * * * * * * * type 2: %37 = zext i8 %36 to i32 * * * * * * * * * * * * * * * CmpExp::toElem: cast(int)header <= 255 @ bool * * * * * * * * * * * * * * * * CastExp::toElem: cast(int)header @ int * * * * * * * * * * * * * * * * * VarExp::toElem: header @ const(ubyte) * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('header' of type 'const(ubyte)') * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * Casting from 'const(ubyte)' to 'int' * * * * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * * * * * IntegerExp::toElem: 255 @ int * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 255 @ int * * * * * * * * * * * * * * * * * * value = i32 255 * * * * * * * * * * * * * * * * type 1: %40 = zext i8 %39 to i32 * * * * * * * * * * * * * * * * type 2: i32 255 * * * * * * * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(4147) * * * * * * * * * * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(4147) * * * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(4148) * * * * * * * * * * * * * * * * * CallExp::toElem: callbackInt(obj, cast(long)cast(byte)header) @ void * * * * * * * * * * * * * * * * * * VarExp::toElem: callbackInt @ @trusted void(ref Value value, long number) * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('callbackInt' of type '@trusted void(ref Value value, long number)') * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * * DtoFunctionType(@trusted void(ref Value value, long number)) * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * * Final function type: void (i64, %msgpack.Value*) * * * * * * * * * * * * * * * * * * * * DtoResolveFunction(msgpack.callbackInt): msgpack-d/src/msgpack.d(4510) * * * * * * * * * * * * * * * * * * * * * DtoDeclareFunction(msgpack.callbackInt): msgpack-d/src/msgpack.d(4510) * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(@trusted void(ref Value value, long number)) * * * * * * * * * * * * * * * * * * * * * * func = declare void @_D7msgpack11callbackIntFNeKS7msgpack5ValuelZv(i64, %msgpack.Value*) * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * Building type: @trusted void(ref Value value, long number) * * * * * * * * * * * * * * * * * * * * DtoFunctionType(@trusted void(ref Value value, long number)) * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * * Final function type: void (i64, %msgpack.Value*) * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * Function type: @trusted void(ref Value value, long number) * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * VarExp::toElem: obj @ Value * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('obj' of type 'Value') * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * CastExp::toElem: cast(long)cast(byte)header @ long * * * * * * * * * * * * * * * * * * * * * CastExp::toElem: cast(byte)header @ byte * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: header @ const(ubyte) * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('header' of type 'const(ubyte)') * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * Casting from 'const(ubyte)' to 'byte' * * * * * * * * * * * * * * * * * * * * * Casting from 'byte' to 'long' * * * * * * * * * * * * * * * * * * * * * * cast to: i64 * * * * * * * * * * * * * * * * GotoStatement::toIR(): msgpack-d/src/msgpack.d(4149) * * * * * * * * * * * * * * IfStatement::toIR(): msgpack-d/src/msgpack.d(4150) * * * * * * * * * * * * * * * AndAndExp::toElem: 160 <= cast(int)header && cast(int)header <= 191 @ bool * * * * * * * * * * * * * * * * CmpExp::toElem: 160 <= cast(int)header @ bool * * * * * * * * * * * * * * * * * IntegerExp::toElem: 160 @ int * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 160 @ int * * * * * * * * * * * * * * * * * * * value = i32 160 * * * * * * * * * * * * * * * * * CastExp::toElem: cast(int)header @ int * * * * * * * * * * * * * * * * * * VarExp::toElem: header @ const(ubyte) * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('header' of type 'const(ubyte)') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * Casting from 'const(ubyte)' to 'int' * * * * * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * * * * * * type 1: i32 160 * * * * * * * * * * * * * * * * * type 2: %45 = zext i8 %44 to i32 * * * * * * * * * * * * * * * * CmpExp::toElem: cast(int)header <= 191 @ bool * * * * * * * * * * * * * * * * * CastExp::toElem: cast(int)header @ int * * * * * * * * * * * * * * * * * * VarExp::toElem: header @ const(ubyte) * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('header' of type 'const(ubyte)') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * Casting from 'const(ubyte)' to 'int' * * * * * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * * * * * * IntegerExp::toElem: 191 @ int * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 191 @ int * * * * * * * * * * * * * * * * * * * value = i32 191 * * * * * * * * * * * * * * * * * type 1: %48 = zext i8 %47 to i32 * * * * * * * * * * * * * * * * * type 2: i32 191 * * * * * * * * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(4150) * * * * * * * * * * * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(4150) * * * * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(4151) * * * * * * * * * * * * * * * * * * AssignExp::toElem: trail = cast(ulong)(cast(int)header & 31) | (ulong)(ulong = ulong) * * * * * * * * * * * * * * * * * * * VarExp::toElem: trail @ ulong * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('trail' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * CastExp::toElem: cast(ulong)(cast(int)header & 31) @ ulong * * * * * * * * * * * * * * * * * * * * AndExp::toElem: cast(int)header & 31 @ int * * * * * * * * * * * * * * * * * * * * * CastExp::toElem: cast(int)header @ int * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: header @ const(ubyte) * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('header' of type 'const(ubyte)') * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * Casting from 'const(ubyte)' to 'int' * * * * * * * * * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 31 @ int * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 31 @ int * * * * * * * * * * * * * * * * * * * * * * * value = i32 31 * * * * * * * * * * * * * * * * * * * * Casting from 'int' to 'ulong' * * * * * * * * * * * * * * * * * * * * * cast to: i64 * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * lhs: %trail = alloca i64, align 8 * * * * * * * * * * * * * * * * * * * * rhs: %53 = sext i32 %52 to i64 * * * * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(4152) * * * * * * * * * * * * * * * * * * AssignExp::toElem: state = cast(State)32 | (State)(State = State) * * * * * * * * * * * * * * * * * * * VarExp::toElem: state @ State * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('state' of type 'State') * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: cast(State)32 @ State * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: cast(State)32 @ State * * * * * * * * * * * * * * * * * * * * * Building type: State * * * * * * * * * * * * * * * * * * * * * value = i32 32 * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * lhs: %state = alloca i32, align 4 * * * * * * * * * * * * * * * * * * * * rhs: i32 32 * * * * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(4153) * * * * * * * * * * * * * * * * * * PostExp::toElem: cur++ @ ulong * * * * * * * * * * * * * * * * * * * VarExp::toElem: cur @ ulong * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('cur' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * * * * * ContinueStatement::toIR(): msgpack-d/src/msgpack.d(4154) * * * * * * * * * * * * * * * IfStatement::toIR(): msgpack-d/src/msgpack.d(4155) * * * * * * * * * * * * * * * * AndAndExp::toElem: 144 <= cast(int)header && cast(int)header <= 159 @ bool * * * * * * * * * * * * * * * * * CmpExp::toElem: 144 <= cast(int)header @ bool * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 144 @ int * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 144 @ int * * * * * * * * * * * * * * * * * * * * value = i32 144 * * * * * * * * * * * * * * * * * * CastExp::toElem: cast(int)header @ int * * * * * * * * * * * * * * * * * * * VarExp::toElem: header @ const(ubyte) * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('header' of type 'const(ubyte)') * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * Casting from 'const(ubyte)' to 'int' * * * * * * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * * * * * * * type 1: i32 144 * * * * * * * * * * * * * * * * * * type 2: %57 = zext i8 %56 to i32 * * * * * * * * * * * * * * * * * CmpExp::toElem: cast(int)header <= 159 @ bool * * * * * * * * * * * * * * * * * * CastExp::toElem: cast(int)header @ int * * * * * * * * * * * * * * * * * * * VarExp::toElem: header @ const(ubyte) * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('header' of type 'const(ubyte)') * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * Casting from 'const(ubyte)' to 'int' * * * * * * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 159 @ int * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 159 @ int * * * * * * * * * * * * * * * * * * * * value = i32 159 * * * * * * * * * * * * * * * * * * type 1: %60 = zext i8 %59 to i32 * * * * * * * * * * * * * * * * * * type 2: i32 159 * * * * * * * * * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(4155) * * * * * * * * * * * * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(4155) * * * * * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(4156) * * * * * * * * * * * * * * * * * * * DeclarationExp::toElem: ulong length = cast(ulong)(cast(int)header & 15); | T=void * * * * * * * * * * * * * * * * * * * * DtoDeclarationExp: length * * * * * * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * * * * * * * * * * * * * * llvm value for decl: %length = alloca i64, align 8 * * * * * * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * * * * * * AssignExp::toElem: length = cast(ulong)(cast(int)header & 15) | (ulong)(ulong = ulong) * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: length @ ulong * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('length' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * CastExp::toElem: cast(ulong)(cast(int)header & 15) @ ulong * * * * * * * * * * * * * * * * * * * * * * * * AndExp::toElem: cast(int)header & 15 @ int * * * * * * * * * * * * * * * * * * * * * * * * * CastExp::toElem: cast(int)header @ int * * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: header @ const(ubyte) * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('header' of type 'const(ubyte)') * * * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * * * * Casting from 'const(ubyte)' to 'int' * * * * * * * * * * * * * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 15 @ int * * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 15 @ int * * * * * * * * * * * * * * * * * * * * * * * * * * * value = i32 15 * * * * * * * * * * * * * * * * * * * * * * * * Casting from 'int' to 'ulong' * * * * * * * * * * * * * * * * * * * * * * * * * cast to: i64 * * * * * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * * * * * lhs: %length = alloca i64, align 8 * * * * * * * * * * * * * * * * * * * * * * * * rhs: %65 = sext i32 %64 to i64 * * * * * * * * * * * * * * * * * * IfStatement::toIR(): msgpack-d/src/msgpack.d(4157) * * * * * * * * * * * * * * * * * * * EqualExp::toElem: length == 0LU @ bool * * * * * * * * * * * * * * * * * * * * VarExp::toElem: length @ ulong * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('length' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * * * * * * * * integral or pointer or interface * * * * * * * * * * * * * * * * * * * * lv: %66 = load i64, i64* %length * * * * * * * * * * * * * * * * * * * * rv: i64 0 * * * * * * * * * * * * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(4157) * * * * * * * * * * * * * * * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(4157) * * * * * * * * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(4158) * * * * * * * * * * * * * * * * * * * * * * CallExp::toElem: callbackArray(obj, 0LU) @ void * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: callbackArray @ @trusted void(ref Value value, ulong length) * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('callbackArray' of type '@trusted void(ref Value value, ulong length)') * * * * * * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(@trusted void(ref Value value, ulong length)) * * * * * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * * * * * * * Final function type: void (i64, %msgpack.Value*) * * * * * * * * * * * * * * * * * * * * * * * * * DtoResolveFunction(msgpack.callbackArray): msgpack-d/src/msgpack.d(4537) * * * * * * * * * * * * * * * * * * * * * * * * * * DtoDeclareFunction(msgpack.callbackArray): msgpack-d/src/msgpack.d(4537) * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(@trusted void(ref Value value, ulong length)) * * * * * * * * * * * * * * * * * * * * * * * * * * * func = declare void @_D7msgpack13callbackArrayFNeKS7msgpack5ValuemZv(i64, %msgpack.Value*) * * * * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * * * * Building type: @trusted void(ref Value value, ulong length) * * * * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(@trusted void(ref Value value, ulong length)) * * * * * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * * * * * * * Final function type: void (i64, %msgpack.Value*) * * * * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * * * * * * Function type: @trusted void(ref Value value, ulong length) * * * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: obj @ Value * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('obj' of type 'Value') * * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * * * * * * * * * GotoStatement::toIR(): msgpack-d/src/msgpack.d(4159) * * * * * * * * * * * * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(4160) * * * * * * * * * * * * * * * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(4160) * * * * * * * * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(4161) * * * * * * * * * * * * * * * * * * * * * * CallExp::toElem: startContainer(cast(ContainerElement)0, length) @ void * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: startContainer @ @safe void(ContainerElement type, ulong length) * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('startContainer' of type '@safe void(ContainerElement type, ulong length)') * * * * * * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(@safe void(ContainerElement type, ulong length)) * * * * * * * * * * * * * * * * * * * * * * * * * * Building type: ContainerElement * * * * * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * * * * * * * Final function type: void (i8*, i64, i32) * * * * * * * * * * * * * * * * * * * * * * * * * DtoResolveFunction(msgpack.StreamingUnpacker.execute.startContainer!"Array".startContainer): msgpack-d/src/msgpack.d(4126) * * * * * * * * * * * * * * * * * * * * * * * * * * DtoDeclareFunction(msgpack.StreamingUnpacker.execute.startContainer!"Array".startContainer): msgpack-d/src/msgpack.d(4126) * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(@safe void(ContainerElement type, ulong length)) * * * * * * * * * * * * * * * * * * * * * * * * * * * func = declare void @_D7msgpack17StreamingUnpacker7executeMFNeZ37__T14startContainerVAyaa5_4172726179Z14startContainerMFNfE7msgpack17StreamingUnpacker16ContainerElementmZv(i8*, i64, i32) * * * * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * * * * Building type: @safe void(ContainerElement type, ulong length) * * * * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(@safe void(ContainerElement type, ulong length)) * * * * * * * * * * * * * * * * * * * * * * * * * * Building type: ContainerElement * * * * * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * * * * * * * Final function type: void (i64, i32) * * * * * * * * * * * * * * * * * * * * * * * * DtoNestedContext for msgpack.StreamingUnpacker.execute.startContainer!"Array".startContainer * * * * * * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.StreamingUnpacker.execute.startContainer!"Array".startContainer * * * * * * * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.StreamingUnpacker.execute * * * * * * * * * * * * * * * * * * * * * * * * * Parent frame is from execute * * * * * * * * * * * * * * * * * * * * * * * * * Current function is execute * * * * * * * * * * * * * * * * * * * * * * * * * Context is from execute * * * * * * * * * * * * * * * * * * * * * * * * * Needed depth: 0 * * * * * * * * * * * * * * * * * * * * * * * * * Context depth: 0 * * * * * * * * * * * * * * * * * * * * * * * * * Calling sibling function or directly nested function * * * * * * * * * * * * * * * * * * * * * * * * * result = %.frame = alloca %nest.execute, align 8 * * * * * * * * * * * * * * * * * * * * * * * * * of type %nest.execute* * * * * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * * * * * * * * %68 = bitcast %nest.execute* %.frame to i8* * * * * * * * * * * * * * * * * * * * * * * * * Function type: @safe void(ContainerElement type, ulong length) * * * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: cast(ContainerElement)0 @ ContainerElement * * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: cast(ContainerElement)0 @ ContainerElement * * * * * * * * * * * * * * * * * * * * * * * * * * * Building type: ContainerElement * * * * * * * * * * * * * * * * * * * * * * * * * * * value = i32 0 * * * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: length @ ulong * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('length' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(4162) * * * * * * * * * * * * * * * * * * * * * * PostExp::toElem: cur++ @ ulong * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: cur @ ulong * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('cur' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * * * * * * * * * ContinueStatement::toIR(): msgpack-d/src/msgpack.d(4163) * * * * * * * * * * * * * * * * IfStatement::toIR(): msgpack-d/src/msgpack.d(4165) * * * * * * * * * * * * * * * * * AndAndExp::toElem: 128 <= cast(int)header && cast(int)header <= 143 @ bool * * * * * * * * * * * * * * * * * * CmpExp::toElem: 128 <= cast(int)header @ bool * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 128 @ int * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 128 @ int * * * * * * * * * * * * * * * * * * * * * value = i32 128 * * * * * * * * * * * * * * * * * * * CastExp::toElem: cast(int)header @ int * * * * * * * * * * * * * * * * * * * * VarExp::toElem: header @ const(ubyte) * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('header' of type 'const(ubyte)') * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * Casting from 'const(ubyte)' to 'int' * * * * * * * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * * * * * * * * type 1: i32 128 * * * * * * * * * * * * * * * * * * * type 2: %69 = zext i8 %68 to i32 * * * * * * * * * * * * * * * * * * CmpExp::toElem: cast(int)header <= 143 @ bool * * * * * * * * * * * * * * * * * * * CastExp::toElem: cast(int)header @ int * * * * * * * * * * * * * * * * * * * * VarExp::toElem: header @ const(ubyte) * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('header' of type 'const(ubyte)') * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * Casting from 'const(ubyte)' to 'int' * * * * * * * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 143 @ int * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 143 @ int * * * * * * * * * * * * * * * * * * * * * value = i32 143 * * * * * * * * * * * * * * * * * * * type 1: %76 = zext i8 %75 to i32 * * * * * * * * * * * * * * * * * * * type 2: i32 143 * * * * * * * * * * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(4165) * * * * * * * * * * * * * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(4165) * * * * * * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(4166) * * * * * * * * * * * * * * * * * * * * DeclarationExp::toElem: ulong length = cast(ulong)(cast(int)header & 15); | T=void * * * * * * * * * * * * * * * * * * * * * DtoDeclarationExp: length * * * * * * * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * * * * * * * * * * * * * * * llvm value for decl: %length40 = alloca i64, align 8 * * * * * * * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * * * * * * * AssignExp::toElem: length = cast(ulong)(cast(int)header & 15) | (ulong)(ulong = ulong) * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: length @ ulong * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('length' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * * CastExp::toElem: cast(ulong)(cast(int)header & 15) @ ulong * * * * * * * * * * * * * * * * * * * * * * * * * AndExp::toElem: cast(int)header & 15 @ int * * * * * * * * * * * * * * * * * * * * * * * * * * CastExp::toElem: cast(int)header @ int * * * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: header @ const(ubyte) * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('header' of type 'const(ubyte)') * * * * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * * * * * Casting from 'const(ubyte)' to 'int' * * * * * * * * * * * * * * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 15 @ int * * * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 15 @ int * * * * * * * * * * * * * * * * * * * * * * * * * * * * value = i32 15 * * * * * * * * * * * * * * * * * * * * * * * * * Casting from 'int' to 'ulong' * * * * * * * * * * * * * * * * * * * * * * * * * * cast to: i64 * * * * * * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * * * * * * lhs: %length40 = alloca i64, align 8 * * * * * * * * * * * * * * * * * * * * * * * * * rhs: %81 = sext i32 %80 to i64 * * * * * * * * * * * * * * * * * * * IfStatement::toIR(): msgpack-d/src/msgpack.d(4167) * * * * * * * * * * * * * * * * * * * * EqualExp::toElem: length == 0LU @ bool * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: length @ ulong * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('length' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * * * * * * * * * integral or pointer or interface * * * * * * * * * * * * * * * * * * * * * lv: %82 = load i64, i64* %length40 * * * * * * * * * * * * * * * * * * * * * rv: i64 0 * * * * * * * * * * * * * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(4167) * * * * * * * * * * * * * * * * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(4167) * * * * * * * * * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(4168) * * * * * * * * * * * * * * * * * * * * * * * CallExp::toElem: callbackMap(obj, delegate ulong() => 0LU) @ void * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: callbackMap @ @trusted void(ref Value value, lazy ulong length) * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('callbackMap' of type '@trusted void(ref Value value, lazy ulong length)') * * * * * * * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(@trusted void(ref Value value, lazy ulong length)) * * * * * * * * * * * * * * * * * * * * * * * * * * * lazy param * * * * * * * * * * * * * * * * * * * * * * * * * * * Building type: ulong delegate() * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(ulong()) * * * * * * * * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Final function type: i64 (i8*) * * * * * * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * * * * * * * * Final function type: void ({ i8*, i64 (i8*)* }, %msgpack.Value*) * * * * * * * * * * * * * * * * * * * * * * * * * * DtoResolveFunction(msgpack.callbackMap): msgpack-d/src/msgpack.d(4547) * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoDeclareFunction(msgpack.callbackMap): msgpack-d/src/msgpack.d(4547) * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(@trusted void(ref Value value, lazy ulong length)) * * * * * * * * * * * * * * * * * * * * * * * * * * * * func = declare void @_D7msgpack11callbackMapFNeKS7msgpack5ValueLmZv({ i8*, i64 (i8*)* }, %msgpack.Value*) * * * * * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * * * * * Building type: @trusted void(ref Value value, lazy ulong length) * * * * * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(@trusted void(ref Value value, lazy ulong length)) * * * * * * * * * * * * * * * * * * * * * * * * * * * lazy param * * * * * * * * * * * * * * * * * * * * * * * * * * * Building type: ulong delegate() * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(ulong()) * * * * * * * * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Final function type: i64 (i8*) * * * * * * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * * * * * * * * Final function type: void ({ i8*, i64 (i8*)* }, %msgpack.Value*) * * * * * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * * * * * * * Function type: @trusted void(ref Value value, lazy ulong length) * * * * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: obj @ Value * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('obj' of type 'Value') * * * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * * * * FuncExp::toElem: __dgliteral1 @ ulong delegate() pure nothrow @nogc @safe * * * * * * * * * * * * * * * * * * * * * * * * * * * nested * * * * * * * * * * * * * * * * * * * * * * * * * * * kind = delegate * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoDefineFunction(msgpack.StreamingUnpacker.execute.__dgliteral1): msgpack-d/src/msgpack.d(4168) * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe ulong()) * * * * * * * * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Final function type: i64 (i8*) * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoResolveFunction(msgpack.StreamingUnpacker.execute.__dgliteral1): msgpack-d/src/msgpack.d(4168) * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoDeclareFunction(msgpack.StreamingUnpacker.execute.__dgliteral1): msgpack-d/src/msgpack.d(4168) * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe ulong()) * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * func = declare i64 @_D7msgpack17StreamingUnpacker7executeMFNeZ12__dgliteral1MFNaNbNiNfZm(i8*) * * * * * * * * * * * * * * * * * * * * * * * * * * * * Doing function body for: __dgliteral1 * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContext for __dgliteral1 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.StreamingUnpacker.execute.__dgliteral1 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.StreamingUnpacker.execute * * * * * * * * * * * * * * * * * * * * * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ReturnStatement::toIR(): msgpack-d/src/msgpack.d(4168) * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * return value is '0x120dec80' * * * * * * * * * * * * * * * * * * * * * * * * * * * Building type: ulong delegate() pure nothrow @nogc @safe * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe ulong()) * * * * * * * * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Final function type: i64 (i8*) * * * * * * * * * * * * * * * * * * * * * * GotoStatement::toIR(): msgpack-d/src/msgpack.d(4169) * * * * * * * * * * * * * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(4170) * * * * * * * * * * * * * * * * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(4170) * * * * * * * * * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(4171) * * * * * * * * * * * * * * * * * * * * * * * CallExp::toElem: startContainer(cast(ContainerElement)1, length) @ void * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: startContainer @ @safe void(ContainerElement type, ulong length) * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('startContainer' of type '@safe void(ContainerElement type, ulong length)') * * * * * * * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(@safe void(ContainerElement type, ulong length)) * * * * * * * * * * * * * * * * * * * * * * * * * * * Building type: ContainerElement * * * * * * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * * * * * * * * Final function type: void (i8*, i64, i32) * * * * * * * * * * * * * * * * * * * * * * * * * * DtoResolveFunction(msgpack.StreamingUnpacker.execute.startContainer!"Map".startContainer): msgpack-d/src/msgpack.d(4126) * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoDeclareFunction(msgpack.StreamingUnpacker.execute.startContainer!"Map".startContainer): msgpack-d/src/msgpack.d(4126) * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(@safe void(ContainerElement type, ulong length)) * * * * * * * * * * * * * * * * * * * * * * * * * * * * func = declare void @_D7msgpack17StreamingUnpacker7executeMFNeZ33__T14startContainerVAyaa3_4d6170Z14startContainerMFNfE7msgpack17StreamingUnpacker16ContainerElementmZv(i8*, i64, i32) * * * * * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * * * * * Building type: @safe void(ContainerElement type, ulong length) * * * * * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(@safe void(ContainerElement type, ulong length)) * * * * * * * * * * * * * * * * * * * * * * * * * * * Building type: ContainerElement * * * * * * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * * * * * * * * Final function type: void (i64, i32) * * * * * * * * * * * * * * * * * * * * * * * * * DtoNestedContext for msgpack.StreamingUnpacker.execute.startContainer!"Map".startContainer * * * * * * * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.StreamingUnpacker.execute.startContainer!"Map".startContainer * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.StreamingUnpacker.execute * * * * * * * * * * * * * * * * * * * * * * * * * * * has nested frame * * * * * * * * * * * * * * * * * * * * * * * * * * * Function startContainer has depth 1 * * * * * * * * * * * * * * * * * * * * * * * * * * * Nested var 'length' of type i64 * * * * * * * * * * * * * * * * * * * * * * * * * * * frameType = %nest.startContainer = type { %nest.execute*, i64 } * * * * * * * * * * * * * * * * * * * * * * * * * * Parent frame is from execute * * * * * * * * * * * * * * * * * * * * * * * * * * Current function is execute * * * * * * * * * * * * * * * * * * * * * * * * * * Context is from execute * * * * * * * * * * * * * * * * * * * * * * * * * * Needed depth: 0 * * * * * * * * * * * * * * * * * * * * * * * * * * Context depth: 0 * * * * * * * * * * * * * * * * * * * * * * * * * * Calling sibling function or directly nested function * * * * * * * * * * * * * * * * * * * * * * * * * * result = %.frame = alloca %nest.execute, align 8 * * * * * * * * * * * * * * * * * * * * * * * * * * of type %nest.execute* * * * * * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * * * * * * * * * %86 = bitcast %nest.execute* %.frame to i8* * * * * * * * * * * * * * * * * * * * * * * * * * Function type: @safe void(ContainerElement type, ulong length) * * * * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: cast(ContainerElement)1 @ ContainerElement * * * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: cast(ContainerElement)1 @ ContainerElement * * * * * * * * * * * * * * * * * * * * * * * * * * * * Building type: ContainerElement * * * * * * * * * * * * * * * * * * * * * * * * * * * * value = i32 1 * * * * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: length @ ulong * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('length' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(4172) * * * * * * * * * * * * * * * * * * * * * * * PostExp::toElem: cur++ @ ulong * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: cur @ ulong * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('cur' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * * * * * * * * * * ContinueStatement::toIR(): msgpack-d/src/msgpack.d(4173) * * * * * * * * * * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(4175) * * * * * * * * * * * * * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(4175) * * * * * * * * * * * * * * * * * * * SwitchStatement::toIR(): msgpack-d/src/msgpack.d(4176) * * * * * * * * * * * * * * * * * * * * has default * * * * * * * * * * * * * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(4176) * * * * * * * * * * * * * * * * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(4176) * * * * * * * * * * * * * * * * * * * * * * CaseStatement::toIR(): msgpack-d/src/msgpack.d(4177) * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 204 @ int * * * * * * * * * * * * * * * * * * * * * * * * value = i32 204 * * * * * * * * * * * * * * * * * * * * * * * CaseStatement::toIR(): msgpack-d/src/msgpack.d(4177) * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 205 @ int * * * * * * * * * * * * * * * * * * * * * * * * * value = i32 205 * * * * * * * * * * * * * * * * * * * * * * * * CaseStatement::toIR(): msgpack-d/src/msgpack.d(4177) * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 206 @ int * * * * * * * * * * * * * * * * * * * * * * * * * * value = i32 206 * * * * * * * * * * * * * * * * * * * * * * * * * CaseStatement::toIR(): msgpack-d/src/msgpack.d(4177) * * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 207 @ int * * * * * * * * * * * * * * * * * * * * * * * * * * * value = i32 207 * * * * * * * * * * * * * * * * * * * * * * * * * * CaseStatement::toIR(): msgpack-d/src/msgpack.d(4177) * * * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 208 @ int * * * * * * * * * * * * * * * * * * * * * * * * * * * * value = i32 208 * * * * * * * * * * * * * * * * * * * * * * * * * * * CaseStatement::toIR(): msgpack-d/src/msgpack.d(4177) * * * * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 209 @ int * * * * * * * * * * * * * * * * * * * * * * * * * * * * * value = i32 209 * * * * * * * * * * * * * * * * * * * * * * * * * * * * CaseStatement::toIR(): msgpack-d/src/msgpack.d(4177) * * * * * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 210 @ int * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * value = i32 210 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * CaseStatement::toIR(): msgpack-d/src/msgpack.d(4177) * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 211 @ int * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * value = i32 211 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * CaseStatement::toIR(): msgpack-d/src/msgpack.d(4177) * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 202 @ int * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * value = i32 202 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * CaseStatement::toIR(): msgpack-d/src/msgpack.d(4177) * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 203 @ int * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * value = i32 203 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(4177) * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(4177) * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(4180) * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * AssignExp::toElem: trail = cast(ulong)(1 << (cast(int)header & 3)) | (ulong)(ulong = ulong) * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: trail @ ulong * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('trail' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * CastExp::toElem: cast(ulong)(1 << (cast(int)header & 3)) @ ulong * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ShlExp::toElem: 1 << (cast(int)header & 3) @ int * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 1 @ int * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1 @ int * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * value = i32 1 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * AndExp::toElem: cast(int)header & 3 @ int * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * CastExp::toElem: cast(int)header @ int * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: header @ const(ubyte) * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('header' of type 'const(ubyte)') * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Casting from 'const(ubyte)' to 'int' * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 3 @ int * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 3 @ int * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * value = i32 3 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Casting from 'int' to 'ulong' * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * cast to: i64 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * lhs: %trail = alloca i64, align 8 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * rhs: %94 = sext i32 %93 to i64 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(4181) * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * AssignExp::toElem: state = cast(int)header & 31 | (State)(State = State) * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: state @ State * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('state' of type 'State') * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * AndExp::toElem: cast(int)header & 31 @ State * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * CastExp::toElem: cast(int)header @ int * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: header @ const(ubyte) * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('header' of type 'const(ubyte)') * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Casting from 'const(ubyte)' to 'int' * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 31 @ int * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 31 @ int * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * value = i32 31 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * lhs: %state = alloca i32, align 4 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * rhs: %97 = and i32 %96, 31 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * BreakStatement::toIR(): msgpack-d/src/msgpack.d(4182) * * * * * * * * * * * * * * * * * * * * * * CaseStatement::toIR(): msgpack-d/src/msgpack.d(4183) * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 212 @ int * * * * * * * * * * * * * * * * * * * * * * * * value = i32 212 * * * * * * * * * * * * * * * * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(4183) * * * * * * * * * * * * * * * * * * * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(4183) * * * * * * * * * * * * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(4184) * * * * * * * * * * * * * * * * * * * * * * * * * * AssignExp::toElem: trail = 10LU | (ulong)(ulong = ulong) * * * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: trail @ ulong * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('trail' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 10LU @ ulong * * * * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 10LU @ ulong * * * * * * * * * * * * * * * * * * * * * * * * * * * * * value = i64 10 * * * * * * * * * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * * * * * * * * * lhs: %trail = alloca i64, align 8 * * * * * * * * * * * * * * * * * * * * * * * * * * * * rhs: i64 10 * * * * * * * * * * * * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(4185) * * * * * * * * * * * * * * * * * * * * * * * * * * AssignExp::toElem: state = cast(State)33 | (State)(State = State) * * * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: state @ State * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('state' of type 'State') * * * * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: cast(State)33 @ State * * * * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: cast(State)33 @ State * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Building type: State * * * * * * * * * * * * * * * * * * * * * * * * * * * * * value = i32 33 * * * * * * * * * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * * * * * * * * * lhs: %state = alloca i32, align 4 * * * * * * * * * * * * * * * * * * * * * * * * * * * * rhs: i32 33 * * * * * * * * * * * * * * * * * * * * * * * * * BreakStatement::toIR(): msgpack-d/src/msgpack.d(4186) * * * * * * * * * * * * * * * * * * * * * * CaseStatement::toIR(): msgpack-d/src/msgpack.d(4187) * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 220 @ int * * * * * * * * * * * * * * * * * * * * * * * * value = i32 220 * * * * * * * * * * * * * * * * * * * * * * * CaseStatement::toIR(): msgpack-d/src/msgpack.d(4187) * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 221 @ int * * * * * * * * * * * * * * * * * * * * * * * * * value = i32 221 * * * * * * * * * * * * * * * * * * * * * * * * CaseStatement::toIR(): msgpack-d/src/msgpack.d(4187) * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 222 @ int * * * * * * * * * * * * * * * * * * * * * * * * * * value = i32 222 * * * * * * * * * * * * * * * * * * * * * * * * * CaseStatement::toIR(): msgpack-d/src/msgpack.d(4187) * * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 223 @ int * * * * * * * * * * * * * * * * * * * * * * * * * * * value = i32 223 * * * * * * * * * * * * * * * * * * * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(4187) * * * * * * * * * * * * * * * * * * * * * * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(4187) * * * * * * * * * * * * * * * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(4189) * * * * * * * * * * * * * * * * * * * * * * * * * * * * * AssignExp::toElem: trail = cast(ulong)(2 << (cast(int)header & 1)) | (ulong)(ulong = ulong) * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: trail @ ulong * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('trail' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * CastExp::toElem: cast(ulong)(2 << (cast(int)header & 1)) @ ulong * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ShlExp::toElem: 2 << (cast(int)header & 1) @ int * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 2 @ int * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 2 @ int * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * value = i32 2 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * AndExp::toElem: cast(int)header & 1 @ int * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * CastExp::toElem: cast(int)header @ int * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: header @ const(ubyte) * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('header' of type 'const(ubyte)') * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Casting from 'const(ubyte)' to 'int' * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 1 @ int * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1 @ int * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * value = i32 1 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Casting from 'int' to 'ulong' * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * cast to: i64 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * lhs: %trail = alloca i64, align 8 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * rhs: %102 = sext i32 %101 to i64 * * * * * * * * * * * * * * * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(4190) * * * * * * * * * * * * * * * * * * * * * * * * * * * * * AssignExp::toElem: state = cast(int)header & 31 | (State)(State = State) * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: state @ State * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('state' of type 'State') * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * AndExp::toElem: cast(int)header & 31 @ State * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * CastExp::toElem: cast(int)header @ int * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: header @ const(ubyte) * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('header' of type 'const(ubyte)') * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Casting from 'const(ubyte)' to 'int' * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 31 @ int * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 31 @ int * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * value = i32 31 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * lhs: %state = alloca i32, align 4 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * rhs: %105 = and i32 %104, 31 * * * * * * * * * * * * * * * * * * * * * * * * * * * * BreakStatement::toIR(): msgpack-d/src/msgpack.d(4191) * * * * * * * * * * * * * * * * * * * * * * CaseStatement::toIR(): msgpack-d/src/msgpack.d(4193) * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 217 @ int * * * * * * * * * * * * * * * * * * * * * * * * value = i32 217 * * * * * * * * * * * * * * * * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(4193) * * * * * * * * * * * * * * * * * * * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(4193) * * * * * * * * * * * * * * * * * * * * * * CaseStatement::toIR(): msgpack-d/src/msgpack.d(4194) * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 218 @ int * * * * * * * * * * * * * * * * * * * * * * * * value = i32 218 * * * * * * * * * * * * * * * * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(4194) * * * * * * * * * * * * * * * * * * * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(4194) * * * * * * * * * * * * * * * * * * * * * * CaseStatement::toIR(): msgpack-d/src/msgpack.d(4195) * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 219 @ int * * * * * * * * * * * * * * * * * * * * * * * * value = i32 219 * * * * * * * * * * * * * * * * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(4195) * * * * * * * * * * * * * * * * * * * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(4195) * * * * * * * * * * * * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(4196) * * * * * * * * * * * * * * * * * * * * * * * * * * AssignExp::toElem: trail = cast(ulong)(1 << (cast(int)header & 3) - 1) | (ulong)(ulong = ulong) * * * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: trail @ ulong * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('trail' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * * * * * CastExp::toElem: cast(ulong)(1 << (cast(int)header & 3) - 1) @ ulong * * * * * * * * * * * * * * * * * * * * * * * * * * * * ShlExp::toElem: 1 << (cast(int)header & 3) - 1 @ int * * * * * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 1 @ int * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1 @ int * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * value = i32 1 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * MinExp::toElem: (cast(int)header & 3) - 1 @ int * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * AndExp::toElem: cast(int)header & 3 @ int * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * CastExp::toElem: cast(int)header @ int * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: header @ const(ubyte) * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('header' of type 'const(ubyte)') * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Casting from 'const(ubyte)' to 'int' * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 3 @ int * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 3 @ int * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * value = i32 3 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 1 @ int * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1 @ int * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * value = i32 1 * * * * * * * * * * * * * * * * * * * * * * * * * * * * Casting from 'int' to 'ulong' * * * * * * * * * * * * * * * * * * * * * * * * * * * * * cast to: i64 * * * * * * * * * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * * * * * * * * * lhs: %trail = alloca i64, align 8 * * * * * * * * * * * * * * * * * * * * * * * * * * * * rhs: %111 = sext i32 %110 to i64 * * * * * * * * * * * * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(4197) * * * * * * * * * * * * * * * * * * * * * * * * * * AssignExp::toElem: state = cast(int)header & 31 | (State)(State = State) * * * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: state @ State * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('state' of type 'State') * * * * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * * * * * AndExp::toElem: cast(int)header & 31 @ State * * * * * * * * * * * * * * * * * * * * * * * * * * * * CastExp::toElem: cast(int)header @ int * * * * * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: header @ const(ubyte) * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('header' of type 'const(ubyte)') * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Casting from 'const(ubyte)' to 'int' * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 31 @ int * * * * * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 31 @ int * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * value = i32 31 * * * * * * * * * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * * * * * * * * * lhs: %state = alloca i32, align 4 * * * * * * * * * * * * * * * * * * * * * * * * * * * * rhs: %114 = and i32 %113, 31 * * * * * * * * * * * * * * * * * * * * * * * * * BreakStatement::toIR(): msgpack-d/src/msgpack.d(4198) * * * * * * * * * * * * * * * * * * * * * * CaseStatement::toIR(): msgpack-d/src/msgpack.d(4199) * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 196 @ int * * * * * * * * * * * * * * * * * * * * * * * * value = i32 196 * * * * * * * * * * * * * * * * * * * * * * * CaseStatement::toIR(): msgpack-d/src/msgpack.d(4199) * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 197 @ int * * * * * * * * * * * * * * * * * * * * * * * * * value = i32 197 * * * * * * * * * * * * * * * * * * * * * * * * CaseStatement::toIR(): msgpack-d/src/msgpack.d(4199) * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 198 @ int * * * * * * * * * * * * * * * * * * * * * * * * * * value = i32 198 * * * * * * * * * * * * * * * * * * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(4199) * * * * * * * * * * * * * * * * * * * * * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(4199) * * * * * * * * * * * * * * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(4200) * * * * * * * * * * * * * * * * * * * * * * * * * * * * AssignExp::toElem: trail = cast(ulong)(1 << (cast(int)header & 3)) | (ulong)(ulong = ulong) * * * * * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: trail @ ulong * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('trail' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * * * * * * * CastExp::toElem: cast(ulong)(1 << (cast(int)header & 3)) @ ulong * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ShlExp::toElem: 1 << (cast(int)header & 3) @ int * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 1 @ int * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1 @ int * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * value = i32 1 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * AndExp::toElem: cast(int)header & 3 @ int * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * CastExp::toElem: cast(int)header @ int * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: header @ const(ubyte) * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('header' of type 'const(ubyte)') * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Casting from 'const(ubyte)' to 'int' * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 3 @ int * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 3 @ int * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * value = i32 3 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Casting from 'int' to 'ulong' * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * cast to: i64 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * lhs: %trail = alloca i64, align 8 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * rhs: %119 = sext i32 %118 to i64 * * * * * * * * * * * * * * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(4201) * * * * * * * * * * * * * * * * * * * * * * * * * * * * AssignExp::toElem: state = cast(int)header & 31 | (State)(State = State) * * * * * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: state @ State * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('state' of type 'State') * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * * * * * * * AndExp::toElem: cast(int)header & 31 @ State * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * CastExp::toElem: cast(int)header @ int * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: header @ const(ubyte) * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('header' of type 'const(ubyte)') * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Casting from 'const(ubyte)' to 'int' * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 31 @ int * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 31 @ int * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * value = i32 31 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * lhs: %state = alloca i32, align 4 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * rhs: %122 = and i32 %121, 31 * * * * * * * * * * * * * * * * * * * * * * * * * * * BreakStatement::toIR(): msgpack-d/src/msgpack.d(4202) * * * * * * * * * * * * * * * * * * * * * * CaseStatement::toIR(): msgpack-d/src/msgpack.d(4203) * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 192 @ int * * * * * * * * * * * * * * * * * * * * * * * * value = i32 192 * * * * * * * * * * * * * * * * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(4203) * * * * * * * * * * * * * * * * * * * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(4203) * * * * * * * * * * * * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(4204) * * * * * * * * * * * * * * * * * * * * * * * * * * CallExp::toElem: callbackNil(obj) @ void * * * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: callbackNil @ @safe void(ref Value value) * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('callbackNil' of type '@safe void(ref Value value)') * * * * * * * * * * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(@safe void(ref Value value)) * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Final function type: void (%msgpack.Value*) * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoResolveFunction(msgpack.callbackNil): msgpack-d/src/msgpack.d(4556) * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoDeclareFunction(msgpack.callbackNil): msgpack-d/src/msgpack.d(4556) * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(@safe void(ref Value value)) * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * func = declare void @_D7msgpack11callbackNilFNfKS7msgpack5ValueZv(%msgpack.Value*) * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * * * * * * * * Building type: @safe void(ref Value value) * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(@safe void(ref Value value)) * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Final function type: void (%msgpack.Value*) * * * * * * * * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * * * * * * * * * * Function type: @safe void(ref Value value) * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: obj @ Value * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('obj' of type 'Value') * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * * * GotoStatement::toIR(): msgpack-d/src/msgpack.d(4205) * * * * * * * * * * * * * * * * * * * * * * CaseStatement::toIR(): msgpack-d/src/msgpack.d(4206) * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 195 @ int * * * * * * * * * * * * * * * * * * * * * * * * value = i32 195 * * * * * * * * * * * * * * * * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(4206) * * * * * * * * * * * * * * * * * * * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(4206) * * * * * * * * * * * * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(4207) * * * * * * * * * * * * * * * * * * * * * * * * * * CallExp::toElem: callbackBool(obj, true) @ void * * * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: callbackBool @ @trusted void(ref Value value, bool boolean) * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('callbackBool' of type '@trusted void(ref Value value, bool boolean)') * * * * * * * * * * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(@trusted void(ref Value value, bool boolean)) * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Final function type: void (i1, %msgpack.Value*) * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoResolveFunction(msgpack.callbackBool): msgpack-d/src/msgpack.d(4564) * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoDeclareFunction(msgpack.callbackBool): msgpack-d/src/msgpack.d(4564) * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(@trusted void(ref Value value, bool boolean)) * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * func = declare void @_D7msgpack12callbackBoolFNeKS7msgpack5ValuebZv(i1, %msgpack.Value*) * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * * * * * * * * Building type: @trusted void(ref Value value, bool boolean) * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(@trusted void(ref Value value, bool boolean)) * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Final function type: void (i1, %msgpack.Value*) * * * * * * * * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * * * * * * * * * * Function type: @trusted void(ref Value value, bool boolean) * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: obj @ Value * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('obj' of type 'Value') * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: true @ bool * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: true @ bool * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * value = i1 true * * * * * * * * * * * * * * * * * * * * * * * * * GotoStatement::toIR(): msgpack-d/src/msgpack.d(4208) * * * * * * * * * * * * * * * * * * * * * * CaseStatement::toIR(): msgpack-d/src/msgpack.d(4209) * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 194 @ int * * * * * * * * * * * * * * * * * * * * * * * * value = i32 194 * * * * * * * * * * * * * * * * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(4209) * * * * * * * * * * * * * * * * * * * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(4209) * * * * * * * * * * * * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(4210) * * * * * * * * * * * * * * * * * * * * * * * * * * CallExp::toElem: callbackBool(obj, false) @ void * * * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: callbackBool @ @trusted void(ref Value value, bool boolean) * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('callbackBool' of type '@trusted void(ref Value value, bool boolean)') * * * * * * * * * * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * * * * * * * * * * Function type: @trusted void(ref Value value, bool boolean) * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: obj @ Value * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('obj' of type 'Value') * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: false @ bool * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: false @ bool * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * value = i1 false * * * * * * * * * * * * * * * * * * * * * * * * * GotoStatement::toIR(): msgpack-d/src/msgpack.d(4211) * * * * * * * * * * * * * * * * * * * * * * DefaultStatement::toIR(): msgpack-d/src/msgpack.d(4212) * * * * * * * * * * * * * * * * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(4212) * * * * * * * * * * * * * * * * * * * * * * * * ThrowStatement::toIR(): msgpack-d/src/msgpack.d(4213) * * * * * * * * * * * * * * * * * * * * * * * * * NewExp::toElem: new UnpackException("Unknown type") @ msgpack.UnpackException * * * * * * * * * * * * * * * * * * * * * * * * * * new class * * * * * * * * * * * * * * * * * * * * * * * * * * Calling constructor * * * * * * * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * * * * * * * * * * * %.newclass_gc = bitcast %object.Object* %.newclass_gc_alloc to %msgpack.UnpackException* * * * * * * * * * * * * * * * * * * * * * * * * * * * Function type: @trusted UnpackException(string message) * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * * * * * * StringExp::toElem: "Unknown type" @ string * * * * * * * * * * * * * * * * * * * * * * * * * * * * * type: [13 x i8] * * * * * * * * * * * * * * * * * * * * * * * * * * * * * init: [13 x i8] c"Unknown type\00" * * * * * * * * * * * * * * * * * * * * CastExp::toElem: cast(int)header @ int * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: header @ const(ubyte) * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('header' of type 'const(ubyte)') * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * Casting from 'const(ubyte)' to 'int' * * * * * * * * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(4216) * * * * * * * * * * * * * * * * * * * * PostExp::toElem: cur++ @ ulong * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: cur @ ulong * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('cur' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * * * * * * * GotoStatement::toIR(): msgpack-d/src/msgpack.d(4217) * * * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(4219) * * * * * * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(4219) * * * * * * * * * * * * IfStatement::toIR(): msgpack-d/src/msgpack.d(4221) * * * * * * * * * * * * * CmpExp::toElem: this.used_ - cur < trail @ bool * * * * * * * * * * * * * * MinExp::toElem: this.used_ - cur @ ulong * * * * * * * * * * * * * * * DotVarExp::toElem: this.used_ @ ulong * * * * * * * * * * * * * * * * ThisExp::toElem: this @ StreamingUnpacker * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.InternalBuffer!().used_: * * * * * * * * * * * * * * * * * Value: %31 = getelementptr %msgpack.StreamingUnpacker, %msgpack.StreamingUnpacker* %.this_arg, i32 0, i32 2 * * * * * * * * * * * * * * * VarExp::toElem: cur @ ulong * * * * * * * * * * * * * * * * DtoSymbolAddress ('cur' of type 'ulong') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * VarExp::toElem: trail @ ulong * * * * * * * * * * * * * * * DtoSymbolAddress ('trail' of type 'ulong') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * type 1: %34 = sub i64 %32, %33 * * * * * * * * * * * * * * type 2: %35 = load i64, i64* %trail * * * * * * * * * * * * * GotoStatement::toIR(): msgpack-d/src/msgpack.d(4222) * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(4224) * * * * * * * * * * * * * DeclarationExp::toElem: const const(ulong) base = cur; | T=void * * * * * * * * * * * * * * DtoDeclarationExp: base * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = const(ulong)) * * * * * * * * * * * * * * * * llvm value for decl: %base = alloca i64, align 8 * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * AssignExp::toElem: base = cur | (const(ulong))(const(ulong) = const(ulong)) * * * * * * * * * * * * * * * * * VarExp::toElem: base @ const(ulong) * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('base' of type 'const(ulong)') * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * VarExp::toElem: cur @ const(ulong) * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('cur' of type 'ulong') * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * lhs: %base = alloca i64, align 8 * * * * * * * * * * * * * * * * * * rhs: %139 = load i64, i64* %cur * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(4224) * * * * * * * * * * * * * AddAssignExp::toElem: cur += trail - 1LU @ ulong * * * * * * * * * * * * * * Caching l-value of cur += trail - 1LU => cur * * * * * * * * * * * * * * * VarExp::toElem: cur @ ulong * * * * * * * * * * * * * * * * DtoSymbolAddress ('cur' of type 'ulong') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * AddExp::toElem: cur + (trail - 1LU) @ ulong * * * * * * * * * * * * * * * VarExp::toElem: cur @ ulong * * * * * * * * * * * * * * * MinExp::toElem: trail - 1LU @ ulong * * * * * * * * * * * * * * * * VarExp::toElem: trail @ ulong * * * * * * * * * * * * * * * * * DtoSymbolAddress ('trail' of type 'ulong') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * lhs: %cur = alloca i64, align 8 * * * * * * * * * * * * * * * rhs: %143 = add i64 %142, %141 * * * * * * * * * * * * SwitchStatement::toIR(): msgpack-d/src/msgpack.d(4226) * * * * * * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(4226) * * * * * * * * * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(4226) * * * * * * * * * * * * * * * CaseStatement::toIR(): msgpack-d/src/msgpack.d(4227) * * * * * * * * * * * * * * * * IntegerExp::toConstElem: cast(State)10 @ State * * * * * * * * * * * * * * * * * Building type: State * * * * * * * * * * * * * * * * * value = i32 10 * * * * * * * * * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(4227) * * * * * * * * * * * * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(4227) * * * * * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(4228) * * * * * * * * * * * * * * * * * * * DeclarationExp::toElem: _f temp = _f; | T=void * * * * * * * * * * * * * * * * * * * * DtoDeclarationExp: temp * * * * * * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = _f) * * * * * * * * * * * * * * * * * * * * * * Building type: _f * * * * * * * * * * * * * * * * * * * * * * * Building struct type msgpack._f @ msgpack-d/src/msgpack.d(4917) * * * * * * * * * * * * * * * * * * * * * * * * adding default initializer for struct field f * * * * * * * * * * * * * * * * * * * * * * * * final struct type: %msgpack._f = type <{ float }> * * * * * * * * * * * * * * * * * * * * * * llvm value for decl: %temp = alloca %msgpack._f, align 4 * * * * * * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * * * * * * AssignExp::toElem: temp = _f | (_f)(_f = _f) * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: temp @ _f * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('temp' of type '_f') * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: _f @ _f * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('_f' of type '_f') * * * * * * * * * * * * * * * * * * * * * * * * * Sym: type=_f * * * * * * * * * * * * * * * * * * * * * * * * * Resolving struct type: _f (msgpack-d/src/msgpack.d(4917)) * * * * * * * * * * * * * * * * * * * * * * * * * Building type: _f* * * * * * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(4230) * * * * * * * * * * * * * * * * * * * AssignExp::toElem: temp.i = load32To(this.buffer_[base..base + trail]) | (uint)(uint = uint) * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: temp.i @ uint * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: temp @ _f * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('temp' of type '_f') * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * Indexing aggregate field msgpack._f.i: * * * * * * * * * * * * * * * * * * * * * * Value: %146 = bitcast float* %145 to i32* * * * * * * * * * * * * * * * * * * * * CallExp::toElem: load32To(this.buffer_[base..base + trail]) @ uint * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: load32To @ pure nothrow @nogc @trusted uint(ubyte[] buffer) * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('load32To' of type 'pure nothrow @nogc @trusted uint(ubyte[] buffer)') * * * * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted uint(ubyte[] buffer)) * * * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * * * * * Final function type: i32 ({ i64, i8* }) * * * * * * * * * * * * * * * * * * * * * * * DtoResolveFunction(msgpack.load32To!uint.load32To): msgpack-d/src/msgpack.d(5184) * * * * * * * * * * * * * * * * * * * * * * * * DtoDeclareFunction(msgpack.load32To!uint.load32To): msgpack-d/src/msgpack.d(5184) * * * * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted uint(ubyte[] buffer)) * * * * * * * * * * * * * * * * * * * * * * * * * func = declare i32 @_D7msgpack15__T8load32ToTkZ8load32ToFNaNbNiNeAhZk({ i64, i8* }) * * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * * Building type: pure nothrow @nogc @trusted uint(ubyte[] buffer) * * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted uint(ubyte[] buffer)) * * * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * * * * * Final function type: i32 ({ i64, i8* }) * * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @trusted uint(ubyte[] buffer) * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * SliceExp::toElem: this.buffer_[base..base + trail] @ ubyte[] * * * * * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: this.buffer_ @ ubyte[] * * * * * * * * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ StreamingUnpacker * * * * * * * * * * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.InternalBuffer!().buffer_: * * * * * * * * * * * * * * * * * * * * * * * * * * Value: %147 = getelementptr %msgpack.StreamingUnpacker, %msgpack.StreamingUnpacker* %.this_arg, i32 0, i32 1 * * * * * * * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: base @ ulong * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('base' of type 'const(ulong)') * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * * AddExp::toElem: base + trail @ ulong * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: base @ ulong * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('base' of type 'const(ulong)') * * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: trail @ ulong * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('trail' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * * lhs: %146 = bitcast float* %145 to i32* * * * * * * * * * * * * * * * * * * * * * rhs: %156 = call i32 @_D7msgpack15__T8load32ToTkZ8load32ToFNaNbNiNeAhZk({ i64, i8* } %155) * * * * * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(4231) * * * * * * * * * * * * * * * * * * * CallExp::toElem: callbackFloat(obj, cast(real)temp.f) @ void * * * * * * * * * * * * * * * * * * * * VarExp::toElem: callbackFloat @ @trusted void(ref Value value, real number) * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('callbackFloat' of type '@trusted void(ref Value value, real number)') * * * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(@trusted void(ref Value value, real number)) * * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * * * * Final function type: void (x86_fp80, %msgpack.Value*) * * * * * * * * * * * * * * * * * * * * * * DtoResolveFunction(msgpack.callbackFloat): msgpack-d/src/msgpack.d(4519) * * * * * * * * * * * * * * * * * * * * * * * DtoDeclareFunction(msgpack.callbackFloat): msgpack-d/src/msgpack.d(4519) * * * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(@trusted void(ref Value value, real number)) * * * * * * * * * * * * * * * * * * * * * * * * func = declare void @_D7msgpack13callbackFloatFNeKS7msgpack5ValueeZv(x86_fp80, %msgpack.Value*) * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * Building type: @trusted void(ref Value value, real number) * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(@trusted void(ref Value value, real number)) * * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * * * * Final function type: void (x86_fp80, %msgpack.Value*) * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * * * Function type: @trusted void(ref Value value, real number) * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: obj @ Value * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('obj' of type 'Value') * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * CastExp::toElem: cast(real)temp.f @ real * * * * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: temp.f @ float * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: temp @ _f * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('temp' of type '_f') * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * * Indexing aggregate field msgpack._f.f: * * * * * * * * * * * * * * * * * * * * * * * * * Value: %157 = getelementptr %msgpack._f, %msgpack._f* %temp, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * * * * * Casting from 'float' to 'real' * * * * * * * * * * * * * * * * * * GotoStatement::toIR(): msgpack-d/src/msgpack.d(4232) * * * * * * * * * * * * * * * CaseStatement::toIR(): msgpack-d/src/msgpack.d(4233) * * * * * * * * * * * * * * * * IntegerExp::toConstElem: cast(State)11 @ State * * * * * * * * * * * * * * * * * Building type: State * * * * * * * * * * * * * * * * * value = i32 11 * * * * * * * * * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(4233) * * * * * * * * * * * * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(4233) * * * * * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(4234) * * * * * * * * * * * * * * * * * * * DeclarationExp::toElem: _d temp = _d; | T=void * * * * * * * * * * * * * * * * * * * * DtoDeclarationExp: temp * * * * * * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = _d) * * * * * * * * * * * * * * * * * * * * * * Building type: _d * * * * * * * * * * * * * * * * * * * * * * * Building struct type msgpack._d @ msgpack-d/src/msgpack.d(4927) * * * * * * * * * * * * * * * * * * * * * * * * adding default initializer for struct field f * * * * * * * * * * * * * * * * * * * * * * * * final struct type: %msgpack._d = type <{ double }> * * * * * * * * * * * * * * * * * * * * * * llvm value for decl: %temp94 = alloca %msgpack._d, align 8 * * * * * * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * * * * * * AssignExp::toElem: temp = _d | (_d)(_d = _d) * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: temp @ _d * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('temp' of type '_d') * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: _d @ _d * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('_d' of type '_d') * * * * * * * * * * * * * * * * * * * * * * * * * Sym: type=_d * * * * * * * * * * * * * * * * * * * * * * * * * Resolving struct type: _d (msgpack-d/src/msgpack.d(4927)) * * * * * * * * * * * * * * * * * * * * * * * * * Building type: _d* * * * * * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(4236) * * * * * * * * * * * * * * * * * * * AssignExp::toElem: temp.i = load64To(this.buffer_[base..base + trail]) | (ulong)(ulong = ulong) * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: temp.i @ ulong * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: temp @ _d * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('temp' of type '_d') * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * Indexing aggregate field msgpack._d.i: * * * * * * * * * * * * * * * * * * * * * * Value: %162 = bitcast double* %161 to i64* * * * * * * * * * * * * * * * * * * * * CallExp::toElem: load64To(this.buffer_[base..base + trail]) @ ulong * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: load64To @ pure nothrow @nogc @trusted ulong(ubyte[] buffer) * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('load64To' of type 'pure nothrow @nogc @trusted ulong(ubyte[] buffer)') * * * * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted ulong(ubyte[] buffer)) * * * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * * * * * Final function type: i64 ({ i64, i8* }) * * * * * * * * * * * * * * * * * * * * * * * DtoResolveFunction(msgpack.load64To!ulong.load64To): msgpack-d/src/msgpack.d(5191) * * * * * * * * * * * * * * * * * * * * * * * * DtoDeclareFunction(msgpack.load64To!ulong.load64To): msgpack-d/src/msgpack.d(5191) * * * * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted ulong(ubyte[] buffer)) * * * * * * * * * * * * * * * * * * * * * * * * * func = declare i64 @_D7msgpack15__T8load64ToTmZ8load64ToFNaNbNiNeAhZm({ i64, i8* }) * * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * * Building type: pure nothrow @nogc @trusted ulong(ubyte[] buffer) * * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted ulong(ubyte[] buffer)) * * * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * * * * * Final function type: i64 ({ i64, i8* }) * * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @trusted ulong(ubyte[] buffer) * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * SliceExp::toElem: this.buffer_[base..base + trail] @ ubyte[] * * * * * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: this.buffer_ @ ubyte[] * * * * * * * * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ StreamingUnpacker * * * * * * * * * * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.InternalBuffer!().buffer_: * * * * * * * * * * * * * * * * * * * * * * * * * * Value: %163 = getelementptr %msgpack.StreamingUnpacker, %msgpack.StreamingUnpacker* %.this_arg, i32 0, i32 1 * * * * * * * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: base @ ulong * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('base' of type 'const(ulong)') * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * * AddExp::toElem: base + trail @ ulong * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: base @ ulong * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('base' of type 'const(ulong)') * * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: trail @ ulong * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('trail' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * * lhs: %162 = bitcast double* %161 to i64* * * * * * * * * * * * * * * * * * * * * * rhs: %172 = call i64 @_D7msgpack15__T8load64ToTmZ8load64ToFNaNbNiNeAhZm({ i64, i8* } %171) * * * * * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(4237) * * * * * * * * * * * * * * * * * * * CallExp::toElem: callbackFloat(obj, cast(real)temp.f) @ void * * * * * * * * * * * * * * * * * * * * VarExp::toElem: callbackFloat @ @trusted void(ref Value value, real number) * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('callbackFloat' of type '@trusted void(ref Value value, real number)') * * * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * * * Function type: @trusted void(ref Value value, real number) * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: obj @ Value * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('obj' of type 'Value') * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * CastExp::toElem: cast(real)temp.f @ real * * * * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: temp.f @ double * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: temp @ _d * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('temp' of type '_d') * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * * Indexing aggregate field msgpack._d.f: * * * * * * * * * * * * * * * * * * * * * * * * * Value: %173 = getelementptr %msgpack._d, %msgpack._d* %temp94, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * * * * * Casting from 'double' to 'real' * * * * * * * * * * * * * * * * * * GotoStatement::toIR(): msgpack-d/src/msgpack.d(4238) * * * * * * * * * * * * * * * CaseStatement::toIR(): msgpack-d/src/msgpack.d(4239) * * * * * * * * * * * * * * * * IntegerExp::toConstElem: cast(State)33 @ State * * * * * * * * * * * * * * * * * Building type: State * * * * * * * * * * * * * * * * * value = i32 33 * * * * * * * * * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(4239) * * * * * * * * * * * * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(4239) * * * * * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(4240) * * * * * * * * * * * * * * * * * * * DeclarationExp::toElem: const const(ulong) expb = base + 8LU; | T=void * * * * * * * * * * * * * * * * * * * * DtoDeclarationExp: expb * * * * * * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = const(ulong)) * * * * * * * * * * * * * * * * * * * * * * llvm value for decl: %expb = alloca i64, align 8 * * * * * * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * * * * * * AssignExp::toElem: expb = base + 8LU | (const(ulong))(const(ulong) = const(ulong)) * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: expb @ const(ulong) * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('expb' of type 'const(ulong)') * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * AddExp::toElem: base + 8LU @ const(ulong) * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: base @ ulong * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('base' of type 'const(ulong)') * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 8LU @ ulong * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 8LU @ ulong * * * * * * * * * * * * * * * * * * * * * * * * * * value = i64 8 * * * * * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * * * * * lhs: %expb = alloca i64, align 8 * * * * * * * * * * * * * * * * * * * * * * * * rhs: %177 = add i64 %176, 8 * * * * * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(4258) * * * * * * * * * * * * * * * * * * * DeclarationExp::toElem: _r temp = _r; | T=void * * * * * * * * * * * * * * * * * * * * DtoDeclarationExp: temp * * * * * * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = _r) * * * * * * * * * * * * * * * * * * * * * * Building type: _r * * * * * * * * * * * * * * * * * * * * * * * Building struct type msgpack._r @ msgpack-d/src/msgpack.d(4940) * * * * * * * * * * * * * * * * * * * * * * * * adding default initializer for struct field f * * * * * * * * * * * * * * * * * * * * * * * * final struct type: %msgpack._r = type <{ x86_fp80 }> * * * * * * * * * * * * * * * * * * * * * * llvm value for decl: %temp100 = alloca %msgpack._r, align 16 * * * * * * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * * * * * * AssignExp::toElem: temp = _r | (_r)(_r = _r) * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: temp @ _r * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('temp' of type '_r') * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: _r @ _r * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('_r' of type '_r') * * * * * * * * * * * * * * * * * * * * * * * * * Sym: type=_r * * * * * * * * * * * * * * * * * * * * * * * * * Resolving struct type: _r (msgpack-d/src/msgpack.d(4940)) * * * * * * * * * * * * * * * * * * * * * * * * * Building type: _r* * * * * * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(4260) * * * * * * * * * * * * * * * * * * * AssignExp::toElem: temp.fraction = load64To(this.buffer_[base..expb]) | (ulong)(ulong = ulong) * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: temp.fraction @ ulong * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: temp @ _r * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('temp' of type '_r') * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * Indexing aggregate field msgpack._r.fraction: * * * * * * * * * * * * * * * * * * * * * * Value: %180 = bitcast x86_fp80* %179 to i64* * * * * * * * * * * * * * * * * * * * * CallExp::toElem: load64To(this.buffer_[base..expb]) @ ulong * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: load64To @ pure nothrow @nogc @trusted ulong(ubyte[] buffer) * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('load64To' of type 'pure nothrow @nogc @trusted ulong(ubyte[] buffer)') * * * * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @trusted ulong(ubyte[] buffer) * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * SliceExp::toElem: this.buffer_[base..expb] @ ubyte[] * * * * * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: this.buffer_ @ ubyte[] * * * * * * * * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ StreamingUnpacker * * * * * * * * * * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.InternalBuffer!().buffer_: * * * * * * * * * * * * * * * * * * * * * * * * * * Value: %181 = getelementptr %msgpack.StreamingUnpacker, %msgpack.StreamingUnpacker* %.this_arg, i32 0, i32 1 * * * * * * * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: base @ ulong * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('base' of type 'const(ulong)') * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: expb @ ulong * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('expb' of type 'const(ulong)') * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * * lhs: %180 = bitcast x86_fp80* %179 to i64* * * * * * * * * * * * * * * * * * * * * * rhs: %188 = call i64 @_D7msgpack15__T8load64ToTmZ8load64ToFNaNbNiNeAhZm({ i64, i8* } %187) * * * * * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(4261) * * * * * * * * * * * * * * * * * * * AssignExp::toElem: temp.exponent = load16To(this.buffer_[expb..expb + 2LU]) | (ushort)(ushort = ushort) * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: temp.exponent @ ushort * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: temp @ _r * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('temp' of type '_r') * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * Indexing aggregate field msgpack._r.exponent: * * * * * * * * * * * * * * * * * * * * * * Value: %192 = bitcast i8* %191 to i16* * * * * * * * * * * * * * * * * * * * * CallExp::toElem: load16To(this.buffer_[expb..expb + 2LU]) @ ushort * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: load16To @ pure nothrow @nogc @trusted ushort(ubyte[] buffer) * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('load16To' of type 'pure nothrow @nogc @trusted ushort(ubyte[] buffer)') * * * * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted ushort(ubyte[] buffer)) * * * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * * * * * Final function type: i16 ({ i64, i8* }) * * * * * * * * * * * * * * * * * * * * * * * DtoResolveFunction(msgpack.load16To!ushort.load16To): msgpack-d/src/msgpack.d(5177) * * * * * * * * * * * * * * * * * * * * * * * * DtoDeclareFunction(msgpack.load16To!ushort.load16To): msgpack-d/src/msgpack.d(5177) * * * * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted ushort(ubyte[] buffer)) * * * * * * * * * * * * * * * * * * * * * * * * * func = declare i16 @_D7msgpack15__T8load16ToTtZ8load16ToFNaNbNiNeAhZt({ i64, i8* }) * * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * * Building type: pure nothrow @nogc @trusted ushort(ubyte[] buffer) * * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted ushort(ubyte[] buffer)) * * * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * * * * * Final function type: i16 ({ i64, i8* }) * * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @trusted ushort(ubyte[] buffer) * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * SliceExp::toElem: this.buffer_[expb..expb + 2LU] @ ubyte[] * * * * * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: this.buffer_ @ ubyte[] * * * * * * * * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ StreamingUnpacker * * * * * * * * * * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.InternalBuffer!().buffer_: * * * * * * * * * * * * * * * * * * * * * * * * * * Value: %193 = getelementptr %msgpack.StreamingUnpacker, %msgpack.StreamingUnpacker* %.this_arg, i32 0, i32 1 * * * * * * * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: expb @ ulong * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('expb' of type 'const(ulong)') * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * * AddExp::toElem: expb + 2LU @ ulong * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: expb @ ulong * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('expb' of type 'const(ulong)') * * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 2LU @ ulong * * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 2LU @ ulong * * * * * * * * * * * * * * * * * * * * * * * * * * * value = i64 2 * * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * * lhs: %192 = bitcast i8* %191 to i16* * * * * * * * * * * * * * * * * * * * * * rhs: %201 = call zeroext i16 @_D7msgpack15__T8load16ToTtZ8load16ToFNaNbNiNeAhZt({ i64, i8* } %200) * * * * * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(4263) * * * * * * * * * * * * * * * * * * * CallExp::toElem: callbackFloat(obj, temp.f) @ void * * * * * * * * * * * * * * * * * * * * VarExp::toElem: callbackFloat @ @trusted void(ref Value value, real number) * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('callbackFloat' of type '@trusted void(ref Value value, real number)') * * * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * * * Function type: @trusted void(ref Value value, real number) * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: obj @ Value * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('obj' of type 'Value') * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: temp.f @ real * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: temp @ _r * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('temp' of type '_r') * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * Indexing aggregate field msgpack._r.f: * * * * * * * * * * * * * * * * * * * * * * * * Value: %202 = getelementptr %msgpack._r, %msgpack._r* %temp100, i32 0, i32 0 * * * * * * * * * * * * * * * * * * GotoStatement::toIR(): msgpack-d/src/msgpack.d(4266) * * * * * * * * * * * * * * * CaseStatement::toIR(): msgpack-d/src/msgpack.d(4267) * * * * * * * * * * * * * * * * IntegerExp::toConstElem: cast(State)12 @ State * * * * * * * * * * * * * * * * * Building type: State * * * * * * * * * * * * * * * * * value = i32 12 * * * * * * * * * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(4267) * * * * * * * * * * * * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(4267) * * * * * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(4268) * * * * * * * * * * * * * * * * * * * CallExp::toElem: callbackUInt(obj, cast(ulong)this.buffer_[base]) @ void * * * * * * * * * * * * * * * * * * * * VarExp::toElem: callbackUInt @ @trusted void(ref Value value, ulong number) * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('callbackUInt' of type '@trusted void(ref Value value, ulong number)') * * * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * * * Function type: @trusted void(ref Value value, ulong number) * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: obj @ Value * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('obj' of type 'Value') * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * CastExp::toElem: cast(ulong)this.buffer_[base] @ ulong * * * * * * * * * * * * * * * * * * * * * * * IndexExp::toElem: this.buffer_[base] @ ubyte * * * * * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: this.buffer_ @ ubyte[] * * * * * * * * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ StreamingUnpacker * * * * * * * * * * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.InternalBuffer!().buffer_: * * * * * * * * * * * * * * * * * * * * * * * * * * Value: %204 = getelementptr %msgpack.StreamingUnpacker, %msgpack.StreamingUnpacker* %.this_arg, i32 0, i32 1 * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: base @ ulong * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('base' of type 'const(ulong)') * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * * * * * * Casting from 'ubyte' to 'ulong' * * * * * * * * * * * * * * * * * * * * * * * * cast to: i64 * * * * * * * * * * * * * * * * * * GotoStatement::toIR(): msgpack-d/src/msgpack.d(4269) * * * * * * * * * * * * * * * CaseStatement::toIR(): msgpack-d/src/msgpack.d(4270) * * * * * * * * * * * * * * * * IntegerExp::toConstElem: cast(State)13 @ State * * * * * * * * * * * * * * * * * Building type: State * * * * * * * * * * * * * * * * * value = i32 13 * * * * * * * * * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(4270) * * * * * * * * * * * * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(4270) * * * * * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(4271) * * * * * * * * * * * * * * * * * * * CallExp::toElem: callbackUInt(obj, load16To(this.buffer_[base..base + trail])) @ void * * * * * * * * * * * * * * * * * * * * VarExp::toElem: callbackUInt @ @trusted void(ref Value value, ulong number) * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('callbackUInt' of type '@trusted void(ref Value value, ulong number)') * * * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * * * Function type: @trusted void(ref Value value, ulong number) * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: obj @ Value * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('obj' of type 'Value') * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * CallExp::toElem: load16To(this.buffer_[base..base + trail]) @ ulong * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: load16To @ pure nothrow @nogc @trusted ulong(ubyte[] buffer) * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('load16To' of type 'pure nothrow @nogc @trusted ulong(ubyte[] buffer)') * * * * * * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @trusted ulong(ubyte[] buffer) * * * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * * * SliceExp::toElem: this.buffer_[base..base + trail] @ ubyte[] * * * * * * * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: this.buffer_ @ ubyte[] * * * * * * * * * * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ StreamingUnpacker * * * * * * * * * * * * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.InternalBuffer!().buffer_: * * * * * * * * * * * * * * * * * * * * * * * * * * * * Value: %210 = getelementptr %msgpack.StreamingUnpacker, %msgpack.StreamingUnpacker* %.this_arg, i32 0, i32 1 * * * * * * * * * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: base @ ulong * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('base' of type 'const(ulong)') * * * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * * * * AddExp::toElem: base + trail @ ulong * * * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: base @ ulong * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('base' of type 'const(ulong)') * * * * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: trail @ ulong * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('trail' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * GotoStatement::toIR(): msgpack-d/src/msgpack.d(4272) * * * * * * * * * * * * * * * CaseStatement::toIR(): msgpack-d/src/msgpack.d(4273) * * * * * * * * * * * * * * * * IntegerExp::toConstElem: cast(State)14 @ State * * * * * * * * * * * * * * * * * Building type: State * * * * * * * * * * * * * * * * * value = i32 14 * * * * * * * * * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(4273) * * * * * * * * * * * * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(4273) * * * * * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(4274) * * * * * * * * * * * * * * * * * * * CallExp::toElem: callbackUInt(obj, load32To(this.buffer_[base..base + trail])) @ void * * * * * * * * * * * * * * * * * * * * VarExp::toElem: callbackUInt @ @trusted void(ref Value value, ulong number) * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('callbackUInt' of type '@trusted void(ref Value value, ulong number)') * * * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * * * Function type: @trusted void(ref Value value, ulong number) * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: obj @ Value * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('obj' of type 'Value') * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * CallExp::toElem: load32To(this.buffer_[base..base + trail]) @ ulong * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: load32To @ pure nothrow @nogc @trusted ulong(ubyte[] buffer) * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('load32To' of type 'pure nothrow @nogc @trusted ulong(ubyte[] buffer)') * * * * * * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @trusted ulong(ubyte[] buffer) * * * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * * * SliceExp::toElem: this.buffer_[base..base + trail] @ ubyte[] * * * * * * * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: this.buffer_ @ ubyte[] * * * * * * * * * * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ StreamingUnpacker * * * * * * * * * * * * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.InternalBuffer!().buffer_: * * * * * * * * * * * * * * * * * * * * * * * * * * * * Value: %220 = getelementptr %msgpack.StreamingUnpacker, %msgpack.StreamingUnpacker* %.this_arg, i32 0, i32 1 * * * * * * * * * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: base @ ulong * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('base' of type 'const(ulong)') * * * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * * * * AddExp::toElem: base + trail @ ulong * * * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: base @ ulong * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('base' of type 'const(ulong)') * * * * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: trail @ ulong * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('trail' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * GotoStatement::toIR(): msgpack-d/src/msgpack.d(4275) * * * * * * * * * * * * * * * CaseStatement::toIR(): msgpack-d/src/msgpack.d(4276) * * * * * * * * * * * * * * * * IntegerExp::toConstElem: cast(State)15 @ State * * * * * * * * * * * * * * * * * Building type: State * * * * * * * * * * * * * * * * * value = i32 15 * * * * * * * * * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(4276) * * * * * * * * * * * * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(4276) * * * * * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(4277) * * * * * * * * * * * * * * * * * * * CallExp::toElem: callbackUInt(obj, load64To(this.buffer_[base..base + trail])) @ void * * * * * * * * * * * * * * * * * * * * VarExp::toElem: callbackUInt @ @trusted void(ref Value value, ulong number) * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('callbackUInt' of type '@trusted void(ref Value value, ulong number)') * * * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * * * Function type: @trusted void(ref Value value, ulong number) * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: obj @ Value * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('obj' of type 'Value') * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * CallExp::toElem: load64To(this.buffer_[base..base + trail]) @ ulong * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: load64To @ pure nothrow @nogc @trusted ulong(ubyte[] buffer) * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('load64To' of type 'pure nothrow @nogc @trusted ulong(ubyte[] buffer)') * * * * * * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @trusted ulong(ubyte[] buffer) * * * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * * * SliceExp::toElem: this.buffer_[base..base + trail] @ ubyte[] * * * * * * * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: this.buffer_ @ ubyte[] * * * * * * * * * * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ StreamingUnpacker * * * * * * * * * * * * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.InternalBuffer!().buffer_: * * * * * * * * * * * * * * * * * * * * * * * * * * * * Value: %230 = getelementptr %msgpack.StreamingUnpacker, %msgpack.StreamingUnpacker* %.this_arg, i32 0, i32 1 * * * * * * * * * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: base @ ulong * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('base' of type 'const(ulong)') * * * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * * * * AddExp::toElem: base + trail @ ulong * * * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: base @ ulong * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('base' of type 'const(ulong)') * * * * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: trail @ ulong * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('trail' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * GotoStatement::toIR(): msgpack-d/src/msgpack.d(4278) * * * * * * * * * * * * * * * CaseStatement::toIR(): msgpack-d/src/msgpack.d(4279) * * * * * * * * * * * * * * * * IntegerExp::toConstElem: cast(State)16 @ State * * * * * * * * * * * * * * * * * Building type: State * * * * * * * * * * * * * * * * * value = i32 16 * * * * * * * * * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(4279) * * * * * * * * * * * * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(4279) * * * * * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(4280) * * * * * * * * * * * * * * * * * * * CallExp::toElem: callbackInt(obj, cast(long)cast(byte)this.buffer_[base]) @ void * * * * * * * * * * * * * * * * * * * * VarExp::toElem: callbackInt @ @trusted void(ref Value value, long number) * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('callbackInt' of type '@trusted void(ref Value value, long number)') * * * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * * * Function type: @trusted void(ref Value value, long number) * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: obj @ Value * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('obj' of type 'Value') * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * CastExp::toElem: cast(long)cast(byte)this.buffer_[base] @ long * * * * * * * * * * * * * * * * * * * * * * * CastExp::toElem: cast(byte)this.buffer_[base] @ byte * * * * * * * * * * * * * * * * * * * * * * * * IndexExp::toElem: this.buffer_[base] @ ubyte * * * * * * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: this.buffer_ @ ubyte[] * * * * * * * * * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ StreamingUnpacker * * * * * * * * * * * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.InternalBuffer!().buffer_: * * * * * * * * * * * * * * * * * * * * * * * * * * * Value: %240 = getelementptr %msgpack.StreamingUnpacker, %msgpack.StreamingUnpacker* %.this_arg, i32 0, i32 1 * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: base @ ulong * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('base' of type 'const(ulong)') * * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * * * * * * * Casting from 'ubyte' to 'byte' * * * * * * * * * * * * * * * * * * * * * * * Casting from 'byte' to 'long' * * * * * * * * * * * * * * * * * * * * * * * * cast to: i64 * * * * * * * * * * * * * * * * * * GotoStatement::toIR(): msgpack-d/src/msgpack.d(4281) * * * * * * * * * * * * * * * CaseStatement::toIR(): msgpack-d/src/msgpack.d(4282) * * * * * * * * * * * * * * * * IntegerExp::toConstElem: cast(State)17 @ State * * * * * * * * * * * * * * * * * Building type: State * * * * * * * * * * * * * * * * * value = i32 17 * * * * * * * * * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(4282) * * * * * * * * * * * * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(4282) * * * * * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(4283) * * * * * * * * * * * * * * * * * * * CallExp::toElem: callbackInt(obj, load16To(this.buffer_[base..base + trail])) @ void * * * * * * * * * * * * * * * * * * * * VarExp::toElem: callbackInt @ @trusted void(ref Value value, long number) * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('callbackInt' of type '@trusted void(ref Value value, long number)') * * * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * * * Function type: @trusted void(ref Value value, long number) * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: obj @ Value * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('obj' of type 'Value') * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * CallExp::toElem: load16To(this.buffer_[base..base + trail]) @ long * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: load16To @ pure nothrow @nogc @trusted long(ubyte[] buffer) * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('load16To' of type 'pure nothrow @nogc @trusted long(ubyte[] buffer)') * * * * * * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted long(ubyte[] buffer)) * * * * * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * * * * * * * Final function type: i64 ({ i64, i8* }) * * * * * * * * * * * * * * * * * * * * * * * * * DtoResolveFunction(msgpack.load16To!long.load16To): msgpack-d/src/msgpack.d(5177) * * * * * * * * * * * * * * * * * * * * * * * * * * DtoDeclareFunction(msgpack.load16To!long.load16To): msgpack-d/src/msgpack.d(5177) * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted long(ubyte[] buffer)) * * * * * * * * * * * * * * * * * * * * * * * * * * * func = declare i64 @_D7msgpack15__T8load16ToTlZ8load16ToFNaNbNiNeAhZl({ i64, i8* }) * * * * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * * * * Building type: pure nothrow @nogc @trusted long(ubyte[] buffer) * * * * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted long(ubyte[] buffer)) * * * * * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * * * * * * * Final function type: i64 ({ i64, i8* }) * * * * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @trusted long(ubyte[] buffer) * * * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * * * SliceExp::toElem: this.buffer_[base..base + trail] @ ubyte[] * * * * * * * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: this.buffer_ @ ubyte[] * * * * * * * * * * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ StreamingUnpacker * * * * * * * * * * * * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.InternalBuffer!().buffer_: * * * * * * * * * * * * * * * * * * * * * * * * * * * * Value: %246 = getelementptr %msgpack.StreamingUnpacker, %msgpack.StreamingUnpacker* %.this_arg, i32 0, i32 1 * * * * * * * * * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: base @ ulong * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('base' of type 'const(ulong)') * * * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * * * * AddExp::toElem: base + trail @ ulong * * * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: base @ ulong * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('base' of type 'const(ulong)') * * * * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: trail @ ulong * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('trail' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * GotoStatement::toIR(): msgpack-d/src/msgpack.d(4284) * * * * * * * * * * * * * * * CaseStatement::toIR(): msgpack-d/src/msgpack.d(4285) * * * * * * * * * * * * * * * * IntegerExp::toConstElem: cast(State)18 @ State * * * * * * * * * * * * * * * * * Building type: State * * * * * * * * * * * * * * * * * value = i32 18 * * * * * * * * * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(4285) * * * * * * * * * * * * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(4285) * * * * * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(4286) * * * * * * * * * * * * * * * * * * * CallExp::toElem: callbackInt(obj, load32To(this.buffer_[base..base + trail])) @ void * * * * * * * * * * * * * * * * * * * * VarExp::toElem: callbackInt @ @trusted void(ref Value value, long number) * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('callbackInt' of type '@trusted void(ref Value value, long number)') * * * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * * * Function type: @trusted void(ref Value value, long number) * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: obj @ Value * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('obj' of type 'Value') * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * CallExp::toElem: load32To(this.buffer_[base..base + trail]) @ long * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: load32To @ pure nothrow @nogc @trusted long(ubyte[] buffer) * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('load32To' of type 'pure nothrow @nogc @trusted long(ubyte[] buffer)') * * * * * * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted long(ubyte[] buffer)) * * * * * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * * * * * * * Final function type: i64 ({ i64, i8* }) * * * * * * * * * * * * * * * * * * * * * * * * * DtoResolveFunction(msgpack.load32To!long.load32To): msgpack-d/src/msgpack.d(5184) * * * * * * * * * * * * * * * * * * * * * * * * * * DtoDeclareFunction(msgpack.load32To!long.load32To): msgpack-d/src/msgpack.d(5184) * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted long(ubyte[] buffer)) * * * * * * * * * * * * * * * * * * * * * * * * * * * func = declare i64 @_D7msgpack15__T8load32ToTlZ8load32ToFNaNbNiNeAhZl({ i64, i8* }) * * * * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * * * * Building type: pure nothrow @nogc @trusted long(ubyte[] buffer) * * * * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted long(ubyte[] buffer)) * * * * * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * * * * * * * Final function type: i64 ({ i64, i8* }) * * * * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @trusted long(ubyte[] buffer) * * * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * * * SliceExp::toElem: this.buffer_[base..base + trail] @ ubyte[] * * * * * * * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: this.buffer_ @ ubyte[] * * * * * * * * * * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ StreamingUnpacker * * * * * * * * * * * * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.InternalBuffer!().buffer_: * * * * * * * * * * * * * * * * * * * * * * * * * * * * Value: %256 = getelementptr %msgpack.StreamingUnpacker, %msgpack.StreamingUnpacker* %.this_arg, i32 0, i32 1 * * * * * * * * * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: base @ ulong * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('base' of type 'const(ulong)') * * * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * * * * AddExp::toElem: base + trail @ ulong * * * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: base @ ulong * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('base' of type 'const(ulong)') * * * * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: trail @ ulong * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('trail' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * GotoStatement::toIR(): msgpack-d/src/msgpack.d(4287) * * * * * * * * * * * * * * * CaseStatement::toIR(): msgpack-d/src/msgpack.d(4288) * * * * * * * * * * * * * * * * IntegerExp::toConstElem: cast(State)19 @ State * * * * * * * * * * * * * * * * * Building type: State * * * * * * * * * * * * * * * * * value = i32 19 * * * * * * * * * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(4288) * * * * * * * * * * * * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(4288) * * * * * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(4289) * * * * * * * * * * * * * * * * * * * CallExp::toElem: callbackInt(obj, load64To(this.buffer_[base..base + trail])) @ void * * * * * * * * * * * * * * * * * * * * VarExp::toElem: callbackInt @ @trusted void(ref Value value, long number) * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('callbackInt' of type '@trusted void(ref Value value, long number)') * * * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * * * Function type: @trusted void(ref Value value, long number) * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: obj @ Value * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('obj' of type 'Value') * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * CallExp::toElem: load64To(this.buffer_[base..base + trail]) @ long * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: load64To @ pure nothrow @nogc @trusted long(ubyte[] buffer) * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('load64To' of type 'pure nothrow @nogc @trusted long(ubyte[] buffer)') * * * * * * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted long(ubyte[] buffer)) * * * * * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * * * * * * * Final function type: i64 ({ i64, i8* }) * * * * * * * * * * * * * * * * * * * * * * * * * DtoResolveFunction(msgpack.load64To!long.load64To): msgpack-d/src/msgpack.d(5191) * * * * * * * * * * * * * * * * * * * * * * * * * * DtoDeclareFunction(msgpack.load64To!long.load64To): msgpack-d/src/msgpack.d(5191) * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted long(ubyte[] buffer)) * * * * * * * * * * * * * * * * * * * * * * * * * * * func = declare i64 @_D7msgpack15__T8load64ToTlZ8load64ToFNaNbNiNeAhZl({ i64, i8* }) * * * * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * * * * Building type: pure nothrow @nogc @trusted long(ubyte[] buffer) * * * * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted long(ubyte[] buffer)) * * * * * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * * * * * * * Final function type: i64 ({ i64, i8* }) * * * * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @trusted long(ubyte[] buffer) * * * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * * * SliceExp::toElem: this.buffer_[base..base + trail] @ ubyte[] * * * * * * * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: this.buffer_ @ ubyte[] * * * * * * * * * * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ StreamingUnpacker * * * * * * * * * * * * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.InternalBuffer!().buffer_: * * * * * * * * * * * * * * * * * * * * * * * * * * * * Value: %266 = getelementptr %msgpack.StreamingUnpacker, %msgpack.StreamingUnpacker* %.this_arg, i32 0, i32 1 * * * * * * * * * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: base @ ulong * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('base' of type 'const(ulong)') * * * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * * * * AddExp::toElem: base + trail @ ulong * * * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: base @ ulong * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('base' of type 'const(ulong)') * * * * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: trail @ ulong * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('trail' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * GotoStatement::toIR(): msgpack-d/src/msgpack.d(4290) * * * * * * * * * * * * * * * CaseStatement::toIR(): msgpack-d/src/msgpack.d(4291) * * * * * * * * * * * * * * * * IntegerExp::toConstElem: cast(State)32 @ State * * * * * * * * * * * * * * * * * Building type: State * * * * * * * * * * * * * * * * * value = i32 32 * * * * * * * * * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(4291) * * * * * * * * * * * * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(4291) * * * * * * * * * * * * * * * * * * LabelStatement::toIR(): msgpack-d/src/msgpack.d(4291) * * * * * * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(4292) * * * * * * * * * * * * * * * * * * * * AssignExp::toElem: this.hasRaw_ = true | (bool)(bool = bool) * * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: this.hasRaw_ @ bool * * * * * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ StreamingUnpacker * * * * * * * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.InternalBuffer!().hasRaw_: * * * * * * * * * * * * * * * * * * * * * * * Value: %276 = getelementptr %msgpack.StreamingUnpacker, %msgpack.StreamingUnpacker* %.this_arg, i32 0, i32 5 * * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: true @ bool * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: true @ bool * * * * * * * * * * * * * * * * * * * * * * * value = i1 true * * * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(4293) * * * * * * * * * * * * * * * * * * * CallExp::toElem: callbackRaw(obj, this.buffer_[base..base + trail]) @ void * * * * * * * * * * * * * * * * * * * * VarExp::toElem: callbackRaw @ @trusted void(ref Value value, ubyte[] raw) * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('callbackRaw' of type '@trusted void(ref Value value, ubyte[] raw)') * * * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(@trusted void(ref Value value, ubyte[] raw)) * * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * * * * Final function type: void ({ i64, i8* }, %msgpack.Value*) * * * * * * * * * * * * * * * * * * * * * * DtoResolveFunction(msgpack.callbackRaw): msgpack-d/src/msgpack.d(4528) * * * * * * * * * * * * * * * * * * * * * * * DtoDeclareFunction(msgpack.callbackRaw): msgpack-d/src/msgpack.d(4528) * * * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(@trusted void(ref Value value, ubyte[] raw)) * * * * * * * * * * * * * * * * * * * * * * * * func = declare void @_D7msgpack11callbackRawFNeKS7msgpack5ValueAhZv({ i64, i8* }, %msgpack.Value*) * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * Building type: @trusted void(ref Value value, ubyte[] raw) * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(@trusted void(ref Value value, ubyte[] raw)) * * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * * * * Final function type: void ({ i64, i8* }, %msgpack.Value*) * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * * * Function type: @trusted void(ref Value value, ubyte[] raw) * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: obj @ Value * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('obj' of type 'Value') * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * SliceExp::toElem: this.buffer_[base..base + trail] @ ubyte[] * * * * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: this.buffer_ @ ubyte[] * * * * * * * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ StreamingUnpacker * * * * * * * * * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.InternalBuffer!().buffer_: * * * * * * * * * * * * * * * * * * * * * * * * * Value: %277 = getelementptr %msgpack.StreamingUnpacker, %msgpack.StreamingUnpacker* %.this_arg, i32 0, i32 1 * * * * * * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: base @ ulong * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('base' of type 'const(ulong)') * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * AddExp::toElem: base + trail @ ulong * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: base @ ulong * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('base' of type 'const(ulong)') * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: trail @ ulong * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('trail' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * GotoStatement::toIR(): msgpack-d/src/msgpack.d(4294) * * * * * * * * * * * * * * * CaseStatement::toIR(): msgpack-d/src/msgpack.d(4295) * * * * * * * * * * * * * * * * IntegerExp::toConstElem: cast(State)25 @ State * * * * * * * * * * * * * * * * * Building type: State * * * * * * * * * * * * * * * * * value = i32 25 * * * * * * * * * * * * * * * * CaseStatement::toIR(): msgpack-d/src/msgpack.d(4295) * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: cast(State)4 @ State * * * * * * * * * * * * * * * * * * Building type: State * * * * * * * * * * * * * * * * * * value = i32 4 * * * * * * * * * * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(4295) * * * * * * * * * * * * * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(4295) * * * * * * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(4296) * * * * * * * * * * * * * * * * * * * * AssignExp::toElem: trail = cast(ulong)this.buffer_[base] | (ulong)(ulong = ulong) * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: trail @ ulong * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('trail' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * CastExp::toElem: cast(ulong)this.buffer_[base] @ ulong * * * * * * * * * * * * * * * * * * * * * * IndexExp::toElem: this.buffer_[base] @ ubyte * * * * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: this.buffer_ @ ubyte[] * * * * * * * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ StreamingUnpacker * * * * * * * * * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.InternalBuffer!().buffer_: * * * * * * * * * * * * * * * * * * * * * * * * * Value: %286 = getelementptr %msgpack.StreamingUnpacker, %msgpack.StreamingUnpacker* %.this_arg, i32 0, i32 1 * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: base @ ulong * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('base' of type 'const(ulong)') * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * * * * * Casting from 'ubyte' to 'ulong' * * * * * * * * * * * * * * * * * * * * * * * cast to: i64 * * * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * * * lhs: %trail = alloca i64, align 8 * * * * * * * * * * * * * * * * * * * * * * rhs: %291 = zext i8 %290 to i64 * * * * * * * * * * * * * * * * * * * IfStatement::toIR(): msgpack-d/src/msgpack.d(4297) * * * * * * * * * * * * * * * * * * * * EqualExp::toElem: trail == 0LU @ bool * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: trail @ ulong * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('trail' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * * * * * * * * * integral or pointer or interface * * * * * * * * * * * * * * * * * * * * * lv: %292 = load i64, i64* %trail * * * * * * * * * * * * * * * * * * * * * rv: i64 0 * * * * * * * * * * * * * * * * * * * * GotoStatement::toIR(): msgpack-d/src/msgpack.d(4298) * * * * * * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(4299) * * * * * * * * * * * * * * * * * * * * AssignExp::toElem: state = cast(State)32 | (State)(State = State) * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: state @ State * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('state' of type 'State') * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: cast(State)32 @ State * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: cast(State)32 @ State * * * * * * * * * * * * * * * * * * * * * * * Building type: State * * * * * * * * * * * * * * * * * * * * * * * value = i32 32 * * * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * * * lhs: %state = alloca i32, align 4 * * * * * * * * * * * * * * * * * * * * * * rhs: i32 32 * * * * * * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(4300) * * * * * * * * * * * * * * * * * * * * PostExp::toElem: cur++ @ ulong * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: cur @ ulong * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('cur' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * * * * * * * GotoStatement::toIR(): msgpack-d/src/msgpack.d(4301) * * * * * * * * * * * * * * * CaseStatement::toIR(): msgpack-d/src/msgpack.d(4302) * * * * * * * * * * * * * * * * IntegerExp::toConstElem: cast(State)26 @ State * * * * * * * * * * * * * * * * * Building type: State * * * * * * * * * * * * * * * * * value = i32 26 * * * * * * * * * * * * * * * * CaseStatement::toIR(): msgpack-d/src/msgpack.d(4302) * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: cast(State)5 @ State * * * * * * * * * * * * * * * * * * Building type: State * * * * * * * * * * * * * * * * * * value = i32 5 * * * * * * * * * * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(4302) * * * * * * * * * * * * * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(4302) * * * * * * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(4303) * * * * * * * * * * * * * * * * * * * * AssignExp::toElem: trail = load16To(this.buffer_[base..base + trail]) | (ulong)(ulong = ulong) * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: trail @ ulong * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('trail' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * CallExp::toElem: load16To(this.buffer_[base..base + trail]) @ ulong * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: load16To @ pure nothrow @nogc @trusted ulong(ubyte[] buffer) * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('load16To' of type 'pure nothrow @nogc @trusted ulong(ubyte[] buffer)') * * * * * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @trusted ulong(ubyte[] buffer) * * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * * SliceExp::toElem: this.buffer_[base..base + trail] @ ubyte[] * * * * * * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: this.buffer_ @ ubyte[] * * * * * * * * * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ StreamingUnpacker * * * * * * * * * * * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.InternalBuffer!().buffer_: * * * * * * * * * * * * * * * * * * * * * * * * * * * Value: %296 = getelementptr %msgpack.StreamingUnpacker, %msgpack.StreamingUnpacker* %.this_arg, i32 0, i32 1 * * * * * * * * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: base @ ulong * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('base' of type 'const(ulong)') * * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * * * AddExp::toElem: base + trail @ ulong * * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: base @ ulong * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('base' of type 'const(ulong)') * * * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: trail @ ulong * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('trail' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * * * lhs: %trail = alloca i64, align 8 * * * * * * * * * * * * * * * * * * * * * * rhs: %305 = call i64 @_D7msgpack15__T8load16ToTmZ8load16ToFNaNbNiNeAhZm({ i64, i8* } %304) * * * * * * * * * * * * * * * * * * * IfStatement::toIR(): msgpack-d/src/msgpack.d(4304) * * * * * * * * * * * * * * * * * * * * EqualExp::toElem: trail == 0LU @ bool * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: trail @ ulong * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('trail' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * * * * * * * * * integral or pointer or interface * * * * * * * * * * * * * * * * * * * * * lv: %306 = load i64, i64* %trail * * * * * * * * * * * * * * * * * * * * * rv: i64 0 * * * * * * * * * * * * * * * * * * * * GotoStatement::toIR(): msgpack-d/src/msgpack.d(4305) * * * * * * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(4306) * * * * * * * * * * * * * * * * * * * * AssignExp::toElem: state = cast(State)32 | (State)(State = State) * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: state @ State * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('state' of type 'State') * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: cast(State)32 @ State * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: cast(State)32 @ State * * * * * * * * * * * * * * * * * * * * * * * Building type: State * * * * * * * * * * * * * * * * * * * * * * * value = i32 32 * * * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * * * lhs: %state = alloca i32, align 4 * * * * * * * * * * * * * * * * * * * * * * rhs: i32 32 * * * * * * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(4307) * * * * * * * * * * * * * * * * * * * * PostExp::toElem: cur++ @ ulong * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: cur @ ulong * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('cur' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * * * * * * * GotoStatement::toIR(): msgpack-d/src/msgpack.d(4308) * * * * * * * * * * * * * * * CaseStatement::toIR(): msgpack-d/src/msgpack.d(4309) * * * * * * * * * * * * * * * * IntegerExp::toConstElem: cast(State)27 @ State * * * * * * * * * * * * * * * * * Building type: State * * * * * * * * * * * * * * * * * value = i32 27 * * * * * * * * * * * * * * * * CaseStatement::toIR(): msgpack-d/src/msgpack.d(4309) * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: cast(State)6 @ State * * * * * * * * * * * * * * * * * * Building type: State * * * * * * * * * * * * * * * * * * value = i32 6 * * * * * * * * * * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(4309) * * * * * * * * * * * * * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(4309) * * * * * * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(4310) * * * * * * * * * * * * * * * * * * * * AssignExp::toElem: trail = load32To(this.buffer_[base..base + trail]) | (ulong)(ulong = ulong) * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: trail @ ulong * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('trail' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * CallExp::toElem: load32To(this.buffer_[base..base + trail]) @ ulong * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: load32To @ pure nothrow @nogc @trusted ulong(ubyte[] buffer) * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('load32To' of type 'pure nothrow @nogc @trusted ulong(ubyte[] buffer)') * * * * * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @trusted ulong(ubyte[] buffer) * * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * * SliceExp::toElem: this.buffer_[base..base + trail] @ ubyte[] * * * * * * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: this.buffer_ @ ubyte[] * * * * * * * * * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ StreamingUnpacker * * * * * * * * * * * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.InternalBuffer!().buffer_: * * * * * * * * * * * * * * * * * * * * * * * * * * * Value: %310 = getelementptr %msgpack.StreamingUnpacker, %msgpack.StreamingUnpacker* %.this_arg, i32 0, i32 1 * * * * * * * * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: base @ ulong * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('base' of type 'const(ulong)') * * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * * * AddExp::toElem: base + trail @ ulong * * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: base @ ulong * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('base' of type 'const(ulong)') * * * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: trail @ ulong * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('trail' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * * * lhs: %trail = alloca i64, align 8 * * * * * * * * * * * * * * * * * * * * * * rhs: %319 = call i64 @_D7msgpack15__T8load32ToTmZ8load32ToFNaNbNiNeAhZm({ i64, i8* } %318) * * * * * * * * * * * * * * * * * * * IfStatement::toIR(): msgpack-d/src/msgpack.d(4311) * * * * * * * * * * * * * * * * * * * * EqualExp::toElem: trail == 0LU @ bool * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: trail @ ulong * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('trail' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * * * * * * * * * integral or pointer or interface * * * * * * * * * * * * * * * * * * * * * lv: %320 = load i64, i64* %trail * * * * * * * * * * * * * * * * * * * * * rv: i64 0 * * * * * * * * * * * * * * * * * * * * GotoStatement::toIR(): msgpack-d/src/msgpack.d(4312) * * * * * * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(4313) * * * * * * * * * * * * * * * * * * * * AssignExp::toElem: state = cast(State)32 | (State)(State = State) * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: state @ State * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('state' of type 'State') * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: cast(State)32 @ State * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: cast(State)32 @ State * * * * * * * * * * * * * * * * * * * * * * * Building type: State * * * * * * * * * * * * * * * * * * * * * * * value = i32 32 * * * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * * * lhs: %state = alloca i32, align 4 * * * * * * * * * * * * * * * * * * * * * * rhs: i32 32 * * * * * * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(4314) * * * * * * * * * * * * * * * * * * * * PostExp::toElem: cur++ @ ulong * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: cur @ ulong * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('cur' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * * * * * * * GotoStatement::toIR(): msgpack-d/src/msgpack.d(4315) * * * * * * * * * * * * * * * CaseStatement::toIR(): msgpack-d/src/msgpack.d(4316) * * * * * * * * * * * * * * * * IntegerExp::toConstElem: cast(State)28 @ State * * * * * * * * * * * * * * * * * Building type: State * * * * * * * * * * * * * * * * * value = i32 28 * * * * * * * * * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(4316) * * * * * * * * * * * * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(4316) * * * * * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(4317) * * * * * * * * * * * * * * * * * * * DeclarationExp::toElem: ulong length = load16To(this.buffer_[base..base + trail]); | T=void * * * * * * * * * * * * * * * * * * * * DtoDeclarationExp: length * * * * * * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * * * * * * * * * * * * * * llvm value for decl: %length174 = alloca i64, align 8 * * * * * * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * * * * * * AssignExp::toElem: length = load16To(this.buffer_[base..base + trail]) | (ulong)(ulong = ulong) * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: length @ ulong * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('length' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * CallExp::toElem: load16To(this.buffer_[base..base + trail]) @ ulong * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: load16To @ pure nothrow @nogc @trusted ulong(ubyte[] buffer) * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('load16To' of type 'pure nothrow @nogc @trusted ulong(ubyte[] buffer)') * * * * * * * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @trusted ulong(ubyte[] buffer) * * * * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * * * * SliceExp::toElem: this.buffer_[base..base + trail] @ ubyte[] * * * * * * * * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: this.buffer_ @ ubyte[] * * * * * * * * * * * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ StreamingUnpacker * * * * * * * * * * * * * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.InternalBuffer!().buffer_: * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Value: %324 = getelementptr %msgpack.StreamingUnpacker, %msgpack.StreamingUnpacker* %.this_arg, i32 0, i32 1 * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: base @ ulong * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('base' of type 'const(ulong)') * * * * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * * * * * AddExp::toElem: base + trail @ ulong * * * * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: base @ ulong * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('base' of type 'const(ulong)') * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: trail @ ulong * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('trail' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * * * * * lhs: %length174 = alloca i64, align 8 * * * * * * * * * * * * * * * * * * * * * * * * rhs: %333 = call i64 @_D7msgpack15__T8load16ToTmZ8load16ToFNaNbNiNeAhZm({ i64, i8* } %332) * * * * * * * * * * * * * * * * * * IfStatement::toIR(): msgpack-d/src/msgpack.d(4318) * * * * * * * * * * * * * * * * * * * EqualExp::toElem: length == 0LU @ bool * * * * * * * * * * * * * * * * * * * * VarExp::toElem: length @ ulong * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('length' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * * * * * * * * integral or pointer or interface * * * * * * * * * * * * * * * * * * * * lv: %334 = load i64, i64* %length174 * * * * * * * * * * * * * * * * * * * * rv: i64 0 * * * * * * * * * * * * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(4318) * * * * * * * * * * * * * * * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(4318) * * * * * * * * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(4319) * * * * * * * * * * * * * * * * * * * * * * CallExp::toElem: callbackArray(obj, 0LU) @ void * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: callbackArray @ @trusted void(ref Value value, ulong length) * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('callbackArray' of type '@trusted void(ref Value value, ulong length)') * * * * * * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * * * * * * Function type: @trusted void(ref Value value, ulong length) * * * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: obj @ Value * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('obj' of type 'Value') * * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * * * * * * * * * GotoStatement::toIR(): msgpack-d/src/msgpack.d(4320) * * * * * * * * * * * * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(4321) * * * * * * * * * * * * * * * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(4321) * * * * * * * * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(4322) * * * * * * * * * * * * * * * * * * * * * * CallExp::toElem: startContainer(cast(ContainerElement)0, length) @ void * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: startContainer @ @safe void(ContainerElement type, ulong length) * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('startContainer' of type '@safe void(ContainerElement type, ulong length)') * * * * * * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * * * * DtoNestedContext for msgpack.StreamingUnpacker.execute.startContainer!"Array".startContainer * * * * * * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.StreamingUnpacker.execute.startContainer!"Array".startContainer * * * * * * * * * * * * * * * * * * * * * * * * * Parent frame is from execute * * * * * * * * * * * * * * * * * * * * * * * * * Current function is execute * * * * * * * * * * * * * * * * * * * * * * * * * Context is from execute * * * * * * * * * * * * * * * * * * * * * * * * * Needed depth: 0 * * * * * * * * * * * * * * * * * * * * * * * * * Context depth: 0 * * * * * * * * * * * * * * * * * * * * * * * * * Calling sibling function or directly nested function * * * * * * * * * * * * * * * * * * * * * * * * * result = %.frame = alloca %nest.execute, align 8 * * * * * * * * * * * * * * * * * * * * * * * * * of type %nest.execute* * * * * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * * * * * * * * %336 = bitcast %nest.execute* %.frame to i8* * * * * * * * * * * * * * * * * * * * * * * * * Function type: @safe void(ContainerElement type, ulong length) * * * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: cast(ContainerElement)0 @ ContainerElement * * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: cast(ContainerElement)0 @ ContainerElement * * * * * * * * * * * * * * * * * * * * * * * * * * * Building type: ContainerElement * * * * * * * * * * * * * * * * * * * * * * * * * * * value = i32 0 * * * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: length @ ulong * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('length' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(4323) * * * * * * * * * * * * * * * * * * * * * * AssignExp::toElem: state = cast(State)0 | (State)(State = State) * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: state @ State * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('state' of type 'State') * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: cast(State)0 @ State * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: cast(State)0 @ State * * * * * * * * * * * * * * * * * * * * * * * * * Building type: State * * * * * * * * * * * * * * * * * * * * * * * * * value = i32 0 * * * * * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * * * * * lhs: %state = alloca i32, align 4 * * * * * * * * * * * * * * * * * * * * * * * * rhs: i32 0 * * * * * * * * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(4324) * * * * * * * * * * * * * * * * * * * * * * PostExp::toElem: cur++ @ ulong * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: cur @ ulong * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('cur' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * * * * * * * * * ContinueStatement::toIR(): msgpack-d/src/msgpack.d(4325) * * * * * * * * * * * * * * * CaseStatement::toIR(): msgpack-d/src/msgpack.d(4327) * * * * * * * * * * * * * * * * IntegerExp::toConstElem: cast(State)29 @ State * * * * * * * * * * * * * * * * * Building type: State * * * * * * * * * * * * * * * * * value = i32 29 * * * * * * * * * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(4327) * * * * * * * * * * * * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(4327) * * * * * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(4328) * * * * * * * * * * * * * * * * * * * DeclarationExp::toElem: ulong length = load32To(this.buffer_[base..base + trail]); | T=void * * * * * * * * * * * * * * * * * * * * DtoDeclarationExp: length * * * * * * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * * * * * * * * * * * * * * llvm value for decl: %length184 = alloca i64, align 8 * * * * * * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * * * * * * AssignExp::toElem: length = load32To(this.buffer_[base..base + trail]) | (ulong)(ulong = ulong) * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: length @ ulong * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('length' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * CallExp::toElem: load32To(this.buffer_[base..base + trail]) @ ulong * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: load32To @ pure nothrow @nogc @trusted ulong(ubyte[] buffer) * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('load32To' of type 'pure nothrow @nogc @trusted ulong(ubyte[] buffer)') * * * * * * * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @trusted ulong(ubyte[] buffer) * * * * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * * * * SliceExp::toElem: this.buffer_[base..base + trail] @ ubyte[] * * * * * * * * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: this.buffer_ @ ubyte[] * * * * * * * * * * * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ StreamingUnpacker * * * * * * * * * * * * * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.InternalBuffer!().buffer_: * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Value: %340 = getelementptr %msgpack.StreamingUnpacker, %msgpack.StreamingUnpacker* %.this_arg, i32 0, i32 1 * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: base @ ulong * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('base' of type 'const(ulong)') * * * * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * * * * * AddExp::toElem: base + trail @ ulong * * * * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: base @ ulong * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('base' of type 'const(ulong)') * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: trail @ ulong * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('trail' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * * * * * lhs: %length184 = alloca i64, align 8 * * * * * * * * * * * * * * * * * * * * * * * * rhs: %349 = call i64 @_D7msgpack15__T8load32ToTmZ8load32ToFNaNbNiNeAhZm({ i64, i8* } %348) * * * * * * * * * * * * * * * * * * IfStatement::toIR(): msgpack-d/src/msgpack.d(4329) * * * * * * * * * * * * * * * * * * * EqualExp::toElem: length == 0LU @ bool * * * * * * * * * * * * * * * * * * * * VarExp::toElem: length @ ulong * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('length' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * * * * * * * * integral or pointer or interface * * * * * * * * * * * * * * * * * * * * lv: %350 = load i64, i64* %length184 * * * * * * * * * * * * * * * * * * * * rv: i64 0 * * * * * * * * * * * * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(4329) * * * * * * * * * * * * * * * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(4329) * * * * * * * * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(4330) * * * * * * * * * * * * * * * * * * * * * * CallExp::toElem: callbackArray(obj, 0LU) @ void * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: callbackArray @ @trusted void(ref Value value, ulong length) * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('callbackArray' of type '@trusted void(ref Value value, ulong length)') * * * * * * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * * * * * * Function type: @trusted void(ref Value value, ulong length) * * * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: obj @ Value * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('obj' of type 'Value') * * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * * * * * * * * * GotoStatement::toIR(): msgpack-d/src/msgpack.d(4331) * * * * * * * * * * * * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(4332) * * * * * * * * * * * * * * * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(4332) * * * * * * * * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(4333) * * * * * * * * * * * * * * * * * * * * * * CallExp::toElem: startContainer(cast(ContainerElement)0, length) @ void * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: startContainer @ @safe void(ContainerElement type, ulong length) * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('startContainer' of type '@safe void(ContainerElement type, ulong length)') * * * * * * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * * * * DtoNestedContext for msgpack.StreamingUnpacker.execute.startContainer!"Array".startContainer * * * * * * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.StreamingUnpacker.execute.startContainer!"Array".startContainer * * * * * * * * * * * * * * * * * * * * * * * * * Parent frame is from execute * * * * * * * * * * * * * * * * * * * * * * * * * Current function is execute * * * * * * * * * * * * * * * * * * * * * * * * * Context is from execute * * * * * * * * * * * * * * * * * * * * * * * * * Needed depth: 0 * * * * * * * * * * * * * * * * * * * * * * * * * Context depth: 0 * * * * * * * * * * * * * * * * * * * * * * * * * Calling sibling function or directly nested function * * * * * * * * * * * * * * * * * * * * * * * * * result = %.frame = alloca %nest.execute, align 8 * * * * * * * * * * * * * * * * * * * * * * * * * of type %nest.execute* * * * * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * * * * * * * * %352 = bitcast %nest.execute* %.frame to i8* * * * * * * * * * * * * * * * * * * * * * * * * Function type: @safe void(ContainerElement type, ulong length) * * * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: cast(ContainerElement)0 @ ContainerElement * * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: cast(ContainerElement)0 @ ContainerElement * * * * * * * * * * * * * * * * * * * * * * * * * * * Building type: ContainerElement * * * * * * * * * * * * * * * * * * * * * * * * * * * value = i32 0 * * * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: length @ ulong * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('length' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(4334) * * * * * * * * * * * * * * * * * * * * * * AssignExp::toElem: state = cast(State)0 | (State)(State = State) * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: state @ State * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('state' of type 'State') * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: cast(State)0 @ State * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: cast(State)0 @ State * * * * * * * * * * * * * * * * * * * * * * * * * Building type: State * * * * * * * * * * * * * * * * * * * * * * * * * value = i32 0 * * * * * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * * * * * lhs: %state = alloca i32, align 4 * * * * * * * * * * * * * * * * * * * * * * * * rhs: i32 0 * * * * * * * * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(4335) * * * * * * * * * * * * * * * * * * * * * * PostExp::toElem: cur++ @ ulong * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: cur @ ulong * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('cur' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * * * * * * * * * ContinueStatement::toIR(): msgpack-d/src/msgpack.d(4336) * * * * * * * * * * * * * * * CaseStatement::toIR(): msgpack-d/src/msgpack.d(4338) * * * * * * * * * * * * * * * * IntegerExp::toConstElem: cast(State)30 @ State * * * * * * * * * * * * * * * * * Building type: State * * * * * * * * * * * * * * * * * value = i32 30 * * * * * * * * * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(4338) * * * * * * * * * * * * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(4338) * * * * * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(4339) * * * * * * * * * * * * * * * * * * * DeclarationExp::toElem: ulong length = load16To(this.buffer_[base..base + trail]); | T=void * * * * * * * * * * * * * * * * * * * * DtoDeclarationExp: length * * * * * * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * * * * * * * * * * * * * * llvm value for decl: %length194 = alloca i64, align 8 * * * * * * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * * * * * * AssignExp::toElem: length = load16To(this.buffer_[base..base + trail]) | (ulong)(ulong = ulong) * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: length @ ulong * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('length' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * CallExp::toElem: load16To(this.buffer_[base..base + trail]) @ ulong * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: load16To @ pure nothrow @nogc @trusted ulong(ubyte[] buffer) * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('load16To' of type 'pure nothrow @nogc @trusted ulong(ubyte[] buffer)') * * * * * * * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @trusted ulong(ubyte[] buffer) * * * * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * * * * SliceExp::toElem: this.buffer_[base..base + trail] @ ubyte[] * * * * * * * * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: this.buffer_ @ ubyte[] * * * * * * * * * * * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ StreamingUnpacker * * * * * * * * * * * * * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.InternalBuffer!().buffer_: * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Value: %356 = getelementptr %msgpack.StreamingUnpacker, %msgpack.StreamingUnpacker* %.this_arg, i32 0, i32 1 * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: base @ ulong * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('base' of type 'const(ulong)') * * * * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * * * * * AddExp::toElem: base + trail @ ulong * * * * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: base @ ulong * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('base' of type 'const(ulong)') * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: trail @ ulong * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('trail' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * * * * * lhs: %length194 = alloca i64, align 8 * * * * * * * * * * * * * * * * * * * * * * * * rhs: %365 = call i64 @_D7msgpack15__T8load16ToTmZ8load16ToFNaNbNiNeAhZm({ i64, i8* } %364) * * * * * * * * * * * * * * * * * * IfStatement::toIR(): msgpack-d/src/msgpack.d(4340) * * * * * * * * * * * * * * * * * * * EqualExp::toElem: length == 0LU @ bool * * * * * * * * * * * * * * * * * * * * VarExp::toElem: length @ ulong * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('length' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * * * * * * * * integral or pointer or interface * * * * * * * * * * * * * * * * * * * * lv: %366 = load i64, i64* %length194 * * * * * * * * * * * * * * * * * * * * rv: i64 0 * * * * * * * * * * * * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(4340) * * * * * * * * * * * * * * * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(4340) * * * * * * * * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(4341) * * * * * * * * * * * * * * * * * * * * * * CallExp::toElem: callbackMap(obj, delegate ulong() => 0LU) @ void * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: callbackMap @ @trusted void(ref Value value, lazy ulong length) * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('callbackMap' of type '@trusted void(ref Value value, lazy ulong length)') * * * * * * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * * * * * * Function type: @trusted void(ref Value value, lazy ulong length) * * * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: obj @ Value * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('obj' of type 'Value') * * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * * * FuncExp::toElem: __dgliteral2 @ ulong delegate() pure nothrow @nogc @safe * * * * * * * * * * * * * * * * * * * * * * * * * * nested * * * * * * * * * * * * * * * * * * * * * * * * * * kind = delegate * * * * * * * * * * * * * * * * * * * * * * * * * * DtoDefineFunction(msgpack.StreamingUnpacker.execute.__dgliteral2): msgpack-d/src/msgpack.d(4341) * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe ulong()) * * * * * * * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * * * * * * * * * Final function type: i64 (i8*) * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoResolveFunction(msgpack.StreamingUnpacker.execute.__dgliteral2): msgpack-d/src/msgpack.d(4341) * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoDeclareFunction(msgpack.StreamingUnpacker.execute.__dgliteral2): msgpack-d/src/msgpack.d(4341) * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe ulong()) * * * * * * * * * * * * * * * * * * * * * * * * * * * * * func = declare i64 @_D7msgpack17StreamingUnpacker7executeMFNeZ12__dgliteral2MFNaNbNiNfZm(i8*) * * * * * * * * * * * * * * * * * * * * * * * * * * * Doing function body for: __dgliteral2 * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContext for __dgliteral2 * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.StreamingUnpacker.execute.__dgliteral2 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.StreamingUnpacker.execute * * * * * * * * * * * * * * * * * * * * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * * * * * * * * * * * * * * * * * * * * ReturnStatement::toIR(): msgpack-d/src/msgpack.d(4341) * * * * * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * return value is '0x120dec80' * * * * * * * * * * * * * * * * * * * * * * * * * * Building type: ulong delegate() pure nothrow @nogc @safe * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe ulong()) * * * * * * * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * * * * * * * * * Final function type: i64 (i8*) * * * * * * * * * * * * * * * * * * * * * GotoStatement::toIR(): msgpack-d/src/msgpack.d(4342) * * * * * * * * * * * * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(4343) * * * * * * * * * * * * * * * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(4343) * * * * * * * * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(4344) * * * * * * * * * * * * * * * * * * * * * * CallExp::toElem: startContainer(cast(ContainerElement)1, length) @ void * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: startContainer @ @safe void(ContainerElement type, ulong length) * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('startContainer' of type '@safe void(ContainerElement type, ulong length)') * * * * * * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * * * * DtoNestedContext for msgpack.StreamingUnpacker.execute.startContainer!"Map".startContainer * * * * * * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.StreamingUnpacker.execute.startContainer!"Map".startContainer * * * * * * * * * * * * * * * * * * * * * * * * * Parent frame is from execute * * * * * * * * * * * * * * * * * * * * * * * * * Current function is execute * * * * * * * * * * * * * * * * * * * * * * * * * Context is from execute * * * * * * * * * * * * * * * * * * * * * * * * * Needed depth: 0 * * * * * * * * * * * * * * * * * * * * * * * * * Context depth: 0 * * * * * * * * * * * * * * * * * * * * * * * * * Calling sibling function or directly nested function * * * * * * * * * * * * * * * * * * * * * * * * * result = %.frame = alloca %nest.execute, align 8 * * * * * * * * * * * * * * * * * * * * * * * * * of type %nest.execute* * * * * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * * * * * * * * %370 = bitcast %nest.execute* %.frame to i8* * * * * * * * * * * * * * * * * * * * * * * * * Function type: @safe void(ContainerElement type, ulong length) * * * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: cast(ContainerElement)1 @ ContainerElement * * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: cast(ContainerElement)1 @ ContainerElement * * * * * * * * * * * * * * * * * * * * * * * * * * * Building type: ContainerElement * * * * * * * * * * * * * * * * * * * * * * * * * * * value = i32 1 * * * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: length @ ulong * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('length' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(4345) * * * * * * * * * * * * * * * * * * * * * * AssignExp::toElem: state = cast(State)0 | (State)(State = State) * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: state @ State * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('state' of type 'State') * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: cast(State)0 @ State * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: cast(State)0 @ State * * * * * * * * * * * * * * * * * * * * * * * * * Building type: State * * * * * * * * * * * * * * * * * * * * * * * * * value = i32 0 * * * * * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * * * * * lhs: %state = alloca i32, align 4 * * * * * * * * * * * * * * * * * * * * * * * * rhs: i32 0 * * * * * * * * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(4346) * * * * * * * * * * * * * * * * * * * * * * PostExp::toElem: cur++ @ ulong * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: cur @ ulong * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('cur' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * * * * * * * * * ContinueStatement::toIR(): msgpack-d/src/msgpack.d(4347) * * * * * * * * * * * * * * * CaseStatement::toIR(): msgpack-d/src/msgpack.d(4349) * * * * * * * * * * * * * * * * IntegerExp::toConstElem: cast(State)31 @ State * * * * * * * * * * * * * * * * * Building type: State * * * * * * * * * * * * * * * * * value = i32 31 * * * * * * * * * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(4349) * * * * * * * * * * * * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(4349) * * * * * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(4350) * * * * * * * * * * * * * * * * * * * DeclarationExp::toElem: ulong length = load32To(this.buffer_[base..base + trail]); | T=void * * * * * * * * * * * * * * * * * * * * DtoDeclarationExp: length * * * * * * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * * * * * * * * * * * * * * llvm value for decl: %length205 = alloca i64, align 8 * * * * * * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * * * * * * AssignExp::toElem: length = load32To(this.buffer_[base..base + trail]) | (ulong)(ulong = ulong) * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: length @ ulong * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('length' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * CallExp::toElem: load32To(this.buffer_[base..base + trail]) @ ulong * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: load32To @ pure nothrow @nogc @trusted ulong(ubyte[] buffer) * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('load32To' of type 'pure nothrow @nogc @trusted ulong(ubyte[] buffer)') * * * * * * * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @trusted ulong(ubyte[] buffer) * * * * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * * * * SliceExp::toElem: this.buffer_[base..base + trail] @ ubyte[] * * * * * * * * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: this.buffer_ @ ubyte[] * * * * * * * * * * * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ StreamingUnpacker * * * * * * * * * * * * * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.InternalBuffer!().buffer_: * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Value: %374 = getelementptr %msgpack.StreamingUnpacker, %msgpack.StreamingUnpacker* %.this_arg, i32 0, i32 1 * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: base @ ulong * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('base' of type 'const(ulong)') * * * * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * * * * * AddExp::toElem: base + trail @ ulong * * * * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: base @ ulong * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('base' of type 'const(ulong)') * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: trail @ ulong * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('trail' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * * * * * lhs: %length205 = alloca i64, align 8 * * * * * * * * * * * * * * * * * * * * * * * * rhs: %383 = call i64 @_D7msgpack15__T8load32ToTmZ8load32ToFNaNbNiNeAhZm({ i64, i8* } %382) * * * * * * * * * * * * * * * * * * IfStatement::toIR(): msgpack-d/src/msgpack.d(4351) * * * * * * * * * * * * * * * * * * * EqualExp::toElem: length == 0LU @ bool * * * * * * * * * * * * * * * * * * * * VarExp::toElem: length @ ulong * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('length' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * * * * * * * * integral or pointer or interface * * * * * * * * * * * * * * * * * * * * lv: %384 = load i64, i64* %length205 * * * * * * * * * * * * * * * * * * * * rv: i64 0 * * * * * * * * * * * * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(4351) * * * * * * * * * * * * * * * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(4351) * * * * * * * * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(4352) * * * * * * * * * * * * * * * * * * * * * * CallExp::toElem: callbackMap(obj, delegate ulong() => 0LU) @ void * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: callbackMap @ @trusted void(ref Value value, lazy ulong length) * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('callbackMap' of type '@trusted void(ref Value value, lazy ulong length)') * * * * * * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * * * * * * Function type: @trusted void(ref Value value, lazy ulong length) * * * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: obj @ Value * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('obj' of type 'Value') * * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * * * FuncExp::toElem: __dgliteral3 @ ulong delegate() pure nothrow @nogc @safe * * * * * * * * * * * * * * * * * * * * * * * * * * nested * * * * * * * * * * * * * * * * * * * * * * * * * * kind = delegate * * * * * * * * * * * * * * * * * * * * * * * * * * DtoDefineFunction(msgpack.StreamingUnpacker.execute.__dgliteral3): msgpack-d/src/msgpack.d(4352) * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe ulong()) * * * * * * * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * * * * * * * * * Final function type: i64 (i8*) * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoResolveFunction(msgpack.StreamingUnpacker.execute.__dgliteral3): msgpack-d/src/msgpack.d(4352) * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoDeclareFunction(msgpack.StreamingUnpacker.execute.__dgliteral3): msgpack-d/src/msgpack.d(4352) * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe ulong()) * * * * * * * * * * * * * * * * * * * * * * * * * * * * * func = declare i64 @_D7msgpack17StreamingUnpacker7executeMFNeZ12__dgliteral3MFNaNbNiNfZm(i8*) * * * * * * * * * * * * * * * * * * * * * * * * * * * Doing function body for: __dgliteral3 * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContext for __dgliteral3 * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.StreamingUnpacker.execute.__dgliteral3 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.StreamingUnpacker.execute * * * * * * * * * * * * * * * * * * * * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * * * * * * * * * * * * * * * * * * * * ReturnStatement::toIR(): msgpack-d/src/msgpack.d(4352) * * * * * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * return value is '0x120dec80' * * * * * * * * * * * * * * * * * * * * * * * * * * Building type: ulong delegate() pure nothrow @nogc @safe * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe ulong()) * * * * * * * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * * * * * * * * * Final function type: i64 (i8*) * * * * * * * * * * * * * * * * * * * * * GotoStatement::toIR(): msgpack-d/src/msgpack.d(4353) * * * * * * * * * * * * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(4354) * * * * * * * * * * * * * * * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(4354) * * * * * * * * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(4355) * * * * * * * * * * * * * * * * * * * * * * CallExp::toElem: startContainer(cast(ContainerElement)1, length) @ void * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: startContainer @ @safe void(ContainerElement type, ulong length) * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('startContainer' of type '@safe void(ContainerElement type, ulong length)') * * * * * * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * * * * DtoNestedContext for msgpack.StreamingUnpacker.execute.startContainer!"Map".startContainer * * * * * * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.StreamingUnpacker.execute.startContainer!"Map".startContainer * * * * * * * * * * * * * * * * * * * * * * * * * Parent frame is from execute * * * * * * * * * * * * * * * * * * * * * * * * * Current function is execute * * * * * * * * * * * * * * * * * * * * * * * * * Context is from execute * * * * * * * * * * * * * * * * * * * * * * * * * Needed depth: 0 * * * * * * * * * * * * * * * * * * * * * * * * * Context depth: 0 * * * * * * * * * * * * * * * * * * * * * * * * * Calling sibling function or directly nested function * * * * * * * * * * * * * * * * * * * * * * * * * result = %.frame = alloca %nest.execute, align 8 * * * * * * * * * * * * * * * * * * * * * * * * * of type %nest.execute* * * * * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * * * * * * * * %388 = bitcast %nest.execute* %.frame to i8* * * * * * * * * * * * * * * * * * * * * * * * * Function type: @safe void(ContainerElement type, ulong length) * * * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: cast(ContainerElement)1 @ ContainerElement * * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: cast(ContainerElement)1 @ ContainerElement * * * * * * * * * * * * * * * * * * * * * * * * * * * Building type: ContainerElement * * * * * * * * * * * * * * * * * * * * * * * * * * * value = i32 1 * * * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: length @ ulong * * * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('length' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(4356) * * * * * * * * * * * * * * * * * * * * * * AssignExp::toElem: state = cast(State)0 | (State)(State = State) * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: state @ State * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('state' of type 'State') * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: cast(State)0 @ State * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: cast(State)0 @ State * * * * * * * * * * * * * * * * * * * * * * * * * Building type: State * * * * * * * * * * * * * * * * * * * * * * * * * value = i32 0 * * * * * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * * * * * lhs: %state = alloca i32, align 4 * * * * * * * * * * * * * * * * * * * * * * * * rhs: i32 0 * * * * * * * * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(4357) * * * * * * * * * * * * * * * * * * * * * * PostExp::toElem: cur++ @ ulong * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: cur @ ulong * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('cur' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * * * * * * * * * ContinueStatement::toIR(): msgpack-d/src/msgpack.d(4358) * * * * * * * * * * * * * * * CaseStatement::toIR(): msgpack-d/src/msgpack.d(4360) * * * * * * * * * * * * * * * * IntegerExp::toConstElem: cast(State)0 @ State * * * * * * * * * * * * * * * * * Building type: State * * * * * * * * * * * * * * * * * value = i32 0 * * * * * * * * * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(4360) * * * * * * * * * * * * * * * * * BreakStatement::toIR(): msgpack-d/src/msgpack.d(4361) * * * * * * * * * * * * * VarExp::toElem: state @ State * * * * * * * * * * * * * * DtoSymbolAddress ('state' of type 'State') * * * * * * * * * * * * * * * a normal variable * * * * * * * * LabelStatement::toIR(): msgpack-d/src/msgpack.d(4365) * * * * * * * * * IfStatement::toIR(): msgpack-d/src/msgpack.d(4366) * * * * * * * * * * EqualExp::toElem: top == 0LU @ bool * * * * * * * * * * * VarExp::toElem: top @ ulong * * * * * * * * * * * * DtoSymbolAddress ('top' of type 'ulong') * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * DtoNestedVariable for top @ msgpack-d/src/msgpack.d(4366) * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * integral or pointer or interface * * * * * * * * * * * lv: %393 = load i64, i64* %top * * * * * * * * * * * rv: i64 0 * * * * * * * * * * GotoStatement::toIR(): msgpack-d/src/msgpack.d(4367) * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(4369) * * * * * * * * * DeclarationExp::toElem: Container* container = &(*stack)[top - 1LU]; | T=void * * * * * * * * * * DtoDeclarationExp: container * * * * * * * * * * * VarDeclaration * * * * * * * * * * * DtoVarDeclaration(vdtype = Container*) * * * * * * * * * * * * Building type: Container* * * * * * * * * * * * * llvm value for decl: %container = alloca %msgpack.StreamingUnpacker.Context.Container*, align 8 * * * * * * * * * * * * expression initializer * * * * * * * * * * * * AssignExp::toElem: container = &(*stack)[top - 1LU] | (Container*)(Container* = Container*) * * * * * * * * * * * * * VarExp::toElem: container @ Container* * * * * * * * * * * * * * * DtoSymbolAddress ('container' of type 'Container*') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * AddrExp::toElem: &(*stack)[top - 1LU] @ Container* * * * * * * * * * * * * * * IndexExp::toElem: (*stack)[top - 1LU] @ Container * * * * * * * * * * * * * * * PtrExp::toElem: *stack @ Container[] * * * * * * * * * * * * * * * * VarExp::toElem: stack @ Container[]* * * * * * * * * * * * * * * * * * DtoSymbolAddress ('stack' of type 'Container[]*') * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * DtoNestedVariable for stack @ msgpack-d/src/msgpack.d(4369) * * * * * * * * * * * * * * * MinExp::toElem: top - 1LU @ ulong * * * * * * * * * * * * * * * * VarExp::toElem: top @ ulong * * * * * * * * * * * * * * * * * DtoSymbolAddress ('top' of type 'ulong') * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * DtoNestedVariable for top @ msgpack-d/src/msgpack.d(4369) * * * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * is nothing special * * * * * * * * * * * * * * lval: %399 = getelementptr %msgpack.StreamingUnpacker.Context.Container, %msgpack.StreamingUnpacker.Context.Container* %.ptr221, i64 %397 * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * lhs: %container = alloca %msgpack.StreamingUnpacker.Context.Container*, align 8 * * * * * * * * * * * * * * rhs: %399 = getelementptr %msgpack.StreamingUnpacker.Context.Container, %msgpack.StreamingUnpacker.Context.Container* %.ptr221, i64 %397 * * * * * * * * SwitchStatement::toIR(): msgpack-d/src/msgpack.d(4371) * * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(4371) * * * * * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(4371) * * * * * * * * * * * CaseStatement::toIR(): msgpack-d/src/msgpack.d(4372) * * * * * * * * * * * * IntegerExp::toConstElem: cast(ContainerElement)0 @ ContainerElement * * * * * * * * * * * * * Building type: ContainerElement * * * * * * * * * * * * * value = i32 0 * * * * * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(4372) * * * * * * * * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(4372) * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(4373) * * * * * * * * * * * * * * * CatAssignExp::toElem: (*container).value.via.array ~= obj @ Value[] * * * * * * * * * * * * * * * * DotVarExp::toElem: (*container).value.via.array @ Value[] * * * * * * * * * * * * * * * * * DotVarExp::toElem: (*container).value.via @ Via * * * * * * * * * * * * * * * * * * DotVarExp::toElem: (*container).value @ Value * * * * * * * * * * * * * * * * * * * PtrExp::toElem: *container @ Container * * * * * * * * * * * * * * * * * * * * VarExp::toElem: container @ Container* * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('container' of type 'Container*') * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.Context.Container.value: * * * * * * * * * * * * * * * * * * * * Value: %401 = getelementptr %msgpack.StreamingUnpacker.Context.Container, %msgpack.StreamingUnpacker.Context.Container* %400, i32 0, i32 2 * * * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.Value.via: * * * * * * * * * * * * * * * * * * * Value: %402 = getelementptr %msgpack.Value, %msgpack.Value* %401, i32 0, i32 2 * * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.Value.Via.array: * * * * * * * * * * * * * * * * * * Value: %404 = bitcast i8* %403 to { i64, %msgpack.Value* }* * * * * * * * * * * * * * * * * DtoCatAssignElement * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * VarExp::toElem: obj @ Value * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('obj' of type 'Value') * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * DtoTypeInfoOf(type = 'Value[]', base='1') * * * * * * * * * * * * * * * * * * Type::getTypeInfo(): Value[] * * * * * * * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(Value[])) * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * IfStatement::toIR(): msgpack-d/src/msgpack.d(4374) * * * * * * * * * * * * * * * EqualExp::toElem: ((*container).count -= 1LU) == 0LU @ bool * * * * * * * * * * * * * * * * MinAssignExp::toElem: (*container).count -= 1LU @ ulong * * * * * * * * * * * * * * * * * Caching l-value of (*container).count -= 1LU => (*container).count * * * * * * * * * * * * * * * * * * DotVarExp::toElem: (*container).count @ ulong * * * * * * * * * * * * * * * * * * * PtrExp::toElem: *container @ Container * * * * * * * * * * * * * * * * * * * * VarExp::toElem: container @ Container* * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('container' of type 'Container*') * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.Context.Container.count: * * * * * * * * * * * * * * * * * * * * Value: %416 = getelementptr %msgpack.StreamingUnpacker.Context.Container, %msgpack.StreamingUnpacker.Context.Container* %415, i32 0, i32 4 * * * * * * * * * * * * * * * * * MinExp::toElem: (*container).count - 1LU @ ulong * * * * * * * * * * * * * * * * * * DotVarExp::toElem: (*container).count @ ulong * * * * * * * * * * * * * * * * * * * using cached lvalue * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * lhs: %416 = getelementptr %msgpack.StreamingUnpacker.Context.Container, %msgpack.StreamingUnpacker.Context.Container* %415, i32 0, i32 4 * * * * * * * * * * * * * * * * * * rhs: %418 = sub i64 %417, 1 * * * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * * * * integral or pointer or interface * * * * * * * * * * * * * * * * lv: %418 = sub i64 %417, 1 * * * * * * * * * * * * * * * * rv: i64 0 * * * * * * * * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(4374) * * * * * * * * * * * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(4374) * * * * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(4375) * * * * * * * * * * * * * * * * * * AssignExp::toElem: obj = (*container).value | (Value)(Value = Value) * * * * * * * * * * * * * * * * * * * VarExp::toElem: obj @ Value * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('obj' of type 'Value') * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: (*container).value @ Value * * * * * * * * * * * * * * * * * * * * PtrExp::toElem: *container @ Container * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: container @ Container* * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('container' of type 'Container*') * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.Context.Container.value: * * * * * * * * * * * * * * * * * * * * * Value: %421 = getelementptr %msgpack.StreamingUnpacker.Context.Container, %msgpack.StreamingUnpacker.Context.Container* %420, i32 0, i32 2 * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(4376) * * * * * * * * * * * * * * * * * * PostExp::toElem: top-- @ ulong * * * * * * * * * * * * * * * * * * * VarExp::toElem: top @ ulong * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('top' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for top @ msgpack-d/src/msgpack.d(4376) * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * * * * * GotoStatement::toIR(): msgpack-d/src/msgpack.d(4377) * * * * * * * * * * * * * * BreakStatement::toIR(): msgpack-d/src/msgpack.d(4379) * * * * * * * * * * * CaseStatement::toIR(): msgpack-d/src/msgpack.d(4380) * * * * * * * * * * * * IntegerExp::toConstElem: cast(ContainerElement)1 @ ContainerElement * * * * * * * * * * * * * Building type: ContainerElement * * * * * * * * * * * * * value = i32 1 * * * * * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(4380) * * * * * * * * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(4380) * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(4381) * * * * * * * * * * * * * * * AssignExp::toElem: (*container).key = obj | (Value)(Value = Value) * * * * * * * * * * * * * * * * DotVarExp::toElem: (*container).key @ Value * * * * * * * * * * * * * * * * * PtrExp::toElem: *container @ Container * * * * * * * * * * * * * * * * * * VarExp::toElem: container @ Container* * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('container' of type 'Container*') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.Context.Container.key: * * * * * * * * * * * * * * * * * * Value: %427 = getelementptr %msgpack.StreamingUnpacker.Context.Container, %msgpack.StreamingUnpacker.Context.Container* %426, i32 0, i32 3 * * * * * * * * * * * * * * * * VarExp::toElem: obj @ Value * * * * * * * * * * * * * * * * * DtoSymbolAddress ('obj' of type 'Value') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(4382) * * * * * * * * * * * * * * * AssignExp::toElem: (*container).type = cast(ContainerElement)2 | (ContainerElement)(ContainerElement = ContainerElement) * * * * * * * * * * * * * * * * DotVarExp::toElem: (*container).type @ ContainerElement * * * * * * * * * * * * * * * * * PtrExp::toElem: *container @ Container * * * * * * * * * * * * * * * * * * VarExp::toElem: container @ Container* * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('container' of type 'Container*') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.Context.Container.type: * * * * * * * * * * * * * * * * * * Building type: ContainerElement * * * * * * * * * * * * * * * * * * Value: %431 = getelementptr %msgpack.StreamingUnpacker.Context.Container, %msgpack.StreamingUnpacker.Context.Container* %430, i32 0, i32 0 * * * * * * * * * * * * * * * * IntegerExp::toElem: cast(ContainerElement)2 @ ContainerElement * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: cast(ContainerElement)2 @ ContainerElement * * * * * * * * * * * * * * * * * * Building type: ContainerElement * * * * * * * * * * * * * * * * * * value = i32 2 * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * lhs: %431 = getelementptr %msgpack.StreamingUnpacker.Context.Container, %msgpack.StreamingUnpacker.Context.Container* %430, i32 0, i32 0 * * * * * * * * * * * * * * * * * rhs: i32 2 * * * * * * * * * * * * * * BreakStatement::toIR(): msgpack-d/src/msgpack.d(4383) * * * * * * * * * * * CaseStatement::toIR(): msgpack-d/src/msgpack.d(4384) * * * * * * * * * * * * IntegerExp::toConstElem: cast(ContainerElement)2 @ ContainerElement * * * * * * * * * * * * * Building type: ContainerElement * * * * * * * * * * * * * value = i32 2 * * * * * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(4384) * * * * * * * * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(4384) * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(4385) * * * * * * * * * * * * * * * CommaExp::toElem: ref Value __aaval3508 = obj; , (*container).value.via.map[(*container).key] = __aaval3508 @ Value * * * * * * * * * * * * * * * * DeclarationExp::toElem: ref Value __aaval3508 = obj; | T=void * * * * * * * * * * * * * * * * * DtoDeclarationExp: __aaval3508 * * * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = Value) * * * * * * * * * * * * * * * * * * * llvm value for decl: %__aaval3508 = alloca %msgpack.Value*, align 8 * * * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * * * AssignExp::toElem: __aaval3508 = obj | (Value)(Value = Value) * * * * * * * * * * * * * * * * * * * * performing ref variable initialization * * * * * * * * * * * * * * * * * * * * VarExp::toElem: __aaval3508 @ Value * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__aaval3508' of type 'Value') * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * VarExp::toElem: obj @ Value * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('obj' of type 'Value') * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * AssignExp::toElem: (*container).value.via.map[(*container).key] = __aaval3508 | (Value)(Value = Value) * * * * * * * * * * * * * * * * * IndexExp::toElem: (*container).value.via.map[(*container).key] @ Value * * * * * * * * * * * * * * * * * * DotVarExp::toElem: (*container).value.via.map @ Value[Value] * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: (*container).value.via @ Via * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: (*container).value @ Value * * * * * * * * * * * * * * * * * * * * * PtrExp::toElem: *container @ Container * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: container @ Container* * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('container' of type 'Container*') * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.Context.Container.value: * * * * * * * * * * * * * * * * * * * * * * Value: %433 = getelementptr %msgpack.StreamingUnpacker.Context.Container, %msgpack.StreamingUnpacker.Context.Container* %432, i32 0, i32 2 * * * * * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.Value.via: * * * * * * * * * * * * * * * * * * * * * Value: %434 = getelementptr %msgpack.Value, %msgpack.Value* %433, i32 0, i32 2 * * * * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.Value.Via.map: * * * * * * * * * * * * * * * * * * * * Building type: Value[Value] * * * * * * * * * * * * * * * * * * * * Value: %436 = bitcast i8* %435 to i8** * * * * * * * * * * * * * * * * * * DotVarExp::toElem: (*container).key @ Value * * * * * * * * * * * * * * * * * * * PtrExp::toElem: *container @ Container * * * * * * * * * * * * * * * * * * * * VarExp::toElem: container @ Container* * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('container' of type 'Container*') * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.Context.Container.key: * * * * * * * * * * * * * * * * * * * * Value: %438 = getelementptr %msgpack.StreamingUnpacker.Context.Container, %msgpack.StreamingUnpacker.Context.Container* %437, i32 0, i32 3 * * * * * * * * * * * * * * * * * * DtoTypeInfoOf(type = 'Value', base='0') * * * * * * * * * * * * * * * * * * * Type::getTypeInfo(): Value * * * * * * * * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(Value)) * * * * * * * * * * * * * * * * * VarExp::toElem: __aaval3508 @ Value * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__aaval3508' of type 'Value') * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * IfStatement::toIR(): msgpack-d/src/msgpack.d(4386) * * * * * * * * * * * * * * * EqualExp::toElem: ((*container).count -= 1LU) == 0LU @ bool * * * * * * * * * * * * * * * * MinAssignExp::toElem: (*container).count -= 1LU @ ulong * * * * * * * * * * * * * * * * * Caching l-value of (*container).count -= 1LU => (*container).count * * * * * * * * * * * * * * * * * * DotVarExp::toElem: (*container).count @ ulong * * * * * * * * * * * * * * * * * * * PtrExp::toElem: *container @ Container * * * * * * * * * * * * * * * * * * * * VarExp::toElem: container @ Container* * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('container' of type 'Container*') * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.Context.Container.count: * * * * * * * * * * * * * * * * * * * * Value: %445 = getelementptr %msgpack.StreamingUnpacker.Context.Container, %msgpack.StreamingUnpacker.Context.Container* %444, i32 0, i32 4 * * * * * * * * * * * * * * * * * MinExp::toElem: (*container).count - 1LU @ ulong * * * * * * * * * * * * * * * * * * DotVarExp::toElem: (*container).count @ ulong * * * * * * * * * * * * * * * * * * * using cached lvalue * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * lhs: %445 = getelementptr %msgpack.StreamingUnpacker.Context.Container, %msgpack.StreamingUnpacker.Context.Container* %444, i32 0, i32 4 * * * * * * * * * * * * * * * * * * rhs: %447 = sub i64 %446, 1 * * * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * * * * integral or pointer or interface * * * * * * * * * * * * * * * * lv: %447 = sub i64 %446, 1 * * * * * * * * * * * * * * * * rv: i64 0 * * * * * * * * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(4386) * * * * * * * * * * * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(4386) * * * * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(4387) * * * * * * * * * * * * * * * * * * AssignExp::toElem: obj = (*container).value | (Value)(Value = Value) * * * * * * * * * * * * * * * * * * * VarExp::toElem: obj @ Value * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('obj' of type 'Value') * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: (*container).value @ Value * * * * * * * * * * * * * * * * * * * * PtrExp::toElem: *container @ Container * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: container @ Container* * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('container' of type 'Container*') * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.Context.Container.value: * * * * * * * * * * * * * * * * * * * * * Value: %450 = getelementptr %msgpack.StreamingUnpacker.Context.Container, %msgpack.StreamingUnpacker.Context.Container* %449, i32 0, i32 2 * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(4388) * * * * * * * * * * * * * * * * * * PostExp::toElem: top-- @ ulong * * * * * * * * * * * * * * * * * * * VarExp::toElem: top @ ulong * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('top' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for top @ msgpack-d/src/msgpack.d(4388) * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * * * * * GotoStatement::toIR(): msgpack-d/src/msgpack.d(4389) * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(4391) * * * * * * * * * * * * * * * AssignExp::toElem: (*container).type = cast(ContainerElement)1 | (ContainerElement)(ContainerElement = ContainerElement) * * * * * * * * * * * * * * * * DotVarExp::toElem: (*container).type @ ContainerElement * * * * * * * * * * * * * * * * * PtrExp::toElem: *container @ Container * * * * * * * * * * * * * * * * * * VarExp::toElem: container @ Container* * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('container' of type 'Container*') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.Context.Container.type: * * * * * * * * * * * * * * * * * * Building type: ContainerElement * * * * * * * * * * * * * * * * * * Value: %456 = getelementptr %msgpack.StreamingUnpacker.Context.Container, %msgpack.StreamingUnpacker.Context.Container* %455, i32 0, i32 0 * * * * * * * * * * * * * * * * IntegerExp::toElem: cast(ContainerElement)1 @ ContainerElement * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: cast(ContainerElement)1 @ ContainerElement * * * * * * * * * * * * * * * * * * Building type: ContainerElement * * * * * * * * * * * * * * * * * * value = i32 1 * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * lhs: %456 = getelementptr %msgpack.StreamingUnpacker.Context.Container, %msgpack.StreamingUnpacker.Context.Container* %455, i32 0, i32 0 * * * * * * * * * * * * * * * * * rhs: i32 1 * * * * * * * * * DotVarExp::toElem: (*container).type @ ContainerElement * * * * * * * * * * PtrExp::toElem: *container @ Container * * * * * * * * * * * VarExp::toElem: container @ Container* * * * * * * * * * * * * DtoSymbolAddress ('container' of type 'Container*') * * * * * * * * * * * * * a normal variable * * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.Context.Container.type: * * * * * * * * * * * Building type: ContainerElement * * * * * * * * * * * Value: %401 = getelementptr %msgpack.StreamingUnpacker.Context.Container, %msgpack.StreamingUnpacker.Context.Container* %400, i32 0, i32 0 * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(4394) * * * * * * * * * AssignExp::toElem: state = cast(State)0 | (State)(State = State) * * * * * * * * * * VarExp::toElem: state @ State * * * * * * * * * * * DtoSymbolAddress ('state' of type 'State') * * * * * * * * * * * * a normal variable * * * * * * * * * * IntegerExp::toElem: cast(State)0 @ State * * * * * * * * * * * IntegerExp::toConstElem: cast(State)0 @ State * * * * * * * * * * * * Building type: State * * * * * * * * * * * * value = i32 0 * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %state = alloca i32, align 4 * * * * * * * * * * * rhs: i32 0 * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(4395) * * * * * * * * * PostExp::toElem: cur++ @ ulong * * * * * * * * * * VarExp::toElem: cur @ ulong * * * * * * * * * * * DtoSymbolAddress ('cur' of type 'ulong') * * * * * * * * * * * * a normal variable * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * value = i64 1 * * * * * * CmpExp::toElem: cur < this.used_ @ bool * * * * * * * VarExp::toElem: cur @ ulong * * * * * * * * DtoSymbolAddress ('cur' of type 'ulong') * * * * * * * * * a normal variable * * * * * * * DotVarExp::toElem: this.used_ @ ulong * * * * * * * * ThisExp::toElem: this @ StreamingUnpacker * * * * * * * * * normal this exp * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.InternalBuffer!().used_: * * * * * * * * * Value: %21 = getelementptr %msgpack.StreamingUnpacker, %msgpack.StreamingUnpacker* %.this_arg, i32 0, i32 2 * * * * * * * type 1: %22 = load i64, i64* %cur * * * * * * * type 2: %23 = load i64, i64* %21 * * * * * GotoStatement::toIR(): msgpack-d/src/msgpack.d(4398) * * * * * LabelStatement::toIR(): msgpack-d/src/msgpack.d(4400) * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(4401) * * * * * * * AssignExp::toElem: (*stack)[0].value = obj | (Value)(Value = Value) * * * * * * * * DotVarExp::toElem: (*stack)[0].value @ Value * * * * * * * * * IndexExp::toElem: (*stack)[0] @ Container * * * * * * * * * * PtrExp::toElem: *stack @ Container[] * * * * * * * * * * * VarExp::toElem: stack @ Container[]* * * * * * * * * * * * * DtoSymbolAddress ('stack' of type 'Container[]*') * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * DtoNestedVariable for stack @ msgpack-d/src/msgpack.d(4401) * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * value = i64 0 * * * * * * * * * * DtoArrayPtr * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.Context.Container.value: * * * * * * * * * * Value: %469 = getelementptr %msgpack.StreamingUnpacker.Context.Container, %msgpack.StreamingUnpacker.Context.Container* %468, i32 0, i32 2 * * * * * * * * VarExp::toElem: obj @ Value * * * * * * * * * DtoSymbolAddress ('obj' of type 'Value') * * * * * * * * * * a normal variable * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * DtoAssign() * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(4402) * * * * * * AssignExp::toElem: ret = true | (bool)(bool = bool) * * * * * * * VarExp::toElem: ret @ bool * * * * * * * * DtoSymbolAddress ('ret' of type 'bool') * * * * * * * * * a normal variable * * * * * * * IntegerExp::toElem: true @ bool * * * * * * * * IntegerExp::toConstElem: true @ bool * * * * * * * * * value = i1 true * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * DtoAssign() * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(4403) * * * * * * PostExp::toElem: cur++ @ ulong * * * * * * * VarExp::toElem: cur @ ulong * * * * * * * * DtoSymbolAddress ('cur' of type 'ulong') * * * * * * * * * a normal variable * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * value = i64 1 * * * * * GotoStatement::toIR(): msgpack-d/src/msgpack.d(4404) * * * * * LabelStatement::toIR(): msgpack-d/src/msgpack.d(4406) * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(4407) * * * * * * * AssignExp::toElem: ret = false | (bool)(bool = bool) * * * * * * * * VarExp::toElem: ret @ bool * * * * * * * * * DtoSymbolAddress ('ret' of type 'bool') * * * * * * * * * * a normal variable * * * * * * * * IntegerExp::toElem: false @ bool * * * * * * * * * IntegerExp::toConstElem: false @ bool * * * * * * * * * * value = i1 false * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * DtoAssign() * * * * * LabelStatement::toIR(): msgpack-d/src/msgpack.d(4409) * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(4410) * * * * * * * AssignExp::toElem: this.context_.state = state | (State)(State = State) * * * * * * * * DotVarExp::toElem: this.context_.state @ State * * * * * * * * * DotVarExp::toElem: this.context_ @ Context * * * * * * * * * * ThisExp::toElem: this @ StreamingUnpacker * * * * * * * * * * * normal this exp * * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.context_: * * * * * * * * * * * Value: %474 = getelementptr %msgpack.StreamingUnpacker, %msgpack.StreamingUnpacker* %.this_arg, i32 0, i32 0 * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.Context.state: * * * * * * * * * * Building type: State * * * * * * * * * * Value: %475 = getelementptr %msgpack.StreamingUnpacker.Context, %msgpack.StreamingUnpacker.Context* %474, i32 0, i32 0 * * * * * * * * VarExp::toElem: state @ State * * * * * * * * * DtoSymbolAddress ('state' of type 'State') * * * * * * * * * * a normal variable * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * DtoAssign() * * * * * * * * * lhs: %475 = getelementptr %msgpack.StreamingUnpacker.Context, %msgpack.StreamingUnpacker.Context* %474, i32 0, i32 0 * * * * * * * * * rhs: %476 = load i32, i32* %state * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(4411) * * * * * * AssignExp::toElem: this.context_.trail = trail | (ulong)(ulong = ulong) * * * * * * * DotVarExp::toElem: this.context_.trail @ ulong * * * * * * * * DotVarExp::toElem: this.context_ @ Context * * * * * * * * * ThisExp::toElem: this @ StreamingUnpacker * * * * * * * * * * normal this exp * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.context_: * * * * * * * * * * Value: %477 = getelementptr %msgpack.StreamingUnpacker, %msgpack.StreamingUnpacker* %.this_arg, i32 0, i32 0 * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.Context.trail: * * * * * * * * * Value: %478 = getelementptr %msgpack.StreamingUnpacker.Context, %msgpack.StreamingUnpacker.Context* %477, i32 0, i32 2 * * * * * * * VarExp::toElem: trail @ ulong * * * * * * * * DtoSymbolAddress ('trail' of type 'ulong') * * * * * * * * * a normal variable * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * DtoAssign() * * * * * * * * lhs: %478 = getelementptr %msgpack.StreamingUnpacker.Context, %msgpack.StreamingUnpacker.Context* %477, i32 0, i32 2 * * * * * * * * rhs: %479 = load i64, i64* %trail * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(4412) * * * * * * AssignExp::toElem: this.context_.top = top | (ulong)(ulong = ulong) * * * * * * * DotVarExp::toElem: this.context_.top @ ulong * * * * * * * * DotVarExp::toElem: this.context_ @ Context * * * * * * * * * ThisExp::toElem: this @ StreamingUnpacker * * * * * * * * * * normal this exp * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.context_: * * * * * * * * * * Value: %480 = getelementptr %msgpack.StreamingUnpacker, %msgpack.StreamingUnpacker* %.this_arg, i32 0, i32 0 * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.Context.top: * * * * * * * * * Value: %481 = getelementptr %msgpack.StreamingUnpacker.Context, %msgpack.StreamingUnpacker.Context* %480, i32 0, i32 3 * * * * * * * VarExp::toElem: top @ ulong * * * * * * * * DtoSymbolAddress ('top' of type 'ulong') * * * * * * * * * nested variable * * * * * * * * * DtoNestedVariable for top @ msgpack-d/src/msgpack.d(4412) * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * DtoAssign() * * * * * * * * lhs: %481 = getelementptr %msgpack.StreamingUnpacker.Context, %msgpack.StreamingUnpacker.Context* %480, i32 0, i32 3 * * * * * * * * rhs: %482 = load i64, i64* %top * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(4413) * * * * * * AddAssignExp::toElem: this.parsed_ += cur - this.offset_ @ ulong * * * * * * * Caching l-value of this.parsed_ += cur - this.offset_ => this.parsed_ * * * * * * * * DotVarExp::toElem: this.parsed_ @ ulong * * * * * * * * * ThisExp::toElem: this @ StreamingUnpacker * * * * * * * * * * normal this exp * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.InternalBuffer!().parsed_: * * * * * * * * * * Value: %483 = getelementptr %msgpack.StreamingUnpacker, %msgpack.StreamingUnpacker* %.this_arg, i32 0, i32 4 * * * * * * * AddExp::toElem: this.parsed_ + (cur - this.offset_) @ ulong * * * * * * * * DotVarExp::toElem: this.parsed_ @ ulong * * * * * * * * * using cached lvalue * * * * * * * * MinExp::toElem: cur - this.offset_ @ ulong * * * * * * * * * VarExp::toElem: cur @ ulong * * * * * * * * * * DtoSymbolAddress ('cur' of type 'ulong') * * * * * * * * * * * a normal variable * * * * * * * * * DotVarExp::toElem: this.offset_ @ ulong * * * * * * * * * * ThisExp::toElem: this @ StreamingUnpacker * * * * * * * * * * * normal this exp * * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.InternalBuffer!().offset_: * * * * * * * * * * * Value: %484 = getelementptr %msgpack.StreamingUnpacker, %msgpack.StreamingUnpacker* %.this_arg, i32 0, i32 3 * * * * * * * DtoAssign() * * * * * * * * lhs: %483 = getelementptr %msgpack.StreamingUnpacker, %msgpack.StreamingUnpacker* %.this_arg, i32 0, i32 4 * * * * * * * * rhs: %489 = add i64 %488, %487 * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(4414) * * * * * * AssignExp::toElem: this.offset_ = cur | (ulong)(ulong = ulong) * * * * * * * DotVarExp::toElem: this.offset_ @ ulong * * * * * * * * ThisExp::toElem: this @ StreamingUnpacker * * * * * * * * * normal this exp * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.InternalBuffer!().offset_: * * * * * * * * * Value: %490 = getelementptr %msgpack.StreamingUnpacker, %msgpack.StreamingUnpacker* %.this_arg, i32 0, i32 3 * * * * * * * VarExp::toElem: cur @ ulong * * * * * * * * DtoSymbolAddress ('cur' of type 'ulong') * * * * * * * * * a normal variable * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * DtoAssign() * * * * * * * * lhs: %490 = getelementptr %msgpack.StreamingUnpacker, %msgpack.StreamingUnpacker* %.this_arg, i32 0, i32 3 * * * * * * * * rhs: %491 = load i64, i64* %cur * * * * * ReturnStatement::toIR(): msgpack-d/src/msgpack.d(4416) * * * * * * VarExp::toElem: ret @ bool * * * * * * * DtoSymbolAddress ('ret' of type 'bool') * * * * * * * * a normal variable * * * * * * return value is '0x1334b9b8' * * DtoDefineFunction(msgpack.StreamingUnpacker.opApply): msgpack-d/src/msgpack.d(4424) * * * isMember = this is: StreamingUnpacker * * * DtoFunctionType(@trusted int(scope int delegate(ref Unpacked) dg)) * * * * Building type: int delegate(ref Unpacked) * * * * * DtoFunctionType(int(ref Unpacked)) * * * * * * x86-64 ABI: Transforming return type * * * * * * x86-64 ABI: Transforming argument types * * * * * * Final function type: i32 (i8*, %msgpack.Unpacked*) * * * * x86-64 ABI: Transforming return type * * * * x86-64 ABI: Transforming argument types * * * * Final function type: i32 (%msgpack.StreamingUnpacker*, { i8*, i32 (i8*, %msgpack.Unpacked*)* }) * * * DtoResolveFunction(msgpack.StreamingUnpacker.opApply): msgpack-d/src/msgpack.d(4424) * * * * DtoDeclareFunction(msgpack.StreamingUnpacker.opApply): msgpack-d/src/msgpack.d(4424) * * * * * isMember = this is: StreamingUnpacker * * * * * DtoFunctionType(@trusted int(scope int delegate(ref Unpacked) dg)) * * * * * func = declare i32 @_D7msgpack17StreamingUnpacker7opApplyMFNeMDFKS7msgpack8UnpackedZiZi(%msgpack.StreamingUnpacker*, { i8*, i32 (i8*, %msgpack.Unpacked*)* }) * * * Doing function body for: opApply * * * DtoCreateNestedContext for opApply * * * * DtoCreateNestedContextType for msgpack.StreamingUnpacker.opApply * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(4425) * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(4426) * * * * * * DeclarationExp::toElem: int result = 0; | T=void * * * * * * * DtoDeclarationExp: result * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = int) * * * * * * * * * llvm value for decl: %result = alloca i32, align 4 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: result = 0 | (int)(int = int) * * * * * * * * * * VarExp::toElem: result @ int * * * * * * * * * * * DtoSymbolAddress ('result' of type 'int') * * * * * * * * * * * * a normal variable * * * * * * * * * * IntegerExp::toElem: 0 @ int * * * * * * * * * * * IntegerExp::toConstElem: 0 @ int * * * * * * * * * * * * value = i32 0 * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %result = alloca i32, align 4 * * * * * * * * * * * rhs: i32 0 * * * * * ForStatement::toIR(): msgpack-d/src/msgpack.d(4428) * * * * * * CallExp::toElem: this.execute() @ bool * * * * * * * DotVarExp::toElem: this.execute @ @trusted bool() * * * * * * * * ThisExp::toElem: this @ StreamingUnpacker * * * * * * * * * normal this exp * * * * * * * DtoCallFunction() * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (1) * * * * * * * * * %msgpack.StreamingUnpacker* %.this_arg * * * * * * * * Function type: @trusted bool() * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(4428) * * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(4428) * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(4429) * * * * * * * * * DeclarationExp::toElem: Unpacked unpackedResult = unpackedResult = Unpacked , unpackedResult.this(this.context_.stack[0].value); | T=void * * * * * * * * * * DtoDeclarationExp: unpackedResult * * * * * * * * * * * VarDeclaration * * * * * * * * * * * DtoVarDeclaration(vdtype = Unpacked) * * * * * * * * * * * * llvm value for decl: %unpackedResult = alloca %msgpack.Unpacked, align 16 * * * * * * * * * * * * expression initializer * * * * * * * * * * * * CommaExp::toElem: unpackedResult = Unpacked , unpackedResult.this(this.context_.stack[0].value) @ Unpacked * * * * * * * * * * * * * AssignExp::toElem: unpackedResult = Unpacked | (Unpacked)(Unpacked = Unpacked) * * * * * * * * * * * * * * VarExp::toElem: unpackedResult @ Unpacked * * * * * * * * * * * * * * * DtoSymbolAddress ('unpackedResult' of type 'Unpacked') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * VarExp::toElem: Unpacked @ Unpacked * * * * * * * * * * * * * * * DtoSymbolAddress ('Unpacked' of type 'Unpacked') * * * * * * * * * * * * * * * * Sym: type=Unpacked * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * CallExp::toElem: unpackedResult.this(this.context_.stack[0].value) @ Unpacked * * * * * * * * * * * * * * DotVarExp::toElem: unpackedResult.this @ ref @safe Unpacked(ref Value value) * * * * * * * * * * * * * * * VarExp::toElem: unpackedResult @ Unpacked * * * * * * * * * * * * * * * * DtoSymbolAddress ('unpackedResult' of type 'Unpacked') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * %unpackedResult = alloca %msgpack.Unpacked, align 16 * * * * * * * * * * * * * * * Function type: ref @safe Unpacked(ref Value value) * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * DotVarExp::toElem: this.context_.stack[0].value @ Value * * * * * * * * * * * * * * * * * IndexExp::toElem: this.context_.stack[0] @ Container * * * * * * * * * * * * * * * * * * DotVarExp::toElem: this.context_.stack @ Container[] * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: this.context_ @ Context * * * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ StreamingUnpacker * * * * * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.context_: * * * * * * * * * * * * * * * * * * * * * Value: %3 = getelementptr %msgpack.StreamingUnpacker, %msgpack.StreamingUnpacker* %.this_arg, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.Context.stack: * * * * * * * * * * * * * * * * * * * * Value: %4 = getelementptr %msgpack.StreamingUnpacker.Context, %msgpack.StreamingUnpacker.Context* %3, i32 0, i32 4 * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.Context.Container.value: * * * * * * * * * * * * * * * * * * Value: %7 = getelementptr %msgpack.StreamingUnpacker.Context.Container, %msgpack.StreamingUnpacker.Context.Container* %6, i32 0, i32 2 * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(4430) * * * * * * * * * AssignExp::toElem: result = dg(unpackedResult) | (int)(int = int) * * * * * * * * * * VarExp::toElem: result @ int * * * * * * * * * * * DtoSymbolAddress ('result' of type 'int') * * * * * * * * * * * * a normal variable * * * * * * * * * * CallExp::toElem: dg(unpackedResult) @ int * * * * * * * * * * * VarExp::toElem: dg @ int delegate(ref Unpacked) * * * * * * * * * * * * DtoSymbolAddress ('dg' of type 'int delegate(ref Unpacked)') * * * * * * * * * * * * * function param * * * * * * * * * * * * * type: int delegate(ref Unpacked) * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * %.ptr1 = load i8*, i8** %10 * * * * * * * * * * * * Function type: int(ref Unpacked) * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * VarExp::toElem: unpackedResult @ Unpacked * * * * * * * * * * * * * * DtoSymbolAddress ('unpackedResult' of type 'Unpacked') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %result = alloca i32, align 4 * * * * * * * * * * * rhs: %11 = call i32 %.funcptr(i8* %.ptr1, %msgpack.Unpacked* %unpackedResult) * * * * * * * * IfStatement::toIR(): msgpack-d/src/msgpack.d(4431) * * * * * * * * * VarExp::toElem: result @ int * * * * * * * * * * DtoSymbolAddress ('result' of type 'int') * * * * * * * * * * * a normal variable * * * * * * * * * if conditional: %12 = load i32, i32* %result * * * * * * * * * Casting from 'int' to 'bool' * * * * * * * * * BreakStatement::toIR(): msgpack-d/src/msgpack.d(4432) * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(4434) * * * * * * * * * CallExp::toElem: this.clear() @ void * * * * * * * * * * DotVarExp::toElem: this.clear @ nothrow @safe void() * * * * * * * * * * * ThisExp::toElem: this @ StreamingUnpacker * * * * * * * * * * * * normal this exp * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * doing normal arguments * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * %msgpack.StreamingUnpacker* %.this_arg * * * * * * * * * * * Function type: nothrow @safe void() * * * * * ReturnStatement::toIR(): msgpack-d/src/msgpack.d(4437) * * * * * * VarExp::toElem: result @ int * * * * * * * DtoSymbolAddress ('result' of type 'int') * * * * * * * * a normal variable * * * * * * return value is '0x133505b8' * * DtoDefineFunction(msgpack.StreamingUnpacker.initializeContext): msgpack-d/src/msgpack.d(4446) * * * Doing function body for: initializeContext * * * DtoCreateNestedContext for initializeContext * * * * DtoCreateNestedContextType for msgpack.StreamingUnpacker.initializeContext * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(4447) * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(4448) * * * * * * AssignExp::toElem: this.context_.state = cast(State)0 | (State)(State = State) * * * * * * * DotVarExp::toElem: this.context_.state @ State * * * * * * * * DotVarExp::toElem: this.context_ @ Context * * * * * * * * * ThisExp::toElem: this @ StreamingUnpacker * * * * * * * * * * normal this exp * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.context_: * * * * * * * * * * Value: %1 = getelementptr %msgpack.StreamingUnpacker, %msgpack.StreamingUnpacker* %.this_arg, i32 0, i32 0 * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.Context.state: * * * * * * * * * Building type: State * * * * * * * * * Value: %2 = getelementptr %msgpack.StreamingUnpacker.Context, %msgpack.StreamingUnpacker.Context* %1, i32 0, i32 0 * * * * * * * IntegerExp::toElem: cast(State)0 @ State * * * * * * * * IntegerExp::toConstElem: cast(State)0 @ State * * * * * * * * * Building type: State * * * * * * * * * value = i32 0 * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * DtoAssign() * * * * * * * * lhs: %2 = getelementptr %msgpack.StreamingUnpacker.Context, %msgpack.StreamingUnpacker.Context* %1, i32 0, i32 0 * * * * * * * * rhs: i32 0 * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(4449) * * * * * * AssignExp::toElem: this.context_.trail = 0LU | (ulong)(ulong = ulong) * * * * * * * DotVarExp::toElem: this.context_.trail @ ulong * * * * * * * * DotVarExp::toElem: this.context_ @ Context * * * * * * * * * ThisExp::toElem: this @ StreamingUnpacker * * * * * * * * * * normal this exp * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.context_: * * * * * * * * * * Value: %3 = getelementptr %msgpack.StreamingUnpacker, %msgpack.StreamingUnpacker* %.this_arg, i32 0, i32 0 * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.Context.trail: * * * * * * * * * Value: %4 = getelementptr %msgpack.StreamingUnpacker.Context, %msgpack.StreamingUnpacker.Context* %3, i32 0, i32 2 * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * value = i64 0 * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * DtoAssign() * * * * * * * * lhs: %4 = getelementptr %msgpack.StreamingUnpacker.Context, %msgpack.StreamingUnpacker.Context* %3, i32 0, i32 2 * * * * * * * * rhs: i64 0 * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(4450) * * * * * * AssignExp::toElem: this.context_.top = 0LU | (ulong)(ulong = ulong) * * * * * * * DotVarExp::toElem: this.context_.top @ ulong * * * * * * * * DotVarExp::toElem: this.context_ @ Context * * * * * * * * * ThisExp::toElem: this @ StreamingUnpacker * * * * * * * * * * normal this exp * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.context_: * * * * * * * * * * Value: %5 = getelementptr %msgpack.StreamingUnpacker, %msgpack.StreamingUnpacker* %.this_arg, i32 0, i32 0 * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.Context.top: * * * * * * * * * Value: %6 = getelementptr %msgpack.StreamingUnpacker.Context, %msgpack.StreamingUnpacker.Context* %5, i32 0, i32 3 * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * value = i64 0 * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * DtoAssign() * * * * * * * * lhs: %6 = getelementptr %msgpack.StreamingUnpacker.Context, %msgpack.StreamingUnpacker.Context* %5, i32 0, i32 3 * * * * * * * * rhs: i64 0 * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(4451) * * * * * * AssignExp::toElem: this.context_.stack.length = 1LU | (ulong)(ulong = ulong) * * * * * * * performing array.length assignment * * * * * * * DotVarExp::toElem: this.context_.stack @ Container[] * * * * * * * * DotVarExp::toElem: this.context_ @ Context * * * * * * * * * ThisExp::toElem: this @ StreamingUnpacker * * * * * * * * * * normal this exp * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.context_: * * * * * * * * * * Value: %7 = getelementptr %msgpack.StreamingUnpacker, %msgpack.StreamingUnpacker* %.this_arg, i32 0, i32 0 * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.Context.stack: * * * * * * * * * Value: %8 = getelementptr %msgpack.StreamingUnpacker.Context, %msgpack.StreamingUnpacker.Context* %7, i32 0, i32 4 * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * value = i64 1 * * * * * * * DtoResizeDynArray : Container[] * * * * * * * * DtoTypeInfoOf(type = 'Container[]', base='1') * * * * * * * * * Type::getTypeInfo(): Container[] * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(Container[])) * * * * * * * * * * * type = 'Container[]' * * * * * * * * * * * typeinfo mangle: _D56TypeInfo_AS7msgpack17StreamingUnpacker7Context9Container6__initZ * * * * * * * * * * * TypeInfoArrayDeclaration::llvmDefine() typeid(Container[]) * * * * * * * * * * * * DtoTypeInfoOf(type = 'Container', base='1') * * * * * * * * * * * * * Type::getTypeInfo(): Container * * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(Container)) * * * * * * * * * TypeInfoDeclaration::codegen(typeid(Container[])) * * * * * * * DtoAssign() * * * * * * * * DtoArrayAssign * * * * * * * * * DtoArrayPtr * * * * * * * * * DtoArrayLen * * * * * * * * * SetArray * * Building default initializer for msgpack.StreamingUnpacker * * * Creating initializer constant for StreamingUnpacker * * * * Implicit initializer: context_ @+0 * * * * * DtoConstExpInit(targetType = Context, exp = Context) * * * * * * VarExp::toConstElem: Context @ Context * * * * * * * Sym: type=Context * * * * Implicit initializer: buffer_ @+40 * * * * * DtoConstExpInit(targetType = ubyte[], exp = null) * * * * * * NullExp::toConstElem(type=ubyte[]): null * * * * Implicit initializer: used_ @+56 * * * * * DtoConstExpInit(targetType = ulong, exp = 0LU) * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * value = i64 0 * * * * Implicit initializer: offset_ @+64 * * * * * DtoConstExpInit(targetType = ulong, exp = 0LU) * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * value = i64 0 * * * * Implicit initializer: parsed_ @+72 * * * * * DtoConstExpInit(targetType = ulong, exp = 0LU) * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * value = i64 0 * * * * Implicit initializer: hasRaw_ @+80 * * * * * DtoConstExpInit(targetType = bool, exp = false) * * * * * * IntegerExp::toConstElem: false @ bool * * * * * * * value = i1 false * * * * * * Fixing up unresolved implicit integer conversion. * * * * adding field context_ * * * * adding field buffer_ * * * * adding field used_ * * * * adding field offset_ * * * * adding field parsed_ * * * * adding field hasRaw_ * * * * final initializer: %msgpack.StreamingUnpacker_init zeroinitializer * * DtoTypeInfoOf(type = 'StreamingUnpacker', base='1') * * * Type::getTypeInfo(): StreamingUnpacker * * * * TypeInfoDeclaration::codegen(typeid(StreamingUnpacker)) * * * * * type = 'StreamingUnpacker' * * * * * typeinfo mangle: _D37TypeInfo_S7msgpack17StreamingUnpacker6__initZ * * * * * TypeInfoStructDeclaration::llvmDefine() typeid(StreamingUnpacker) * * * * * * DtoFunctionType(nothrow @trusted ulong(ref const(StreamingUnpacker) p)) * * * * * * * Building type: const(StreamingUnpacker)* * * * * * * * x86-64 ABI: Transforming return type * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * Final function type: i64 (%msgpack.StreamingUnpacker*) * * * * * * DtoResolveFunction(msgpack.StreamingUnpacker.__xtoHash): * * * * * * * DtoDeclareFunction(msgpack.StreamingUnpacker.__xtoHash): * * * * * * * * DtoFunctionType(nothrow @trusted ulong(ref const(StreamingUnpacker) p)) * * * * * * * * func = declare i64 @_D7msgpack17StreamingUnpacker9__xtoHashFNbNeKxS7msgpack17StreamingUnpackerZm(%msgpack.StreamingUnpacker*) * * * * * * DtoFunctionType(bool(ref const(StreamingUnpacker) p, ref const(StreamingUnpacker) q)) * * * * * * * x86-64 ABI: Transforming return type * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * Final function type: i1 (%msgpack.StreamingUnpacker*, %msgpack.StreamingUnpacker*) * * * * * * DtoResolveFunction(msgpack.StreamingUnpacker.__xopEquals): * * * * * * * DtoDeclareFunction(msgpack.StreamingUnpacker.__xopEquals): * * * * * * * * DtoFunctionType(bool(ref const(StreamingUnpacker) p, ref const(StreamingUnpacker) q)) * * * * * * * * func = declare i1 @_D7msgpack17StreamingUnpacker11__xopEqualsFKxS7msgpack17StreamingUnpackerKxS7msgpack17StreamingUnpackerZb(%msgpack.StreamingUnpacker*, %msgpack.StreamingUnpacker*) * * * * * * IntegerExp::toConstElem: cast(void*)305419896LU @ void* * * * * * * * pointer * * * TypeInfoDeclaration::codegen(typeid(StreamingUnpacker)) * * DtoDefineFunction(msgpack.StreamingUnpacker.__xopEquals): * * * Doing function body for: __xopEquals * * * DtoCreateNestedContext for __xopEquals * * * * DtoCreateNestedContextType for msgpack.StreamingUnpacker.__xopEquals * * * CompoundStatement::toIR(): * * * * ReturnStatement::toIR(): * * * * * AndAndExp::toElem: p.context_.state == q.context_.state && p.context_.trail == q.context_.trail && p.context_.top == q.context_.top && p.context_.stack == q.context_.stack && p.buffer_ == q.buffer_ && p.used_ == q.used_ && p.offset_ == q.offset_ && p.parsed_ == q.parsed_ && cast(int)p.hasRaw_ == cast(int)q.hasRaw_ @ bool * * * * * * AndAndExp::toElem: p.context_.state == q.context_.state && p.context_.trail == q.context_.trail && p.context_.top == q.context_.top && p.context_.stack == q.context_.stack && p.buffer_ == q.buffer_ && p.used_ == q.used_ && p.offset_ == q.offset_ && p.parsed_ == q.parsed_ @ bool * * * * * * * AndAndExp::toElem: p.context_.state == q.context_.state && p.context_.trail == q.context_.trail && p.context_.top == q.context_.top && p.context_.stack == q.context_.stack && p.buffer_ == q.buffer_ && p.used_ == q.used_ && p.offset_ == q.offset_ @ bool * * * * * * * * AndAndExp::toElem: p.context_.state == q.context_.state && p.context_.trail == q.context_.trail && p.context_.top == q.context_.top && p.context_.stack == q.context_.stack && p.buffer_ == q.buffer_ && p.used_ == q.used_ @ bool * * * * * * * * * AndAndExp::toElem: p.context_.state == q.context_.state && p.context_.trail == q.context_.trail && p.context_.top == q.context_.top && p.context_.stack == q.context_.stack && p.buffer_ == q.buffer_ @ bool * * * * * * * * * * AndAndExp::toElem: p.context_.state == q.context_.state && p.context_.trail == q.context_.trail && p.context_.top == q.context_.top && p.context_.stack == q.context_.stack @ bool * * * * * * * * * * * AndAndExp::toElem: p.context_.state == q.context_.state && p.context_.trail == q.context_.trail && p.context_.top == q.context_.top @ bool * * * * * * * * * * * * AndAndExp::toElem: p.context_.state == q.context_.state && p.context_.trail == q.context_.trail @ bool * * * * * * * * * * * * * EqualExp::toElem: p.context_.state == q.context_.state @ bool * * * * * * * * * * * * * * DotVarExp::toElem: p.context_.state @ const(State) * * * * * * * * * * * * * * * DotVarExp::toElem: p.context_ @ const(Context) * * * * * * * * * * * * * * * * VarExp::toElem: p @ const(StreamingUnpacker) * * * * * * * * * * * * * * * * * DtoSymbolAddress ('p' of type 'const(StreamingUnpacker)') * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * type: const(StreamingUnpacker) * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.context_: * * * * * * * * * * * * * * * * * Value: %1 = getelementptr %msgpack.StreamingUnpacker, %msgpack.StreamingUnpacker* %p_arg, i32 0, i32 0 * * * * * * * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.Context.state: * * * * * * * * * * * * * * * * Building type: State * * * * * * * * * * * * * * * * Value: %2 = getelementptr %msgpack.StreamingUnpacker.Context, %msgpack.StreamingUnpacker.Context* %1, i32 0, i32 0 * * * * * * * * * * * * * * DotVarExp::toElem: q.context_.state @ const(State) * * * * * * * * * * * * * * * DotVarExp::toElem: q.context_ @ const(Context) * * * * * * * * * * * * * * * * VarExp::toElem: q @ const(StreamingUnpacker) * * * * * * * * * * * * * * * * * DtoSymbolAddress ('q' of type 'const(StreamingUnpacker)') * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * type: const(StreamingUnpacker) * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.context_: * * * * * * * * * * * * * * * * * Value: %3 = getelementptr %msgpack.StreamingUnpacker, %msgpack.StreamingUnpacker* %q_arg, i32 0, i32 0 * * * * * * * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.Context.state: * * * * * * * * * * * * * * * * Building type: State * * * * * * * * * * * * * * * * Value: %4 = getelementptr %msgpack.StreamingUnpacker.Context, %msgpack.StreamingUnpacker.Context* %3, i32 0, i32 0 * * * * * * * * * * * * * * integral or pointer or interface * * * * * * * * * * * * * * lv: %5 = load i32, i32* %2 * * * * * * * * * * * * * * rv: %6 = load i32, i32* %4 * * * * * * * * * * * * * EqualExp::toElem: p.context_.trail == q.context_.trail @ bool * * * * * * * * * * * * * * DotVarExp::toElem: p.context_.trail @ const(ulong) * * * * * * * * * * * * * * * DotVarExp::toElem: p.context_ @ const(Context) * * * * * * * * * * * * * * * * VarExp::toElem: p @ const(StreamingUnpacker) * * * * * * * * * * * * * * * * * DtoSymbolAddress ('p' of type 'const(StreamingUnpacker)') * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * type: const(StreamingUnpacker) * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.context_: * * * * * * * * * * * * * * * * * Value: %8 = getelementptr %msgpack.StreamingUnpacker, %msgpack.StreamingUnpacker* %p_arg, i32 0, i32 0 * * * * * * * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.Context.trail: * * * * * * * * * * * * * * * * Value: %9 = getelementptr %msgpack.StreamingUnpacker.Context, %msgpack.StreamingUnpacker.Context* %8, i32 0, i32 2 * * * * * * * * * * * * * * DotVarExp::toElem: q.context_.trail @ const(ulong) * * * * * * * * * * * * * * * DotVarExp::toElem: q.context_ @ const(Context) * * * * * * * * * * * * * * * * VarExp::toElem: q @ const(StreamingUnpacker) * * * * * * * * * * * * * * * * * DtoSymbolAddress ('q' of type 'const(StreamingUnpacker)') * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * type: const(StreamingUnpacker) * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.context_: * * * * * * * * * * * * * * * * * Value: %10 = getelementptr %msgpack.StreamingUnpacker, %msgpack.StreamingUnpacker* %q_arg, i32 0, i32 0 * * * * * * * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.Context.trail: * * * * * * * * * * * * * * * * Value: %11 = getelementptr %msgpack.StreamingUnpacker.Context, %msgpack.StreamingUnpacker.Context* %10, i32 0, i32 2 * * * * * * * * * * * * * * integral or pointer or interface * * * * * * * * * * * * * * lv: %12 = load i64, i64* %9 * * * * * * * * * * * * * * rv: %13 = load i64, i64* %11 * * * * * * * * * * * * EqualExp::toElem: p.context_.top == q.context_.top @ bool * * * * * * * * * * * * * DotVarExp::toElem: p.context_.top @ const(ulong) * * * * * * * * * * * * * * DotVarExp::toElem: p.context_ @ const(Context) * * * * * * * * * * * * * * * VarExp::toElem: p @ const(StreamingUnpacker) * * * * * * * * * * * * * * * * DtoSymbolAddress ('p' of type 'const(StreamingUnpacker)') * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * type: const(StreamingUnpacker) * * * * * * * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.context_: * * * * * * * * * * * * * * * * Value: %15 = getelementptr %msgpack.StreamingUnpacker, %msgpack.StreamingUnpacker* %p_arg, i32 0, i32 0 * * * * * * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.Context.top: * * * * * * * * * * * * * * * Value: %16 = getelementptr %msgpack.StreamingUnpacker.Context, %msgpack.StreamingUnpacker.Context* %15, i32 0, i32 3 * * * * * * * * * * * * * DotVarExp::toElem: q.context_.top @ const(ulong) * * * * * * * * * * * * * * DotVarExp::toElem: q.context_ @ const(Context) * * * * * * * * * * * * * * * VarExp::toElem: q @ const(StreamingUnpacker) * * * * * * * * * * * * * * * * DtoSymbolAddress ('q' of type 'const(StreamingUnpacker)') * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * type: const(StreamingUnpacker) * * * * * * * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.context_: * * * * * * * * * * * * * * * * Value: %17 = getelementptr %msgpack.StreamingUnpacker, %msgpack.StreamingUnpacker* %q_arg, i32 0, i32 0 * * * * * * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.Context.top: * * * * * * * * * * * * * * * Value: %18 = getelementptr %msgpack.StreamingUnpacker.Context, %msgpack.StreamingUnpacker.Context* %17, i32 0, i32 3 * * * * * * * * * * * * * integral or pointer or interface * * * * * * * * * * * * * lv: %19 = load i64, i64* %16 * * * * * * * * * * * * * rv: %20 = load i64, i64* %18 * * * * * * * * * * * EqualExp::toElem: p.context_.stack == q.context_.stack @ bool * * * * * * * * * * * * DotVarExp::toElem: p.context_.stack @ const(Container[]) * * * * * * * * * * * * * DotVarExp::toElem: p.context_ @ const(Context) * * * * * * * * * * * * * * VarExp::toElem: p @ const(StreamingUnpacker) * * * * * * * * * * * * * * * DtoSymbolAddress ('p' of type 'const(StreamingUnpacker)') * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * type: const(StreamingUnpacker) * * * * * * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.context_: * * * * * * * * * * * * * * * Value: %22 = getelementptr %msgpack.StreamingUnpacker, %msgpack.StreamingUnpacker* %p_arg, i32 0, i32 0 * * * * * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.Context.stack: * * * * * * * * * * * * * * Value: %23 = getelementptr %msgpack.StreamingUnpacker.Context, %msgpack.StreamingUnpacker.Context* %22, i32 0, i32 4 * * * * * * * * * * * * DotVarExp::toElem: q.context_.stack @ const(Container[]) * * * * * * * * * * * * * DotVarExp::toElem: q.context_ @ const(Context) * * * * * * * * * * * * * * VarExp::toElem: q @ const(StreamingUnpacker) * * * * * * * * * * * * * * * DtoSymbolAddress ('q' of type 'const(StreamingUnpacker)') * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * type: const(StreamingUnpacker) * * * * * * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.context_: * * * * * * * * * * * * * * * Value: %24 = getelementptr %msgpack.StreamingUnpacker, %msgpack.StreamingUnpacker* %q_arg, i32 0, i32 0 * * * * * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.Context.stack: * * * * * * * * * * * * * * Value: %25 = getelementptr %msgpack.StreamingUnpacker.Context, %msgpack.StreamingUnpacker.Context* %24, i32 0, i32 4 * * * * * * * * * * * * static or dynamic array * * * * * * * * * * * * comparing arrays * * * * * * * * * * * * casting to dynamic arrays * * * * * * * * * * * * DtoCastArray * * * * * * * * * * * * * from array or sarray * * * * * * * * * * * * * to array * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * isslice * * * * * * * * * * * * DtoCastArray * * * * * * * * * * * * * from array or sarray * * * * * * * * * * * * * to array * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * isslice * * * * * * * * * * * * DtoTypeInfoOf(type = 'const(Container)[]', base='1') * * * * * * * * * * * * * Type::getTypeInfo(): const(Container)[] * * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(const(Container)[])) * * * * * * * * * * EqualExp::toElem: p.buffer_ == q.buffer_ @ bool * * * * * * * * * * * DotVarExp::toElem: p.buffer_ @ const(ubyte[]) * * * * * * * * * * * * VarExp::toElem: p @ const(StreamingUnpacker) * * * * * * * * * * * * * DtoSymbolAddress ('p' of type 'const(StreamingUnpacker)') * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * type: const(StreamingUnpacker) * * * * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.InternalBuffer!().buffer_: * * * * * * * * * * * * * Value: %48 = getelementptr %msgpack.StreamingUnpacker, %msgpack.StreamingUnpacker* %p_arg, i32 0, i32 1 * * * * * * * * * * * DotVarExp::toElem: q.buffer_ @ const(ubyte[]) * * * * * * * * * * * * VarExp::toElem: q @ const(StreamingUnpacker) * * * * * * * * * * * * * DtoSymbolAddress ('q' of type 'const(StreamingUnpacker)') * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * type: const(StreamingUnpacker) * * * * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.InternalBuffer!().buffer_: * * * * * * * * * * * * * Value: %49 = getelementptr %msgpack.StreamingUnpacker, %msgpack.StreamingUnpacker* %q_arg, i32 0, i32 1 * * * * * * * * * * * static or dynamic array * * * * * * * * * * * comparing arrays * * * * * * * * * * * casting to dynamic arrays * * * * * * * * * * * DtoCastArray * * * * * * * * * * * * from array or sarray * * * * * * * * * * * * to array * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * isslice * * * * * * * * * * * DtoCastArray * * * * * * * * * * * * from array or sarray * * * * * * * * * * * * to array * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * isslice * * * * * * * * * * * DtoTypeInfoOf(type = 'const(ubyte)[]', base='1') * * * * * * * * * * * * Type::getTypeInfo(): const(ubyte)[] * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(const(ubyte)[])) * * * * * * * * * EqualExp::toElem: p.used_ == q.used_ @ bool * * * * * * * * * * DotVarExp::toElem: p.used_ @ const(ulong) * * * * * * * * * * * VarExp::toElem: p @ const(StreamingUnpacker) * * * * * * * * * * * * DtoSymbolAddress ('p' of type 'const(StreamingUnpacker)') * * * * * * * * * * * * * function param * * * * * * * * * * * * * type: const(StreamingUnpacker) * * * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.InternalBuffer!().used_: * * * * * * * * * * * * Value: %62 = getelementptr %msgpack.StreamingUnpacker, %msgpack.StreamingUnpacker* %p_arg, i32 0, i32 2 * * * * * * * * * * DotVarExp::toElem: q.used_ @ const(ulong) * * * * * * * * * * * VarExp::toElem: q @ const(StreamingUnpacker) * * * * * * * * * * * * DtoSymbolAddress ('q' of type 'const(StreamingUnpacker)') * * * * * * * * * * * * * function param * * * * * * * * * * * * * type: const(StreamingUnpacker) * * * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.InternalBuffer!().used_: * * * * * * * * * * * * Value: %63 = getelementptr %msgpack.StreamingUnpacker, %msgpack.StreamingUnpacker* %q_arg, i32 0, i32 2 * * * * * * * * * * integral or pointer or interface * * * * * * * * * * lv: %64 = load i64, i64* %62 * * * * * * * * * * rv: %65 = load i64, i64* %63 * * * * * * * * EqualExp::toElem: p.offset_ == q.offset_ @ bool * * * * * * * * * DotVarExp::toElem: p.offset_ @ const(ulong) * * * * * * * * * * VarExp::toElem: p @ const(StreamingUnpacker) * * * * * * * * * * * DtoSymbolAddress ('p' of type 'const(StreamingUnpacker)') * * * * * * * * * * * * function param * * * * * * * * * * * * type: const(StreamingUnpacker) * * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.InternalBuffer!().offset_: * * * * * * * * * * * Value: %67 = getelementptr %msgpack.StreamingUnpacker, %msgpack.StreamingUnpacker* %p_arg, i32 0, i32 3 * * * * * * * * * DotVarExp::toElem: q.offset_ @ const(ulong) * * * * * * * * * * VarExp::toElem: q @ const(StreamingUnpacker) * * * * * * * * * * * DtoSymbolAddress ('q' of type 'const(StreamingUnpacker)') * * * * * * * * * * * * function param * * * * * * * * * * * * type: const(StreamingUnpacker) * * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.InternalBuffer!().offset_: * * * * * * * * * * * Value: %68 = getelementptr %msgpack.StreamingUnpacker, %msgpack.StreamingUnpacker* %q_arg, i32 0, i32 3 * * * * * * * * * integral or pointer or interface * * * * * * * * * lv: %69 = load i64, i64* %67 * * * * * * * * * rv: %70 = load i64, i64* %68 * * * * * * * EqualExp::toElem: p.parsed_ == q.parsed_ @ bool * * * * * * * * DotVarExp::toElem: p.parsed_ @ const(ulong) * * * * * * * * * VarExp::toElem: p @ const(StreamingUnpacker) * * * * * * * * * * DtoSymbolAddress ('p' of type 'const(StreamingUnpacker)') * * * * * * * * * * * function param * * * * * * * * * * * type: const(StreamingUnpacker) * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.InternalBuffer!().parsed_: * * * * * * * * * * Value: %72 = getelementptr %msgpack.StreamingUnpacker, %msgpack.StreamingUnpacker* %p_arg, i32 0, i32 4 * * * * * * * * DotVarExp::toElem: q.parsed_ @ const(ulong) * * * * * * * * * VarExp::toElem: q @ const(StreamingUnpacker) * * * * * * * * * * DtoSymbolAddress ('q' of type 'const(StreamingUnpacker)') * * * * * * * * * * * function param * * * * * * * * * * * type: const(StreamingUnpacker) * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.InternalBuffer!().parsed_: * * * * * * * * * * Value: %73 = getelementptr %msgpack.StreamingUnpacker, %msgpack.StreamingUnpacker* %q_arg, i32 0, i32 4 * * * * * * * * integral or pointer or interface * * * * * * * * lv: %74 = load i64, i64* %72 * * * * * * * * rv: %75 = load i64, i64* %73 * * * * * * EqualExp::toElem: cast(int)p.hasRaw_ == cast(int)q.hasRaw_ @ bool * * * * * * * CastExp::toElem: cast(int)p.hasRaw_ @ int * * * * * * * * DotVarExp::toElem: p.hasRaw_ @ const(bool) * * * * * * * * * VarExp::toElem: p @ const(StreamingUnpacker) * * * * * * * * * * DtoSymbolAddress ('p' of type 'const(StreamingUnpacker)') * * * * * * * * * * * function param * * * * * * * * * * * type: const(StreamingUnpacker) * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.InternalBuffer!().hasRaw_: * * * * * * * * * * Value: %77 = getelementptr %msgpack.StreamingUnpacker, %msgpack.StreamingUnpacker* %p_arg, i32 0, i32 5 * * * * * * * * Casting from 'const(bool)' to 'int' * * * * * * * * * cast to: i32 * * * * * * * CastExp::toElem: cast(int)q.hasRaw_ @ int * * * * * * * * DotVarExp::toElem: q.hasRaw_ @ const(bool) * * * * * * * * * VarExp::toElem: q @ const(StreamingUnpacker) * * * * * * * * * * DtoSymbolAddress ('q' of type 'const(StreamingUnpacker)') * * * * * * * * * * * function param * * * * * * * * * * * type: const(StreamingUnpacker) * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.InternalBuffer!().hasRaw_: * * * * * * * * * * Value: %81 = getelementptr %msgpack.StreamingUnpacker, %msgpack.StreamingUnpacker* %q_arg, i32 0, i32 5 * * * * * * * * Casting from 'const(bool)' to 'int' * * * * * * * * * cast to: i32 * * * * * * * integral or pointer or interface * * * * * * * lv: %80 = zext i1 %79 to i32 * * * * * * * rv: %84 = zext i1 %83 to i32 * * * * * return value is '0x13360d28' * * DtoDefineFunction(msgpack.StreamingUnpacker.__xtoHash): * * * Doing function body for: __xtoHash * * * DtoCreateNestedContext for __xtoHash * * * * DtoCreateNestedContextType for msgpack.StreamingUnpacker.__xtoHash * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): * * * * * ExpStatement::toIR(): * * * * * * DeclarationExp::toElem: ulong h = 0LU; | T=void * * * * * * * DtoDeclarationExp: h * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * llvm value for decl: %h = alloca i64, align 8 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: h = 0LU | (ulong)(ulong = ulong) * * * * * * * * * * VarExp::toElem: h @ ulong * * * * * * * * * * * DtoSymbolAddress ('h' of type 'ulong') * * * * * * * * * * * * a normal variable * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * value = i64 0 * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %h = alloca i64, align 8 * * * * * * * * * * * rhs: i64 0 * * * * * UnrolledLoopStatement::toIR(): * * * * * * ScopeStatement::toIR(): * * * * * * * CompoundStatement::toIR(): * * * * * * * * ExpStatement::toIR(): * * * * * * * * * DeclarationExp::toElem: enum ulong i = 0LU; | T=void * * * * * * * * * * DtoDeclarationExp: i * * * * * * * * * * * VarDeclaration * * * * * * * * * * * Manifest constant, nothing to do. * * * * * * * * ExpStatement::toIR(): * * * * * * * * * DeclarationExp::toElem: alias T = const(Context); | T=void * * * * * * * * * * DtoDeclarationExp: T * * * * * * * * * * * Ignoring Symbol: alias * * * * * * * * ExpStatement::toIR(): * * * * * * * * * AddAssignExp::toElem: h += typeid(const(Context)).getHash(cast(const(void*))&p.context_) @ ulong * * * * * * * * * * Caching l-value of h += typeid(const(Context)).getHash(cast(const(void*))&p.context_) => h * * * * * * * * * * * VarExp::toElem: h @ ulong * * * * * * * * * * * * DtoSymbolAddress ('h' of type 'ulong') * * * * * * * * * * * * * a normal variable * * * * * * * * * * AddExp::toElem: h + typeid(const(Context)).getHash(cast(const(void*))&p.context_) @ ulong * * * * * * * * * * * VarExp::toElem: h @ ulong * * * * * * * * * * * CallExp::toElem: typeid(const(Context)).getHash(cast(const(void*))&p.context_) @ ulong * * * * * * * * * * * * DotVarExp::toElem: typeid(const(Context)).getHash @ const nothrow @trusted ulong(const(void*) p) * * * * * * * * * * * * * SymOffExp::toElem: typeid(const(Context)) @ object.TypeInfo * * * * * * * * * * * * * * DtoSymbolAddress ('typeid(const(Context))' of type 'object.TypeInfo_Const') * * * * * * * * * * * * * * * TypeInfoDeclaration * * * * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(const(Context))) * * * * * * * * * * * * * * * * type = 'const(Context)' * * * * * * * * * * * * * * * * typeinfo mangle: _D46TypeInfo_xS7msgpack17StreamingUnpacker7Context6__initZ * * * * * * * * * * * * * * * * TypeInfoConstDeclaration::llvmDefine() typeid(const(Context)) * * * * * * * * * * * * * * * * * DtoTypeInfoOf(type = 'Context', base='1') * * * * * * * * * * * * * * * * * * Type::getTypeInfo(): Context * * * * * * * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(Context)) * * * * * * * * * * * * * * Casting from 'TypeInfo_Const*' to 'object.TypeInfo' * * * * * * * * * * * * * * * src: %object.TypeInfo_Const* bitcast (%"typeid(const(Context))"* @_D46TypeInfo_xS7msgpack17StreamingUnpacker7Context6__initZ to %object.TypeInfo_Const*) * * * * * * * * * * * * * * * to type: %object.TypeInfo* * * * * * * * * * * * * * vthis: %object.TypeInfo* bitcast (%"typeid(const(Context))"* @_D46TypeInfo_xS7msgpack17StreamingUnpacker7Context6__initZ to %object.TypeInfo*) * * * * * * * * * * * * * funcval: %3 = load i64 (%object.TypeInfo*, i8*)*, i64 (%object.TypeInfo*, i8*)** %"typeid(const(Context)).getHash@vtbl", align 8 * * * * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * * * * DtoFunctionType(const nothrow @trusted ulong(const(void*) p)) * * * * * * * * * * * * * funcval casted: %"typeid(const(Context)).getHash" = load i64 (%object.TypeInfo*, i8*)*, i64 (%object.TypeInfo*, i8*)** %"typeid(const(Context)).getHash@vtbl", align 8 * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * %object.TypeInfo* bitcast (%"typeid(const(Context))"* @_D46TypeInfo_xS7msgpack17StreamingUnpacker7Context6__initZ to %object.TypeInfo*) * * * * * * * * * * * * * Function type: const nothrow @trusted ulong(const(void*) p) * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * CastExp::toElem: cast(const(void*))&p.context_ @ const(void*) * * * * * * * * * * * * * * * AddrExp::toElem: &p.context_ @ const(Context)* * * * * * * * * * * * * * * * * DotVarExp::toElem: p.context_ @ const(Context) * * * * * * * * * * * * * * * * * VarExp::toElem: p @ const(StreamingUnpacker) * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('p' of type 'const(StreamingUnpacker)') * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * type: const(StreamingUnpacker) * * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.context_: * * * * * * * * * * * * * * * * * * Value: %3 = getelementptr %msgpack.StreamingUnpacker, %msgpack.StreamingUnpacker* %p_arg, i32 0, i32 0 * * * * * * * * * * * * * * * * is nothing special * * * * * * * * * * * * * * * * lval: %3 = getelementptr %msgpack.StreamingUnpacker, %msgpack.StreamingUnpacker* %p_arg, i32 0, i32 0 * * * * * * * * * * * * * * * Casting from 'const(Context)*' to 'const(void*)' * * * * * * * * * * * * * * * * src: %3 = getelementptr %msgpack.StreamingUnpacker, %msgpack.StreamingUnpacker* %p_arg, i32 0, i32 0 * * * * * * * * * * * * * * * * to type: i8* * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %h = alloca i64, align 8 * * * * * * * * * * * rhs: %7 = add i64 %6, %5 * * * * * * ScopeStatement::toIR(): * * * * * * * CompoundStatement::toIR(): * * * * * * * * ExpStatement::toIR(): * * * * * * * * * DeclarationExp::toElem: enum ulong i = 1LU; | T=void * * * * * * * * * * DtoDeclarationExp: i * * * * * * * * * * * VarDeclaration * * * * * * * * * * * Manifest constant, nothing to do. * * * * * * * * ExpStatement::toIR(): * * * * * * * * * DeclarationExp::toElem: alias T = const(ubyte[]); | T=void * * * * * * * * * * DtoDeclarationExp: T * * * * * * * * * * * Ignoring Symbol: alias * * * * * * * * ExpStatement::toIR(): * * * * * * * * * AddAssignExp::toElem: h += typeid(const(ubyte[])).getHash(cast(const(void*))&p.buffer_) @ ulong * * * * * * * * * * Caching l-value of h += typeid(const(ubyte[])).getHash(cast(const(void*))&p.buffer_) => h * * * * * * * * * * * VarExp::toElem: h @ ulong * * * * * * * * * * * * DtoSymbolAddress ('h' of type 'ulong') * * * * * * * * * * * * * a normal variable * * * * * * * * * * AddExp::toElem: h + typeid(const(ubyte[])).getHash(cast(const(void*))&p.buffer_) @ ulong * * * * * * * * * * * VarExp::toElem: h @ ulong * * * * * * * * * * * CallExp::toElem: typeid(const(ubyte[])).getHash(cast(const(void*))&p.buffer_) @ ulong * * * * * * * * * * * * DotVarExp::toElem: typeid(const(ubyte[])).getHash @ const nothrow @trusted ulong(const(void*) p) * * * * * * * * * * * * * SymOffExp::toElem: typeid(const(ubyte[])) @ object.TypeInfo * * * * * * * * * * * * * * DtoSymbolAddress ('typeid(const(ubyte[]))' of type 'object.TypeInfo_Const') * * * * * * * * * * * * * * * TypeInfoDeclaration * * * * * * * * * * * * * * Casting from 'TypeInfo_Const*' to 'object.TypeInfo' * * * * * * * * * * * * * * * src: %object.TypeInfo_Const* bitcast (%"typeid(const(ubyte[]))"* @_D12TypeInfo_xAh6__initZ to %object.TypeInfo_Const*) * * * * * * * * * * * * * * * to type: %object.TypeInfo* * * * * * * * * * * * * * vthis: %object.TypeInfo* bitcast (%"typeid(const(ubyte[]))"* @_D12TypeInfo_xAh6__initZ to %object.TypeInfo*) * * * * * * * * * * * * * funcval: %10 = load i64 (%object.TypeInfo*, i8*)*, i64 (%object.TypeInfo*, i8*)** %"typeid(const(ubyte[])).getHash@vtbl", align 8 * * * * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * * * * DtoFunctionType(const nothrow @trusted ulong(const(void*) p)) * * * * * * * * * * * * * funcval casted: %"typeid(const(ubyte[])).getHash" = load i64 (%object.TypeInfo*, i8*)*, i64 (%object.TypeInfo*, i8*)** %"typeid(const(ubyte[])).getHash@vtbl", align 8 * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * %object.TypeInfo* bitcast (%"typeid(const(ubyte[]))"* @_D12TypeInfo_xAh6__initZ to %object.TypeInfo*) * * * * * * * * * * * * * Function type: const nothrow @trusted ulong(const(void*) p) * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * CastExp::toElem: cast(const(void*))&p.buffer_ @ const(void*) * * * * * * * * * * * * * * * AddrExp::toElem: &p.buffer_ @ const(ubyte[])* * * * * * * * * * * * * * * * * DotVarExp::toElem: p.buffer_ @ const(ubyte[]) * * * * * * * * * * * * * * * * * VarExp::toElem: p @ const(StreamingUnpacker) * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('p' of type 'const(StreamingUnpacker)') * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * type: const(StreamingUnpacker) * * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.InternalBuffer!().buffer_: * * * * * * * * * * * * * * * * * * Value: %10 = getelementptr %msgpack.StreamingUnpacker, %msgpack.StreamingUnpacker* %p_arg, i32 0, i32 1 * * * * * * * * * * * * * * * * is nothing special * * * * * * * * * * * * * * * * lval: %10 = getelementptr %msgpack.StreamingUnpacker, %msgpack.StreamingUnpacker* %p_arg, i32 0, i32 1 * * * * * * * * * * * * * * * Casting from 'const(ubyte[])*' to 'const(void*)' * * * * * * * * * * * * * * * * src: %10 = getelementptr %msgpack.StreamingUnpacker, %msgpack.StreamingUnpacker* %p_arg, i32 0, i32 1 * * * * * * * * * * * * * * * * to type: i8* * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %h = alloca i64, align 8 * * * * * * * * * * * rhs: %14 = add i64 %13, %12 * * * * * * ScopeStatement::toIR(): * * * * * * * CompoundStatement::toIR(): * * * * * * * * ExpStatement::toIR(): * * * * * * * * * DeclarationExp::toElem: enum ulong i = 2LU; | T=void * * * * * * * * * * DtoDeclarationExp: i * * * * * * * * * * * VarDeclaration * * * * * * * * * * * Manifest constant, nothing to do. * * * * * * * * ExpStatement::toIR(): * * * * * * * * * DeclarationExp::toElem: alias T = const(ulong); | T=void * * * * * * * * * * DtoDeclarationExp: T * * * * * * * * * * * Ignoring Symbol: alias * * * * * * * * ExpStatement::toIR(): * * * * * * * * * AddAssignExp::toElem: h += typeid(const(ulong)).getHash(cast(const(void*))&p.used_) @ ulong * * * * * * * * * * Caching l-value of h += typeid(const(ulong)).getHash(cast(const(void*))&p.used_) => h * * * * * * * * * * * VarExp::toElem: h @ ulong * * * * * * * * * * * * DtoSymbolAddress ('h' of type 'ulong') * * * * * * * * * * * * * a normal variable * * * * * * * * * * AddExp::toElem: h + typeid(const(ulong)).getHash(cast(const(void*))&p.used_) @ ulong * * * * * * * * * * * VarExp::toElem: h @ ulong * * * * * * * * * * * CallExp::toElem: typeid(const(ulong)).getHash(cast(const(void*))&p.used_) @ ulong * * * * * * * * * * * * DotVarExp::toElem: typeid(const(ulong)).getHash @ const nothrow @trusted ulong(const(void*) p) * * * * * * * * * * * * * SymOffExp::toElem: typeid(const(ulong)) @ object.TypeInfo * * * * * * * * * * * * * * DtoSymbolAddress ('typeid(const(ulong))' of type 'object.TypeInfo_Const') * * * * * * * * * * * * * * * TypeInfoDeclaration * * * * * * * * * * * * * * Casting from 'TypeInfo_Const*' to 'object.TypeInfo' * * * * * * * * * * * * * * * src: %object.TypeInfo_Const* bitcast (%"typeid(const(ulong))"* @_D11TypeInfo_xm6__initZ to %object.TypeInfo_Const*) * * * * * * * * * * * * * * * to type: %object.TypeInfo* * * * * * * * * * * * * * vthis: %object.TypeInfo* bitcast (%"typeid(const(ulong))"* @_D11TypeInfo_xm6__initZ to %object.TypeInfo*) * * * * * * * * * * * * * funcval: %17 = load i64 (%object.TypeInfo*, i8*)*, i64 (%object.TypeInfo*, i8*)** %"typeid(const(ulong)).getHash@vtbl", align 8 * * * * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * * * * DtoFunctionType(const nothrow @trusted ulong(const(void*) p)) * * * * * * * * * * * * * funcval casted: %"typeid(const(ulong)).getHash" = load i64 (%object.TypeInfo*, i8*)*, i64 (%object.TypeInfo*, i8*)** %"typeid(const(ulong)).getHash@vtbl", align 8 * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * %object.TypeInfo* bitcast (%"typeid(const(ulong))"* @_D11TypeInfo_xm6__initZ to %object.TypeInfo*) * * * * * * * * * * * * * Function type: const nothrow @trusted ulong(const(void*) p) * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * CastExp::toElem: cast(const(void*))&p.used_ @ const(void*) * * * * * * * * * * * * * * * AddrExp::toElem: &p.used_ @ const(ulong)* * * * * * * * * * * * * * * * * DotVarExp::toElem: p.used_ @ const(ulong) * * * * * * * * * * * * * * * * * VarExp::toElem: p @ const(StreamingUnpacker) * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('p' of type 'const(StreamingUnpacker)') * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * type: const(StreamingUnpacker) * * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.InternalBuffer!().used_: * * * * * * * * * * * * * * * * * * Value: %17 = getelementptr %msgpack.StreamingUnpacker, %msgpack.StreamingUnpacker* %p_arg, i32 0, i32 2 * * * * * * * * * * * * * * * * is nothing special * * * * * * * * * * * * * * * * lval: %17 = getelementptr %msgpack.StreamingUnpacker, %msgpack.StreamingUnpacker* %p_arg, i32 0, i32 2 * * * * * * * * * * * * * * * Casting from 'const(ulong)*' to 'const(void*)' * * * * * * * * * * * * * * * * src: %17 = getelementptr %msgpack.StreamingUnpacker, %msgpack.StreamingUnpacker* %p_arg, i32 0, i32 2 * * * * * * * * * * * * * * * * to type: i8* * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %h = alloca i64, align 8 * * * * * * * * * * * rhs: %21 = add i64 %20, %19 * * * * * * ScopeStatement::toIR(): * * * * * * * CompoundStatement::toIR(): * * * * * * * * ExpStatement::toIR(): * * * * * * * * * DeclarationExp::toElem: enum ulong i = 3LU; | T=void * * * * * * * * * * DtoDeclarationExp: i * * * * * * * * * * * VarDeclaration * * * * * * * * * * * Manifest constant, nothing to do. * * * * * * * * ExpStatement::toIR(): * * * * * * * * * DeclarationExp::toElem: alias T = const(ulong); | T=void * * * * * * * * * * DtoDeclarationExp: T * * * * * * * * * * * Ignoring Symbol: alias * * * * * * * * ExpStatement::toIR(): * * * * * * * * * AddAssignExp::toElem: h += typeid(const(ulong)).getHash(cast(const(void*))&p.offset_) @ ulong * * * * * * * * * * Caching l-value of h += typeid(const(ulong)).getHash(cast(const(void*))&p.offset_) => h * * * * * * * * * * * VarExp::toElem: h @ ulong * * * * * * * * * * * * DtoSymbolAddress ('h' of type 'ulong') * * * * * * * * * * * * * a normal variable * * * * * * * * * * AddExp::toElem: h + typeid(const(ulong)).getHash(cast(const(void*))&p.offset_) @ ulong * * * * * * * * * * * VarExp::toElem: h @ ulong * * * * * * * * * * * CallExp::toElem: typeid(const(ulong)).getHash(cast(const(void*))&p.offset_) @ ulong * * * * * * * * * * * * DotVarExp::toElem: typeid(const(ulong)).getHash @ const nothrow @trusted ulong(const(void*) p) * * * * * * * * * * * * * SymOffExp::toElem: typeid(const(ulong)) @ object.TypeInfo * * * * * * * * * * * * * * DtoSymbolAddress ('typeid(const(ulong))' of type 'object.TypeInfo_Const') * * * * * * * * * * * * * * * TypeInfoDeclaration * * * * * * * * * * * * * * Casting from 'TypeInfo_Const*' to 'object.TypeInfo' * * * * * * * * * * * * * * * src: %object.TypeInfo_Const* bitcast (%"typeid(const(ulong))"* @_D11TypeInfo_xm6__initZ to %object.TypeInfo_Const*) * * * * * * * * * * * * * * * to type: %object.TypeInfo* * * * * * * * * * * * * * vthis: %object.TypeInfo* bitcast (%"typeid(const(ulong))"* @_D11TypeInfo_xm6__initZ to %object.TypeInfo*) * * * * * * * * * * * * * funcval: %24 = load i64 (%object.TypeInfo*, i8*)*, i64 (%object.TypeInfo*, i8*)** %"typeid(const(ulong)).getHash@vtbl6", align 8 * * * * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * * * * DtoFunctionType(const nothrow @trusted ulong(const(void*) p)) * * * * * * * * * * * * * funcval casted: %"typeid(const(ulong)).getHash7" = load i64 (%object.TypeInfo*, i8*)*, i64 (%object.TypeInfo*, i8*)** %"typeid(const(ulong)).getHash@vtbl6", align 8 * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * %object.TypeInfo* bitcast (%"typeid(const(ulong))"* @_D11TypeInfo_xm6__initZ to %object.TypeInfo*) * * * * * * * * * * * * * Function type: const nothrow @trusted ulong(const(void*) p) * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * CastExp::toElem: cast(const(void*))&p.offset_ @ const(void*) * * * * * * * * * * * * * * * AddrExp::toElem: &p.offset_ @ const(ulong)* * * * * * * * * * * * * * * * * DotVarExp::toElem: p.offset_ @ const(ulong) * * * * * * * * * * * * * * * * * VarExp::toElem: p @ const(StreamingUnpacker) * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('p' of type 'const(StreamingUnpacker)') * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * type: const(StreamingUnpacker) * * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.InternalBuffer!().offset_: * * * * * * * * * * * * * * * * * * Value: %24 = getelementptr %msgpack.StreamingUnpacker, %msgpack.StreamingUnpacker* %p_arg, i32 0, i32 3 * * * * * * * * * * * * * * * * is nothing special * * * * * * * * * * * * * * * * lval: %24 = getelementptr %msgpack.StreamingUnpacker, %msgpack.StreamingUnpacker* %p_arg, i32 0, i32 3 * * * * * * * * * * * * * * * Casting from 'const(ulong)*' to 'const(void*)' * * * * * * * * * * * * * * * * src: %24 = getelementptr %msgpack.StreamingUnpacker, %msgpack.StreamingUnpacker* %p_arg, i32 0, i32 3 * * * * * * * * * * * * * * * * to type: i8* * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %h = alloca i64, align 8 * * * * * * * * * * * rhs: %28 = add i64 %27, %26 * * * * * * ScopeStatement::toIR(): * * * * * * * CompoundStatement::toIR(): * * * * * * * * ExpStatement::toIR(): * * * * * * * * * DeclarationExp::toElem: enum ulong i = 4LU; | T=void * * * * * * * * * * DtoDeclarationExp: i * * * * * * * * * * * VarDeclaration * * * * * * * * * * * Manifest constant, nothing to do. * * * * * * * * ExpStatement::toIR(): * * * * * * * * * DeclarationExp::toElem: alias T = const(ulong); | T=void * * * * * * * * * * DtoDeclarationExp: T * * * * * * * * * * * Ignoring Symbol: alias * * * * * * * * ExpStatement::toIR(): * * * * * * * * * AddAssignExp::toElem: h += typeid(const(ulong)).getHash(cast(const(void*))&p.parsed_) @ ulong * * * * * * * * * * Caching l-value of h += typeid(const(ulong)).getHash(cast(const(void*))&p.parsed_) => h * * * * * * * * * * * VarExp::toElem: h @ ulong * * * * * * * * * * * * DtoSymbolAddress ('h' of type 'ulong') * * * * * * * * * * * * * a normal variable * * * * * * * * * * AddExp::toElem: h + typeid(const(ulong)).getHash(cast(const(void*))&p.parsed_) @ ulong * * * * * * * * * * * VarExp::toElem: h @ ulong * * * * * * * * * * * CallExp::toElem: typeid(const(ulong)).getHash(cast(const(void*))&p.parsed_) @ ulong * * * * * * * * * * * * DotVarExp::toElem: typeid(const(ulong)).getHash @ const nothrow @trusted ulong(const(void*) p) * * * * * * * * * * * * * SymOffExp::toElem: typeid(const(ulong)) @ object.TypeInfo * * * * * * * * * * * * * * DtoSymbolAddress ('typeid(const(ulong))' of type 'object.TypeInfo_Const') * * * * * * * * * * * * * * * TypeInfoDeclaration * * * * * * * * * * * * * * Casting from 'TypeInfo_Const*' to 'object.TypeInfo' * * * * * * * * * * * * * * * src: %object.TypeInfo_Const* bitcast (%"typeid(const(ulong))"* @_D11TypeInfo_xm6__initZ to %object.TypeInfo_Const*) * * * * * * * * * * * * * * * to type: %object.TypeInfo* * * * * * * * * * * * * * vthis: %object.TypeInfo* bitcast (%"typeid(const(ulong))"* @_D11TypeInfo_xm6__initZ to %object.TypeInfo*) * * * * * * * * * * * * * funcval: %31 = load i64 (%object.TypeInfo*, i8*)*, i64 (%object.TypeInfo*, i8*)** %"typeid(const(ulong)).getHash@vtbl8", align 8 * * * * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * * * * DtoFunctionType(const nothrow @trusted ulong(const(void*) p)) * * * * * * * * * * * * * funcval casted: %"typeid(const(ulong)).getHash9" = load i64 (%object.TypeInfo*, i8*)*, i64 (%object.TypeInfo*, i8*)** %"typeid(const(ulong)).getHash@vtbl8", align 8 * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * %object.TypeInfo* bitcast (%"typeid(const(ulong))"* @_D11TypeInfo_xm6__initZ to %object.TypeInfo*) * * * * * * * * * * * * * Function type: const nothrow @trusted ulong(const(void*) p) * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * CastExp::toElem: cast(const(void*))&p.parsed_ @ const(void*) * * * * * * * * * * * * * * * AddrExp::toElem: &p.parsed_ @ const(ulong)* * * * * * * * * * * * * * * * * DotVarExp::toElem: p.parsed_ @ const(ulong) * * * * * * * * * * * * * * * * * VarExp::toElem: p @ const(StreamingUnpacker) * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('p' of type 'const(StreamingUnpacker)') * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * type: const(StreamingUnpacker) * * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.InternalBuffer!().parsed_: * * * * * * * * * * * * * * * * * * Value: %31 = getelementptr %msgpack.StreamingUnpacker, %msgpack.StreamingUnpacker* %p_arg, i32 0, i32 4 * * * * * * * * * * * * * * * * is nothing special * * * * * * * * * * * * * * * * lval: %31 = getelementptr %msgpack.StreamingUnpacker, %msgpack.StreamingUnpacker* %p_arg, i32 0, i32 4 * * * * * * * * * * * * * * * Casting from 'const(ulong)*' to 'const(void*)' * * * * * * * * * * * * * * * * src: %31 = getelementptr %msgpack.StreamingUnpacker, %msgpack.StreamingUnpacker* %p_arg, i32 0, i32 4 * * * * * * * * * * * * * * * * to type: i8* * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %h = alloca i64, align 8 * * * * * * * * * * * rhs: %35 = add i64 %34, %33 * * * * * * ScopeStatement::toIR(): * * * * * * * CompoundStatement::toIR(): * * * * * * * * ExpStatement::toIR(): * * * * * * * * * DeclarationExp::toElem: enum ulong i = 5LU; | T=void * * * * * * * * * * DtoDeclarationExp: i * * * * * * * * * * * VarDeclaration * * * * * * * * * * * Manifest constant, nothing to do. * * * * * * * * ExpStatement::toIR(): * * * * * * * * * DeclarationExp::toElem: alias T = const(bool); | T=void * * * * * * * * * * DtoDeclarationExp: T * * * * * * * * * * * Ignoring Symbol: alias * * * * * * * * ExpStatement::toIR(): * * * * * * * * * AddAssignExp::toElem: h += typeid(const(bool)).getHash(cast(const(void*))&p.hasRaw_) @ ulong * * * * * * * * * * Caching l-value of h += typeid(const(bool)).getHash(cast(const(void*))&p.hasRaw_) => h * * * * * * * * * * * VarExp::toElem: h @ ulong * * * * * * * * * * * * DtoSymbolAddress ('h' of type 'ulong') * * * * * * * * * * * * * a normal variable * * * * * * * * * * AddExp::toElem: h + typeid(const(bool)).getHash(cast(const(void*))&p.hasRaw_) @ ulong * * * * * * * * * * * VarExp::toElem: h @ ulong * * * * * * * * * * * CallExp::toElem: typeid(const(bool)).getHash(cast(const(void*))&p.hasRaw_) @ ulong * * * * * * * * * * * * DotVarExp::toElem: typeid(const(bool)).getHash @ const nothrow @trusted ulong(const(void*) p) * * * * * * * * * * * * * SymOffExp::toElem: typeid(const(bool)) @ object.TypeInfo * * * * * * * * * * * * * * DtoSymbolAddress ('typeid(const(bool))' of type 'object.TypeInfo_Const') * * * * * * * * * * * * * * * TypeInfoDeclaration * * * * * * * * * * * * * * Casting from 'TypeInfo_Const*' to 'object.TypeInfo' * * * * * * * * * * * * * * * src: %object.TypeInfo_Const* bitcast (%"typeid(const(bool))"* @_D11TypeInfo_xb6__initZ to %object.TypeInfo_Const*) * * * * * * * * * * * * * * * to type: %object.TypeInfo* * * * * * * * * * * * * * vthis: %object.TypeInfo* bitcast (%"typeid(const(bool))"* @_D11TypeInfo_xb6__initZ to %object.TypeInfo*) * * * * * * * * * * * * * funcval: %38 = load i64 (%object.TypeInfo*, i8*)*, i64 (%object.TypeInfo*, i8*)** %"typeid(const(bool)).getHash@vtbl", align 8 * * * * * * * * * * * * * isMember = this is: object.TypeInfo * * * * * * * * * * * * * DtoFunctionType(const nothrow @trusted ulong(const(void*) p)) * * * * * * * * * * * * * funcval casted: %"typeid(const(bool)).getHash" = load i64 (%object.TypeInfo*, i8*)*, i64 (%object.TypeInfo*, i8*)** %"typeid(const(bool)).getHash@vtbl", align 8 * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * %object.TypeInfo* bitcast (%"typeid(const(bool))"* @_D11TypeInfo_xb6__initZ to %object.TypeInfo*) * * * * * * * * * * * * * Function type: const nothrow @trusted ulong(const(void*) p) * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * CastExp::toElem: cast(const(void*))&p.hasRaw_ @ const(void*) * * * * * * * * * * * * * * * AddrExp::toElem: &p.hasRaw_ @ const(bool)* * * * * * * * * * * * * * * * * DotVarExp::toElem: p.hasRaw_ @ const(bool) * * * * * * * * * * * * * * * * * VarExp::toElem: p @ const(StreamingUnpacker) * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('p' of type 'const(StreamingUnpacker)') * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * type: const(StreamingUnpacker) * * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.InternalBuffer!().hasRaw_: * * * * * * * * * * * * * * * * * * Value: %38 = getelementptr %msgpack.StreamingUnpacker, %msgpack.StreamingUnpacker* %p_arg, i32 0, i32 5 * * * * * * * * * * * * * * * * is nothing special * * * * * * * * * * * * * * * * lval: %38 = getelementptr %msgpack.StreamingUnpacker, %msgpack.StreamingUnpacker* %p_arg, i32 0, i32 5 * * * * * * * * * * * * * * * Casting from 'const(bool)*' to 'const(void*)' * * * * * * * * * * * * * * * * src: %38 = getelementptr %msgpack.StreamingUnpacker, %msgpack.StreamingUnpacker* %p_arg, i32 0, i32 5 * * * * * * * * * * * * * * * * to type: i8* * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %h = alloca i64, align 8 * * * * * * * * * * * rhs: %41 = add i64 %40, %39 * * * * * ReturnStatement::toIR(): * * * * * * VarExp::toElem: h @ ulong * * * * * * * DtoSymbolAddress ('h' of type 'ulong') * * * * * * * * a normal variable * * * * * * return value is '0x1336d7c8' * DtoDefineFunction(msgpack.__unittestL4456_11): msgpack-d/src/msgpack.d(4456) * * Ignoring unittest msgpack.__unittestL4456_11 * * No code generation for unit test declaration __unittestL4456_11 * DtoDefineFunction(msgpack.callbackUInt): msgpack-d/src/msgpack.d(4501) * * Doing function body for: callbackUInt * * DtoCreateNestedContext for callbackUInt * * * DtoCreateNestedContextType for msgpack.callbackUInt * * CompoundStatement::toIR(): * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(4502) * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(4503) * * * * * AssignExp::toElem: value.type = cast(Type)2 | (Type)(Type = Type) * * * * * * DotVarExp::toElem: value.type @ Type * * * * * * * VarExp::toElem: value @ Value * * * * * * * * DtoSymbolAddress ('value' of type 'Value') * * * * * * * * * function param * * * * * * * * * type: Value * * * * * * * Indexing aggregate field msgpack.Value.type: * * * * * * * * Building type: Type * * * * * * * * Value: %1 = getelementptr %msgpack.Value, %msgpack.Value* %value_arg, i32 0, i32 0 * * * * * * IntegerExp::toElem: cast(Type)2 @ Type * * * * * * * IntegerExp::toConstElem: cast(Type)2 @ Type * * * * * * * * Building type: Type * * * * * * * * value = i32 2 * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * DtoAssign() * * * * * * * lhs: %1 = getelementptr %msgpack.Value, %msgpack.Value* %value_arg, i32 0, i32 0 * * * * * * * rhs: i32 2 * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(4504) * * * * * AssignExp::toElem: value.via.uinteger = number | (ulong)(ulong = ulong) * * * * * * DotVarExp::toElem: value.via.uinteger @ ulong * * * * * * * DotVarExp::toElem: value.via @ Via * * * * * * * * VarExp::toElem: value @ Value * * * * * * * * * DtoSymbolAddress ('value' of type 'Value') * * * * * * * * * * function param * * * * * * * * * * type: Value * * * * * * * * Indexing aggregate field msgpack.Value.via: * * * * * * * * * Value: %2 = getelementptr %msgpack.Value, %msgpack.Value* %value_arg, i32 0, i32 2 * * * * * * * Indexing aggregate field msgpack.Value.Via.uinteger: * * * * * * * * Value: %4 = bitcast i8* %3 to i64* * * * * * * VarExp::toElem: number @ ulong * * * * * * * DtoSymbolAddress ('number' of type 'ulong') * * * * * * * * function param * * * * * * * * type: ulong * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * DtoAssign() * * * * * * * lhs: %4 = bitcast i8* %3 to i64* * * * * * * * rhs: %5 = load i64, i64* %number * DtoDefineFunction(msgpack.callbackInt): msgpack-d/src/msgpack.d(4510) * * Doing function body for: callbackInt * * DtoCreateNestedContext for callbackInt * * * DtoCreateNestedContextType for msgpack.callbackInt * * CompoundStatement::toIR(): * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(4511) * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(4512) * * * * * AssignExp::toElem: value.type = cast(Type)3 | (Type)(Type = Type) * * * * * * DotVarExp::toElem: value.type @ Type * * * * * * * VarExp::toElem: value @ Value * * * * * * * * DtoSymbolAddress ('value' of type 'Value') * * * * * * * * * function param * * * * * * * * * type: Value * * * * * * * Indexing aggregate field msgpack.Value.type: * * * * * * * * Building type: Type * * * * * * * * Value: %1 = getelementptr %msgpack.Value, %msgpack.Value* %value_arg, i32 0, i32 0 * * * * * * IntegerExp::toElem: cast(Type)3 @ Type * * * * * * * IntegerExp::toConstElem: cast(Type)3 @ Type * * * * * * * * Building type: Type * * * * * * * * value = i32 3 * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * DtoAssign() * * * * * * * lhs: %1 = getelementptr %msgpack.Value, %msgpack.Value* %value_arg, i32 0, i32 0 * * * * * * * rhs: i32 3 * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(4513) * * * * * AssignExp::toElem: value.via.integer = number | (long)(long = long) * * * * * * DotVarExp::toElem: value.via.integer @ long * * * * * * * DotVarExp::toElem: value.via @ Via * * * * * * * * VarExp::toElem: value @ Value * * * * * * * * * DtoSymbolAddress ('value' of type 'Value') * * * * * * * * * * function param * * * * * * * * * * type: Value * * * * * * * * Indexing aggregate field msgpack.Value.via: * * * * * * * * * Value: %2 = getelementptr %msgpack.Value, %msgpack.Value* %value_arg, i32 0, i32 2 * * * * * * * Indexing aggregate field msgpack.Value.Via.integer: * * * * * * * * Value: %4 = bitcast i8* %3 to i64* * * * * * * VarExp::toElem: number @ long * * * * * * * DtoSymbolAddress ('number' of type 'long') * * * * * * * * function param * * * * * * * * type: long * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * DtoAssign() * * * * * * * lhs: %4 = bitcast i8* %3 to i64* * * * * * * * rhs: %5 = load i64, i64* %number * DtoDefineFunction(msgpack.callbackFloat): msgpack-d/src/msgpack.d(4519) * * Doing function body for: callbackFloat * * DtoCreateNestedContext for callbackFloat * * * DtoCreateNestedContextType for msgpack.callbackFloat * * CompoundStatement::toIR(): * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(4520) * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(4521) * * * * * AssignExp::toElem: value.type = cast(Type)4 | (Type)(Type = Type) * * * * * * DotVarExp::toElem: value.type @ Type * * * * * * * VarExp::toElem: value @ Value * * * * * * * * DtoSymbolAddress ('value' of type 'Value') * * * * * * * * * function param * * * * * * * * * type: Value * * * * * * * Indexing aggregate field msgpack.Value.type: * * * * * * * * Building type: Type * * * * * * * * Value: %1 = getelementptr %msgpack.Value, %msgpack.Value* %value_arg, i32 0, i32 0 * * * * * * IntegerExp::toElem: cast(Type)4 @ Type * * * * * * * IntegerExp::toConstElem: cast(Type)4 @ Type * * * * * * * * Building type: Type * * * * * * * * value = i32 4 * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * DtoAssign() * * * * * * * lhs: %1 = getelementptr %msgpack.Value, %msgpack.Value* %value_arg, i32 0, i32 0 * * * * * * * rhs: i32 4 * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(4522) * * * * * AssignExp::toElem: value.via.floating = number | (real)(real = real) * * * * * * DotVarExp::toElem: value.via.floating @ real * * * * * * * DotVarExp::toElem: value.via @ Via * * * * * * * * VarExp::toElem: value @ Value * * * * * * * * * DtoSymbolAddress ('value' of type 'Value') * * * * * * * * * * function param * * * * * * * * * * type: Value * * * * * * * * Indexing aggregate field msgpack.Value.via: * * * * * * * * * Value: %2 = getelementptr %msgpack.Value, %msgpack.Value* %value_arg, i32 0, i32 2 * * * * * * * Indexing aggregate field msgpack.Value.Via.floating: * * * * * * * * Value: %4 = bitcast i8* %3 to x86_fp80* * * * * * * VarExp::toElem: number @ real * * * * * * * DtoSymbolAddress ('number' of type 'real') * * * * * * * * function param * * * * * * * * type: real * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * DtoAssign() * * * * * * * lhs: %4 = bitcast i8* %3 to x86_fp80* * * * * * * * rhs: %5 = load x86_fp80, x86_fp80* %number * DtoDefineFunction(msgpack.callbackRaw): msgpack-d/src/msgpack.d(4528) * * Doing function body for: callbackRaw * * DtoCreateNestedContext for callbackRaw * * * DtoCreateNestedContextType for msgpack.callbackRaw * * CompoundStatement::toIR(): * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(4529) * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(4530) * * * * * AssignExp::toElem: value.type = cast(Type)7 | (Type)(Type = Type) * * * * * * DotVarExp::toElem: value.type @ Type * * * * * * * VarExp::toElem: value @ Value * * * * * * * * DtoSymbolAddress ('value' of type 'Value') * * * * * * * * * function param * * * * * * * * * type: Value * * * * * * * Indexing aggregate field msgpack.Value.type: * * * * * * * * Building type: Type * * * * * * * * Value: %1 = getelementptr %msgpack.Value, %msgpack.Value* %value_arg, i32 0, i32 0 * * * * * * IntegerExp::toElem: cast(Type)7 @ Type * * * * * * * IntegerExp::toConstElem: cast(Type)7 @ Type * * * * * * * * Building type: Type * * * * * * * * value = i32 7 * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * DtoAssign() * * * * * * * lhs: %1 = getelementptr %msgpack.Value, %msgpack.Value* %value_arg, i32 0, i32 0 * * * * * * * rhs: i32 7 * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(4531) * * * * * AssignExp::toElem: value.via.raw = raw | (ubyte[])(ubyte[] = ubyte[]) * * * * * * DotVarExp::toElem: value.via.raw @ ubyte[] * * * * * * * DotVarExp::toElem: value.via @ Via * * * * * * * * VarExp::toElem: value @ Value * * * * * * * * * DtoSymbolAddress ('value' of type 'Value') * * * * * * * * * * function param * * * * * * * * * * type: Value * * * * * * * * Indexing aggregate field msgpack.Value.via: * * * * * * * * * Value: %2 = getelementptr %msgpack.Value, %msgpack.Value* %value_arg, i32 0, i32 2 * * * * * * * Indexing aggregate field msgpack.Value.Via.raw: * * * * * * * * Value: %4 = bitcast i8* %3 to { i64, i8* }* * * * * * * VarExp::toElem: raw @ ubyte[] * * * * * * * DtoSymbolAddress ('raw' of type 'ubyte[]') * * * * * * * * function param * * * * * * * * type: ubyte[] * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * DtoAssign() * * * * * * * DtoArrayAssign * * * * * * * * DtoArrayPtr * * * * * * * * DtoArrayLen * * * * * * * * SetArray * DtoDefineFunction(msgpack.callbackArray): msgpack-d/src/msgpack.d(4537) * * Doing function body for: callbackArray * * DtoCreateNestedContext for callbackArray * * * DtoCreateNestedContextType for msgpack.callbackArray * * CompoundStatement::toIR(): * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(4538) * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(4539) * * * * * AssignExp::toElem: value.type = cast(Type)5 | (Type)(Type = Type) * * * * * * DotVarExp::toElem: value.type @ Type * * * * * * * VarExp::toElem: value @ Value * * * * * * * * DtoSymbolAddress ('value' of type 'Value') * * * * * * * * * function param * * * * * * * * * type: Value * * * * * * * Indexing aggregate field msgpack.Value.type: * * * * * * * * Building type: Type * * * * * * * * Value: %1 = getelementptr %msgpack.Value, %msgpack.Value* %value_arg, i32 0, i32 0 * * * * * * IntegerExp::toElem: cast(Type)5 @ Type * * * * * * * IntegerExp::toConstElem: cast(Type)5 @ Type * * * * * * * * Building type: Type * * * * * * * * value = i32 5 * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * DtoAssign() * * * * * * * lhs: %1 = getelementptr %msgpack.Value, %msgpack.Value* %value_arg, i32 0, i32 0 * * * * * * * rhs: i32 5 * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(4540) * * * * * AssignExp::toElem: value.via.array.length = 0LU | (ulong)(ulong = ulong) * * * * * * performing array.length assignment * * * * * * DotVarExp::toElem: value.via.array @ Value[] * * * * * * * DotVarExp::toElem: value.via @ Via * * * * * * * * VarExp::toElem: value @ Value * * * * * * * * * DtoSymbolAddress ('value' of type 'Value') * * * * * * * * * * function param * * * * * * * * * * type: Value * * * * * * * * Indexing aggregate field msgpack.Value.via: * * * * * * * * * Value: %2 = getelementptr %msgpack.Value, %msgpack.Value* %value_arg, i32 0, i32 2 * * * * * * * Indexing aggregate field msgpack.Value.Via.array: * * * * * * * * Value: %4 = bitcast i8* %3 to { i64, %msgpack.Value* }* * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * value = i64 0 * * * * * * DtoResizeDynArray : Value[] * * * * * * * DtoTypeInfoOf(type = 'Value[]', base='1') * * * * * * * * Type::getTypeInfo(): Value[] * * * * * * * * TypeInfoDeclaration::codegen(typeid(Value[])) * * * * * * DtoAssign() * * * * * * * DtoArrayAssign * * * * * * * * DtoArrayPtr * * * * * * * * DtoArrayLen * * * * * * * * SetArray * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(4541) * * * * * CallExp::toElem: reserve(value.via.array, length) @ ulong * * * * * * VarExp::toElem: reserve @ pure nothrow @trusted ulong(ref Value[] arr, ulong newcapacity) * * * * * * * DtoSymbolAddress ('reserve' of type 'pure nothrow @trusted ulong(ref Value[] arr, ulong newcapacity)') * * * * * * * * FuncDeclaration * * * * * * DtoCallFunction() * * * * * * * Building type: pure nothrow @trusted ulong(ref Value[] arr, ulong newcapacity) * * * * * * * * DtoFunctionType(pure nothrow @trusted ulong(ref Value[] arr, ulong newcapacity)) * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * Final function type: i64 (i64, { i64, %msgpack.Value* }*) * * * * * * * doing normal arguments * * * * * * * Arguments so far: (0) * * * * * * * Function type: pure nothrow @trusted ulong(ref Value[] arr, ulong newcapacity) * * * * * * * DtoArgument * * * * * * * * DotVarExp::toElem: value.via.array @ Value[] * * * * * * * * * DotVarExp::toElem: value.via @ Via * * * * * * * * * * VarExp::toElem: value @ Value * * * * * * * * * * * DtoSymbolAddress ('value' of type 'Value') * * * * * * * * * * * * function param * * * * * * * * * * * * type: Value * * * * * * * * * * Indexing aggregate field msgpack.Value.via: * * * * * * * * * * * Value: %8 = getelementptr %msgpack.Value, %msgpack.Value* %value_arg, i32 0, i32 2 * * * * * * * * * Indexing aggregate field msgpack.Value.Via.array: * * * * * * * * * * Value: %10 = bitcast i8* %9 to { i64, %msgpack.Value* }* * * * * * * * DtoArgument * * * * * * * * VarExp::toElem: length @ ulong * * * * * * * * * DtoSymbolAddress ('length' of type 'ulong') * * * * * * * * * * function param * * * * * * * * * * type: ulong * DtoDefineFunction(msgpack.callbackMap): msgpack-d/src/msgpack.d(4547) * * Doing function body for: callbackMap * * DtoCreateNestedContext for callbackMap * * * DtoCreateNestedContextType for msgpack.callbackMap * * CompoundStatement::toIR(): * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(4548) * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(4549) * * * * * AssignExp::toElem: value.type = cast(Type)6 | (Type)(Type = Type) * * * * * * DotVarExp::toElem: value.type @ Type * * * * * * * VarExp::toElem: value @ Value * * * * * * * * DtoSymbolAddress ('value' of type 'Value') * * * * * * * * * function param * * * * * * * * * type: Value * * * * * * * Indexing aggregate field msgpack.Value.type: * * * * * * * * Building type: Type * * * * * * * * Value: %1 = getelementptr %msgpack.Value, %msgpack.Value* %value_arg, i32 0, i32 0 * * * * * * IntegerExp::toElem: cast(Type)6 @ Type * * * * * * * IntegerExp::toConstElem: cast(Type)6 @ Type * * * * * * * * Building type: Type * * * * * * * * value = i32 6 * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * DtoAssign() * * * * * * * lhs: %1 = getelementptr %msgpack.Value, %msgpack.Value* %value_arg, i32 0, i32 0 * * * * * * * rhs: i32 6 * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(4550) * * * * * AssignExp::toElem: value.via.map = cast(Value[Value])null | (Value[Value])(Value[Value] = Value[Value]) * * * * * * DotVarExp::toElem: value.via.map @ Value[Value] * * * * * * * DotVarExp::toElem: value.via @ Via * * * * * * * * VarExp::toElem: value @ Value * * * * * * * * * DtoSymbolAddress ('value' of type 'Value') * * * * * * * * * * function param * * * * * * * * * * type: Value * * * * * * * * Indexing aggregate field msgpack.Value.via: * * * * * * * * * Value: %2 = getelementptr %msgpack.Value, %msgpack.Value* %value_arg, i32 0, i32 2 * * * * * * * Indexing aggregate field msgpack.Value.Via.map: * * * * * * * * Building type: Value[Value] * * * * * * * * Value: %4 = bitcast i8* %3 to i8** * * * * * * CastExp::toElem: cast(Value[Value])null @ Value[Value] * * * * * * * NullExp::toElem(type=typeof(null)): null * * * * * * * * NullExp::toConstElem(type=typeof(null)): null * * * * * * * Casting from 'typeof(null)' to 'Value[Value]' * * * * * * * * Building type: Value[Value] * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * DtoAssign() * * * * * * * lhs: %4 = bitcast i8* %3 to i8** * * * * * * * rhs: i8* null * DtoDefineFunction(msgpack.callbackNil): msgpack-d/src/msgpack.d(4556) * * Doing function body for: callbackNil * * DtoCreateNestedContext for callbackNil * * * DtoCreateNestedContextType for msgpack.callbackNil * * CompoundStatement::toIR(): * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(4558) * * * * AssignExp::toElem: value.type = cast(Type)0 | (Type)(Type = Type) * * * * * DotVarExp::toElem: value.type @ Type * * * * * * VarExp::toElem: value @ Value * * * * * * * DtoSymbolAddress ('value' of type 'Value') * * * * * * * * function param * * * * * * * * type: Value * * * * * * Indexing aggregate field msgpack.Value.type: * * * * * * * Building type: Type * * * * * * * Value: %1 = getelementptr %msgpack.Value, %msgpack.Value* %value_arg, i32 0, i32 0 * * * * * IntegerExp::toElem: cast(Type)0 @ Type * * * * * * IntegerExp::toConstElem: cast(Type)0 @ Type * * * * * * * Building type: Type * * * * * * * value = i32 0 * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * DtoAssign() * * * * * * lhs: %1 = getelementptr %msgpack.Value, %msgpack.Value* %value_arg, i32 0, i32 0 * * * * * * rhs: i32 0 * DtoDefineFunction(msgpack.callbackBool): msgpack-d/src/msgpack.d(4564) * * Doing function body for: callbackBool * * DtoCreateNestedContext for callbackBool * * * DtoCreateNestedContextType for msgpack.callbackBool * * CompoundStatement::toIR(): * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(4565) * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(4566) * * * * * AssignExp::toElem: value.type = cast(Type)1 | (Type)(Type = Type) * * * * * * DotVarExp::toElem: value.type @ Type * * * * * * * VarExp::toElem: value @ Value * * * * * * * * DtoSymbolAddress ('value' of type 'Value') * * * * * * * * * function param * * * * * * * * * type: Value * * * * * * * Indexing aggregate field msgpack.Value.type: * * * * * * * * Building type: Type * * * * * * * * Value: %2 = getelementptr %msgpack.Value, %msgpack.Value* %value_arg, i32 0, i32 0 * * * * * * IntegerExp::toElem: cast(Type)1 @ Type * * * * * * * IntegerExp::toConstElem: cast(Type)1 @ Type * * * * * * * * Building type: Type * * * * * * * * value = i32 1 * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * DtoAssign() * * * * * * * lhs: %2 = getelementptr %msgpack.Value, %msgpack.Value* %value_arg, i32 0, i32 0 * * * * * * * rhs: i32 1 * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(4567) * * * * * AssignExp::toElem: value.via.boolean = boolean | (bool)(bool = bool) * * * * * * DotVarExp::toElem: value.via.boolean @ bool * * * * * * * DotVarExp::toElem: value.via @ Via * * * * * * * * VarExp::toElem: value @ Value * * * * * * * * * DtoSymbolAddress ('value' of type 'Value') * * * * * * * * * * function param * * * * * * * * * * type: Value * * * * * * * * Indexing aggregate field msgpack.Value.via: * * * * * * * * * Value: %3 = getelementptr %msgpack.Value, %msgpack.Value* %value_arg, i32 0, i32 2 * * * * * * * Indexing aggregate field msgpack.Value.Via.boolean: * * * * * * * * Value: %4 = getelementptr %msgpack.Value.Via, %msgpack.Value.Via* %3, i32 0, i32 0 * * * * * * VarExp::toElem: boolean @ bool * * * * * * * DtoSymbolAddress ('boolean' of type 'bool') * * * * * * * * function param * * * * * * * * type: bool * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * DtoAssign() * DtoDefineFunction(msgpack.__unittestL4571_12): msgpack-d/src/msgpack.d(4571) * * Ignoring unittest msgpack.__unittestL4571_12 * * No code generation for unit test declaration __unittestL4571_12 * DtoDefineFunction(msgpack.onCastError): msgpack-d/src/msgpack.d(4627) * * DtoFunctionType(pure @safe void()) * * * x86-64 ABI: Transforming argument types * * * Final function type: void () * * DtoResolveFunction(msgpack.onCastError): msgpack-d/src/msgpack.d(4627) * * * DtoDeclareFunction(msgpack.onCastError): msgpack-d/src/msgpack.d(4627) * * * * DtoFunctionType(pure @safe void()) * * * * func = declare void @_D7msgpack11onCastErrorFNaNfZv() * * Doing function body for: onCastError * * DtoCreateNestedContext for onCastError * * * DtoCreateNestedContextType for msgpack.onCastError * * CompoundStatement::toIR(): * * * ThrowStatement::toIR(): msgpack-d/src/msgpack.d(4629) * * * * NewExp::toElem: new MessagePackException("Attempt to cast with another type") @ msgpack.MessagePackException * * * * * new class * * * * * Calling constructor * * * * * DtoCallFunction() * * * * * * doing normal arguments * * * * * * Arguments so far: (1) * * * * * * * %.newclass_gc = bitcast %object.Object* %.newclass_gc_alloc to %msgpack.MessagePackException* * * * * * * Function type: pure @trusted MessagePackException(string message) * * * * * * DtoArgument * * * * * * * StringExp::toElem: "Attempt to cast with another type" @ string * * * * * * * * type: [34 x i8] * * * * * * * * init: [34 x i8] c"Attempt to cast with another type\00" * DtoDefineFunction(msgpack.onInvalidType): msgpack-d/src/msgpack.d(4637) * * Doing function body for: onInvalidType * * DtoCreateNestedContext for onInvalidType * * * DtoCreateNestedContextType for msgpack.onInvalidType * * CompoundStatement::toIR(): * * * ThrowStatement::toIR(): msgpack-d/src/msgpack.d(4639) * * * * NewExp::toElem: new MessagePackException("Attempt to unpack with non-compatible type") @ msgpack.MessagePackException * * * * * new class * * * * * Calling constructor * * * * * DtoCallFunction() * * * * * * doing normal arguments * * * * * * Arguments so far: (1) * * * * * * * %.newclass_gc = bitcast %object.Object* %.newclass_gc_alloc to %msgpack.MessagePackException* * * * * * * Function type: pure @trusted MessagePackException(string message) * * * * * * DtoArgument * * * * * * * StringExp::toElem: "Attempt to unpack with non-compatible type" @ string * * * * * * * * type: [43 x i8] * * * * * * * * init: [43 x i8] c"Attempt to unpack with non-compatible type\00" * Ignoring Dsymbol::codegen for msgpack.MessagePackable(Members...) * DtoDefineFunction(msgpack.__unittestL4783_13): msgpack-d/src/msgpack.d(4783) * * Ignoring unittest msgpack.__unittestL4783_13 * * No code generation for unit test declaration __unittestL4783_13 * Ignoring EnumDeclaration::codegen: 'msgpack.Format' * StructDeclaration::codegen: 'msgpack._f' * * VarDeclaration::codegen(): 'msgpack._f.f' * * * DtoResolveVariable(msgpack._f.f) * * VarDeclaration::codegen(): 'msgpack._f.i' * * * DtoResolveVariable(msgpack._f.i) * * Building default initializer for msgpack._f * * * Creating initializer constant for _f * * * * Implicit initializer: f @+0 * * * * * DtoConstExpInit(targetType = float, exp = nanF) * * * * * * RealExp::toConstElem: nanF @ float | nan * * * * adding field f * * * * final initializer: %msgpack._f_init <{ float 0x7FFC000000000000 }> * * DtoTypeInfoOf(type = '_f', base='1') * * * Type::getTypeInfo(): _f * * * * TypeInfoDeclaration::codegen(typeid(_f)) * * * * * type = '_f' * * * * * typeinfo mangle: _D21TypeInfo_S7msgpack2_f6__initZ * * * * * TypeInfoStructDeclaration::llvmDefine() typeid(_f) * * * * * * DtoTypeInfoOf(type = 'int', base='1') * * * * * * * Type::getTypeInfo(): int * * * * * * * TypeInfoDeclaration::codegen(typeid(int)) * * * * * * IntegerExp::toConstElem: cast(void*)305419896LU @ void* * * * * * * * pointer * * * TypeInfoDeclaration::codegen(typeid(_f)) * StructDeclaration::codegen: 'msgpack._d' * * VarDeclaration::codegen(): 'msgpack._d.f' * * * DtoResolveVariable(msgpack._d.f) * * VarDeclaration::codegen(): 'msgpack._d.i' * * * DtoResolveVariable(msgpack._d.i) * * Building default initializer for msgpack._d * * * Creating initializer constant for _d * * * * Implicit initializer: f @+0 * * * * * DtoConstExpInit(targetType = double, exp = nan) * * * * * * RealExp::toConstElem: nan @ double | nan * * * * adding field f * * * * final initializer: %msgpack._d_init <{ double 0x7FFC000000000000 }> * * DtoTypeInfoOf(type = '_d', base='1') * * * Type::getTypeInfo(): _d * * * * TypeInfoDeclaration::codegen(typeid(_d)) * * * * * type = '_d' * * * * * typeinfo mangle: _D21TypeInfo_S7msgpack2_d6__initZ * * * * * TypeInfoStructDeclaration::llvmDefine() typeid(_d) * * * * * * DtoTypeInfoOf(type = 'long', base='1') * * * * * * * Type::getTypeInfo(): long * * * * * * * TypeInfoDeclaration::codegen(typeid(long)) * * * * * * * * type = 'long' * * * * * * * * typeinfo mangle: _D10TypeInfo_l6__initZ * * * * * * IntegerExp::toConstElem: cast(void*)305419896LU @ void* * * * * * * * pointer * * * TypeInfoDeclaration::codegen(typeid(_d)) * StructDeclaration::codegen: 'msgpack._r' * * VarDeclaration::codegen(): 'msgpack._r.f' * * * DtoResolveVariable(msgpack._r.f) * * VarDeclaration::codegen(): 'msgpack._r.fraction' * * * DtoResolveVariable(msgpack._r.fraction) * * VarDeclaration::codegen(): 'msgpack._r.exponent' * * * DtoResolveVariable(msgpack._r.exponent) * * Building default initializer for msgpack._r * * * Creating initializer constant for _r * * * * Implicit initializer: f @+0 * * * * * DtoConstExpInit(targetType = real, exp = nanL) * * * * * * RealExp::toConstElem: nanL @ real | nan * * * * adding field f * * * * final initializer: %msgpack._r_init <{ x86_fp80 0xK7FFFA000000000000000 }> * * DtoTypeInfoOf(type = '_r', base='1') * * * Type::getTypeInfo(): _r * * * * TypeInfoDeclaration::codegen(typeid(_r)) * * * * * type = '_r' * * * * * typeinfo mangle: _D21TypeInfo_S7msgpack2_r6__initZ * * * * * TypeInfoStructDeclaration::llvmDefine() typeid(_r) * * * * * * IntegerExp::toConstElem: cast(void*)305419896LU @ void* * * * * * * * pointer * * * TypeInfoDeclaration::codegen(typeid(_r)) * VarDeclaration::codegen(): 'msgpack.RealSize' * * DtoResolveVariable(msgpack.RealSize) * Ignoring Dsymbol::codegen for msgpack.isByte(T) * DtoDefineFunction(msgpack.__unittestL4963_14): msgpack-d/src/msgpack.d(4963) * * Ignoring unittest msgpack.__unittestL4963_14 * * No code generation for unit test declaration __unittestL4963_14 * Ignoring Dsymbol::codegen for msgpack.AsteriskOf(T) * Ignoring Dsymbol::codegen for msgpack.SerializingMemberNumbers(Classes...) * Ignoring Dsymbol::codegen for msgpack.SerializingClasses(T) * Ignoring Dsymbol::codegen for msgpack.getFieldName(Type, ulong i) * Ignoring Dsymbol::codegen for msgpack.convertEndianTo(ulong Bit, T)(in T value) if (Bit == 16) * Ignoring Dsymbol::codegen for msgpack.convertEndianTo(ulong Bit, T)(in T value) if (Bit == 32) * Ignoring Dsymbol::codegen for msgpack.convertEndianTo(ulong Bit, T)(in T value) if (Bit == 64) * DtoDefineFunction(msgpack.__unittestL5066_15): msgpack-d/src/msgpack.d(5066) * * Ignoring unittest msgpack.__unittestL5066_15 * * No code generation for unit test declaration __unittestL5066_15 * Ignoring Dsymbol::codegen for msgpack.take8from(ulong bit = 8, T)(T value) * DtoDefineFunction(msgpack.__unittestL5086_16): msgpack-d/src/msgpack.d(5086) * * Ignoring unittest msgpack.__unittestL5086_16 * * No code generation for unit test declaration __unittestL5086_16 * Ignoring Dsymbol::codegen for msgpack.load16To(T)(ubyte[] buffer) * Ignoring Dsymbol::codegen for msgpack.load32To(T)(ubyte[] buffer) * Ignoring Dsymbol::codegen for msgpack.load64To(T)(ubyte[] buffer) * TemplateInstance::codegen: 'msgpack.PackerImpl!(Appender!(ubyte[]))' * * StructDeclaration::codegen: 'msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl' * * * Resolving struct type: PackerImpl (msgpack-d/src/msgpack.d(303)) * * * * Building type: PackerImpl!(Appender!(ubyte[])) * * * * * Building struct type msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl @ msgpack-d/src/msgpack.d(303) * * * * * * adding default initializer for struct field stream_ * * * * * * adding default initializer for struct field store_ * * * * * * adding default initializer for struct field withFieldName_ * * * * * * Building type: ubyte[11] * * * * * * final struct type: %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl" = type { %"std.array.Appender!(ubyte[]).Appender", [11 x i8], i8, [4 x i8] } * * * Ignoring Dsymbol::codegen for msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.PackHandler * * * VarDeclaration::codegen(): 'msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.packHandlers' * * * * DtoResolveVariable(msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.packHandlers) * * * * * data segment * * * * * parent: PackerImpl (struct) * * * * * Building type: void delegate(ref PackerImpl!(Appender!(ubyte[])), void*) @system[TypeInfo] * * * * * @_D7msgpack55__T10PackerImplTS3std5array16__T8AppenderTAhZ8AppenderZ10PackerImpl12packHandlersHC8TypeInfoDFKS7msgpack55__T10PackerImplTS3std5array16__T8AppenderTAhZ8AppenderZ10PackerImplPvZv = external thread_local global i8*, align 8 * * * * data segment * * * * const default initializer for void delegate(ref PackerImpl!(Appender!(ubyte[])), void*) @system[TypeInfo] * * * * DtoConstExpInit(targetType = void delegate(ref PackerImpl!(Appender!(ubyte[])), void*) @system[TypeInfo], exp = null) * * * * * NullExp::toConstElem(type=void delegate(ref PackerImpl!(Appender!(ubyte[])), void*) @system[TypeInfo]): null * * * * * * Building type: void delegate(ref PackerImpl!(Appender!(ubyte[])), void*) @system[TypeInfo] * * * * @_D7msgpack55__T10PackerImplTS3std5array16__T8AppenderTAhZ8AppenderZ10PackerImpl12packHandlersHC8TypeInfoDFKS7msgpack55__T10PackerImplTS3std5array16__T8AppenderTAhZ8AppenderZ10PackerImplPvZv = weak_odr thread_local global i8* null, comdat, align 8 * * * Ignoring Dsymbol::codegen for msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.registerHandler(T, alias Handler)() * * * VarDeclaration::codegen(): 'msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.Offset' * * * * DtoResolveVariable(msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.Offset) * * * VarDeclaration::codegen(): 'msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.stream_' * * * * DtoResolveVariable(msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.stream_) * * * VarDeclaration::codegen(): 'msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.store_' * * * * DtoResolveVariable(msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.store_) * * * VarDeclaration::codegen(): 'msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.withFieldName_' * * * * DtoResolveVariable(msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.withFieldName_) * * * DtoDefineFunction(msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.this): msgpack-d/src/msgpack.d(334) * * * * isMember = this is: PackerImpl!(Appender!(ubyte[])) * * * * DtoFunctionType(pure nothrow @nogc ref @trusted PackerImpl!(Appender!(ubyte[]))(Appender!(ubyte[]) stream, bool withFieldName = false)) * * * * * Building type: PackerImpl!(Appender!(ubyte[]))* * * * * * x86-64 ABI: Transforming argument types * * * * * Final function type: %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* (%"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"*, i1, %"std.array.Appender!(ubyte[]).Appender") * * * * DtoResolveFunction(msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.this): msgpack-d/src/msgpack.d(334) * * * * * DtoDeclareFunction(msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.this): msgpack-d/src/msgpack.d(334) * * * * * * isMember = this is: PackerImpl!(Appender!(ubyte[])) * * * * * * DtoFunctionType(pure nothrow @nogc ref @trusted PackerImpl!(Appender!(ubyte[]))(Appender!(ubyte[]) stream, bool withFieldName = false)) * * * * * * func = declare %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* @_D7msgpack55__T10PackerImplTS3std5array16__T8AppenderTAhZ8AppenderZ10PackerImpl6__ctorMFNaNbNcNiNeS3std5array16__T8AppenderTAhZ8AppenderbZS7msgpack55__T10PackerImplTS3std5array16__T8AppenderTAhZ8AppenderZ10PackerImpl(%"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"*, i1, %"std.array.Appender!(ubyte[]).Appender") * * * * Doing function body for: this * * * * DtoCreateNestedContext for this * * * * * DtoCreateNestedContextType for msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.this * * * * CompoundStatement::toIR(): * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(334) * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(335) * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(336) * * * * * * * * AssignExp::toElem: this.stream_ = stream | (Appender!(ubyte[]))(Appender!(ubyte[]) = Appender!(ubyte[])) * * * * * * * * * DotVarExp::toElem: this.stream_ @ Appender!(ubyte[]) * * * * * * * * * * ThisExp::toElem: this @ PackerImpl!(Appender!(ubyte[])) * * * * * * * * * * * normal this exp * * * * * * * * * * Indexing aggregate field msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.stream_: * * * * * * * * * * * Value: %2 = getelementptr %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl", %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* %.this_arg, i32 0, i32 0 * * * * * * * * * VarExp::toElem: stream @ Appender!(ubyte[]) * * * * * * * * * * DtoSymbolAddress ('stream' of type 'Appender!(ubyte[])') * * * * * * * * * * * function param * * * * * * * * * * * type: Appender!(ubyte[]) * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * DtoAssign() * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(337) * * * * * * * * AssignExp::toElem: this.withFieldName_ = withFieldName | (bool)(bool = bool) * * * * * * * * * DotVarExp::toElem: this.withFieldName_ @ bool * * * * * * * * * * ThisExp::toElem: this @ PackerImpl!(Appender!(ubyte[])) * * * * * * * * * * * normal this exp * * * * * * * * * * Indexing aggregate field msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.withFieldName_: * * * * * * * * * * * Value: %5 = getelementptr %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl", %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* %.this_arg, i32 0, i32 2 * * * * * * * * * VarExp::toElem: withFieldName @ bool * * * * * * * * * * DtoSymbolAddress ('withFieldName' of type 'bool') * * * * * * * * * * * function param * * * * * * * * * * * type: bool * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * DtoAssign() * * * * * * ReturnStatement::toIR(): msgpack-d/src/msgpack.d(334) * * * * * * * AddrExp::toElem: &this @ PackerImpl!(Appender!(ubyte[]))* * * * * * * * * ThisExp::toElem: this @ PackerImpl!(Appender!(ubyte[])) * * * * * * * * * this exp without var declaration * * * * * * * * is nothing special * * * * * * * * lval: %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* %.this_arg * * * * * * * return value is '0x13387710' * * * DtoDefineFunction(msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.this): msgpack-d/src/msgpack.d(347) * * * * isMember = this is: PackerImpl!(Appender!(ubyte[])) * * * * DtoFunctionType(pure nothrow @nogc ref @trusted PackerImpl!(Appender!(ubyte[]))(bool withFieldName)) * * * * * x86-64 ABI: Transforming argument types * * * * * Final function type: %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* (%"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"*, i1) * * * * DtoResolveFunction(msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.this): msgpack-d/src/msgpack.d(347) * * * * * DtoDeclareFunction(msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.this): msgpack-d/src/msgpack.d(347) * * * * * * isMember = this is: PackerImpl!(Appender!(ubyte[])) * * * * * * DtoFunctionType(pure nothrow @nogc ref @trusted PackerImpl!(Appender!(ubyte[]))(bool withFieldName)) * * * * * * func = declare %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* @_D7msgpack55__T10PackerImplTS3std5array16__T8AppenderTAhZ8AppenderZ10PackerImpl6__ctorMFNaNbNcNiNebZS7msgpack55__T10PackerImplTS3std5array16__T8AppenderTAhZ8AppenderZ10PackerImpl(%"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"*, i1) * * * * Doing function body for: this * * * * DtoCreateNestedContext for this * * * * * DtoCreateNestedContextType for msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.this * * * * CompoundStatement::toIR(): * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(347) * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(349) * * * * * * * AssignExp::toElem: this.withFieldName_ = withFieldName | (bool)(bool = bool) * * * * * * * * DotVarExp::toElem: this.withFieldName_ @ bool * * * * * * * * * ThisExp::toElem: this @ PackerImpl!(Appender!(ubyte[])) * * * * * * * * * * normal this exp * * * * * * * * * Indexing aggregate field msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.withFieldName_: * * * * * * * * * * Value: %2 = getelementptr %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl", %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* %.this_arg, i32 0, i32 2 * * * * * * * * VarExp::toElem: withFieldName @ bool * * * * * * * * * DtoSymbolAddress ('withFieldName' of type 'bool') * * * * * * * * * * function param * * * * * * * * * * type: bool * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * DtoAssign() * * * * * * ReturnStatement::toIR(): msgpack-d/src/msgpack.d(347) * * * * * * * AddrExp::toElem: &this @ PackerImpl!(Appender!(ubyte[]))* * * * * * * * * ThisExp::toElem: this @ PackerImpl!(Appender!(ubyte[])) * * * * * * * * * this exp without var declaration * * * * * * * * is nothing special * * * * * * * * lval: %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* %.this_arg * * * * * * * return value is '0x1338a8d0' * * * DtoDefineFunction(msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.stream): msgpack-d/src/msgpack.d(360) * * * * isMember = this is: PackerImpl!(Appender!(ubyte[])) * * * * DtoFunctionType(pure nothrow @nogc @property ref @safe Appender!(ubyte[])()) * * * * * x86-64 ABI: Transforming argument types * * * * * Final function type: %"std.array.Appender!(ubyte[]).Appender"* (%"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"*) * * * * DtoResolveFunction(msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.stream): msgpack-d/src/msgpack.d(360) * * * * * DtoDeclareFunction(msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.stream): msgpack-d/src/msgpack.d(360) * * * * * * isMember = this is: PackerImpl!(Appender!(ubyte[])) * * * * * * DtoFunctionType(pure nothrow @nogc @property ref @safe Appender!(ubyte[])()) * * * * * * func = declare %"std.array.Appender!(ubyte[]).Appender"* @_D7msgpack55__T10PackerImplTS3std5array16__T8AppenderTAhZ8AppenderZ10PackerImpl6streamMFNaNbNcNdNiNfZS3std5array16__T8AppenderTAhZ8Appender(%"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"*) * * * * Doing function body for: stream * * * * DtoCreateNestedContext for stream * * * * * DtoCreateNestedContextType for msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.stream * * * * CompoundStatement::toIR(): * * * * * ReturnStatement::toIR(): msgpack-d/src/msgpack.d(362) * * * * * * AddrExp::toElem: &this.stream_ @ Appender!(ubyte[])* * * * * * * * DotVarExp::toElem: this.stream_ @ Appender!(ubyte[]) * * * * * * * * ThisExp::toElem: this @ PackerImpl!(Appender!(ubyte[])) * * * * * * * * * normal this exp * * * * * * * * Indexing aggregate field msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.stream_: * * * * * * * * * Value: %1 = getelementptr %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl", %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* %.this_arg, i32 0, i32 0 * * * * * * * is nothing special * * * * * * * lval: %1 = getelementptr %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl", %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* %.this_arg, i32 0, i32 0 * * * * * * return value is '0x1338b3f8' * * * Ignoring Dsymbol::codegen for msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.pack(T)(in T value) if (is(Unqual!T == bool)) * * * Ignoring Dsymbol::codegen for msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.pack(T)(in T value) if (isUnsigned!T && !is(Unqual!T == enum)) * * * Ignoring Dsymbol::codegen for msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.pack(T)(in T value) if (isSigned!T && isIntegral!T && !is(Unqual!T == enum)) * * * Ignoring Dsymbol::codegen for msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.pack(T)(in T value) if (isFloatingPoint!T && !is(Unqual!T == enum)) * * * Ignoring Dsymbol::codegen for msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.pack(T)(in T value) if (is(Unqual!T == enum)) * * * Ignoring Dsymbol::codegen for msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.pack(T)(in T value) if (is(Unqual!T == typeof(null))) * * * Ignoring Dsymbol::codegen for msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.pack(T)(in T value) if (isPointer!T) * * * Ignoring Dsymbol::codegen for msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.pack(T)(in T array) if (isArray!T) * * * Ignoring Dsymbol::codegen for msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.pack(T)(in T array) if (isAssociativeArray!T) * * * Ignoring Dsymbol::codegen for msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.pack(Types...)(auto ref const Types objects) if (Types.length > 1) * * * Ignoring Dsymbol::codegen for msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.pack(T)(in T object) if (is(Unqual!T == class)) * * * Ignoring Dsymbol::codegen for msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.pack(T)(auto ref T object) if (is(Unqual!T == struct)) * * * Ignoring Dsymbol::codegen for msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.packArray(Types...)(auto ref const Types objects) * * * Ignoring Dsymbol::codegen for msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.packMap(Types...)(auto ref const Types objects) * * * DtoDefineFunction(msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.beginArray): msgpack-d/src/msgpack.d(944) * * * * isMember = this is: PackerImpl!(Appender!(ubyte[])) * * * * DtoFunctionType(pure nothrow ref @trusted PackerImpl!(Appender!(ubyte[]))(const(ulong) length)) * * * * * x86-64 ABI: Transforming argument types * * * * * Final function type: %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* (%"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"*, i64) * * * * DtoResolveFunction(msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.beginArray): msgpack-d/src/msgpack.d(944) * * * * * DtoDeclareFunction(msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.beginArray): msgpack-d/src/msgpack.d(944) * * * * * * isMember = this is: PackerImpl!(Appender!(ubyte[])) * * * * * * DtoFunctionType(pure nothrow ref @trusted PackerImpl!(Appender!(ubyte[]))(const(ulong) length)) * * * * * * func = declare %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* @_D7msgpack55__T10PackerImplTS3std5array16__T8AppenderTAhZ8AppenderZ10PackerImpl10beginArrayMFNaNbNcNexmZS7msgpack55__T10PackerImplTS3std5array16__T8AppenderTAhZ8AppenderZ10PackerImpl(%"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"*, i64) * * * * Doing function body for: beginArray * * * * DtoCreateNestedContext for beginArray * * * * * DtoCreateNestedContextType for msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.beginArray * * * * CompoundStatement::toIR(): * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(945) * * * * * * IfStatement::toIR(): msgpack-d/src/msgpack.d(946) * * * * * * * CmpExp::toElem: length < 16LU @ bool * * * * * * * * VarExp::toElem: length @ ulong * * * * * * * * * DtoSymbolAddress ('length' of type 'const(ulong)') * * * * * * * * * * function param * * * * * * * * * * type: const(ulong) * * * * * * * * IntegerExp::toElem: 16LU @ ulong * * * * * * * * * IntegerExp::toConstElem: 16LU @ ulong * * * * * * * * * * value = i64 16 * * * * * * * * type 1: %1 = load i64, i64* %length * * * * * * * * type 2: i64 16 * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(946) * * * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(946) * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(947) * * * * * * * * * * DeclarationExp::toElem: const const(ubyte) temp = cast(const(ubyte))(144 | cast(int)cast(ubyte)length); | T=void * * * * * * * * * * * DtoDeclarationExp: temp * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * DtoVarDeclaration(vdtype = const(ubyte)) * * * * * * * * * * * * * llvm value for decl: %temp = alloca i8, align 1 * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * AssignExp::toElem: temp = cast(const(ubyte))(144 | cast(int)cast(ubyte)length) | (const(ubyte))(const(ubyte) = const(ubyte)) * * * * * * * * * * * * * * VarExp::toElem: temp @ const(ubyte) * * * * * * * * * * * * * * * DtoSymbolAddress ('temp' of type 'const(ubyte)') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * CastExp::toElem: cast(const(ubyte))(144 | cast(int)cast(ubyte)length) @ const(ubyte) * * * * * * * * * * * * * * * OrExp::toElem: 144 | cast(int)cast(ubyte)length @ int * * * * * * * * * * * * * * * * IntegerExp::toElem: 144 @ int * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 144 @ int * * * * * * * * * * * * * * * * * * value = i32 144 * * * * * * * * * * * * * * * * CastExp::toElem: cast(int)cast(ubyte)length @ int * * * * * * * * * * * * * * * * * CastExp::toElem: cast(ubyte)length @ ubyte * * * * * * * * * * * * * * * * * * VarExp::toElem: length @ const(ulong) * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('length' of type 'const(ulong)') * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * type: const(ulong) * * * * * * * * * * * * * * * * * * Casting from 'const(ulong)' to 'ubyte' * * * * * * * * * * * * * * * * * Casting from 'ubyte' to 'int' * * * * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * * * * Casting from 'int' to 'const(ubyte)' * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * lhs: %temp = alloca i8, align 1 * * * * * * * * * * * * * * * rhs: %7 = trunc i32 %6 to i8 * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(948) * * * * * * * * * * CallExp::toElem: this.stream_.put(take8from(temp)) @ void * * * * * * * * * * * DotVarExp::toElem: this.stream_.put @ pure nothrow @safe void(ubyte item) * * * * * * * * * * * * DotVarExp::toElem: this.stream_ @ Appender!(ubyte[]) * * * * * * * * * * * * * ThisExp::toElem: this @ PackerImpl!(Appender!(ubyte[])) * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * Indexing aggregate field msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.stream_: * * * * * * * * * * * * * * Value: %8 = getelementptr %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl", %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* %.this_arg, i32 0, i32 0 * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * %8 = getelementptr %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl", %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* %.this_arg, i32 0, i32 0 * * * * * * * * * * * * Function type: pure nothrow @safe void(ubyte item) * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * CallExp::toElem: take8from(temp) @ ubyte * * * * * * * * * * * * * * VarExp::toElem: take8from @ pure nothrow @nogc @trusted ubyte(const(ubyte) value) * * * * * * * * * * * * * * * DtoSymbolAddress ('take8from' of type 'pure nothrow @nogc @trusted ubyte(const(ubyte) value)') * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted ubyte(const(ubyte) value)) * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * Final function type: i8 (i8) * * * * * * * * * * * * * * * * DtoResolveFunction(msgpack.take8from!(8LU, const(ubyte)).take8from): msgpack-d/src/msgpack.d(5077) * * * * * * * * * * * * * * * * * DtoDeclareFunction(msgpack.take8from!(8LU, const(ubyte)).take8from): msgpack-d/src/msgpack.d(5077) * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted ubyte(const(ubyte) value)) * * * * * * * * * * * * * * * * * * func = declare i8 @_D7msgpack21__T9take8fromVmi8TxhZ9take8fromFNaNbNiNexhZh(i8) * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * Building type: pure nothrow @nogc @trusted ubyte(const(ubyte) value) * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted ubyte(const(ubyte) value)) * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * Final function type: i8 (i8) * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @trusted ubyte(const(ubyte) value) * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * VarExp::toElem: temp @ const(ubyte) * * * * * * * * * * * * * * * * * DtoSymbolAddress ('temp' of type 'const(ubyte)') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * IfStatement::toIR(): msgpack-d/src/msgpack.d(949) * * * * * * * * CmpExp::toElem: length < 65536LU @ bool * * * * * * * * * VarExp::toElem: length @ ulong * * * * * * * * * * DtoSymbolAddress ('length' of type 'const(ulong)') * * * * * * * * * * * function param * * * * * * * * * * * type: const(ulong) * * * * * * * * * IntegerExp::toElem: 65536LU @ ulong * * * * * * * * * * IntegerExp::toConstElem: 65536LU @ ulong * * * * * * * * * * * value = i64 65536 * * * * * * * * * type 1: %11 = load i64, i64* %length * * * * * * * * * type 2: i64 65536 * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(949) * * * * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(949) * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(950) * * * * * * * * * * * DeclarationExp::toElem: const const(ushort) temp = convertEndianTo(length); | T=void * * * * * * * * * * * * DtoDeclarationExp: temp * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * DtoVarDeclaration(vdtype = const(ushort)) * * * * * * * * * * * * * * llvm value for decl: %temp4 = alloca i16, align 2 * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * AssignExp::toElem: temp = convertEndianTo(length) | (const(ushort))(const(ushort) = const(ushort)) * * * * * * * * * * * * * * * VarExp::toElem: temp @ const(ushort) * * * * * * * * * * * * * * * * DtoSymbolAddress ('temp' of type 'const(ushort)') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * CallExp::toElem: convertEndianTo(length) @ const(ushort) * * * * * * * * * * * * * * * * VarExp::toElem: convertEndianTo @ pure nothrow @nogc @trusted ushort(const(ulong) value) * * * * * * * * * * * * * * * * * DtoSymbolAddress ('convertEndianTo' of type 'pure nothrow @nogc @trusted ushort(const(ulong) value)') * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted ushort(const(ulong) value)) * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * Final function type: i16 (i64) * * * * * * * * * * * * * * * * * * DtoResolveFunction(msgpack.convertEndianTo!(16, ulong).convertEndianTo): msgpack-d/src/msgpack.d(5036) * * * * * * * * * * * * * * * * * * * DtoDeclareFunction(msgpack.convertEndianTo!(16, ulong).convertEndianTo): msgpack-d/src/msgpack.d(5036) * * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted ushort(const(ulong) value)) * * * * * * * * * * * * * * * * * * * * func = declare i16 @_D7msgpack28__T15convertEndianToVii16TmZ15convertEndianToFNaNbNiNexmZt(i64) * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * Building type: pure nothrow @nogc @trusted ushort(const(ulong) value) * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted ushort(const(ulong) value)) * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * Final function type: i16 (i64) * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @trusted ushort(const(ulong) value) * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * VarExp::toElem: length @ const(ulong) * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('length' of type 'const(ulong)') * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * type: const(ulong) * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * lhs: %temp4 = alloca i16, align 2 * * * * * * * * * * * * * * * * rhs: %14 = call zeroext i16 @_D7msgpack28__T15convertEndianToVii16TmZ15convertEndianToFNaNbNiNexmZt(i64 %13) * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(952) * * * * * * * * * * * AssignExp::toElem: this.store_[0] = cast(ubyte)220u | (ubyte)(ubyte = ubyte) * * * * * * * * * * * * IndexExp::toElem: this.store_[0] @ ubyte * * * * * * * * * * * * * DotVarExp::toElem: this.store_ @ ubyte[11] * * * * * * * * * * * * * * ThisExp::toElem: this @ PackerImpl!(Appender!(ubyte[])) * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * Indexing aggregate field msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.store_: * * * * * * * * * * * * * * * Value: %15 = getelementptr %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl", %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* %.this_arg, i32 0, i32 1 * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * IntegerExp::toElem: cast(ubyte)220u @ ubyte * * * * * * * * * * * * * IntegerExp::toConstElem: cast(ubyte)220u @ ubyte * * * * * * * * * * * * * * value = i8 -36 * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * lhs: %16 = getelementptr [11 x i8], [11 x i8]* %15, i32 0, i64 0 * * * * * * * * * * * * * rhs: i8 -36 * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(953) * * * * * * * * * * * AssignExp::toElem: *cast(ushort*)&this.store_[1] = temp | (ushort)(ushort = ushort) * * * * * * * * * * * * PtrExp::toElem: *cast(ushort*)&this.store_[1] @ ushort * * * * * * * * * * * * * CastExp::toElem: cast(ushort*)&this.store_[1] @ ushort* * * * * * * * * * * * * * * AddrExp::toElem: &this.store_[1] @ ubyte* * * * * * * * * * * * * * * * IndexExp::toElem: this.store_[1] @ ubyte * * * * * * * * * * * * * * * * DotVarExp::toElem: this.store_ @ ubyte[11] * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ PackerImpl!(Appender!(ubyte[])) * * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.store_: * * * * * * * * * * * * * * * * * * Value: %17 = getelementptr %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl", %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* %.this_arg, i32 0, i32 1 * * * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * * * is nothing special * * * * * * * * * * * * * * * lval: %18 = getelementptr [11 x i8], [11 x i8]* %17, i32 0, i64 1 * * * * * * * * * * * * * * Casting from 'ubyte*' to 'ushort*' * * * * * * * * * * * * * * * src: %18 = getelementptr [11 x i8], [11 x i8]* %17, i32 0, i64 1 * * * * * * * * * * * * * * * to type: i16* * * * * * * * * * * * * VarExp::toElem: temp @ ushort * * * * * * * * * * * * * DtoSymbolAddress ('temp' of type 'const(ushort)') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * lhs: %19 = bitcast i8* %18 to i16* * * * * * * * * * * * * * rhs: %20 = load i16, i16* %temp4 * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(954) * * * * * * * * * * * CallExp::toElem: this.stream_.put(this.store_[0..3]) @ void * * * * * * * * * * * * DotVarExp::toElem: this.stream_.put @ pure nothrow @safe void(ubyte[] items) * * * * * * * * * * * * * DotVarExp::toElem: this.stream_ @ Appender!(ubyte[]) * * * * * * * * * * * * * * ThisExp::toElem: this @ PackerImpl!(Appender!(ubyte[])) * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * Indexing aggregate field msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.stream_: * * * * * * * * * * * * * * * Value: %21 = getelementptr %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl", %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* %.this_arg, i32 0, i32 0 * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * Building type: pure nothrow @safe void(ubyte[] items) * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @safe void(ubyte[] items)) * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * Final function type: void ({ i64, i8* }) * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * %21 = getelementptr %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl", %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* %.this_arg, i32 0, i32 0 * * * * * * * * * * * * * Function type: pure nothrow @safe void(ubyte[] items) * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * SliceExp::toElem: this.store_[0..3] @ ubyte[] * * * * * * * * * * * * * * * DotVarExp::toElem: this.store_ @ ubyte[11] * * * * * * * * * * * * * * * * ThisExp::toElem: this @ PackerImpl!(Appender!(ubyte[])) * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.store_: * * * * * * * * * * * * * * * * * Value: %22 = getelementptr %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl", %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* %.this_arg, i32 0, i32 1 * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * * * IntegerExp::toElem: 3LU @ ulong * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 3LU @ ulong * * * * * * * * * * * * * * * * * value = i64 3 * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(955) * * * * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(955) * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(956) * * * * * * * * * * * DeclarationExp::toElem: const const(uint) temp = convertEndianTo(length); | T=void * * * * * * * * * * * * DtoDeclarationExp: temp * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * DtoVarDeclaration(vdtype = const(uint)) * * * * * * * * * * * * * * llvm value for decl: %temp5 = alloca i32, align 4 * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * AssignExp::toElem: temp = convertEndianTo(length) | (const(uint))(const(uint) = const(uint)) * * * * * * * * * * * * * * * VarExp::toElem: temp @ const(uint) * * * * * * * * * * * * * * * * DtoSymbolAddress ('temp' of type 'const(uint)') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * CallExp::toElem: convertEndianTo(length) @ const(uint) * * * * * * * * * * * * * * * * VarExp::toElem: convertEndianTo @ pure nothrow @nogc @trusted uint(const(ulong) value) * * * * * * * * * * * * * * * * * DtoSymbolAddress ('convertEndianTo' of type 'pure nothrow @nogc @trusted uint(const(ulong) value)') * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted uint(const(ulong) value)) * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * Final function type: i32 (i64) * * * * * * * * * * * * * * * * * * DtoResolveFunction(msgpack.convertEndianTo!(32, ulong).convertEndianTo): msgpack-d/src/msgpack.d(5044) * * * * * * * * * * * * * * * * * * * DtoDeclareFunction(msgpack.convertEndianTo!(32, ulong).convertEndianTo): msgpack-d/src/msgpack.d(5044) * * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted uint(const(ulong) value)) * * * * * * * * * * * * * * * * * * * * func = declare i32 @_D7msgpack28__T15convertEndianToVii32TmZ15convertEndianToFNaNbNiNexmZk(i64) * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * Building type: pure nothrow @nogc @trusted uint(const(ulong) value) * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted uint(const(ulong) value)) * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * Final function type: i32 (i64) * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @trusted uint(const(ulong) value) * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * VarExp::toElem: length @ const(ulong) * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('length' of type 'const(ulong)') * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * type: const(ulong) * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * lhs: %temp5 = alloca i32, align 4 * * * * * * * * * * * * * * * * rhs: %25 = call i32 @_D7msgpack28__T15convertEndianToVii32TmZ15convertEndianToFNaNbNiNexmZk(i64 %24) * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(958) * * * * * * * * * * * AssignExp::toElem: this.store_[0] = cast(ubyte)221u | (ubyte)(ubyte = ubyte) * * * * * * * * * * * * IndexExp::toElem: this.store_[0] @ ubyte * * * * * * * * * * * * * DotVarExp::toElem: this.store_ @ ubyte[11] * * * * * * * * * * * * * * ThisExp::toElem: this @ PackerImpl!(Appender!(ubyte[])) * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * Indexing aggregate field msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.store_: * * * * * * * * * * * * * * * Value: %26 = getelementptr %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl", %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* %.this_arg, i32 0, i32 1 * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * IntegerExp::toElem: cast(ubyte)221u @ ubyte * * * * * * * * * * * * * IntegerExp::toConstElem: cast(ubyte)221u @ ubyte * * * * * * * * * * * * * * value = i8 -35 * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * lhs: %27 = getelementptr [11 x i8], [11 x i8]* %26, i32 0, i64 0 * * * * * * * * * * * * * rhs: i8 -35 * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(959) * * * * * * * * * * * AssignExp::toElem: *cast(uint*)&this.store_[1] = temp | (uint)(uint = uint) * * * * * * * * * * * * PtrExp::toElem: *cast(uint*)&this.store_[1] @ uint * * * * * * * * * * * * * CastExp::toElem: cast(uint*)&this.store_[1] @ uint* * * * * * * * * * * * * * * AddrExp::toElem: &this.store_[1] @ ubyte* * * * * * * * * * * * * * * * IndexExp::toElem: this.store_[1] @ ubyte * * * * * * * * * * * * * * * * DotVarExp::toElem: this.store_ @ ubyte[11] * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ PackerImpl!(Appender!(ubyte[])) * * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.store_: * * * * * * * * * * * * * * * * * * Value: %28 = getelementptr %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl", %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* %.this_arg, i32 0, i32 1 * * * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * * * is nothing special * * * * * * * * * * * * * * * lval: %29 = getelementptr [11 x i8], [11 x i8]* %28, i32 0, i64 1 * * * * * * * * * * * * * * Casting from 'ubyte*' to 'uint*' * * * * * * * * * * * * * * * src: %29 = getelementptr [11 x i8], [11 x i8]* %28, i32 0, i64 1 * * * * * * * * * * * * * * * to type: i32* * * * * * * * * * * * * VarExp::toElem: temp @ uint * * * * * * * * * * * * * DtoSymbolAddress ('temp' of type 'const(uint)') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * lhs: %30 = bitcast i8* %29 to i32* * * * * * * * * * * * * * rhs: %31 = load i32, i32* %temp5 * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(960) * * * * * * * * * * * CallExp::toElem: this.stream_.put(this.store_[0..5]) @ void * * * * * * * * * * * * DotVarExp::toElem: this.stream_.put @ pure nothrow @safe void(ubyte[] items) * * * * * * * * * * * * * DotVarExp::toElem: this.stream_ @ Appender!(ubyte[]) * * * * * * * * * * * * * * ThisExp::toElem: this @ PackerImpl!(Appender!(ubyte[])) * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * Indexing aggregate field msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.stream_: * * * * * * * * * * * * * * * Value: %32 = getelementptr %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl", %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* %.this_arg, i32 0, i32 0 * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * %32 = getelementptr %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl", %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* %.this_arg, i32 0, i32 0 * * * * * * * * * * * * * Function type: pure nothrow @safe void(ubyte[] items) * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * SliceExp::toElem: this.store_[0..5] @ ubyte[] * * * * * * * * * * * * * * * DotVarExp::toElem: this.store_ @ ubyte[11] * * * * * * * * * * * * * * * * ThisExp::toElem: this @ PackerImpl!(Appender!(ubyte[])) * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.store_: * * * * * * * * * * * * * * * * * Value: %33 = getelementptr %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl", %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* %.this_arg, i32 0, i32 1 * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * * * IntegerExp::toElem: 5LU @ ulong * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 5LU @ ulong * * * * * * * * * * * * * * * * * value = i64 5 * * * * * * ReturnStatement::toIR(): msgpack-d/src/msgpack.d(963) * * * * * * * AddrExp::toElem: &this @ PackerImpl!(Appender!(ubyte[]))* * * * * * * * * ThisExp::toElem: this @ PackerImpl!(Appender!(ubyte[])) * * * * * * * * * normal this exp * * * * * * * * is nothing special * * * * * * * * lval: %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* %.this_arg * * * * * * * return value is '0x13392050' * * * DtoDefineFunction(msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.beginMap): msgpack-d/src/msgpack.d(968) * * * * isMember = this is: PackerImpl!(Appender!(ubyte[])) * * * * DtoFunctionType(pure nothrow ref @trusted PackerImpl!(Appender!(ubyte[]))(const(ulong) length)) * * * * * x86-64 ABI: Transforming argument types * * * * * Final function type: %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* (%"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"*, i64) * * * * DtoResolveFunction(msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.beginMap): msgpack-d/src/msgpack.d(968) * * * * * DtoDeclareFunction(msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.beginMap): msgpack-d/src/msgpack.d(968) * * * * * * isMember = this is: PackerImpl!(Appender!(ubyte[])) * * * * * * DtoFunctionType(pure nothrow ref @trusted PackerImpl!(Appender!(ubyte[]))(const(ulong) length)) * * * * * * func = declare %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* @_D7msgpack55__T10PackerImplTS3std5array16__T8AppenderTAhZ8AppenderZ10PackerImpl8beginMapMFNaNbNcNexmZS7msgpack55__T10PackerImplTS3std5array16__T8AppenderTAhZ8AppenderZ10PackerImpl(%"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"*, i64) * * * * Doing function body for: beginMap * * * * DtoCreateNestedContext for beginMap * * * * * DtoCreateNestedContextType for msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.beginMap * * * * CompoundStatement::toIR(): * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(969) * * * * * * IfStatement::toIR(): msgpack-d/src/msgpack.d(970) * * * * * * * CmpExp::toElem: length < 16LU @ bool * * * * * * * * VarExp::toElem: length @ ulong * * * * * * * * * DtoSymbolAddress ('length' of type 'const(ulong)') * * * * * * * * * * function param * * * * * * * * * * type: const(ulong) * * * * * * * * IntegerExp::toElem: 16LU @ ulong * * * * * * * * * IntegerExp::toConstElem: 16LU @ ulong * * * * * * * * * * value = i64 16 * * * * * * * * type 1: %1 = load i64, i64* %length * * * * * * * * type 2: i64 16 * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(970) * * * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(970) * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(971) * * * * * * * * * * DeclarationExp::toElem: const const(ubyte) temp = cast(const(ubyte))(128 | cast(int)cast(ubyte)length); | T=void * * * * * * * * * * * DtoDeclarationExp: temp * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * DtoVarDeclaration(vdtype = const(ubyte)) * * * * * * * * * * * * * llvm value for decl: %temp = alloca i8, align 1 * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * AssignExp::toElem: temp = cast(const(ubyte))(128 | cast(int)cast(ubyte)length) | (const(ubyte))(const(ubyte) = const(ubyte)) * * * * * * * * * * * * * * VarExp::toElem: temp @ const(ubyte) * * * * * * * * * * * * * * * DtoSymbolAddress ('temp' of type 'const(ubyte)') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * CastExp::toElem: cast(const(ubyte))(128 | cast(int)cast(ubyte)length) @ const(ubyte) * * * * * * * * * * * * * * * OrExp::toElem: 128 | cast(int)cast(ubyte)length @ int * * * * * * * * * * * * * * * * IntegerExp::toElem: 128 @ int * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 128 @ int * * * * * * * * * * * * * * * * * * value = i32 128 * * * * * * * * * * * * * * * * CastExp::toElem: cast(int)cast(ubyte)length @ int * * * * * * * * * * * * * * * * * CastExp::toElem: cast(ubyte)length @ ubyte * * * * * * * * * * * * * * * * * * VarExp::toElem: length @ const(ulong) * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('length' of type 'const(ulong)') * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * type: const(ulong) * * * * * * * * * * * * * * * * * * Casting from 'const(ulong)' to 'ubyte' * * * * * * * * * * * * * * * * * Casting from 'ubyte' to 'int' * * * * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * * * * Casting from 'int' to 'const(ubyte)' * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * lhs: %temp = alloca i8, align 1 * * * * * * * * * * * * * * * rhs: %7 = trunc i32 %6 to i8 * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(972) * * * * * * * * * * CallExp::toElem: this.stream_.put(take8from(temp)) @ void * * * * * * * * * * * DotVarExp::toElem: this.stream_.put @ pure nothrow @safe void(ubyte item) * * * * * * * * * * * * DotVarExp::toElem: this.stream_ @ Appender!(ubyte[]) * * * * * * * * * * * * * ThisExp::toElem: this @ PackerImpl!(Appender!(ubyte[])) * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * Indexing aggregate field msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.stream_: * * * * * * * * * * * * * * Value: %8 = getelementptr %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl", %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* %.this_arg, i32 0, i32 0 * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * %8 = getelementptr %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl", %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* %.this_arg, i32 0, i32 0 * * * * * * * * * * * * Function type: pure nothrow @safe void(ubyte item) * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * CallExp::toElem: take8from(temp) @ ubyte * * * * * * * * * * * * * * VarExp::toElem: take8from @ pure nothrow @nogc @trusted ubyte(const(ubyte) value) * * * * * * * * * * * * * * * DtoSymbolAddress ('take8from' of type 'pure nothrow @nogc @trusted ubyte(const(ubyte) value)') * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @trusted ubyte(const(ubyte) value) * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * VarExp::toElem: temp @ const(ubyte) * * * * * * * * * * * * * * * * * DtoSymbolAddress ('temp' of type 'const(ubyte)') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * IfStatement::toIR(): msgpack-d/src/msgpack.d(973) * * * * * * * * CmpExp::toElem: length < 65536LU @ bool * * * * * * * * * VarExp::toElem: length @ ulong * * * * * * * * * * DtoSymbolAddress ('length' of type 'const(ulong)') * * * * * * * * * * * function param * * * * * * * * * * * type: const(ulong) * * * * * * * * * IntegerExp::toElem: 65536LU @ ulong * * * * * * * * * * IntegerExp::toConstElem: 65536LU @ ulong * * * * * * * * * * * value = i64 65536 * * * * * * * * * type 1: %11 = load i64, i64* %length * * * * * * * * * type 2: i64 65536 * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(973) * * * * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(973) * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(974) * * * * * * * * * * * DeclarationExp::toElem: const const(ushort) temp = convertEndianTo(length); | T=void * * * * * * * * * * * * DtoDeclarationExp: temp * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * DtoVarDeclaration(vdtype = const(ushort)) * * * * * * * * * * * * * * llvm value for decl: %temp4 = alloca i16, align 2 * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * AssignExp::toElem: temp = convertEndianTo(length) | (const(ushort))(const(ushort) = const(ushort)) * * * * * * * * * * * * * * * VarExp::toElem: temp @ const(ushort) * * * * * * * * * * * * * * * * DtoSymbolAddress ('temp' of type 'const(ushort)') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * CallExp::toElem: convertEndianTo(length) @ const(ushort) * * * * * * * * * * * * * * * * VarExp::toElem: convertEndianTo @ pure nothrow @nogc @trusted ushort(const(ulong) value) * * * * * * * * * * * * * * * * * DtoSymbolAddress ('convertEndianTo' of type 'pure nothrow @nogc @trusted ushort(const(ulong) value)') * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @trusted ushort(const(ulong) value) * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * VarExp::toElem: length @ const(ulong) * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('length' of type 'const(ulong)') * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * type: const(ulong) * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * lhs: %temp4 = alloca i16, align 2 * * * * * * * * * * * * * * * * rhs: %14 = call zeroext i16 @_D7msgpack28__T15convertEndianToVii16TmZ15convertEndianToFNaNbNiNexmZt(i64 %13) * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(976) * * * * * * * * * * * AssignExp::toElem: this.store_[0] = cast(ubyte)222u | (ubyte)(ubyte = ubyte) * * * * * * * * * * * * IndexExp::toElem: this.store_[0] @ ubyte * * * * * * * * * * * * * DotVarExp::toElem: this.store_ @ ubyte[11] * * * * * * * * * * * * * * ThisExp::toElem: this @ PackerImpl!(Appender!(ubyte[])) * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * Indexing aggregate field msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.store_: * * * * * * * * * * * * * * * Value: %15 = getelementptr %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl", %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* %.this_arg, i32 0, i32 1 * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * IntegerExp::toElem: cast(ubyte)222u @ ubyte * * * * * * * * * * * * * IntegerExp::toConstElem: cast(ubyte)222u @ ubyte * * * * * * * * * * * * * * value = i8 -34 * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * lhs: %16 = getelementptr [11 x i8], [11 x i8]* %15, i32 0, i64 0 * * * * * * * * * * * * * rhs: i8 -34 * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(977) * * * * * * * * * * * AssignExp::toElem: *cast(ushort*)&this.store_[1] = temp | (ushort)(ushort = ushort) * * * * * * * * * * * * PtrExp::toElem: *cast(ushort*)&this.store_[1] @ ushort * * * * * * * * * * * * * CastExp::toElem: cast(ushort*)&this.store_[1] @ ushort* * * * * * * * * * * * * * * AddrExp::toElem: &this.store_[1] @ ubyte* * * * * * * * * * * * * * * * IndexExp::toElem: this.store_[1] @ ubyte * * * * * * * * * * * * * * * * DotVarExp::toElem: this.store_ @ ubyte[11] * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ PackerImpl!(Appender!(ubyte[])) * * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.store_: * * * * * * * * * * * * * * * * * * Value: %17 = getelementptr %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl", %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* %.this_arg, i32 0, i32 1 * * * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * * * is nothing special * * * * * * * * * * * * * * * lval: %18 = getelementptr [11 x i8], [11 x i8]* %17, i32 0, i64 1 * * * * * * * * * * * * * * Casting from 'ubyte*' to 'ushort*' * * * * * * * * * * * * * * * src: %18 = getelementptr [11 x i8], [11 x i8]* %17, i32 0, i64 1 * * * * * * * * * * * * * * * to type: i16* * * * * * * * * * * * * VarExp::toElem: temp @ ushort * * * * * * * * * * * * * DtoSymbolAddress ('temp' of type 'const(ushort)') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * lhs: %19 = bitcast i8* %18 to i16* * * * * * * * * * * * * * rhs: %20 = load i16, i16* %temp4 * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(978) * * * * * * * * * * * CallExp::toElem: this.stream_.put(this.store_[0..3]) @ void * * * * * * * * * * * * DotVarExp::toElem: this.stream_.put @ pure nothrow @safe void(ubyte[] items) * * * * * * * * * * * * * DotVarExp::toElem: this.stream_ @ Appender!(ubyte[]) * * * * * * * * * * * * * * ThisExp::toElem: this @ PackerImpl!(Appender!(ubyte[])) * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * Indexing aggregate field msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.stream_: * * * * * * * * * * * * * * * Value: %21 = getelementptr %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl", %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* %.this_arg, i32 0, i32 0 * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * %21 = getelementptr %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl", %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* %.this_arg, i32 0, i32 0 * * * * * * * * * * * * * Function type: pure nothrow @safe void(ubyte[] items) * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * SliceExp::toElem: this.store_[0..3] @ ubyte[] * * * * * * * * * * * * * * * DotVarExp::toElem: this.store_ @ ubyte[11] * * * * * * * * * * * * * * * * ThisExp::toElem: this @ PackerImpl!(Appender!(ubyte[])) * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.store_: * * * * * * * * * * * * * * * * * Value: %22 = getelementptr %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl", %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* %.this_arg, i32 0, i32 1 * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * * * IntegerExp::toElem: 3LU @ ulong * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 3LU @ ulong * * * * * * * * * * * * * * * * * value = i64 3 * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(979) * * * * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(979) * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(980) * * * * * * * * * * * DeclarationExp::toElem: const const(uint) temp = convertEndianTo(length); | T=void * * * * * * * * * * * * DtoDeclarationExp: temp * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * DtoVarDeclaration(vdtype = const(uint)) * * * * * * * * * * * * * * llvm value for decl: %temp5 = alloca i32, align 4 * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * AssignExp::toElem: temp = convertEndianTo(length) | (const(uint))(const(uint) = const(uint)) * * * * * * * * * * * * * * * VarExp::toElem: temp @ const(uint) * * * * * * * * * * * * * * * * DtoSymbolAddress ('temp' of type 'const(uint)') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * CallExp::toElem: convertEndianTo(length) @ const(uint) * * * * * * * * * * * * * * * * VarExp::toElem: convertEndianTo @ pure nothrow @nogc @trusted uint(const(ulong) value) * * * * * * * * * * * * * * * * * DtoSymbolAddress ('convertEndianTo' of type 'pure nothrow @nogc @trusted uint(const(ulong) value)') * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @trusted uint(const(ulong) value) * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * VarExp::toElem: length @ const(ulong) * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('length' of type 'const(ulong)') * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * type: const(ulong) * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * lhs: %temp5 = alloca i32, align 4 * * * * * * * * * * * * * * * * rhs: %25 = call i32 @_D7msgpack28__T15convertEndianToVii32TmZ15convertEndianToFNaNbNiNexmZk(i64 %24) * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(982) * * * * * * * * * * * AssignExp::toElem: this.store_[0] = cast(ubyte)223u | (ubyte)(ubyte = ubyte) * * * * * * * * * * * * IndexExp::toElem: this.store_[0] @ ubyte * * * * * * * * * * * * * DotVarExp::toElem: this.store_ @ ubyte[11] * * * * * * * * * * * * * * ThisExp::toElem: this @ PackerImpl!(Appender!(ubyte[])) * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * Indexing aggregate field msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.store_: * * * * * * * * * * * * * * * Value: %26 = getelementptr %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl", %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* %.this_arg, i32 0, i32 1 * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * IntegerExp::toElem: cast(ubyte)223u @ ubyte * * * * * * * * * * * * * IntegerExp::toConstElem: cast(ubyte)223u @ ubyte * * * * * * * * * * * * * * value = i8 -33 * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * lhs: %27 = getelementptr [11 x i8], [11 x i8]* %26, i32 0, i64 0 * * * * * * * * * * * * * rhs: i8 -33 * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(983) * * * * * * * * * * * AssignExp::toElem: *cast(uint*)&this.store_[1] = temp | (uint)(uint = uint) * * * * * * * * * * * * PtrExp::toElem: *cast(uint*)&this.store_[1] @ uint * * * * * * * * * * * * * CastExp::toElem: cast(uint*)&this.store_[1] @ uint* * * * * * * * * * * * * * * AddrExp::toElem: &this.store_[1] @ ubyte* * * * * * * * * * * * * * * * IndexExp::toElem: this.store_[1] @ ubyte * * * * * * * * * * * * * * * * DotVarExp::toElem: this.store_ @ ubyte[11] * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ PackerImpl!(Appender!(ubyte[])) * * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.store_: * * * * * * * * * * * * * * * * * * Value: %28 = getelementptr %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl", %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* %.this_arg, i32 0, i32 1 * * * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * * * is nothing special * * * * * * * * * * * * * * * lval: %29 = getelementptr [11 x i8], [11 x i8]* %28, i32 0, i64 1 * * * * * * * * * * * * * * Casting from 'ubyte*' to 'uint*' * * * * * * * * * * * * * * * src: %29 = getelementptr [11 x i8], [11 x i8]* %28, i32 0, i64 1 * * * * * * * * * * * * * * * to type: i32* * * * * * * * * * * * * VarExp::toElem: temp @ uint * * * * * * * * * * * * * DtoSymbolAddress ('temp' of type 'const(uint)') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * lhs: %30 = bitcast i8* %29 to i32* * * * * * * * * * * * * * rhs: %31 = load i32, i32* %temp5 * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(984) * * * * * * * * * * * CallExp::toElem: this.stream_.put(this.store_[0..5]) @ void * * * * * * * * * * * * DotVarExp::toElem: this.stream_.put @ pure nothrow @safe void(ubyte[] items) * * * * * * * * * * * * * DotVarExp::toElem: this.stream_ @ Appender!(ubyte[]) * * * * * * * * * * * * * * ThisExp::toElem: this @ PackerImpl!(Appender!(ubyte[])) * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * Indexing aggregate field msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.stream_: * * * * * * * * * * * * * * * Value: %32 = getelementptr %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl", %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* %.this_arg, i32 0, i32 0 * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * %32 = getelementptr %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl", %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* %.this_arg, i32 0, i32 0 * * * * * * * * * * * * * Function type: pure nothrow @safe void(ubyte[] items) * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * SliceExp::toElem: this.store_[0..5] @ ubyte[] * * * * * * * * * * * * * * * DotVarExp::toElem: this.store_ @ ubyte[11] * * * * * * * * * * * * * * * * ThisExp::toElem: this @ PackerImpl!(Appender!(ubyte[])) * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.store_: * * * * * * * * * * * * * * * * * Value: %33 = getelementptr %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl", %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* %.this_arg, i32 0, i32 1 * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * * * IntegerExp::toElem: 5LU @ ulong * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 5LU @ ulong * * * * * * * * * * * * * * * * * value = i64 5 * * * * * * ReturnStatement::toIR(): msgpack-d/src/msgpack.d(987) * * * * * * * AddrExp::toElem: &this @ PackerImpl!(Appender!(ubyte[]))* * * * * * * * * ThisExp::toElem: this @ PackerImpl!(Appender!(ubyte[])) * * * * * * * * * normal this exp * * * * * * * * is nothing special * * * * * * * * lval: %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* %.this_arg * * * * * * * return value is '0x133a4990' * * * DtoDefineFunction(msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.packNil): msgpack-d/src/msgpack.d(995) * * * * isMember = this is: PackerImpl!(Appender!(ubyte[])) * * * * DtoFunctionType(pure nothrow ref @trusted PackerImpl!(Appender!(ubyte[]))()) * * * * * x86-64 ABI: Transforming argument types * * * * * Final function type: %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* (%"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"*) * * * * DtoResolveFunction(msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.packNil): msgpack-d/src/msgpack.d(995) * * * * * DtoDeclareFunction(msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.packNil): msgpack-d/src/msgpack.d(995) * * * * * * isMember = this is: PackerImpl!(Appender!(ubyte[])) * * * * * * DtoFunctionType(pure nothrow ref @trusted PackerImpl!(Appender!(ubyte[]))()) * * * * * * func = declare %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* @_D7msgpack55__T10PackerImplTS3std5array16__T8AppenderTAhZ8AppenderZ10PackerImpl7packNilMFNaNbNcNeZS7msgpack55__T10PackerImplTS3std5array16__T8AppenderTAhZ8AppenderZ10PackerImpl(%"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"*) * * * * Doing function body for: packNil * * * * DtoCreateNestedContext for packNil * * * * * DtoCreateNestedContextType for msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.packNil * * * * CompoundStatement::toIR(): * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(996) * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(997) * * * * * * * CallExp::toElem: this.stream_.put(cast(Format)cast(ubyte)192u) @ void * * * * * * * * DotVarExp::toElem: this.stream_.put @ pure nothrow @safe void(Format item) * * * * * * * * * DotVarExp::toElem: this.stream_ @ Appender!(ubyte[]) * * * * * * * * * * ThisExp::toElem: this @ PackerImpl!(Appender!(ubyte[])) * * * * * * * * * * * normal this exp * * * * * * * * * * Indexing aggregate field msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.stream_: * * * * * * * * * * * Value: %1 = getelementptr %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl", %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* %.this_arg, i32 0, i32 0 * * * * * * * * DtoCallFunction() * * * * * * * * * Building type: pure nothrow @safe void(Format item) * * * * * * * * * * DtoFunctionType(pure nothrow @safe void(Format item)) * * * * * * * * * * * Building type: Format * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * Final function type: void (i8) * * * * * * * * * doing normal arguments * * * * * * * * * Arguments so far: (1) * * * * * * * * * * %1 = getelementptr %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl", %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* %.this_arg, i32 0, i32 0 * * * * * * * * * Function type: pure nothrow @safe void(Format item) * * * * * * * * * DtoArgument * * * * * * * * * * IntegerExp::toElem: cast(Format)cast(ubyte)192u @ Format * * * * * * * * * * * IntegerExp::toConstElem: cast(Format)cast(ubyte)192u @ Format * * * * * * * * * * * * Building type: Format * * * * * * * * * * * * value = i8 -64 * * * * * * ReturnStatement::toIR(): msgpack-d/src/msgpack.d(998) * * * * * * * AddrExp::toElem: &this @ PackerImpl!(Appender!(ubyte[]))* * * * * * * * * ThisExp::toElem: this @ PackerImpl!(Appender!(ubyte[])) * * * * * * * * * normal this exp * * * * * * * * is nothing special * * * * * * * * lval: %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* %.this_arg * * * * * * * return value is '0x133b20c0' * * * Building default initializer for msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl * * * * Creating initializer constant for PackerImpl * * * * * Implicit initializer: stream_ @+0 * * * * * * DtoConstExpInit(targetType = Appender!(ubyte[]), exp = Appender) * * * * * * * VarExp::toConstElem: Appender @ Appender!(ubyte[]) * * * * * * * * Sym: type=Appender!(ubyte[]) * * * * * Implicit initializer: store_ @+8 * * * * * * DtoConstExpInit(targetType = ubyte[11], exp = cast(ubyte)0u) * * * * * * * IntegerExp::toConstElem: cast(ubyte)0u @ ubyte * * * * * * * * value = i8 0 * * * * * * * Building constant array initializer to single value. * * * * * Implicit initializer: withFieldName_ @+19 * * * * * * DtoConstExpInit(targetType = bool, exp = false) * * * * * * * IntegerExp::toConstElem: false @ bool * * * * * * * * value = i1 false * * * * * * * Fixing up unresolved implicit integer conversion. * * * * * adding field stream_ * * * * * adding field store_ * * * * * adding field withFieldName_ * * * * * final initializer: %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl_init" zeroinitializer * * * DtoTypeInfoOf(type = 'PackerImpl!(Appender!(ubyte[]))', base='1') * * * * Type::getTypeInfo(): PackerImpl!(Appender!(ubyte[])) * * * * * TypeInfoDeclaration::codegen(typeid(PackerImpl!(Appender!(ubyte[])))) * * * * * * type = 'PackerImpl!(Appender!(ubyte[]))' * * * * * * typeinfo mangle: _D87TypeInfo_S7msgpack55__T10PackerImplTS3std5array16__T8AppenderTAhZ8AppenderZ10PackerImpl6__initZ * * * * * * TypeInfoStructDeclaration::llvmDefine() typeid(PackerImpl!(Appender!(ubyte[]))) * * * * * * * IntegerExp::toConstElem: cast(void*)305419896LU @ void* * * * * * * * * pointer * * * * TypeInfoDeclaration::codegen(typeid(PackerImpl!(Appender!(ubyte[])))) * TemplateInstance::codegen: 'msgpack.Value.opEquals!void' * * DtoDefineFunction(msgpack.Value.opEquals!void.opEquals): msgpack-d/src/msgpack.d(3481) * * * Doing function body for: opEquals * * * DtoCreateNestedContext for opEquals * * * * DtoCreateNestedContextType for msgpack.Value.opEquals!void.opEquals * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(3482) * * * * * IfStatement::toIR(): msgpack-d/src/msgpack.d(3483) * * * * * * EqualExp::toElem: this.type != other.type @ bool * * * * * * * DotVarExp::toElem: this.type @ const(Type) * * * * * * * * ThisExp::toElem: this @ const(Value) * * * * * * * * * normal this exp * * * * * * * * Indexing aggregate field msgpack.Value.type: * * * * * * * * * Building type: Type * * * * * * * * * Value: %1 = getelementptr %msgpack.Value, %msgpack.Value* %.this_arg, i32 0, i32 0 * * * * * * * DotVarExp::toElem: other.type @ const(Type) * * * * * * * * VarExp::toElem: other @ const(Value) * * * * * * * * * DtoSymbolAddress ('other' of type 'const(Value)') * * * * * * * * * * function param * * * * * * * * * * type: const(Value) * * * * * * * * Indexing aggregate field msgpack.Value.type: * * * * * * * * * Building type: Type * * * * * * * * * Value: %2 = getelementptr %msgpack.Value, %msgpack.Value* %other_arg, i32 0, i32 0 * * * * * * * integral or pointer or interface * * * * * * * lv: %3 = load i32, i32* %1 * * * * * * * rv: %4 = load i32, i32* %2 * * * * * * ReturnStatement::toIR(): msgpack-d/src/msgpack.d(3484) * * * * * * * IntegerExp::toElem: false @ bool * * * * * * * * IntegerExp::toConstElem: false @ bool * * * * * * * * * value = i1 false * * * * * * * return value is '0x120e69a0' * * * * * SwitchStatement::toIR(): msgpack-d/src/msgpack.d(3486) * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(3486) * * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(3486) * * * * * * * * CaseStatement::toIR(): msgpack-d/src/msgpack.d(3487) * * * * * * * * * IntegerExp::toConstElem: cast(Type)0 @ const(Type) * * * * * * * * * * Building type: Type * * * * * * * * * * value = i32 0 * * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(3487) * * * * * * * * * * ReturnStatement::toIR(): msgpack-d/src/msgpack.d(3487) * * * * * * * * * * * IntegerExp::toElem: true @ bool * * * * * * * * * * * * IntegerExp::toConstElem: true @ bool * * * * * * * * * * * * * value = i1 true * * * * * * * * * * * return value is '0x12188b90' * * * * * * * * CaseStatement::toIR(): msgpack-d/src/msgpack.d(3488) * * * * * * * * * IntegerExp::toConstElem: cast(Type)1 @ const(Type) * * * * * * * * * * Building type: Type * * * * * * * * * * value = i32 1 * * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(3488) * * * * * * * * * * ReturnStatement::toIR(): msgpack-d/src/msgpack.d(3488) * * * * * * * * * * * CallExp::toElem: this.opEquals(other.via.boolean) @ bool * * * * * * * * * * * * DotVarExp::toElem: this.opEquals @ const pure nothrow @nogc @trusted bool(const(bool) other) * * * * * * * * * * * * * ThisExp::toElem: this @ const(Value) * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * isMember = this is: Value * * * * * * * * * * * * * DtoFunctionType(const pure nothrow @nogc @trusted bool(const(bool) other)) * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * Final function type: i1 (%msgpack.Value*, i1) * * * * * * * * * * * * * DtoResolveFunction(msgpack.Value.opEquals!bool.opEquals): msgpack-d/src/msgpack.d(3501) * * * * * * * * * * * * * * DtoDeclareFunction(msgpack.Value.opEquals!bool.opEquals): msgpack-d/src/msgpack.d(3501) * * * * * * * * * * * * * * * isMember = this is: Value * * * * * * * * * * * * * * * DtoFunctionType(const pure nothrow @nogc @trusted bool(const(bool) other)) * * * * * * * * * * * * * * * func = declare i1 @_D7msgpack5Value16__T8opEqualsHTbZ8opEqualsMxFNaNbNiNexbZb(%msgpack.Value*, i1) * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * Building type: const pure nothrow @nogc @trusted bool(const(bool) other) * * * * * * * * * * * * * * DtoFunctionType(const pure nothrow @nogc @trusted bool(const(bool) other)) * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * Final function type: i1 (i1) * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * %msgpack.Value* %.this_arg * * * * * * * * * * * * * Function type: const pure nothrow @nogc @trusted bool(const(bool) other) * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * DotVarExp::toElem: other.via.boolean @ const(bool) * * * * * * * * * * * * * * * DotVarExp::toElem: other.via @ const(Via) * * * * * * * * * * * * * * * * VarExp::toElem: other @ const(Value) * * * * * * * * * * * * * * * * * DtoSymbolAddress ('other' of type 'const(Value)') * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * type: const(Value) * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.Value.via: * * * * * * * * * * * * * * * * * Value: %6 = getelementptr %msgpack.Value, %msgpack.Value* %other_arg, i32 0, i32 2 * * * * * * * * * * * * * * * Indexing aggregate field msgpack.Value.Via.boolean: * * * * * * * * * * * * * * * * Value: %7 = getelementptr %msgpack.Value.Via, %msgpack.Value.Via* %6, i32 0, i32 0 * * * * * * * * * * * return value is '0x133b78f8' * * * * * * * * CaseStatement::toIR(): msgpack-d/src/msgpack.d(3489) * * * * * * * * * IntegerExp::toConstElem: cast(Type)2 @ const(Type) * * * * * * * * * * Building type: Type * * * * * * * * * * value = i32 2 * * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(3489) * * * * * * * * * * ReturnStatement::toIR(): msgpack-d/src/msgpack.d(3489) * * * * * * * * * * * CallExp::toElem: this.opEquals(other.via.uinteger) @ bool * * * * * * * * * * * * DotVarExp::toElem: this.opEquals @ const pure nothrow @nogc @trusted bool(const(ulong) other) * * * * * * * * * * * * * ThisExp::toElem: this @ const(Value) * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * isMember = this is: Value * * * * * * * * * * * * * DtoFunctionType(const pure nothrow @nogc @trusted bool(const(ulong) other)) * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * Final function type: i1 (%msgpack.Value*, i64) * * * * * * * * * * * * * DtoResolveFunction(msgpack.Value.opEquals!ulong.opEquals): msgpack-d/src/msgpack.d(3512) * * * * * * * * * * * * * * DtoDeclareFunction(msgpack.Value.opEquals!ulong.opEquals): msgpack-d/src/msgpack.d(3512) * * * * * * * * * * * * * * * isMember = this is: Value * * * * * * * * * * * * * * * DtoFunctionType(const pure nothrow @nogc @trusted bool(const(ulong) other)) * * * * * * * * * * * * * * * func = declare i1 @_D7msgpack5Value16__T8opEqualsHTmZ8opEqualsMxFNaNbNiNexmZb(%msgpack.Value*, i64) * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * Building type: const pure nothrow @nogc @trusted bool(const(ulong) other) * * * * * * * * * * * * * * DtoFunctionType(const pure nothrow @nogc @trusted bool(const(ulong) other)) * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * Final function type: i1 (i64) * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * %msgpack.Value* %.this_arg * * * * * * * * * * * * * Function type: const pure nothrow @nogc @trusted bool(const(ulong) other) * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * DotVarExp::toElem: other.via.uinteger @ const(ulong) * * * * * * * * * * * * * * * DotVarExp::toElem: other.via @ const(Via) * * * * * * * * * * * * * * * * VarExp::toElem: other @ const(Value) * * * * * * * * * * * * * * * * * DtoSymbolAddress ('other' of type 'const(Value)') * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * type: const(Value) * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.Value.via: * * * * * * * * * * * * * * * * * Value: %11 = getelementptr %msgpack.Value, %msgpack.Value* %other_arg, i32 0, i32 2 * * * * * * * * * * * * * * * Indexing aggregate field msgpack.Value.Via.uinteger: * * * * * * * * * * * * * * * * Value: %13 = bitcast i8* %12 to i64* * * * * * * * * * * * return value is '0x133b9de8' * * * * * * * * CaseStatement::toIR(): msgpack-d/src/msgpack.d(3490) * * * * * * * * * IntegerExp::toConstElem: cast(Type)3 @ const(Type) * * * * * * * * * * Building type: Type * * * * * * * * * * value = i32 3 * * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(3490) * * * * * * * * * * ReturnStatement::toIR(): msgpack-d/src/msgpack.d(3490) * * * * * * * * * * * CallExp::toElem: this.opEquals(other.via.integer) @ bool * * * * * * * * * * * * DotVarExp::toElem: this.opEquals @ const pure nothrow @nogc @trusted bool(const(long) other) * * * * * * * * * * * * * ThisExp::toElem: this @ const(Value) * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * isMember = this is: Value * * * * * * * * * * * * * DtoFunctionType(const pure nothrow @nogc @trusted bool(const(long) other)) * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * Final function type: i1 (%msgpack.Value*, i64) * * * * * * * * * * * * * DtoResolveFunction(msgpack.Value.opEquals!long.opEquals): msgpack-d/src/msgpack.d(3512) * * * * * * * * * * * * * * DtoDeclareFunction(msgpack.Value.opEquals!long.opEquals): msgpack-d/src/msgpack.d(3512) * * * * * * * * * * * * * * * isMember = this is: Value * * * * * * * * * * * * * * * DtoFunctionType(const pure nothrow @nogc @trusted bool(const(long) other)) * * * * * * * * * * * * * * * func = declare i1 @_D7msgpack5Value16__T8opEqualsHTlZ8opEqualsMxFNaNbNiNexlZb(%msgpack.Value*, i64) * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * Building type: const pure nothrow @nogc @trusted bool(const(long) other) * * * * * * * * * * * * * * DtoFunctionType(const pure nothrow @nogc @trusted bool(const(long) other)) * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * Final function type: i1 (i64) * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * %msgpack.Value* %.this_arg * * * * * * * * * * * * * Function type: const pure nothrow @nogc @trusted bool(const(long) other) * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * DotVarExp::toElem: other.via.integer @ const(long) * * * * * * * * * * * * * * * DotVarExp::toElem: other.via @ const(Via) * * * * * * * * * * * * * * * * VarExp::toElem: other @ const(Value) * * * * * * * * * * * * * * * * * DtoSymbolAddress ('other' of type 'const(Value)') * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * type: const(Value) * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.Value.via: * * * * * * * * * * * * * * * * * Value: %16 = getelementptr %msgpack.Value, %msgpack.Value* %other_arg, i32 0, i32 2 * * * * * * * * * * * * * * * Indexing aggregate field msgpack.Value.Via.integer: * * * * * * * * * * * * * * * * Value: %18 = bitcast i8* %17 to i64* * * * * * * * * * * * return value is '0x133bc218' * * * * * * * * CaseStatement::toIR(): msgpack-d/src/msgpack.d(3491) * * * * * * * * * IntegerExp::toConstElem: cast(Type)4 @ const(Type) * * * * * * * * * * Building type: Type * * * * * * * * * * value = i32 4 * * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(3491) * * * * * * * * * * ReturnStatement::toIR(): msgpack-d/src/msgpack.d(3491) * * * * * * * * * * * CallExp::toElem: this.opEquals(other.via.floating) @ bool * * * * * * * * * * * * DotVarExp::toElem: this.opEquals @ const pure nothrow @nogc @trusted bool(const(real) other) * * * * * * * * * * * * * ThisExp::toElem: this @ const(Value) * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * isMember = this is: Value * * * * * * * * * * * * * DtoFunctionType(const pure nothrow @nogc @trusted bool(const(real) other)) * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * Final function type: i1 (%msgpack.Value*, x86_fp80) * * * * * * * * * * * * * DtoResolveFunction(msgpack.Value.opEquals!real.opEquals): msgpack-d/src/msgpack.d(3530) * * * * * * * * * * * * * * DtoDeclareFunction(msgpack.Value.opEquals!real.opEquals): msgpack-d/src/msgpack.d(3530) * * * * * * * * * * * * * * * isMember = this is: Value * * * * * * * * * * * * * * * DtoFunctionType(const pure nothrow @nogc @trusted bool(const(real) other)) * * * * * * * * * * * * * * * func = declare i1 @_D7msgpack5Value16__T8opEqualsHTeZ8opEqualsMxFNaNbNiNexeZb(%msgpack.Value*, x86_fp80) * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * Building type: const pure nothrow @nogc @trusted bool(const(real) other) * * * * * * * * * * * * * * DtoFunctionType(const pure nothrow @nogc @trusted bool(const(real) other)) * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * Final function type: i1 (x86_fp80) * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * %msgpack.Value* %.this_arg * * * * * * * * * * * * * Function type: const pure nothrow @nogc @trusted bool(const(real) other) * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * DotVarExp::toElem: other.via.floating @ const(real) * * * * * * * * * * * * * * * DotVarExp::toElem: other.via @ const(Via) * * * * * * * * * * * * * * * * VarExp::toElem: other @ const(Value) * * * * * * * * * * * * * * * * * DtoSymbolAddress ('other' of type 'const(Value)') * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * type: const(Value) * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.Value.via: * * * * * * * * * * * * * * * * * Value: %21 = getelementptr %msgpack.Value, %msgpack.Value* %other_arg, i32 0, i32 2 * * * * * * * * * * * * * * * Indexing aggregate field msgpack.Value.Via.floating: * * * * * * * * * * * * * * * * Value: %23 = bitcast i8* %22 to x86_fp80* * * * * * * * * * * * return value is '0x133be508' * * * * * * * * CaseStatement::toIR(): msgpack-d/src/msgpack.d(3492) * * * * * * * * * IntegerExp::toConstElem: cast(Type)7 @ const(Type) * * * * * * * * * * Building type: Type * * * * * * * * * * value = i32 7 * * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(3492) * * * * * * * * * * ReturnStatement::toIR(): msgpack-d/src/msgpack.d(3492) * * * * * * * * * * * CallExp::toElem: this.opEquals(other.via.raw) @ bool * * * * * * * * * * * * DotVarExp::toElem: this.opEquals @ const pure nothrow @nogc @trusted bool(const(ubyte[]) other) * * * * * * * * * * * * * ThisExp::toElem: this @ const(Value) * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * isMember = this is: Value * * * * * * * * * * * * * DtoFunctionType(const pure nothrow @nogc @trusted bool(const(ubyte[]) other)) * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * Final function type: i1 (%msgpack.Value*, { i64, i8* }) * * * * * * * * * * * * * DtoResolveFunction(msgpack.Value.opEquals!(const(ubyte)[]).opEquals): msgpack-d/src/msgpack.d(3573) * * * * * * * * * * * * * * DtoDeclareFunction(msgpack.Value.opEquals!(const(ubyte)[]).opEquals): msgpack-d/src/msgpack.d(3573) * * * * * * * * * * * * * * * isMember = this is: Value * * * * * * * * * * * * * * * DtoFunctionType(const pure nothrow @nogc @trusted bool(const(ubyte[]) other)) * * * * * * * * * * * * * * * func = declare i1 @_D7msgpack5Value18__T8opEqualsHTAxhZ8opEqualsMxFNaNbNiNexAhZb(%msgpack.Value*, { i64, i8* }) * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * Building type: const pure nothrow @nogc @trusted bool(const(ubyte[]) other) * * * * * * * * * * * * * * DtoFunctionType(const pure nothrow @nogc @trusted bool(const(ubyte[]) other)) * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * Final function type: i1 ({ i64, i8* }) * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * %msgpack.Value* %.this_arg * * * * * * * * * * * * * Function type: const pure nothrow @nogc @trusted bool(const(ubyte[]) other) * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * DotVarExp::toElem: other.via.raw @ const(ubyte[]) * * * * * * * * * * * * * * * DotVarExp::toElem: other.via @ const(Via) * * * * * * * * * * * * * * * * VarExp::toElem: other @ const(Value) * * * * * * * * * * * * * * * * * DtoSymbolAddress ('other' of type 'const(Value)') * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * type: const(Value) * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.Value.via: * * * * * * * * * * * * * * * * * Value: %26 = getelementptr %msgpack.Value, %msgpack.Value* %other_arg, i32 0, i32 2 * * * * * * * * * * * * * * * Indexing aggregate field msgpack.Value.Via.raw: * * * * * * * * * * * * * * * * Value: %28 = bitcast i8* %27 to { i64, i8* }* * * * * * * * * * * * return value is '0x133c0d68' * * * * * * * * CaseStatement::toIR(): msgpack-d/src/msgpack.d(3493) * * * * * * * * * IntegerExp::toConstElem: cast(Type)5 @ const(Type) * * * * * * * * * * Building type: Type * * * * * * * * * * value = i32 5 * * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(3493) * * * * * * * * * * ReturnStatement::toIR(): msgpack-d/src/msgpack.d(3493) * * * * * * * * * * * CallExp::toElem: this.opEquals(other.via.array) @ bool * * * * * * * * * * * * DotVarExp::toElem: this.opEquals @ const @trusted bool(const(Value[]) other) * * * * * * * * * * * * * ThisExp::toElem: this @ const(Value) * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * isMember = this is: Value * * * * * * * * * * * * * DtoFunctionType(const @trusted bool(const(Value[]) other)) * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * Final function type: i1 (%msgpack.Value*, { i64, %msgpack.Value* }) * * * * * * * * * * * * * DtoResolveFunction(msgpack.Value.opEquals!(const(Value)[]).opEquals): msgpack-d/src/msgpack.d(3541) * * * * * * * * * * * * * * DtoDeclareFunction(msgpack.Value.opEquals!(const(Value)[]).opEquals): msgpack-d/src/msgpack.d(3541) * * * * * * * * * * * * * * * isMember = this is: Value * * * * * * * * * * * * * * * DtoFunctionType(const @trusted bool(const(Value[]) other)) * * * * * * * * * * * * * * * func = declare i1 @_D7msgpack5Value32__T8opEqualsHTAxS7msgpack5ValueZ8opEqualsMxFNexAS7msgpack5ValueZb(%msgpack.Value*, { i64, %msgpack.Value* }) * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * Building type: const @trusted bool(const(Value[]) other) * * * * * * * * * * * * * * DtoFunctionType(const @trusted bool(const(Value[]) other)) * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * Final function type: i1 ({ i64, %msgpack.Value* }) * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * %msgpack.Value* %.this_arg * * * * * * * * * * * * * Function type: const @trusted bool(const(Value[]) other) * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * DotVarExp::toElem: other.via.array @ const(Value[]) * * * * * * * * * * * * * * * DotVarExp::toElem: other.via @ const(Via) * * * * * * * * * * * * * * * * VarExp::toElem: other @ const(Value) * * * * * * * * * * * * * * * * * DtoSymbolAddress ('other' of type 'const(Value)') * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * type: const(Value) * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.Value.via: * * * * * * * * * * * * * * * * * Value: %31 = getelementptr %msgpack.Value, %msgpack.Value* %other_arg, i32 0, i32 2 * * * * * * * * * * * * * * * Indexing aggregate field msgpack.Value.Via.array: * * * * * * * * * * * * * * * * Value: %33 = bitcast i8* %32 to { i64, %msgpack.Value* }* * * * * * * * * * * * return value is '0x133c3538' * * * * * * * * CaseStatement::toIR(): msgpack-d/src/msgpack.d(3494) * * * * * * * * * IntegerExp::toConstElem: cast(Type)6 @ const(Type) * * * * * * * * * * Building type: Type * * * * * * * * * * value = i32 6 * * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(3494) * * * * * * * * * * ReturnStatement::toIR(): msgpack-d/src/msgpack.d(3494) * * * * * * * * * * * CallExp::toElem: this.opEquals(other.via.map) @ bool * * * * * * * * * * * * DotVarExp::toElem: this.opEquals @ const @trusted bool(const(Value[Value]) other) * * * * * * * * * * * * * ThisExp::toElem: this @ const(Value) * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * isMember = this is: Value * * * * * * * * * * * * * DtoFunctionType(const @trusted bool(const(Value[Value]) other)) * * * * * * * * * * * * * * Building type: const(Value)[Value] * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * Final function type: i1 (%msgpack.Value*, i8*) * * * * * * * * * * * * * DtoResolveFunction(msgpack.Value.opEquals!(const(Value)[Value]).opEquals): msgpack-d/src/msgpack.d(3552) * * * * * * * * * * * * * * DtoDeclareFunction(msgpack.Value.opEquals!(const(Value)[Value]).opEquals): msgpack-d/src/msgpack.d(3552) * * * * * * * * * * * * * * * isMember = this is: Value * * * * * * * * * * * * * * * DtoFunctionType(const @trusted bool(const(Value[Value]) other)) * * * * * * * * * * * * * * * func = declare i1 @_D7msgpack5Value47__T8opEqualsHTHS7msgpack5ValuexS7msgpack5ValueZ8opEqualsMxFNexHS7msgpack5ValueS7msgpack5ValueZb(%msgpack.Value*, i8*) * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * Building type: const @trusted bool(const(Value[Value]) other) * * * * * * * * * * * * * * DtoFunctionType(const @trusted bool(const(Value[Value]) other)) * * * * * * * * * * * * * * * Building type: const(Value)[Value] * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * Final function type: i1 (i8*) * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * %msgpack.Value* %.this_arg * * * * * * * * * * * * * Function type: const @trusted bool(const(Value[Value]) other) * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * DotVarExp::toElem: other.via.map @ const(Value[Value]) * * * * * * * * * * * * * * * DotVarExp::toElem: other.via @ const(Via) * * * * * * * * * * * * * * * * VarExp::toElem: other @ const(Value) * * * * * * * * * * * * * * * * * DtoSymbolAddress ('other' of type 'const(Value)') * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * type: const(Value) * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.Value.via: * * * * * * * * * * * * * * * * * Value: %36 = getelementptr %msgpack.Value, %msgpack.Value* %other_arg, i32 0, i32 2 * * * * * * * * * * * * * * * Indexing aggregate field msgpack.Value.Via.map: * * * * * * * * * * * * * * * * Building type: Value[Value] * * * * * * * * * * * * * * * * Value: %38 = bitcast i8* %37 to i8** * * * * * * * * * * * return value is '0x133c5a98' * * * * * * DotVarExp::toElem: other.type @ const(Type) * * * * * * * VarExp::toElem: other @ const(Value) * * * * * * * * DtoSymbolAddress ('other' of type 'const(Value)') * * * * * * * * * function param * * * * * * * * * type: const(Value) * * * * * * * Indexing aggregate field msgpack.Value.type: * * * * * * * * Building type: Type * * * * * * * * Value: %6 = getelementptr %msgpack.Value, %msgpack.Value* %other_arg, i32 0, i32 0 * TemplateInstance::codegen: 'msgpack.pack!(false, AutocompleteRequest)' * * DtoDefineFunction(msgpack.pack!(false, AutocompleteRequest).pack): msgpack-d/src/msgpack.d(109) * * * Doing function body for: pack * * * DtoCreateNestedContext for pack * * * * DtoCreateNestedContextType for msgpack.pack!(false, AutocompleteRequest).pack * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(110) * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(111) * * * * * * DeclarationExp::toElem: PackerImpl!(Appender!(ubyte[])) packer = packer = 0 , packer.this(false); | T=void * * * * * * * DtoDeclarationExp: packer * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = PackerImpl!(Appender!(ubyte[]))) * * * * * * * * * llvm value for decl: %packer = alloca %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl", align 8 * * * * * * * * * expression initializer * * * * * * * * * CommaExp::toElem: packer = 0 , packer.this(false) @ PackerImpl!(Appender!(ubyte[])) * * * * * * * * * * AssignExp::toElem: packer = 0 | (PackerImpl!(Appender!(ubyte[])))(PackerImpl!(Appender!(ubyte[])) = int) * * * * * * * * * * * VarExp::toElem: packer @ PackerImpl!(Appender!(ubyte[])) * * * * * * * * * * * * DtoSymbolAddress ('packer' of type 'PackerImpl!(Appender!(ubyte[]))') * * * * * * * * * * * * * a normal variable * * * * * * * * * * * IntegerExp::toElem: 0 @ int * * * * * * * * * * * * IntegerExp::toConstElem: 0 @ int * * * * * * * * * * * * * value = i32 0 * * * * * * * * * * * performing aggregate zero initialization * * * * * * * * * * CallExp::toElem: packer.this(false) @ PackerImpl!(Appender!(ubyte[])) * * * * * * * * * * * DotVarExp::toElem: packer.this @ pure nothrow @nogc ref @trusted PackerImpl!(Appender!(ubyte[]))(bool withFieldName) * * * * * * * * * * * * VarExp::toElem: packer @ PackerImpl!(Appender!(ubyte[])) * * * * * * * * * * * * * DtoSymbolAddress ('packer' of type 'PackerImpl!(Appender!(ubyte[]))') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * Building type: pure nothrow @nogc ref @trusted PackerImpl!(Appender!(ubyte[]))(bool withFieldName) * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc ref @trusted PackerImpl!(Appender!(ubyte[]))(bool withFieldName)) * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * Final function type: %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* (i1) * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * %packer = alloca %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl", align 8 * * * * * * * * * * * * Function type: pure nothrow @nogc ref @trusted PackerImpl!(Appender!(ubyte[]))(bool withFieldName) * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * IntegerExp::toElem: false @ bool * * * * * * * * * * * * * * IntegerExp::toConstElem: false @ bool * * * * * * * * * * * * * * * value = i1 false * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(114) * * * * * * CallExp::toElem: packer.pack(_param_0) @ PackerImpl!(Appender!(ubyte[])) * * * * * * * DotVarExp::toElem: packer.pack @ ref @trusted PackerImpl!(Appender!(ubyte[]))(auto ref const(AutocompleteRequest) object) * * * * * * * * VarExp::toElem: packer @ PackerImpl!(Appender!(ubyte[])) * * * * * * * * * DtoSymbolAddress ('packer' of type 'PackerImpl!(Appender!(ubyte[]))') * * * * * * * * * * a normal variable * * * * * * * * isMember = this is: PackerImpl!(Appender!(ubyte[])) * * * * * * * * DtoFunctionType(ref @trusted PackerImpl!(Appender!(ubyte[]))(auto ref const(AutocompleteRequest) object)) * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * Final function type: %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* (%"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"*, %common.messages.AutocompleteRequest*) * * * * * * * * DtoResolveFunction(msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.pack!(const(AutocompleteRequest)).pack): msgpack-d/src/msgpack.d(838) * * * * * * * * * DtoDeclareFunction(msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.pack!(const(AutocompleteRequest)).pack): msgpack-d/src/msgpack.d(838) * * * * * * * * * * isMember = this is: PackerImpl!(Appender!(ubyte[])) * * * * * * * * * * DtoFunctionType(ref @trusted PackerImpl!(Appender!(ubyte[]))(auto ref const(AutocompleteRequest) object)) * * * * * * * * * * func = declare %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* @_D7msgpack55__T10PackerImplTS3std5array16__T8AppenderTAhZ8AppenderZ10PackerImpl49__T4packTxS6common8messages19AutocompleteRequestZ4packMFNcNeKxS6common8messages19AutocompleteRequestZS7msgpack55__T10PackerImplTS3std5array16__T8AppenderTAhZ8AppenderZ10PackerImpl(%"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"*, %common.messages.AutocompleteRequest*) * * * * * * * DtoCallFunction() * * * * * * * * Building type: ref @trusted PackerImpl!(Appender!(ubyte[]))(auto ref const(AutocompleteRequest) object) * * * * * * * * * DtoFunctionType(ref @trusted PackerImpl!(Appender!(ubyte[]))(auto ref const(AutocompleteRequest) object)) * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* (%common.messages.AutocompleteRequest*) * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (1) * * * * * * * * * %packer = alloca %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl", align 8 * * * * * * * * Function type: ref @trusted PackerImpl!(Appender!(ubyte[]))(auto ref const(AutocompleteRequest) object) * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_0 @ const(AutocompleteRequest) * * * * * * * * * * DtoSymbolAddress ('_param_0' of type 'const(AutocompleteRequest)') * * * * * * * * * * * function param * * * * * * * * * * * type: const(AutocompleteRequest) * * * * * ReturnStatement::toIR(): msgpack-d/src/msgpack.d(118) * * * * * * CallExp::toElem: packer.stream().data() @ ubyte[] * * * * * * * DotVarExp::toElem: packer.stream().data @ inout pure nothrow @nogc @property @trusted inout(ubyte)[]() * * * * * * * * CallExp::toElem: packer.stream() @ Appender!(ubyte[]) * * * * * * * * * DotVarExp::toElem: packer.stream @ pure nothrow @nogc @property ref @safe Appender!(ubyte[])() * * * * * * * * * * VarExp::toElem: packer @ PackerImpl!(Appender!(ubyte[])) * * * * * * * * * * * DtoSymbolAddress ('packer' of type 'PackerImpl!(Appender!(ubyte[]))') * * * * * * * * * * * * a normal variable * * * * * * * * * DtoCallFunction() * * * * * * * * * * Building type: pure nothrow @nogc @property ref @safe Appender!(ubyte[])() * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @property ref @safe Appender!(ubyte[])()) * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * Final function type: %"std.array.Appender!(ubyte[]).Appender"* () * * * * * * * * * * doing normal arguments * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * %packer = alloca %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl", align 8 * * * * * * * * * * Function type: pure nothrow @nogc @property ref @safe Appender!(ubyte[])() * * * * * * * DtoCallFunction() * * * * * * * * Building type: inout pure nothrow @nogc @property @trusted inout(ubyte)[]() * * * * * * * * * DtoFunctionType(inout pure nothrow @nogc @property @trusted inout(ubyte)[]()) * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: { i64, i8* } () * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (1) * * * * * * * * * %4 = call %"std.array.Appender!(ubyte[]).Appender"* @_D7msgpack55__T10PackerImplTS3std5array16__T8AppenderTAhZ8AppenderZ10PackerImpl6streamMFNaNbNcNdNiNfZS3std5array16__T8AppenderTAhZ8Appender(%"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* %packer) * * * * * * * * Function type: inout pure nothrow @nogc @property @trusted inout(ubyte)[]() * * * * * * return value is '0x133cab70' * TemplateInstance::codegen: 'msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.pack!(const(AutocompleteRequest))' * * DtoDefineFunction(msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.pack!(const(AutocompleteRequest)).pack): msgpack-d/src/msgpack.d(838) * * * Doing function body for: pack * * * DtoCreateNestedContext for pack * * * * DtoCreateNestedContextType for msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.pack!(const(AutocompleteRequest)).pack * * * * * has nested frame * * * * * Function pack has depth 0 * * * * * Nested var 'f' of type { i64, i8* } * * * * * Nested var 'this' of type %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* * * * * * Building type: RequestKind * * * * * Nested var 'f' of type i16 * * * * * Nested var 'f' of type { i64, { i64, i8* }* } * * * * * Nested var 'f' of type { i64, i8* } * * * * * Nested var 'f' of type i64 * * * * * Nested var 'f' of type { i64, i8* } * * * * * Nested var 'f' of type { i64, i8* } * * * * * Building type: RequestKind * * * * * Nested var 'f' of type i16 * * * * * Nested var 'f' of type { i64, { i64, i8* }* } * * * * * Nested var 'f' of type { i64, i8* } * * * * * Nested var 'f' of type i64 * * * * * Nested var 'f' of type { i64, i8* } * * * * * frameType = %nest.pack = type { { i64, i8* }, %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"*, i16, [6 x i8], { i64, { i64, i8* }* }, { i64, i8* }, i64, { i64, i8* }, { i64, i8* }, i16, [6 x i8], { i64, { i64, i8* }* }, { i64, i8* }, i64, { i64, i8* } } * * * * nested var: f * * * * nested param: this * * * * nested var: f * * * * nested var: f * * * * nested var: f * * * * nested var: f * * * * nested var: f * * * * nested var: f * * * * nested var: f * * * * nested var: f * * * * nested var: f * * * * nested var: f * * * * nested var: f * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(839) * * * * * IfStatement::toIR(): msgpack-d/src/msgpack.d(854) * * * * * * Building type: void delegate(ref PackerImpl!(Appender!(ubyte[])), void*) @system* * * * * * * * Building type: void delegate(ref PackerImpl!(Appender!(ubyte[])), void*) @system * * * * * * * * DtoFunctionType(@system void(ref PackerImpl!(Appender!(ubyte[])), void*)) * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * Final function type: void (i8*, i8*, %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"*) * * * * * * CommaExp::toElem: void delegate(ref PackerImpl!(Appender!(ubyte[])), void*) @system* handler = typeid(AutocompleteRequest) in packHandlers; , handler @ void delegate(ref PackerImpl!(Appender!(ubyte[])), void*) @system* * * * * * * * DeclarationExp::toElem: void delegate(ref PackerImpl!(Appender!(ubyte[])), void*) @system* handler = typeid(AutocompleteRequest) in packHandlers; | T=void * * * * * * * * DtoDeclarationExp: handler * * * * * * * * * VarDeclaration * * * * * * * * * DtoVarDeclaration(vdtype = void delegate(ref PackerImpl!(Appender!(ubyte[])), void*) @system*) * * * * * * * * * * llvm value for decl: %handler = alloca { i8*, void (i8*, i8*, %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"*)* }*, align 8 * * * * * * * * * * expression initializer * * * * * * * * * * AssignExp::toElem: handler = typeid(AutocompleteRequest) in packHandlers | (void delegate(ref PackerImpl!(Appender!(ubyte[])), void*) @system*)(void delegate(ref PackerImpl!(Appender!(ubyte[])), void*) @system* = void delegate(ref PackerImpl!(Appender!(ubyte[])), void*) @system*) * * * * * * * * * * * VarExp::toElem: handler @ void delegate(ref PackerImpl!(Appender!(ubyte[])), void*) @system* * * * * * * * * * * * * DtoSymbolAddress ('handler' of type 'void delegate(ref PackerImpl!(Appender!(ubyte[])), void*) @system*') * * * * * * * * * * * * * a normal variable * * * * * * * * * * * InExp::toElem: typeid(AutocompleteRequest) in packHandlers @ void delegate(ref PackerImpl!(Appender!(ubyte[])), void*) @system* * * * * * * * * * * * * SymOffExp::toElem: typeid(AutocompleteRequest) @ object.TypeInfo * * * * * * * * * * * * * DtoSymbolAddress ('typeid(AutocompleteRequest)' of type 'object.TypeInfo_Struct') * * * * * * * * * * * * * * TypeInfoDeclaration * * * * * * * * * * * * * Casting from 'TypeInfo_Struct*' to 'object.TypeInfo' * * * * * * * * * * * * * * src: %object.TypeInfo_Struct* bitcast (%"typeid(AutocompleteRequest)"* @_D47TypeInfo_S6common8messages19AutocompleteRequest6__initZ to %object.TypeInfo_Struct*) * * * * * * * * * * * * * * to type: %object.TypeInfo* * * * * * * * * * * * * VarExp::toElem: packHandlers @ void delegate(ref PackerImpl!(Appender!(ubyte[])), void*) @system[TypeInfo] * * * * * * * * * * * * * DtoSymbolAddress ('packHandlers' of type 'void delegate(ref PackerImpl!(Appender!(ubyte[])), void*) @system[TypeInfo]') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * DtoResolveVariable(msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.packHandlers) * * * * * * * * * * * * * * * data segment * * * * * * * * * * * * * * Building type: void delegate(ref PackerImpl!(Appender!(ubyte[])), void*) @system[TypeInfo] * * * * * * * * * * * * _aaIn = ; Function Attrs: readonly declare i8* @_aaInX(i8* nocapture, %object.TypeInfo*, i8* nocapture) #1 * * * * * * * * * * * * aaval: %1 = load i8*, i8** @_D7msgpack55__T10PackerImplTS3std5array16__T8AppenderTAhZ8AppenderZ10PackerImpl12packHandlersHC8TypeInfoDFKS7msgpack55__T10PackerImplTS3std5array16__T8AppenderTAhZ8AppenderZ10PackerImplPvZv * * * * * * * * * * * * totype: i8* * * * * * * * * * * * * DtoTypeInfoOf(type = 'object.TypeInfo', base='0') * * * * * * * * * * * * * Type::getTypeInfo(): object.TypeInfo * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * lhs: %handler = alloca { i8*, void (i8*, i8*, %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"*)* }*, align 8 * * * * * * * * * * * * rhs: %3 = bitcast i8* %aa.in to { i8*, void (i8*, i8*, %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"*)* }* * * * * * * * VarExp::toElem: handler @ void delegate(ref PackerImpl!(Appender!(ubyte[])), void*) @system* * * * * * * * * DtoSymbolAddress ('handler' of type 'void delegate(ref PackerImpl!(Appender!(ubyte[])), void*) @system*') * * * * * * * * * a normal variable * * * * * * if conditional: %4 = load { i8*, void (i8*, i8*, %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"*)* }*, { i8*, void (i8*, i8*, %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"*)* }** %handler * * * * * * Casting from 'void delegate(ref PackerImpl!(Appender!(ubyte[])), void*) @system*' to 'bool' * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(854) * * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(854) * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(855) * * * * * * * * * CallExp::toElem: (*handler)(this, cast(void*)&object) @ void * * * * * * * * * * PtrExp::toElem: *handler @ void delegate(ref PackerImpl!(Appender!(ubyte[])), void*) @system * * * * * * * * * * * VarExp::toElem: handler @ void delegate(ref PackerImpl!(Appender!(ubyte[])), void*) @system* * * * * * * * * * * * * DtoSymbolAddress ('handler' of type 'void delegate(ref PackerImpl!(Appender!(ubyte[])), void*) @system*') * * * * * * * * * * * * * a normal variable * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * doing normal arguments * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * %.ptr = load i8*, i8** %9 * * * * * * * * * * * Function type: @system void(ref PackerImpl!(Appender!(ubyte[])), void*) * * * * * * * * * * * DtoArgument * * * * * * * * * * * * ThisExp::toElem: this @ PackerImpl!(Appender!(ubyte[])) * * * * * * * * * * * * * normal this exp * * * * * * * * * * * DtoArgument * * * * * * * * * * * * CastExp::toElem: cast(void*)&object @ void* * * * * * * * * * * * * * AddrExp::toElem: &object @ const(AutocompleteRequest)* * * * * * * * * * * * * * * VarExp::toElem: object @ const(AutocompleteRequest) * * * * * * * * * * * * * * * DtoSymbolAddress ('object' of type 'const(AutocompleteRequest)') * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * type: const(AutocompleteRequest) * * * * * * * * * * * * * * is nothing special * * * * * * * * * * * * * * lval: %common.messages.AutocompleteRequest* %object_arg * * * * * * * * * * * * * Casting from 'const(AutocompleteRequest)*' to 'void*' * * * * * * * * * * * * * * src: %common.messages.AutocompleteRequest* %object_arg * * * * * * * * * * * * * * to type: i8* * * * * * * * * ReturnStatement::toIR(): msgpack-d/src/msgpack.d(856) * * * * * * * * * AddrExp::toElem: &this @ PackerImpl!(Appender!(ubyte[]))* * * * * * * * * * * ThisExp::toElem: this @ PackerImpl!(Appender!(ubyte[])) * * * * * * * * * * * normal this exp * * * * * * * * * * is nothing special * * * * * * * * * * lval: %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* %.this_arg * * * * * * * * * return value is '0x133cb880' * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(859) * * * * * * DeclarationExp::toElem: immutable immutable(ulong) memberNum = 6LU; | T=void * * * * * * * DtoDeclarationExp: memberNum * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = immutable(ulong)) * * * * * * * * * llvm value for decl: %memberNum = alloca i64, align 8 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: memberNum = 6LU | (immutable(ulong))(immutable(ulong) = immutable(ulong)) * * * * * * * * * * VarExp::toElem: memberNum @ immutable(ulong) * * * * * * * * * * * DtoSymbolAddress ('memberNum' of type 'immutable(ulong)') * * * * * * * * * * * * a normal variable * * * * * * * * * * IntegerExp::toElem: 6LU @ immutable(ulong) * * * * * * * * * * * IntegerExp::toConstElem: 6LU @ immutable(ulong) * * * * * * * * * * * * value = i64 6 * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %memberNum = alloca i64, align 8 * * * * * * * * * * * rhs: i64 6 * * * * * IfStatement::toIR(): msgpack-d/src/msgpack.d(860) * * * * * * DotVarExp::toElem: this.withFieldName_ @ bool * * * * * * * ThisExp::toElem: this @ PackerImpl!(Appender!(ubyte[])) * * * * * * * * normal this exp * * * * * * * Indexing aggregate field msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.withFieldName_: * * * * * * * * Value: %11 = getelementptr %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl", %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* %.this_arg, i32 0, i32 2 * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(861) * * * * * * * CallExp::toElem: this.beginMap(6LU) @ PackerImpl!(Appender!(ubyte[])) * * * * * * * * DotVarExp::toElem: this.beginMap @ pure nothrow ref @trusted PackerImpl!(Appender!(ubyte[]))(const(ulong) length) * * * * * * * * * ThisExp::toElem: this @ PackerImpl!(Appender!(ubyte[])) * * * * * * * * * * normal this exp * * * * * * * * DtoCallFunction() * * * * * * * * * Building type: pure nothrow ref @trusted PackerImpl!(Appender!(ubyte[]))(const(ulong) length) * * * * * * * * * * DtoFunctionType(pure nothrow ref @trusted PackerImpl!(Appender!(ubyte[]))(const(ulong) length)) * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * Final function type: %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* (i64) * * * * * * * * * doing normal arguments * * * * * * * * * Arguments so far: (1) * * * * * * * * * * %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* %.this_arg * * * * * * * * * Function type: pure nothrow ref @trusted PackerImpl!(Appender!(ubyte[]))(const(ulong) length) * * * * * * * * * DtoArgument * * * * * * * * * * IntegerExp::toElem: 6LU @ const(ulong) * * * * * * * * * * * IntegerExp::toConstElem: 6LU @ const(ulong) * * * * * * * * * * * * value = i64 6 * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(863) * * * * * * * CallExp::toElem: this.beginArray(6LU) @ PackerImpl!(Appender!(ubyte[])) * * * * * * * * DotVarExp::toElem: this.beginArray @ pure nothrow ref @trusted PackerImpl!(Appender!(ubyte[]))(const(ulong) length) * * * * * * * * * ThisExp::toElem: this @ PackerImpl!(Appender!(ubyte[])) * * * * * * * * * * normal this exp * * * * * * * * DtoCallFunction() * * * * * * * * * Building type: pure nothrow ref @trusted PackerImpl!(Appender!(ubyte[]))(const(ulong) length) * * * * * * * * * * DtoFunctionType(pure nothrow ref @trusted PackerImpl!(Appender!(ubyte[]))(const(ulong) length)) * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * Final function type: %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* (i64) * * * * * * * * * doing normal arguments * * * * * * * * * Arguments so far: (1) * * * * * * * * * * %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* %.this_arg * * * * * * * * * Function type: pure nothrow ref @trusted PackerImpl!(Appender!(ubyte[]))(const(ulong) length) * * * * * * * * * DtoArgument * * * * * * * * * * IntegerExp::toElem: 6LU @ const(ulong) * * * * * * * * * * * IntegerExp::toConstElem: 6LU @ const(ulong) * * * * * * * * * * * * value = i64 6 * * * * * IfStatement::toIR(): msgpack-d/src/msgpack.d(865) * * * * * * DotVarExp::toElem: this.withFieldName_ @ bool * * * * * * * ThisExp::toElem: this @ PackerImpl!(Appender!(ubyte[])) * * * * * * * * normal this exp * * * * * * * Indexing aggregate field msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.withFieldName_: * * * * * * * * Value: %16 = getelementptr %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl", %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* %.this_arg, i32 0, i32 2 * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(865) * * * * * * * UnrolledLoopStatement::toIR(): msgpack-d/src/msgpack.d(866) * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(866) * * * * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(866) * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(866) * * * * * * * * * * * DeclarationExp::toElem: enum ulong i = 0LU; | T=void * * * * * * * * * * * * DtoDeclarationExp: i * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * Manifest constant, nothing to do. * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(866) * * * * * * * * * * * DeclarationExp::toElem: const const(string) f = object.fileName; | T=void * * * * * * * * * * * * DtoDeclarationExp: f * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * DtoVarDeclaration(vdtype = const(string)) * * * * * * * * * * * * * * has nestedref set (referenced by nested function/delegate) * * * * * * * * * * * * * * llvm value for decl: %f = getelementptr %nest.pack, %nest.pack* %.frame1, i32 0, i32 0 * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * AssignExp::toElem: f = object.fileName | (const(string))(const(string) = const(string)) * * * * * * * * * * * * * * * VarExp::toElem: f @ const(string) * * * * * * * * * * * * * * * * DtoSymbolAddress ('f' of type 'const(string)') * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * DtoNestedVariable for f @ msgpack-d/src/msgpack.d(866) * * * * * * * * * * * * * * * DotVarExp::toElem: object.fileName @ const(string) * * * * * * * * * * * * * * * * VarExp::toElem: object @ const(AutocompleteRequest) * * * * * * * * * * * * * * * * * DtoSymbolAddress ('object' of type 'const(AutocompleteRequest)') * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * type: const(AutocompleteRequest) * * * * * * * * * * * * * * * * Indexing aggregate field common.messages.AutocompleteRequest.fileName: * * * * * * * * * * * * * * * * * Value: %19 = getelementptr %common.messages.AutocompleteRequest, %common.messages.AutocompleteRequest* %object_arg, i32 0, i32 0 * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * SetArray * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(869) * * * * * * * * * * * CallExp::toElem: this.pack("fileName") @ PackerImpl!(Appender!(ubyte[])) * * * * * * * * * * * * DotVarExp::toElem: this.pack @ pure nothrow ref @trusted PackerImpl!(Appender!(ubyte[]))(const(string) array) * * * * * * * * * * * * * ThisExp::toElem: this @ PackerImpl!(Appender!(ubyte[])) * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * isMember = this is: PackerImpl!(Appender!(ubyte[])) * * * * * * * * * * * * * DtoFunctionType(pure nothrow ref @trusted PackerImpl!(Appender!(ubyte[]))(const(string) array)) * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * Final function type: %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* (%"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"*, { i64, i8* }) * * * * * * * * * * * * * DtoResolveFunction(msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.pack!string.pack): msgpack-d/src/msgpack.d(674) * * * * * * * * * * * * * * DtoDeclareFunction(msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.pack!string.pack): msgpack-d/src/msgpack.d(674) * * * * * * * * * * * * * * * isMember = this is: PackerImpl!(Appender!(ubyte[])) * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow ref @trusted PackerImpl!(Appender!(ubyte[]))(const(string) array)) * * * * * * * * * * * * * * * func = declare %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* @_D7msgpack55__T10PackerImplTS3std5array16__T8AppenderTAhZ8AppenderZ10PackerImpl13__T4packTAyaZ4packMFNaNbNcNexAyaZS7msgpack55__T10PackerImplTS3std5array16__T8AppenderTAhZ8AppenderZ10PackerImpl(%"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"*, { i64, i8* }) * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * Building type: pure nothrow ref @trusted PackerImpl!(Appender!(ubyte[]))(const(string) array) * * * * * * * * * * * * * * DtoFunctionType(pure nothrow ref @trusted PackerImpl!(Appender!(ubyte[]))(const(string) array)) * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * Final function type: %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* ({ i64, i8* }) * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* %.this_arg * * * * * * * * * * * * * Function type: pure nothrow ref @trusted PackerImpl!(Appender!(ubyte[]))(const(string) array) * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * StringExp::toElem: "fileName" @ const(string) * * * * * * * * * * * * * * * type: [9 x i8] * * * * * * * * * * * * * * * init: [9 x i8] c"fileName\00" * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(870) * * * * * * * * * * * CallExp::toElem: this.pack(f) @ PackerImpl!(Appender!(ubyte[])) * * * * * * * * * * * * DotVarExp::toElem: this.pack @ pure nothrow ref @trusted PackerImpl!(Appender!(ubyte[]))(const(string) array) * * * * * * * * * * * * * ThisExp::toElem: this @ PackerImpl!(Appender!(ubyte[])) * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* %.this_arg * * * * * * * * * * * * * Function type: pure nothrow ref @trusted PackerImpl!(Appender!(ubyte[]))(const(string) array) * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * VarExp::toElem: f @ const(string) * * * * * * * * * * * * * * * DtoSymbolAddress ('f' of type 'const(string)') * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * DtoNestedVariable for f @ msgpack-d/src/msgpack.d(870) * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(866) * * * * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(866) * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(866) * * * * * * * * * * * DeclarationExp::toElem: enum ulong i = 1LU; | T=void * * * * * * * * * * * * DtoDeclarationExp: i * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * Manifest constant, nothing to do. * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(866) * * * * * * * * * * * DeclarationExp::toElem: const const(RequestKind) f = object.kind; | T=void * * * * * * * * * * * * DtoDeclarationExp: f * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * DtoVarDeclaration(vdtype = const(RequestKind)) * * * * * * * * * * * * * * has nestedref set (referenced by nested function/delegate) * * * * * * * * * * * * * * llvm value for decl: %f2 = getelementptr %nest.pack, %nest.pack* %.frame1, i32 0, i32 2 * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * AssignExp::toElem: f = object.kind | (const(RequestKind))(const(RequestKind) = const(RequestKind)) * * * * * * * * * * * * * * * VarExp::toElem: f @ const(RequestKind) * * * * * * * * * * * * * * * * DtoSymbolAddress ('f' of type 'const(RequestKind)') * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * DtoNestedVariable for f @ msgpack-d/src/msgpack.d(866) * * * * * * * * * * * * * * * DotVarExp::toElem: object.kind @ const(RequestKind) * * * * * * * * * * * * * * * * VarExp::toElem: object @ const(AutocompleteRequest) * * * * * * * * * * * * * * * * * DtoSymbolAddress ('object' of type 'const(AutocompleteRequest)') * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * type: const(AutocompleteRequest) * * * * * * * * * * * * * * * * Indexing aggregate field common.messages.AutocompleteRequest.kind: * * * * * * * * * * * * * * * * * Building type: RequestKind * * * * * * * * * * * * * * * * * Value: %27 = getelementptr %common.messages.AutocompleteRequest, %common.messages.AutocompleteRequest* %object_arg, i32 0, i32 1 * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * lhs: %f2 = getelementptr %nest.pack, %nest.pack* %.frame1, i32 0, i32 2 * * * * * * * * * * * * * * * * rhs: %28 = load i16, i16* %27 * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(869) * * * * * * * * * * * CallExp::toElem: this.pack("kind") @ PackerImpl!(Appender!(ubyte[])) * * * * * * * * * * * * DotVarExp::toElem: this.pack @ pure nothrow ref @trusted PackerImpl!(Appender!(ubyte[]))(const(string) array) * * * * * * * * * * * * * ThisExp::toElem: this @ PackerImpl!(Appender!(ubyte[])) * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* %.this_arg * * * * * * * * * * * * * Function type: pure nothrow ref @trusted PackerImpl!(Appender!(ubyte[]))(const(string) array) * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * StringExp::toElem: "kind" @ const(string) * * * * * * * * * * * * * * * type: [5 x i8] * * * * * * * * * * * * * * * init: [5 x i8] c"kind\00" * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(870) * * * * * * * * * * * CallExp::toElem: this.pack(f) @ PackerImpl!(Appender!(ubyte[])) * * * * * * * * * * * * DotVarExp::toElem: this.pack @ pure nothrow ref @trusted PackerImpl!(Appender!(ubyte[]))(const(RequestKind) value) * * * * * * * * * * * * * ThisExp::toElem: this @ PackerImpl!(Appender!(ubyte[])) * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * isMember = this is: PackerImpl!(Appender!(ubyte[])) * * * * * * * * * * * * * DtoFunctionType(pure nothrow ref @trusted PackerImpl!(Appender!(ubyte[]))(const(RequestKind) value)) * * * * * * * * * * * * * * Building type: RequestKind * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * Final function type: %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* (%"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"*, i16) * * * * * * * * * * * * * DtoResolveFunction(msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.pack!(RequestKind).pack): msgpack-d/src/msgpack.d(638) * * * * * * * * * * * * * * DtoDeclareFunction(msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.pack!(RequestKind).pack): msgpack-d/src/msgpack.d(638) * * * * * * * * * * * * * * * isMember = this is: PackerImpl!(Appender!(ubyte[])) * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow ref @trusted PackerImpl!(Appender!(ubyte[]))(const(RequestKind) value)) * * * * * * * * * * * * * * * func = declare %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* @_D7msgpack55__T10PackerImplTS3std5array16__T8AppenderTAhZ8AppenderZ10PackerImpl40__T4packTE6common8messages11RequestKindZ4packMFNaNbNcNexE6common8messages11RequestKindZS7msgpack55__T10PackerImplTS3std5array16__T8AppenderTAhZ8AppenderZ10PackerImpl(%"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"*, i16) * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * Building type: pure nothrow ref @trusted PackerImpl!(Appender!(ubyte[]))(const(RequestKind) value) * * * * * * * * * * * * * * DtoFunctionType(pure nothrow ref @trusted PackerImpl!(Appender!(ubyte[]))(const(RequestKind) value)) * * * * * * * * * * * * * * * Building type: RequestKind * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * Final function type: %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* (i16) * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* %.this_arg * * * * * * * * * * * * * Function type: pure nothrow ref @trusted PackerImpl!(Appender!(ubyte[]))(const(RequestKind) value) * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * VarExp::toElem: f @ const(RequestKind) * * * * * * * * * * * * * * * DtoSymbolAddress ('f' of type 'const(RequestKind)') * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * DtoNestedVariable for f @ msgpack-d/src/msgpack.d(870) * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(866) * * * * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(866) * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(866) * * * * * * * * * * * DeclarationExp::toElem: enum ulong i = 2LU; | T=void * * * * * * * * * * * * DtoDeclarationExp: i * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * Manifest constant, nothing to do. * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(866) * * * * * * * * * * * DeclarationExp::toElem: const const(string[]) f = object.importPaths; | T=void * * * * * * * * * * * * DtoDeclarationExp: f * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * DtoVarDeclaration(vdtype = const(string[])) * * * * * * * * * * * * * * has nestedref set (referenced by nested function/delegate) * * * * * * * * * * * * * * llvm value for decl: %f3 = getelementptr %nest.pack, %nest.pack* %.frame1, i32 0, i32 4 * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * AssignExp::toElem: f = object.importPaths | (const(string[]))(const(string[]) = const(string[])) * * * * * * * * * * * * * * * VarExp::toElem: f @ const(string[]) * * * * * * * * * * * * * * * * DtoSymbolAddress ('f' of type 'const(string[])') * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * DtoNestedVariable for f @ msgpack-d/src/msgpack.d(866) * * * * * * * * * * * * * * * DotVarExp::toElem: object.importPaths @ const(string[]) * * * * * * * * * * * * * * * * VarExp::toElem: object @ const(AutocompleteRequest) * * * * * * * * * * * * * * * * * DtoSymbolAddress ('object' of type 'const(AutocompleteRequest)') * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * type: const(AutocompleteRequest) * * * * * * * * * * * * * * * * Indexing aggregate field common.messages.AutocompleteRequest.importPaths: * * * * * * * * * * * * * * * * * Value: %32 = getelementptr %common.messages.AutocompleteRequest, %common.messages.AutocompleteRequest* %object_arg, i32 0, i32 3 * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * SetArray * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(869) * * * * * * * * * * * CallExp::toElem: this.pack("importPaths") @ PackerImpl!(Appender!(ubyte[])) * * * * * * * * * * * * DotVarExp::toElem: this.pack @ pure nothrow ref @trusted PackerImpl!(Appender!(ubyte[]))(const(string) array) * * * * * * * * * * * * * ThisExp::toElem: this @ PackerImpl!(Appender!(ubyte[])) * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* %.this_arg * * * * * * * * * * * * * Function type: pure nothrow ref @trusted PackerImpl!(Appender!(ubyte[]))(const(string) array) * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * StringExp::toElem: "importPaths" @ const(string) * * * * * * * * * * * * * * * type: [12 x i8] * * * * * * * * * * * * * * * init: [12 x i8] c"importPaths\00" * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(870) * * * * * * * * * * * CallExp::toElem: this.pack(f) @ PackerImpl!(Appender!(ubyte[])) * * * * * * * * * * * * DotVarExp::toElem: this.pack @ pure nothrow ref @trusted PackerImpl!(Appender!(ubyte[]))(const(string[]) array) * * * * * * * * * * * * * ThisExp::toElem: this @ PackerImpl!(Appender!(ubyte[])) * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * isMember = this is: PackerImpl!(Appender!(ubyte[])) * * * * * * * * * * * * * DtoFunctionType(pure nothrow ref @trusted PackerImpl!(Appender!(ubyte[]))(const(string[]) array)) * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * Final function type: %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* (%"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"*, { i64, { i64, i8* }* }) * * * * * * * * * * * * * DtoResolveFunction(msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.pack!(const(string)[]).pack): msgpack-d/src/msgpack.d(674) * * * * * * * * * * * * * * DtoDeclareFunction(msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.pack!(const(string)[]).pack): msgpack-d/src/msgpack.d(674) * * * * * * * * * * * * * * * isMember = this is: PackerImpl!(Appender!(ubyte[])) * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow ref @trusted PackerImpl!(Appender!(ubyte[]))(const(string[]) array)) * * * * * * * * * * * * * * * func = declare %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* @_D7msgpack55__T10PackerImplTS3std5array16__T8AppenderTAhZ8AppenderZ10PackerImpl15__T4packTAxAyaZ4packMFNaNbNcNexAAyaZS7msgpack55__T10PackerImplTS3std5array16__T8AppenderTAhZ8AppenderZ10PackerImpl(%"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"*, { i64, { i64, i8* }* }) * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * Building type: pure nothrow ref @trusted PackerImpl!(Appender!(ubyte[]))(const(string[]) array) * * * * * * * * * * * * * * DtoFunctionType(pure nothrow ref @trusted PackerImpl!(Appender!(ubyte[]))(const(string[]) array)) * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * Final function type: %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* ({ i64, { i64, i8* }* }) * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* %.this_arg * * * * * * * * * * * * * Function type: pure nothrow ref @trusted PackerImpl!(Appender!(ubyte[]))(const(string[]) array) * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * VarExp::toElem: f @ const(string[]) * * * * * * * * * * * * * * * DtoSymbolAddress ('f' of type 'const(string[])') * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * DtoNestedVariable for f @ msgpack-d/src/msgpack.d(870) * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(866) * * * * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(866) * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(866) * * * * * * * * * * * DeclarationExp::toElem: enum ulong i = 3LU; | T=void * * * * * * * * * * * * DtoDeclarationExp: i * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * Manifest constant, nothing to do. * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(866) * * * * * * * * * * * DeclarationExp::toElem: const const(ubyte[]) f = object.sourceCode; | T=void * * * * * * * * * * * * DtoDeclarationExp: f * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * DtoVarDeclaration(vdtype = const(ubyte[])) * * * * * * * * * * * * * * has nestedref set (referenced by nested function/delegate) * * * * * * * * * * * * * * llvm value for decl: %f4 = getelementptr %nest.pack, %nest.pack* %.frame1, i32 0, i32 5 * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * AssignExp::toElem: f = object.sourceCode | (const(ubyte[]))(const(ubyte[]) = const(ubyte[])) * * * * * * * * * * * * * * * VarExp::toElem: f @ const(ubyte[]) * * * * * * * * * * * * * * * * DtoSymbolAddress ('f' of type 'const(ubyte[])') * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * DtoNestedVariable for f @ msgpack-d/src/msgpack.d(866) * * * * * * * * * * * * * * * DotVarExp::toElem: object.sourceCode @ const(ubyte[]) * * * * * * * * * * * * * * * * VarExp::toElem: object @ const(AutocompleteRequest) * * * * * * * * * * * * * * * * * DtoSymbolAddress ('object' of type 'const(AutocompleteRequest)') * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * type: const(AutocompleteRequest) * * * * * * * * * * * * * * * * Indexing aggregate field common.messages.AutocompleteRequest.sourceCode: * * * * * * * * * * * * * * * * * Value: %40 = getelementptr %common.messages.AutocompleteRequest, %common.messages.AutocompleteRequest* %object_arg, i32 0, i32 4 * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * SetArray * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(869) * * * * * * * * * * * CallExp::toElem: this.pack("sourceCode") @ PackerImpl!(Appender!(ubyte[])) * * * * * * * * * * * * DotVarExp::toElem: this.pack @ pure nothrow ref @trusted PackerImpl!(Appender!(ubyte[]))(const(string) array) * * * * * * * * * * * * * ThisExp::toElem: this @ PackerImpl!(Appender!(ubyte[])) * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* %.this_arg * * * * * * * * * * * * * Function type: pure nothrow ref @trusted PackerImpl!(Appender!(ubyte[]))(const(string) array) * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * StringExp::toElem: "sourceCode" @ const(string) * * * * * * * * * * * * * * * type: [11 x i8] * * * * * * * * * * * * * * * init: [11 x i8] c"sourceCode\00" * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(870) * * * * * * * * * * * CallExp::toElem: this.pack(f) @ PackerImpl!(Appender!(ubyte[])) * * * * * * * * * * * * DotVarExp::toElem: this.pack @ pure nothrow ref @trusted PackerImpl!(Appender!(ubyte[]))(const(ubyte[]) array) * * * * * * * * * * * * * ThisExp::toElem: this @ PackerImpl!(Appender!(ubyte[])) * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * isMember = this is: PackerImpl!(Appender!(ubyte[])) * * * * * * * * * * * * * DtoFunctionType(pure nothrow ref @trusted PackerImpl!(Appender!(ubyte[]))(const(ubyte[]) array)) * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * Final function type: %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* (%"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"*, { i64, i8* }) * * * * * * * * * * * * * DtoResolveFunction(msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.pack!(const(ubyte)[]).pack): msgpack-d/src/msgpack.d(674) * * * * * * * * * * * * * * DtoDeclareFunction(msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.pack!(const(ubyte)[]).pack): msgpack-d/src/msgpack.d(674) * * * * * * * * * * * * * * * isMember = this is: PackerImpl!(Appender!(ubyte[])) * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow ref @trusted PackerImpl!(Appender!(ubyte[]))(const(ubyte[]) array)) * * * * * * * * * * * * * * * func = declare %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* @_D7msgpack55__T10PackerImplTS3std5array16__T8AppenderTAhZ8AppenderZ10PackerImpl13__T4packTAxhZ4packMFNaNbNcNexAhZS7msgpack55__T10PackerImplTS3std5array16__T8AppenderTAhZ8AppenderZ10PackerImpl(%"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"*, { i64, i8* }) * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * Building type: pure nothrow ref @trusted PackerImpl!(Appender!(ubyte[]))(const(ubyte[]) array) * * * * * * * * * * * * * * DtoFunctionType(pure nothrow ref @trusted PackerImpl!(Appender!(ubyte[]))(const(ubyte[]) array)) * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * Final function type: %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* ({ i64, i8* }) * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* %.this_arg * * * * * * * * * * * * * Function type: pure nothrow ref @trusted PackerImpl!(Appender!(ubyte[]))(const(ubyte[]) array) * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * VarExp::toElem: f @ const(ubyte[]) * * * * * * * * * * * * * * * DtoSymbolAddress ('f' of type 'const(ubyte[])') * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * DtoNestedVariable for f @ msgpack-d/src/msgpack.d(870) * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(866) * * * * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(866) * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(866) * * * * * * * * * * * DeclarationExp::toElem: enum ulong i = 4LU; | T=void * * * * * * * * * * * * DtoDeclarationExp: i * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * Manifest constant, nothing to do. * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(866) * * * * * * * * * * * DeclarationExp::toElem: const const(ulong) f = object.cursorPosition; | T=void * * * * * * * * * * * * DtoDeclarationExp: f * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * DtoVarDeclaration(vdtype = const(ulong)) * * * * * * * * * * * * * * has nestedref set (referenced by nested function/delegate) * * * * * * * * * * * * * * llvm value for decl: %f5 = getelementptr %nest.pack, %nest.pack* %.frame1, i32 0, i32 6 * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * AssignExp::toElem: f = object.cursorPosition | (const(ulong))(const(ulong) = const(ulong)) * * * * * * * * * * * * * * * VarExp::toElem: f @ const(ulong) * * * * * * * * * * * * * * * * DtoSymbolAddress ('f' of type 'const(ulong)') * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * DtoNestedVariable for f @ msgpack-d/src/msgpack.d(866) * * * * * * * * * * * * * * * DotVarExp::toElem: object.cursorPosition @ const(ulong) * * * * * * * * * * * * * * * * VarExp::toElem: object @ const(AutocompleteRequest) * * * * * * * * * * * * * * * * * DtoSymbolAddress ('object' of type 'const(AutocompleteRequest)') * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * type: const(AutocompleteRequest) * * * * * * * * * * * * * * * * Indexing aggregate field common.messages.AutocompleteRequest.cursorPosition: * * * * * * * * * * * * * * * * * Value: %48 = getelementptr %common.messages.AutocompleteRequest, %common.messages.AutocompleteRequest* %object_arg, i32 0, i32 5 * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * lhs: %f5 = getelementptr %nest.pack, %nest.pack* %.frame1, i32 0, i32 6 * * * * * * * * * * * * * * * * rhs: %49 = load i64, i64* %48 * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(869) * * * * * * * * * * * CallExp::toElem: this.pack("cursorPosition") @ PackerImpl!(Appender!(ubyte[])) * * * * * * * * * * * * DotVarExp::toElem: this.pack @ pure nothrow ref @trusted PackerImpl!(Appender!(ubyte[]))(const(string) array) * * * * * * * * * * * * * ThisExp::toElem: this @ PackerImpl!(Appender!(ubyte[])) * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* %.this_arg * * * * * * * * * * * * * Function type: pure nothrow ref @trusted PackerImpl!(Appender!(ubyte[]))(const(string) array) * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * StringExp::toElem: "cursorPosition" @ const(string) * * * * * * * * * * * * * * * type: [15 x i8] * * * * * * * * * * * * * * * init: [15 x i8] c"cursorPosition\00" * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(870) * * * * * * * * * * * CallExp::toElem: this.pack(f) @ PackerImpl!(Appender!(ubyte[])) * * * * * * * * * * * * DotVarExp::toElem: this.pack @ pure nothrow ref @trusted PackerImpl!(Appender!(ubyte[]))(const(ulong) value) * * * * * * * * * * * * * ThisExp::toElem: this @ PackerImpl!(Appender!(ubyte[])) * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * isMember = this is: PackerImpl!(Appender!(ubyte[])) * * * * * * * * * * * * * DtoFunctionType(pure nothrow ref @trusted PackerImpl!(Appender!(ubyte[]))(const(ulong) value)) * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * Final function type: %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* (%"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"*, i64) * * * * * * * * * * * * * DtoResolveFunction(msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.pack!ulong.pack): msgpack-d/src/msgpack.d(401) * * * * * * * * * * * * * * DtoDeclareFunction(msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.pack!ulong.pack): msgpack-d/src/msgpack.d(401) * * * * * * * * * * * * * * * isMember = this is: PackerImpl!(Appender!(ubyte[])) * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow ref @trusted PackerImpl!(Appender!(ubyte[]))(const(ulong) value)) * * * * * * * * * * * * * * * func = declare %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* @_D7msgpack55__T10PackerImplTS3std5array16__T8AppenderTAhZ8AppenderZ10PackerImpl11__T4packTmZ4packMFNaNbNcNexmZS7msgpack55__T10PackerImplTS3std5array16__T8AppenderTAhZ8AppenderZ10PackerImpl(%"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"*, i64) * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * Building type: pure nothrow ref @trusted PackerImpl!(Appender!(ubyte[]))(const(ulong) value) * * * * * * * * * * * * * * DtoFunctionType(pure nothrow ref @trusted PackerImpl!(Appender!(ubyte[]))(const(ulong) value)) * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * Final function type: %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* (i64) * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* %.this_arg * * * * * * * * * * * * * Function type: pure nothrow ref @trusted PackerImpl!(Appender!(ubyte[]))(const(ulong) value) * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * VarExp::toElem: f @ const(ulong) * * * * * * * * * * * * * * * DtoSymbolAddress ('f' of type 'const(ulong)') * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * DtoNestedVariable for f @ msgpack-d/src/msgpack.d(870) * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(866) * * * * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(866) * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(866) * * * * * * * * * * * DeclarationExp::toElem: enum ulong i = 5LU; | T=void * * * * * * * * * * * * DtoDeclarationExp: i * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * Manifest constant, nothing to do. * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(866) * * * * * * * * * * * DeclarationExp::toElem: const const(string) f = object.searchName; | T=void * * * * * * * * * * * * DtoDeclarationExp: f * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * DtoVarDeclaration(vdtype = const(string)) * * * * * * * * * * * * * * has nestedref set (referenced by nested function/delegate) * * * * * * * * * * * * * * llvm value for decl: %f6 = getelementptr %nest.pack, %nest.pack* %.frame1, i32 0, i32 7 * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * AssignExp::toElem: f = object.searchName | (const(string))(const(string) = const(string)) * * * * * * * * * * * * * * * VarExp::toElem: f @ const(string) * * * * * * * * * * * * * * * * DtoSymbolAddress ('f' of type 'const(string)') * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * DtoNestedVariable for f @ msgpack-d/src/msgpack.d(866) * * * * * * * * * * * * * * * DotVarExp::toElem: object.searchName @ const(string) * * * * * * * * * * * * * * * * VarExp::toElem: object @ const(AutocompleteRequest) * * * * * * * * * * * * * * * * * DtoSymbolAddress ('object' of type 'const(AutocompleteRequest)') * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * type: const(AutocompleteRequest) * * * * * * * * * * * * * * * * Indexing aggregate field common.messages.AutocompleteRequest.searchName: * * * * * * * * * * * * * * * * * Value: %53 = getelementptr %common.messages.AutocompleteRequest, %common.messages.AutocompleteRequest* %object_arg, i32 0, i32 6 * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * SetArray * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(869) * * * * * * * * * * * CallExp::toElem: this.pack("searchName") @ PackerImpl!(Appender!(ubyte[])) * * * * * * * * * * * * DotVarExp::toElem: this.pack @ pure nothrow ref @trusted PackerImpl!(Appender!(ubyte[]))(const(string) array) * * * * * * * * * * * * * ThisExp::toElem: this @ PackerImpl!(Appender!(ubyte[])) * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* %.this_arg * * * * * * * * * * * * * Function type: pure nothrow ref @trusted PackerImpl!(Appender!(ubyte[]))(const(string) array) * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * StringExp::toElem: "searchName" @ const(string) * * * * * * * * * * * * * * * type: [11 x i8] * * * * * * * * * * * * * * * init: [11 x i8] c"searchName\00" * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(870) * * * * * * * * * * * CallExp::toElem: this.pack(f) @ PackerImpl!(Appender!(ubyte[])) * * * * * * * * * * * * DotVarExp::toElem: this.pack @ pure nothrow ref @trusted PackerImpl!(Appender!(ubyte[]))(const(string) array) * * * * * * * * * * * * * ThisExp::toElem: this @ PackerImpl!(Appender!(ubyte[])) * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* %.this_arg * * * * * * * * * * * * * Function type: pure nothrow ref @trusted PackerImpl!(Appender!(ubyte[]))(const(string) array) * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * VarExp::toElem: f @ const(string) * * * * * * * * * * * * * * * DtoSymbolAddress ('f' of type 'const(string)') * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * DtoNestedVariable for f @ msgpack-d/src/msgpack.d(870) * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(873) * * * * * * * UnrolledLoopStatement::toIR(): msgpack-d/src/msgpack.d(874) * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(874) * * * * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(874) * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(874) * * * * * * * * * * * DeclarationExp::toElem: enum ulong i = 0LU; | T=void * * * * * * * * * * * * DtoDeclarationExp: i * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * Manifest constant, nothing to do. * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(874) * * * * * * * * * * * DeclarationExp::toElem: const const(string) f = object.fileName; | T=void * * * * * * * * * * * * DtoDeclarationExp: f * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * DtoVarDeclaration(vdtype = const(string)) * * * * * * * * * * * * * * has nestedref set (referenced by nested function/delegate) * * * * * * * * * * * * * * llvm value for decl: %f7 = getelementptr %nest.pack, %nest.pack* %.frame1, i32 0, i32 8 * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * AssignExp::toElem: f = object.fileName | (const(string))(const(string) = const(string)) * * * * * * * * * * * * * * * VarExp::toElem: f @ const(string) * * * * * * * * * * * * * * * * DtoSymbolAddress ('f' of type 'const(string)') * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * DtoNestedVariable for f @ msgpack-d/src/msgpack.d(874) * * * * * * * * * * * * * * * DotVarExp::toElem: object.fileName @ const(string) * * * * * * * * * * * * * * * * VarExp::toElem: object @ const(AutocompleteRequest) * * * * * * * * * * * * * * * * * DtoSymbolAddress ('object' of type 'const(AutocompleteRequest)') * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * type: const(AutocompleteRequest) * * * * * * * * * * * * * * * * Indexing aggregate field common.messages.AutocompleteRequest.fileName: * * * * * * * * * * * * * * * * * Value: %61 = getelementptr %common.messages.AutocompleteRequest, %common.messages.AutocompleteRequest* %object_arg, i32 0, i32 0 * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * SetArray * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(876) * * * * * * * * * * * CallExp::toElem: this.pack(f) @ PackerImpl!(Appender!(ubyte[])) * * * * * * * * * * * * DotVarExp::toElem: this.pack @ pure nothrow ref @trusted PackerImpl!(Appender!(ubyte[]))(const(string) array) * * * * * * * * * * * * * ThisExp::toElem: this @ PackerImpl!(Appender!(ubyte[])) * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* %.this_arg * * * * * * * * * * * * * Function type: pure nothrow ref @trusted PackerImpl!(Appender!(ubyte[]))(const(string) array) * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * VarExp::toElem: f @ const(string) * * * * * * * * * * * * * * * DtoSymbolAddress ('f' of type 'const(string)') * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * DtoNestedVariable for f @ msgpack-d/src/msgpack.d(876) * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(874) * * * * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(874) * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(874) * * * * * * * * * * * DeclarationExp::toElem: enum ulong i = 1LU; | T=void * * * * * * * * * * * * DtoDeclarationExp: i * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * Manifest constant, nothing to do. * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(874) * * * * * * * * * * * DeclarationExp::toElem: const const(RequestKind) f = object.kind; | T=void * * * * * * * * * * * * DtoDeclarationExp: f * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * DtoVarDeclaration(vdtype = const(RequestKind)) * * * * * * * * * * * * * * has nestedref set (referenced by nested function/delegate) * * * * * * * * * * * * * * llvm value for decl: %f8 = getelementptr %nest.pack, %nest.pack* %.frame1, i32 0, i32 9 * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * AssignExp::toElem: f = object.kind | (const(RequestKind))(const(RequestKind) = const(RequestKind)) * * * * * * * * * * * * * * * VarExp::toElem: f @ const(RequestKind) * * * * * * * * * * * * * * * * DtoSymbolAddress ('f' of type 'const(RequestKind)') * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * DtoNestedVariable for f @ msgpack-d/src/msgpack.d(874) * * * * * * * * * * * * * * * DotVarExp::toElem: object.kind @ const(RequestKind) * * * * * * * * * * * * * * * * VarExp::toElem: object @ const(AutocompleteRequest) * * * * * * * * * * * * * * * * * DtoSymbolAddress ('object' of type 'const(AutocompleteRequest)') * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * type: const(AutocompleteRequest) * * * * * * * * * * * * * * * * Indexing aggregate field common.messages.AutocompleteRequest.kind: * * * * * * * * * * * * * * * * * Building type: RequestKind * * * * * * * * * * * * * * * * * Value: %68 = getelementptr %common.messages.AutocompleteRequest, %common.messages.AutocompleteRequest* %object_arg, i32 0, i32 1 * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * lhs: %f8 = getelementptr %nest.pack, %nest.pack* %.frame1, i32 0, i32 9 * * * * * * * * * * * * * * * * rhs: %69 = load i16, i16* %68 * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(876) * * * * * * * * * * * CallExp::toElem: this.pack(f) @ PackerImpl!(Appender!(ubyte[])) * * * * * * * * * * * * DotVarExp::toElem: this.pack @ pure nothrow ref @trusted PackerImpl!(Appender!(ubyte[]))(const(RequestKind) value) * * * * * * * * * * * * * ThisExp::toElem: this @ PackerImpl!(Appender!(ubyte[])) * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* %.this_arg * * * * * * * * * * * * * Function type: pure nothrow ref @trusted PackerImpl!(Appender!(ubyte[]))(const(RequestKind) value) * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * VarExp::toElem: f @ const(RequestKind) * * * * * * * * * * * * * * * DtoSymbolAddress ('f' of type 'const(RequestKind)') * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * DtoNestedVariable for f @ msgpack-d/src/msgpack.d(876) * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(874) * * * * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(874) * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(874) * * * * * * * * * * * DeclarationExp::toElem: enum ulong i = 2LU; | T=void * * * * * * * * * * * * DtoDeclarationExp: i * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * Manifest constant, nothing to do. * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(874) * * * * * * * * * * * DeclarationExp::toElem: const const(string[]) f = object.importPaths; | T=void * * * * * * * * * * * * DtoDeclarationExp: f * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * DtoVarDeclaration(vdtype = const(string[])) * * * * * * * * * * * * * * has nestedref set (referenced by nested function/delegate) * * * * * * * * * * * * * * llvm value for decl: %f9 = getelementptr %nest.pack, %nest.pack* %.frame1, i32 0, i32 11 * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * AssignExp::toElem: f = object.importPaths | (const(string[]))(const(string[]) = const(string[])) * * * * * * * * * * * * * * * VarExp::toElem: f @ const(string[]) * * * * * * * * * * * * * * * * DtoSymbolAddress ('f' of type 'const(string[])') * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * DtoNestedVariable for f @ msgpack-d/src/msgpack.d(874) * * * * * * * * * * * * * * * DotVarExp::toElem: object.importPaths @ const(string[]) * * * * * * * * * * * * * * * * VarExp::toElem: object @ const(AutocompleteRequest) * * * * * * * * * * * * * * * * * DtoSymbolAddress ('object' of type 'const(AutocompleteRequest)') * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * type: const(AutocompleteRequest) * * * * * * * * * * * * * * * * Indexing aggregate field common.messages.AutocompleteRequest.importPaths: * * * * * * * * * * * * * * * * * Value: %72 = getelementptr %common.messages.AutocompleteRequest, %common.messages.AutocompleteRequest* %object_arg, i32 0, i32 3 * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * SetArray * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(876) * * * * * * * * * * * CallExp::toElem: this.pack(f) @ PackerImpl!(Appender!(ubyte[])) * * * * * * * * * * * * DotVarExp::toElem: this.pack @ pure nothrow ref @trusted PackerImpl!(Appender!(ubyte[]))(const(string[]) array) * * * * * * * * * * * * * ThisExp::toElem: this @ PackerImpl!(Appender!(ubyte[])) * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* %.this_arg * * * * * * * * * * * * * Function type: pure nothrow ref @trusted PackerImpl!(Appender!(ubyte[]))(const(string[]) array) * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * VarExp::toElem: f @ const(string[]) * * * * * * * * * * * * * * * DtoSymbolAddress ('f' of type 'const(string[])') * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * DtoNestedVariable for f @ msgpack-d/src/msgpack.d(876) * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(874) * * * * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(874) * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(874) * * * * * * * * * * * DeclarationExp::toElem: enum ulong i = 3LU; | T=void * * * * * * * * * * * * DtoDeclarationExp: i * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * Manifest constant, nothing to do. * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(874) * * * * * * * * * * * DeclarationExp::toElem: const const(ubyte[]) f = object.sourceCode; | T=void * * * * * * * * * * * * DtoDeclarationExp: f * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * DtoVarDeclaration(vdtype = const(ubyte[])) * * * * * * * * * * * * * * has nestedref set (referenced by nested function/delegate) * * * * * * * * * * * * * * llvm value for decl: %f10 = getelementptr %nest.pack, %nest.pack* %.frame1, i32 0, i32 12 * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * AssignExp::toElem: f = object.sourceCode | (const(ubyte[]))(const(ubyte[]) = const(ubyte[])) * * * * * * * * * * * * * * * VarExp::toElem: f @ const(ubyte[]) * * * * * * * * * * * * * * * * DtoSymbolAddress ('f' of type 'const(ubyte[])') * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * DtoNestedVariable for f @ msgpack-d/src/msgpack.d(874) * * * * * * * * * * * * * * * DotVarExp::toElem: object.sourceCode @ const(ubyte[]) * * * * * * * * * * * * * * * * VarExp::toElem: object @ const(AutocompleteRequest) * * * * * * * * * * * * * * * * * DtoSymbolAddress ('object' of type 'const(AutocompleteRequest)') * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * type: const(AutocompleteRequest) * * * * * * * * * * * * * * * * Indexing aggregate field common.messages.AutocompleteRequest.sourceCode: * * * * * * * * * * * * * * * * * Value: %79 = getelementptr %common.messages.AutocompleteRequest, %common.messages.AutocompleteRequest* %object_arg, i32 0, i32 4 * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * SetArray * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(876) * * * * * * * * * * * CallExp::toElem: this.pack(f) @ PackerImpl!(Appender!(ubyte[])) * * * * * * * * * * * * DotVarExp::toElem: this.pack @ pure nothrow ref @trusted PackerImpl!(Appender!(ubyte[]))(const(ubyte[]) array) * * * * * * * * * * * * * ThisExp::toElem: this @ PackerImpl!(Appender!(ubyte[])) * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* %.this_arg * * * * * * * * * * * * * Function type: pure nothrow ref @trusted PackerImpl!(Appender!(ubyte[]))(const(ubyte[]) array) * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * VarExp::toElem: f @ const(ubyte[]) * * * * * * * * * * * * * * * DtoSymbolAddress ('f' of type 'const(ubyte[])') * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * DtoNestedVariable for f @ msgpack-d/src/msgpack.d(876) * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(874) * * * * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(874) * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(874) * * * * * * * * * * * DeclarationExp::toElem: enum ulong i = 4LU; | T=void * * * * * * * * * * * * DtoDeclarationExp: i * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * Manifest constant, nothing to do. * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(874) * * * * * * * * * * * DeclarationExp::toElem: const const(ulong) f = object.cursorPosition; | T=void * * * * * * * * * * * * DtoDeclarationExp: f * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * DtoVarDeclaration(vdtype = const(ulong)) * * * * * * * * * * * * * * has nestedref set (referenced by nested function/delegate) * * * * * * * * * * * * * * llvm value for decl: %f11 = getelementptr %nest.pack, %nest.pack* %.frame1, i32 0, i32 13 * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * AssignExp::toElem: f = object.cursorPosition | (const(ulong))(const(ulong) = const(ulong)) * * * * * * * * * * * * * * * VarExp::toElem: f @ const(ulong) * * * * * * * * * * * * * * * * DtoSymbolAddress ('f' of type 'const(ulong)') * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * DtoNestedVariable for f @ msgpack-d/src/msgpack.d(874) * * * * * * * * * * * * * * * DotVarExp::toElem: object.cursorPosition @ const(ulong) * * * * * * * * * * * * * * * * VarExp::toElem: object @ const(AutocompleteRequest) * * * * * * * * * * * * * * * * * DtoSymbolAddress ('object' of type 'const(AutocompleteRequest)') * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * type: const(AutocompleteRequest) * * * * * * * * * * * * * * * * Indexing aggregate field common.messages.AutocompleteRequest.cursorPosition: * * * * * * * * * * * * * * * * * Value: %86 = getelementptr %common.messages.AutocompleteRequest, %common.messages.AutocompleteRequest* %object_arg, i32 0, i32 5 * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * lhs: %f11 = getelementptr %nest.pack, %nest.pack* %.frame1, i32 0, i32 13 * * * * * * * * * * * * * * * * rhs: %87 = load i64, i64* %86 * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(876) * * * * * * * * * * * CallExp::toElem: this.pack(f) @ PackerImpl!(Appender!(ubyte[])) * * * * * * * * * * * * DotVarExp::toElem: this.pack @ pure nothrow ref @trusted PackerImpl!(Appender!(ubyte[]))(const(ulong) value) * * * * * * * * * * * * * ThisExp::toElem: this @ PackerImpl!(Appender!(ubyte[])) * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* %.this_arg * * * * * * * * * * * * * Function type: pure nothrow ref @trusted PackerImpl!(Appender!(ubyte[]))(const(ulong) value) * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * VarExp::toElem: f @ const(ulong) * * * * * * * * * * * * * * * DtoSymbolAddress ('f' of type 'const(ulong)') * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * DtoNestedVariable for f @ msgpack-d/src/msgpack.d(876) * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(874) * * * * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(874) * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(874) * * * * * * * * * * * DeclarationExp::toElem: enum ulong i = 5LU; | T=void * * * * * * * * * * * * DtoDeclarationExp: i * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * Manifest constant, nothing to do. * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(874) * * * * * * * * * * * DeclarationExp::toElem: const const(string) f = object.searchName; | T=void * * * * * * * * * * * * DtoDeclarationExp: f * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * DtoVarDeclaration(vdtype = const(string)) * * * * * * * * * * * * * * has nestedref set (referenced by nested function/delegate) * * * * * * * * * * * * * * llvm value for decl: %f12 = getelementptr %nest.pack, %nest.pack* %.frame1, i32 0, i32 14 * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * AssignExp::toElem: f = object.searchName | (const(string))(const(string) = const(string)) * * * * * * * * * * * * * * * VarExp::toElem: f @ const(string) * * * * * * * * * * * * * * * * DtoSymbolAddress ('f' of type 'const(string)') * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * DtoNestedVariable for f @ msgpack-d/src/msgpack.d(874) * * * * * * * * * * * * * * * DotVarExp::toElem: object.searchName @ const(string) * * * * * * * * * * * * * * * * VarExp::toElem: object @ const(AutocompleteRequest) * * * * * * * * * * * * * * * * * DtoSymbolAddress ('object' of type 'const(AutocompleteRequest)') * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * type: const(AutocompleteRequest) * * * * * * * * * * * * * * * * Indexing aggregate field common.messages.AutocompleteRequest.searchName: * * * * * * * * * * * * * * * * * Value: %90 = getelementptr %common.messages.AutocompleteRequest, %common.messages.AutocompleteRequest* %object_arg, i32 0, i32 6 * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * SetArray * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(876) * * * * * * * * * * * CallExp::toElem: this.pack(f) @ PackerImpl!(Appender!(ubyte[])) * * * * * * * * * * * * DotVarExp::toElem: this.pack @ pure nothrow ref @trusted PackerImpl!(Appender!(ubyte[]))(const(string) array) * * * * * * * * * * * * * ThisExp::toElem: this @ PackerImpl!(Appender!(ubyte[])) * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* %.this_arg * * * * * * * * * * * * * Function type: pure nothrow ref @trusted PackerImpl!(Appender!(ubyte[]))(const(string) array) * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * VarExp::toElem: f @ const(string) * * * * * * * * * * * * * * * DtoSymbolAddress ('f' of type 'const(string)') * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * DtoNestedVariable for f @ msgpack-d/src/msgpack.d(876) * * * * * ReturnStatement::toIR(): msgpack-d/src/msgpack.d(881) * * * * * * AddrExp::toElem: &this @ PackerImpl!(Appender!(ubyte[]))* * * * * * * * ThisExp::toElem: this @ PackerImpl!(Appender!(ubyte[])) * * * * * * * * normal this exp * * * * * * * is nothing special * * * * * * * lval: %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* %.this_arg * * * * * * return value is '0x133cb880' * TypeInfoDeclaration::codegen(typeid(AutocompleteRequest)) * TemplateInstance::codegen: 'msgpack.SerializingMemberNumbers!(const(AutocompleteRequest))' * * VarDeclaration::codegen(): 'msgpack.SerializingMemberNumbers!(const(AutocompleteRequest)).SerializingMemberNumbers' * * * DtoResolveVariable(msgpack.SerializingMemberNumbers!(const(AutocompleteRequest)).SerializingMemberNumbers) * TemplateInstance::codegen: 'msgpack.SerializingMemberNumbers!()' * * VarDeclaration::codegen(): 'msgpack.SerializingMemberNumbers!().SerializingMemberNumbers' * * * DtoResolveVariable(msgpack.SerializingMemberNumbers!().SerializingMemberNumbers) * TemplateInstance::codegen: 'msgpack.take8from!(8LU, const(ubyte))' * * DtoDefineFunction(msgpack.take8from!(8LU, const(ubyte)).take8from): msgpack-d/src/msgpack.d(5077) * * * Doing function body for: take8from * * * DtoCreateNestedContext for take8from * * * * DtoCreateNestedContextType for msgpack.take8from!(8LU, const(ubyte)).take8from * * * CompoundStatement::toIR(): * * * * ReturnStatement::toIR(): msgpack-d/src/msgpack.d(5080) * * * * * IndexExp::toElem: & value[0] @ ubyte * * * * * * SymOffExp::toElem: & value @ ubyte* * * * * * * * DtoSymbolAddress ('value' of type 'const(ubyte)') * * * * * * * * function param * * * * * * * * type: const(ubyte) * * * * * * * Casting from 'const(ubyte)*' to 'ubyte*' * * * * * * * * src: %value = alloca i8, align 1 * * * * * * * * to type: i8* * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * value = i64 0 * * * * * return value is '0x133f8098' * TemplateInstance::codegen: 'msgpack.convertEndianTo!(16, ulong)' * * DtoDefineFunction(msgpack.convertEndianTo!(16, ulong).convertEndianTo): msgpack-d/src/msgpack.d(5036) * * * Doing function body for: convertEndianTo * * * DtoCreateNestedContext for convertEndianTo * * * * DtoCreateNestedContextType for msgpack.convertEndianTo!(16, ulong).convertEndianTo * * * CompoundStatement::toIR(): * * * * ReturnStatement::toIR(): msgpack-d/src/msgpack.d(5038) * * * * * CallExp::toElem: ntohs(cast(ushort)value) @ ushort * * * * * * VarExp::toElem: ntohs @ pure nothrow @nogc @trusted extern (C) ushort(ushort) * * * * * * * DtoSymbolAddress ('ntohs' of type 'pure nothrow @nogc @trusted extern (C) ushort(ushort)') * * * * * * * * FuncDeclaration * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted extern (C) ushort(ushort)) * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * Final function type: i16 (i16) * * * * * * * * DtoResolveFunction(core.sys.posix.arpa.inet.ntohs): /usr/include/dlang/ldc/core/sys/posix/arpa/inet.d(69) * * * * * * * * * DtoDeclareFunction(core.sys.posix.arpa.inet.ntohs): /usr/include/dlang/ldc/core/sys/posix/arpa/inet.d(69) * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted extern (C) ushort(ushort)) * * * * * * * * * * func = declare i16 @ntohs(i16) * * * * * * DtoCallFunction() * * * * * * * Building type: pure nothrow @nogc @trusted extern (C) ushort(ushort) * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted extern (C) ushort(ushort)) * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * Final function type: i16 (i16) * * * * * * * doing normal arguments * * * * * * * Arguments so far: (0) * * * * * * * Function type: pure nothrow @nogc @trusted extern (C) ushort(ushort) * * * * * * * DtoArgument * * * * * * * * CastExp::toElem: cast(ushort)value @ ushort * * * * * * * * * VarExp::toElem: value @ const(ulong) * * * * * * * * * * DtoSymbolAddress ('value' of type 'const(ulong)') * * * * * * * * * * * function param * * * * * * * * * * * type: const(ulong) * * * * * * * * * Casting from 'const(ulong)' to 'ushort' * * * * * return value is '0x133fa460' * TemplateInstance::codegen: 'msgpack.convertEndianTo!(32, ulong)' * * DtoDefineFunction(msgpack.convertEndianTo!(32, ulong).convertEndianTo): msgpack-d/src/msgpack.d(5044) * * * Doing function body for: convertEndianTo * * * DtoCreateNestedContext for convertEndianTo * * * * DtoCreateNestedContextType for msgpack.convertEndianTo!(32, ulong).convertEndianTo * * * CompoundStatement::toIR(): * * * * ReturnStatement::toIR(): msgpack-d/src/msgpack.d(5046) * * * * * CallExp::toElem: ntohl(cast(uint)value) @ uint * * * * * * VarExp::toElem: ntohl @ pure nothrow @nogc @trusted extern (C) uint(uint) * * * * * * * DtoSymbolAddress ('ntohl' of type 'pure nothrow @nogc @trusted extern (C) uint(uint)') * * * * * * * * FuncDeclaration * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted extern (C) uint(uint)) * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * Final function type: i32 (i32) * * * * * * * * DtoResolveFunction(core.sys.posix.arpa.inet.ntohl): /usr/include/dlang/ldc/core/sys/posix/arpa/inet.d(68) * * * * * * * * * DtoDeclareFunction(core.sys.posix.arpa.inet.ntohl): /usr/include/dlang/ldc/core/sys/posix/arpa/inet.d(68) * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted extern (C) uint(uint)) * * * * * * * * * * func = declare i32 @ntohl(i32) * * * * * * DtoCallFunction() * * * * * * * Building type: pure nothrow @nogc @trusted extern (C) uint(uint) * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted extern (C) uint(uint)) * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * Final function type: i32 (i32) * * * * * * * doing normal arguments * * * * * * * Arguments so far: (0) * * * * * * * Function type: pure nothrow @nogc @trusted extern (C) uint(uint) * * * * * * * DtoArgument * * * * * * * * CastExp::toElem: cast(uint)value @ uint * * * * * * * * * VarExp::toElem: value @ const(ulong) * * * * * * * * * * DtoSymbolAddress ('value' of type 'const(ulong)') * * * * * * * * * * * function param * * * * * * * * * * * type: const(ulong) * * * * * * * * * Casting from 'const(ulong)' to 'uint' * * * * * return value is '0x133fc840' * TemplateInstance::codegen: 'msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.pack!string' * * DtoDefineFunction(msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.pack!string.pack): msgpack-d/src/msgpack.d(674) * * * Doing function body for: pack * * * DtoCreateNestedContext for pack * * * * DtoCreateNestedContextType for msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.pack!string.pack * * * * * has nested frame * * * * * Function pack has depth 0 * * * * * Nested var 'this' of type %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* * * * * * frameType = %nest.pack.16 = type { %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* } * * * * nested param: this * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(675) * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(676) * * * * * * DeclarationExp::toElem: alias U = immutable(char); | T=void * * * * * * * DtoDeclarationExp: U * * * * * * * * Ignoring Symbol: alias * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(681) * * * * * * DeclarationExp::toElem: pure nothrow @system void beginRaw(const(ulong) length) { if (length < 32LU) { const const(ubyte) temp = cast(const(ubyte))(160 | cast(int)cast(ubyte)length); this.stream_.put(take8from(temp)); } else if (length < 65536LU) { const const(ushort) temp = convertEndianTo(length); this.store_[0] = cast(ubyte)218u; *cast(ushort*)&this.store_[1] = temp; this.stream_.put(this.store_[0..3]); } else { const const(uint) temp = convertEndianTo(length); this.store_[0] = cast(ubyte)219u; *cast(uint*)&this.store_[1] = temp; this.stream_.put(this.store_[0..5]); } } | T=void * * * * * * * DtoDeclarationExp: beginRaw * * * * * * * * FuncDeclaration * * * * * * * * DtoDefineFunction(msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.pack!string.pack.beginRaw): msgpack-d/src/msgpack.d(681) * * * * * * * * * DtoFunctionType(pure nothrow @system void(const(ulong) length)) * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: void (i8*, i64) * * * * * * * * * DtoResolveFunction(msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.pack!string.pack.beginRaw): msgpack-d/src/msgpack.d(681) * * * * * * * * * * DtoDeclareFunction(msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.pack!string.pack.beginRaw): msgpack-d/src/msgpack.d(681) * * * * * * * * * * * DtoFunctionType(pure nothrow @system void(const(ulong) length)) * * * * * * * * * * * func = declare void @_D7msgpack55__T10PackerImplTS3std5array16__T8AppenderTAhZ8AppenderZ10PackerImpl13__T4packTAyaZ4packMFNcNexAyaZ8beginRawMFNaNbxmZv(i8*, i64) * * * * * * * * * Doing function body for: beginRaw * * * * * * * * * DtoCreateNestedContext for beginRaw * * * * * * * * * * DtoCreateNestedContextType for msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.pack!string.pack.beginRaw * * * * * * * * * * * DtoCreateNestedContextType for msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.pack!string.pack * * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * * IfStatement::toIR(): msgpack-d/src/msgpack.d(683) * * * * * * * * * * * CmpExp::toElem: length < 32LU @ bool * * * * * * * * * * * * VarExp::toElem: length @ ulong * * * * * * * * * * * * * DtoSymbolAddress ('length' of type 'const(ulong)') * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * type: const(ulong) * * * * * * * * * * * * IntegerExp::toElem: 32LU @ ulong * * * * * * * * * * * * * IntegerExp::toConstElem: 32LU @ ulong * * * * * * * * * * * * * * value = i64 32 * * * * * * * * * * * * type 1: %1 = load i64, i64* %length * * * * * * * * * * * * type 2: i64 32 * * * * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(683) * * * * * * * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(683) * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(684) * * * * * * * * * * * * * * DeclarationExp::toElem: const const(ubyte) temp = cast(const(ubyte))(160 | cast(int)cast(ubyte)length); | T=void * * * * * * * * * * * * * * * DtoDeclarationExp: temp * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = const(ubyte)) * * * * * * * * * * * * * * * * * llvm value for decl: %temp = alloca i8, align 1 * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * AssignExp::toElem: temp = cast(const(ubyte))(160 | cast(int)cast(ubyte)length) | (const(ubyte))(const(ubyte) = const(ubyte)) * * * * * * * * * * * * * * * * * * VarExp::toElem: temp @ const(ubyte) * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('temp' of type 'const(ubyte)') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * CastExp::toElem: cast(const(ubyte))(160 | cast(int)cast(ubyte)length) @ const(ubyte) * * * * * * * * * * * * * * * * * * * OrExp::toElem: 160 | cast(int)cast(ubyte)length @ int * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 160 @ int * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 160 @ int * * * * * * * * * * * * * * * * * * * * * * value = i32 160 * * * * * * * * * * * * * * * * * * * * CastExp::toElem: cast(int)cast(ubyte)length @ int * * * * * * * * * * * * * * * * * * * * * CastExp::toElem: cast(ubyte)length @ ubyte * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: length @ const(ulong) * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('length' of type 'const(ulong)') * * * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * * * type: const(ulong) * * * * * * * * * * * * * * * * * * * * * * Casting from 'const(ulong)' to 'ubyte' * * * * * * * * * * * * * * * * * * * * * Casting from 'ubyte' to 'int' * * * * * * * * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * * * * * * * * Casting from 'int' to 'const(ubyte)' * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * lhs: %temp = alloca i8, align 1 * * * * * * * * * * * * * * * * * * * rhs: %7 = trunc i32 %6 to i8 * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(685) * * * * * * * * * * * * * * CallExp::toElem: this.stream_.put(take8from(temp)) @ void * * * * * * * * * * * * * * * DotVarExp::toElem: this.stream_.put @ pure nothrow @safe void(ubyte item) * * * * * * * * * * * * * * * * DotVarExp::toElem: this.stream_ @ Appender!(ubyte[]) * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ PackerImpl!(Appender!(ubyte[])) * * * * * * * * * * * * * * * * * * nested this exp * * * * * * * * * * * * * * * * * * DtoNestedVariable for this @ msgpack-d/src/msgpack.d(685) * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.pack!string.pack * * * * * * * * * * * * * * * * * * * Context: %9 = bitcast i8* %8 to %nest.pack.16* * * * * * * * * * * * * * * * * * * * of type: %nest.pack.16 = type { %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* } * * * * * * * * * * * * * * * * * * * Variable: this * * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * * Function: beginRaw * * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * * Addr: %this = getelementptr %nest.pack.16, %nest.pack.16* %9, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * of type: %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"** * * * * * * * * * * * * * * * * * * * Was byref, now: %10 = load %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"*, %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"** %this, align 8 * * * * * * * * * * * * * * * * * * * of type: %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* * * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.stream_: * * * * * * * * * * * * * * * * * * Value: %11 = getelementptr %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl", %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* %10, i32 0, i32 0 * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * %11 = getelementptr %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl", %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* %10, i32 0, i32 0 * * * * * * * * * * * * * * * * Function type: pure nothrow @safe void(ubyte item) * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * CallExp::toElem: take8from(temp) @ ubyte * * * * * * * * * * * * * * * * * * VarExp::toElem: take8from @ pure nothrow @nogc @trusted ubyte(const(ubyte) value) * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('take8from' of type 'pure nothrow @nogc @trusted ubyte(const(ubyte) value)') * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @trusted ubyte(const(ubyte) value) * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * VarExp::toElem: temp @ const(ubyte) * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('temp' of type 'const(ubyte)') * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * IfStatement::toIR(): msgpack-d/src/msgpack.d(686) * * * * * * * * * * * * CmpExp::toElem: length < 65536LU @ bool * * * * * * * * * * * * * VarExp::toElem: length @ ulong * * * * * * * * * * * * * * DtoSymbolAddress ('length' of type 'const(ulong)') * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * type: const(ulong) * * * * * * * * * * * * * IntegerExp::toElem: 65536LU @ ulong * * * * * * * * * * * * * * IntegerExp::toConstElem: 65536LU @ ulong * * * * * * * * * * * * * * * value = i64 65536 * * * * * * * * * * * * * type 1: %14 = load i64, i64* %length * * * * * * * * * * * * * type 2: i64 65536 * * * * * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(686) * * * * * * * * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(686) * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(687) * * * * * * * * * * * * * * * DeclarationExp::toElem: const const(ushort) temp = convertEndianTo(length); | T=void * * * * * * * * * * * * * * * * DtoDeclarationExp: temp * * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = const(ushort)) * * * * * * * * * * * * * * * * * * llvm value for decl: %temp4 = alloca i16, align 2 * * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * * AssignExp::toElem: temp = convertEndianTo(length) | (const(ushort))(const(ushort) = const(ushort)) * * * * * * * * * * * * * * * * * * * VarExp::toElem: temp @ const(ushort) * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('temp' of type 'const(ushort)') * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * CallExp::toElem: convertEndianTo(length) @ const(ushort) * * * * * * * * * * * * * * * * * * * * VarExp::toElem: convertEndianTo @ pure nothrow @nogc @trusted ushort(const(ulong) value) * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('convertEndianTo' of type 'pure nothrow @nogc @trusted ushort(const(ulong) value)') * * * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @trusted ushort(const(ulong) value) * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: length @ const(ulong) * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('length' of type 'const(ulong)') * * * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * * * type: const(ulong) * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * lhs: %temp4 = alloca i16, align 2 * * * * * * * * * * * * * * * * * * * * rhs: %17 = call zeroext i16 @_D7msgpack28__T15convertEndianToVii16TmZ15convertEndianToFNaNbNiNexmZt(i64 %16) * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(689) * * * * * * * * * * * * * * * AssignExp::toElem: this.store_[0] = cast(ubyte)218u | (ubyte)(ubyte = ubyte) * * * * * * * * * * * * * * * * IndexExp::toElem: this.store_[0] @ ubyte * * * * * * * * * * * * * * * * * DotVarExp::toElem: this.store_ @ ubyte[11] * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ PackerImpl!(Appender!(ubyte[])) * * * * * * * * * * * * * * * * * * * nested this exp * * * * * * * * * * * * * * * * * * * DtoNestedVariable for this @ msgpack-d/src/msgpack.d(689) * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.pack!string.pack * * * * * * * * * * * * * * * * * * * * Context: %19 = bitcast i8* %18 to %nest.pack.16* * * * * * * * * * * * * * * * * * * * * of type: %nest.pack.16 = type { %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* } * * * * * * * * * * * * * * * * * * * * Variable: this * * * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * * * Function: beginRaw * * * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * * * Addr: %this5 = getelementptr %nest.pack.16, %nest.pack.16* %19, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * * of type: %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"** * * * * * * * * * * * * * * * * * * * * Was byref, now: %20 = load %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"*, %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"** %this5, align 8 * * * * * * * * * * * * * * * * * * * * of type: %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* * * * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.store_: * * * * * * * * * * * * * * * * * * * Value: %21 = getelementptr %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl", %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* %20, i32 0, i32 1 * * * * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * * * * IntegerExp::toElem: cast(ubyte)218u @ ubyte * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: cast(ubyte)218u @ ubyte * * * * * * * * * * * * * * * * * * value = i8 -38 * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * lhs: %22 = getelementptr [11 x i8], [11 x i8]* %21, i32 0, i64 0 * * * * * * * * * * * * * * * * * rhs: i8 -38 * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(690) * * * * * * * * * * * * * * * AssignExp::toElem: *cast(ushort*)&this.store_[1] = temp | (ushort)(ushort = ushort) * * * * * * * * * * * * * * * * PtrExp::toElem: *cast(ushort*)&this.store_[1] @ ushort * * * * * * * * * * * * * * * * * CastExp::toElem: cast(ushort*)&this.store_[1] @ ushort* * * * * * * * * * * * * * * * * * * AddrExp::toElem: &this.store_[1] @ ubyte* * * * * * * * * * * * * * * * * * * * IndexExp::toElem: this.store_[1] @ ubyte * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: this.store_ @ ubyte[11] * * * * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ PackerImpl!(Appender!(ubyte[])) * * * * * * * * * * * * * * * * * * * * * * nested this exp * * * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for this @ msgpack-d/src/msgpack.d(690) * * * * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.pack!string.pack * * * * * * * * * * * * * * * * * * * * * * * Context: %24 = bitcast i8* %23 to %nest.pack.16* * * * * * * * * * * * * * * * * * * * * * * * of type: %nest.pack.16 = type { %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* } * * * * * * * * * * * * * * * * * * * * * * * Variable: this * * * * * * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * * * * * * Function: beginRaw * * * * * * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * * * * * * Addr: %this6 = getelementptr %nest.pack.16, %nest.pack.16* %24, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * * * * * of type: %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"** * * * * * * * * * * * * * * * * * * * * * * * Was byref, now: %25 = load %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"*, %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"** %this6, align 8 * * * * * * * * * * * * * * * * * * * * * * * of type: %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* * * * * * * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.store_: * * * * * * * * * * * * * * * * * * * * * * Value: %26 = getelementptr %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl", %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* %25, i32 0, i32 1 * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * * * * * * * is nothing special * * * * * * * * * * * * * * * * * * * lval: %27 = getelementptr [11 x i8], [11 x i8]* %26, i32 0, i64 1 * * * * * * * * * * * * * * * * * * Casting from 'ubyte*' to 'ushort*' * * * * * * * * * * * * * * * * * * * src: %27 = getelementptr [11 x i8], [11 x i8]* %26, i32 0, i64 1 * * * * * * * * * * * * * * * * * * * to type: i16* * * * * * * * * * * * * * * * * VarExp::toElem: temp @ ushort * * * * * * * * * * * * * * * * * DtoSymbolAddress ('temp' of type 'const(ushort)') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * lhs: %28 = bitcast i8* %27 to i16* * * * * * * * * * * * * * * * * * rhs: %29 = load i16, i16* %temp4 * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(691) * * * * * * * * * * * * * * * CallExp::toElem: this.stream_.put(this.store_[0..3]) @ void * * * * * * * * * * * * * * * * DotVarExp::toElem: this.stream_.put @ pure nothrow @safe void(ubyte[] items) * * * * * * * * * * * * * * * * * DotVarExp::toElem: this.stream_ @ Appender!(ubyte[]) * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ PackerImpl!(Appender!(ubyte[])) * * * * * * * * * * * * * * * * * * * nested this exp * * * * * * * * * * * * * * * * * * * DtoNestedVariable for this @ msgpack-d/src/msgpack.d(691) * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.pack!string.pack * * * * * * * * * * * * * * * * * * * * Context: %31 = bitcast i8* %30 to %nest.pack.16* * * * * * * * * * * * * * * * * * * * * of type: %nest.pack.16 = type { %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* } * * * * * * * * * * * * * * * * * * * * Variable: this * * * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * * * Function: beginRaw * * * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * * * Addr: %this7 = getelementptr %nest.pack.16, %nest.pack.16* %31, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * * of type: %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"** * * * * * * * * * * * * * * * * * * * * Was byref, now: %32 = load %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"*, %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"** %this7, align 8 * * * * * * * * * * * * * * * * * * * * of type: %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* * * * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.stream_: * * * * * * * * * * * * * * * * * * * Value: %33 = getelementptr %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl", %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* %32, i32 0, i32 0 * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * %33 = getelementptr %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl", %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* %32, i32 0, i32 0 * * * * * * * * * * * * * * * * * Function type: pure nothrow @safe void(ubyte[] items) * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * SliceExp::toElem: this.store_[0..3] @ ubyte[] * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: this.store_ @ ubyte[11] * * * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ PackerImpl!(Appender!(ubyte[])) * * * * * * * * * * * * * * * * * * * * * nested this exp * * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for this @ msgpack-d/src/msgpack.d(691) * * * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.pack!string.pack * * * * * * * * * * * * * * * * * * * * * * Context: %35 = bitcast i8* %34 to %nest.pack.16* * * * * * * * * * * * * * * * * * * * * * * of type: %nest.pack.16 = type { %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* } * * * * * * * * * * * * * * * * * * * * * * Variable: this * * * * * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * * * * * Function: beginRaw * * * * * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * * * * * Addr: %this8 = getelementptr %nest.pack.16, %nest.pack.16* %35, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * * * * of type: %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"** * * * * * * * * * * * * * * * * * * * * * * Was byref, now: %36 = load %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"*, %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"** %this8, align 8 * * * * * * * * * * * * * * * * * * * * * * of type: %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* * * * * * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.store_: * * * * * * * * * * * * * * * * * * * * * Value: %37 = getelementptr %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl", %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* %36, i32 0, i32 1 * * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 3LU @ ulong * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 3LU @ ulong * * * * * * * * * * * * * * * * * * * * * value = i64 3 * * * * * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(692) * * * * * * * * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(692) * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(693) * * * * * * * * * * * * * * * DeclarationExp::toElem: const const(uint) temp = convertEndianTo(length); | T=void * * * * * * * * * * * * * * * * DtoDeclarationExp: temp * * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = const(uint)) * * * * * * * * * * * * * * * * * * llvm value for decl: %temp9 = alloca i32, align 4 * * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * * AssignExp::toElem: temp = convertEndianTo(length) | (const(uint))(const(uint) = const(uint)) * * * * * * * * * * * * * * * * * * * VarExp::toElem: temp @ const(uint) * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('temp' of type 'const(uint)') * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * CallExp::toElem: convertEndianTo(length) @ const(uint) * * * * * * * * * * * * * * * * * * * * VarExp::toElem: convertEndianTo @ pure nothrow @nogc @trusted uint(const(ulong) value) * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('convertEndianTo' of type 'pure nothrow @nogc @trusted uint(const(ulong) value)') * * * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @trusted uint(const(ulong) value) * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: length @ const(ulong) * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('length' of type 'const(ulong)') * * * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * * * type: const(ulong) * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * lhs: %temp9 = alloca i32, align 4 * * * * * * * * * * * * * * * * * * * * rhs: %40 = call i32 @_D7msgpack28__T15convertEndianToVii32TmZ15convertEndianToFNaNbNiNexmZk(i64 %39) * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(695) * * * * * * * * * * * * * * * AssignExp::toElem: this.store_[0] = cast(ubyte)219u | (ubyte)(ubyte = ubyte) * * * * * * * * * * * * * * * * IndexExp::toElem: this.store_[0] @ ubyte * * * * * * * * * * * * * * * * * DotVarExp::toElem: this.store_ @ ubyte[11] * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ PackerImpl!(Appender!(ubyte[])) * * * * * * * * * * * * * * * * * * * nested this exp * * * * * * * * * * * * * * * * * * * DtoNestedVariable for this @ msgpack-d/src/msgpack.d(695) * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.pack!string.pack * * * * * * * * * * * * * * * * * * * * Context: %42 = bitcast i8* %41 to %nest.pack.16* * * * * * * * * * * * * * * * * * * * * of type: %nest.pack.16 = type { %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* } * * * * * * * * * * * * * * * * * * * * Variable: this * * * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * * * Function: beginRaw * * * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * * * Addr: %this10 = getelementptr %nest.pack.16, %nest.pack.16* %42, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * * of type: %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"** * * * * * * * * * * * * * * * * * * * * Was byref, now: %43 = load %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"*, %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"** %this10, align 8 * * * * * * * * * * * * * * * * * * * * of type: %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* * * * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.store_: * * * * * * * * * * * * * * * * * * * Value: %44 = getelementptr %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl", %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* %43, i32 0, i32 1 * * * * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * * * * IntegerExp::toElem: cast(ubyte)219u @ ubyte * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: cast(ubyte)219u @ ubyte * * * * * * * * * * * * * * * * * * value = i8 -37 * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * lhs: %45 = getelementptr [11 x i8], [11 x i8]* %44, i32 0, i64 0 * * * * * * * * * * * * * * * * * rhs: i8 -37 * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(696) * * * * * * * * * * * * * * * AssignExp::toElem: *cast(uint*)&this.store_[1] = temp | (uint)(uint = uint) * * * * * * * * * * * * * * * * PtrExp::toElem: *cast(uint*)&this.store_[1] @ uint * * * * * * * * * * * * * * * * * CastExp::toElem: cast(uint*)&this.store_[1] @ uint* * * * * * * * * * * * * * * * * * * AddrExp::toElem: &this.store_[1] @ ubyte* * * * * * * * * * * * * * * * * * * * IndexExp::toElem: this.store_[1] @ ubyte * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: this.store_ @ ubyte[11] * * * * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ PackerImpl!(Appender!(ubyte[])) * * * * * * * * * * * * * * * * * * * * * * nested this exp * * * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for this @ msgpack-d/src/msgpack.d(696) * * * * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.pack!string.pack * * * * * * * * * * * * * * * * * * * * * * * Context: %47 = bitcast i8* %46 to %nest.pack.16* * * * * * * * * * * * * * * * * * * * * * * * of type: %nest.pack.16 = type { %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* } * * * * * * * * * * * * * * * * * * * * * * * Variable: this * * * * * * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * * * * * * Function: beginRaw * * * * * * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * * * * * * Addr: %this11 = getelementptr %nest.pack.16, %nest.pack.16* %47, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * * * * * of type: %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"** * * * * * * * * * * * * * * * * * * * * * * * Was byref, now: %48 = load %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"*, %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"** %this11, align 8 * * * * * * * * * * * * * * * * * * * * * * * of type: %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* * * * * * * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.store_: * * * * * * * * * * * * * * * * * * * * * * Value: %49 = getelementptr %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl", %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* %48, i32 0, i32 1 * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * * * * * * * is nothing special * * * * * * * * * * * * * * * * * * * lval: %50 = getelementptr [11 x i8], [11 x i8]* %49, i32 0, i64 1 * * * * * * * * * * * * * * * * * * Casting from 'ubyte*' to 'uint*' * * * * * * * * * * * * * * * * * * * src: %50 = getelementptr [11 x i8], [11 x i8]* %49, i32 0, i64 1 * * * * * * * * * * * * * * * * * * * to type: i32* * * * * * * * * * * * * * * * * VarExp::toElem: temp @ uint * * * * * * * * * * * * * * * * * DtoSymbolAddress ('temp' of type 'const(uint)') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * lhs: %51 = bitcast i8* %50 to i32* * * * * * * * * * * * * * * * * * rhs: %52 = load i32, i32* %temp9 * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(697) * * * * * * * * * * * * * * * CallExp::toElem: this.stream_.put(this.store_[0..5]) @ void * * * * * * * * * * * * * * * * DotVarExp::toElem: this.stream_.put @ pure nothrow @safe void(ubyte[] items) * * * * * * * * * * * * * * * * * DotVarExp::toElem: this.stream_ @ Appender!(ubyte[]) * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ PackerImpl!(Appender!(ubyte[])) * * * * * * * * * * * * * * * * * * * nested this exp * * * * * * * * * * * * * * * * * * * DtoNestedVariable for this @ msgpack-d/src/msgpack.d(697) * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.pack!string.pack * * * * * * * * * * * * * * * * * * * * Context: %54 = bitcast i8* %53 to %nest.pack.16* * * * * * * * * * * * * * * * * * * * * of type: %nest.pack.16 = type { %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* } * * * * * * * * * * * * * * * * * * * * Variable: this * * * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * * * Function: beginRaw * * * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * * * Addr: %this12 = getelementptr %nest.pack.16, %nest.pack.16* %54, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * * of type: %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"** * * * * * * * * * * * * * * * * * * * * Was byref, now: %55 = load %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"*, %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"** %this12, align 8 * * * * * * * * * * * * * * * * * * * * of type: %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* * * * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.stream_: * * * * * * * * * * * * * * * * * * * Value: %56 = getelementptr %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl", %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* %55, i32 0, i32 0 * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * %56 = getelementptr %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl", %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* %55, i32 0, i32 0 * * * * * * * * * * * * * * * * * Function type: pure nothrow @safe void(ubyte[] items) * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * SliceExp::toElem: this.store_[0..5] @ ubyte[] * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: this.store_ @ ubyte[11] * * * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ PackerImpl!(Appender!(ubyte[])) * * * * * * * * * * * * * * * * * * * * * nested this exp * * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for this @ msgpack-d/src/msgpack.d(697) * * * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.pack!string.pack * * * * * * * * * * * * * * * * * * * * * * Context: %58 = bitcast i8* %57 to %nest.pack.16* * * * * * * * * * * * * * * * * * * * * * * of type: %nest.pack.16 = type { %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* } * * * * * * * * * * * * * * * * * * * * * * Variable: this * * * * * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * * * * * Function: beginRaw * * * * * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * * * * * Addr: %this13 = getelementptr %nest.pack.16, %nest.pack.16* %58, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * * * * of type: %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"** * * * * * * * * * * * * * * * * * * * * * * Was byref, now: %59 = load %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"*, %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"** %this13, align 8 * * * * * * * * * * * * * * * * * * * * * * of type: %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* * * * * * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.store_: * * * * * * * * * * * * * * * * * * * * * Value: %60 = getelementptr %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl", %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* %59, i32 0, i32 1 * * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 5LU @ ulong * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 5LU @ ulong * * * * * * * * * * * * * * * * * * * * * value = i64 5 * * * * * IfStatement::toIR(): msgpack-d/src/msgpack.d(701) * * * * * * CallExp::toElem: empty(array) @ bool * * * * * * * VarExp::toElem: empty @ pure nothrow @nogc @property @safe bool(const(char[]) a) * * * * * * * * DtoSymbolAddress ('empty' of type 'pure nothrow @nogc @property @safe bool(const(char[]) a)') * * * * * * * * * FuncDeclaration * * * * * * * DtoCallFunction() * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (0) * * * * * * * * Function type: pure nothrow @nogc @property @safe bool(const(char[]) a) * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: array @ const(char[]) * * * * * * * * * * DtoSymbolAddress ('array' of type 'const(string)') * * * * * * * * * * * function param * * * * * * * * * * * type: const(string) * * * * * * ReturnStatement::toIR(): msgpack-d/src/msgpack.d(702) * * * * * * * AddrExp::toElem: &this.packNil() @ PackerImpl!(Appender!(ubyte[]))* * * * * * * * * CallExp::toElem: this.packNil() @ PackerImpl!(Appender!(ubyte[])) * * * * * * * * * DotVarExp::toElem: this.packNil @ pure nothrow ref @trusted PackerImpl!(Appender!(ubyte[]))() * * * * * * * * * * ThisExp::toElem: this @ PackerImpl!(Appender!(ubyte[])) * * * * * * * * * * * normal this exp * * * * * * * * * DtoCallFunction() * * * * * * * * * * Building type: pure nothrow ref @trusted PackerImpl!(Appender!(ubyte[]))() * * * * * * * * * * * DtoFunctionType(pure nothrow ref @trusted PackerImpl!(Appender!(ubyte[]))()) * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * Final function type: %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* () * * * * * * * * * * doing normal arguments * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* %.this_arg * * * * * * * * * * Function type: pure nothrow ref @trusted PackerImpl!(Appender!(ubyte[]))() * * * * * * * * is nothing special * * * * * * * * lval: %3 = call %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* @_D7msgpack55__T10PackerImplTS3std5array16__T8AppenderTAhZ8AppenderZ10PackerImpl7packNilMFNaNbNcNeZS7msgpack55__T10PackerImplTS3std5array16__T8AppenderTAhZ8AppenderZ10PackerImpl(%"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* %.this_arg) * * * * * * * return value is '0x1340ef60' * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(706) * * * * * * DeclarationExp::toElem: ubyte[] raw = cast(ubyte[])array; | T=void * * * * * * * DtoDeclarationExp: raw * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = ubyte[]) * * * * * * * * * llvm value for decl: %raw = alloca { i64, i8* }, align 8 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: raw = cast(ubyte[])array | (ubyte[])(ubyte[] = ubyte[]) * * * * * * * * * * VarExp::toElem: raw @ ubyte[] * * * * * * * * * * * DtoSymbolAddress ('raw' of type 'ubyte[]') * * * * * * * * * * * * a normal variable * * * * * * * * * * CastExp::toElem: cast(ubyte[])array @ ubyte[] * * * * * * * * * * * VarExp::toElem: array @ const(string) * * * * * * * * * * * * DtoSymbolAddress ('array' of type 'const(string)') * * * * * * * * * * * * * function param * * * * * * * * * * * * * type: const(string) * * * * * * * * * * * Casting from 'const(string)' to 'ubyte[]' * * * * * * * * * * * * DtoCastArray * * * * * * * * * * * * * from array or sarray * * * * * * * * * * * * * to array * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * isslice * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * DtoAssign() * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * SetArray * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(708) * * * * * * CallExp::toElem: beginRaw(raw.length) @ void * * * * * * * VarExp::toElem: beginRaw @ pure nothrow @system void(const(ulong) length) * * * * * * * * DtoSymbolAddress ('beginRaw' of type 'pure nothrow @system void(const(ulong) length)') * * * * * * * * * FuncDeclaration * * * * * * * DtoCallFunction() * * * * * * * * Building type: pure nothrow @system void(const(ulong) length) * * * * * * * * * DtoFunctionType(pure nothrow @system void(const(ulong) length)) * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: void (i64) * * * * * * * * DtoNestedContext for msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.pack!string.pack.beginRaw * * * * * * * * * DtoCreateNestedContextType for msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.pack!string.pack.beginRaw * * * * * * * * * Parent frame is from pack * * * * * * * * * Current function is pack * * * * * * * * * Context is from pack * * * * * * * * * Needed depth: 0 * * * * * * * * * Context depth: 0 * * * * * * * * * Calling sibling function or directly nested function * * * * * * * * * result = %.frame = alloca %nest.pack.16, align 8 * * * * * * * * * of type %nest.pack.16* * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (1) * * * * * * * * * %8 = bitcast %nest.pack.16* %.frame to i8* * * * * * * * * Function type: pure nothrow @system void(const(ulong) length) * * * * * * * * DtoArgument * * * * * * * * * ArrayLengthExp::toElem: raw.length @ const(ulong) * * * * * * * * * * VarExp::toElem: raw @ ubyte[] * * * * * * * * * * * DtoSymbolAddress ('raw' of type 'ubyte[]') * * * * * * * * * * * * a normal variable * * * * * * * * * * DtoArrayLen * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(709) * * * * * * CallExp::toElem: this.stream_.put(raw) @ void * * * * * * * DotVarExp::toElem: this.stream_.put @ pure nothrow @safe void(ubyte[] items) * * * * * * * * DotVarExp::toElem: this.stream_ @ Appender!(ubyte[]) * * * * * * * * * ThisExp::toElem: this @ PackerImpl!(Appender!(ubyte[])) * * * * * * * * * * normal this exp * * * * * * * * * Indexing aggregate field msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.stream_: * * * * * * * * * * Value: %10 = getelementptr %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl", %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* %.this_arg, i32 0, i32 0 * * * * * * * DtoCallFunction() * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (1) * * * * * * * * * %10 = getelementptr %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl", %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* %.this_arg, i32 0, i32 0 * * * * * * * * Function type: pure nothrow @safe void(ubyte[] items) * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: raw @ ubyte[] * * * * * * * * * * DtoSymbolAddress ('raw' of type 'ubyte[]') * * * * * * * * * * * a normal variable * * * * * ReturnStatement::toIR(): msgpack-d/src/msgpack.d(716) * * * * * * AddrExp::toElem: &this @ PackerImpl!(Appender!(ubyte[]))* * * * * * * * ThisExp::toElem: this @ PackerImpl!(Appender!(ubyte[])) * * * * * * * * normal this exp * * * * * * * is nothing special * * * * * * * lval: %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* %.this_arg * * * * * * return value is '0x133d8be0' * TemplateInstance::codegen: 'msgpack.isByte!(immutable(char))' * * VarDeclaration::codegen(): 'msgpack.isByte!(immutable(char)).isByte' * * * DtoResolveVariable(msgpack.isByte!(immutable(char)).isByte) * TemplateInstance::codegen: 'msgpack.getFieldName!(const(AutocompleteRequest), 0LU)' * * Ignoring Dsymbol::codegen for __anonymous * * Ignoring Dsymbol::codegen for * * Ignoring Dsymbol::codegen for * * VarDeclaration::codegen(): 'msgpack.getFieldName!(const(AutocompleteRequest), 0LU).getFieldName' * * * DtoResolveVariable(msgpack.getFieldName!(const(AutocompleteRequest), 0LU).getFieldName) * TemplateInstance::codegen: 'msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.pack!(RequestKind)' * * DtoDefineFunction(msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.pack!(RequestKind).pack): msgpack-d/src/msgpack.d(638) * * * Doing function body for: pack * * * Building type: RequestKind * * * DtoCreateNestedContext for pack * * * * DtoCreateNestedContextType for msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.pack!(RequestKind).pack * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(639) * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(640) * * * * * * CallExp::toElem: this.pack(value) @ PackerImpl!(Appender!(ubyte[])) * * * * * * * DotVarExp::toElem: this.pack @ pure nothrow ref @trusted PackerImpl!(Appender!(ubyte[]))(const(ushort) value) * * * * * * * * ThisExp::toElem: this @ PackerImpl!(Appender!(ubyte[])) * * * * * * * * * normal this exp * * * * * * * * isMember = this is: PackerImpl!(Appender!(ubyte[])) * * * * * * * * DtoFunctionType(pure nothrow ref @trusted PackerImpl!(Appender!(ubyte[]))(const(ushort) value)) * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * Final function type: %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* (%"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"*, i16) * * * * * * * * DtoResolveFunction(msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.pack!ushort.pack): msgpack-d/src/msgpack.d(401) * * * * * * * * * DtoDeclareFunction(msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.pack!ushort.pack): msgpack-d/src/msgpack.d(401) * * * * * * * * * * isMember = this is: PackerImpl!(Appender!(ubyte[])) * * * * * * * * * * DtoFunctionType(pure nothrow ref @trusted PackerImpl!(Appender!(ubyte[]))(const(ushort) value)) * * * * * * * * * * func = declare %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* @_D7msgpack55__T10PackerImplTS3std5array16__T8AppenderTAhZ8AppenderZ10PackerImpl11__T4packTtZ4packMFNaNbNcNextZS7msgpack55__T10PackerImplTS3std5array16__T8AppenderTAhZ8AppenderZ10PackerImpl(%"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"*, i16) * * * * * * * DtoCallFunction() * * * * * * * * Building type: pure nothrow ref @trusted PackerImpl!(Appender!(ubyte[]))(const(ushort) value) * * * * * * * * * DtoFunctionType(pure nothrow ref @trusted PackerImpl!(Appender!(ubyte[]))(const(ushort) value)) * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* (i16) * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (1) * * * * * * * * * %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* %.this_arg * * * * * * * * Function type: pure nothrow ref @trusted PackerImpl!(Appender!(ubyte[]))(const(ushort) value) * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: value @ const(ushort) * * * * * * * * * * DtoSymbolAddress ('value' of type 'const(RequestKind)') * * * * * * * * * * * function param * * * * * * * * * * * type: const(RequestKind) * * * * * ReturnStatement::toIR(): msgpack-d/src/msgpack.d(642) * * * * * * AddrExp::toElem: &this @ PackerImpl!(Appender!(ubyte[]))* * * * * * * * ThisExp::toElem: this @ PackerImpl!(Appender!(ubyte[])) * * * * * * * * normal this exp * * * * * * * is nothing special * * * * * * * lval: %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* %.this_arg * * * * * * return value is '0x133dcc40' * TemplateInstance::codegen: 'msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.pack!ushort' * * DtoDefineFunction(msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.pack!ushort.pack): msgpack-d/src/msgpack.d(401) * * * Doing function body for: pack * * * DtoCreateNestedContext for pack * * * * DtoCreateNestedContextType for msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.pack!ushort.pack * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(402) * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(405) * * * * * * DeclarationExp::toElem: enum ulong Bits = 16LU; | T=void * * * * * * * DtoDeclarationExp: Bits * * * * * * * * VarDeclaration * * * * * * * * Manifest constant, nothing to do. * * * * * IfStatement::toIR(): msgpack-d/src/msgpack.d(407) * * * * * * CmpExp::toElem: cast(int)value < 256 @ bool * * * * * * * CastExp::toElem: cast(int)value @ int * * * * * * * * VarExp::toElem: value @ const(ushort) * * * * * * * * * DtoSymbolAddress ('value' of type 'const(ushort)') * * * * * * * * * * function param * * * * * * * * * * type: const(ushort) * * * * * * * * Casting from 'const(ushort)' to 'int' * * * * * * * * * cast to: i32 * * * * * * * IntegerExp::toElem: 256 @ int * * * * * * * * IntegerExp::toConstElem: 256 @ int * * * * * * * * * value = i32 256 * * * * * * * type 1: %2 = zext i16 %1 to i32 * * * * * * * type 2: i32 256 * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(407) * * * * * * * IfStatement::toIR(): msgpack-d/src/msgpack.d(408) * * * * * * * * CmpExp::toElem: cast(int)value < 128 @ bool * * * * * * * * * CastExp::toElem: cast(int)value @ int * * * * * * * * * * VarExp::toElem: value @ const(ushort) * * * * * * * * * * * DtoSymbolAddress ('value' of type 'const(ushort)') * * * * * * * * * * * * function param * * * * * * * * * * * * type: const(ushort) * * * * * * * * * * Casting from 'const(ushort)' to 'int' * * * * * * * * * * * cast to: i32 * * * * * * * * * IntegerExp::toElem: 128 @ int * * * * * * * * * * IntegerExp::toConstElem: 128 @ int * * * * * * * * * * * value = i32 128 * * * * * * * * * type 1: %5 = zext i16 %4 to i32 * * * * * * * * * type 2: i32 128 * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(408) * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(410) * * * * * * * * * * CallExp::toElem: this.stream_.put(take8from(value)) @ void * * * * * * * * * * * DotVarExp::toElem: this.stream_.put @ pure nothrow @safe void(ubyte item) * * * * * * * * * * * * DotVarExp::toElem: this.stream_ @ Appender!(ubyte[]) * * * * * * * * * * * * * ThisExp::toElem: this @ PackerImpl!(Appender!(ubyte[])) * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * Indexing aggregate field msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.stream_: * * * * * * * * * * * * * * Value: %7 = getelementptr %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl", %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* %.this_arg, i32 0, i32 0 * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * %7 = getelementptr %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl", %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* %.this_arg, i32 0, i32 0 * * * * * * * * * * * * Function type: pure nothrow @safe void(ubyte item) * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * CallExp::toElem: take8from(value) @ ubyte * * * * * * * * * * * * * * VarExp::toElem: take8from @ pure nothrow @nogc @trusted ubyte(const(ushort) value) * * * * * * * * * * * * * * * DtoSymbolAddress ('take8from' of type 'pure nothrow @nogc @trusted ubyte(const(ushort) value)') * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted ubyte(const(ushort) value)) * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * Final function type: i8 (i16) * * * * * * * * * * * * * * * * DtoResolveFunction(msgpack.take8from!(16LU, const(ushort)).take8from): msgpack-d/src/msgpack.d(5077) * * * * * * * * * * * * * * * * * DtoDeclareFunction(msgpack.take8from!(16LU, const(ushort)).take8from): msgpack-d/src/msgpack.d(5077) * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted ubyte(const(ushort) value)) * * * * * * * * * * * * * * * * * * func = declare i8 @_D7msgpack22__T9take8fromVmi16TxtZ9take8fromFNaNbNiNextZh(i16) * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * Building type: pure nothrow @nogc @trusted ubyte(const(ushort) value) * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted ubyte(const(ushort) value)) * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * Final function type: i8 (i16) * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @trusted ubyte(const(ushort) value) * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * VarExp::toElem: value @ const(ushort) * * * * * * * * * * * * * * * * * DtoSymbolAddress ('value' of type 'const(ushort)') * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * type: const(ushort) * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(411) * * * * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(411) * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(413) * * * * * * * * * * * AssignExp::toElem: this.store_[0] = cast(ubyte)204u | (ubyte)(ubyte = ubyte) * * * * * * * * * * * * IndexExp::toElem: this.store_[0] @ ubyte * * * * * * * * * * * * * DotVarExp::toElem: this.store_ @ ubyte[11] * * * * * * * * * * * * * * ThisExp::toElem: this @ PackerImpl!(Appender!(ubyte[])) * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * Indexing aggregate field msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.store_: * * * * * * * * * * * * * * * Value: %10 = getelementptr %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl", %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* %.this_arg, i32 0, i32 1 * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * IntegerExp::toElem: cast(ubyte)204u @ ubyte * * * * * * * * * * * * * IntegerExp::toConstElem: cast(ubyte)204u @ ubyte * * * * * * * * * * * * * * value = i8 -52 * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * lhs: %11 = getelementptr [11 x i8], [11 x i8]* %10, i32 0, i64 0 * * * * * * * * * * * * * rhs: i8 -52 * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(414) * * * * * * * * * * * AssignExp::toElem: this.store_[1] = take8from(value) | (ubyte)(ubyte = ubyte) * * * * * * * * * * * * IndexExp::toElem: this.store_[1] @ ubyte * * * * * * * * * * * * * DotVarExp::toElem: this.store_ @ ubyte[11] * * * * * * * * * * * * * * ThisExp::toElem: this @ PackerImpl!(Appender!(ubyte[])) * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * Indexing aggregate field msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.store_: * * * * * * * * * * * * * * * Value: %12 = getelementptr %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl", %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* %.this_arg, i32 0, i32 1 * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * CallExp::toElem: take8from(value) @ ubyte * * * * * * * * * * * * * VarExp::toElem: take8from @ pure nothrow @nogc @trusted ubyte(const(ushort) value) * * * * * * * * * * * * * * DtoSymbolAddress ('take8from' of type 'pure nothrow @nogc @trusted ubyte(const(ushort) value)') * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * Function type: pure nothrow @nogc @trusted ubyte(const(ushort) value) * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * VarExp::toElem: value @ const(ushort) * * * * * * * * * * * * * * * * DtoSymbolAddress ('value' of type 'const(ushort)') * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * type: const(ushort) * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * lhs: %13 = getelementptr [11 x i8], [11 x i8]* %12, i32 0, i64 1 * * * * * * * * * * * * * rhs: %15 = call zeroext i8 @_D7msgpack22__T9take8fromVmi16TxtZ9take8fromFNaNbNiNextZh(i16 zeroext %14) * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(415) * * * * * * * * * * * CallExp::toElem: this.stream_.put(this.store_[0..2]) @ void * * * * * * * * * * * * DotVarExp::toElem: this.stream_.put @ pure nothrow @safe void(ubyte[] items) * * * * * * * * * * * * * DotVarExp::toElem: this.stream_ @ Appender!(ubyte[]) * * * * * * * * * * * * * * ThisExp::toElem: this @ PackerImpl!(Appender!(ubyte[])) * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * Indexing aggregate field msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.stream_: * * * * * * * * * * * * * * * Value: %16 = getelementptr %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl", %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* %.this_arg, i32 0, i32 0 * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * %16 = getelementptr %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl", %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* %.this_arg, i32 0, i32 0 * * * * * * * * * * * * * Function type: pure nothrow @safe void(ubyte[] items) * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * SliceExp::toElem: this.store_[0..2] @ ubyte[] * * * * * * * * * * * * * * * DotVarExp::toElem: this.store_ @ ubyte[11] * * * * * * * * * * * * * * * * ThisExp::toElem: this @ PackerImpl!(Appender!(ubyte[])) * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.store_: * * * * * * * * * * * * * * * * * Value: %17 = getelementptr %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl", %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* %.this_arg, i32 0, i32 1 * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * * * IntegerExp::toElem: 2LU @ ulong * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 2LU @ ulong * * * * * * * * * * * * * * * * * value = i64 2 * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(417) * * * * * * * IfStatement::toIR(): msgpack-d/src/msgpack.d(418) * * * * * * * * CmpExp::toElem: cast(int)value < 65536 @ bool * * * * * * * * * CastExp::toElem: cast(int)value @ int * * * * * * * * * * VarExp::toElem: value @ const(ushort) * * * * * * * * * * * DtoSymbolAddress ('value' of type 'const(ushort)') * * * * * * * * * * * * function param * * * * * * * * * * * * type: const(ushort) * * * * * * * * * * Casting from 'const(ushort)' to 'int' * * * * * * * * * * * cast to: i32 * * * * * * * * * IntegerExp::toElem: 65536 @ int * * * * * * * * * * IntegerExp::toConstElem: 65536 @ int * * * * * * * * * * * value = i32 65536 * * * * * * * * * type 1: %8 = zext i16 %7 to i32 * * * * * * * * * type 2: i32 65536 * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(418) * * * * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(418) * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(420) * * * * * * * * * * * DeclarationExp::toElem: const const(ushort) temp = convertEndianTo(value); | T=void * * * * * * * * * * * * DtoDeclarationExp: temp * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * DtoVarDeclaration(vdtype = const(ushort)) * * * * * * * * * * * * * * llvm value for decl: %temp = alloca i16, align 2 * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * AssignExp::toElem: temp = convertEndianTo(value) | (const(ushort))(const(ushort) = const(ushort)) * * * * * * * * * * * * * * * VarExp::toElem: temp @ const(ushort) * * * * * * * * * * * * * * * * DtoSymbolAddress ('temp' of type 'const(ushort)') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * CallExp::toElem: convertEndianTo(value) @ const(ushort) * * * * * * * * * * * * * * * * VarExp::toElem: convertEndianTo @ pure nothrow @nogc @trusted ushort(const(ushort) value) * * * * * * * * * * * * * * * * * DtoSymbolAddress ('convertEndianTo' of type 'pure nothrow @nogc @trusted ushort(const(ushort) value)') * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted ushort(const(ushort) value)) * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * Final function type: i16 (i16) * * * * * * * * * * * * * * * * * * DtoResolveFunction(msgpack.convertEndianTo!(16, ushort).convertEndianTo): msgpack-d/src/msgpack.d(5036) * * * * * * * * * * * * * * * * * * * DtoDeclareFunction(msgpack.convertEndianTo!(16, ushort).convertEndianTo): msgpack-d/src/msgpack.d(5036) * * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted ushort(const(ushort) value)) * * * * * * * * * * * * * * * * * * * * func = declare i16 @_D7msgpack28__T15convertEndianToVii16TtZ15convertEndianToFNaNbNiNextZt(i16) * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * Building type: pure nothrow @nogc @trusted ushort(const(ushort) value) * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted ushort(const(ushort) value)) * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * Final function type: i16 (i16) * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @trusted ushort(const(ushort) value) * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * VarExp::toElem: value @ const(ushort) * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('value' of type 'const(ushort)') * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * type: const(ushort) * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * lhs: %temp = alloca i16, align 2 * * * * * * * * * * * * * * * * rhs: %23 = call zeroext i16 @_D7msgpack28__T15convertEndianToVii16TtZ15convertEndianToFNaNbNiNextZt(i16 zeroext %22) * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(422) * * * * * * * * * * * AssignExp::toElem: this.store_[0] = cast(ubyte)205u | (ubyte)(ubyte = ubyte) * * * * * * * * * * * * IndexExp::toElem: this.store_[0] @ ubyte * * * * * * * * * * * * * DotVarExp::toElem: this.store_ @ ubyte[11] * * * * * * * * * * * * * * ThisExp::toElem: this @ PackerImpl!(Appender!(ubyte[])) * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * Indexing aggregate field msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.store_: * * * * * * * * * * * * * * * Value: %24 = getelementptr %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl", %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* %.this_arg, i32 0, i32 1 * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * IntegerExp::toElem: cast(ubyte)205u @ ubyte * * * * * * * * * * * * * IntegerExp::toConstElem: cast(ubyte)205u @ ubyte * * * * * * * * * * * * * * value = i8 -51 * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * lhs: %25 = getelementptr [11 x i8], [11 x i8]* %24, i32 0, i64 0 * * * * * * * * * * * * * rhs: i8 -51 * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(423) * * * * * * * * * * * AssignExp::toElem: *cast(ushort*)&this.store_[1] = temp | (ushort)(ushort = ushort) * * * * * * * * * * * * PtrExp::toElem: *cast(ushort*)&this.store_[1] @ ushort * * * * * * * * * * * * * CastExp::toElem: cast(ushort*)&this.store_[1] @ ushort* * * * * * * * * * * * * * * AddrExp::toElem: &this.store_[1] @ ubyte* * * * * * * * * * * * * * * * IndexExp::toElem: this.store_[1] @ ubyte * * * * * * * * * * * * * * * * DotVarExp::toElem: this.store_ @ ubyte[11] * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ PackerImpl!(Appender!(ubyte[])) * * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.store_: * * * * * * * * * * * * * * * * * * Value: %26 = getelementptr %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl", %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* %.this_arg, i32 0, i32 1 * * * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * * * is nothing special * * * * * * * * * * * * * * * lval: %27 = getelementptr [11 x i8], [11 x i8]* %26, i32 0, i64 1 * * * * * * * * * * * * * * Casting from 'ubyte*' to 'ushort*' * * * * * * * * * * * * * * * src: %27 = getelementptr [11 x i8], [11 x i8]* %26, i32 0, i64 1 * * * * * * * * * * * * * * * to type: i16* * * * * * * * * * * * * VarExp::toElem: temp @ ushort * * * * * * * * * * * * * DtoSymbolAddress ('temp' of type 'const(ushort)') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * lhs: %28 = bitcast i8* %27 to i16* * * * * * * * * * * * * * rhs: %29 = load i16, i16* %temp * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(424) * * * * * * * * * * * CallExp::toElem: this.stream_.put(this.store_[0..3]) @ void * * * * * * * * * * * * DotVarExp::toElem: this.stream_.put @ pure nothrow @safe void(ubyte[] items) * * * * * * * * * * * * * DotVarExp::toElem: this.stream_ @ Appender!(ubyte[]) * * * * * * * * * * * * * * ThisExp::toElem: this @ PackerImpl!(Appender!(ubyte[])) * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * Indexing aggregate field msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.stream_: * * * * * * * * * * * * * * * Value: %30 = getelementptr %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl", %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* %.this_arg, i32 0, i32 0 * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * %30 = getelementptr %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl", %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* %.this_arg, i32 0, i32 0 * * * * * * * * * * * * * Function type: pure nothrow @safe void(ubyte[] items) * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * SliceExp::toElem: this.store_[0..3] @ ubyte[] * * * * * * * * * * * * * * * DotVarExp::toElem: this.store_ @ ubyte[11] * * * * * * * * * * * * * * * * ThisExp::toElem: this @ PackerImpl!(Appender!(ubyte[])) * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.store_: * * * * * * * * * * * * * * * * * Value: %31 = getelementptr %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl", %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* %.this_arg, i32 0, i32 1 * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * * * IntegerExp::toElem: 3LU @ ulong * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 3LU @ ulong * * * * * * * * * * * * * * * * * value = i64 3 * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(425) * * * * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(425) * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(427) * * * * * * * * * * * DeclarationExp::toElem: const const(uint) temp = convertEndianTo(value); | T=void * * * * * * * * * * * * DtoDeclarationExp: temp * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * DtoVarDeclaration(vdtype = const(uint)) * * * * * * * * * * * * * * llvm value for decl: %temp9 = alloca i32, align 4 * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * AssignExp::toElem: temp = convertEndianTo(value) | (const(uint))(const(uint) = const(uint)) * * * * * * * * * * * * * * * VarExp::toElem: temp @ const(uint) * * * * * * * * * * * * * * * * DtoSymbolAddress ('temp' of type 'const(uint)') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * CallExp::toElem: convertEndianTo(value) @ const(uint) * * * * * * * * * * * * * * * * VarExp::toElem: convertEndianTo @ pure nothrow @nogc @trusted uint(const(ushort) value) * * * * * * * * * * * * * * * * * DtoSymbolAddress ('convertEndianTo' of type 'pure nothrow @nogc @trusted uint(const(ushort) value)') * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted uint(const(ushort) value)) * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * Final function type: i32 (i16) * * * * * * * * * * * * * * * * * * DtoResolveFunction(msgpack.convertEndianTo!(32, ushort).convertEndianTo): msgpack-d/src/msgpack.d(5044) * * * * * * * * * * * * * * * * * * * DtoDeclareFunction(msgpack.convertEndianTo!(32, ushort).convertEndianTo): msgpack-d/src/msgpack.d(5044) * * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted uint(const(ushort) value)) * * * * * * * * * * * * * * * * * * * * func = declare i32 @_D7msgpack28__T15convertEndianToVii32TtZ15convertEndianToFNaNbNiNextZk(i16) * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * Building type: pure nothrow @nogc @trusted uint(const(ushort) value) * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted uint(const(ushort) value)) * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * Final function type: i32 (i16) * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @trusted uint(const(ushort) value) * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * VarExp::toElem: value @ const(ushort) * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('value' of type 'const(ushort)') * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * type: const(ushort) * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * lhs: %temp9 = alloca i32, align 4 * * * * * * * * * * * * * * * * rhs: %34 = call i32 @_D7msgpack28__T15convertEndianToVii32TtZ15convertEndianToFNaNbNiNextZk(i16 zeroext %33) * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(429) * * * * * * * * * * * AssignExp::toElem: this.store_[0] = cast(ubyte)206u | (ubyte)(ubyte = ubyte) * * * * * * * * * * * * IndexExp::toElem: this.store_[0] @ ubyte * * * * * * * * * * * * * DotVarExp::toElem: this.store_ @ ubyte[11] * * * * * * * * * * * * * * ThisExp::toElem: this @ PackerImpl!(Appender!(ubyte[])) * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * Indexing aggregate field msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.store_: * * * * * * * * * * * * * * * Value: %35 = getelementptr %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl", %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* %.this_arg, i32 0, i32 1 * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * IntegerExp::toElem: cast(ubyte)206u @ ubyte * * * * * * * * * * * * * IntegerExp::toConstElem: cast(ubyte)206u @ ubyte * * * * * * * * * * * * * * value = i8 -50 * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * lhs: %36 = getelementptr [11 x i8], [11 x i8]* %35, i32 0, i64 0 * * * * * * * * * * * * * rhs: i8 -50 * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(430) * * * * * * * * * * * AssignExp::toElem: *cast(uint*)&this.store_[1] = temp | (uint)(uint = uint) * * * * * * * * * * * * PtrExp::toElem: *cast(uint*)&this.store_[1] @ uint * * * * * * * * * * * * * CastExp::toElem: cast(uint*)&this.store_[1] @ uint* * * * * * * * * * * * * * * AddrExp::toElem: &this.store_[1] @ ubyte* * * * * * * * * * * * * * * * IndexExp::toElem: this.store_[1] @ ubyte * * * * * * * * * * * * * * * * DotVarExp::toElem: this.store_ @ ubyte[11] * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ PackerImpl!(Appender!(ubyte[])) * * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.store_: * * * * * * * * * * * * * * * * * * Value: %37 = getelementptr %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl", %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* %.this_arg, i32 0, i32 1 * * * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * * * is nothing special * * * * * * * * * * * * * * * lval: %38 = getelementptr [11 x i8], [11 x i8]* %37, i32 0, i64 1 * * * * * * * * * * * * * * Casting from 'ubyte*' to 'uint*' * * * * * * * * * * * * * * * src: %38 = getelementptr [11 x i8], [11 x i8]* %37, i32 0, i64 1 * * * * * * * * * * * * * * * to type: i32* * * * * * * * * * * * * VarExp::toElem: temp @ uint * * * * * * * * * * * * * DtoSymbolAddress ('temp' of type 'const(uint)') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * lhs: %39 = bitcast i8* %38 to i32* * * * * * * * * * * * * * rhs: %40 = load i32, i32* %temp9 * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(431) * * * * * * * * * * * CallExp::toElem: this.stream_.put(this.store_[0..5]) @ void * * * * * * * * * * * * DotVarExp::toElem: this.stream_.put @ pure nothrow @safe void(ubyte[] items) * * * * * * * * * * * * * DotVarExp::toElem: this.stream_ @ Appender!(ubyte[]) * * * * * * * * * * * * * * ThisExp::toElem: this @ PackerImpl!(Appender!(ubyte[])) * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * Indexing aggregate field msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.stream_: * * * * * * * * * * * * * * * Value: %41 = getelementptr %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl", %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* %.this_arg, i32 0, i32 0 * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * %41 = getelementptr %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl", %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* %.this_arg, i32 0, i32 0 * * * * * * * * * * * * * Function type: pure nothrow @safe void(ubyte[] items) * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * SliceExp::toElem: this.store_[0..5] @ ubyte[] * * * * * * * * * * * * * * * DotVarExp::toElem: this.store_ @ ubyte[11] * * * * * * * * * * * * * * * * ThisExp::toElem: this @ PackerImpl!(Appender!(ubyte[])) * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.store_: * * * * * * * * * * * * * * * * * Value: %42 = getelementptr %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl", %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* %.this_arg, i32 0, i32 1 * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * * * IntegerExp::toElem: 5LU @ ulong * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 5LU @ ulong * * * * * * * * * * * * * * * * * value = i64 5 * * * * * ReturnStatement::toIR(): msgpack-d/src/msgpack.d(471) * * * * * * AddrExp::toElem: &this @ PackerImpl!(Appender!(ubyte[]))* * * * * * * * ThisExp::toElem: this @ PackerImpl!(Appender!(ubyte[])) * * * * * * * * normal this exp * * * * * * * is nothing special * * * * * * * lval: %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* %.this_arg * * * * * * return value is '0x13414050' * TemplateInstance::codegen: 'msgpack.take8from!(16LU, const(ushort))' * * DtoDefineFunction(msgpack.take8from!(16LU, const(ushort)).take8from): msgpack-d/src/msgpack.d(5077) * * * Doing function body for: take8from * * * DtoCreateNestedContext for take8from * * * * DtoCreateNestedContextType for msgpack.take8from!(16LU, const(ushort)).take8from * * * CompoundStatement::toIR(): * * * * ReturnStatement::toIR(): msgpack-d/src/msgpack.d(5080) * * * * * IndexExp::toElem: & value[0] @ ubyte * * * * * * SymOffExp::toElem: & value @ ubyte* * * * * * * * DtoSymbolAddress ('value' of type 'const(ushort)') * * * * * * * * function param * * * * * * * * type: const(ushort) * * * * * * * Casting from 'const(ushort)*' to 'ubyte*' * * * * * * * * src: %value = alloca i16, align 2 * * * * * * * * to type: i8* * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * value = i64 0 * * * * * return value is '0x1342aab8' * TemplateInstance::codegen: 'msgpack.convertEndianTo!(16, ushort)' * * DtoDefineFunction(msgpack.convertEndianTo!(16, ushort).convertEndianTo): msgpack-d/src/msgpack.d(5036) * * * Doing function body for: convertEndianTo * * * DtoCreateNestedContext for convertEndianTo * * * * DtoCreateNestedContextType for msgpack.convertEndianTo!(16, ushort).convertEndianTo * * * CompoundStatement::toIR(): * * * * ReturnStatement::toIR(): msgpack-d/src/msgpack.d(5038) * * * * * CallExp::toElem: ntohs(value) @ ushort * * * * * * VarExp::toElem: ntohs @ pure nothrow @nogc @trusted extern (C) ushort(ushort) * * * * * * * DtoSymbolAddress ('ntohs' of type 'pure nothrow @nogc @trusted extern (C) ushort(ushort)') * * * * * * * * FuncDeclaration * * * * * * DtoCallFunction() * * * * * * * doing normal arguments * * * * * * * Arguments so far: (0) * * * * * * * Function type: pure nothrow @nogc @trusted extern (C) ushort(ushort) * * * * * * * DtoArgument * * * * * * * * VarExp::toElem: value @ ushort * * * * * * * * * DtoSymbolAddress ('value' of type 'const(ushort)') * * * * * * * * * * function param * * * * * * * * * * type: const(ushort) * * * * * return value is '0x1342bb10' * TemplateInstance::codegen: 'msgpack.convertEndianTo!(32, ushort)' * * DtoDefineFunction(msgpack.convertEndianTo!(32, ushort).convertEndianTo): msgpack-d/src/msgpack.d(5044) * * * Doing function body for: convertEndianTo * * * DtoCreateNestedContext for convertEndianTo * * * * DtoCreateNestedContextType for msgpack.convertEndianTo!(32, ushort).convertEndianTo * * * CompoundStatement::toIR(): * * * * ReturnStatement::toIR(): msgpack-d/src/msgpack.d(5046) * * * * * CallExp::toElem: ntohl(cast(uint)value) @ uint * * * * * * VarExp::toElem: ntohl @ pure nothrow @nogc @trusted extern (C) uint(uint) * * * * * * * DtoSymbolAddress ('ntohl' of type 'pure nothrow @nogc @trusted extern (C) uint(uint)') * * * * * * * * FuncDeclaration * * * * * * DtoCallFunction() * * * * * * * doing normal arguments * * * * * * * Arguments so far: (0) * * * * * * * Function type: pure nothrow @nogc @trusted extern (C) uint(uint) * * * * * * * DtoArgument * * * * * * * * CastExp::toElem: cast(uint)value @ uint * * * * * * * * * VarExp::toElem: value @ const(ushort) * * * * * * * * * * DtoSymbolAddress ('value' of type 'const(ushort)') * * * * * * * * * * * function param * * * * * * * * * * * type: const(ushort) * * * * * * * * * Casting from 'const(ushort)' to 'uint' * * * * * * * * * * cast to: i32 * * * * * return value is '0x1342ccb0' * TemplateInstance::codegen: 'msgpack.getFieldName!(const(AutocompleteRequest), 1LU)' * * Ignoring Dsymbol::codegen for __anonymous * * Ignoring Dsymbol::codegen for * * Ignoring Dsymbol::codegen for * * VarDeclaration::codegen(): 'msgpack.getFieldName!(const(AutocompleteRequest), 1LU).getFieldName' * * * DtoResolveVariable(msgpack.getFieldName!(const(AutocompleteRequest), 1LU).getFieldName) * TemplateInstance::codegen: 'msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.pack!(const(string)[])' * * DtoDefineFunction(msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.pack!(const(string)[]).pack): msgpack-d/src/msgpack.d(674) * * * Doing function body for: pack * * * DtoCreateNestedContext for pack * * * * DtoCreateNestedContextType for msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.pack!(const(string)[]).pack * * * * * has nested frame * * * * * Function pack has depth 0 * * * * * Nested var 'this' of type %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* * * * * * frameType = %nest.pack.17 = type { %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* } * * * * nested param: this * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(675) * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(676) * * * * * * DeclarationExp::toElem: alias U = const(string); | T=void * * * * * * * DtoDeclarationExp: U * * * * * * * * Ignoring Symbol: alias * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(681) * * * * * * DeclarationExp::toElem: pure nothrow @system void beginRaw(const(ulong) length) { if (length < 32LU) { const const(ubyte) temp = cast(const(ubyte))(160 | cast(int)cast(ubyte)length); this.stream_.put(take8from(temp)); } else if (length < 65536LU) { const const(ushort) temp = convertEndianTo(length); this.store_[0] = cast(ubyte)218u; *cast(ushort*)&this.store_[1] = temp; this.stream_.put(this.store_[0..3]); } else { const const(uint) temp = convertEndianTo(length); this.store_[0] = cast(ubyte)219u; *cast(uint*)&this.store_[1] = temp; this.stream_.put(this.store_[0..5]); } } | T=void * * * * * * * DtoDeclarationExp: beginRaw * * * * * * * * FuncDeclaration * * * * * * * * DtoDefineFunction(msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.pack!(const(string)[]).pack.beginRaw): msgpack-d/src/msgpack.d(681) * * * * * * * * * DtoFunctionType(pure nothrow @system void(const(ulong) length)) * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: void (i8*, i64) * * * * * * * * * DtoResolveFunction(msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.pack!(const(string)[]).pack.beginRaw): msgpack-d/src/msgpack.d(681) * * * * * * * * * * DtoDeclareFunction(msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.pack!(const(string)[]).pack.beginRaw): msgpack-d/src/msgpack.d(681) * * * * * * * * * * * DtoFunctionType(pure nothrow @system void(const(ulong) length)) * * * * * * * * * * * func = declare void @_D7msgpack55__T10PackerImplTS3std5array16__T8AppenderTAhZ8AppenderZ10PackerImpl15__T4packTAxAyaZ4packMFNcNexAAyaZ8beginRawMFNaNbxmZv(i8*, i64) * * * * * * * * * Doing function body for: beginRaw * * * * * * * * * DtoCreateNestedContext for beginRaw * * * * * * * * * * DtoCreateNestedContextType for msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.pack!(const(string)[]).pack.beginRaw * * * * * * * * * * * DtoCreateNestedContextType for msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.pack!(const(string)[]).pack * * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * * IfStatement::toIR(): msgpack-d/src/msgpack.d(683) * * * * * * * * * * * CmpExp::toElem: length < 32LU @ bool * * * * * * * * * * * * VarExp::toElem: length @ ulong * * * * * * * * * * * * * DtoSymbolAddress ('length' of type 'const(ulong)') * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * type: const(ulong) * * * * * * * * * * * * IntegerExp::toElem: 32LU @ ulong * * * * * * * * * * * * * IntegerExp::toConstElem: 32LU @ ulong * * * * * * * * * * * * * * value = i64 32 * * * * * * * * * * * * type 1: %1 = load i64, i64* %length * * * * * * * * * * * * type 2: i64 32 * * * * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(683) * * * * * * * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(683) * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(684) * * * * * * * * * * * * * * DeclarationExp::toElem: const const(ubyte) temp = cast(const(ubyte))(160 | cast(int)cast(ubyte)length); | T=void * * * * * * * * * * * * * * * DtoDeclarationExp: temp * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = const(ubyte)) * * * * * * * * * * * * * * * * * llvm value for decl: %temp = alloca i8, align 1 * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * AssignExp::toElem: temp = cast(const(ubyte))(160 | cast(int)cast(ubyte)length) | (const(ubyte))(const(ubyte) = const(ubyte)) * * * * * * * * * * * * * * * * * * VarExp::toElem: temp @ const(ubyte) * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('temp' of type 'const(ubyte)') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * CastExp::toElem: cast(const(ubyte))(160 | cast(int)cast(ubyte)length) @ const(ubyte) * * * * * * * * * * * * * * * * * * * OrExp::toElem: 160 | cast(int)cast(ubyte)length @ int * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 160 @ int * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 160 @ int * * * * * * * * * * * * * * * * * * * * * * value = i32 160 * * * * * * * * * * * * * * * * * * * * CastExp::toElem: cast(int)cast(ubyte)length @ int * * * * * * * * * * * * * * * * * * * * * CastExp::toElem: cast(ubyte)length @ ubyte * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: length @ const(ulong) * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('length' of type 'const(ulong)') * * * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * * * type: const(ulong) * * * * * * * * * * * * * * * * * * * * * * Casting from 'const(ulong)' to 'ubyte' * * * * * * * * * * * * * * * * * * * * * Casting from 'ubyte' to 'int' * * * * * * * * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * * * * * * * * Casting from 'int' to 'const(ubyte)' * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * lhs: %temp = alloca i8, align 1 * * * * * * * * * * * * * * * * * * * rhs: %7 = trunc i32 %6 to i8 * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(685) * * * * * * * * * * * * * * CallExp::toElem: this.stream_.put(take8from(temp)) @ void * * * * * * * * * * * * * * * DotVarExp::toElem: this.stream_.put @ pure nothrow @safe void(ubyte item) * * * * * * * * * * * * * * * * DotVarExp::toElem: this.stream_ @ Appender!(ubyte[]) * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ PackerImpl!(Appender!(ubyte[])) * * * * * * * * * * * * * * * * * * nested this exp * * * * * * * * * * * * * * * * * * DtoNestedVariable for this @ msgpack-d/src/msgpack.d(685) * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.pack!(const(string)[]).pack * * * * * * * * * * * * * * * * * * * Context: %9 = bitcast i8* %8 to %nest.pack.17* * * * * * * * * * * * * * * * * * * * of type: %nest.pack.17 = type { %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* } * * * * * * * * * * * * * * * * * * * Variable: this * * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * * Function: beginRaw * * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * * Addr: %this = getelementptr %nest.pack.17, %nest.pack.17* %9, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * of type: %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"** * * * * * * * * * * * * * * * * * * * Was byref, now: %10 = load %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"*, %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"** %this, align 8 * * * * * * * * * * * * * * * * * * * of type: %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* * * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.stream_: * * * * * * * * * * * * * * * * * * Value: %11 = getelementptr %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl", %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* %10, i32 0, i32 0 * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * %11 = getelementptr %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl", %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* %10, i32 0, i32 0 * * * * * * * * * * * * * * * * Function type: pure nothrow @safe void(ubyte item) * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * CallExp::toElem: take8from(temp) @ ubyte * * * * * * * * * * * * * * * * * * VarExp::toElem: take8from @ pure nothrow @nogc @trusted ubyte(const(ubyte) value) * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('take8from' of type 'pure nothrow @nogc @trusted ubyte(const(ubyte) value)') * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @trusted ubyte(const(ubyte) value) * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * VarExp::toElem: temp @ const(ubyte) * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('temp' of type 'const(ubyte)') * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * IfStatement::toIR(): msgpack-d/src/msgpack.d(686) * * * * * * * * * * * * CmpExp::toElem: length < 65536LU @ bool * * * * * * * * * * * * * VarExp::toElem: length @ ulong * * * * * * * * * * * * * * DtoSymbolAddress ('length' of type 'const(ulong)') * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * type: const(ulong) * * * * * * * * * * * * * IntegerExp::toElem: 65536LU @ ulong * * * * * * * * * * * * * * IntegerExp::toConstElem: 65536LU @ ulong * * * * * * * * * * * * * * * value = i64 65536 * * * * * * * * * * * * * type 1: %14 = load i64, i64* %length * * * * * * * * * * * * * type 2: i64 65536 * * * * * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(686) * * * * * * * * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(686) * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(687) * * * * * * * * * * * * * * * DeclarationExp::toElem: const const(ushort) temp = convertEndianTo(length); | T=void * * * * * * * * * * * * * * * * DtoDeclarationExp: temp * * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = const(ushort)) * * * * * * * * * * * * * * * * * * llvm value for decl: %temp4 = alloca i16, align 2 * * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * * AssignExp::toElem: temp = convertEndianTo(length) | (const(ushort))(const(ushort) = const(ushort)) * * * * * * * * * * * * * * * * * * * VarExp::toElem: temp @ const(ushort) * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('temp' of type 'const(ushort)') * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * CallExp::toElem: convertEndianTo(length) @ const(ushort) * * * * * * * * * * * * * * * * * * * * VarExp::toElem: convertEndianTo @ pure nothrow @nogc @trusted ushort(const(ulong) value) * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('convertEndianTo' of type 'pure nothrow @nogc @trusted ushort(const(ulong) value)') * * * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @trusted ushort(const(ulong) value) * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: length @ const(ulong) * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('length' of type 'const(ulong)') * * * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * * * type: const(ulong) * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * lhs: %temp4 = alloca i16, align 2 * * * * * * * * * * * * * * * * * * * * rhs: %17 = call zeroext i16 @_D7msgpack28__T15convertEndianToVii16TmZ15convertEndianToFNaNbNiNexmZt(i64 %16) * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(689) * * * * * * * * * * * * * * * AssignExp::toElem: this.store_[0] = cast(ubyte)218u | (ubyte)(ubyte = ubyte) * * * * * * * * * * * * * * * * IndexExp::toElem: this.store_[0] @ ubyte * * * * * * * * * * * * * * * * * DotVarExp::toElem: this.store_ @ ubyte[11] * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ PackerImpl!(Appender!(ubyte[])) * * * * * * * * * * * * * * * * * * * nested this exp * * * * * * * * * * * * * * * * * * * DtoNestedVariable for this @ msgpack-d/src/msgpack.d(689) * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.pack!(const(string)[]).pack * * * * * * * * * * * * * * * * * * * * Context: %19 = bitcast i8* %18 to %nest.pack.17* * * * * * * * * * * * * * * * * * * * * of type: %nest.pack.17 = type { %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* } * * * * * * * * * * * * * * * * * * * * Variable: this * * * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * * * Function: beginRaw * * * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * * * Addr: %this5 = getelementptr %nest.pack.17, %nest.pack.17* %19, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * * of type: %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"** * * * * * * * * * * * * * * * * * * * * Was byref, now: %20 = load %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"*, %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"** %this5, align 8 * * * * * * * * * * * * * * * * * * * * of type: %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* * * * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.store_: * * * * * * * * * * * * * * * * * * * Value: %21 = getelementptr %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl", %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* %20, i32 0, i32 1 * * * * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * * * * IntegerExp::toElem: cast(ubyte)218u @ ubyte * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: cast(ubyte)218u @ ubyte * * * * * * * * * * * * * * * * * * value = i8 -38 * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * lhs: %22 = getelementptr [11 x i8], [11 x i8]* %21, i32 0, i64 0 * * * * * * * * * * * * * * * * * rhs: i8 -38 * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(690) * * * * * * * * * * * * * * * AssignExp::toElem: *cast(ushort*)&this.store_[1] = temp | (ushort)(ushort = ushort) * * * * * * * * * * * * * * * * PtrExp::toElem: *cast(ushort*)&this.store_[1] @ ushort * * * * * * * * * * * * * * * * * CastExp::toElem: cast(ushort*)&this.store_[1] @ ushort* * * * * * * * * * * * * * * * * * * AddrExp::toElem: &this.store_[1] @ ubyte* * * * * * * * * * * * * * * * * * * * IndexExp::toElem: this.store_[1] @ ubyte * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: this.store_ @ ubyte[11] * * * * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ PackerImpl!(Appender!(ubyte[])) * * * * * * * * * * * * * * * * * * * * * * nested this exp * * * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for this @ msgpack-d/src/msgpack.d(690) * * * * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.pack!(const(string)[]).pack * * * * * * * * * * * * * * * * * * * * * * * Context: %24 = bitcast i8* %23 to %nest.pack.17* * * * * * * * * * * * * * * * * * * * * * * * of type: %nest.pack.17 = type { %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* } * * * * * * * * * * * * * * * * * * * * * * * Variable: this * * * * * * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * * * * * * Function: beginRaw * * * * * * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * * * * * * Addr: %this6 = getelementptr %nest.pack.17, %nest.pack.17* %24, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * * * * * of type: %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"** * * * * * * * * * * * * * * * * * * * * * * * Was byref, now: %25 = load %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"*, %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"** %this6, align 8 * * * * * * * * * * * * * * * * * * * * * * * of type: %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* * * * * * * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.store_: * * * * * * * * * * * * * * * * * * * * * * Value: %26 = getelementptr %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl", %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* %25, i32 0, i32 1 * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * * * * * * * is nothing special * * * * * * * * * * * * * * * * * * * lval: %27 = getelementptr [11 x i8], [11 x i8]* %26, i32 0, i64 1 * * * * * * * * * * * * * * * * * * Casting from 'ubyte*' to 'ushort*' * * * * * * * * * * * * * * * * * * * src: %27 = getelementptr [11 x i8], [11 x i8]* %26, i32 0, i64 1 * * * * * * * * * * * * * * * * * * * to type: i16* * * * * * * * * * * * * * * * * VarExp::toElem: temp @ ushort * * * * * * * * * * * * * * * * * DtoSymbolAddress ('temp' of type 'const(ushort)') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * lhs: %28 = bitcast i8* %27 to i16* * * * * * * * * * * * * * * * * * rhs: %29 = load i16, i16* %temp4 * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(691) * * * * * * * * * * * * * * * CallExp::toElem: this.stream_.put(this.store_[0..3]) @ void * * * * * * * * * * * * * * * * DotVarExp::toElem: this.stream_.put @ pure nothrow @safe void(ubyte[] items) * * * * * * * * * * * * * * * * * DotVarExp::toElem: this.stream_ @ Appender!(ubyte[]) * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ PackerImpl!(Appender!(ubyte[])) * * * * * * * * * * * * * * * * * * * nested this exp * * * * * * * * * * * * * * * * * * * DtoNestedVariable for this @ msgpack-d/src/msgpack.d(691) * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.pack!(const(string)[]).pack * * * * * * * * * * * * * * * * * * * * Context: %31 = bitcast i8* %30 to %nest.pack.17* * * * * * * * * * * * * * * * * * * * * of type: %nest.pack.17 = type { %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* } * * * * * * * * * * * * * * * * * * * * Variable: this * * * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * * * Function: beginRaw * * * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * * * Addr: %this7 = getelementptr %nest.pack.17, %nest.pack.17* %31, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * * of type: %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"** * * * * * * * * * * * * * * * * * * * * Was byref, now: %32 = load %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"*, %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"** %this7, align 8 * * * * * * * * * * * * * * * * * * * * of type: %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* * * * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.stream_: * * * * * * * * * * * * * * * * * * * Value: %33 = getelementptr %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl", %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* %32, i32 0, i32 0 * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * %33 = getelementptr %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl", %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* %32, i32 0, i32 0 * * * * * * * * * * * * * * * * * Function type: pure nothrow @safe void(ubyte[] items) * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * SliceExp::toElem: this.store_[0..3] @ ubyte[] * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: this.store_ @ ubyte[11] * * * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ PackerImpl!(Appender!(ubyte[])) * * * * * * * * * * * * * * * * * * * * * nested this exp * * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for this @ msgpack-d/src/msgpack.d(691) * * * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.pack!(const(string)[]).pack * * * * * * * * * * * * * * * * * * * * * * Context: %35 = bitcast i8* %34 to %nest.pack.17* * * * * * * * * * * * * * * * * * * * * * * of type: %nest.pack.17 = type { %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* } * * * * * * * * * * * * * * * * * * * * * * Variable: this * * * * * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * * * * * Function: beginRaw * * * * * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * * * * * Addr: %this8 = getelementptr %nest.pack.17, %nest.pack.17* %35, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * * * * of type: %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"** * * * * * * * * * * * * * * * * * * * * * * Was byref, now: %36 = load %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"*, %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"** %this8, align 8 * * * * * * * * * * * * * * * * * * * * * * of type: %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* * * * * * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.store_: * * * * * * * * * * * * * * * * * * * * * Value: %37 = getelementptr %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl", %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* %36, i32 0, i32 1 * * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 3LU @ ulong * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 3LU @ ulong * * * * * * * * * * * * * * * * * * * * * value = i64 3 * * * * * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(692) * * * * * * * * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(692) * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(693) * * * * * * * * * * * * * * * DeclarationExp::toElem: const const(uint) temp = convertEndianTo(length); | T=void * * * * * * * * * * * * * * * * DtoDeclarationExp: temp * * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = const(uint)) * * * * * * * * * * * * * * * * * * llvm value for decl: %temp9 = alloca i32, align 4 * * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * * AssignExp::toElem: temp = convertEndianTo(length) | (const(uint))(const(uint) = const(uint)) * * * * * * * * * * * * * * * * * * * VarExp::toElem: temp @ const(uint) * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('temp' of type 'const(uint)') * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * CallExp::toElem: convertEndianTo(length) @ const(uint) * * * * * * * * * * * * * * * * * * * * VarExp::toElem: convertEndianTo @ pure nothrow @nogc @trusted uint(const(ulong) value) * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('convertEndianTo' of type 'pure nothrow @nogc @trusted uint(const(ulong) value)') * * * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @trusted uint(const(ulong) value) * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: length @ const(ulong) * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('length' of type 'const(ulong)') * * * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * * * type: const(ulong) * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * lhs: %temp9 = alloca i32, align 4 * * * * * * * * * * * * * * * * * * * * rhs: %40 = call i32 @_D7msgpack28__T15convertEndianToVii32TmZ15convertEndianToFNaNbNiNexmZk(i64 %39) * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(695) * * * * * * * * * * * * * * * AssignExp::toElem: this.store_[0] = cast(ubyte)219u | (ubyte)(ubyte = ubyte) * * * * * * * * * * * * * * * * IndexExp::toElem: this.store_[0] @ ubyte * * * * * * * * * * * * * * * * * DotVarExp::toElem: this.store_ @ ubyte[11] * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ PackerImpl!(Appender!(ubyte[])) * * * * * * * * * * * * * * * * * * * nested this exp * * * * * * * * * * * * * * * * * * * DtoNestedVariable for this @ msgpack-d/src/msgpack.d(695) * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.pack!(const(string)[]).pack * * * * * * * * * * * * * * * * * * * * Context: %42 = bitcast i8* %41 to %nest.pack.17* * * * * * * * * * * * * * * * * * * * * of type: %nest.pack.17 = type { %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* } * * * * * * * * * * * * * * * * * * * * Variable: this * * * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * * * Function: beginRaw * * * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * * * Addr: %this10 = getelementptr %nest.pack.17, %nest.pack.17* %42, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * * of type: %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"** * * * * * * * * * * * * * * * * * * * * Was byref, now: %43 = load %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"*, %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"** %this10, align 8 * * * * * * * * * * * * * * * * * * * * of type: %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* * * * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.store_: * * * * * * * * * * * * * * * * * * * Value: %44 = getelementptr %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl", %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* %43, i32 0, i32 1 * * * * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * * * * IntegerExp::toElem: cast(ubyte)219u @ ubyte * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: cast(ubyte)219u @ ubyte * * * * * * * * * * * * * * * * * * value = i8 -37 * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * lhs: %45 = getelementptr [11 x i8], [11 x i8]* %44, i32 0, i64 0 * * * * * * * * * * * * * * * * * rhs: i8 -37 * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(696) * * * * * * * * * * * * * * * AssignExp::toElem: *cast(uint*)&this.store_[1] = temp | (uint)(uint = uint) * * * * * * * * * * * * * * * * PtrExp::toElem: *cast(uint*)&this.store_[1] @ uint * * * * * * * * * * * * * * * * * CastExp::toElem: cast(uint*)&this.store_[1] @ uint* * * * * * * * * * * * * * * * * * * AddrExp::toElem: &this.store_[1] @ ubyte* * * * * * * * * * * * * * * * * * * * IndexExp::toElem: this.store_[1] @ ubyte * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: this.store_ @ ubyte[11] * * * * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ PackerImpl!(Appender!(ubyte[])) * * * * * * * * * * * * * * * * * * * * * * nested this exp * * * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for this @ msgpack-d/src/msgpack.d(696) * * * * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.pack!(const(string)[]).pack * * * * * * * * * * * * * * * * * * * * * * * Context: %47 = bitcast i8* %46 to %nest.pack.17* * * * * * * * * * * * * * * * * * * * * * * * of type: %nest.pack.17 = type { %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* } * * * * * * * * * * * * * * * * * * * * * * * Variable: this * * * * * * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * * * * * * Function: beginRaw * * * * * * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * * * * * * Addr: %this11 = getelementptr %nest.pack.17, %nest.pack.17* %47, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * * * * * of type: %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"** * * * * * * * * * * * * * * * * * * * * * * * Was byref, now: %48 = load %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"*, %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"** %this11, align 8 * * * * * * * * * * * * * * * * * * * * * * * of type: %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* * * * * * * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.store_: * * * * * * * * * * * * * * * * * * * * * * Value: %49 = getelementptr %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl", %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* %48, i32 0, i32 1 * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * * * * * * * is nothing special * * * * * * * * * * * * * * * * * * * lval: %50 = getelementptr [11 x i8], [11 x i8]* %49, i32 0, i64 1 * * * * * * * * * * * * * * * * * * Casting from 'ubyte*' to 'uint*' * * * * * * * * * * * * * * * * * * * src: %50 = getelementptr [11 x i8], [11 x i8]* %49, i32 0, i64 1 * * * * * * * * * * * * * * * * * * * to type: i32* * * * * * * * * * * * * * * * * VarExp::toElem: temp @ uint * * * * * * * * * * * * * * * * * DtoSymbolAddress ('temp' of type 'const(uint)') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * lhs: %51 = bitcast i8* %50 to i32* * * * * * * * * * * * * * * * * * rhs: %52 = load i32, i32* %temp9 * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(697) * * * * * * * * * * * * * * * CallExp::toElem: this.stream_.put(this.store_[0..5]) @ void * * * * * * * * * * * * * * * * DotVarExp::toElem: this.stream_.put @ pure nothrow @safe void(ubyte[] items) * * * * * * * * * * * * * * * * * DotVarExp::toElem: this.stream_ @ Appender!(ubyte[]) * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ PackerImpl!(Appender!(ubyte[])) * * * * * * * * * * * * * * * * * * * nested this exp * * * * * * * * * * * * * * * * * * * DtoNestedVariable for this @ msgpack-d/src/msgpack.d(697) * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.pack!(const(string)[]).pack * * * * * * * * * * * * * * * * * * * * Context: %54 = bitcast i8* %53 to %nest.pack.17* * * * * * * * * * * * * * * * * * * * * of type: %nest.pack.17 = type { %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* } * * * * * * * * * * * * * * * * * * * * Variable: this * * * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * * * Function: beginRaw * * * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * * * Addr: %this12 = getelementptr %nest.pack.17, %nest.pack.17* %54, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * * of type: %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"** * * * * * * * * * * * * * * * * * * * * Was byref, now: %55 = load %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"*, %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"** %this12, align 8 * * * * * * * * * * * * * * * * * * * * of type: %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* * * * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.stream_: * * * * * * * * * * * * * * * * * * * Value: %56 = getelementptr %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl", %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* %55, i32 0, i32 0 * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * %56 = getelementptr %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl", %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* %55, i32 0, i32 0 * * * * * * * * * * * * * * * * * Function type: pure nothrow @safe void(ubyte[] items) * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * SliceExp::toElem: this.store_[0..5] @ ubyte[] * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: this.store_ @ ubyte[11] * * * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ PackerImpl!(Appender!(ubyte[])) * * * * * * * * * * * * * * * * * * * * * nested this exp * * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for this @ msgpack-d/src/msgpack.d(697) * * * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.pack!(const(string)[]).pack * * * * * * * * * * * * * * * * * * * * * * Context: %58 = bitcast i8* %57 to %nest.pack.17* * * * * * * * * * * * * * * * * * * * * * * of type: %nest.pack.17 = type { %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* } * * * * * * * * * * * * * * * * * * * * * * Variable: this * * * * * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * * * * * Function: beginRaw * * * * * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * * * * * Addr: %this13 = getelementptr %nest.pack.17, %nest.pack.17* %58, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * * * * of type: %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"** * * * * * * * * * * * * * * * * * * * * * * Was byref, now: %59 = load %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"*, %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"** %this13, align 8 * * * * * * * * * * * * * * * * * * * * * * of type: %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* * * * * * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.store_: * * * * * * * * * * * * * * * * * * * * * Value: %60 = getelementptr %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl", %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* %59, i32 0, i32 1 * * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 5LU @ ulong * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 5LU @ ulong * * * * * * * * * * * * * * * * * * * * * value = i64 5 * * * * * IfStatement::toIR(): msgpack-d/src/msgpack.d(701) * * * * * * CallExp::toElem: empty(array) @ bool * * * * * * * VarExp::toElem: empty @ pure nothrow @nogc @property @safe bool(const(string[]) a) * * * * * * * * DtoSymbolAddress ('empty' of type 'pure nothrow @nogc @property @safe bool(const(string[]) a)') * * * * * * * * * FuncDeclaration * * * * * * * DtoCallFunction() * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (0) * * * * * * * * Function type: pure nothrow @nogc @property @safe bool(const(string[]) a) * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: array @ const(string[]) * * * * * * * * * * DtoSymbolAddress ('array' of type 'const(string[])') * * * * * * * * * * * function param * * * * * * * * * * * type: const(string[]) * * * * * * ReturnStatement::toIR(): msgpack-d/src/msgpack.d(702) * * * * * * * AddrExp::toElem: &this.packNil() @ PackerImpl!(Appender!(ubyte[]))* * * * * * * * * CallExp::toElem: this.packNil() @ PackerImpl!(Appender!(ubyte[])) * * * * * * * * * DotVarExp::toElem: this.packNil @ pure nothrow ref @trusted PackerImpl!(Appender!(ubyte[]))() * * * * * * * * * * ThisExp::toElem: this @ PackerImpl!(Appender!(ubyte[])) * * * * * * * * * * * normal this exp * * * * * * * * * DtoCallFunction() * * * * * * * * * * doing normal arguments * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* %.this_arg * * * * * * * * * * Function type: pure nothrow ref @trusted PackerImpl!(Appender!(ubyte[]))() * * * * * * * * is nothing special * * * * * * * * lval: %3 = call %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* @_D7msgpack55__T10PackerImplTS3std5array16__T8AppenderTAhZ8AppenderZ10PackerImpl7packNilMFNaNbNcNeZS7msgpack55__T10PackerImplTS3std5array16__T8AppenderTAhZ8AppenderZ10PackerImpl(%"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* %.this_arg) * * * * * * * return value is '0x1343fc20' * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(711) * * * * * * CallExp::toElem: this.beginArray(array.length) @ PackerImpl!(Appender!(ubyte[])) * * * * * * * DotVarExp::toElem: this.beginArray @ pure nothrow ref @trusted PackerImpl!(Appender!(ubyte[]))(const(ulong) length) * * * * * * * * ThisExp::toElem: this @ PackerImpl!(Appender!(ubyte[])) * * * * * * * * * normal this exp * * * * * * * DtoCallFunction() * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (1) * * * * * * * * * %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* %.this_arg * * * * * * * * Function type: pure nothrow ref @trusted PackerImpl!(Appender!(ubyte[]))(const(ulong) length) * * * * * * * * DtoArgument * * * * * * * * * ArrayLengthExp::toElem: array.length @ const(ulong) * * * * * * * * * * VarExp::toElem: array @ const(string[]) * * * * * * * * * * * DtoSymbolAddress ('array' of type 'const(string[])') * * * * * * * * * * * * function param * * * * * * * * * * * * type: const(string[]) * * * * * * * * * * DtoArrayLen * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(712) * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(712) * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(712) * * * * * * * * DeclarationExp::toElem: const(string)[] __aggr2667 = array[]; | T=void * * * * * * * * * DtoDeclarationExp: __aggr2667 * * * * * * * * * * VarDeclaration * * * * * * * * * * DtoVarDeclaration(vdtype = const(string)[]) * * * * * * * * * * * llvm value for decl: %__aggr2667 = alloca { i64, { i64, i8* }* }, align 8 * * * * * * * * * * * expression initializer * * * * * * * * * * * AssignExp::toElem: __aggr2667 = array[] | (const(string)[])(const(string)[] = const(string)[]) * * * * * * * * * * * * VarExp::toElem: __aggr2667 @ const(string)[] * * * * * * * * * * * * * DtoSymbolAddress ('__aggr2667' of type 'const(string)[]') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * SliceExp::toElem: array[] @ const(string)[] * * * * * * * * * * * * * VarExp::toElem: array @ const(string[]) * * * * * * * * * * * * * * DtoSymbolAddress ('array' of type 'const(string[])') * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * type: const(string[]) * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * SetArray * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(712) * * * * * * * * DeclarationExp::toElem: ulong __key2668 = 0LU; | T=void * * * * * * * * * DtoDeclarationExp: __key2668 * * * * * * * * * * VarDeclaration * * * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * * * llvm value for decl: %__key2668 = alloca i64, align 8 * * * * * * * * * * * expression initializer * * * * * * * * * * * AssignExp::toElem: __key2668 = 0LU | (ulong)(ulong = ulong) * * * * * * * * * * * * VarExp::toElem: __key2668 @ ulong * * * * * * * * * * * * * DtoSymbolAddress ('__key2668' of type 'ulong') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * lhs: %__key2668 = alloca i64, align 8 * * * * * * * * * * * * * rhs: i64 0 * * * * * * * ForStatement::toIR(): msgpack-d/src/msgpack.d(712) * * * * * * * * CmpExp::toElem: __key2668 < __aggr2667.length @ bool * * * * * * * * * VarExp::toElem: __key2668 @ ulong * * * * * * * * * * DtoSymbolAddress ('__key2668' of type 'ulong') * * * * * * * * * * * a normal variable * * * * * * * * * ArrayLengthExp::toElem: __aggr2667.length @ ulong * * * * * * * * * * VarExp::toElem: __aggr2667 @ const(string)[] * * * * * * * * * * * DtoSymbolAddress ('__aggr2667' of type 'const(string)[]') * * * * * * * * * * * * a normal variable * * * * * * * * * * DtoArrayLen * * * * * * * * * type 1: %11 = load i64, i64* %__key2668 * * * * * * * * * type 2: %.len2 = load i64, i64* %10 * * * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(712) * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(712) * * * * * * * * * * DeclarationExp::toElem: const const(string) elem = __aggr2667[__key2668]; | T=void * * * * * * * * * * * DtoDeclarationExp: elem * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * DtoVarDeclaration(vdtype = const(string)) * * * * * * * * * * * * * llvm value for decl: %elem = alloca { i64, i8* }, align 8 * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * AssignExp::toElem: elem = __aggr2667[__key2668] | (const(string))(const(string) = const(string)) * * * * * * * * * * * * * * VarExp::toElem: elem @ const(string) * * * * * * * * * * * * * * * DtoSymbolAddress ('elem' of type 'const(string)') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * IndexExp::toElem: __aggr2667[__key2668] @ const(string) * * * * * * * * * * * * * * * VarExp::toElem: __aggr2667 @ const(string)[] * * * * * * * * * * * * * * * * DtoSymbolAddress ('__aggr2667' of type 'const(string)[]') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * VarExp::toElem: __key2668 @ ulong * * * * * * * * * * * * * * * * DtoSymbolAddress ('__key2668' of type 'ulong') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * SetArray * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(713) * * * * * * * * * * CallExp::toElem: this.pack(elem) @ PackerImpl!(Appender!(ubyte[])) * * * * * * * * * * * DotVarExp::toElem: this.pack @ pure nothrow ref @trusted PackerImpl!(Appender!(ubyte[]))(const(string) array) * * * * * * * * * * * * ThisExp::toElem: this @ PackerImpl!(Appender!(ubyte[])) * * * * * * * * * * * * * normal this exp * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* %.this_arg * * * * * * * * * * * * Function type: pure nothrow ref @trusted PackerImpl!(Appender!(ubyte[]))(const(string) array) * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * VarExp::toElem: elem @ const(string) * * * * * * * * * * * * * * DtoSymbolAddress ('elem' of type 'const(string)') * * * * * * * * * * * * * * * a normal variable * * * * * * * * AddAssignExp::toElem: __key2668 += 1LU @ ulong * * * * * * * * * Caching l-value of __key2668 += 1LU => __key2668 * * * * * * * * * * VarExp::toElem: __key2668 @ ulong * * * * * * * * * * * DtoSymbolAddress ('__key2668' of type 'ulong') * * * * * * * * * * * * a normal variable * * * * * * * * * AddExp::toElem: __key2668 + 1LU @ ulong * * * * * * * * * * VarExp::toElem: __key2668 @ ulong * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * value = i64 1 * * * * * * * * * DtoAssign() * * * * * * * * * * lhs: %__key2668 = alloca i64, align 8 * * * * * * * * * * rhs: %23 = add i64 %22, 1 * * * * * ReturnStatement::toIR(): msgpack-d/src/msgpack.d(716) * * * * * * AddrExp::toElem: &this @ PackerImpl!(Appender!(ubyte[]))* * * * * * * * ThisExp::toElem: this @ PackerImpl!(Appender!(ubyte[])) * * * * * * * * normal this exp * * * * * * * is nothing special * * * * * * * lval: %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* %.this_arg * * * * * * return value is '0x133e10e0' * TemplateInstance::codegen: 'msgpack.isByte!(const(string))' * * VarDeclaration::codegen(): 'msgpack.isByte!(const(string)).isByte' * * * DtoResolveVariable(msgpack.isByte!(const(string)).isByte) * TemplateInstance::codegen: 'msgpack.getFieldName!(const(AutocompleteRequest), 2LU)' * * Ignoring Dsymbol::codegen for __anonymous * * Ignoring Dsymbol::codegen for * * Ignoring Dsymbol::codegen for * * VarDeclaration::codegen(): 'msgpack.getFieldName!(const(AutocompleteRequest), 2LU).getFieldName' * * * DtoResolveVariable(msgpack.getFieldName!(const(AutocompleteRequest), 2LU).getFieldName) * TemplateInstance::codegen: 'msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.pack!(const(ubyte)[])' * * DtoDefineFunction(msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.pack!(const(ubyte)[]).pack): msgpack-d/src/msgpack.d(674) * * * Doing function body for: pack * * * DtoCreateNestedContext for pack * * * * DtoCreateNestedContextType for msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.pack!(const(ubyte)[]).pack * * * * * has nested frame * * * * * Function pack has depth 0 * * * * * Nested var 'this' of type %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* * * * * * frameType = %nest.pack.18 = type { %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* } * * * * nested param: this * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(675) * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(676) * * * * * * DeclarationExp::toElem: alias U = const(ubyte); | T=void * * * * * * * DtoDeclarationExp: U * * * * * * * * Ignoring Symbol: alias * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(681) * * * * * * DeclarationExp::toElem: pure nothrow @system void beginRaw(const(ulong) length) { if (length < 32LU) { const const(ubyte) temp = cast(const(ubyte))(160 | cast(int)cast(ubyte)length); this.stream_.put(take8from(temp)); } else if (length < 65536LU) { const const(ushort) temp = convertEndianTo(length); this.store_[0] = cast(ubyte)218u; *cast(ushort*)&this.store_[1] = temp; this.stream_.put(this.store_[0..3]); } else { const const(uint) temp = convertEndianTo(length); this.store_[0] = cast(ubyte)219u; *cast(uint*)&this.store_[1] = temp; this.stream_.put(this.store_[0..5]); } } | T=void * * * * * * * DtoDeclarationExp: beginRaw * * * * * * * * FuncDeclaration * * * * * * * * DtoDefineFunction(msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.pack!(const(ubyte)[]).pack.beginRaw): msgpack-d/src/msgpack.d(681) * * * * * * * * * DtoFunctionType(pure nothrow @system void(const(ulong) length)) * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: void (i8*, i64) * * * * * * * * * DtoResolveFunction(msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.pack!(const(ubyte)[]).pack.beginRaw): msgpack-d/src/msgpack.d(681) * * * * * * * * * * DtoDeclareFunction(msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.pack!(const(ubyte)[]).pack.beginRaw): msgpack-d/src/msgpack.d(681) * * * * * * * * * * * DtoFunctionType(pure nothrow @system void(const(ulong) length)) * * * * * * * * * * * func = declare void @_D7msgpack55__T10PackerImplTS3std5array16__T8AppenderTAhZ8AppenderZ10PackerImpl13__T4packTAxhZ4packMFNcNexAhZ8beginRawMFNaNbxmZv(i8*, i64) * * * * * * * * * Doing function body for: beginRaw * * * * * * * * * DtoCreateNestedContext for beginRaw * * * * * * * * * * DtoCreateNestedContextType for msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.pack!(const(ubyte)[]).pack.beginRaw * * * * * * * * * * * DtoCreateNestedContextType for msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.pack!(const(ubyte)[]).pack * * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * * IfStatement::toIR(): msgpack-d/src/msgpack.d(683) * * * * * * * * * * * CmpExp::toElem: length < 32LU @ bool * * * * * * * * * * * * VarExp::toElem: length @ ulong * * * * * * * * * * * * * DtoSymbolAddress ('length' of type 'const(ulong)') * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * type: const(ulong) * * * * * * * * * * * * IntegerExp::toElem: 32LU @ ulong * * * * * * * * * * * * * IntegerExp::toConstElem: 32LU @ ulong * * * * * * * * * * * * * * value = i64 32 * * * * * * * * * * * * type 1: %1 = load i64, i64* %length * * * * * * * * * * * * type 2: i64 32 * * * * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(683) * * * * * * * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(683) * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(684) * * * * * * * * * * * * * * DeclarationExp::toElem: const const(ubyte) temp = cast(const(ubyte))(160 | cast(int)cast(ubyte)length); | T=void * * * * * * * * * * * * * * * DtoDeclarationExp: temp * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = const(ubyte)) * * * * * * * * * * * * * * * * * llvm value for decl: %temp = alloca i8, align 1 * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * AssignExp::toElem: temp = cast(const(ubyte))(160 | cast(int)cast(ubyte)length) | (const(ubyte))(const(ubyte) = const(ubyte)) * * * * * * * * * * * * * * * * * * VarExp::toElem: temp @ const(ubyte) * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('temp' of type 'const(ubyte)') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * CastExp::toElem: cast(const(ubyte))(160 | cast(int)cast(ubyte)length) @ const(ubyte) * * * * * * * * * * * * * * * * * * * OrExp::toElem: 160 | cast(int)cast(ubyte)length @ int * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 160 @ int * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 160 @ int * * * * * * * * * * * * * * * * * * * * * * value = i32 160 * * * * * * * * * * * * * * * * * * * * CastExp::toElem: cast(int)cast(ubyte)length @ int * * * * * * * * * * * * * * * * * * * * * CastExp::toElem: cast(ubyte)length @ ubyte * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: length @ const(ulong) * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('length' of type 'const(ulong)') * * * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * * * type: const(ulong) * * * * * * * * * * * * * * * * * * * * * * Casting from 'const(ulong)' to 'ubyte' * * * * * * * * * * * * * * * * * * * * * Casting from 'ubyte' to 'int' * * * * * * * * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * * * * * * * * Casting from 'int' to 'const(ubyte)' * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * lhs: %temp = alloca i8, align 1 * * * * * * * * * * * * * * * * * * * rhs: %7 = trunc i32 %6 to i8 * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(685) * * * * * * * * * * * * * * CallExp::toElem: this.stream_.put(take8from(temp)) @ void * * * * * * * * * * * * * * * DotVarExp::toElem: this.stream_.put @ pure nothrow @safe void(ubyte item) * * * * * * * * * * * * * * * * DotVarExp::toElem: this.stream_ @ Appender!(ubyte[]) * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ PackerImpl!(Appender!(ubyte[])) * * * * * * * * * * * * * * * * * * nested this exp * * * * * * * * * * * * * * * * * * DtoNestedVariable for this @ msgpack-d/src/msgpack.d(685) * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.pack!(const(ubyte)[]).pack * * * * * * * * * * * * * * * * * * * Context: %9 = bitcast i8* %8 to %nest.pack.18* * * * * * * * * * * * * * * * * * * * of type: %nest.pack.18 = type { %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* } * * * * * * * * * * * * * * * * * * * Variable: this * * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * * Function: beginRaw * * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * * Addr: %this = getelementptr %nest.pack.18, %nest.pack.18* %9, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * of type: %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"** * * * * * * * * * * * * * * * * * * * Was byref, now: %10 = load %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"*, %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"** %this, align 8 * * * * * * * * * * * * * * * * * * * of type: %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* * * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.stream_: * * * * * * * * * * * * * * * * * * Value: %11 = getelementptr %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl", %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* %10, i32 0, i32 0 * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * %11 = getelementptr %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl", %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* %10, i32 0, i32 0 * * * * * * * * * * * * * * * * Function type: pure nothrow @safe void(ubyte item) * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * CallExp::toElem: take8from(temp) @ ubyte * * * * * * * * * * * * * * * * * * VarExp::toElem: take8from @ pure nothrow @nogc @trusted ubyte(const(ubyte) value) * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('take8from' of type 'pure nothrow @nogc @trusted ubyte(const(ubyte) value)') * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @trusted ubyte(const(ubyte) value) * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * VarExp::toElem: temp @ const(ubyte) * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('temp' of type 'const(ubyte)') * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * IfStatement::toIR(): msgpack-d/src/msgpack.d(686) * * * * * * * * * * * * CmpExp::toElem: length < 65536LU @ bool * * * * * * * * * * * * * VarExp::toElem: length @ ulong * * * * * * * * * * * * * * DtoSymbolAddress ('length' of type 'const(ulong)') * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * type: const(ulong) * * * * * * * * * * * * * IntegerExp::toElem: 65536LU @ ulong * * * * * * * * * * * * * * IntegerExp::toConstElem: 65536LU @ ulong * * * * * * * * * * * * * * * value = i64 65536 * * * * * * * * * * * * * type 1: %14 = load i64, i64* %length * * * * * * * * * * * * * type 2: i64 65536 * * * * * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(686) * * * * * * * * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(686) * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(687) * * * * * * * * * * * * * * * DeclarationExp::toElem: const const(ushort) temp = convertEndianTo(length); | T=void * * * * * * * * * * * * * * * * DtoDeclarationExp: temp * * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = const(ushort)) * * * * * * * * * * * * * * * * * * llvm value for decl: %temp4 = alloca i16, align 2 * * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * * AssignExp::toElem: temp = convertEndianTo(length) | (const(ushort))(const(ushort) = const(ushort)) * * * * * * * * * * * * * * * * * * * VarExp::toElem: temp @ const(ushort) * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('temp' of type 'const(ushort)') * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * CallExp::toElem: convertEndianTo(length) @ const(ushort) * * * * * * * * * * * * * * * * * * * * VarExp::toElem: convertEndianTo @ pure nothrow @nogc @trusted ushort(const(ulong) value) * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('convertEndianTo' of type 'pure nothrow @nogc @trusted ushort(const(ulong) value)') * * * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @trusted ushort(const(ulong) value) * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: length @ const(ulong) * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('length' of type 'const(ulong)') * * * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * * * type: const(ulong) * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * lhs: %temp4 = alloca i16, align 2 * * * * * * * * * * * * * * * * * * * * rhs: %17 = call zeroext i16 @_D7msgpack28__T15convertEndianToVii16TmZ15convertEndianToFNaNbNiNexmZt(i64 %16) * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(689) * * * * * * * * * * * * * * * AssignExp::toElem: this.store_[0] = cast(ubyte)218u | (ubyte)(ubyte = ubyte) * * * * * * * * * * * * * * * * IndexExp::toElem: this.store_[0] @ ubyte * * * * * * * * * * * * * * * * * DotVarExp::toElem: this.store_ @ ubyte[11] * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ PackerImpl!(Appender!(ubyte[])) * * * * * * * * * * * * * * * * * * * nested this exp * * * * * * * * * * * * * * * * * * * DtoNestedVariable for this @ msgpack-d/src/msgpack.d(689) * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.pack!(const(ubyte)[]).pack * * * * * * * * * * * * * * * * * * * * Context: %19 = bitcast i8* %18 to %nest.pack.18* * * * * * * * * * * * * * * * * * * * * of type: %nest.pack.18 = type { %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* } * * * * * * * * * * * * * * * * * * * * Variable: this * * * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * * * Function: beginRaw * * * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * * * Addr: %this5 = getelementptr %nest.pack.18, %nest.pack.18* %19, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * * of type: %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"** * * * * * * * * * * * * * * * * * * * * Was byref, now: %20 = load %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"*, %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"** %this5, align 8 * * * * * * * * * * * * * * * * * * * * of type: %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* * * * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.store_: * * * * * * * * * * * * * * * * * * * Value: %21 = getelementptr %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl", %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* %20, i32 0, i32 1 * * * * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * * * * IntegerExp::toElem: cast(ubyte)218u @ ubyte * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: cast(ubyte)218u @ ubyte * * * * * * * * * * * * * * * * * * value = i8 -38 * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * lhs: %22 = getelementptr [11 x i8], [11 x i8]* %21, i32 0, i64 0 * * * * * * * * * * * * * * * * * rhs: i8 -38 * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(690) * * * * * * * * * * * * * * * AssignExp::toElem: *cast(ushort*)&this.store_[1] = temp | (ushort)(ushort = ushort) * * * * * * * * * * * * * * * * PtrExp::toElem: *cast(ushort*)&this.store_[1] @ ushort * * * * * * * * * * * * * * * * * CastExp::toElem: cast(ushort*)&this.store_[1] @ ushort* * * * * * * * * * * * * * * * * * * AddrExp::toElem: &this.store_[1] @ ubyte* * * * * * * * * * * * * * * * * * * * IndexExp::toElem: this.store_[1] @ ubyte * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: this.store_ @ ubyte[11] * * * * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ PackerImpl!(Appender!(ubyte[])) * * * * * * * * * * * * * * * * * * * * * * nested this exp * * * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for this @ msgpack-d/src/msgpack.d(690) * * * * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.pack!(const(ubyte)[]).pack * * * * * * * * * * * * * * * * * * * * * * * Context: %24 = bitcast i8* %23 to %nest.pack.18* * * * * * * * * * * * * * * * * * * * * * * * of type: %nest.pack.18 = type { %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* } * * * * * * * * * * * * * * * * * * * * * * * Variable: this * * * * * * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * * * * * * Function: beginRaw * * * * * * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * * * * * * Addr: %this6 = getelementptr %nest.pack.18, %nest.pack.18* %24, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * * * * * of type: %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"** * * * * * * * * * * * * * * * * * * * * * * * Was byref, now: %25 = load %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"*, %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"** %this6, align 8 * * * * * * * * * * * * * * * * * * * * * * * of type: %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* * * * * * * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.store_: * * * * * * * * * * * * * * * * * * * * * * Value: %26 = getelementptr %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl", %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* %25, i32 0, i32 1 * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * * * * * * * is nothing special * * * * * * * * * * * * * * * * * * * lval: %27 = getelementptr [11 x i8], [11 x i8]* %26, i32 0, i64 1 * * * * * * * * * * * * * * * * * * Casting from 'ubyte*' to 'ushort*' * * * * * * * * * * * * * * * * * * * src: %27 = getelementptr [11 x i8], [11 x i8]* %26, i32 0, i64 1 * * * * * * * * * * * * * * * * * * * to type: i16* * * * * * * * * * * * * * * * * VarExp::toElem: temp @ ushort * * * * * * * * * * * * * * * * * DtoSymbolAddress ('temp' of type 'const(ushort)') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * lhs: %28 = bitcast i8* %27 to i16* * * * * * * * * * * * * * * * * * rhs: %29 = load i16, i16* %temp4 * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(691) * * * * * * * * * * * * * * * CallExp::toElem: this.stream_.put(this.store_[0..3]) @ void * * * * * * * * * * * * * * * * DotVarExp::toElem: this.stream_.put @ pure nothrow @safe void(ubyte[] items) * * * * * * * * * * * * * * * * * DotVarExp::toElem: this.stream_ @ Appender!(ubyte[]) * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ PackerImpl!(Appender!(ubyte[])) * * * * * * * * * * * * * * * * * * * nested this exp * * * * * * * * * * * * * * * * * * * DtoNestedVariable for this @ msgpack-d/src/msgpack.d(691) * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.pack!(const(ubyte)[]).pack * * * * * * * * * * * * * * * * * * * * Context: %31 = bitcast i8* %30 to %nest.pack.18* * * * * * * * * * * * * * * * * * * * * of type: %nest.pack.18 = type { %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* } * * * * * * * * * * * * * * * * * * * * Variable: this * * * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * * * Function: beginRaw * * * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * * * Addr: %this7 = getelementptr %nest.pack.18, %nest.pack.18* %31, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * * of type: %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"** * * * * * * * * * * * * * * * * * * * * Was byref, now: %32 = load %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"*, %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"** %this7, align 8 * * * * * * * * * * * * * * * * * * * * of type: %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* * * * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.stream_: * * * * * * * * * * * * * * * * * * * Value: %33 = getelementptr %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl", %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* %32, i32 0, i32 0 * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * %33 = getelementptr %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl", %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* %32, i32 0, i32 0 * * * * * * * * * * * * * * * * * Function type: pure nothrow @safe void(ubyte[] items) * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * SliceExp::toElem: this.store_[0..3] @ ubyte[] * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: this.store_ @ ubyte[11] * * * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ PackerImpl!(Appender!(ubyte[])) * * * * * * * * * * * * * * * * * * * * * nested this exp * * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for this @ msgpack-d/src/msgpack.d(691) * * * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.pack!(const(ubyte)[]).pack * * * * * * * * * * * * * * * * * * * * * * Context: %35 = bitcast i8* %34 to %nest.pack.18* * * * * * * * * * * * * * * * * * * * * * * of type: %nest.pack.18 = type { %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* } * * * * * * * * * * * * * * * * * * * * * * Variable: this * * * * * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * * * * * Function: beginRaw * * * * * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * * * * * Addr: %this8 = getelementptr %nest.pack.18, %nest.pack.18* %35, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * * * * of type: %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"** * * * * * * * * * * * * * * * * * * * * * * Was byref, now: %36 = load %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"*, %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"** %this8, align 8 * * * * * * * * * * * * * * * * * * * * * * of type: %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* * * * * * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.store_: * * * * * * * * * * * * * * * * * * * * * Value: %37 = getelementptr %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl", %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* %36, i32 0, i32 1 * * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 3LU @ ulong * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 3LU @ ulong * * * * * * * * * * * * * * * * * * * * * value = i64 3 * * * * * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(692) * * * * * * * * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(692) * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(693) * * * * * * * * * * * * * * * DeclarationExp::toElem: const const(uint) temp = convertEndianTo(length); | T=void * * * * * * * * * * * * * * * * DtoDeclarationExp: temp * * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = const(uint)) * * * * * * * * * * * * * * * * * * llvm value for decl: %temp9 = alloca i32, align 4 * * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * * AssignExp::toElem: temp = convertEndianTo(length) | (const(uint))(const(uint) = const(uint)) * * * * * * * * * * * * * * * * * * * VarExp::toElem: temp @ const(uint) * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('temp' of type 'const(uint)') * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * CallExp::toElem: convertEndianTo(length) @ const(uint) * * * * * * * * * * * * * * * * * * * * VarExp::toElem: convertEndianTo @ pure nothrow @nogc @trusted uint(const(ulong) value) * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('convertEndianTo' of type 'pure nothrow @nogc @trusted uint(const(ulong) value)') * * * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @trusted uint(const(ulong) value) * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: length @ const(ulong) * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('length' of type 'const(ulong)') * * * * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * * * * type: const(ulong) * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * lhs: %temp9 = alloca i32, align 4 * * * * * * * * * * * * * * * * * * * * rhs: %40 = call i32 @_D7msgpack28__T15convertEndianToVii32TmZ15convertEndianToFNaNbNiNexmZk(i64 %39) * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(695) * * * * * * * * * * * * * * * AssignExp::toElem: this.store_[0] = cast(ubyte)219u | (ubyte)(ubyte = ubyte) * * * * * * * * * * * * * * * * IndexExp::toElem: this.store_[0] @ ubyte * * * * * * * * * * * * * * * * * DotVarExp::toElem: this.store_ @ ubyte[11] * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ PackerImpl!(Appender!(ubyte[])) * * * * * * * * * * * * * * * * * * * nested this exp * * * * * * * * * * * * * * * * * * * DtoNestedVariable for this @ msgpack-d/src/msgpack.d(695) * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.pack!(const(ubyte)[]).pack * * * * * * * * * * * * * * * * * * * * Context: %42 = bitcast i8* %41 to %nest.pack.18* * * * * * * * * * * * * * * * * * * * * of type: %nest.pack.18 = type { %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* } * * * * * * * * * * * * * * * * * * * * Variable: this * * * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * * * Function: beginRaw * * * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * * * Addr: %this10 = getelementptr %nest.pack.18, %nest.pack.18* %42, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * * of type: %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"** * * * * * * * * * * * * * * * * * * * * Was byref, now: %43 = load %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"*, %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"** %this10, align 8 * * * * * * * * * * * * * * * * * * * * of type: %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* * * * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.store_: * * * * * * * * * * * * * * * * * * * Value: %44 = getelementptr %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl", %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* %43, i32 0, i32 1 * * * * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * * * * IntegerExp::toElem: cast(ubyte)219u @ ubyte * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: cast(ubyte)219u @ ubyte * * * * * * * * * * * * * * * * * * value = i8 -37 * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * lhs: %45 = getelementptr [11 x i8], [11 x i8]* %44, i32 0, i64 0 * * * * * * * * * * * * * * * * * rhs: i8 -37 * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(696) * * * * * * * * * * * * * * * AssignExp::toElem: *cast(uint*)&this.store_[1] = temp | (uint)(uint = uint) * * * * * * * * * * * * * * * * PtrExp::toElem: *cast(uint*)&this.store_[1] @ uint * * * * * * * * * * * * * * * * * CastExp::toElem: cast(uint*)&this.store_[1] @ uint* * * * * * * * * * * * * * * * * * * AddrExp::toElem: &this.store_[1] @ ubyte* * * * * * * * * * * * * * * * * * * * IndexExp::toElem: this.store_[1] @ ubyte * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: this.store_ @ ubyte[11] * * * * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ PackerImpl!(Appender!(ubyte[])) * * * * * * * * * * * * * * * * * * * * * * nested this exp * * * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for this @ msgpack-d/src/msgpack.d(696) * * * * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.pack!(const(ubyte)[]).pack * * * * * * * * * * * * * * * * * * * * * * * Context: %47 = bitcast i8* %46 to %nest.pack.18* * * * * * * * * * * * * * * * * * * * * * * * of type: %nest.pack.18 = type { %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* } * * * * * * * * * * * * * * * * * * * * * * * Variable: this * * * * * * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * * * * * * Function: beginRaw * * * * * * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * * * * * * Addr: %this11 = getelementptr %nest.pack.18, %nest.pack.18* %47, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * * * * * of type: %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"** * * * * * * * * * * * * * * * * * * * * * * * Was byref, now: %48 = load %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"*, %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"** %this11, align 8 * * * * * * * * * * * * * * * * * * * * * * * of type: %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* * * * * * * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.store_: * * * * * * * * * * * * * * * * * * * * * * Value: %49 = getelementptr %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl", %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* %48, i32 0, i32 1 * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * * * * * * * is nothing special * * * * * * * * * * * * * * * * * * * lval: %50 = getelementptr [11 x i8], [11 x i8]* %49, i32 0, i64 1 * * * * * * * * * * * * * * * * * * Casting from 'ubyte*' to 'uint*' * * * * * * * * * * * * * * * * * * * src: %50 = getelementptr [11 x i8], [11 x i8]* %49, i32 0, i64 1 * * * * * * * * * * * * * * * * * * * to type: i32* * * * * * * * * * * * * * * * * VarExp::toElem: temp @ uint * * * * * * * * * * * * * * * * * DtoSymbolAddress ('temp' of type 'const(uint)') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * lhs: %51 = bitcast i8* %50 to i32* * * * * * * * * * * * * * * * * * rhs: %52 = load i32, i32* %temp9 * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(697) * * * * * * * * * * * * * * * CallExp::toElem: this.stream_.put(this.store_[0..5]) @ void * * * * * * * * * * * * * * * * DotVarExp::toElem: this.stream_.put @ pure nothrow @safe void(ubyte[] items) * * * * * * * * * * * * * * * * * DotVarExp::toElem: this.stream_ @ Appender!(ubyte[]) * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ PackerImpl!(Appender!(ubyte[])) * * * * * * * * * * * * * * * * * * * nested this exp * * * * * * * * * * * * * * * * * * * DtoNestedVariable for this @ msgpack-d/src/msgpack.d(697) * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.pack!(const(ubyte)[]).pack * * * * * * * * * * * * * * * * * * * * Context: %54 = bitcast i8* %53 to %nest.pack.18* * * * * * * * * * * * * * * * * * * * * of type: %nest.pack.18 = type { %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* } * * * * * * * * * * * * * * * * * * * * Variable: this * * * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * * * Function: beginRaw * * * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * * * Addr: %this12 = getelementptr %nest.pack.18, %nest.pack.18* %54, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * * of type: %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"** * * * * * * * * * * * * * * * * * * * * Was byref, now: %55 = load %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"*, %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"** %this12, align 8 * * * * * * * * * * * * * * * * * * * * of type: %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* * * * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.stream_: * * * * * * * * * * * * * * * * * * * Value: %56 = getelementptr %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl", %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* %55, i32 0, i32 0 * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * %56 = getelementptr %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl", %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* %55, i32 0, i32 0 * * * * * * * * * * * * * * * * * Function type: pure nothrow @safe void(ubyte[] items) * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * SliceExp::toElem: this.store_[0..5] @ ubyte[] * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: this.store_ @ ubyte[11] * * * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ PackerImpl!(Appender!(ubyte[])) * * * * * * * * * * * * * * * * * * * * * nested this exp * * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for this @ msgpack-d/src/msgpack.d(697) * * * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.pack!(const(ubyte)[]).pack * * * * * * * * * * * * * * * * * * * * * * Context: %58 = bitcast i8* %57 to %nest.pack.18* * * * * * * * * * * * * * * * * * * * * * * of type: %nest.pack.18 = type { %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* } * * * * * * * * * * * * * * * * * * * * * * Variable: this * * * * * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * * * * * Function: beginRaw * * * * * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * * * * * Addr: %this13 = getelementptr %nest.pack.18, %nest.pack.18* %58, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * * * * of type: %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"** * * * * * * * * * * * * * * * * * * * * * * Was byref, now: %59 = load %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"*, %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"** %this13, align 8 * * * * * * * * * * * * * * * * * * * * * * of type: %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* * * * * * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.store_: * * * * * * * * * * * * * * * * * * * * * Value: %60 = getelementptr %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl", %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* %59, i32 0, i32 1 * * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 5LU @ ulong * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 5LU @ ulong * * * * * * * * * * * * * * * * * * * * * value = i64 5 * * * * * IfStatement::toIR(): msgpack-d/src/msgpack.d(701) * * * * * * CallExp::toElem: empty(array) @ bool * * * * * * * VarExp::toElem: empty @ pure nothrow @nogc @property @safe bool(const(ubyte[]) a) * * * * * * * * DtoSymbolAddress ('empty' of type 'pure nothrow @nogc @property @safe bool(const(ubyte[]) a)') * * * * * * * * * FuncDeclaration * * * * * * * DtoCallFunction() * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (0) * * * * * * * * Function type: pure nothrow @nogc @property @safe bool(const(ubyte[]) a) * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: array @ const(ubyte[]) * * * * * * * * * * DtoSymbolAddress ('array' of type 'const(ubyte[])') * * * * * * * * * * * function param * * * * * * * * * * * type: const(ubyte[]) * * * * * * ReturnStatement::toIR(): msgpack-d/src/msgpack.d(702) * * * * * * * AddrExp::toElem: &this.packNil() @ PackerImpl!(Appender!(ubyte[]))* * * * * * * * * CallExp::toElem: this.packNil() @ PackerImpl!(Appender!(ubyte[])) * * * * * * * * * DotVarExp::toElem: this.packNil @ pure nothrow ref @trusted PackerImpl!(Appender!(ubyte[]))() * * * * * * * * * * ThisExp::toElem: this @ PackerImpl!(Appender!(ubyte[])) * * * * * * * * * * * normal this exp * * * * * * * * * DtoCallFunction() * * * * * * * * * * doing normal arguments * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* %.this_arg * * * * * * * * * * Function type: pure nothrow ref @trusted PackerImpl!(Appender!(ubyte[]))() * * * * * * * * is nothing special * * * * * * * * lval: %3 = call %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* @_D7msgpack55__T10PackerImplTS3std5array16__T8AppenderTAhZ8AppenderZ10PackerImpl7packNilMFNaNbNcNeZS7msgpack55__T10PackerImplTS3std5array16__T8AppenderTAhZ8AppenderZ10PackerImpl(%"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* %.this_arg) * * * * * * * return value is '0x13457b50' * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(706) * * * * * * DeclarationExp::toElem: ubyte[] raw = array; | T=void * * * * * * * DtoDeclarationExp: raw * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = ubyte[]) * * * * * * * * * llvm value for decl: %raw = alloca { i64, i8* }, align 8 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: raw = array | (ubyte[])(ubyte[] = ubyte[]) * * * * * * * * * * VarExp::toElem: raw @ ubyte[] * * * * * * * * * * * DtoSymbolAddress ('raw' of type 'ubyte[]') * * * * * * * * * * * * a normal variable * * * * * * * * * * VarExp::toElem: array @ ubyte[] * * * * * * * * * * * DtoSymbolAddress ('array' of type 'const(ubyte[])') * * * * * * * * * * * * function param * * * * * * * * * * * * type: const(ubyte[]) * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * DtoAssign() * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * SetArray * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(708) * * * * * * CallExp::toElem: beginRaw(raw.length) @ void * * * * * * * VarExp::toElem: beginRaw @ pure nothrow @system void(const(ulong) length) * * * * * * * * DtoSymbolAddress ('beginRaw' of type 'pure nothrow @system void(const(ulong) length)') * * * * * * * * * FuncDeclaration * * * * * * * DtoCallFunction() * * * * * * * * Building type: pure nothrow @system void(const(ulong) length) * * * * * * * * * DtoFunctionType(pure nothrow @system void(const(ulong) length)) * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: void (i64) * * * * * * * * DtoNestedContext for msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.pack!(const(ubyte)[]).pack.beginRaw * * * * * * * * * DtoCreateNestedContextType for msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.pack!(const(ubyte)[]).pack.beginRaw * * * * * * * * * Parent frame is from pack * * * * * * * * * Current function is pack * * * * * * * * * Context is from pack * * * * * * * * * Needed depth: 0 * * * * * * * * * Context depth: 0 * * * * * * * * * Calling sibling function or directly nested function * * * * * * * * * result = %.frame = alloca %nest.pack.18, align 8 * * * * * * * * * of type %nest.pack.18* * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (1) * * * * * * * * * %8 = bitcast %nest.pack.18* %.frame to i8* * * * * * * * * Function type: pure nothrow @system void(const(ulong) length) * * * * * * * * DtoArgument * * * * * * * * * ArrayLengthExp::toElem: raw.length @ const(ulong) * * * * * * * * * * VarExp::toElem: raw @ ubyte[] * * * * * * * * * * * DtoSymbolAddress ('raw' of type 'ubyte[]') * * * * * * * * * * * * a normal variable * * * * * * * * * * DtoArrayLen * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(709) * * * * * * CallExp::toElem: this.stream_.put(raw) @ void * * * * * * * DotVarExp::toElem: this.stream_.put @ pure nothrow @safe void(ubyte[] items) * * * * * * * * DotVarExp::toElem: this.stream_ @ Appender!(ubyte[]) * * * * * * * * * ThisExp::toElem: this @ PackerImpl!(Appender!(ubyte[])) * * * * * * * * * * normal this exp * * * * * * * * * Indexing aggregate field msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.stream_: * * * * * * * * * * Value: %10 = getelementptr %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl", %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* %.this_arg, i32 0, i32 0 * * * * * * * DtoCallFunction() * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (1) * * * * * * * * * %10 = getelementptr %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl", %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* %.this_arg, i32 0, i32 0 * * * * * * * * Function type: pure nothrow @safe void(ubyte[] items) * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: raw @ ubyte[] * * * * * * * * * * DtoSymbolAddress ('raw' of type 'ubyte[]') * * * * * * * * * * * a normal variable * * * * * ReturnStatement::toIR(): msgpack-d/src/msgpack.d(716) * * * * * * AddrExp::toElem: &this @ PackerImpl!(Appender!(ubyte[]))* * * * * * * * ThisExp::toElem: this @ PackerImpl!(Appender!(ubyte[])) * * * * * * * * normal this exp * * * * * * * is nothing special * * * * * * * lval: %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* %.this_arg * * * * * * return value is '0x133e56f0' * TemplateInstance::codegen: 'msgpack.isByte!(const(ubyte))' * * VarDeclaration::codegen(): 'msgpack.isByte!(const(ubyte)).isByte' * * * DtoResolveVariable(msgpack.isByte!(const(ubyte)).isByte) * TemplateInstance::codegen: 'msgpack.getFieldName!(const(AutocompleteRequest), 3LU)' * * Ignoring Dsymbol::codegen for __anonymous * * Ignoring Dsymbol::codegen for * * Ignoring Dsymbol::codegen for * * VarDeclaration::codegen(): 'msgpack.getFieldName!(const(AutocompleteRequest), 3LU).getFieldName' * * * DtoResolveVariable(msgpack.getFieldName!(const(AutocompleteRequest), 3LU).getFieldName) * TemplateInstance::codegen: 'msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.pack!ulong' * * DtoDefineFunction(msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.pack!ulong.pack): msgpack-d/src/msgpack.d(401) * * * Doing function body for: pack * * * DtoCreateNestedContext for pack * * * * DtoCreateNestedContextType for msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.pack!ulong.pack * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(402) * * * * * IfStatement::toIR(): msgpack-d/src/msgpack.d(435) * * * * * * CmpExp::toElem: value < 256LU @ bool * * * * * * * VarExp::toElem: value @ ulong * * * * * * * * DtoSymbolAddress ('value' of type 'const(ulong)') * * * * * * * * * function param * * * * * * * * * type: const(ulong) * * * * * * * IntegerExp::toElem: 256LU @ ulong * * * * * * * * IntegerExp::toConstElem: 256LU @ ulong * * * * * * * * * value = i64 256 * * * * * * * type 1: %1 = load i64, i64* %value * * * * * * * type 2: i64 256 * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(435) * * * * * * * IfStatement::toIR(): msgpack-d/src/msgpack.d(436) * * * * * * * * CmpExp::toElem: value < 128LU @ bool * * * * * * * * * VarExp::toElem: value @ ulong * * * * * * * * * * DtoSymbolAddress ('value' of type 'const(ulong)') * * * * * * * * * * * function param * * * * * * * * * * * type: const(ulong) * * * * * * * * * IntegerExp::toElem: 128LU @ ulong * * * * * * * * * * IntegerExp::toConstElem: 128LU @ ulong * * * * * * * * * * * value = i64 128 * * * * * * * * * type 1: %3 = load i64, i64* %value * * * * * * * * * type 2: i64 128 * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(436) * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(438) * * * * * * * * * * CallExp::toElem: this.stream_.put(take8from(value)) @ void * * * * * * * * * * * DotVarExp::toElem: this.stream_.put @ pure nothrow @safe void(ubyte item) * * * * * * * * * * * * DotVarExp::toElem: this.stream_ @ Appender!(ubyte[]) * * * * * * * * * * * * * ThisExp::toElem: this @ PackerImpl!(Appender!(ubyte[])) * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * Indexing aggregate field msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.stream_: * * * * * * * * * * * * * * Value: %5 = getelementptr %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl", %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* %.this_arg, i32 0, i32 0 * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * %5 = getelementptr %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl", %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* %.this_arg, i32 0, i32 0 * * * * * * * * * * * * Function type: pure nothrow @safe void(ubyte item) * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * CallExp::toElem: take8from(value) @ ubyte * * * * * * * * * * * * * * VarExp::toElem: take8from @ pure nothrow @nogc @trusted ubyte(const(ulong) value) * * * * * * * * * * * * * * * DtoSymbolAddress ('take8from' of type 'pure nothrow @nogc @trusted ubyte(const(ulong) value)') * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted ubyte(const(ulong) value)) * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * Final function type: i8 (i64) * * * * * * * * * * * * * * * * DtoResolveFunction(msgpack.take8from!(64, const(ulong)).take8from): msgpack-d/src/msgpack.d(5077) * * * * * * * * * * * * * * * * * DtoDeclareFunction(msgpack.take8from!(64, const(ulong)).take8from): msgpack-d/src/msgpack.d(5077) * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted ubyte(const(ulong) value)) * * * * * * * * * * * * * * * * * * func = declare i8 @_D7msgpack22__T9take8fromVii64TxmZ9take8fromFNaNbNiNexmZh(i64) * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * Building type: pure nothrow @nogc @trusted ubyte(const(ulong) value) * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted ubyte(const(ulong) value)) * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * Final function type: i8 (i64) * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @trusted ubyte(const(ulong) value) * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * VarExp::toElem: value @ const(ulong) * * * * * * * * * * * * * * * * * DtoSymbolAddress ('value' of type 'const(ulong)') * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * type: const(ulong) * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(439) * * * * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(439) * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(441) * * * * * * * * * * * AssignExp::toElem: this.store_[0] = cast(ubyte)204u | (ubyte)(ubyte = ubyte) * * * * * * * * * * * * IndexExp::toElem: this.store_[0] @ ubyte * * * * * * * * * * * * * DotVarExp::toElem: this.store_ @ ubyte[11] * * * * * * * * * * * * * * ThisExp::toElem: this @ PackerImpl!(Appender!(ubyte[])) * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * Indexing aggregate field msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.store_: * * * * * * * * * * * * * * * Value: %8 = getelementptr %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl", %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* %.this_arg, i32 0, i32 1 * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * IntegerExp::toElem: cast(ubyte)204u @ ubyte * * * * * * * * * * * * * IntegerExp::toConstElem: cast(ubyte)204u @ ubyte * * * * * * * * * * * * * * value = i8 -52 * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * lhs: %9 = getelementptr [11 x i8], [11 x i8]* %8, i32 0, i64 0 * * * * * * * * * * * * * rhs: i8 -52 * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(442) * * * * * * * * * * * AssignExp::toElem: this.store_[1] = take8from(value) | (ubyte)(ubyte = ubyte) * * * * * * * * * * * * IndexExp::toElem: this.store_[1] @ ubyte * * * * * * * * * * * * * DotVarExp::toElem: this.store_ @ ubyte[11] * * * * * * * * * * * * * * ThisExp::toElem: this @ PackerImpl!(Appender!(ubyte[])) * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * Indexing aggregate field msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.store_: * * * * * * * * * * * * * * * Value: %10 = getelementptr %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl", %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* %.this_arg, i32 0, i32 1 * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * CallExp::toElem: take8from(value) @ ubyte * * * * * * * * * * * * * VarExp::toElem: take8from @ pure nothrow @nogc @trusted ubyte(const(ulong) value) * * * * * * * * * * * * * * DtoSymbolAddress ('take8from' of type 'pure nothrow @nogc @trusted ubyte(const(ulong) value)') * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * Function type: pure nothrow @nogc @trusted ubyte(const(ulong) value) * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * VarExp::toElem: value @ const(ulong) * * * * * * * * * * * * * * * * DtoSymbolAddress ('value' of type 'const(ulong)') * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * type: const(ulong) * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * lhs: %11 = getelementptr [11 x i8], [11 x i8]* %10, i32 0, i64 1 * * * * * * * * * * * * * rhs: %13 = call zeroext i8 @_D7msgpack22__T9take8fromVii64TxmZ9take8fromFNaNbNiNexmZh(i64 %12) * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(443) * * * * * * * * * * * CallExp::toElem: this.stream_.put(this.store_[0..2]) @ void * * * * * * * * * * * * DotVarExp::toElem: this.stream_.put @ pure nothrow @safe void(ubyte[] items) * * * * * * * * * * * * * DotVarExp::toElem: this.stream_ @ Appender!(ubyte[]) * * * * * * * * * * * * * * ThisExp::toElem: this @ PackerImpl!(Appender!(ubyte[])) * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * Indexing aggregate field msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.stream_: * * * * * * * * * * * * * * * Value: %14 = getelementptr %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl", %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* %.this_arg, i32 0, i32 0 * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * %14 = getelementptr %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl", %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* %.this_arg, i32 0, i32 0 * * * * * * * * * * * * * Function type: pure nothrow @safe void(ubyte[] items) * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * SliceExp::toElem: this.store_[0..2] @ ubyte[] * * * * * * * * * * * * * * * DotVarExp::toElem: this.store_ @ ubyte[11] * * * * * * * * * * * * * * * * ThisExp::toElem: this @ PackerImpl!(Appender!(ubyte[])) * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.store_: * * * * * * * * * * * * * * * * * Value: %15 = getelementptr %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl", %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* %.this_arg, i32 0, i32 1 * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * * * IntegerExp::toElem: 2LU @ ulong * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 2LU @ ulong * * * * * * * * * * * * * * * * * value = i64 2 * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(445) * * * * * * * IfStatement::toIR(): msgpack-d/src/msgpack.d(446) * * * * * * * * CmpExp::toElem: value < 65536LU @ bool * * * * * * * * * VarExp::toElem: value @ ulong * * * * * * * * * * DtoSymbolAddress ('value' of type 'const(ulong)') * * * * * * * * * * * function param * * * * * * * * * * * type: const(ulong) * * * * * * * * * IntegerExp::toElem: 65536LU @ ulong * * * * * * * * * * IntegerExp::toConstElem: 65536LU @ ulong * * * * * * * * * * * value = i64 65536 * * * * * * * * * type 1: %5 = load i64, i64* %value * * * * * * * * * type 2: i64 65536 * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(446) * * * * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(446) * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(448) * * * * * * * * * * * DeclarationExp::toElem: const const(ushort) temp = convertEndianTo(value); | T=void * * * * * * * * * * * * DtoDeclarationExp: temp * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * DtoVarDeclaration(vdtype = const(ushort)) * * * * * * * * * * * * * * llvm value for decl: %temp = alloca i16, align 2 * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * AssignExp::toElem: temp = convertEndianTo(value) | (const(ushort))(const(ushort) = const(ushort)) * * * * * * * * * * * * * * * VarExp::toElem: temp @ const(ushort) * * * * * * * * * * * * * * * * DtoSymbolAddress ('temp' of type 'const(ushort)') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * CallExp::toElem: convertEndianTo(value) @ const(ushort) * * * * * * * * * * * * * * * * VarExp::toElem: convertEndianTo @ pure nothrow @nogc @trusted ushort(const(ulong) value) * * * * * * * * * * * * * * * * * DtoSymbolAddress ('convertEndianTo' of type 'pure nothrow @nogc @trusted ushort(const(ulong) value)') * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @trusted ushort(const(ulong) value) * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * VarExp::toElem: value @ const(ulong) * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('value' of type 'const(ulong)') * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * type: const(ulong) * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * lhs: %temp = alloca i16, align 2 * * * * * * * * * * * * * * * * rhs: %20 = call zeroext i16 @_D7msgpack28__T15convertEndianToVii16TmZ15convertEndianToFNaNbNiNexmZt(i64 %19) * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(450) * * * * * * * * * * * AssignExp::toElem: this.store_[0] = cast(ubyte)205u | (ubyte)(ubyte = ubyte) * * * * * * * * * * * * IndexExp::toElem: this.store_[0] @ ubyte * * * * * * * * * * * * * DotVarExp::toElem: this.store_ @ ubyte[11] * * * * * * * * * * * * * * ThisExp::toElem: this @ PackerImpl!(Appender!(ubyte[])) * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * Indexing aggregate field msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.store_: * * * * * * * * * * * * * * * Value: %21 = getelementptr %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl", %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* %.this_arg, i32 0, i32 1 * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * IntegerExp::toElem: cast(ubyte)205u @ ubyte * * * * * * * * * * * * * IntegerExp::toConstElem: cast(ubyte)205u @ ubyte * * * * * * * * * * * * * * value = i8 -51 * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * lhs: %22 = getelementptr [11 x i8], [11 x i8]* %21, i32 0, i64 0 * * * * * * * * * * * * * rhs: i8 -51 * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(451) * * * * * * * * * * * AssignExp::toElem: *cast(ushort*)&this.store_[1] = temp | (ushort)(ushort = ushort) * * * * * * * * * * * * PtrExp::toElem: *cast(ushort*)&this.store_[1] @ ushort * * * * * * * * * * * * * CastExp::toElem: cast(ushort*)&this.store_[1] @ ushort* * * * * * * * * * * * * * * AddrExp::toElem: &this.store_[1] @ ubyte* * * * * * * * * * * * * * * * IndexExp::toElem: this.store_[1] @ ubyte * * * * * * * * * * * * * * * * DotVarExp::toElem: this.store_ @ ubyte[11] * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ PackerImpl!(Appender!(ubyte[])) * * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.store_: * * * * * * * * * * * * * * * * * * Value: %23 = getelementptr %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl", %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* %.this_arg, i32 0, i32 1 * * * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * * * is nothing special * * * * * * * * * * * * * * * lval: %24 = getelementptr [11 x i8], [11 x i8]* %23, i32 0, i64 1 * * * * * * * * * * * * * * Casting from 'ubyte*' to 'ushort*' * * * * * * * * * * * * * * * src: %24 = getelementptr [11 x i8], [11 x i8]* %23, i32 0, i64 1 * * * * * * * * * * * * * * * to type: i16* * * * * * * * * * * * * VarExp::toElem: temp @ ushort * * * * * * * * * * * * * DtoSymbolAddress ('temp' of type 'const(ushort)') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * lhs: %25 = bitcast i8* %24 to i16* * * * * * * * * * * * * * rhs: %26 = load i16, i16* %temp * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(452) * * * * * * * * * * * CallExp::toElem: this.stream_.put(this.store_[0..3]) @ void * * * * * * * * * * * * DotVarExp::toElem: this.stream_.put @ pure nothrow @safe void(ubyte[] items) * * * * * * * * * * * * * DotVarExp::toElem: this.stream_ @ Appender!(ubyte[]) * * * * * * * * * * * * * * ThisExp::toElem: this @ PackerImpl!(Appender!(ubyte[])) * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * Indexing aggregate field msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.stream_: * * * * * * * * * * * * * * * Value: %27 = getelementptr %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl", %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* %.this_arg, i32 0, i32 0 * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * %27 = getelementptr %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl", %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* %.this_arg, i32 0, i32 0 * * * * * * * * * * * * * Function type: pure nothrow @safe void(ubyte[] items) * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * SliceExp::toElem: this.store_[0..3] @ ubyte[] * * * * * * * * * * * * * * * DotVarExp::toElem: this.store_ @ ubyte[11] * * * * * * * * * * * * * * * * ThisExp::toElem: this @ PackerImpl!(Appender!(ubyte[])) * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.store_: * * * * * * * * * * * * * * * * * Value: %28 = getelementptr %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl", %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* %.this_arg, i32 0, i32 1 * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * * * IntegerExp::toElem: 3LU @ ulong * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 3LU @ ulong * * * * * * * * * * * * * * * * * value = i64 3 * * * * * * * * IfStatement::toIR(): msgpack-d/src/msgpack.d(453) * * * * * * * * * CmpExp::toElem: value < 4294967296LU @ bool * * * * * * * * * * VarExp::toElem: value @ ulong * * * * * * * * * * * DtoSymbolAddress ('value' of type 'const(ulong)') * * * * * * * * * * * * function param * * * * * * * * * * * * type: const(ulong) * * * * * * * * * * IntegerExp::toElem: 4294967296LU @ ulong * * * * * * * * * * * IntegerExp::toConstElem: 4294967296LU @ ulong * * * * * * * * * * * * value = i64 4294967296 * * * * * * * * * * type 1: %30 = load i64, i64* %value * * * * * * * * * * type 2: i64 4294967296 * * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(453) * * * * * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(453) * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(455) * * * * * * * * * * * * DeclarationExp::toElem: const const(uint) temp = convertEndianTo(value); | T=void * * * * * * * * * * * * * DtoDeclarationExp: temp * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = const(uint)) * * * * * * * * * * * * * * * llvm value for decl: %temp12 = alloca i32, align 4 * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * AssignExp::toElem: temp = convertEndianTo(value) | (const(uint))(const(uint) = const(uint)) * * * * * * * * * * * * * * * * VarExp::toElem: temp @ const(uint) * * * * * * * * * * * * * * * * * DtoSymbolAddress ('temp' of type 'const(uint)') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * CallExp::toElem: convertEndianTo(value) @ const(uint) * * * * * * * * * * * * * * * * * VarExp::toElem: convertEndianTo @ pure nothrow @nogc @trusted uint(const(ulong) value) * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('convertEndianTo' of type 'pure nothrow @nogc @trusted uint(const(ulong) value)') * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @trusted uint(const(ulong) value) * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * VarExp::toElem: value @ const(ulong) * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('value' of type 'const(ulong)') * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * type: const(ulong) * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * lhs: %temp12 = alloca i32, align 4 * * * * * * * * * * * * * * * * * rhs: %33 = call i32 @_D7msgpack28__T15convertEndianToVii32TmZ15convertEndianToFNaNbNiNexmZk(i64 %32) * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(457) * * * * * * * * * * * * AssignExp::toElem: this.store_[0] = cast(ubyte)206u | (ubyte)(ubyte = ubyte) * * * * * * * * * * * * * IndexExp::toElem: this.store_[0] @ ubyte * * * * * * * * * * * * * * DotVarExp::toElem: this.store_ @ ubyte[11] * * * * * * * * * * * * * * * ThisExp::toElem: this @ PackerImpl!(Appender!(ubyte[])) * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * Indexing aggregate field msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.store_: * * * * * * * * * * * * * * * * Value: %34 = getelementptr %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl", %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* %.this_arg, i32 0, i32 1 * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * IntegerExp::toElem: cast(ubyte)206u @ ubyte * * * * * * * * * * * * * * IntegerExp::toConstElem: cast(ubyte)206u @ ubyte * * * * * * * * * * * * * * * value = i8 -50 * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * lhs: %35 = getelementptr [11 x i8], [11 x i8]* %34, i32 0, i64 0 * * * * * * * * * * * * * * rhs: i8 -50 * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(458) * * * * * * * * * * * * AssignExp::toElem: *cast(uint*)&this.store_[1] = temp | (uint)(uint = uint) * * * * * * * * * * * * * PtrExp::toElem: *cast(uint*)&this.store_[1] @ uint * * * * * * * * * * * * * * CastExp::toElem: cast(uint*)&this.store_[1] @ uint* * * * * * * * * * * * * * * * AddrExp::toElem: &this.store_[1] @ ubyte* * * * * * * * * * * * * * * * * IndexExp::toElem: this.store_[1] @ ubyte * * * * * * * * * * * * * * * * * DotVarExp::toElem: this.store_ @ ubyte[11] * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ PackerImpl!(Appender!(ubyte[])) * * * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.store_: * * * * * * * * * * * * * * * * * * * Value: %36 = getelementptr %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl", %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* %.this_arg, i32 0, i32 1 * * * * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * * * * is nothing special * * * * * * * * * * * * * * * * lval: %37 = getelementptr [11 x i8], [11 x i8]* %36, i32 0, i64 1 * * * * * * * * * * * * * * * Casting from 'ubyte*' to 'uint*' * * * * * * * * * * * * * * * * src: %37 = getelementptr [11 x i8], [11 x i8]* %36, i32 0, i64 1 * * * * * * * * * * * * * * * * to type: i32* * * * * * * * * * * * * * VarExp::toElem: temp @ uint * * * * * * * * * * * * * * DtoSymbolAddress ('temp' of type 'const(uint)') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * lhs: %38 = bitcast i8* %37 to i32* * * * * * * * * * * * * * * rhs: %39 = load i32, i32* %temp12 * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(459) * * * * * * * * * * * * CallExp::toElem: this.stream_.put(this.store_[0..5]) @ void * * * * * * * * * * * * * DotVarExp::toElem: this.stream_.put @ pure nothrow @safe void(ubyte[] items) * * * * * * * * * * * * * * DotVarExp::toElem: this.stream_ @ Appender!(ubyte[]) * * * * * * * * * * * * * * * ThisExp::toElem: this @ PackerImpl!(Appender!(ubyte[])) * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * Indexing aggregate field msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.stream_: * * * * * * * * * * * * * * * * Value: %40 = getelementptr %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl", %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* %.this_arg, i32 0, i32 0 * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * %40 = getelementptr %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl", %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* %.this_arg, i32 0, i32 0 * * * * * * * * * * * * * * Function type: pure nothrow @safe void(ubyte[] items) * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * SliceExp::toElem: this.store_[0..5] @ ubyte[] * * * * * * * * * * * * * * * * DotVarExp::toElem: this.store_ @ ubyte[11] * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ PackerImpl!(Appender!(ubyte[])) * * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.store_: * * * * * * * * * * * * * * * * * * Value: %41 = getelementptr %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl", %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* %.this_arg, i32 0, i32 1 * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * * * * IntegerExp::toElem: 5LU @ ulong * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 5LU @ ulong * * * * * * * * * * * * * * * * * * value = i64 5 * * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(460) * * * * * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(460) * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(462) * * * * * * * * * * * * DeclarationExp::toElem: const const(ulong) temp = convertEndianTo(value); | T=void * * * * * * * * * * * * * DtoDeclarationExp: temp * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = const(ulong)) * * * * * * * * * * * * * * * llvm value for decl: %temp15 = alloca i64, align 8 * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * AssignExp::toElem: temp = convertEndianTo(value) | (const(ulong))(const(ulong) = const(ulong)) * * * * * * * * * * * * * * * * VarExp::toElem: temp @ const(ulong) * * * * * * * * * * * * * * * * * DtoSymbolAddress ('temp' of type 'const(ulong)') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * CallExp::toElem: convertEndianTo(value) @ const(ulong) * * * * * * * * * * * * * * * * * VarExp::toElem: convertEndianTo @ pure nothrow @nogc @trusted ulong(const(ulong) value) * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('convertEndianTo' of type 'pure nothrow @nogc @trusted ulong(const(ulong) value)') * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted ulong(const(ulong) value)) * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * Final function type: i64 (i64) * * * * * * * * * * * * * * * * * * * DtoResolveFunction(msgpack.convertEndianTo!(64, ulong).convertEndianTo): msgpack-d/src/msgpack.d(5052) * * * * * * * * * * * * * * * * * * * * DtoDeclareFunction(msgpack.convertEndianTo!(64, ulong).convertEndianTo): msgpack-d/src/msgpack.d(5052) * * * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted ulong(const(ulong) value)) * * * * * * * * * * * * * * * * * * * * * func = declare i64 @_D7msgpack28__T15convertEndianToVii64TmZ15convertEndianToFNaNbNiNexmZm(i64) * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * Building type: pure nothrow @nogc @trusted ulong(const(ulong) value) * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted ulong(const(ulong) value)) * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * * Final function type: i64 (i64) * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @trusted ulong(const(ulong) value) * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * VarExp::toElem: value @ const(ulong) * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('value' of type 'const(ulong)') * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * type: const(ulong) * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * lhs: %temp15 = alloca i64, align 8 * * * * * * * * * * * * * * * * * rhs: %44 = call i64 @_D7msgpack28__T15convertEndianToVii64TmZ15convertEndianToFNaNbNiNexmZm(i64 %43) * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(464) * * * * * * * * * * * * AssignExp::toElem: this.store_[0] = cast(ubyte)207u | (ubyte)(ubyte = ubyte) * * * * * * * * * * * * * IndexExp::toElem: this.store_[0] @ ubyte * * * * * * * * * * * * * * DotVarExp::toElem: this.store_ @ ubyte[11] * * * * * * * * * * * * * * * ThisExp::toElem: this @ PackerImpl!(Appender!(ubyte[])) * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * Indexing aggregate field msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.store_: * * * * * * * * * * * * * * * * Value: %45 = getelementptr %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl", %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* %.this_arg, i32 0, i32 1 * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * IntegerExp::toElem: cast(ubyte)207u @ ubyte * * * * * * * * * * * * * * IntegerExp::toConstElem: cast(ubyte)207u @ ubyte * * * * * * * * * * * * * * * value = i8 -49 * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * lhs: %46 = getelementptr [11 x i8], [11 x i8]* %45, i32 0, i64 0 * * * * * * * * * * * * * * rhs: i8 -49 * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(465) * * * * * * * * * * * * AssignExp::toElem: *cast(ulong*)&this.store_[1] = temp | (ulong)(ulong = ulong) * * * * * * * * * * * * * PtrExp::toElem: *cast(ulong*)&this.store_[1] @ ulong * * * * * * * * * * * * * * CastExp::toElem: cast(ulong*)&this.store_[1] @ ulong* * * * * * * * * * * * * * * * AddrExp::toElem: &this.store_[1] @ ubyte* * * * * * * * * * * * * * * * * IndexExp::toElem: this.store_[1] @ ubyte * * * * * * * * * * * * * * * * * DotVarExp::toElem: this.store_ @ ubyte[11] * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ PackerImpl!(Appender!(ubyte[])) * * * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.store_: * * * * * * * * * * * * * * * * * * * Value: %47 = getelementptr %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl", %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* %.this_arg, i32 0, i32 1 * * * * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * * * * is nothing special * * * * * * * * * * * * * * * * lval: %48 = getelementptr [11 x i8], [11 x i8]* %47, i32 0, i64 1 * * * * * * * * * * * * * * * Casting from 'ubyte*' to 'ulong*' * * * * * * * * * * * * * * * * src: %48 = getelementptr [11 x i8], [11 x i8]* %47, i32 0, i64 1 * * * * * * * * * * * * * * * * to type: i64* * * * * * * * * * * * * * VarExp::toElem: temp @ ulong * * * * * * * * * * * * * * DtoSymbolAddress ('temp' of type 'const(ulong)') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * lhs: %49 = bitcast i8* %48 to i64* * * * * * * * * * * * * * * rhs: %50 = load i64, i64* %temp15 * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(466) * * * * * * * * * * * * CallExp::toElem: this.stream_.put(this.store_[0..9]) @ void * * * * * * * * * * * * * DotVarExp::toElem: this.stream_.put @ pure nothrow @safe void(ubyte[] items) * * * * * * * * * * * * * * DotVarExp::toElem: this.stream_ @ Appender!(ubyte[]) * * * * * * * * * * * * * * * ThisExp::toElem: this @ PackerImpl!(Appender!(ubyte[])) * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * Indexing aggregate field msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.stream_: * * * * * * * * * * * * * * * * Value: %51 = getelementptr %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl", %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* %.this_arg, i32 0, i32 0 * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * %51 = getelementptr %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl", %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* %.this_arg, i32 0, i32 0 * * * * * * * * * * * * * * Function type: pure nothrow @safe void(ubyte[] items) * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * SliceExp::toElem: this.store_[0..9] @ ubyte[] * * * * * * * * * * * * * * * * DotVarExp::toElem: this.store_ @ ubyte[11] * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ PackerImpl!(Appender!(ubyte[])) * * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * * Indexing aggregate field msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl.store_: * * * * * * * * * * * * * * * * * * Value: %52 = getelementptr %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl", %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* %.this_arg, i32 0, i32 1 * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * * * * IntegerExp::toElem: 9LU @ ulong * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 9LU @ ulong * * * * * * * * * * * * * * * * * * value = i64 9 * * * * * ReturnStatement::toIR(): msgpack-d/src/msgpack.d(471) * * * * * * AddrExp::toElem: &this @ PackerImpl!(Appender!(ubyte[]))* * * * * * * * ThisExp::toElem: this @ PackerImpl!(Appender!(ubyte[])) * * * * * * * * normal this exp * * * * * * * is nothing special * * * * * * * lval: %"msgpack.PackerImpl!(Appender!(ubyte[])).PackerImpl"* %.this_arg * * * * * * return value is '0x133e9010' * TemplateInstance::codegen: 'msgpack.take8from!(64, const(ulong))' * * DtoDefineFunction(msgpack.take8from!(64, const(ulong)).take8from): msgpack-d/src/msgpack.d(5077) * * * Doing function body for: take8from * * * DtoCreateNestedContext for take8from * * * * DtoCreateNestedContextType for msgpack.take8from!(64, const(ulong)).take8from * * * CompoundStatement::toIR(): * * * * ReturnStatement::toIR(): msgpack-d/src/msgpack.d(5080) * * * * * IndexExp::toElem: & value[0] @ ubyte * * * * * * SymOffExp::toElem: & value @ ubyte* * * * * * * * DtoSymbolAddress ('value' of type 'const(ulong)') * * * * * * * * function param * * * * * * * * type: const(ulong) * * * * * * * Casting from 'const(ulong)*' to 'ubyte*' * * * * * * * * src: %value = alloca i64, align 8 * * * * * * * * to type: i8* * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * value = i64 0 * * * * * return value is '0x13473a28' * TemplateInstance::codegen: 'msgpack.convertEndianTo!(64, ulong)' * * DtoDefineFunction(msgpack.convertEndianTo!(64, ulong).convertEndianTo): msgpack-d/src/msgpack.d(5052) * * * Doing function body for: convertEndianTo * * * DtoCreateNestedContext for convertEndianTo * * * * DtoCreateNestedContextType for msgpack.convertEndianTo!(64, ulong).convertEndianTo * * * CompoundStatement::toIR(): * * * * ReturnStatement::toIR(): msgpack-d/src/msgpack.d(5055) * * * * * OrExp::toElem: value << 56 & 18374686479671623680LU | value << 40 & 71776119061217280LU | value << 24 & 280375465082880LU | value << 8 & 1095216660480LU | value >> 8 & 4278190080LU | value >> 24 & 16711680LU | value >> 40 & 65280LU | value >> 56 & 255LU @ ulong * * * * * * OrExp::toElem: value << 56 & 18374686479671623680LU | value << 40 & 71776119061217280LU | value << 24 & 280375465082880LU | value << 8 & 1095216660480LU | value >> 8 & 4278190080LU | value >> 24 & 16711680LU | value >> 40 & 65280LU @ ulong * * * * * * * OrExp::toElem: value << 56 & 18374686479671623680LU | value << 40 & 71776119061217280LU | value << 24 & 280375465082880LU | value << 8 & 1095216660480LU | value >> 8 & 4278190080LU | value >> 24 & 16711680LU @ ulong * * * * * * * * OrExp::toElem: value << 56 & 18374686479671623680LU | value << 40 & 71776119061217280LU | value << 24 & 280375465082880LU | value << 8 & 1095216660480LU | value >> 8 & 4278190080LU @ ulong * * * * * * * * * OrExp::toElem: value << 56 & 18374686479671623680LU | value << 40 & 71776119061217280LU | value << 24 & 280375465082880LU | value << 8 & 1095216660480LU @ ulong * * * * * * * * * * OrExp::toElem: value << 56 & 18374686479671623680LU | value << 40 & 71776119061217280LU | value << 24 & 280375465082880LU @ ulong * * * * * * * * * * * OrExp::toElem: value << 56 & 18374686479671623680LU | value << 40 & 71776119061217280LU @ ulong * * * * * * * * * * * * AndExp::toElem: value << 56 & 18374686479671623680LU @ ulong * * * * * * * * * * * * * ShlExp::toElem: value << 56 @ ulong * * * * * * * * * * * * * * VarExp::toElem: value @ ulong * * * * * * * * * * * * * * * DtoSymbolAddress ('value' of type 'const(ulong)') * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * type: const(ulong) * * * * * * * * * * * * * * IntegerExp::toElem: 56 @ int * * * * * * * * * * * * * * * IntegerExp::toConstElem: 56 @ int * * * * * * * * * * * * * * * * value = i32 56 * * * * * * * * * * * * * * Casting from 'int' to 'ulong' * * * * * * * * * * * * * * * cast to: i64 * * * * * * * * * * * * * IntegerExp::toElem: 18374686479671623680LU @ ulong * * * * * * * * * * * * * * IntegerExp::toConstElem: 18374686479671623680LU @ ulong * * * * * * * * * * * * * * * value = i64 -72057594037927936 * * * * * * * * * * * * AndExp::toElem: value << 40 & 71776119061217280LU @ ulong * * * * * * * * * * * * * ShlExp::toElem: value << 40 @ ulong * * * * * * * * * * * * * * VarExp::toElem: value @ ulong * * * * * * * * * * * * * * * DtoSymbolAddress ('value' of type 'const(ulong)') * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * type: const(ulong) * * * * * * * * * * * * * * IntegerExp::toElem: 40 @ int * * * * * * * * * * * * * * * IntegerExp::toConstElem: 40 @ int * * * * * * * * * * * * * * * * value = i32 40 * * * * * * * * * * * * * * Casting from 'int' to 'ulong' * * * * * * * * * * * * * * * cast to: i64 * * * * * * * * * * * * * IntegerExp::toElem: 71776119061217280LU @ ulong * * * * * * * * * * * * * * IntegerExp::toConstElem: 71776119061217280LU @ ulong * * * * * * * * * * * * * * * value = i64 71776119061217280 * * * * * * * * * * * AndExp::toElem: value << 24 & 280375465082880LU @ ulong * * * * * * * * * * * * ShlExp::toElem: value << 24 @ ulong * * * * * * * * * * * * * VarExp::toElem: value @ ulong * * * * * * * * * * * * * * DtoSymbolAddress ('value' of type 'const(ulong)') * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * type: const(ulong) * * * * * * * * * * * * * IntegerExp::toElem: 24 @ int * * * * * * * * * * * * * * IntegerExp::toConstElem: 24 @ int * * * * * * * * * * * * * * * value = i32 24 * * * * * * * * * * * * * Casting from 'int' to 'ulong' * * * * * * * * * * * * * * cast to: i64 * * * * * * * * * * * * IntegerExp::toElem: 280375465082880LU @ ulong * * * * * * * * * * * * * IntegerExp::toConstElem: 280375465082880LU @ ulong * * * * * * * * * * * * * * value = i64 280375465082880 * * * * * * * * * * AndExp::toElem: value << 8 & 1095216660480LU @ ulong * * * * * * * * * * * ShlExp::toElem: value << 8 @ ulong * * * * * * * * * * * * VarExp::toElem: value @ ulong * * * * * * * * * * * * * DtoSymbolAddress ('value' of type 'const(ulong)') * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * type: const(ulong) * * * * * * * * * * * * IntegerExp::toElem: 8 @ int * * * * * * * * * * * * * IntegerExp::toConstElem: 8 @ int * * * * * * * * * * * * * * value = i32 8 * * * * * * * * * * * * Casting from 'int' to 'ulong' * * * * * * * * * * * * * cast to: i64 * * * * * * * * * * * IntegerExp::toElem: 1095216660480LU @ ulong * * * * * * * * * * * * IntegerExp::toConstElem: 1095216660480LU @ ulong * * * * * * * * * * * * * value = i64 1095216660480 * * * * * * * * * AndExp::toElem: value >> 8 & 4278190080LU @ ulong * * * * * * * * * * ShrExp::toElem: value >> 8 @ ulong * * * * * * * * * * * VarExp::toElem: value @ ulong * * * * * * * * * * * * DtoSymbolAddress ('value' of type 'const(ulong)') * * * * * * * * * * * * * function param * * * * * * * * * * * * * type: const(ulong) * * * * * * * * * * * IntegerExp::toElem: 8 @ int * * * * * * * * * * * * IntegerExp::toConstElem: 8 @ int * * * * * * * * * * * * * value = i32 8 * * * * * * * * * * * Casting from 'int' to 'ulong' * * * * * * * * * * * * cast to: i64 * * * * * * * * * * IntegerExp::toElem: 4278190080LU @ ulong * * * * * * * * * * * IntegerExp::toConstElem: 4278190080LU @ ulong * * * * * * * * * * * * value = i64 4278190080 * * * * * * * * AndExp::toElem: value >> 24 & 16711680LU @ ulong * * * * * * * * * ShrExp::toElem: value >> 24 @ ulong * * * * * * * * * * VarExp::toElem: value @ ulong * * * * * * * * * * * DtoSymbolAddress ('value' of type 'const(ulong)') * * * * * * * * * * * * function param * * * * * * * * * * * * type: const(ulong) * * * * * * * * * * IntegerExp::toElem: 24 @ int * * * * * * * * * * * IntegerExp::toConstElem: 24 @ int * * * * * * * * * * * * value = i32 24 * * * * * * * * * * Casting from 'int' to 'ulong' * * * * * * * * * * * cast to: i64 * * * * * * * * * IntegerExp::toElem: 16711680LU @ ulong * * * * * * * * * * IntegerExp::toConstElem: 16711680LU @ ulong * * * * * * * * * * * value = i64 16711680 * * * * * * * AndExp::toElem: value >> 40 & 65280LU @ ulong * * * * * * * * ShrExp::toElem: value >> 40 @ ulong * * * * * * * * * VarExp::toElem: value @ ulong * * * * * * * * * * DtoSymbolAddress ('value' of type 'const(ulong)') * * * * * * * * * * * function param * * * * * * * * * * * type: const(ulong) * * * * * * * * * IntegerExp::toElem: 40 @ int * * * * * * * * * * IntegerExp::toConstElem: 40 @ int * * * * * * * * * * * value = i32 40 * * * * * * * * * Casting from 'int' to 'ulong' * * * * * * * * * * cast to: i64 * * * * * * * * IntegerExp::toElem: 65280LU @ ulong * * * * * * * * * IntegerExp::toConstElem: 65280LU @ ulong * * * * * * * * * * value = i64 65280 * * * * * * AndExp::toElem: value >> 56 & 255LU @ ulong * * * * * * * ShrExp::toElem: value >> 56 @ ulong * * * * * * * * VarExp::toElem: value @ ulong * * * * * * * * * DtoSymbolAddress ('value' of type 'const(ulong)') * * * * * * * * * * function param * * * * * * * * * * type: const(ulong) * * * * * * * * IntegerExp::toElem: 56 @ int * * * * * * * * * IntegerExp::toConstElem: 56 @ int * * * * * * * * * * value = i32 56 * * * * * * * * Casting from 'int' to 'ulong' * * * * * * * * * cast to: i64 * * * * * * * IntegerExp::toElem: 255LU @ ulong * * * * * * * * IntegerExp::toConstElem: 255LU @ ulong * * * * * * * * * value = i64 255 * * * * * return value is '0x1347b710' * TemplateInstance::codegen: 'msgpack.getFieldName!(const(AutocompleteRequest), 4LU)' * * Ignoring Dsymbol::codegen for __anonymous * * Ignoring Dsymbol::codegen for * * Ignoring Dsymbol::codegen for * * VarDeclaration::codegen(): 'msgpack.getFieldName!(const(AutocompleteRequest), 4LU).getFieldName' * * * DtoResolveVariable(msgpack.getFieldName!(const(AutocompleteRequest), 4LU).getFieldName) * TemplateInstance::codegen: 'msgpack.getFieldName!(const(AutocompleteRequest), 5LU)' * * Ignoring Dsymbol::codegen for __anonymous * * Ignoring Dsymbol::codegen for * * Ignoring Dsymbol::codegen for * * VarDeclaration::codegen(): 'msgpack.getFieldName!(const(AutocompleteRequest), 5LU).getFieldName' * * * DtoResolveVariable(msgpack.getFieldName!(const(AutocompleteRequest), 5LU).getFieldName) * TemplateInstance::codegen: 'msgpack.unpack!(false, AutocompleteResponse)' * * DtoDefineFunction(msgpack.unpack!(false, AutocompleteResponse).unpack): msgpack-d/src/msgpack.d(170) * * * Doing function body for: unpack * * * DtoCreateNestedContext for unpack * * * * DtoCreateNestedContextType for msgpack.unpack!(false, AutocompleteResponse).unpack * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(171) * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(172) * * * * * * DeclarationExp::toElem: Unpacker unpacker = unpacker = 0 , unpacker.this(buffer, buffer.length, false); | T=void * * * * * * * DtoDeclarationExp: unpacker * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = Unpacker) * * * * * * * * * llvm value for decl: %unpacker = alloca %msgpack.Unpacker, align 8 * * * * * * * * * expression initializer * * * * * * * * * CommaExp::toElem: unpacker = 0 , unpacker.this(buffer, buffer.length, false) @ Unpacker * * * * * * * * * * AssignExp::toElem: unpacker = 0 | (Unpacker)(Unpacker = int) * * * * * * * * * * * VarExp::toElem: unpacker @ Unpacker * * * * * * * * * * * * DtoSymbolAddress ('unpacker' of type 'Unpacker') * * * * * * * * * * * * * a normal variable * * * * * * * * * * * IntegerExp::toElem: 0 @ int * * * * * * * * * * * * IntegerExp::toConstElem: 0 @ int * * * * * * * * * * * * * value = i32 0 * * * * * * * * * * * performing aggregate zero initialization * * * * * * * * * * CallExp::toElem: unpacker.this(buffer, buffer.length, false) @ Unpacker * * * * * * * * * * * DotVarExp::toElem: unpacker.this @ ref @trusted Unpacker(const(ubyte[]) target, const(ulong) bufferSize = 8192LU, bool withFieldName = false) * * * * * * * * * * * * VarExp::toElem: unpacker @ Unpacker * * * * * * * * * * * * * DtoSymbolAddress ('unpacker' of type 'Unpacker') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * Building type: ref @trusted Unpacker(const(ubyte[]) target, const(ulong) bufferSize = 8192LU, bool withFieldName = false) * * * * * * * * * * * * * DtoFunctionType(ref @trusted Unpacker(const(ubyte[]) target, const(ulong) bufferSize = 8192LU, bool withFieldName = false)) * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * Final function type: %msgpack.Unpacker* (i1, i64, { i64, i8* }) * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * %unpacker = alloca %msgpack.Unpacker, align 8 * * * * * * * * * * * * Function type: ref @trusted Unpacker(const(ubyte[]) target, const(ulong) bufferSize = 8192LU, bool withFieldName = false) * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * VarExp::toElem: buffer @ const(ubyte[]) * * * * * * * * * * * * * * DtoSymbolAddress ('buffer' of type 'const(ubyte[])') * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * type: const(ubyte[]) * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * ArrayLengthExp::toElem: buffer.length @ const(ulong) * * * * * * * * * * * * * * VarExp::toElem: buffer @ const(ubyte[]) * * * * * * * * * * * * * * * DtoSymbolAddress ('buffer' of type 'const(ubyte[])') * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * type: const(ubyte[]) * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * IntegerExp::toElem: false @ bool * * * * * * * * * * * * * * IntegerExp::toConstElem: false @ bool * * * * * * * * * * * * * * * value = i1 false * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(175) * * * * * * CallExp::toElem: unpacker.unpack(_param_1) @ Unpacker * * * * * * * DotVarExp::toElem: unpacker.unpack @ ref @trusted Unpacker(ref AutocompleteResponse object) * * * * * * * * VarExp::toElem: unpacker @ Unpacker * * * * * * * * * DtoSymbolAddress ('unpacker' of type 'Unpacker') * * * * * * * * * * a normal variable * * * * * * * * isMember = this is: Unpacker * * * * * * * * DtoFunctionType(ref @trusted Unpacker(ref AutocompleteResponse object)) * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * Final function type: %msgpack.Unpacker* (%msgpack.Unpacker*, %common.messages.AutocompleteResponse*) * * * * * * * * DtoResolveFunction(msgpack.Unpacker.unpack!(AutocompleteResponse).unpack): msgpack-d/src/msgpack.d(2447) * * * * * * * * * DtoDeclareFunction(msgpack.Unpacker.unpack!(AutocompleteResponse).unpack): msgpack-d/src/msgpack.d(2447) * * * * * * * * * * isMember = this is: Unpacker * * * * * * * * * * DtoFunctionType(ref @trusted Unpacker(ref AutocompleteResponse object)) * * * * * * * * * * func = declare %msgpack.Unpacker* @_D7msgpack8Unpacker51__T6unpackTS6common8messages20AutocompleteResponseZ6unpackMFNcNeKS6common8messages20AutocompleteResponseZS7msgpack8Unpacker(%msgpack.Unpacker*, %common.messages.AutocompleteResponse*) * * * * * * * DtoCallFunction() * * * * * * * * Building type: ref @trusted Unpacker(ref AutocompleteResponse object) * * * * * * * * * DtoFunctionType(ref @trusted Unpacker(ref AutocompleteResponse object)) * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: %msgpack.Unpacker* (%common.messages.AutocompleteResponse*) * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (1) * * * * * * * * * %unpacker = alloca %msgpack.Unpacker, align 8 * * * * * * * * Function type: ref @trusted Unpacker(ref AutocompleteResponse object) * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: _param_1 @ AutocompleteResponse * * * * * * * * * * DtoSymbolAddress ('_param_1' of type 'AutocompleteResponse') * * * * * * * * * * * function param * * * * * * * * * * * type: AutocompleteResponse * TemplateInstance::codegen: 'msgpack.Unpacker.unpack!(AutocompleteResponse)' * * DtoDefineFunction(msgpack.Unpacker.unpack!(AutocompleteResponse).unpack): msgpack-d/src/msgpack.d(2447) * * * Doing function body for: unpack * * * DtoCreateNestedContext for unpack * * * * DtoCreateNestedContextType for msgpack.Unpacker.unpack!(AutocompleteResponse).unpack * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(2448) * * * * * IfStatement::toIR(): msgpack-d/src/msgpack.d(2457) * * * * * * Building type: void delegate(ref Unpacker, void*) @system* * * * * * * * Building type: void delegate(ref Unpacker, void*) @system * * * * * * * * DtoFunctionType(@system void(ref Unpacker, void*)) * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * Final function type: void (i8*, i8*, %msgpack.Unpacker*) * * * * * * CommaExp::toElem: void delegate(ref Unpacker, void*) @system* handler = typeid(AutocompleteResponse) in unpackHandlers; , handler @ void delegate(ref Unpacker, void*) @system* * * * * * * * DeclarationExp::toElem: void delegate(ref Unpacker, void*) @system* handler = typeid(AutocompleteResponse) in unpackHandlers; | T=void * * * * * * * * DtoDeclarationExp: handler * * * * * * * * * VarDeclaration * * * * * * * * * DtoVarDeclaration(vdtype = void delegate(ref Unpacker, void*) @system*) * * * * * * * * * * llvm value for decl: %handler = alloca { i8*, void (i8*, i8*, %msgpack.Unpacker*)* }*, align 8 * * * * * * * * * * expression initializer * * * * * * * * * * AssignExp::toElem: handler = typeid(AutocompleteResponse) in unpackHandlers | (void delegate(ref Unpacker, void*) @system*)(void delegate(ref Unpacker, void*) @system* = void delegate(ref Unpacker, void*) @system*) * * * * * * * * * * * VarExp::toElem: handler @ void delegate(ref Unpacker, void*) @system* * * * * * * * * * * * * DtoSymbolAddress ('handler' of type 'void delegate(ref Unpacker, void*) @system*') * * * * * * * * * * * * * a normal variable * * * * * * * * * * * InExp::toElem: typeid(AutocompleteResponse) in unpackHandlers @ void delegate(ref Unpacker, void*) @system* * * * * * * * * * * * * SymOffExp::toElem: typeid(AutocompleteResponse) @ object.TypeInfo * * * * * * * * * * * * * DtoSymbolAddress ('typeid(AutocompleteResponse)' of type 'object.TypeInfo_Struct') * * * * * * * * * * * * * * TypeInfoDeclaration * * * * * * * * * * * * * Casting from 'TypeInfo_Struct*' to 'object.TypeInfo' * * * * * * * * * * * * * * src: %object.TypeInfo_Struct* bitcast (%"typeid(AutocompleteResponse)"* @_D48TypeInfo_S6common8messages20AutocompleteResponse6__initZ to %object.TypeInfo_Struct*) * * * * * * * * * * * * * * to type: %object.TypeInfo* * * * * * * * * * * * * VarExp::toElem: unpackHandlers @ void delegate(ref Unpacker, void*) @system[TypeInfo] * * * * * * * * * * * * * DtoSymbolAddress ('unpackHandlers' of type 'void delegate(ref Unpacker, void*) @system[TypeInfo]') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * DtoResolveVariable(msgpack.Unpacker.unpackHandlers) * * * * * * * * * * * * * * * data segment * * * * * * * * * * * * * * Building type: void delegate(ref Unpacker, void*) @system[TypeInfo] * * * * * * * * * * * * _aaIn = ; Function Attrs: readonly declare i8* @_aaInX(i8* nocapture, %object.TypeInfo*, i8* nocapture) #1 * * * * * * * * * * * * aaval: %1 = load i8*, i8** @_D7msgpack8Unpacker14unpackHandlersHC8TypeInfoDFKS7msgpack8UnpackerPvZv * * * * * * * * * * * * totype: i8* * * * * * * * * * * * * DtoTypeInfoOf(type = 'object.TypeInfo', base='0') * * * * * * * * * * * * * Type::getTypeInfo(): object.TypeInfo * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * lhs: %handler = alloca { i8*, void (i8*, i8*, %msgpack.Unpacker*)* }*, align 8 * * * * * * * * * * * * rhs: %3 = bitcast i8* %aa.in to { i8*, void (i8*, i8*, %msgpack.Unpacker*)* }* * * * * * * * VarExp::toElem: handler @ void delegate(ref Unpacker, void*) @system* * * * * * * * * DtoSymbolAddress ('handler' of type 'void delegate(ref Unpacker, void*) @system*') * * * * * * * * * a normal variable * * * * * * if conditional: %4 = load { i8*, void (i8*, i8*, %msgpack.Unpacker*)* }*, { i8*, void (i8*, i8*, %msgpack.Unpacker*)* }** %handler * * * * * * Casting from 'void delegate(ref Unpacker, void*) @system*' to 'bool' * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(2457) * * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(2457) * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(2458) * * * * * * * * * CallExp::toElem: (*handler)(this, cast(void*)&object) @ void * * * * * * * * * * PtrExp::toElem: *handler @ void delegate(ref Unpacker, void*) @system * * * * * * * * * * * VarExp::toElem: handler @ void delegate(ref Unpacker, void*) @system* * * * * * * * * * * * * DtoSymbolAddress ('handler' of type 'void delegate(ref Unpacker, void*) @system*') * * * * * * * * * * * * * a normal variable * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * doing normal arguments * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * %.ptr = load i8*, i8** %9 * * * * * * * * * * * Function type: @system void(ref Unpacker, void*) * * * * * * * * * * * DtoArgument * * * * * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * * * * * normal this exp * * * * * * * * * * * DtoArgument * * * * * * * * * * * * CastExp::toElem: cast(void*)&object @ void* * * * * * * * * * * * * * AddrExp::toElem: &object @ AutocompleteResponse* * * * * * * * * * * * * * * VarExp::toElem: object @ AutocompleteResponse * * * * * * * * * * * * * * * DtoSymbolAddress ('object' of type 'AutocompleteResponse') * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * type: AutocompleteResponse * * * * * * * * * * * * * * is nothing special * * * * * * * * * * * * * * lval: %common.messages.AutocompleteResponse* %object_arg * * * * * * * * * * * * * Casting from 'AutocompleteResponse*' to 'void*' * * * * * * * * * * * * * * src: %common.messages.AutocompleteResponse* %object_arg * * * * * * * * * * * * * * to type: i8* * * * * * * * * ReturnStatement::toIR(): msgpack-d/src/msgpack.d(2459) * * * * * * * * * AddrExp::toElem: &this @ Unpacker* * * * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * * * normal this exp * * * * * * * * * * is nothing special * * * * * * * * * * lval: %msgpack.Unpacker* %.this_arg * * * * * * * * * return value is '0x134806c0' * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(2462) * * * * * * DeclarationExp::toElem: ulong length = this.beginArray(); | T=void * * * * * * * DtoDeclarationExp: length * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * llvm value for decl: %length = alloca i64, align 8 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: length = this.beginArray() | (ulong)(ulong = ulong) * * * * * * * * * * VarExp::toElem: length @ ulong * * * * * * * * * * * DtoSymbolAddress ('length' of type 'ulong') * * * * * * * * * * * * a normal variable * * * * * * * * * * CallExp::toElem: this.beginArray() @ ulong * * * * * * * * * * * DotVarExp::toElem: this.beginArray @ @safe ulong() * * * * * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * * * * * normal this exp * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * Building type: @safe ulong() * * * * * * * * * * * * * DtoFunctionType(@safe ulong()) * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * Final function type: i64 () * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * %msgpack.Unpacker* %.this_arg * * * * * * * * * * * * Function type: @safe ulong() * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %length = alloca i64, align 8 * * * * * * * * * * * rhs: %11 = call i64 @_D7msgpack8Unpacker10beginArrayMFNfZm(%msgpack.Unpacker* %.this_arg) * * * * * IfStatement::toIR(): msgpack-d/src/msgpack.d(2463) * * * * * * EqualExp::toElem: length == 0LU @ bool * * * * * * * VarExp::toElem: length @ ulong * * * * * * * * DtoSymbolAddress ('length' of type 'ulong') * * * * * * * * * a normal variable * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * value = i64 0 * * * * * * * integral or pointer or interface * * * * * * * lv: %12 = load i64, i64* %length * * * * * * * rv: i64 0 * * * * * * ReturnStatement::toIR(): msgpack-d/src/msgpack.d(2464) * * * * * * * AddrExp::toElem: &this @ Unpacker* * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * normal this exp * * * * * * * * is nothing special * * * * * * * * lval: %msgpack.Unpacker* %.this_arg * * * * * * * return value is '0x134806c0' * * * * * IfStatement::toIR(): msgpack-d/src/msgpack.d(2474) * * * * * * EqualExp::toElem: length != 8LU @ bool * * * * * * * VarExp::toElem: length @ ulong * * * * * * * * DtoSymbolAddress ('length' of type 'ulong') * * * * * * * * * a normal variable * * * * * * * IntegerExp::toElem: 8LU @ ulong * * * * * * * * IntegerExp::toConstElem: 8LU @ ulong * * * * * * * * * value = i64 8 * * * * * * * integral or pointer or interface * * * * * * * lv: %14 = load i64, i64* %length * * * * * * * rv: i64 8 * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(2475) * * * * * * * CallExp::toElem: this.rollback(this.calculateSize(length)) @ void * * * * * * * * DotVarExp::toElem: this.rollback @ @safe void(const(ulong) size = 0LU) * * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * * normal this exp * * * * * * * * DtoCallFunction() * * * * * * * * * doing normal arguments * * * * * * * * * Arguments so far: (1) * * * * * * * * * * %msgpack.Unpacker* %.this_arg * * * * * * * * * Function type: @safe void(const(ulong) size = 0LU) * * * * * * * * * DtoArgument * * * * * * * * * * CallExp::toElem: this.calculateSize(length) @ const(ulong) * * * * * * * * * * * DotVarExp::toElem: this.calculateSize @ pure nothrow @nogc @trusted ulong(const(ulong) length) * * * * * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * isMember = this is: Unpacker * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted ulong(const(ulong) length)) * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * Final function type: i64 (%msgpack.Unpacker*, i64) * * * * * * * * * * * * DtoResolveFunction(msgpack.Unpacker.calculateSize!false.calculateSize): msgpack-d/src/msgpack.d(2701) * * * * * * * * * * * * * DtoDeclareFunction(msgpack.Unpacker.calculateSize!false.calculateSize): msgpack-d/src/msgpack.d(2701) * * * * * * * * * * * * * * isMember = this is: Unpacker * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted ulong(const(ulong) length)) * * * * * * * * * * * * * * func = declare i64 @_D7msgpack8Unpacker23__T13calculateSizeVbi0Z13calculateSizeMFNaNbNiNexmZm(%msgpack.Unpacker*, i64) * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * Building type: pure nothrow @nogc @trusted ulong(const(ulong) length) * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted ulong(const(ulong) length)) * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * Final function type: i64 (i64) * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * %msgpack.Unpacker* %.this_arg * * * * * * * * * * * * Function type: pure nothrow @nogc @trusted ulong(const(ulong) length) * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * VarExp::toElem: length @ const(ulong) * * * * * * * * * * * * * * DtoSymbolAddress ('length' of type 'ulong') * * * * * * * * * * * * * * * a normal variable * * * * * UnrolledLoopStatement::toIR(): msgpack-d/src/msgpack.d(2477) * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(2477) * * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(2477) * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(2477) * * * * * * * * * DeclarationExp::toElem: enum ulong i = 0LU; | T=void * * * * * * * * * * DtoDeclarationExp: i * * * * * * * * * * * VarDeclaration * * * * * * * * * * * Manifest constant, nothing to do. * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(2477) * * * * * * * * * DeclarationExp::toElem: string member = object.completionType; | T=void * * * * * * * * * * DtoDeclarationExp: member * * * * * * * * * * * VarDeclaration * * * * * * * * * * * DtoVarDeclaration(vdtype = string) * * * * * * * * * * * * llvm value for decl: %member = alloca { i64, i8* }, align 8 * * * * * * * * * * * * expression initializer * * * * * * * * * * * * AssignExp::toElem: member = object.completionType | (string)(string = string) * * * * * * * * * * * * * VarExp::toElem: member @ string * * * * * * * * * * * * * * DtoSymbolAddress ('member' of type 'string') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * DotVarExp::toElem: object.completionType @ string * * * * * * * * * * * * * * VarExp::toElem: object @ AutocompleteResponse * * * * * * * * * * * * * * * DtoSymbolAddress ('object' of type 'AutocompleteResponse') * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * type: AutocompleteResponse * * * * * * * * * * * * * * Indexing aggregate field common.messages.AutocompleteResponse.completionType: * * * * * * * * * * * * * * * Value: %18 = getelementptr %common.messages.AutocompleteResponse, %common.messages.AutocompleteResponse* %object_arg, i32 0, i32 0 * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * SetArray * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(2479) * * * * * * * * * CallExp::toElem: this.unpack(object.completionType) @ Unpacker * * * * * * * * * * DotVarExp::toElem: this.unpack @ ref @trusted Unpacker(ref string array) * * * * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * * * * normal this exp * * * * * * * * * * * isMember = this is: Unpacker * * * * * * * * * * * DtoFunctionType(ref @trusted Unpacker(ref string array)) * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * Final function type: %msgpack.Unpacker* (%msgpack.Unpacker*, { i64, i8* }*) * * * * * * * * * * * DtoResolveFunction(msgpack.Unpacker.unpack!string.unpack): msgpack-d/src/msgpack.d(2236) * * * * * * * * * * * * DtoDeclareFunction(msgpack.Unpacker.unpack!string.unpack): msgpack-d/src/msgpack.d(2236) * * * * * * * * * * * * * isMember = this is: Unpacker * * * * * * * * * * * * * DtoFunctionType(ref @trusted Unpacker(ref string array)) * * * * * * * * * * * * * func = declare %msgpack.Unpacker* @_D7msgpack8Unpacker15__T6unpackTAyaZ6unpackMFNcNeKAyaZS7msgpack8Unpacker(%msgpack.Unpacker*, { i64, i8* }*) * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * Building type: ref @trusted Unpacker(ref string array) * * * * * * * * * * * * DtoFunctionType(ref @trusted Unpacker(ref string array)) * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * Final function type: %msgpack.Unpacker* ({ i64, i8* }*) * * * * * * * * * * * doing normal arguments * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * %msgpack.Unpacker* %.this_arg * * * * * * * * * * * Function type: ref @trusted Unpacker(ref string array) * * * * * * * * * * * DtoArgument * * * * * * * * * * * * DotVarExp::toElem: object.completionType @ string * * * * * * * * * * * * * VarExp::toElem: object @ AutocompleteResponse * * * * * * * * * * * * * * DtoSymbolAddress ('object' of type 'AutocompleteResponse') * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * type: AutocompleteResponse * * * * * * * * * * * * * Indexing aggregate field common.messages.AutocompleteResponse.completionType: * * * * * * * * * * * * * * Value: %23 = getelementptr %common.messages.AutocompleteResponse, %common.messages.AutocompleteResponse* %object_arg, i32 0, i32 0 * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(2477) * * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(2477) * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(2477) * * * * * * * * * DeclarationExp::toElem: enum ulong i = 1LU; | T=void * * * * * * * * * * DtoDeclarationExp: i * * * * * * * * * * * VarDeclaration * * * * * * * * * * * Manifest constant, nothing to do. * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(2477) * * * * * * * * * DeclarationExp::toElem: string member = object.symbolFilePath; | T=void * * * * * * * * * * DtoDeclarationExp: member * * * * * * * * * * * VarDeclaration * * * * * * * * * * * DtoVarDeclaration(vdtype = string) * * * * * * * * * * * * llvm value for decl: %member14 = alloca { i64, i8* }, align 8 * * * * * * * * * * * * expression initializer * * * * * * * * * * * * AssignExp::toElem: member = object.symbolFilePath | (string)(string = string) * * * * * * * * * * * * * VarExp::toElem: member @ string * * * * * * * * * * * * * * DtoSymbolAddress ('member' of type 'string') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * DotVarExp::toElem: object.symbolFilePath @ string * * * * * * * * * * * * * * VarExp::toElem: object @ AutocompleteResponse * * * * * * * * * * * * * * * DtoSymbolAddress ('object' of type 'AutocompleteResponse') * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * type: AutocompleteResponse * * * * * * * * * * * * * * Indexing aggregate field common.messages.AutocompleteResponse.symbolFilePath: * * * * * * * * * * * * * * * Value: %25 = getelementptr %common.messages.AutocompleteResponse, %common.messages.AutocompleteResponse* %object_arg, i32 0, i32 1 * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * SetArray * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(2479) * * * * * * * * * CallExp::toElem: this.unpack(object.symbolFilePath) @ Unpacker * * * * * * * * * * DotVarExp::toElem: this.unpack @ ref @trusted Unpacker(ref string array) * * * * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * * * * normal this exp * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * doing normal arguments * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * %msgpack.Unpacker* %.this_arg * * * * * * * * * * * Function type: ref @trusted Unpacker(ref string array) * * * * * * * * * * * DtoArgument * * * * * * * * * * * * DotVarExp::toElem: object.symbolFilePath @ string * * * * * * * * * * * * * VarExp::toElem: object @ AutocompleteResponse * * * * * * * * * * * * * * DtoSymbolAddress ('object' of type 'AutocompleteResponse') * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * type: AutocompleteResponse * * * * * * * * * * * * * Indexing aggregate field common.messages.AutocompleteResponse.symbolFilePath: * * * * * * * * * * * * * * Value: %30 = getelementptr %common.messages.AutocompleteResponse, %common.messages.AutocompleteResponse* %object_arg, i32 0, i32 1 * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(2477) * * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(2477) * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(2477) * * * * * * * * * DeclarationExp::toElem: enum ulong i = 2LU; | T=void * * * * * * * * * * DtoDeclarationExp: i * * * * * * * * * * * VarDeclaration * * * * * * * * * * * Manifest constant, nothing to do. * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(2477) * * * * * * * * * DeclarationExp::toElem: ulong member = object.symbolLocation; | T=void * * * * * * * * * * DtoDeclarationExp: member * * * * * * * * * * * VarDeclaration * * * * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * * * * llvm value for decl: %member17 = alloca i64, align 8 * * * * * * * * * * * * expression initializer * * * * * * * * * * * * AssignExp::toElem: member = object.symbolLocation | (ulong)(ulong = ulong) * * * * * * * * * * * * * VarExp::toElem: member @ ulong * * * * * * * * * * * * * * DtoSymbolAddress ('member' of type 'ulong') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * DotVarExp::toElem: object.symbolLocation @ ulong * * * * * * * * * * * * * * VarExp::toElem: object @ AutocompleteResponse * * * * * * * * * * * * * * * DtoSymbolAddress ('object' of type 'AutocompleteResponse') * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * type: AutocompleteResponse * * * * * * * * * * * * * * Indexing aggregate field common.messages.AutocompleteResponse.symbolLocation: * * * * * * * * * * * * * * * Value: %32 = getelementptr %common.messages.AutocompleteResponse, %common.messages.AutocompleteResponse* %object_arg, i32 0, i32 2 * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * lhs: %member17 = alloca i64, align 8 * * * * * * * * * * * * * * rhs: %33 = load i64, i64* %32 * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(2479) * * * * * * * * * CallExp::toElem: this.unpack(object.symbolLocation) @ Unpacker * * * * * * * * * * DotVarExp::toElem: this.unpack @ ref @trusted Unpacker(ref ulong value) * * * * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * * * * normal this exp * * * * * * * * * * * isMember = this is: Unpacker * * * * * * * * * * * DtoFunctionType(ref @trusted Unpacker(ref ulong value)) * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * Final function type: %msgpack.Unpacker* (%msgpack.Unpacker*, i64*) * * * * * * * * * * * DtoResolveFunction(msgpack.Unpacker.unpack!ulong.unpack): msgpack-d/src/msgpack.d(1983) * * * * * * * * * * * * DtoDeclareFunction(msgpack.Unpacker.unpack!ulong.unpack): msgpack-d/src/msgpack.d(1983) * * * * * * * * * * * * * isMember = this is: Unpacker * * * * * * * * * * * * * DtoFunctionType(ref @trusted Unpacker(ref ulong value)) * * * * * * * * * * * * * func = declare %msgpack.Unpacker* @_D7msgpack8Unpacker13__T6unpackTmZ6unpackMFNcNeKmZS7msgpack8Unpacker(%msgpack.Unpacker*, i64*) * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * Building type: ref @trusted Unpacker(ref ulong value) * * * * * * * * * * * * DtoFunctionType(ref @trusted Unpacker(ref ulong value)) * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * Final function type: %msgpack.Unpacker* (i64*) * * * * * * * * * * * doing normal arguments * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * %msgpack.Unpacker* %.this_arg * * * * * * * * * * * Function type: ref @trusted Unpacker(ref ulong value) * * * * * * * * * * * DtoArgument * * * * * * * * * * * * DotVarExp::toElem: object.symbolLocation @ ulong * * * * * * * * * * * * * VarExp::toElem: object @ AutocompleteResponse * * * * * * * * * * * * * * DtoSymbolAddress ('object' of type 'AutocompleteResponse') * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * type: AutocompleteResponse * * * * * * * * * * * * * Indexing aggregate field common.messages.AutocompleteResponse.symbolLocation: * * * * * * * * * * * * * * Value: %34 = getelementptr %common.messages.AutocompleteResponse, %common.messages.AutocompleteResponse* %object_arg, i32 0, i32 2 * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(2477) * * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(2477) * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(2477) * * * * * * * * * DeclarationExp::toElem: enum ulong i = 3LU; | T=void * * * * * * * * * * DtoDeclarationExp: i * * * * * * * * * * * VarDeclaration * * * * * * * * * * * Manifest constant, nothing to do. * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(2477) * * * * * * * * * DeclarationExp::toElem: string[] member = object.docComments; | T=void * * * * * * * * * * DtoDeclarationExp: member * * * * * * * * * * * VarDeclaration * * * * * * * * * * * DtoVarDeclaration(vdtype = string[]) * * * * * * * * * * * * llvm value for decl: %member18 = alloca { i64, { i64, i8* }* }, align 8 * * * * * * * * * * * * expression initializer * * * * * * * * * * * * AssignExp::toElem: member = object.docComments | (string[])(string[] = string[]) * * * * * * * * * * * * * VarExp::toElem: member @ string[] * * * * * * * * * * * * * * DtoSymbolAddress ('member' of type 'string[]') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * DotVarExp::toElem: object.docComments @ string[] * * * * * * * * * * * * * * VarExp::toElem: object @ AutocompleteResponse * * * * * * * * * * * * * * * DtoSymbolAddress ('object' of type 'AutocompleteResponse') * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * type: AutocompleteResponse * * * * * * * * * * * * * * Indexing aggregate field common.messages.AutocompleteResponse.docComments: * * * * * * * * * * * * * * * Value: %36 = getelementptr %common.messages.AutocompleteResponse, %common.messages.AutocompleteResponse* %object_arg, i32 0, i32 3 * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * SetArray * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(2479) * * * * * * * * * CallExp::toElem: this.unpack(object.docComments) @ Unpacker * * * * * * * * * * DotVarExp::toElem: this.unpack @ ref @trusted Unpacker(ref string[] array) * * * * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * * * * normal this exp * * * * * * * * * * * isMember = this is: Unpacker * * * * * * * * * * * DtoFunctionType(ref @trusted Unpacker(ref string[] array)) * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * Final function type: %msgpack.Unpacker* (%msgpack.Unpacker*, { i64, { i64, i8* }* }*) * * * * * * * * * * * DtoResolveFunction(msgpack.Unpacker.unpack!(string[]).unpack): msgpack-d/src/msgpack.d(2236) * * * * * * * * * * * * DtoDeclareFunction(msgpack.Unpacker.unpack!(string[]).unpack): msgpack-d/src/msgpack.d(2236) * * * * * * * * * * * * * isMember = this is: Unpacker * * * * * * * * * * * * * DtoFunctionType(ref @trusted Unpacker(ref string[] array)) * * * * * * * * * * * * * func = declare %msgpack.Unpacker* @_D7msgpack8Unpacker16__T6unpackTAAyaZ6unpackMFNcNeKAAyaZS7msgpack8Unpacker(%msgpack.Unpacker*, { i64, { i64, i8* }* }*) * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * Building type: ref @trusted Unpacker(ref string[] array) * * * * * * * * * * * * DtoFunctionType(ref @trusted Unpacker(ref string[] array)) * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * Final function type: %msgpack.Unpacker* ({ i64, { i64, i8* }* }*) * * * * * * * * * * * doing normal arguments * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * %msgpack.Unpacker* %.this_arg * * * * * * * * * * * Function type: ref @trusted Unpacker(ref string[] array) * * * * * * * * * * * DtoArgument * * * * * * * * * * * * DotVarExp::toElem: object.docComments @ string[] * * * * * * * * * * * * * VarExp::toElem: object @ AutocompleteResponse * * * * * * * * * * * * * * DtoSymbolAddress ('object' of type 'AutocompleteResponse') * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * type: AutocompleteResponse * * * * * * * * * * * * * Indexing aggregate field common.messages.AutocompleteResponse.docComments: * * * * * * * * * * * * * * Value: %41 = getelementptr %common.messages.AutocompleteResponse, %common.messages.AutocompleteResponse* %object_arg, i32 0, i32 3 * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(2477) * * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(2477) * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(2477) * * * * * * * * * DeclarationExp::toElem: enum ulong i = 4LU; | T=void * * * * * * * * * * DtoDeclarationExp: i * * * * * * * * * * * VarDeclaration * * * * * * * * * * * Manifest constant, nothing to do. * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(2477) * * * * * * * * * DeclarationExp::toElem: string[] member = object.completions; | T=void * * * * * * * * * * DtoDeclarationExp: member * * * * * * * * * * * VarDeclaration * * * * * * * * * * * DtoVarDeclaration(vdtype = string[]) * * * * * * * * * * * * llvm value for decl: %member21 = alloca { i64, { i64, i8* }* }, align 8 * * * * * * * * * * * * expression initializer * * * * * * * * * * * * AssignExp::toElem: member = object.completions | (string[])(string[] = string[]) * * * * * * * * * * * * * VarExp::toElem: member @ string[] * * * * * * * * * * * * * * DtoSymbolAddress ('member' of type 'string[]') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * DotVarExp::toElem: object.completions @ string[] * * * * * * * * * * * * * * VarExp::toElem: object @ AutocompleteResponse * * * * * * * * * * * * * * * DtoSymbolAddress ('object' of type 'AutocompleteResponse') * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * type: AutocompleteResponse * * * * * * * * * * * * * * Indexing aggregate field common.messages.AutocompleteResponse.completions: * * * * * * * * * * * * * * * Value: %43 = getelementptr %common.messages.AutocompleteResponse, %common.messages.AutocompleteResponse* %object_arg, i32 0, i32 4 * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * SetArray * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(2479) * * * * * * * * * CallExp::toElem: this.unpack(object.completions) @ Unpacker * * * * * * * * * * DotVarExp::toElem: this.unpack @ ref @trusted Unpacker(ref string[] array) * * * * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * * * * normal this exp * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * doing normal arguments * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * %msgpack.Unpacker* %.this_arg * * * * * * * * * * * Function type: ref @trusted Unpacker(ref string[] array) * * * * * * * * * * * DtoArgument * * * * * * * * * * * * DotVarExp::toElem: object.completions @ string[] * * * * * * * * * * * * * VarExp::toElem: object @ AutocompleteResponse * * * * * * * * * * * * * * DtoSymbolAddress ('object' of type 'AutocompleteResponse') * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * type: AutocompleteResponse * * * * * * * * * * * * * Indexing aggregate field common.messages.AutocompleteResponse.completions: * * * * * * * * * * * * * * Value: %48 = getelementptr %common.messages.AutocompleteResponse, %common.messages.AutocompleteResponse* %object_arg, i32 0, i32 4 * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(2477) * * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(2477) * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(2477) * * * * * * * * * DeclarationExp::toElem: enum ulong i = 5LU; | T=void * * * * * * * * * * DtoDeclarationExp: i * * * * * * * * * * * VarDeclaration * * * * * * * * * * * Manifest constant, nothing to do. * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(2477) * * * * * * * * * DeclarationExp::toElem: char[] member = object.completionKinds; | T=void * * * * * * * * * * DtoDeclarationExp: member * * * * * * * * * * * VarDeclaration * * * * * * * * * * * DtoVarDeclaration(vdtype = char[]) * * * * * * * * * * * * llvm value for decl: %member24 = alloca { i64, i8* }, align 8 * * * * * * * * * * * * expression initializer * * * * * * * * * * * * AssignExp::toElem: member = object.completionKinds | (char[])(char[] = char[]) * * * * * * * * * * * * * VarExp::toElem: member @ char[] * * * * * * * * * * * * * * DtoSymbolAddress ('member' of type 'char[]') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * DotVarExp::toElem: object.completionKinds @ char[] * * * * * * * * * * * * * * VarExp::toElem: object @ AutocompleteResponse * * * * * * * * * * * * * * * DtoSymbolAddress ('object' of type 'AutocompleteResponse') * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * type: AutocompleteResponse * * * * * * * * * * * * * * Indexing aggregate field common.messages.AutocompleteResponse.completionKinds: * * * * * * * * * * * * * * * Value: %50 = getelementptr %common.messages.AutocompleteResponse, %common.messages.AutocompleteResponse* %object_arg, i32 0, i32 5 * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * SetArray * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(2479) * * * * * * * * * CallExp::toElem: this.unpack(object.completionKinds) @ Unpacker * * * * * * * * * * DotVarExp::toElem: this.unpack @ ref @trusted Unpacker(ref char[] array) * * * * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * * * * normal this exp * * * * * * * * * * * isMember = this is: Unpacker * * * * * * * * * * * DtoFunctionType(ref @trusted Unpacker(ref char[] array)) * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * Final function type: %msgpack.Unpacker* (%msgpack.Unpacker*, { i64, i8* }*) * * * * * * * * * * * DtoResolveFunction(msgpack.Unpacker.unpack!(char[]).unpack): msgpack-d/src/msgpack.d(2236) * * * * * * * * * * * * DtoDeclareFunction(msgpack.Unpacker.unpack!(char[]).unpack): msgpack-d/src/msgpack.d(2236) * * * * * * * * * * * * * isMember = this is: Unpacker * * * * * * * * * * * * * DtoFunctionType(ref @trusted Unpacker(ref char[] array)) * * * * * * * * * * * * * func = declare %msgpack.Unpacker* @_D7msgpack8Unpacker14__T6unpackTAaZ6unpackMFNcNeKAaZS7msgpack8Unpacker(%msgpack.Unpacker*, { i64, i8* }*) * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * Building type: ref @trusted Unpacker(ref char[] array) * * * * * * * * * * * * DtoFunctionType(ref @trusted Unpacker(ref char[] array)) * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * Final function type: %msgpack.Unpacker* ({ i64, i8* }*) * * * * * * * * * * * doing normal arguments * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * %msgpack.Unpacker* %.this_arg * * * * * * * * * * * Function type: ref @trusted Unpacker(ref char[] array) * * * * * * * * * * * DtoArgument * * * * * * * * * * * * DotVarExp::toElem: object.completionKinds @ char[] * * * * * * * * * * * * * VarExp::toElem: object @ AutocompleteResponse * * * * * * * * * * * * * * DtoSymbolAddress ('object' of type 'AutocompleteResponse') * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * type: AutocompleteResponse * * * * * * * * * * * * * Indexing aggregate field common.messages.AutocompleteResponse.completionKinds: * * * * * * * * * * * * * * Value: %55 = getelementptr %common.messages.AutocompleteResponse, %common.messages.AutocompleteResponse* %object_arg, i32 0, i32 5 * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(2477) * * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(2477) * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(2477) * * * * * * * * * DeclarationExp::toElem: enum ulong i = 6LU; | T=void * * * * * * * * * * DtoDeclarationExp: i * * * * * * * * * * * VarDeclaration * * * * * * * * * * * Manifest constant, nothing to do. * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(2477) * * * * * * * * * DeclarationExp::toElem: ulong[] member = object.locations; | T=void * * * * * * * * * * DtoDeclarationExp: member * * * * * * * * * * * VarDeclaration * * * * * * * * * * * DtoVarDeclaration(vdtype = ulong[]) * * * * * * * * * * * * llvm value for decl: %member27 = alloca { i64, i64* }, align 8 * * * * * * * * * * * * expression initializer * * * * * * * * * * * * AssignExp::toElem: member = object.locations | (ulong[])(ulong[] = ulong[]) * * * * * * * * * * * * * VarExp::toElem: member @ ulong[] * * * * * * * * * * * * * * DtoSymbolAddress ('member' of type 'ulong[]') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * DotVarExp::toElem: object.locations @ ulong[] * * * * * * * * * * * * * * VarExp::toElem: object @ AutocompleteResponse * * * * * * * * * * * * * * * DtoSymbolAddress ('object' of type 'AutocompleteResponse') * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * type: AutocompleteResponse * * * * * * * * * * * * * * Indexing aggregate field common.messages.AutocompleteResponse.locations: * * * * * * * * * * * * * * * Value: %57 = getelementptr %common.messages.AutocompleteResponse, %common.messages.AutocompleteResponse* %object_arg, i32 0, i32 6 * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * SetArray * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(2479) * * * * * * * * * CallExp::toElem: this.unpack(object.locations) @ Unpacker * * * * * * * * * * DotVarExp::toElem: this.unpack @ ref @trusted Unpacker(ref ulong[] array) * * * * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * * * * normal this exp * * * * * * * * * * * isMember = this is: Unpacker * * * * * * * * * * * DtoFunctionType(ref @trusted Unpacker(ref ulong[] array)) * * * * * * * * * * * * Building type: ulong[]* * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * Final function type: %msgpack.Unpacker* (%msgpack.Unpacker*, { i64, i64* }*) * * * * * * * * * * * DtoResolveFunction(msgpack.Unpacker.unpack!(ulong[]).unpack): msgpack-d/src/msgpack.d(2236) * * * * * * * * * * * * DtoDeclareFunction(msgpack.Unpacker.unpack!(ulong[]).unpack): msgpack-d/src/msgpack.d(2236) * * * * * * * * * * * * * isMember = this is: Unpacker * * * * * * * * * * * * * DtoFunctionType(ref @trusted Unpacker(ref ulong[] array)) * * * * * * * * * * * * * func = declare %msgpack.Unpacker* @_D7msgpack8Unpacker14__T6unpackTAmZ6unpackMFNcNeKAmZS7msgpack8Unpacker(%msgpack.Unpacker*, { i64, i64* }*) * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * Building type: ref @trusted Unpacker(ref ulong[] array) * * * * * * * * * * * * DtoFunctionType(ref @trusted Unpacker(ref ulong[] array)) * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * Final function type: %msgpack.Unpacker* ({ i64, i64* }*) * * * * * * * * * * * doing normal arguments * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * %msgpack.Unpacker* %.this_arg * * * * * * * * * * * Function type: ref @trusted Unpacker(ref ulong[] array) * * * * * * * * * * * DtoArgument * * * * * * * * * * * * DotVarExp::toElem: object.locations @ ulong[] * * * * * * * * * * * * * VarExp::toElem: object @ AutocompleteResponse * * * * * * * * * * * * * * DtoSymbolAddress ('object' of type 'AutocompleteResponse') * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * type: AutocompleteResponse * * * * * * * * * * * * * Indexing aggregate field common.messages.AutocompleteResponse.locations: * * * * * * * * * * * * * * Value: %62 = getelementptr %common.messages.AutocompleteResponse, %common.messages.AutocompleteResponse* %object_arg, i32 0, i32 6 * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(2477) * * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(2477) * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(2477) * * * * * * * * * DeclarationExp::toElem: enum ulong i = 7LU; | T=void * * * * * * * * * * DtoDeclarationExp: i * * * * * * * * * * * VarDeclaration * * * * * * * * * * * Manifest constant, nothing to do. * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(2477) * * * * * * * * * DeclarationExp::toElem: string[] member = object.importPaths; | T=void * * * * * * * * * * DtoDeclarationExp: member * * * * * * * * * * * VarDeclaration * * * * * * * * * * * DtoVarDeclaration(vdtype = string[]) * * * * * * * * * * * * llvm value for decl: %member30 = alloca { i64, { i64, i8* }* }, align 8 * * * * * * * * * * * * expression initializer * * * * * * * * * * * * AssignExp::toElem: member = object.importPaths | (string[])(string[] = string[]) * * * * * * * * * * * * * VarExp::toElem: member @ string[] * * * * * * * * * * * * * * DtoSymbolAddress ('member' of type 'string[]') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * DotVarExp::toElem: object.importPaths @ string[] * * * * * * * * * * * * * * VarExp::toElem: object @ AutocompleteResponse * * * * * * * * * * * * * * * DtoSymbolAddress ('object' of type 'AutocompleteResponse') * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * type: AutocompleteResponse * * * * * * * * * * * * * * Indexing aggregate field common.messages.AutocompleteResponse.importPaths: * * * * * * * * * * * * * * * Value: %64 = getelementptr %common.messages.AutocompleteResponse, %common.messages.AutocompleteResponse* %object_arg, i32 0, i32 7 * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * SetArray * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(2479) * * * * * * * * * CallExp::toElem: this.unpack(object.importPaths) @ Unpacker * * * * * * * * * * DotVarExp::toElem: this.unpack @ ref @trusted Unpacker(ref string[] array) * * * * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * * * * normal this exp * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * doing normal arguments * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * %msgpack.Unpacker* %.this_arg * * * * * * * * * * * Function type: ref @trusted Unpacker(ref string[] array) * * * * * * * * * * * DtoArgument * * * * * * * * * * * * DotVarExp::toElem: object.importPaths @ string[] * * * * * * * * * * * * * VarExp::toElem: object @ AutocompleteResponse * * * * * * * * * * * * * * DtoSymbolAddress ('object' of type 'AutocompleteResponse') * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * type: AutocompleteResponse * * * * * * * * * * * * * Indexing aggregate field common.messages.AutocompleteResponse.importPaths: * * * * * * * * * * * * * * Value: %69 = getelementptr %common.messages.AutocompleteResponse, %common.messages.AutocompleteResponse* %object_arg, i32 0, i32 7 * * * * * ReturnStatement::toIR(): msgpack-d/src/msgpack.d(2484) * * * * * * AddrExp::toElem: &this @ Unpacker* * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * normal this exp * * * * * * * is nothing special * * * * * * * lval: %msgpack.Unpacker* %.this_arg * * * * * * return value is '0x134806c0' * TypeInfoDeclaration::codegen(typeid(AutocompleteResponse)) * TemplateInstance::codegen: 'msgpack.SerializingMemberNumbers!(AutocompleteResponse)' * * VarDeclaration::codegen(): 'msgpack.SerializingMemberNumbers!(AutocompleteResponse).SerializingMemberNumbers' * * * DtoResolveVariable(msgpack.SerializingMemberNumbers!(AutocompleteResponse).SerializingMemberNumbers) * TemplateInstance::codegen: 'msgpack.Unpacker.calculateSize!false' * * DtoDefineFunction(msgpack.Unpacker.calculateSize!false.calculateSize): msgpack-d/src/msgpack.d(2701) * * * Doing function body for: calculateSize * * * DtoCreateNestedContext for calculateSize * * * * DtoCreateNestedContextType for msgpack.Unpacker.calculateSize!false.calculateSize * * * CompoundStatement::toIR(): * * * * ReturnStatement::toIR(): msgpack-d/src/msgpack.d(2706) * * * * * CondExp::toElem: length < 16LU ? 0LU : length < 65536LU ? 2LU : 4LU @ ulong * * * * * * CmpExp::toElem: length < 16LU @ bool * * * * * * * VarExp::toElem: length @ ulong * * * * * * * * DtoSymbolAddress ('length' of type 'const(ulong)') * * * * * * * * * function param * * * * * * * * * type: const(ulong) * * * * * * * IntegerExp::toElem: 16LU @ ulong * * * * * * * * IntegerExp::toConstElem: 16LU @ ulong * * * * * * * * * value = i64 16 * * * * * * * type 1: %1 = load i64, i64* %length * * * * * * * type 2: i64 16 * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * value = i64 0 * * * * * * CondExp::toElem: length < 65536LU ? 2LU : 4LU @ ulong * * * * * * * CmpExp::toElem: length < 65536LU @ bool * * * * * * * * VarExp::toElem: length @ ulong * * * * * * * * * DtoSymbolAddress ('length' of type 'const(ulong)') * * * * * * * * * * function param * * * * * * * * * * type: const(ulong) * * * * * * * * IntegerExp::toElem: 65536LU @ ulong * * * * * * * * * IntegerExp::toConstElem: 65536LU @ ulong * * * * * * * * * * value = i64 65536 * * * * * * * * type 1: %3 = load i64, i64* %length * * * * * * * * type 2: i64 65536 * * * * * * * IntegerExp::toElem: 2LU @ ulong * * * * * * * * IntegerExp::toConstElem: 2LU @ ulong * * * * * * * * * value = i64 2 * * * * * * * IntegerExp::toElem: 4LU @ ulong * * * * * * * * IntegerExp::toConstElem: 4LU @ ulong * * * * * * * * * value = i64 4 * * * * * return value is '0x1349cac8' * TemplateInstance::codegen: 'msgpack.Unpacker.unpack!string' * * DtoDefineFunction(msgpack.Unpacker.unpack!string.unpack): msgpack-d/src/msgpack.d(2236) * * * Doing function body for: unpack * * * DtoCreateNestedContext for unpack * * * * DtoCreateNestedContextType for msgpack.Unpacker.unpack!string.unpack * * * * * has nested frame * * * * * Function unpack has depth 0 * * * * * Nested var 'this' of type %msgpack.Unpacker* * * * * * frameType = %nest.unpack = type { %msgpack.Unpacker* } * * * * nested param: this * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(2237) * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(2238) * * * * * * DeclarationExp::toElem: alias U = immutable(char); | T=void * * * * * * * DtoDeclarationExp: U * * * * * * * * Ignoring Symbol: alias * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(2243) * * * * * * DeclarationExp::toElem: @safe ulong beginRaw() { this.canRead(1LU, 0LU); const const(ubyte) header = this.read(); ulong length = 0LU; if (160 <= cast(int)header && cast(int)header <= 191) { length = cast(ulong)(cast(int)header & 31); } else { switch (cast(int)header) { case 196: case 217: { this.canRead(1LU, 1LU); length = cast(ulong)this.read(); break; } case 197: case 218: { this.canRead(2LU, 1LU); length = load16To(this.read(2LU)); break; } case 198: case 219: { this.canRead(4LU, 1LU); length = load32To(this.read(4LU)); break; } case 192: { break; } default: { this.rollback(0LU); } } } return length; } | T=void * * * * * * * DtoDeclarationExp: beginRaw * * * * * * * * FuncDeclaration * * * * * * * * DtoDefineFunction(msgpack.Unpacker.unpack!string.unpack.beginRaw): msgpack-d/src/msgpack.d(2244) * * * * * * * * * DtoFunctionType(@safe ulong()) * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: i64 (i8*) * * * * * * * * * DtoResolveFunction(msgpack.Unpacker.unpack!string.unpack.beginRaw): msgpack-d/src/msgpack.d(2244) * * * * * * * * * * DtoDeclareFunction(msgpack.Unpacker.unpack!string.unpack.beginRaw): msgpack-d/src/msgpack.d(2244) * * * * * * * * * * * DtoFunctionType(@safe ulong()) * * * * * * * * * * * func = declare i64 @_D7msgpack8Unpacker15__T6unpackTAyaZ6unpackMFNcNeKAyaZ8beginRawMFNfZm(i8*) * * * * * * * * * Doing function body for: beginRaw * * * * * * * * * DtoCreateNestedContext for beginRaw * * * * * * * * * * DtoCreateNestedContextType for msgpack.Unpacker.unpack!string.unpack.beginRaw * * * * * * * * * * * DtoCreateNestedContextType for msgpack.Unpacker.unpack!string.unpack * * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(2245) * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(2246) * * * * * * * * * * * * CallExp::toElem: this.canRead(1LU, 0LU) @ void * * * * * * * * * * * * * DotVarExp::toElem: this.canRead @ @safe void(const(ulong) size, const(ulong) offset = 1LU) * * * * * * * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * * * * * * * nested this exp * * * * * * * * * * * * * * * DtoNestedVariable for this @ msgpack-d/src/msgpack.d(2246) * * * * * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.Unpacker.unpack!string.unpack * * * * * * * * * * * * * * * * Context: %2 = bitcast i8* %1 to %nest.unpack* * * * * * * * * * * * * * * * * of type: %nest.unpack = type { %msgpack.Unpacker* } * * * * * * * * * * * * * * * * Variable: this * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * Function: beginRaw * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * Addr: %this = getelementptr %nest.unpack, %nest.unpack* %2, i32 0, i32 0 * * * * * * * * * * * * * * * * of type: %msgpack.Unpacker** * * * * * * * * * * * * * * * * Was byref, now: %3 = load %msgpack.Unpacker*, %msgpack.Unpacker** %this, align 8 * * * * * * * * * * * * * * * * of type: %msgpack.Unpacker* * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * %3 = load %msgpack.Unpacker*, %msgpack.Unpacker** %this, align 8 * * * * * * * * * * * * * * Function type: @safe void(const(ulong) size, const(ulong) offset = 1LU) * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ const(ulong) * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ const(ulong) * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ const(ulong) * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ const(ulong) * * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(2247) * * * * * * * * * * * * DeclarationExp::toElem: const const(ubyte) header = this.read(); | T=void * * * * * * * * * * * * * DtoDeclarationExp: header * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = const(ubyte)) * * * * * * * * * * * * * * * llvm value for decl: %header = alloca i8, align 1 * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * AssignExp::toElem: header = this.read() | (const(ubyte))(const(ubyte) = const(ubyte)) * * * * * * * * * * * * * * * * VarExp::toElem: header @ const(ubyte) * * * * * * * * * * * * * * * * * DtoSymbolAddress ('header' of type 'const(ubyte)') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * CallExp::toElem: this.read() @ const(ubyte) * * * * * * * * * * * * * * * * * DotVarExp::toElem: this.read @ nothrow @safe ubyte() * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * * * * * * * * * * * nested this exp * * * * * * * * * * * * * * * * * * * DtoNestedVariable for this @ msgpack-d/src/msgpack.d(2247) * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.Unpacker.unpack!string.unpack * * * * * * * * * * * * * * * * * * * * Context: %5 = bitcast i8* %4 to %nest.unpack* * * * * * * * * * * * * * * * * * * * * of type: %nest.unpack = type { %msgpack.Unpacker* } * * * * * * * * * * * * * * * * * * * * Variable: this * * * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * * * Function: beginRaw * * * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * * * Addr: %this1 = getelementptr %nest.unpack, %nest.unpack* %5, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * * of type: %msgpack.Unpacker** * * * * * * * * * * * * * * * * * * * * Was byref, now: %6 = load %msgpack.Unpacker*, %msgpack.Unpacker** %this1, align 8 * * * * * * * * * * * * * * * * * * * * of type: %msgpack.Unpacker* * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * * %6 = load %msgpack.Unpacker*, %msgpack.Unpacker** %this1, align 8 * * * * * * * * * * * * * * * * * * Function type: nothrow @safe ubyte() * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * lhs: %header = alloca i8, align 1 * * * * * * * * * * * * * * * * * rhs: %7 = call zeroext i8 @_D7msgpack8Unpacker4readMFNbNfZh(%msgpack.Unpacker* %6) * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(2248) * * * * * * * * * * * * DeclarationExp::toElem: ulong length = 0LU; | T=void * * * * * * * * * * * * * DtoDeclarationExp: length * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * * * * * * * llvm value for decl: %length = alloca i64, align 8 * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * AssignExp::toElem: length = 0LU | (ulong)(ulong = ulong) * * * * * * * * * * * * * * * * VarExp::toElem: length @ ulong * * * * * * * * * * * * * * * * * DtoSymbolAddress ('length' of type 'ulong') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * lhs: %length = alloca i64, align 8 * * * * * * * * * * * * * * * * * rhs: i64 0 * * * * * * * * * * * IfStatement::toIR(): msgpack-d/src/msgpack.d(2250) * * * * * * * * * * * * AndAndExp::toElem: 160 <= cast(int)header && cast(int)header <= 191 @ bool * * * * * * * * * * * * * CmpExp::toElem: 160 <= cast(int)header @ bool * * * * * * * * * * * * * * IntegerExp::toElem: 160 @ int * * * * * * * * * * * * * * * IntegerExp::toConstElem: 160 @ int * * * * * * * * * * * * * * * * value = i32 160 * * * * * * * * * * * * * * CastExp::toElem: cast(int)header @ int * * * * * * * * * * * * * * * VarExp::toElem: header @ const(ubyte) * * * * * * * * * * * * * * * * DtoSymbolAddress ('header' of type 'const(ubyte)') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * Casting from 'const(ubyte)' to 'int' * * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * * * type 1: i32 160 * * * * * * * * * * * * * * type 2: %9 = zext i8 %8 to i32 * * * * * * * * * * * * * CmpExp::toElem: cast(int)header <= 191 @ bool * * * * * * * * * * * * * * CastExp::toElem: cast(int)header @ int * * * * * * * * * * * * * * * VarExp::toElem: header @ const(ubyte) * * * * * * * * * * * * * * * * DtoSymbolAddress ('header' of type 'const(ubyte)') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * Casting from 'const(ubyte)' to 'int' * * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * * * IntegerExp::toElem: 191 @ int * * * * * * * * * * * * * * * IntegerExp::toConstElem: 191 @ int * * * * * * * * * * * * * * * * value = i32 191 * * * * * * * * * * * * * * type 1: %12 = zext i8 %11 to i32 * * * * * * * * * * * * * * type 2: i32 191 * * * * * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(2250) * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(2251) * * * * * * * * * * * * * * AssignExp::toElem: length = cast(ulong)(cast(int)header & 31) | (ulong)(ulong = ulong) * * * * * * * * * * * * * * * VarExp::toElem: length @ ulong * * * * * * * * * * * * * * * * DtoSymbolAddress ('length' of type 'ulong') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * CastExp::toElem: cast(ulong)(cast(int)header & 31) @ ulong * * * * * * * * * * * * * * * * AndExp::toElem: cast(int)header & 31 @ int * * * * * * * * * * * * * * * * * CastExp::toElem: cast(int)header @ int * * * * * * * * * * * * * * * * * * VarExp::toElem: header @ const(ubyte) * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('header' of type 'const(ubyte)') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * Casting from 'const(ubyte)' to 'int' * * * * * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * * * * * * IntegerExp::toElem: 31 @ int * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 31 @ int * * * * * * * * * * * * * * * * * * * value = i32 31 * * * * * * * * * * * * * * * * Casting from 'int' to 'ulong' * * * * * * * * * * * * * * * * * cast to: i64 * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * lhs: %length = alloca i64, align 8 * * * * * * * * * * * * * * * * rhs: %17 = sext i32 %16 to i64 * * * * * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(2252) * * * * * * * * * * * * * SwitchStatement::toIR(): msgpack-d/src/msgpack.d(2253) * * * * * * * * * * * * * * has default * * * * * * * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(2253) * * * * * * * * * * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(2253) * * * * * * * * * * * * * * * * CaseStatement::toIR(): msgpack-d/src/msgpack.d(2254) * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 196 @ int * * * * * * * * * * * * * * * * * * value = i32 196 * * * * * * * * * * * * * * * * * CaseStatement::toIR(): msgpack-d/src/msgpack.d(2254) * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 217 @ int * * * * * * * * * * * * * * * * * * * value = i32 217 * * * * * * * * * * * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(2254) * * * * * * * * * * * * * * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(2254) * * * * * * * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(2255) * * * * * * * * * * * * * * * * * * * * * CallExp::toElem: this.canRead(1LU, 1LU) @ void * * * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: this.canRead @ @safe void(const(ulong) size, const(ulong) offset = 1LU) * * * * * * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * * * * * * * * * * * * * * * * nested this exp * * * * * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for this @ msgpack-d/src/msgpack.d(2255) * * * * * * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.Unpacker.unpack!string.unpack * * * * * * * * * * * * * * * * * * * * * * * * * Context: %19 = bitcast i8* %18 to %nest.unpack* * * * * * * * * * * * * * * * * * * * * * * * * * of type: %nest.unpack = type { %msgpack.Unpacker* } * * * * * * * * * * * * * * * * * * * * * * * * * Variable: this * * * * * * * * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * * * * * * * * Function: beginRaw * * * * * * * * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * * * * * * * * Addr: %this3 = getelementptr %nest.unpack, %nest.unpack* %19, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * * * * * * * of type: %msgpack.Unpacker** * * * * * * * * * * * * * * * * * * * * * * * * * Was byref, now: %20 = load %msgpack.Unpacker*, %msgpack.Unpacker** %this3, align 8 * * * * * * * * * * * * * * * * * * * * * * * * * of type: %msgpack.Unpacker* * * * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * * * * * * * %20 = load %msgpack.Unpacker*, %msgpack.Unpacker** %this3, align 8 * * * * * * * * * * * * * * * * * * * * * * * Function type: @safe void(const(ulong) size, const(ulong) offset = 1LU) * * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ const(ulong) * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ const(ulong) * * * * * * * * * * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ const(ulong) * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ const(ulong) * * * * * * * * * * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(2256) * * * * * * * * * * * * * * * * * * * * * AssignExp::toElem: length = cast(ulong)this.read() | (ulong)(ulong = ulong) * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: length @ ulong * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('length' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * CastExp::toElem: cast(ulong)this.read() @ ulong * * * * * * * * * * * * * * * * * * * * * * * CallExp::toElem: this.read() @ ubyte * * * * * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: this.read @ nothrow @safe ubyte() * * * * * * * * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * * * * * * * * * * * * * * * * * * nested this exp * * * * * * * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for this @ msgpack-d/src/msgpack.d(2256) * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.Unpacker.unpack!string.unpack * * * * * * * * * * * * * * * * * * * * * * * * * * * Context: %22 = bitcast i8* %21 to %nest.unpack* * * * * * * * * * * * * * * * * * * * * * * * * * * * of type: %nest.unpack = type { %msgpack.Unpacker* } * * * * * * * * * * * * * * * * * * * * * * * * * * * Variable: this * * * * * * * * * * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * * * * * * * * * * Function: beginRaw * * * * * * * * * * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * * * * * * * * * * Addr: %this4 = getelementptr %nest.unpack, %nest.unpack* %22, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * * * * * * * * * of type: %msgpack.Unpacker** * * * * * * * * * * * * * * * * * * * * * * * * * * * Was byref, now: %23 = load %msgpack.Unpacker*, %msgpack.Unpacker** %this4, align 8 * * * * * * * * * * * * * * * * * * * * * * * * * * * of type: %msgpack.Unpacker* * * * * * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * * * * * * * * * %23 = load %msgpack.Unpacker*, %msgpack.Unpacker** %this4, align 8 * * * * * * * * * * * * * * * * * * * * * * * * * Function type: nothrow @safe ubyte() * * * * * * * * * * * * * * * * * * * * * * * Casting from 'ubyte' to 'ulong' * * * * * * * * * * * * * * * * * * * * * * * * cast to: i64 * * * * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * * * * lhs: %length = alloca i64, align 8 * * * * * * * * * * * * * * * * * * * * * * * rhs: %25 = zext i8 %24 to i64 * * * * * * * * * * * * * * * * * * * * BreakStatement::toIR(): msgpack-d/src/msgpack.d(2257) * * * * * * * * * * * * * * * * CaseStatement::toIR(): msgpack-d/src/msgpack.d(2258) * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 197 @ int * * * * * * * * * * * * * * * * * * value = i32 197 * * * * * * * * * * * * * * * * * CaseStatement::toIR(): msgpack-d/src/msgpack.d(2258) * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 218 @ int * * * * * * * * * * * * * * * * * * * value = i32 218 * * * * * * * * * * * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(2258) * * * * * * * * * * * * * * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(2258) * * * * * * * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(2259) * * * * * * * * * * * * * * * * * * * * * CallExp::toElem: this.canRead(2LU, 1LU) @ void * * * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: this.canRead @ @safe void(const(ulong) size, const(ulong) offset = 1LU) * * * * * * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * * * * * * * * * * * * * * * * nested this exp * * * * * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for this @ msgpack-d/src/msgpack.d(2259) * * * * * * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.Unpacker.unpack!string.unpack * * * * * * * * * * * * * * * * * * * * * * * * * Context: %27 = bitcast i8* %26 to %nest.unpack* * * * * * * * * * * * * * * * * * * * * * * * * * of type: %nest.unpack = type { %msgpack.Unpacker* } * * * * * * * * * * * * * * * * * * * * * * * * * Variable: this * * * * * * * * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * * * * * * * * Function: beginRaw * * * * * * * * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * * * * * * * * Addr: %this7 = getelementptr %nest.unpack, %nest.unpack* %27, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * * * * * * * of type: %msgpack.Unpacker** * * * * * * * * * * * * * * * * * * * * * * * * * Was byref, now: %28 = load %msgpack.Unpacker*, %msgpack.Unpacker** %this7, align 8 * * * * * * * * * * * * * * * * * * * * * * * * * of type: %msgpack.Unpacker* * * * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * * * * * * * %28 = load %msgpack.Unpacker*, %msgpack.Unpacker** %this7, align 8 * * * * * * * * * * * * * * * * * * * * * * * Function type: @safe void(const(ulong) size, const(ulong) offset = 1LU) * * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 2LU @ const(ulong) * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 2LU @ const(ulong) * * * * * * * * * * * * * * * * * * * * * * * * * * value = i64 2 * * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ const(ulong) * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ const(ulong) * * * * * * * * * * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(2260) * * * * * * * * * * * * * * * * * * * * * AssignExp::toElem: length = load16To(this.read(2LU)) | (ulong)(ulong = ulong) * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: length @ ulong * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('length' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * CallExp::toElem: load16To(this.read(2LU)) @ ulong * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: load16To @ pure nothrow @nogc @trusted ulong(ubyte[] buffer) * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('load16To' of type 'pure nothrow @nogc @trusted ulong(ubyte[] buffer)') * * * * * * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @trusted ulong(ubyte[] buffer) * * * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * * * CallExp::toElem: this.read(2LU) @ ubyte[] * * * * * * * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: this.read @ nothrow @safe ubyte[](const(ulong) size) * * * * * * * * * * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * * * * * * * * * * * * * * * * * * * * nested this exp * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for this @ msgpack-d/src/msgpack.d(2260) * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.Unpacker.unpack!string.unpack * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Context: %30 = bitcast i8* %29 to %nest.unpack* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * of type: %nest.unpack = type { %msgpack.Unpacker* } * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Variable: this * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Function: beginRaw * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Addr: %this8 = getelementptr %nest.unpack, %nest.unpack* %30, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * of type: %msgpack.Unpacker** * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Was byref, now: %31 = load %msgpack.Unpacker*, %msgpack.Unpacker** %this8, align 8 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * of type: %msgpack.Unpacker* * * * * * * * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * * * * * * * * * * * %31 = load %msgpack.Unpacker*, %msgpack.Unpacker** %this8, align 8 * * * * * * * * * * * * * * * * * * * * * * * * * * * Function type: nothrow @safe ubyte[](const(ulong) size) * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 2LU @ const(ulong) * * * * * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 2LU @ const(ulong) * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * value = i64 2 * * * * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * * * * lhs: %length = alloca i64, align 8 * * * * * * * * * * * * * * * * * * * * * * * rhs: %33 = call i64 @_D7msgpack15__T8load16ToTmZ8load16ToFNaNbNiNeAhZm({ i64, i8* } %32) * * * * * * * * * * * * * * * * * * * * BreakStatement::toIR(): msgpack-d/src/msgpack.d(2261) * * * * * * * * * * * * * * * * CaseStatement::toIR(): msgpack-d/src/msgpack.d(2262) * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 198 @ int * * * * * * * * * * * * * * * * * * value = i32 198 * * * * * * * * * * * * * * * * * CaseStatement::toIR(): msgpack-d/src/msgpack.d(2262) * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 219 @ int * * * * * * * * * * * * * * * * * * * value = i32 219 * * * * * * * * * * * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(2262) * * * * * * * * * * * * * * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(2262) * * * * * * * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(2263) * * * * * * * * * * * * * * * * * * * * * CallExp::toElem: this.canRead(4LU, 1LU) @ void * * * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: this.canRead @ @safe void(const(ulong) size, const(ulong) offset = 1LU) * * * * * * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * * * * * * * * * * * * * * * * nested this exp * * * * * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for this @ msgpack-d/src/msgpack.d(2263) * * * * * * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.Unpacker.unpack!string.unpack * * * * * * * * * * * * * * * * * * * * * * * * * Context: %35 = bitcast i8* %34 to %nest.unpack* * * * * * * * * * * * * * * * * * * * * * * * * * of type: %nest.unpack = type { %msgpack.Unpacker* } * * * * * * * * * * * * * * * * * * * * * * * * * Variable: this * * * * * * * * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * * * * * * * * Function: beginRaw * * * * * * * * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * * * * * * * * Addr: %this12 = getelementptr %nest.unpack, %nest.unpack* %35, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * * * * * * * of type: %msgpack.Unpacker** * * * * * * * * * * * * * * * * * * * * * * * * * Was byref, now: %36 = load %msgpack.Unpacker*, %msgpack.Unpacker** %this12, align 8 * * * * * * * * * * * * * * * * * * * * * * * * * of type: %msgpack.Unpacker* * * * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * * * * * * * %36 = load %msgpack.Unpacker*, %msgpack.Unpacker** %this12, align 8 * * * * * * * * * * * * * * * * * * * * * * * Function type: @safe void(const(ulong) size, const(ulong) offset = 1LU) * * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 4LU @ const(ulong) * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 4LU @ const(ulong) * * * * * * * * * * * * * * * * * * * * * * * * * * value = i64 4 * * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ const(ulong) * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ const(ulong) * * * * * * * * * * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(2264) * * * * * * * * * * * * * * * * * * * * * AssignExp::toElem: length = load32To(this.read(4LU)) | (ulong)(ulong = ulong) * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: length @ ulong * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('length' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * CallExp::toElem: load32To(this.read(4LU)) @ ulong * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: load32To @ pure nothrow @nogc @trusted ulong(ubyte[] buffer) * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('load32To' of type 'pure nothrow @nogc @trusted ulong(ubyte[] buffer)') * * * * * * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @trusted ulong(ubyte[] buffer) * * * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * * * CallExp::toElem: this.read(4LU) @ ubyte[] * * * * * * * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: this.read @ nothrow @safe ubyte[](const(ulong) size) * * * * * * * * * * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * * * * * * * * * * * * * * * * * * * * nested this exp * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for this @ msgpack-d/src/msgpack.d(2264) * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.Unpacker.unpack!string.unpack * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Context: %38 = bitcast i8* %37 to %nest.unpack* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * of type: %nest.unpack = type { %msgpack.Unpacker* } * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Variable: this * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Function: beginRaw * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Addr: %this13 = getelementptr %nest.unpack, %nest.unpack* %38, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * of type: %msgpack.Unpacker** * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Was byref, now: %39 = load %msgpack.Unpacker*, %msgpack.Unpacker** %this13, align 8 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * of type: %msgpack.Unpacker* * * * * * * * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * * * * * * * * * * * %39 = load %msgpack.Unpacker*, %msgpack.Unpacker** %this13, align 8 * * * * * * * * * * * * * * * * * * * * * * * * * * * Function type: nothrow @safe ubyte[](const(ulong) size) * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 4LU @ const(ulong) * * * * * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 4LU @ const(ulong) * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * value = i64 4 * * * * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * * * * lhs: %length = alloca i64, align 8 * * * * * * * * * * * * * * * * * * * * * * * rhs: %41 = call i64 @_D7msgpack15__T8load32ToTmZ8load32ToFNaNbNiNeAhZm({ i64, i8* } %40) * * * * * * * * * * * * * * * * * * * * BreakStatement::toIR(): msgpack-d/src/msgpack.d(2265) * * * * * * * * * * * * * * * * CaseStatement::toIR(): msgpack-d/src/msgpack.d(2266) * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 192 @ int * * * * * * * * * * * * * * * * * * value = i32 192 * * * * * * * * * * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(2266) * * * * * * * * * * * * * * * * * * BreakStatement::toIR(): msgpack-d/src/msgpack.d(2267) * * * * * * * * * * * * * * * * DefaultStatement::toIR(): msgpack-d/src/msgpack.d(2268) * * * * * * * * * * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(2268) * * * * * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(2269) * * * * * * * * * * * * * * * * * * * CallExp::toElem: this.rollback(0LU) @ void * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: this.rollback @ @safe void(const(ulong) size = 0LU) * * * * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * * * * * * * * * * * * * * nested this exp * * * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for this @ msgpack-d/src/msgpack.d(2269) * * * * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.Unpacker.unpack!string.unpack * * * * * * * * * * * * * * * * * * * * * * * Context: %43 = bitcast i8* %42 to %nest.unpack* * * * * * * * * * * * * * * * * * * * * * * * of type: %nest.unpack = type { %msgpack.Unpacker* } * * * * * * * * * * * * * * * * * * * * * * * Variable: this * * * * * * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * * * * * * Function: beginRaw * * * * * * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * * * * * * Addr: %this18 = getelementptr %nest.unpack, %nest.unpack* %43, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * * * * * of type: %msgpack.Unpacker** * * * * * * * * * * * * * * * * * * * * * * * Was byref, now: %44 = load %msgpack.Unpacker*, %msgpack.Unpacker** %this18, align 8 * * * * * * * * * * * * * * * * * * * * * * * of type: %msgpack.Unpacker* * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * * * * * %44 = load %msgpack.Unpacker*, %msgpack.Unpacker** %this18, align 8 * * * * * * * * * * * * * * * * * * * * * Function type: @safe void(const(ulong) size = 0LU) * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ const(ulong) * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ const(ulong) * * * * * * * * * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * * CastExp::toElem: cast(int)header @ int * * * * * * * * * * * * * * * VarExp::toElem: header @ const(ubyte) * * * * * * * * * * * * * * * * DtoSymbolAddress ('header' of type 'const(ubyte)') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * Casting from 'const(ubyte)' to 'int' * * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * ReturnStatement::toIR(): msgpack-d/src/msgpack.d(2273) * * * * * * * * * * * * VarExp::toElem: length @ ulong * * * * * * * * * * * * * DtoSymbolAddress ('length' of type 'ulong') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * return value is '0x134ae0e8' * * * * * IfStatement::toIR(): msgpack-d/src/msgpack.d(2277) * * * * * * CallExp::toElem: this.checkNil() @ bool * * * * * * * DotVarExp::toElem: this.checkNil @ @safe bool() * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * normal this exp * * * * * * * DtoCallFunction() * * * * * * * * Building type: @safe bool() * * * * * * * * * DtoFunctionType(@safe bool()) * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: i1 () * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (1) * * * * * * * * * %msgpack.Unpacker* %.this_arg * * * * * * * * Function type: @safe bool() * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(2277) * * * * * * * ReturnStatement::toIR(): msgpack-d/src/msgpack.d(2281) * * * * * * * * AddrExp::toElem: &this.unpackNil(array) @ Unpacker* * * * * * * * * * CallExp::toElem: this.unpackNil(array) @ Unpacker * * * * * * * * * * DotVarExp::toElem: this.unpackNil @ ref @safe Unpacker(ref string value) * * * * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * * * * normal this exp * * * * * * * * * * * isMember = this is: Unpacker * * * * * * * * * * * DtoFunctionType(ref @safe Unpacker(ref string value)) * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * Final function type: %msgpack.Unpacker* (%msgpack.Unpacker*, { i64, i8* }*) * * * * * * * * * * * DtoResolveFunction(msgpack.Unpacker.unpackNil!string.unpackNil): msgpack-d/src/msgpack.d(2669) * * * * * * * * * * * * DtoDeclareFunction(msgpack.Unpacker.unpackNil!string.unpackNil): msgpack-d/src/msgpack.d(2669) * * * * * * * * * * * * * isMember = this is: Unpacker * * * * * * * * * * * * * DtoFunctionType(ref @safe Unpacker(ref string value)) * * * * * * * * * * * * * func = declare %msgpack.Unpacker* @_D7msgpack8Unpacker18__T9unpackNilTAyaZ9unpackNilMFNcNfKAyaZS7msgpack8Unpacker(%msgpack.Unpacker*, { i64, i8* }*) * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * Building type: ref @safe Unpacker(ref string value) * * * * * * * * * * * * DtoFunctionType(ref @safe Unpacker(ref string value)) * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * Final function type: %msgpack.Unpacker* ({ i64, i8* }*) * * * * * * * * * * * doing normal arguments * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * %msgpack.Unpacker* %.this_arg * * * * * * * * * * * Function type: ref @safe Unpacker(ref string value) * * * * * * * * * * * DtoArgument * * * * * * * * * * * * VarExp::toElem: array @ string * * * * * * * * * * * * * DtoSymbolAddress ('array' of type 'string') * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * type: string * * * * * * * * * is nothing special * * * * * * * * * lval: %2 = call %msgpack.Unpacker* @_D7msgpack8Unpacker18__T9unpackNilTAyaZ9unpackNilMFNcNfKAyaZS7msgpack8Unpacker(%msgpack.Unpacker* %.this_arg, { i64, i8* }* %array_arg) * * * * * * * * return value is '0x134b0058' * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(2287) * * * * * * DeclarationExp::toElem: ulong length = beginRaw(); | T=void * * * * * * * DtoDeclarationExp: length * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * llvm value for decl: %length = alloca i64, align 8 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: length = beginRaw() | (ulong)(ulong = ulong) * * * * * * * * * * VarExp::toElem: length @ ulong * * * * * * * * * * * DtoSymbolAddress ('length' of type 'ulong') * * * * * * * * * * * * a normal variable * * * * * * * * * * CallExp::toElem: beginRaw() @ ulong * * * * * * * * * * * VarExp::toElem: beginRaw @ @safe ulong() * * * * * * * * * * * * DtoSymbolAddress ('beginRaw' of type '@safe ulong()') * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * Building type: @safe ulong() * * * * * * * * * * * * * DtoFunctionType(@safe ulong()) * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * Final function type: i64 () * * * * * * * * * * * * DtoNestedContext for msgpack.Unpacker.unpack!string.unpack.beginRaw * * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.Unpacker.unpack!string.unpack.beginRaw * * * * * * * * * * * * * Parent frame is from unpack * * * * * * * * * * * * * Current function is unpack * * * * * * * * * * * * * Context is from unpack * * * * * * * * * * * * * Needed depth: 0 * * * * * * * * * * * * * Context depth: 0 * * * * * * * * * * * * * Calling sibling function or directly nested function * * * * * * * * * * * * * result = %.frame = alloca %nest.unpack, align 8 * * * * * * * * * * * * * of type %nest.unpack* * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * %3 = bitcast %nest.unpack* %.frame to i8* * * * * * * * * * * * * Function type: @safe ulong() * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %length = alloca i64, align 8 * * * * * * * * * * * rhs: %4 = call i64 @_D7msgpack8Unpacker15__T6unpackTAyaZ6unpackMFNcNeKAyaZ8beginRawMFNfZm(i8* %3) * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(2288) * * * * * * DeclarationExp::toElem: ulong offset = this.calculateSize(length); | T=void * * * * * * * DtoDeclarationExp: offset * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * llvm value for decl: %offset = alloca i64, align 8 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: offset = this.calculateSize(length) | (ulong)(ulong = ulong) * * * * * * * * * * VarExp::toElem: offset @ ulong * * * * * * * * * * * DtoSymbolAddress ('offset' of type 'ulong') * * * * * * * * * * * * a normal variable * * * * * * * * * * CallExp::toElem: this.calculateSize(length) @ ulong * * * * * * * * * * * DotVarExp::toElem: this.calculateSize @ pure nothrow @nogc @trusted ulong(const(ulong) length) * * * * * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * isMember = this is: Unpacker * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted ulong(const(ulong) length)) * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * Final function type: i64 (%msgpack.Unpacker*, i64) * * * * * * * * * * * * DtoResolveFunction(msgpack.Unpacker.calculateSize!true.calculateSize): msgpack-d/src/msgpack.d(2701) * * * * * * * * * * * * * DtoDeclareFunction(msgpack.Unpacker.calculateSize!true.calculateSize): msgpack-d/src/msgpack.d(2701) * * * * * * * * * * * * * * isMember = this is: Unpacker * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted ulong(const(ulong) length)) * * * * * * * * * * * * * * func = declare i64 @_D7msgpack8Unpacker23__T13calculateSizeVbi1Z13calculateSizeMFNaNbNiNexmZm(%msgpack.Unpacker*, i64) * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * Building type: pure nothrow @nogc @trusted ulong(const(ulong) length) * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted ulong(const(ulong) length)) * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * Final function type: i64 (i64) * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * %msgpack.Unpacker* %.this_arg * * * * * * * * * * * * Function type: pure nothrow @nogc @trusted ulong(const(ulong) length) * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * VarExp::toElem: length @ const(ulong) * * * * * * * * * * * * * * DtoSymbolAddress ('length' of type 'ulong') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %offset = alloca i64, align 8 * * * * * * * * * * * rhs: %6 = call i64 @_D7msgpack8Unpacker23__T13calculateSizeVbi1Z13calculateSizeMFNaNbNiNexmZm(%msgpack.Unpacker* %.this_arg, i64 %5) * * * * * IfStatement::toIR(): msgpack-d/src/msgpack.d(2289) * * * * * * EqualExp::toElem: length == 0LU @ bool * * * * * * * VarExp::toElem: length @ ulong * * * * * * * * DtoSymbolAddress ('length' of type 'ulong') * * * * * * * * * a normal variable * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * value = i64 0 * * * * * * * integral or pointer or interface * * * * * * * lv: %7 = load i64, i64* %length * * * * * * * rv: i64 0 * * * * * * ReturnStatement::toIR(): msgpack-d/src/msgpack.d(2290) * * * * * * * AddrExp::toElem: &this @ Unpacker* * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * normal this exp * * * * * * * * is nothing special * * * * * * * * lval: %msgpack.Unpacker* %.this_arg * * * * * * * return value is '0x1348acc0' * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(2297) * * * * * * CallExp::toElem: this.canRead(length, offset + 1LU) @ void * * * * * * * DotVarExp::toElem: this.canRead @ @safe void(const(ulong) size, const(ulong) offset = 1LU) * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * normal this exp * * * * * * * DtoCallFunction() * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (1) * * * * * * * * * %msgpack.Unpacker* %.this_arg * * * * * * * * Function type: @safe void(const(ulong) size, const(ulong) offset = 1LU) * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: length @ const(ulong) * * * * * * * * * * DtoSymbolAddress ('length' of type 'ulong') * * * * * * * * * * * a normal variable * * * * * * * * DtoArgument * * * * * * * * * AddExp::toElem: offset + 1LU @ const(ulong) * * * * * * * * * * VarExp::toElem: offset @ ulong * * * * * * * * * * * DtoSymbolAddress ('offset' of type 'ulong') * * * * * * * * * * * * a normal variable * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * value = i64 1 * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(2301) * * * * * * AssignExp::toElem: array = cast(string)this.read(length) | (string)(string = string) * * * * * * * VarExp::toElem: array @ string * * * * * * * * DtoSymbolAddress ('array' of type 'string') * * * * * * * * * function param * * * * * * * * * type: string * * * * * * * CastExp::toElem: cast(string)this.read(length) @ string * * * * * * * * CallExp::toElem: this.read(length) @ ubyte[] * * * * * * * * * DotVarExp::toElem: this.read @ nothrow @safe ubyte[](const(ulong) size) * * * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * * * normal this exp * * * * * * * * * DtoCallFunction() * * * * * * * * * * doing normal arguments * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * %msgpack.Unpacker* %.this_arg * * * * * * * * * * Function type: nothrow @safe ubyte[](const(ulong) size) * * * * * * * * * * DtoArgument * * * * * * * * * * * VarExp::toElem: length @ const(ulong) * * * * * * * * * * * * DtoSymbolAddress ('length' of type 'ulong') * * * * * * * * * * * * * a normal variable * * * * * * * * Casting from 'ubyte[]' to 'string' * * * * * * * * * DtoCastArray * * * * * * * * * * from array or sarray * * * * * * * * * * to array * * * * * * * * * * DtoArrayLen * * * * * * * * * * DtoArrayPtr * * * * * * * * * * isslice * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * DtoAssign() * * * * * * * * DtoArrayAssign * * * * * * * * * DtoArrayPtr * * * * * * * * * DtoArrayLen * * * * * * * * * SetArray * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(2305) * * * * * * AssignExp::toElem: this.hasRaw_ = true | (bool)(bool = bool) * * * * * * * DotVarExp::toElem: this.hasRaw_ @ bool * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * normal this exp * * * * * * * * Indexing aggregate field msgpack.Unpacker.InternalBuffer!().hasRaw_: * * * * * * * * * Value: %16 = getelementptr %msgpack.Unpacker, %msgpack.Unpacker* %.this_arg, i32 0, i32 4 * * * * * * * IntegerExp::toElem: true @ bool * * * * * * * * IntegerExp::toConstElem: true @ bool * * * * * * * * * value = i1 true * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * DtoAssign() * * * * * ReturnStatement::toIR(): msgpack-d/src/msgpack.d(2322) * * * * * * AddrExp::toElem: &this @ Unpacker* * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * normal this exp * * * * * * * is nothing special * * * * * * * lval: %msgpack.Unpacker* %.this_arg * * * * * * return value is '0x1348acc0' * TemplateInstance::codegen: 'msgpack.load16To!ulong' * * DtoDefineFunction(msgpack.load16To!ulong.load16To): msgpack-d/src/msgpack.d(5177) * * * Doing function body for: load16To * * * DtoCreateNestedContext for load16To * * * * DtoCreateNestedContextType for msgpack.load16To!ulong.load16To * * * CompoundStatement::toIR(): * * * * ReturnStatement::toIR(): msgpack-d/src/msgpack.d(5179) * * * * * CastExp::toElem: cast(ulong)convertEndianTo(*cast(ushort*)cast(ubyte*)buffer) @ ulong * * * * * * CallExp::toElem: convertEndianTo(*cast(ushort*)cast(ubyte*)buffer) @ ushort * * * * * * * VarExp::toElem: convertEndianTo @ pure nothrow @nogc @trusted ushort(const(ushort) value) * * * * * * * * DtoSymbolAddress ('convertEndianTo' of type 'pure nothrow @nogc @trusted ushort(const(ushort) value)') * * * * * * * * * FuncDeclaration * * * * * * * DtoCallFunction() * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (0) * * * * * * * * Function type: pure nothrow @nogc @trusted ushort(const(ushort) value) * * * * * * * * DtoArgument * * * * * * * * * PtrExp::toElem: *cast(ushort*)cast(ubyte*)buffer @ const(ushort) * * * * * * * * * * CastExp::toElem: cast(ushort*)cast(ubyte*)buffer @ ushort* * * * * * * * * * * * CastExp::toElem: cast(ubyte*)buffer @ ubyte* * * * * * * * * * * * * VarExp::toElem: buffer @ ubyte[] * * * * * * * * * * * * * DtoSymbolAddress ('buffer' of type 'ubyte[]') * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * type: ubyte[] * * * * * * * * * * * * Casting from 'ubyte[]' to 'ubyte*' * * * * * * * * * * * * * DtoCastArray * * * * * * * * * * * * * * from array or sarray * * * * * * * * * * * * * * to pointer * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * Casting from 'ubyte*' to 'ushort*' * * * * * * * * * * * * src: %.ptr = load i8*, i8** %1 * * * * * * * * * * * * to type: i16* * * * * * * Casting from 'ushort' to 'ulong' * * * * * * * cast to: i64 * * * * * return value is '0x134b6c28' * TemplateInstance::codegen: 'msgpack.load32To!ulong' * * DtoDefineFunction(msgpack.load32To!ulong.load32To): msgpack-d/src/msgpack.d(5184) * * * Doing function body for: load32To * * * DtoCreateNestedContext for load32To * * * * DtoCreateNestedContextType for msgpack.load32To!ulong.load32To * * * CompoundStatement::toIR(): * * * * ReturnStatement::toIR(): msgpack-d/src/msgpack.d(5186) * * * * * CastExp::toElem: cast(ulong)convertEndianTo(*cast(uint*)cast(ubyte*)buffer) @ ulong * * * * * * CallExp::toElem: convertEndianTo(*cast(uint*)cast(ubyte*)buffer) @ uint * * * * * * * VarExp::toElem: convertEndianTo @ pure nothrow @nogc @trusted uint(const(uint) value) * * * * * * * * DtoSymbolAddress ('convertEndianTo' of type 'pure nothrow @nogc @trusted uint(const(uint) value)') * * * * * * * * * FuncDeclaration * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted uint(const(uint) value)) * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: i32 (i32) * * * * * * * * * DtoResolveFunction(msgpack.convertEndianTo!(32, uint).convertEndianTo): msgpack-d/src/msgpack.d(5044) * * * * * * * * * * DtoDeclareFunction(msgpack.convertEndianTo!(32, uint).convertEndianTo): msgpack-d/src/msgpack.d(5044) * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted uint(const(uint) value)) * * * * * * * * * * * func = declare i32 @_D7msgpack28__T15convertEndianToVii32TkZ15convertEndianToFNaNbNiNexkZk(i32) * * * * * * * DtoCallFunction() * * * * * * * * Building type: pure nothrow @nogc @trusted uint(const(uint) value) * * * * * * * * * DtoFunctionType(pure nothrow @nogc @trusted uint(const(uint) value)) * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: i32 (i32) * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (0) * * * * * * * * Function type: pure nothrow @nogc @trusted uint(const(uint) value) * * * * * * * * DtoArgument * * * * * * * * * PtrExp::toElem: *cast(uint*)cast(ubyte*)buffer @ const(uint) * * * * * * * * * * CastExp::toElem: cast(uint*)cast(ubyte*)buffer @ uint* * * * * * * * * * * * CastExp::toElem: cast(ubyte*)buffer @ ubyte* * * * * * * * * * * * * VarExp::toElem: buffer @ ubyte[] * * * * * * * * * * * * * DtoSymbolAddress ('buffer' of type 'ubyte[]') * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * type: ubyte[] * * * * * * * * * * * * Casting from 'ubyte[]' to 'ubyte*' * * * * * * * * * * * * * DtoCastArray * * * * * * * * * * * * * * from array or sarray * * * * * * * * * * * * * * to pointer * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * Casting from 'ubyte*' to 'uint*' * * * * * * * * * * * * src: %.ptr = load i8*, i8** %1 * * * * * * * * * * * * to type: i32* * * * * * * Casting from 'uint' to 'ulong' * * * * * * * cast to: i64 * * * * * return value is '0x134b9428' * TemplateInstance::codegen: 'msgpack.convertEndianTo!(32, uint)' * * DtoDefineFunction(msgpack.convertEndianTo!(32, uint).convertEndianTo): msgpack-d/src/msgpack.d(5044) * * * Doing function body for: convertEndianTo * * * DtoCreateNestedContext for convertEndianTo * * * * DtoCreateNestedContextType for msgpack.convertEndianTo!(32, uint).convertEndianTo * * * CompoundStatement::toIR(): * * * * ReturnStatement::toIR(): msgpack-d/src/msgpack.d(5046) * * * * * CallExp::toElem: ntohl(value) @ uint * * * * * * VarExp::toElem: ntohl @ pure nothrow @nogc @trusted extern (C) uint(uint) * * * * * * * DtoSymbolAddress ('ntohl' of type 'pure nothrow @nogc @trusted extern (C) uint(uint)') * * * * * * * * FuncDeclaration * * * * * * DtoCallFunction() * * * * * * * doing normal arguments * * * * * * * Arguments so far: (0) * * * * * * * Function type: pure nothrow @nogc @trusted extern (C) uint(uint) * * * * * * * DtoArgument * * * * * * * * VarExp::toElem: value @ uint * * * * * * * * * DtoSymbolAddress ('value' of type 'const(uint)') * * * * * * * * * * function param * * * * * * * * * * type: const(uint) * * * * * return value is '0x134ba460' * TemplateInstance::codegen: 'msgpack.Unpacker.unpackNil!string' * * DtoDefineFunction(msgpack.Unpacker.unpackNil!string.unpackNil): msgpack-d/src/msgpack.d(2669) * * * Doing function body for: unpackNil * * * DtoCreateNestedContext for unpackNil * * * * DtoCreateNestedContextType for msgpack.Unpacker.unpackNil!string.unpackNil * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(2670) * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(2671) * * * * * * CallExp::toElem: this.canRead(1LU, 0LU) @ void * * * * * * * DotVarExp::toElem: this.canRead @ @safe void(const(ulong) size, const(ulong) offset = 1LU) * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * normal this exp * * * * * * * DtoCallFunction() * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (1) * * * * * * * * * %msgpack.Unpacker* %.this_arg * * * * * * * * Function type: @safe void(const(ulong) size, const(ulong) offset = 1LU) * * * * * * * * DtoArgument * * * * * * * * * IntegerExp::toElem: 1LU @ const(ulong) * * * * * * * * * * IntegerExp::toConstElem: 1LU @ const(ulong) * * * * * * * * * * * value = i64 1 * * * * * * * * DtoArgument * * * * * * * * * IntegerExp::toElem: 0LU @ const(ulong) * * * * * * * * * * IntegerExp::toConstElem: 0LU @ const(ulong) * * * * * * * * * * * value = i64 0 * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(2672) * * * * * * DeclarationExp::toElem: const const(ubyte) header = this.read(); | T=void * * * * * * * DtoDeclarationExp: header * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = const(ubyte)) * * * * * * * * * llvm value for decl: %header = alloca i8, align 1 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: header = this.read() | (const(ubyte))(const(ubyte) = const(ubyte)) * * * * * * * * * * VarExp::toElem: header @ const(ubyte) * * * * * * * * * * * DtoSymbolAddress ('header' of type 'const(ubyte)') * * * * * * * * * * * * a normal variable * * * * * * * * * * CallExp::toElem: this.read() @ const(ubyte) * * * * * * * * * * * DotVarExp::toElem: this.read @ nothrow @safe ubyte() * * * * * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * * * * * normal this exp * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * %msgpack.Unpacker* %.this_arg * * * * * * * * * * * * Function type: nothrow @safe ubyte() * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %header = alloca i8, align 1 * * * * * * * * * * * rhs: %1 = call zeroext i8 @_D7msgpack8Unpacker4readMFNbNfZh(%msgpack.Unpacker* %.this_arg) * * * * * IfStatement::toIR(): msgpack-d/src/msgpack.d(2674) * * * * * * EqualExp::toElem: cast(int)header == 192 @ bool * * * * * * * CastExp::toElem: cast(int)header @ int * * * * * * * * VarExp::toElem: header @ const(ubyte) * * * * * * * * * DtoSymbolAddress ('header' of type 'const(ubyte)') * * * * * * * * * * a normal variable * * * * * * * * Casting from 'const(ubyte)' to 'int' * * * * * * * * * cast to: i32 * * * * * * * IntegerExp::toElem: 192 @ int * * * * * * * * IntegerExp::toConstElem: 192 @ int * * * * * * * * * value = i32 192 * * * * * * * integral or pointer or interface * * * * * * * lv: %3 = zext i8 %2 to i32 * * * * * * * rv: i32 192 * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(2675) * * * * * * * AssignExp::toElem: value = null | (string)(string = string) * * * * * * * * VarExp::toElem: value @ string * * * * * * * * * DtoSymbolAddress ('value' of type 'string') * * * * * * * * * * function param * * * * * * * * * * type: string * * * * * * * * NullExp::toElem(type=string): null * * * * * * * * * NullExp::toConstElem(type=string): null * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * DtoAssign() * * * * * * * * * DtoArrayAssign * * * * * * * * * * DtoSetArrayToNull * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(2677) * * * * * * * CallExp::toElem: this.rollback(0LU) @ void * * * * * * * * DotVarExp::toElem: this.rollback @ @safe void(const(ulong) size = 0LU) * * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * * normal this exp * * * * * * * * DtoCallFunction() * * * * * * * * * doing normal arguments * * * * * * * * * Arguments so far: (1) * * * * * * * * * * %msgpack.Unpacker* %.this_arg * * * * * * * * * Function type: @safe void(const(ulong) size = 0LU) * * * * * * * * * DtoArgument * * * * * * * * * * IntegerExp::toElem: 0LU @ const(ulong) * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ const(ulong) * * * * * * * * * * * * value = i64 0 * * * * * ReturnStatement::toIR(): msgpack-d/src/msgpack.d(2679) * * * * * * AddrExp::toElem: &this @ Unpacker* * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * normal this exp * * * * * * * is nothing special * * * * * * * lval: %msgpack.Unpacker* %.this_arg * * * * * * return value is '0x134af7c0' * TemplateInstance::codegen: 'msgpack.Unpacker.calculateSize!true' * * DtoDefineFunction(msgpack.Unpacker.calculateSize!true.calculateSize): msgpack-d/src/msgpack.d(2701) * * * Doing function body for: calculateSize * * * DtoCreateNestedContext for calculateSize * * * * DtoCreateNestedContextType for msgpack.Unpacker.calculateSize!true.calculateSize * * * CompoundStatement::toIR(): * * * * ReturnStatement::toIR(): msgpack-d/src/msgpack.d(2704) * * * * * CondExp::toElem: length < 32LU ? 0LU : length < 65536LU ? 2LU : 4LU @ ulong * * * * * * CmpExp::toElem: length < 32LU @ bool * * * * * * * VarExp::toElem: length @ ulong * * * * * * * * DtoSymbolAddress ('length' of type 'const(ulong)') * * * * * * * * * function param * * * * * * * * * type: const(ulong) * * * * * * * IntegerExp::toElem: 32LU @ ulong * * * * * * * * IntegerExp::toConstElem: 32LU @ ulong * * * * * * * * * value = i64 32 * * * * * * * type 1: %1 = load i64, i64* %length * * * * * * * type 2: i64 32 * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * value = i64 0 * * * * * * CondExp::toElem: length < 65536LU ? 2LU : 4LU @ ulong * * * * * * * CmpExp::toElem: length < 65536LU @ bool * * * * * * * * VarExp::toElem: length @ ulong * * * * * * * * * DtoSymbolAddress ('length' of type 'const(ulong)') * * * * * * * * * * function param * * * * * * * * * * type: const(ulong) * * * * * * * * IntegerExp::toElem: 65536LU @ ulong * * * * * * * * * IntegerExp::toConstElem: 65536LU @ ulong * * * * * * * * * * value = i64 65536 * * * * * * * * type 1: %3 = load i64, i64* %length * * * * * * * * type 2: i64 65536 * * * * * * * IntegerExp::toElem: 2LU @ ulong * * * * * * * * IntegerExp::toConstElem: 2LU @ ulong * * * * * * * * * value = i64 2 * * * * * * * IntegerExp::toElem: 4LU @ ulong * * * * * * * * IntegerExp::toConstElem: 4LU @ ulong * * * * * * * * * value = i64 4 * * * * * return value is '0x134c09e8' * TemplateInstance::codegen: 'msgpack.Unpacker.unpack!ulong' * * DtoDefineFunction(msgpack.Unpacker.unpack!ulong.unpack): msgpack-d/src/msgpack.d(1983) * * * Doing function body for: unpack * * * DtoCreateNestedContext for unpack * * * * DtoCreateNestedContextType for msgpack.Unpacker.unpack!ulong.unpack * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(1984) * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(1985) * * * * * * CallExp::toElem: this.canRead(1LU, 0LU) @ void * * * * * * * DotVarExp::toElem: this.canRead @ @safe void(const(ulong) size, const(ulong) offset = 1LU) * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * normal this exp * * * * * * * DtoCallFunction() * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (1) * * * * * * * * * %msgpack.Unpacker* %.this_arg * * * * * * * * Function type: @safe void(const(ulong) size, const(ulong) offset = 1LU) * * * * * * * * DtoArgument * * * * * * * * * IntegerExp::toElem: 1LU @ const(ulong) * * * * * * * * * * IntegerExp::toConstElem: 1LU @ const(ulong) * * * * * * * * * * * value = i64 1 * * * * * * * * DtoArgument * * * * * * * * * IntegerExp::toElem: 0LU @ const(ulong) * * * * * * * * * * IntegerExp::toConstElem: 0LU @ const(ulong) * * * * * * * * * * * value = i64 0 * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(1986) * * * * * * DeclarationExp::toElem: const const(ubyte) header = this.read(); | T=void * * * * * * * DtoDeclarationExp: header * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = const(ubyte)) * * * * * * * * * llvm value for decl: %header = alloca i8, align 1 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: header = this.read() | (const(ubyte))(const(ubyte) = const(ubyte)) * * * * * * * * * * VarExp::toElem: header @ const(ubyte) * * * * * * * * * * * DtoSymbolAddress ('header' of type 'const(ubyte)') * * * * * * * * * * * * a normal variable * * * * * * * * * * CallExp::toElem: this.read() @ const(ubyte) * * * * * * * * * * * DotVarExp::toElem: this.read @ nothrow @safe ubyte() * * * * * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * * * * * normal this exp * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * %msgpack.Unpacker* %.this_arg * * * * * * * * * * * * Function type: nothrow @safe ubyte() * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %header = alloca i8, align 1 * * * * * * * * * * * rhs: %1 = call zeroext i8 @_D7msgpack8Unpacker4readMFNbNfZh(%msgpack.Unpacker* %.this_arg) * * * * * IfStatement::toIR(): msgpack-d/src/msgpack.d(1988) * * * * * * AndAndExp::toElem: 0 <= cast(int)header && cast(int)header <= 127 @ bool * * * * * * * CmpExp::toElem: 0 <= cast(int)header @ bool * * * * * * * * IntegerExp::toElem: 0 @ int * * * * * * * * * IntegerExp::toConstElem: 0 @ int * * * * * * * * * * value = i32 0 * * * * * * * * CastExp::toElem: cast(int)header @ int * * * * * * * * * VarExp::toElem: header @ const(ubyte) * * * * * * * * * * DtoSymbolAddress ('header' of type 'const(ubyte)') * * * * * * * * * * * a normal variable * * * * * * * * * Casting from 'const(ubyte)' to 'int' * * * * * * * * * * cast to: i32 * * * * * * * * type 1: i32 0 * * * * * * * * type 2: %3 = zext i8 %2 to i32 * * * * * * * CmpExp::toElem: cast(int)header <= 127 @ bool * * * * * * * * CastExp::toElem: cast(int)header @ int * * * * * * * * * VarExp::toElem: header @ const(ubyte) * * * * * * * * * * DtoSymbolAddress ('header' of type 'const(ubyte)') * * * * * * * * * * * a normal variable * * * * * * * * * Casting from 'const(ubyte)' to 'int' * * * * * * * * * * cast to: i32 * * * * * * * * IntegerExp::toElem: 127 @ int * * * * * * * * * IntegerExp::toConstElem: 127 @ int * * * * * * * * * * value = i32 127 * * * * * * * * type 1: %6 = zext i8 %5 to i32 * * * * * * * * type 2: i32 127 * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(1988) * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(1989) * * * * * * * * AssignExp::toElem: value = cast(ulong)header | (ulong)(ulong = ulong) * * * * * * * * * VarExp::toElem: value @ ulong * * * * * * * * * * DtoSymbolAddress ('value' of type 'ulong') * * * * * * * * * * * function param * * * * * * * * * * * type: ulong * * * * * * * * * CastExp::toElem: cast(ulong)header @ ulong * * * * * * * * * * VarExp::toElem: header @ const(ubyte) * * * * * * * * * * * DtoSymbolAddress ('header' of type 'const(ubyte)') * * * * * * * * * * * * a normal variable * * * * * * * * * * Casting from 'const(ubyte)' to 'ulong' * * * * * * * * * * * cast to: i64 * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * DtoAssign() * * * * * * * * * * lhs: i64* %value_arg * * * * * * * * * * rhs: %9 = zext i8 %8 to i64 * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(1990) * * * * * * * SwitchStatement::toIR(): msgpack-d/src/msgpack.d(1991) * * * * * * * * has default * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(1991) * * * * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(1991) * * * * * * * * * * CaseStatement::toIR(): msgpack-d/src/msgpack.d(1992) * * * * * * * * * * * IntegerExp::toConstElem: 204 @ int * * * * * * * * * * * * value = i32 204 * * * * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(1992) * * * * * * * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(1992) * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(1993) * * * * * * * * * * * * * * CallExp::toElem: this.canRead(1LU, 1LU) @ void * * * * * * * * * * * * * * * DotVarExp::toElem: this.canRead @ @safe void(const(ulong) size, const(ulong) offset = 1LU) * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * %msgpack.Unpacker* %.this_arg * * * * * * * * * * * * * * * * Function type: @safe void(const(ulong) size, const(ulong) offset = 1LU) * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ const(ulong) * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ const(ulong) * * * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ const(ulong) * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ const(ulong) * * * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(1994) * * * * * * * * * * * * * * AssignExp::toElem: value = cast(ulong)this.read() | (ulong)(ulong = ulong) * * * * * * * * * * * * * * * VarExp::toElem: value @ ulong * * * * * * * * * * * * * * * * DtoSymbolAddress ('value' of type 'ulong') * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * type: ulong * * * * * * * * * * * * * * * CastExp::toElem: cast(ulong)this.read() @ ulong * * * * * * * * * * * * * * * * CallExp::toElem: this.read() @ ubyte * * * * * * * * * * * * * * * * * DotVarExp::toElem: this.read @ nothrow @safe ubyte() * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * * %msgpack.Unpacker* %.this_arg * * * * * * * * * * * * * * * * * * Function type: nothrow @safe ubyte() * * * * * * * * * * * * * * * * Casting from 'ubyte' to 'ulong' * * * * * * * * * * * * * * * * * cast to: i64 * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * lhs: i64* %value_arg * * * * * * * * * * * * * * * * rhs: %11 = zext i8 %10 to i64 * * * * * * * * * * * * * BreakStatement::toIR(): msgpack-d/src/msgpack.d(1995) * * * * * * * * * * CaseStatement::toIR(): msgpack-d/src/msgpack.d(1996) * * * * * * * * * * * IntegerExp::toConstElem: 205 @ int * * * * * * * * * * * * value = i32 205 * * * * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(1996) * * * * * * * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(1996) * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(1997) * * * * * * * * * * * * * * CallExp::toElem: this.canRead(2LU, 1LU) @ void * * * * * * * * * * * * * * * DotVarExp::toElem: this.canRead @ @safe void(const(ulong) size, const(ulong) offset = 1LU) * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * %msgpack.Unpacker* %.this_arg * * * * * * * * * * * * * * * * Function type: @safe void(const(ulong) size, const(ulong) offset = 1LU) * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * IntegerExp::toElem: 2LU @ const(ulong) * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 2LU @ const(ulong) * * * * * * * * * * * * * * * * * * * value = i64 2 * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ const(ulong) * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ const(ulong) * * * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(1998) * * * * * * * * * * * * * * DeclarationExp::toElem: ushort us = load16To(this.read(2LU)); | T=void * * * * * * * * * * * * * * * DtoDeclarationExp: us * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = ushort) * * * * * * * * * * * * * * * * * llvm value for decl: %us = alloca i16, align 2 * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * AssignExp::toElem: us = load16To(this.read(2LU)) | (ushort)(ushort = ushort) * * * * * * * * * * * * * * * * * * VarExp::toElem: us @ ushort * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('us' of type 'ushort') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * CallExp::toElem: load16To(this.read(2LU)) @ ushort * * * * * * * * * * * * * * * * * * * VarExp::toElem: load16To @ pure nothrow @nogc @trusted ushort(ubyte[] buffer) * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('load16To' of type 'pure nothrow @nogc @trusted ushort(ubyte[] buffer)') * * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @trusted ushort(ubyte[] buffer) * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * CallExp::toElem: this.read(2LU) @ ubyte[] * * * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: this.read @ nothrow @safe ubyte[](const(ulong) size) * * * * * * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * * * * * * * %msgpack.Unpacker* %.this_arg * * * * * * * * * * * * * * * * * * * * * * * Function type: nothrow @safe ubyte[](const(ulong) size) * * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 2LU @ const(ulong) * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 2LU @ const(ulong) * * * * * * * * * * * * * * * * * * * * * * * * * * value = i64 2 * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * lhs: %us = alloca i16, align 2 * * * * * * * * * * * * * * * * * * * rhs: %13 = call zeroext i16 @_D7msgpack15__T8load16ToTtZ8load16ToFNaNbNiNeAhZt({ i64, i8* } %12) * * * * * * * * * * * * * IfStatement::toIR(): msgpack-d/src/msgpack.d(1999) * * * * * * * * * * * * * * CmpExp::toElem: cast(ulong)cast(int)us > 18446744073709551615LU @ bool * * * * * * * * * * * * * * * CastExp::toElem: cast(ulong)cast(int)us @ ulong * * * * * * * * * * * * * * * * CastExp::toElem: cast(int)us @ int * * * * * * * * * * * * * * * * * VarExp::toElem: us @ ushort * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('us' of type 'ushort') * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * Casting from 'ushort' to 'int' * * * * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * * * * * Casting from 'int' to 'ulong' * * * * * * * * * * * * * * * * * cast to: i64 * * * * * * * * * * * * * * * IntegerExp::toElem: 18446744073709551615LU @ ulong * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 18446744073709551615LU @ ulong * * * * * * * * * * * * * * * * * value = i64 -1 * * * * * * * * * * * * * * * type 1: %16 = sext i32 %15 to i64 * * * * * * * * * * * * * * * type 2: i64 -1 * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(2000) * * * * * * * * * * * * * * * CallExp::toElem: this.rollback(2LU) @ void * * * * * * * * * * * * * * * * DotVarExp::toElem: this.rollback @ @safe void(const(ulong) size = 0LU) * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * %msgpack.Unpacker* %.this_arg * * * * * * * * * * * * * * * * * Function type: @safe void(const(ulong) size = 0LU) * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 2LU @ const(ulong) * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 2LU @ const(ulong) * * * * * * * * * * * * * * * * * * * * value = i64 2 * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(2001) * * * * * * * * * * * * * * AssignExp::toElem: value = cast(ulong)us | (ulong)(ulong = ulong) * * * * * * * * * * * * * * * VarExp::toElem: value @ ulong * * * * * * * * * * * * * * * * DtoSymbolAddress ('value' of type 'ulong') * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * type: ulong * * * * * * * * * * * * * * * CastExp::toElem: cast(ulong)us @ ulong * * * * * * * * * * * * * * * * VarExp::toElem: us @ ushort * * * * * * * * * * * * * * * * * DtoSymbolAddress ('us' of type 'ushort') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * Casting from 'ushort' to 'ulong' * * * * * * * * * * * * * * * * * cast to: i64 * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * lhs: i64* %value_arg * * * * * * * * * * * * * * * * rhs: %19 = zext i16 %18 to i64 * * * * * * * * * * * * * BreakStatement::toIR(): msgpack-d/src/msgpack.d(2002) * * * * * * * * * * CaseStatement::toIR(): msgpack-d/src/msgpack.d(2003) * * * * * * * * * * * IntegerExp::toConstElem: 206 @ int * * * * * * * * * * * * value = i32 206 * * * * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(2003) * * * * * * * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(2003) * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(2004) * * * * * * * * * * * * * * CallExp::toElem: this.canRead(4LU, 1LU) @ void * * * * * * * * * * * * * * * DotVarExp::toElem: this.canRead @ @safe void(const(ulong) size, const(ulong) offset = 1LU) * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * %msgpack.Unpacker* %.this_arg * * * * * * * * * * * * * * * * Function type: @safe void(const(ulong) size, const(ulong) offset = 1LU) * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * IntegerExp::toElem: 4LU @ const(ulong) * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 4LU @ const(ulong) * * * * * * * * * * * * * * * * * * * value = i64 4 * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ const(ulong) * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ const(ulong) * * * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(2005) * * * * * * * * * * * * * * DeclarationExp::toElem: uint ui = load32To(this.read(4LU)); | T=void * * * * * * * * * * * * * * * DtoDeclarationExp: ui * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = uint) * * * * * * * * * * * * * * * * * llvm value for decl: %ui = alloca i32, align 4 * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * AssignExp::toElem: ui = load32To(this.read(4LU)) | (uint)(uint = uint) * * * * * * * * * * * * * * * * * * VarExp::toElem: ui @ uint * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('ui' of type 'uint') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * CallExp::toElem: load32To(this.read(4LU)) @ uint * * * * * * * * * * * * * * * * * * * VarExp::toElem: load32To @ pure nothrow @nogc @trusted uint(ubyte[] buffer) * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('load32To' of type 'pure nothrow @nogc @trusted uint(ubyte[] buffer)') * * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @trusted uint(ubyte[] buffer) * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * CallExp::toElem: this.read(4LU) @ ubyte[] * * * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: this.read @ nothrow @safe ubyte[](const(ulong) size) * * * * * * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * * * * * * * %msgpack.Unpacker* %.this_arg * * * * * * * * * * * * * * * * * * * * * * * Function type: nothrow @safe ubyte[](const(ulong) size) * * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 4LU @ const(ulong) * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 4LU @ const(ulong) * * * * * * * * * * * * * * * * * * * * * * * * * * value = i64 4 * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * lhs: %ui = alloca i32, align 4 * * * * * * * * * * * * * * * * * * * rhs: %21 = call i32 @_D7msgpack15__T8load32ToTkZ8load32ToFNaNbNiNeAhZk({ i64, i8* } %20) * * * * * * * * * * * * * IfStatement::toIR(): msgpack-d/src/msgpack.d(2006) * * * * * * * * * * * * * * CmpExp::toElem: cast(ulong)ui > 18446744073709551615LU @ bool * * * * * * * * * * * * * * * CastExp::toElem: cast(ulong)ui @ ulong * * * * * * * * * * * * * * * * VarExp::toElem: ui @ uint * * * * * * * * * * * * * * * * * DtoSymbolAddress ('ui' of type 'uint') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * Casting from 'uint' to 'ulong' * * * * * * * * * * * * * * * * * cast to: i64 * * * * * * * * * * * * * * * IntegerExp::toElem: 18446744073709551615LU @ ulong * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 18446744073709551615LU @ ulong * * * * * * * * * * * * * * * * * value = i64 -1 * * * * * * * * * * * * * * * type 1: %23 = zext i32 %22 to i64 * * * * * * * * * * * * * * * type 2: i64 -1 * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(2007) * * * * * * * * * * * * * * * CallExp::toElem: this.rollback(4LU) @ void * * * * * * * * * * * * * * * * DotVarExp::toElem: this.rollback @ @safe void(const(ulong) size = 0LU) * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * %msgpack.Unpacker* %.this_arg * * * * * * * * * * * * * * * * * Function type: @safe void(const(ulong) size = 0LU) * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 4LU @ const(ulong) * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 4LU @ const(ulong) * * * * * * * * * * * * * * * * * * * * value = i64 4 * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(2008) * * * * * * * * * * * * * * AssignExp::toElem: value = cast(ulong)ui | (ulong)(ulong = ulong) * * * * * * * * * * * * * * * VarExp::toElem: value @ ulong * * * * * * * * * * * * * * * * DtoSymbolAddress ('value' of type 'ulong') * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * type: ulong * * * * * * * * * * * * * * * CastExp::toElem: cast(ulong)ui @ ulong * * * * * * * * * * * * * * * * VarExp::toElem: ui @ uint * * * * * * * * * * * * * * * * * DtoSymbolAddress ('ui' of type 'uint') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * Casting from 'uint' to 'ulong' * * * * * * * * * * * * * * * * * cast to: i64 * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * lhs: i64* %value_arg * * * * * * * * * * * * * * * * rhs: %26 = zext i32 %25 to i64 * * * * * * * * * * * * * BreakStatement::toIR(): msgpack-d/src/msgpack.d(2009) * * * * * * * * * * CaseStatement::toIR(): msgpack-d/src/msgpack.d(2010) * * * * * * * * * * * IntegerExp::toConstElem: 207 @ int * * * * * * * * * * * * value = i32 207 * * * * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(2010) * * * * * * * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(2010) * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(2011) * * * * * * * * * * * * * * CallExp::toElem: this.canRead(8LU, 1LU) @ void * * * * * * * * * * * * * * * DotVarExp::toElem: this.canRead @ @safe void(const(ulong) size, const(ulong) offset = 1LU) * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * %msgpack.Unpacker* %.this_arg * * * * * * * * * * * * * * * * Function type: @safe void(const(ulong) size, const(ulong) offset = 1LU) * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * IntegerExp::toElem: 8LU @ const(ulong) * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 8LU @ const(ulong) * * * * * * * * * * * * * * * * * * * value = i64 8 * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ const(ulong) * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ const(ulong) * * * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(2012) * * * * * * * * * * * * * * DeclarationExp::toElem: ulong ul = load64To(this.read(8LU)); | T=void * * * * * * * * * * * * * * * DtoDeclarationExp: ul * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * * * * * * * * * llvm value for decl: %ul = alloca i64, align 8 * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * AssignExp::toElem: ul = load64To(this.read(8LU)) | (ulong)(ulong = ulong) * * * * * * * * * * * * * * * * * * VarExp::toElem: ul @ ulong * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('ul' of type 'ulong') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * CallExp::toElem: load64To(this.read(8LU)) @ ulong * * * * * * * * * * * * * * * * * * * VarExp::toElem: load64To @ pure nothrow @nogc @trusted ulong(ubyte[] buffer) * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('load64To' of type 'pure nothrow @nogc @trusted ulong(ubyte[] buffer)') * * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @trusted ulong(ubyte[] buffer) * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * CallExp::toElem: this.read(8LU) @ ubyte[] * * * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: this.read @ nothrow @safe ubyte[](const(ulong) size) * * * * * * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * * * * * * * %msgpack.Unpacker* %.this_arg * * * * * * * * * * * * * * * * * * * * * * * Function type: nothrow @safe ubyte[](const(ulong) size) * * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 8LU @ const(ulong) * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 8LU @ const(ulong) * * * * * * * * * * * * * * * * * * * * * * * * * * value = i64 8 * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * lhs: %ul = alloca i64, align 8 * * * * * * * * * * * * * * * * * * * rhs: %28 = call i64 @_D7msgpack15__T8load64ToTmZ8load64ToFNaNbNiNeAhZm({ i64, i8* } %27) * * * * * * * * * * * * * IfStatement::toIR(): msgpack-d/src/msgpack.d(2013) * * * * * * * * * * * * * * CmpExp::toElem: ul > 18446744073709551615LU @ bool * * * * * * * * * * * * * * * VarExp::toElem: ul @ ulong * * * * * * * * * * * * * * * * DtoSymbolAddress ('ul' of type 'ulong') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * IntegerExp::toElem: 18446744073709551615LU @ ulong * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 18446744073709551615LU @ ulong * * * * * * * * * * * * * * * * * value = i64 -1 * * * * * * * * * * * * * * * type 1: %29 = load i64, i64* %ul * * * * * * * * * * * * * * * type 2: i64 -1 * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(2014) * * * * * * * * * * * * * * * CallExp::toElem: this.rollback(8LU) @ void * * * * * * * * * * * * * * * * DotVarExp::toElem: this.rollback @ @safe void(const(ulong) size = 0LU) * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * %msgpack.Unpacker* %.this_arg * * * * * * * * * * * * * * * * * Function type: @safe void(const(ulong) size = 0LU) * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 8LU @ const(ulong) * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 8LU @ const(ulong) * * * * * * * * * * * * * * * * * * * * value = i64 8 * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(2015) * * * * * * * * * * * * * * AssignExp::toElem: value = ul | (ulong)(ulong = ulong) * * * * * * * * * * * * * * * VarExp::toElem: value @ ulong * * * * * * * * * * * * * * * * DtoSymbolAddress ('value' of type 'ulong') * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * type: ulong * * * * * * * * * * * * * * * VarExp::toElem: ul @ ulong * * * * * * * * * * * * * * * * DtoSymbolAddress ('ul' of type 'ulong') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * lhs: i64* %value_arg * * * * * * * * * * * * * * * * rhs: %31 = load i64, i64* %ul * * * * * * * * * * * * * BreakStatement::toIR(): msgpack-d/src/msgpack.d(2016) * * * * * * * * * * DefaultStatement::toIR(): msgpack-d/src/msgpack.d(2017) * * * * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(2017) * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(2018) * * * * * * * * * * * * * CallExp::toElem: this.rollback(0LU) @ void * * * * * * * * * * * * * * DotVarExp::toElem: this.rollback @ @safe void(const(ulong) size = 0LU) * * * * * * * * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * %msgpack.Unpacker* %.this_arg * * * * * * * * * * * * * * * Function type: @safe void(const(ulong) size = 0LU) * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ const(ulong) * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ const(ulong) * * * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * CastExp::toElem: cast(int)header @ int * * * * * * * * * VarExp::toElem: header @ const(ubyte) * * * * * * * * * * DtoSymbolAddress ('header' of type 'const(ubyte)') * * * * * * * * * * * a normal variable * * * * * * * * * Casting from 'const(ubyte)' to 'int' * * * * * * * * * * cast to: i32 * * * * * ReturnStatement::toIR(): msgpack-d/src/msgpack.d(2022) * * * * * * AddrExp::toElem: &this @ Unpacker* * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * normal this exp * * * * * * * is nothing special * * * * * * * lval: %msgpack.Unpacker* %.this_arg * * * * * * return value is '0x1348e870' * TemplateInstance::codegen: 'msgpack.load16To!ushort' * * DtoDefineFunction(msgpack.load16To!ushort.load16To): msgpack-d/src/msgpack.d(5177) * * * Doing function body for: load16To * * * DtoCreateNestedContext for load16To * * * * DtoCreateNestedContextType for msgpack.load16To!ushort.load16To * * * CompoundStatement::toIR(): * * * * ReturnStatement::toIR(): msgpack-d/src/msgpack.d(5179) * * * * * CallExp::toElem: convertEndianTo(*cast(ushort*)cast(ubyte*)buffer) @ ushort * * * * * * VarExp::toElem: convertEndianTo @ pure nothrow @nogc @trusted ushort(const(ushort) value) * * * * * * * DtoSymbolAddress ('convertEndianTo' of type 'pure nothrow @nogc @trusted ushort(const(ushort) value)') * * * * * * * * FuncDeclaration * * * * * * DtoCallFunction() * * * * * * * doing normal arguments * * * * * * * Arguments so far: (0) * * * * * * * Function type: pure nothrow @nogc @trusted ushort(const(ushort) value) * * * * * * * DtoArgument * * * * * * * * PtrExp::toElem: *cast(ushort*)cast(ubyte*)buffer @ const(ushort) * * * * * * * * * CastExp::toElem: cast(ushort*)cast(ubyte*)buffer @ ushort* * * * * * * * * * * CastExp::toElem: cast(ubyte*)buffer @ ubyte* * * * * * * * * * * * VarExp::toElem: buffer @ ubyte[] * * * * * * * * * * * * DtoSymbolAddress ('buffer' of type 'ubyte[]') * * * * * * * * * * * * * function param * * * * * * * * * * * * * type: ubyte[] * * * * * * * * * * * Casting from 'ubyte[]' to 'ubyte*' * * * * * * * * * * * * DtoCastArray * * * * * * * * * * * * * from array or sarray * * * * * * * * * * * * * to pointer * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * Casting from 'ubyte*' to 'ushort*' * * * * * * * * * * * src: %.ptr = load i8*, i8** %1 * * * * * * * * * * * to type: i16* * * * * * return value is '0x134d45a0' * TemplateInstance::codegen: 'msgpack.load32To!uint' * * DtoDefineFunction(msgpack.load32To!uint.load32To): msgpack-d/src/msgpack.d(5184) * * * Doing function body for: load32To * * * DtoCreateNestedContext for load32To * * * * DtoCreateNestedContextType for msgpack.load32To!uint.load32To * * * CompoundStatement::toIR(): * * * * ReturnStatement::toIR(): msgpack-d/src/msgpack.d(5186) * * * * * CallExp::toElem: convertEndianTo(*cast(uint*)cast(ubyte*)buffer) @ uint * * * * * * VarExp::toElem: convertEndianTo @ pure nothrow @nogc @trusted uint(const(uint) value) * * * * * * * DtoSymbolAddress ('convertEndianTo' of type 'pure nothrow @nogc @trusted uint(const(uint) value)') * * * * * * * * FuncDeclaration * * * * * * DtoCallFunction() * * * * * * * doing normal arguments * * * * * * * Arguments so far: (0) * * * * * * * Function type: pure nothrow @nogc @trusted uint(const(uint) value) * * * * * * * DtoArgument * * * * * * * * PtrExp::toElem: *cast(uint*)cast(ubyte*)buffer @ const(uint) * * * * * * * * * CastExp::toElem: cast(uint*)cast(ubyte*)buffer @ uint* * * * * * * * * * * CastExp::toElem: cast(ubyte*)buffer @ ubyte* * * * * * * * * * * * VarExp::toElem: buffer @ ubyte[] * * * * * * * * * * * * DtoSymbolAddress ('buffer' of type 'ubyte[]') * * * * * * * * * * * * * function param * * * * * * * * * * * * * type: ubyte[] * * * * * * * * * * * Casting from 'ubyte[]' to 'ubyte*' * * * * * * * * * * * * DtoCastArray * * * * * * * * * * * * * from array or sarray * * * * * * * * * * * * * to pointer * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * Casting from 'ubyte*' to 'uint*' * * * * * * * * * * * src: %.ptr = load i8*, i8** %1 * * * * * * * * * * * to type: i32* * * * * * return value is '0x134d5460' * TemplateInstance::codegen: 'msgpack.load64To!ulong' * * DtoDefineFunction(msgpack.load64To!ulong.load64To): msgpack-d/src/msgpack.d(5191) * * * Doing function body for: load64To * * * DtoCreateNestedContext for load64To * * * * DtoCreateNestedContextType for msgpack.load64To!ulong.load64To * * * CompoundStatement::toIR(): * * * * ReturnStatement::toIR(): msgpack-d/src/msgpack.d(5193) * * * * * CallExp::toElem: convertEndianTo(*cast(ulong*)cast(ubyte*)buffer) @ ulong * * * * * * VarExp::toElem: convertEndianTo @ pure nothrow @nogc @trusted ulong(const(ulong) value) * * * * * * * DtoSymbolAddress ('convertEndianTo' of type 'pure nothrow @nogc @trusted ulong(const(ulong) value)') * * * * * * * * FuncDeclaration * * * * * * DtoCallFunction() * * * * * * * doing normal arguments * * * * * * * Arguments so far: (0) * * * * * * * Function type: pure nothrow @nogc @trusted ulong(const(ulong) value) * * * * * * * DtoArgument * * * * * * * * PtrExp::toElem: *cast(ulong*)cast(ubyte*)buffer @ const(ulong) * * * * * * * * * CastExp::toElem: cast(ulong*)cast(ubyte*)buffer @ ulong* * * * * * * * * * * CastExp::toElem: cast(ubyte*)buffer @ ubyte* * * * * * * * * * * * VarExp::toElem: buffer @ ubyte[] * * * * * * * * * * * * DtoSymbolAddress ('buffer' of type 'ubyte[]') * * * * * * * * * * * * * function param * * * * * * * * * * * * * type: ubyte[] * * * * * * * * * * * Casting from 'ubyte[]' to 'ubyte*' * * * * * * * * * * * * DtoCastArray * * * * * * * * * * * * * from array or sarray * * * * * * * * * * * * * to pointer * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * Casting from 'ubyte*' to 'ulong*' * * * * * * * * * * * src: %.ptr = load i8*, i8** %1 * * * * * * * * * * * to type: i64* * * * * * return value is '0x134d6320' * TemplateInstance::codegen: 'msgpack.Unpacker.unpack!(string[])' * * DtoDefineFunction(msgpack.Unpacker.unpack!(string[]).unpack): msgpack-d/src/msgpack.d(2236) * * * Doing function body for: unpack * * * DtoCreateNestedContext for unpack * * * * DtoCreateNestedContextType for msgpack.Unpacker.unpack!(string[]).unpack * * * * * has nested frame * * * * * Function unpack has depth 0 * * * * * Nested var 'this' of type %msgpack.Unpacker* * * * * * frameType = %nest.unpack.19 = type { %msgpack.Unpacker* } * * * * nested param: this * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(2237) * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(2238) * * * * * * DeclarationExp::toElem: alias U = string; | T=void * * * * * * * DtoDeclarationExp: U * * * * * * * * Ignoring Symbol: alias * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(2243) * * * * * * DeclarationExp::toElem: @safe ulong beginRaw() { this.canRead(1LU, 0LU); const const(ubyte) header = this.read(); ulong length = 0LU; if (160 <= cast(int)header && cast(int)header <= 191) { length = cast(ulong)(cast(int)header & 31); } else { switch (cast(int)header) { case 196: case 217: { this.canRead(1LU, 1LU); length = cast(ulong)this.read(); break; } case 197: case 218: { this.canRead(2LU, 1LU); length = load16To(this.read(2LU)); break; } case 198: case 219: { this.canRead(4LU, 1LU); length = load32To(this.read(4LU)); break; } case 192: { break; } default: { this.rollback(0LU); } } } return length; } | T=void * * * * * * * DtoDeclarationExp: beginRaw * * * * * * * * FuncDeclaration * * * * * * * * DtoDefineFunction(msgpack.Unpacker.unpack!(string[]).unpack.beginRaw): msgpack-d/src/msgpack.d(2244) * * * * * * * * * DtoFunctionType(@safe ulong()) * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: i64 (i8*) * * * * * * * * * DtoResolveFunction(msgpack.Unpacker.unpack!(string[]).unpack.beginRaw): msgpack-d/src/msgpack.d(2244) * * * * * * * * * * DtoDeclareFunction(msgpack.Unpacker.unpack!(string[]).unpack.beginRaw): msgpack-d/src/msgpack.d(2244) * * * * * * * * * * * DtoFunctionType(@safe ulong()) * * * * * * * * * * * func = declare i64 @_D7msgpack8Unpacker16__T6unpackTAAyaZ6unpackMFNcNeKAAyaZ8beginRawMFNfZm(i8*) * * * * * * * * * Doing function body for: beginRaw * * * * * * * * * DtoCreateNestedContext for beginRaw * * * * * * * * * * DtoCreateNestedContextType for msgpack.Unpacker.unpack!(string[]).unpack.beginRaw * * * * * * * * * * * DtoCreateNestedContextType for msgpack.Unpacker.unpack!(string[]).unpack * * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(2245) * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(2246) * * * * * * * * * * * * CallExp::toElem: this.canRead(1LU, 0LU) @ void * * * * * * * * * * * * * DotVarExp::toElem: this.canRead @ @safe void(const(ulong) size, const(ulong) offset = 1LU) * * * * * * * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * * * * * * * nested this exp * * * * * * * * * * * * * * * DtoNestedVariable for this @ msgpack-d/src/msgpack.d(2246) * * * * * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.Unpacker.unpack!(string[]).unpack * * * * * * * * * * * * * * * * Context: %2 = bitcast i8* %1 to %nest.unpack.19* * * * * * * * * * * * * * * * * of type: %nest.unpack.19 = type { %msgpack.Unpacker* } * * * * * * * * * * * * * * * * Variable: this * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * Function: beginRaw * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * Addr: %this = getelementptr %nest.unpack.19, %nest.unpack.19* %2, i32 0, i32 0 * * * * * * * * * * * * * * * * of type: %msgpack.Unpacker** * * * * * * * * * * * * * * * * Was byref, now: %3 = load %msgpack.Unpacker*, %msgpack.Unpacker** %this, align 8 * * * * * * * * * * * * * * * * of type: %msgpack.Unpacker* * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * %3 = load %msgpack.Unpacker*, %msgpack.Unpacker** %this, align 8 * * * * * * * * * * * * * * Function type: @safe void(const(ulong) size, const(ulong) offset = 1LU) * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ const(ulong) * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ const(ulong) * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ const(ulong) * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ const(ulong) * * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(2247) * * * * * * * * * * * * DeclarationExp::toElem: const const(ubyte) header = this.read(); | T=void * * * * * * * * * * * * * DtoDeclarationExp: header * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = const(ubyte)) * * * * * * * * * * * * * * * llvm value for decl: %header = alloca i8, align 1 * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * AssignExp::toElem: header = this.read() | (const(ubyte))(const(ubyte) = const(ubyte)) * * * * * * * * * * * * * * * * VarExp::toElem: header @ const(ubyte) * * * * * * * * * * * * * * * * * DtoSymbolAddress ('header' of type 'const(ubyte)') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * CallExp::toElem: this.read() @ const(ubyte) * * * * * * * * * * * * * * * * * DotVarExp::toElem: this.read @ nothrow @safe ubyte() * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * * * * * * * * * * * nested this exp * * * * * * * * * * * * * * * * * * * DtoNestedVariable for this @ msgpack-d/src/msgpack.d(2247) * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.Unpacker.unpack!(string[]).unpack * * * * * * * * * * * * * * * * * * * * Context: %5 = bitcast i8* %4 to %nest.unpack.19* * * * * * * * * * * * * * * * * * * * * of type: %nest.unpack.19 = type { %msgpack.Unpacker* } * * * * * * * * * * * * * * * * * * * * Variable: this * * * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * * * Function: beginRaw * * * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * * * Addr: %this1 = getelementptr %nest.unpack.19, %nest.unpack.19* %5, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * * of type: %msgpack.Unpacker** * * * * * * * * * * * * * * * * * * * * Was byref, now: %6 = load %msgpack.Unpacker*, %msgpack.Unpacker** %this1, align 8 * * * * * * * * * * * * * * * * * * * * of type: %msgpack.Unpacker* * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * * %6 = load %msgpack.Unpacker*, %msgpack.Unpacker** %this1, align 8 * * * * * * * * * * * * * * * * * * Function type: nothrow @safe ubyte() * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * lhs: %header = alloca i8, align 1 * * * * * * * * * * * * * * * * * rhs: %7 = call zeroext i8 @_D7msgpack8Unpacker4readMFNbNfZh(%msgpack.Unpacker* %6) * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(2248) * * * * * * * * * * * * DeclarationExp::toElem: ulong length = 0LU; | T=void * * * * * * * * * * * * * DtoDeclarationExp: length * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * * * * * * * llvm value for decl: %length = alloca i64, align 8 * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * AssignExp::toElem: length = 0LU | (ulong)(ulong = ulong) * * * * * * * * * * * * * * * * VarExp::toElem: length @ ulong * * * * * * * * * * * * * * * * * DtoSymbolAddress ('length' of type 'ulong') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * lhs: %length = alloca i64, align 8 * * * * * * * * * * * * * * * * * rhs: i64 0 * * * * * * * * * * * IfStatement::toIR(): msgpack-d/src/msgpack.d(2250) * * * * * * * * * * * * AndAndExp::toElem: 160 <= cast(int)header && cast(int)header <= 191 @ bool * * * * * * * * * * * * * CmpExp::toElem: 160 <= cast(int)header @ bool * * * * * * * * * * * * * * IntegerExp::toElem: 160 @ int * * * * * * * * * * * * * * * IntegerExp::toConstElem: 160 @ int * * * * * * * * * * * * * * * * value = i32 160 * * * * * * * * * * * * * * CastExp::toElem: cast(int)header @ int * * * * * * * * * * * * * * * VarExp::toElem: header @ const(ubyte) * * * * * * * * * * * * * * * * DtoSymbolAddress ('header' of type 'const(ubyte)') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * Casting from 'const(ubyte)' to 'int' * * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * * * type 1: i32 160 * * * * * * * * * * * * * * type 2: %9 = zext i8 %8 to i32 * * * * * * * * * * * * * CmpExp::toElem: cast(int)header <= 191 @ bool * * * * * * * * * * * * * * CastExp::toElem: cast(int)header @ int * * * * * * * * * * * * * * * VarExp::toElem: header @ const(ubyte) * * * * * * * * * * * * * * * * DtoSymbolAddress ('header' of type 'const(ubyte)') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * Casting from 'const(ubyte)' to 'int' * * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * * * IntegerExp::toElem: 191 @ int * * * * * * * * * * * * * * * IntegerExp::toConstElem: 191 @ int * * * * * * * * * * * * * * * * value = i32 191 * * * * * * * * * * * * * * type 1: %12 = zext i8 %11 to i32 * * * * * * * * * * * * * * type 2: i32 191 * * * * * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(2250) * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(2251) * * * * * * * * * * * * * * AssignExp::toElem: length = cast(ulong)(cast(int)header & 31) | (ulong)(ulong = ulong) * * * * * * * * * * * * * * * VarExp::toElem: length @ ulong * * * * * * * * * * * * * * * * DtoSymbolAddress ('length' of type 'ulong') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * CastExp::toElem: cast(ulong)(cast(int)header & 31) @ ulong * * * * * * * * * * * * * * * * AndExp::toElem: cast(int)header & 31 @ int * * * * * * * * * * * * * * * * * CastExp::toElem: cast(int)header @ int * * * * * * * * * * * * * * * * * * VarExp::toElem: header @ const(ubyte) * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('header' of type 'const(ubyte)') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * Casting from 'const(ubyte)' to 'int' * * * * * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * * * * * * IntegerExp::toElem: 31 @ int * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 31 @ int * * * * * * * * * * * * * * * * * * * value = i32 31 * * * * * * * * * * * * * * * * Casting from 'int' to 'ulong' * * * * * * * * * * * * * * * * * cast to: i64 * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * lhs: %length = alloca i64, align 8 * * * * * * * * * * * * * * * * rhs: %17 = sext i32 %16 to i64 * * * * * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(2252) * * * * * * * * * * * * * SwitchStatement::toIR(): msgpack-d/src/msgpack.d(2253) * * * * * * * * * * * * * * has default * * * * * * * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(2253) * * * * * * * * * * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(2253) * * * * * * * * * * * * * * * * CaseStatement::toIR(): msgpack-d/src/msgpack.d(2254) * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 196 @ int * * * * * * * * * * * * * * * * * * value = i32 196 * * * * * * * * * * * * * * * * * CaseStatement::toIR(): msgpack-d/src/msgpack.d(2254) * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 217 @ int * * * * * * * * * * * * * * * * * * * value = i32 217 * * * * * * * * * * * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(2254) * * * * * * * * * * * * * * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(2254) * * * * * * * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(2255) * * * * * * * * * * * * * * * * * * * * * CallExp::toElem: this.canRead(1LU, 1LU) @ void * * * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: this.canRead @ @safe void(const(ulong) size, const(ulong) offset = 1LU) * * * * * * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * * * * * * * * * * * * * * * * nested this exp * * * * * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for this @ msgpack-d/src/msgpack.d(2255) * * * * * * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.Unpacker.unpack!(string[]).unpack * * * * * * * * * * * * * * * * * * * * * * * * * Context: %19 = bitcast i8* %18 to %nest.unpack.19* * * * * * * * * * * * * * * * * * * * * * * * * * of type: %nest.unpack.19 = type { %msgpack.Unpacker* } * * * * * * * * * * * * * * * * * * * * * * * * * Variable: this * * * * * * * * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * * * * * * * * Function: beginRaw * * * * * * * * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * * * * * * * * Addr: %this3 = getelementptr %nest.unpack.19, %nest.unpack.19* %19, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * * * * * * * of type: %msgpack.Unpacker** * * * * * * * * * * * * * * * * * * * * * * * * * Was byref, now: %20 = load %msgpack.Unpacker*, %msgpack.Unpacker** %this3, align 8 * * * * * * * * * * * * * * * * * * * * * * * * * of type: %msgpack.Unpacker* * * * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * * * * * * * %20 = load %msgpack.Unpacker*, %msgpack.Unpacker** %this3, align 8 * * * * * * * * * * * * * * * * * * * * * * * Function type: @safe void(const(ulong) size, const(ulong) offset = 1LU) * * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ const(ulong) * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ const(ulong) * * * * * * * * * * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ const(ulong) * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ const(ulong) * * * * * * * * * * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(2256) * * * * * * * * * * * * * * * * * * * * * AssignExp::toElem: length = cast(ulong)this.read() | (ulong)(ulong = ulong) * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: length @ ulong * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('length' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * CastExp::toElem: cast(ulong)this.read() @ ulong * * * * * * * * * * * * * * * * * * * * * * * CallExp::toElem: this.read() @ ubyte * * * * * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: this.read @ nothrow @safe ubyte() * * * * * * * * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * * * * * * * * * * * * * * * * * * nested this exp * * * * * * * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for this @ msgpack-d/src/msgpack.d(2256) * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.Unpacker.unpack!(string[]).unpack * * * * * * * * * * * * * * * * * * * * * * * * * * * Context: %22 = bitcast i8* %21 to %nest.unpack.19* * * * * * * * * * * * * * * * * * * * * * * * * * * * of type: %nest.unpack.19 = type { %msgpack.Unpacker* } * * * * * * * * * * * * * * * * * * * * * * * * * * * Variable: this * * * * * * * * * * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * * * * * * * * * * Function: beginRaw * * * * * * * * * * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * * * * * * * * * * Addr: %this4 = getelementptr %nest.unpack.19, %nest.unpack.19* %22, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * * * * * * * * * of type: %msgpack.Unpacker** * * * * * * * * * * * * * * * * * * * * * * * * * * * Was byref, now: %23 = load %msgpack.Unpacker*, %msgpack.Unpacker** %this4, align 8 * * * * * * * * * * * * * * * * * * * * * * * * * * * of type: %msgpack.Unpacker* * * * * * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * * * * * * * * * %23 = load %msgpack.Unpacker*, %msgpack.Unpacker** %this4, align 8 * * * * * * * * * * * * * * * * * * * * * * * * * Function type: nothrow @safe ubyte() * * * * * * * * * * * * * * * * * * * * * * * Casting from 'ubyte' to 'ulong' * * * * * * * * * * * * * * * * * * * * * * * * cast to: i64 * * * * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * * * * lhs: %length = alloca i64, align 8 * * * * * * * * * * * * * * * * * * * * * * * rhs: %25 = zext i8 %24 to i64 * * * * * * * * * * * * * * * * * * * * BreakStatement::toIR(): msgpack-d/src/msgpack.d(2257) * * * * * * * * * * * * * * * * CaseStatement::toIR(): msgpack-d/src/msgpack.d(2258) * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 197 @ int * * * * * * * * * * * * * * * * * * value = i32 197 * * * * * * * * * * * * * * * * * CaseStatement::toIR(): msgpack-d/src/msgpack.d(2258) * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 218 @ int * * * * * * * * * * * * * * * * * * * value = i32 218 * * * * * * * * * * * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(2258) * * * * * * * * * * * * * * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(2258) * * * * * * * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(2259) * * * * * * * * * * * * * * * * * * * * * CallExp::toElem: this.canRead(2LU, 1LU) @ void * * * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: this.canRead @ @safe void(const(ulong) size, const(ulong) offset = 1LU) * * * * * * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * * * * * * * * * * * * * * * * nested this exp * * * * * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for this @ msgpack-d/src/msgpack.d(2259) * * * * * * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.Unpacker.unpack!(string[]).unpack * * * * * * * * * * * * * * * * * * * * * * * * * Context: %27 = bitcast i8* %26 to %nest.unpack.19* * * * * * * * * * * * * * * * * * * * * * * * * * of type: %nest.unpack.19 = type { %msgpack.Unpacker* } * * * * * * * * * * * * * * * * * * * * * * * * * Variable: this * * * * * * * * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * * * * * * * * Function: beginRaw * * * * * * * * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * * * * * * * * Addr: %this7 = getelementptr %nest.unpack.19, %nest.unpack.19* %27, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * * * * * * * of type: %msgpack.Unpacker** * * * * * * * * * * * * * * * * * * * * * * * * * Was byref, now: %28 = load %msgpack.Unpacker*, %msgpack.Unpacker** %this7, align 8 * * * * * * * * * * * * * * * * * * * * * * * * * of type: %msgpack.Unpacker* * * * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * * * * * * * %28 = load %msgpack.Unpacker*, %msgpack.Unpacker** %this7, align 8 * * * * * * * * * * * * * * * * * * * * * * * Function type: @safe void(const(ulong) size, const(ulong) offset = 1LU) * * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 2LU @ const(ulong) * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 2LU @ const(ulong) * * * * * * * * * * * * * * * * * * * * * * * * * * value = i64 2 * * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ const(ulong) * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ const(ulong) * * * * * * * * * * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(2260) * * * * * * * * * * * * * * * * * * * * * AssignExp::toElem: length = load16To(this.read(2LU)) | (ulong)(ulong = ulong) * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: length @ ulong * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('length' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * CallExp::toElem: load16To(this.read(2LU)) @ ulong * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: load16To @ pure nothrow @nogc @trusted ulong(ubyte[] buffer) * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('load16To' of type 'pure nothrow @nogc @trusted ulong(ubyte[] buffer)') * * * * * * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @trusted ulong(ubyte[] buffer) * * * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * * * CallExp::toElem: this.read(2LU) @ ubyte[] * * * * * * * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: this.read @ nothrow @safe ubyte[](const(ulong) size) * * * * * * * * * * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * * * * * * * * * * * * * * * * * * * * nested this exp * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for this @ msgpack-d/src/msgpack.d(2260) * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.Unpacker.unpack!(string[]).unpack * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Context: %30 = bitcast i8* %29 to %nest.unpack.19* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * of type: %nest.unpack.19 = type { %msgpack.Unpacker* } * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Variable: this * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Function: beginRaw * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Addr: %this8 = getelementptr %nest.unpack.19, %nest.unpack.19* %30, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * of type: %msgpack.Unpacker** * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Was byref, now: %31 = load %msgpack.Unpacker*, %msgpack.Unpacker** %this8, align 8 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * of type: %msgpack.Unpacker* * * * * * * * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * * * * * * * * * * * %31 = load %msgpack.Unpacker*, %msgpack.Unpacker** %this8, align 8 * * * * * * * * * * * * * * * * * * * * * * * * * * * Function type: nothrow @safe ubyte[](const(ulong) size) * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 2LU @ const(ulong) * * * * * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 2LU @ const(ulong) * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * value = i64 2 * * * * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * * * * lhs: %length = alloca i64, align 8 * * * * * * * * * * * * * * * * * * * * * * * rhs: %33 = call i64 @_D7msgpack15__T8load16ToTmZ8load16ToFNaNbNiNeAhZm({ i64, i8* } %32) * * * * * * * * * * * * * * * * * * * * BreakStatement::toIR(): msgpack-d/src/msgpack.d(2261) * * * * * * * * * * * * * * * * CaseStatement::toIR(): msgpack-d/src/msgpack.d(2262) * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 198 @ int * * * * * * * * * * * * * * * * * * value = i32 198 * * * * * * * * * * * * * * * * * CaseStatement::toIR(): msgpack-d/src/msgpack.d(2262) * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 219 @ int * * * * * * * * * * * * * * * * * * * value = i32 219 * * * * * * * * * * * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(2262) * * * * * * * * * * * * * * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(2262) * * * * * * * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(2263) * * * * * * * * * * * * * * * * * * * * * CallExp::toElem: this.canRead(4LU, 1LU) @ void * * * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: this.canRead @ @safe void(const(ulong) size, const(ulong) offset = 1LU) * * * * * * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * * * * * * * * * * * * * * * * nested this exp * * * * * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for this @ msgpack-d/src/msgpack.d(2263) * * * * * * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.Unpacker.unpack!(string[]).unpack * * * * * * * * * * * * * * * * * * * * * * * * * Context: %35 = bitcast i8* %34 to %nest.unpack.19* * * * * * * * * * * * * * * * * * * * * * * * * * of type: %nest.unpack.19 = type { %msgpack.Unpacker* } * * * * * * * * * * * * * * * * * * * * * * * * * Variable: this * * * * * * * * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * * * * * * * * Function: beginRaw * * * * * * * * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * * * * * * * * Addr: %this12 = getelementptr %nest.unpack.19, %nest.unpack.19* %35, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * * * * * * * of type: %msgpack.Unpacker** * * * * * * * * * * * * * * * * * * * * * * * * * Was byref, now: %36 = load %msgpack.Unpacker*, %msgpack.Unpacker** %this12, align 8 * * * * * * * * * * * * * * * * * * * * * * * * * of type: %msgpack.Unpacker* * * * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * * * * * * * %36 = load %msgpack.Unpacker*, %msgpack.Unpacker** %this12, align 8 * * * * * * * * * * * * * * * * * * * * * * * Function type: @safe void(const(ulong) size, const(ulong) offset = 1LU) * * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 4LU @ const(ulong) * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 4LU @ const(ulong) * * * * * * * * * * * * * * * * * * * * * * * * * * value = i64 4 * * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ const(ulong) * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ const(ulong) * * * * * * * * * * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(2264) * * * * * * * * * * * * * * * * * * * * * AssignExp::toElem: length = load32To(this.read(4LU)) | (ulong)(ulong = ulong) * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: length @ ulong * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('length' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * CallExp::toElem: load32To(this.read(4LU)) @ ulong * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: load32To @ pure nothrow @nogc @trusted ulong(ubyte[] buffer) * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('load32To' of type 'pure nothrow @nogc @trusted ulong(ubyte[] buffer)') * * * * * * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @trusted ulong(ubyte[] buffer) * * * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * * * CallExp::toElem: this.read(4LU) @ ubyte[] * * * * * * * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: this.read @ nothrow @safe ubyte[](const(ulong) size) * * * * * * * * * * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * * * * * * * * * * * * * * * * * * * * nested this exp * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for this @ msgpack-d/src/msgpack.d(2264) * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.Unpacker.unpack!(string[]).unpack * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Context: %38 = bitcast i8* %37 to %nest.unpack.19* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * of type: %nest.unpack.19 = type { %msgpack.Unpacker* } * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Variable: this * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Function: beginRaw * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Addr: %this13 = getelementptr %nest.unpack.19, %nest.unpack.19* %38, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * of type: %msgpack.Unpacker** * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Was byref, now: %39 = load %msgpack.Unpacker*, %msgpack.Unpacker** %this13, align 8 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * of type: %msgpack.Unpacker* * * * * * * * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * * * * * * * * * * * %39 = load %msgpack.Unpacker*, %msgpack.Unpacker** %this13, align 8 * * * * * * * * * * * * * * * * * * * * * * * * * * * Function type: nothrow @safe ubyte[](const(ulong) size) * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 4LU @ const(ulong) * * * * * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 4LU @ const(ulong) * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * value = i64 4 * * * * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * * * * lhs: %length = alloca i64, align 8 * * * * * * * * * * * * * * * * * * * * * * * rhs: %41 = call i64 @_D7msgpack15__T8load32ToTmZ8load32ToFNaNbNiNeAhZm({ i64, i8* } %40) * * * * * * * * * * * * * * * * * * * * BreakStatement::toIR(): msgpack-d/src/msgpack.d(2265) * * * * * * * * * * * * * * * * CaseStatement::toIR(): msgpack-d/src/msgpack.d(2266) * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 192 @ int * * * * * * * * * * * * * * * * * * value = i32 192 * * * * * * * * * * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(2266) * * * * * * * * * * * * * * * * * * BreakStatement::toIR(): msgpack-d/src/msgpack.d(2267) * * * * * * * * * * * * * * * * DefaultStatement::toIR(): msgpack-d/src/msgpack.d(2268) * * * * * * * * * * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(2268) * * * * * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(2269) * * * * * * * * * * * * * * * * * * * CallExp::toElem: this.rollback(0LU) @ void * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: this.rollback @ @safe void(const(ulong) size = 0LU) * * * * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * * * * * * * * * * * * * * nested this exp * * * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for this @ msgpack-d/src/msgpack.d(2269) * * * * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.Unpacker.unpack!(string[]).unpack * * * * * * * * * * * * * * * * * * * * * * * Context: %43 = bitcast i8* %42 to %nest.unpack.19* * * * * * * * * * * * * * * * * * * * * * * * of type: %nest.unpack.19 = type { %msgpack.Unpacker* } * * * * * * * * * * * * * * * * * * * * * * * Variable: this * * * * * * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * * * * * * Function: beginRaw * * * * * * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * * * * * * Addr: %this18 = getelementptr %nest.unpack.19, %nest.unpack.19* %43, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * * * * * of type: %msgpack.Unpacker** * * * * * * * * * * * * * * * * * * * * * * * Was byref, now: %44 = load %msgpack.Unpacker*, %msgpack.Unpacker** %this18, align 8 * * * * * * * * * * * * * * * * * * * * * * * of type: %msgpack.Unpacker* * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * * * * * %44 = load %msgpack.Unpacker*, %msgpack.Unpacker** %this18, align 8 * * * * * * * * * * * * * * * * * * * * * Function type: @safe void(const(ulong) size = 0LU) * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ const(ulong) * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ const(ulong) * * * * * * * * * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * * CastExp::toElem: cast(int)header @ int * * * * * * * * * * * * * * * VarExp::toElem: header @ const(ubyte) * * * * * * * * * * * * * * * * DtoSymbolAddress ('header' of type 'const(ubyte)') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * Casting from 'const(ubyte)' to 'int' * * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * ReturnStatement::toIR(): msgpack-d/src/msgpack.d(2273) * * * * * * * * * * * * VarExp::toElem: length @ ulong * * * * * * * * * * * * * DtoSymbolAddress ('length' of type 'ulong') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * return value is '0x134e77d8' * * * * * IfStatement::toIR(): msgpack-d/src/msgpack.d(2277) * * * * * * CallExp::toElem: this.checkNil() @ bool * * * * * * * DotVarExp::toElem: this.checkNil @ @safe bool() * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * normal this exp * * * * * * * DtoCallFunction() * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (1) * * * * * * * * * %msgpack.Unpacker* %.this_arg * * * * * * * * Function type: @safe bool() * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(2277) * * * * * * * ReturnStatement::toIR(): msgpack-d/src/msgpack.d(2281) * * * * * * * * AddrExp::toElem: &this.unpackNil(array) @ Unpacker* * * * * * * * * * CallExp::toElem: this.unpackNil(array) @ Unpacker * * * * * * * * * * DotVarExp::toElem: this.unpackNil @ ref @safe Unpacker(ref string[] value) * * * * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * * * * normal this exp * * * * * * * * * * * isMember = this is: Unpacker * * * * * * * * * * * DtoFunctionType(ref @safe Unpacker(ref string[] value)) * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * Final function type: %msgpack.Unpacker* (%msgpack.Unpacker*, { i64, { i64, i8* }* }*) * * * * * * * * * * * DtoResolveFunction(msgpack.Unpacker.unpackNil!(string[]).unpackNil): msgpack-d/src/msgpack.d(2669) * * * * * * * * * * * * DtoDeclareFunction(msgpack.Unpacker.unpackNil!(string[]).unpackNil): msgpack-d/src/msgpack.d(2669) * * * * * * * * * * * * * isMember = this is: Unpacker * * * * * * * * * * * * * DtoFunctionType(ref @safe Unpacker(ref string[] value)) * * * * * * * * * * * * * func = declare %msgpack.Unpacker* @_D7msgpack8Unpacker19__T9unpackNilTAAyaZ9unpackNilMFNcNfKAAyaZS7msgpack8Unpacker(%msgpack.Unpacker*, { i64, { i64, i8* }* }*) * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * Building type: ref @safe Unpacker(ref string[] value) * * * * * * * * * * * * DtoFunctionType(ref @safe Unpacker(ref string[] value)) * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * Final function type: %msgpack.Unpacker* ({ i64, { i64, i8* }* }*) * * * * * * * * * * * doing normal arguments * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * %msgpack.Unpacker* %.this_arg * * * * * * * * * * * Function type: ref @safe Unpacker(ref string[] value) * * * * * * * * * * * DtoArgument * * * * * * * * * * * * VarExp::toElem: array @ string[] * * * * * * * * * * * * * DtoSymbolAddress ('array' of type 'string[]') * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * type: string[] * * * * * * * * * is nothing special * * * * * * * * * lval: %2 = call %msgpack.Unpacker* @_D7msgpack8Unpacker19__T9unpackNilTAAyaZ9unpackNilMFNcNfKAAyaZS7msgpack8Unpacker(%msgpack.Unpacker* %.this_arg, { i64, { i64, i8* }* }* %array_arg) * * * * * * * * return value is '0x134e9428' * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(2307) * * * * * * DeclarationExp::toElem: ulong length = this.beginArray(); | T=void * * * * * * * DtoDeclarationExp: length * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * llvm value for decl: %length = alloca i64, align 8 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: length = this.beginArray() | (ulong)(ulong = ulong) * * * * * * * * * * VarExp::toElem: length @ ulong * * * * * * * * * * * DtoSymbolAddress ('length' of type 'ulong') * * * * * * * * * * * * a normal variable * * * * * * * * * * CallExp::toElem: this.beginArray() @ ulong * * * * * * * * * * * DotVarExp::toElem: this.beginArray @ @safe ulong() * * * * * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * * * * * normal this exp * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * %msgpack.Unpacker* %.this_arg * * * * * * * * * * * * Function type: @safe ulong() * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %length = alloca i64, align 8 * * * * * * * * * * * rhs: %3 = call i64 @_D7msgpack8Unpacker10beginArrayMFNfZm(%msgpack.Unpacker* %.this_arg) * * * * * IfStatement::toIR(): msgpack-d/src/msgpack.d(2308) * * * * * * EqualExp::toElem: length == 0LU @ bool * * * * * * * VarExp::toElem: length @ ulong * * * * * * * * DtoSymbolAddress ('length' of type 'ulong') * * * * * * * * * a normal variable * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * value = i64 0 * * * * * * * integral or pointer or interface * * * * * * * lv: %4 = load i64, i64* %length * * * * * * * rv: i64 0 * * * * * * ReturnStatement::toIR(): msgpack-d/src/msgpack.d(2309) * * * * * * * AddrExp::toElem: &this @ Unpacker* * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * normal this exp * * * * * * * * is nothing special * * * * * * * * lval: %msgpack.Unpacker* %.this_arg * * * * * * * return value is '0x13490f60' * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(2315) * * * * * * AssignExp::toElem: array.length = length | (ulong)(ulong = ulong) * * * * * * * performing array.length assignment * * * * * * * VarExp::toElem: array @ string[] * * * * * * * * DtoSymbolAddress ('array' of type 'string[]') * * * * * * * * * function param * * * * * * * * * type: string[] * * * * * * * VarExp::toElem: length @ ulong * * * * * * * * DtoSymbolAddress ('length' of type 'ulong') * * * * * * * * * a normal variable * * * * * * * DtoResizeDynArray : string[] * * * * * * * * DtoTypeInfoOf(type = 'string[]', base='1') * * * * * * * * * Type::getTypeInfo(): string[] * * * * * * * * * TypeInfoDeclaration::codegen(typeid(string[])) * * * * * * * DtoAssign() * * * * * * * * DtoArrayAssign * * * * * * * * * DtoArrayPtr * * * * * * * * * DtoArrayLen * * * * * * * * * SetArray * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(2318) * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(2318) * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(2318) * * * * * * * * DeclarationExp::toElem: ulong __key2685 = 0LU; | T=void * * * * * * * * * DtoDeclarationExp: __key2685 * * * * * * * * * * VarDeclaration * * * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * * * llvm value for decl: %__key2685 = alloca i64, align 8 * * * * * * * * * * * expression initializer * * * * * * * * * * * AssignExp::toElem: __key2685 = 0LU | (ulong)(ulong = ulong) * * * * * * * * * * * * VarExp::toElem: __key2685 @ ulong * * * * * * * * * * * * * DtoSymbolAddress ('__key2685' of type 'ulong') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * lhs: %__key2685 = alloca i64, align 8 * * * * * * * * * * * * * rhs: i64 0 * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(2318) * * * * * * * * DeclarationExp::toElem: ulong __limit2686 = length; | T=void * * * * * * * * * DtoDeclarationExp: __limit2686 * * * * * * * * * * VarDeclaration * * * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * * * llvm value for decl: %__limit2686 = alloca i64, align 8 * * * * * * * * * * * expression initializer * * * * * * * * * * * AssignExp::toElem: __limit2686 = length | (ulong)(ulong = ulong) * * * * * * * * * * * * VarExp::toElem: __limit2686 @ ulong * * * * * * * * * * * * * DtoSymbolAddress ('__limit2686' of type 'ulong') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * VarExp::toElem: length @ ulong * * * * * * * * * * * * * DtoSymbolAddress ('length' of type 'ulong') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * lhs: %__limit2686 = alloca i64, align 8 * * * * * * * * * * * * * rhs: %10 = load i64, i64* %length * * * * * * * ForStatement::toIR(): msgpack-d/src/msgpack.d(2318) * * * * * * * * CmpExp::toElem: __key2685 < __limit2686 @ bool * * * * * * * * * VarExp::toElem: __key2685 @ ulong * * * * * * * * * * DtoSymbolAddress ('__key2685' of type 'ulong') * * * * * * * * * * * a normal variable * * * * * * * * * VarExp::toElem: __limit2686 @ ulong * * * * * * * * * * DtoSymbolAddress ('__limit2686' of type 'ulong') * * * * * * * * * * * a normal variable * * * * * * * * * type 1: %11 = load i64, i64* %__key2685 * * * * * * * * * type 2: %12 = load i64, i64* %__limit2686 * * * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(2318) * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(2318) * * * * * * * * * * DeclarationExp::toElem: ulong i = __key2685; | T=void * * * * * * * * * * * DtoDeclarationExp: i * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * * * * * llvm value for decl: %i = alloca i64, align 8 * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * AssignExp::toElem: i = __key2685 | (ulong)(ulong = ulong) * * * * * * * * * * * * * * VarExp::toElem: i @ ulong * * * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'ulong') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * VarExp::toElem: __key2685 @ ulong * * * * * * * * * * * * * * * DtoSymbolAddress ('__key2685' of type 'ulong') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * lhs: %i = alloca i64, align 8 * * * * * * * * * * * * * * * rhs: %14 = load i64, i64* %__key2685 * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(2319) * * * * * * * * * * CallExp::toElem: this.unpack(array[i]) @ Unpacker * * * * * * * * * * * DotVarExp::toElem: this.unpack @ ref @trusted Unpacker(ref string array) * * * * * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * * * * * normal this exp * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * %msgpack.Unpacker* %.this_arg * * * * * * * * * * * * Function type: ref @trusted Unpacker(ref string array) * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * IndexExp::toElem: array[i] @ string * * * * * * * * * * * * * * VarExp::toElem: array @ string[] * * * * * * * * * * * * * * * DtoSymbolAddress ('array' of type 'string[]') * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * type: string[] * * * * * * * * * * * * * * VarExp::toElem: i @ ulong * * * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'ulong') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * AddAssignExp::toElem: __key2685 += 1LU @ ulong * * * * * * * * * Caching l-value of __key2685 += 1LU => __key2685 * * * * * * * * * * VarExp::toElem: __key2685 @ ulong * * * * * * * * * * * DtoSymbolAddress ('__key2685' of type 'ulong') * * * * * * * * * * * * a normal variable * * * * * * * * * AddExp::toElem: __key2685 + 1LU @ ulong * * * * * * * * * * VarExp::toElem: __key2685 @ ulong * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * value = i64 1 * * * * * * * * * DtoAssign() * * * * * * * * * * lhs: %__key2685 = alloca i64, align 8 * * * * * * * * * * rhs: %20 = add i64 %19, 1 * * * * * ReturnStatement::toIR(): msgpack-d/src/msgpack.d(2322) * * * * * * AddrExp::toElem: &this @ Unpacker* * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * normal this exp * * * * * * * is nothing special * * * * * * * lval: %msgpack.Unpacker* %.this_arg * * * * * * return value is '0x13490f60' * TemplateInstance::codegen: 'msgpack.Unpacker.unpackNil!(string[])' * * DtoDefineFunction(msgpack.Unpacker.unpackNil!(string[]).unpackNil): msgpack-d/src/msgpack.d(2669) * * * Doing function body for: unpackNil * * * DtoCreateNestedContext for unpackNil * * * * DtoCreateNestedContextType for msgpack.Unpacker.unpackNil!(string[]).unpackNil * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(2670) * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(2671) * * * * * * CallExp::toElem: this.canRead(1LU, 0LU) @ void * * * * * * * DotVarExp::toElem: this.canRead @ @safe void(const(ulong) size, const(ulong) offset = 1LU) * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * normal this exp * * * * * * * DtoCallFunction() * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (1) * * * * * * * * * %msgpack.Unpacker* %.this_arg * * * * * * * * Function type: @safe void(const(ulong) size, const(ulong) offset = 1LU) * * * * * * * * DtoArgument * * * * * * * * * IntegerExp::toElem: 1LU @ const(ulong) * * * * * * * * * * IntegerExp::toConstElem: 1LU @ const(ulong) * * * * * * * * * * * value = i64 1 * * * * * * * * DtoArgument * * * * * * * * * IntegerExp::toElem: 0LU @ const(ulong) * * * * * * * * * * IntegerExp::toConstElem: 0LU @ const(ulong) * * * * * * * * * * * value = i64 0 * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(2672) * * * * * * DeclarationExp::toElem: const const(ubyte) header = this.read(); | T=void * * * * * * * DtoDeclarationExp: header * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = const(ubyte)) * * * * * * * * * llvm value for decl: %header = alloca i8, align 1 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: header = this.read() | (const(ubyte))(const(ubyte) = const(ubyte)) * * * * * * * * * * VarExp::toElem: header @ const(ubyte) * * * * * * * * * * * DtoSymbolAddress ('header' of type 'const(ubyte)') * * * * * * * * * * * * a normal variable * * * * * * * * * * CallExp::toElem: this.read() @ const(ubyte) * * * * * * * * * * * DotVarExp::toElem: this.read @ nothrow @safe ubyte() * * * * * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * * * * * normal this exp * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * %msgpack.Unpacker* %.this_arg * * * * * * * * * * * * Function type: nothrow @safe ubyte() * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %header = alloca i8, align 1 * * * * * * * * * * * rhs: %1 = call zeroext i8 @_D7msgpack8Unpacker4readMFNbNfZh(%msgpack.Unpacker* %.this_arg) * * * * * IfStatement::toIR(): msgpack-d/src/msgpack.d(2674) * * * * * * EqualExp::toElem: cast(int)header == 192 @ bool * * * * * * * CastExp::toElem: cast(int)header @ int * * * * * * * * VarExp::toElem: header @ const(ubyte) * * * * * * * * * DtoSymbolAddress ('header' of type 'const(ubyte)') * * * * * * * * * * a normal variable * * * * * * * * Casting from 'const(ubyte)' to 'int' * * * * * * * * * cast to: i32 * * * * * * * IntegerExp::toElem: 192 @ int * * * * * * * * IntegerExp::toConstElem: 192 @ int * * * * * * * * * value = i32 192 * * * * * * * integral or pointer or interface * * * * * * * lv: %3 = zext i8 %2 to i32 * * * * * * * rv: i32 192 * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(2675) * * * * * * * AssignExp::toElem: value = null | (string[])(string[] = string[]) * * * * * * * * VarExp::toElem: value @ string[] * * * * * * * * * DtoSymbolAddress ('value' of type 'string[]') * * * * * * * * * * function param * * * * * * * * * * type: string[] * * * * * * * * NullExp::toElem(type=string[]): null * * * * * * * * * NullExp::toConstElem(type=string[]): null * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * DtoAssign() * * * * * * * * * DtoArrayAssign * * * * * * * * * * DtoSetArrayToNull * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(2677) * * * * * * * CallExp::toElem: this.rollback(0LU) @ void * * * * * * * * DotVarExp::toElem: this.rollback @ @safe void(const(ulong) size = 0LU) * * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * * normal this exp * * * * * * * * DtoCallFunction() * * * * * * * * * doing normal arguments * * * * * * * * * Arguments so far: (1) * * * * * * * * * * %msgpack.Unpacker* %.this_arg * * * * * * * * * Function type: @safe void(const(ulong) size = 0LU) * * * * * * * * * DtoArgument * * * * * * * * * * IntegerExp::toElem: 0LU @ const(ulong) * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ const(ulong) * * * * * * * * * * * * value = i64 0 * * * * * ReturnStatement::toIR(): msgpack-d/src/msgpack.d(2679) * * * * * * AddrExp::toElem: &this @ Unpacker* * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * normal this exp * * * * * * * is nothing special * * * * * * * lval: %msgpack.Unpacker* %.this_arg * * * * * * return value is '0x134e8b90' * TemplateInstance::codegen: 'msgpack.isByte!string' * * VarDeclaration::codegen(): 'msgpack.isByte!string.isByte' * * * DtoResolveVariable(msgpack.isByte!string.isByte) * TemplateInstance::codegen: 'msgpack.Unpacker.unpack!(char[])' * * DtoDefineFunction(msgpack.Unpacker.unpack!(char[]).unpack): msgpack-d/src/msgpack.d(2236) * * * Doing function body for: unpack * * * DtoCreateNestedContext for unpack * * * * DtoCreateNestedContextType for msgpack.Unpacker.unpack!(char[]).unpack * * * * * has nested frame * * * * * Function unpack has depth 0 * * * * * Nested var 'this' of type %msgpack.Unpacker* * * * * * frameType = %nest.unpack.20 = type { %msgpack.Unpacker* } * * * * nested param: this * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(2237) * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(2238) * * * * * * DeclarationExp::toElem: alias U = char; | T=void * * * * * * * DtoDeclarationExp: U * * * * * * * * Ignoring Symbol: alias * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(2243) * * * * * * DeclarationExp::toElem: @safe ulong beginRaw() { this.canRead(1LU, 0LU); const const(ubyte) header = this.read(); ulong length = 0LU; if (160 <= cast(int)header && cast(int)header <= 191) { length = cast(ulong)(cast(int)header & 31); } else { switch (cast(int)header) { case 196: case 217: { this.canRead(1LU, 1LU); length = cast(ulong)this.read(); break; } case 197: case 218: { this.canRead(2LU, 1LU); length = load16To(this.read(2LU)); break; } case 198: case 219: { this.canRead(4LU, 1LU); length = load32To(this.read(4LU)); break; } case 192: { break; } default: { this.rollback(0LU); } } } return length; } | T=void * * * * * * * DtoDeclarationExp: beginRaw * * * * * * * * FuncDeclaration * * * * * * * * DtoDefineFunction(msgpack.Unpacker.unpack!(char[]).unpack.beginRaw): msgpack-d/src/msgpack.d(2244) * * * * * * * * * DtoFunctionType(@safe ulong()) * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: i64 (i8*) * * * * * * * * * DtoResolveFunction(msgpack.Unpacker.unpack!(char[]).unpack.beginRaw): msgpack-d/src/msgpack.d(2244) * * * * * * * * * * DtoDeclareFunction(msgpack.Unpacker.unpack!(char[]).unpack.beginRaw): msgpack-d/src/msgpack.d(2244) * * * * * * * * * * * DtoFunctionType(@safe ulong()) * * * * * * * * * * * func = declare i64 @_D7msgpack8Unpacker14__T6unpackTAaZ6unpackMFNcNeKAaZ8beginRawMFNfZm(i8*) * * * * * * * * * Doing function body for: beginRaw * * * * * * * * * DtoCreateNestedContext for beginRaw * * * * * * * * * * DtoCreateNestedContextType for msgpack.Unpacker.unpack!(char[]).unpack.beginRaw * * * * * * * * * * * DtoCreateNestedContextType for msgpack.Unpacker.unpack!(char[]).unpack * * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(2245) * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(2246) * * * * * * * * * * * * CallExp::toElem: this.canRead(1LU, 0LU) @ void * * * * * * * * * * * * * DotVarExp::toElem: this.canRead @ @safe void(const(ulong) size, const(ulong) offset = 1LU) * * * * * * * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * * * * * * * nested this exp * * * * * * * * * * * * * * * DtoNestedVariable for this @ msgpack-d/src/msgpack.d(2246) * * * * * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.Unpacker.unpack!(char[]).unpack * * * * * * * * * * * * * * * * Context: %2 = bitcast i8* %1 to %nest.unpack.20* * * * * * * * * * * * * * * * * of type: %nest.unpack.20 = type { %msgpack.Unpacker* } * * * * * * * * * * * * * * * * Variable: this * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * Function: beginRaw * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * Addr: %this = getelementptr %nest.unpack.20, %nest.unpack.20* %2, i32 0, i32 0 * * * * * * * * * * * * * * * * of type: %msgpack.Unpacker** * * * * * * * * * * * * * * * * Was byref, now: %3 = load %msgpack.Unpacker*, %msgpack.Unpacker** %this, align 8 * * * * * * * * * * * * * * * * of type: %msgpack.Unpacker* * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * %3 = load %msgpack.Unpacker*, %msgpack.Unpacker** %this, align 8 * * * * * * * * * * * * * * Function type: @safe void(const(ulong) size, const(ulong) offset = 1LU) * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ const(ulong) * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ const(ulong) * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ const(ulong) * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ const(ulong) * * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(2247) * * * * * * * * * * * * DeclarationExp::toElem: const const(ubyte) header = this.read(); | T=void * * * * * * * * * * * * * DtoDeclarationExp: header * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = const(ubyte)) * * * * * * * * * * * * * * * llvm value for decl: %header = alloca i8, align 1 * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * AssignExp::toElem: header = this.read() | (const(ubyte))(const(ubyte) = const(ubyte)) * * * * * * * * * * * * * * * * VarExp::toElem: header @ const(ubyte) * * * * * * * * * * * * * * * * * DtoSymbolAddress ('header' of type 'const(ubyte)') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * CallExp::toElem: this.read() @ const(ubyte) * * * * * * * * * * * * * * * * * DotVarExp::toElem: this.read @ nothrow @safe ubyte() * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * * * * * * * * * * * nested this exp * * * * * * * * * * * * * * * * * * * DtoNestedVariable for this @ msgpack-d/src/msgpack.d(2247) * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.Unpacker.unpack!(char[]).unpack * * * * * * * * * * * * * * * * * * * * Context: %5 = bitcast i8* %4 to %nest.unpack.20* * * * * * * * * * * * * * * * * * * * * of type: %nest.unpack.20 = type { %msgpack.Unpacker* } * * * * * * * * * * * * * * * * * * * * Variable: this * * * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * * * Function: beginRaw * * * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * * * Addr: %this1 = getelementptr %nest.unpack.20, %nest.unpack.20* %5, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * * of type: %msgpack.Unpacker** * * * * * * * * * * * * * * * * * * * * Was byref, now: %6 = load %msgpack.Unpacker*, %msgpack.Unpacker** %this1, align 8 * * * * * * * * * * * * * * * * * * * * of type: %msgpack.Unpacker* * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * * %6 = load %msgpack.Unpacker*, %msgpack.Unpacker** %this1, align 8 * * * * * * * * * * * * * * * * * * Function type: nothrow @safe ubyte() * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * lhs: %header = alloca i8, align 1 * * * * * * * * * * * * * * * * * rhs: %7 = call zeroext i8 @_D7msgpack8Unpacker4readMFNbNfZh(%msgpack.Unpacker* %6) * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(2248) * * * * * * * * * * * * DeclarationExp::toElem: ulong length = 0LU; | T=void * * * * * * * * * * * * * DtoDeclarationExp: length * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * * * * * * * llvm value for decl: %length = alloca i64, align 8 * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * AssignExp::toElem: length = 0LU | (ulong)(ulong = ulong) * * * * * * * * * * * * * * * * VarExp::toElem: length @ ulong * * * * * * * * * * * * * * * * * DtoSymbolAddress ('length' of type 'ulong') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * lhs: %length = alloca i64, align 8 * * * * * * * * * * * * * * * * * rhs: i64 0 * * * * * * * * * * * IfStatement::toIR(): msgpack-d/src/msgpack.d(2250) * * * * * * * * * * * * AndAndExp::toElem: 160 <= cast(int)header && cast(int)header <= 191 @ bool * * * * * * * * * * * * * CmpExp::toElem: 160 <= cast(int)header @ bool * * * * * * * * * * * * * * IntegerExp::toElem: 160 @ int * * * * * * * * * * * * * * * IntegerExp::toConstElem: 160 @ int * * * * * * * * * * * * * * * * value = i32 160 * * * * * * * * * * * * * * CastExp::toElem: cast(int)header @ int * * * * * * * * * * * * * * * VarExp::toElem: header @ const(ubyte) * * * * * * * * * * * * * * * * DtoSymbolAddress ('header' of type 'const(ubyte)') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * Casting from 'const(ubyte)' to 'int' * * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * * * type 1: i32 160 * * * * * * * * * * * * * * type 2: %9 = zext i8 %8 to i32 * * * * * * * * * * * * * CmpExp::toElem: cast(int)header <= 191 @ bool * * * * * * * * * * * * * * CastExp::toElem: cast(int)header @ int * * * * * * * * * * * * * * * VarExp::toElem: header @ const(ubyte) * * * * * * * * * * * * * * * * DtoSymbolAddress ('header' of type 'const(ubyte)') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * Casting from 'const(ubyte)' to 'int' * * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * * * IntegerExp::toElem: 191 @ int * * * * * * * * * * * * * * * IntegerExp::toConstElem: 191 @ int * * * * * * * * * * * * * * * * value = i32 191 * * * * * * * * * * * * * * type 1: %12 = zext i8 %11 to i32 * * * * * * * * * * * * * * type 2: i32 191 * * * * * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(2250) * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(2251) * * * * * * * * * * * * * * AssignExp::toElem: length = cast(ulong)(cast(int)header & 31) | (ulong)(ulong = ulong) * * * * * * * * * * * * * * * VarExp::toElem: length @ ulong * * * * * * * * * * * * * * * * DtoSymbolAddress ('length' of type 'ulong') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * CastExp::toElem: cast(ulong)(cast(int)header & 31) @ ulong * * * * * * * * * * * * * * * * AndExp::toElem: cast(int)header & 31 @ int * * * * * * * * * * * * * * * * * CastExp::toElem: cast(int)header @ int * * * * * * * * * * * * * * * * * * VarExp::toElem: header @ const(ubyte) * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('header' of type 'const(ubyte)') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * Casting from 'const(ubyte)' to 'int' * * * * * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * * * * * * IntegerExp::toElem: 31 @ int * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 31 @ int * * * * * * * * * * * * * * * * * * * value = i32 31 * * * * * * * * * * * * * * * * Casting from 'int' to 'ulong' * * * * * * * * * * * * * * * * * cast to: i64 * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * lhs: %length = alloca i64, align 8 * * * * * * * * * * * * * * * * rhs: %17 = sext i32 %16 to i64 * * * * * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(2252) * * * * * * * * * * * * * SwitchStatement::toIR(): msgpack-d/src/msgpack.d(2253) * * * * * * * * * * * * * * has default * * * * * * * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(2253) * * * * * * * * * * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(2253) * * * * * * * * * * * * * * * * CaseStatement::toIR(): msgpack-d/src/msgpack.d(2254) * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 196 @ int * * * * * * * * * * * * * * * * * * value = i32 196 * * * * * * * * * * * * * * * * * CaseStatement::toIR(): msgpack-d/src/msgpack.d(2254) * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 217 @ int * * * * * * * * * * * * * * * * * * * value = i32 217 * * * * * * * * * * * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(2254) * * * * * * * * * * * * * * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(2254) * * * * * * * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(2255) * * * * * * * * * * * * * * * * * * * * * CallExp::toElem: this.canRead(1LU, 1LU) @ void * * * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: this.canRead @ @safe void(const(ulong) size, const(ulong) offset = 1LU) * * * * * * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * * * * * * * * * * * * * * * * nested this exp * * * * * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for this @ msgpack-d/src/msgpack.d(2255) * * * * * * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.Unpacker.unpack!(char[]).unpack * * * * * * * * * * * * * * * * * * * * * * * * * Context: %19 = bitcast i8* %18 to %nest.unpack.20* * * * * * * * * * * * * * * * * * * * * * * * * * of type: %nest.unpack.20 = type { %msgpack.Unpacker* } * * * * * * * * * * * * * * * * * * * * * * * * * Variable: this * * * * * * * * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * * * * * * * * Function: beginRaw * * * * * * * * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * * * * * * * * Addr: %this3 = getelementptr %nest.unpack.20, %nest.unpack.20* %19, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * * * * * * * of type: %msgpack.Unpacker** * * * * * * * * * * * * * * * * * * * * * * * * * Was byref, now: %20 = load %msgpack.Unpacker*, %msgpack.Unpacker** %this3, align 8 * * * * * * * * * * * * * * * * * * * * * * * * * of type: %msgpack.Unpacker* * * * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * * * * * * * %20 = load %msgpack.Unpacker*, %msgpack.Unpacker** %this3, align 8 * * * * * * * * * * * * * * * * * * * * * * * Function type: @safe void(const(ulong) size, const(ulong) offset = 1LU) * * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ const(ulong) * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ const(ulong) * * * * * * * * * * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ const(ulong) * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ const(ulong) * * * * * * * * * * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(2256) * * * * * * * * * * * * * * * * * * * * * AssignExp::toElem: length = cast(ulong)this.read() | (ulong)(ulong = ulong) * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: length @ ulong * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('length' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * CastExp::toElem: cast(ulong)this.read() @ ulong * * * * * * * * * * * * * * * * * * * * * * * CallExp::toElem: this.read() @ ubyte * * * * * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: this.read @ nothrow @safe ubyte() * * * * * * * * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * * * * * * * * * * * * * * * * * * nested this exp * * * * * * * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for this @ msgpack-d/src/msgpack.d(2256) * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.Unpacker.unpack!(char[]).unpack * * * * * * * * * * * * * * * * * * * * * * * * * * * Context: %22 = bitcast i8* %21 to %nest.unpack.20* * * * * * * * * * * * * * * * * * * * * * * * * * * * of type: %nest.unpack.20 = type { %msgpack.Unpacker* } * * * * * * * * * * * * * * * * * * * * * * * * * * * Variable: this * * * * * * * * * * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * * * * * * * * * * Function: beginRaw * * * * * * * * * * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * * * * * * * * * * Addr: %this4 = getelementptr %nest.unpack.20, %nest.unpack.20* %22, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * * * * * * * * * of type: %msgpack.Unpacker** * * * * * * * * * * * * * * * * * * * * * * * * * * * Was byref, now: %23 = load %msgpack.Unpacker*, %msgpack.Unpacker** %this4, align 8 * * * * * * * * * * * * * * * * * * * * * * * * * * * of type: %msgpack.Unpacker* * * * * * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * * * * * * * * * %23 = load %msgpack.Unpacker*, %msgpack.Unpacker** %this4, align 8 * * * * * * * * * * * * * * * * * * * * * * * * * Function type: nothrow @safe ubyte() * * * * * * * * * * * * * * * * * * * * * * * Casting from 'ubyte' to 'ulong' * * * * * * * * * * * * * * * * * * * * * * * * cast to: i64 * * * * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * * * * lhs: %length = alloca i64, align 8 * * * * * * * * * * * * * * * * * * * * * * * rhs: %25 = zext i8 %24 to i64 * * * * * * * * * * * * * * * * * * * * BreakStatement::toIR(): msgpack-d/src/msgpack.d(2257) * * * * * * * * * * * * * * * * CaseStatement::toIR(): msgpack-d/src/msgpack.d(2258) * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 197 @ int * * * * * * * * * * * * * * * * * * value = i32 197 * * * * * * * * * * * * * * * * * CaseStatement::toIR(): msgpack-d/src/msgpack.d(2258) * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 218 @ int * * * * * * * * * * * * * * * * * * * value = i32 218 * * * * * * * * * * * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(2258) * * * * * * * * * * * * * * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(2258) * * * * * * * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(2259) * * * * * * * * * * * * * * * * * * * * * CallExp::toElem: this.canRead(2LU, 1LU) @ void * * * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: this.canRead @ @safe void(const(ulong) size, const(ulong) offset = 1LU) * * * * * * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * * * * * * * * * * * * * * * * nested this exp * * * * * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for this @ msgpack-d/src/msgpack.d(2259) * * * * * * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.Unpacker.unpack!(char[]).unpack * * * * * * * * * * * * * * * * * * * * * * * * * Context: %27 = bitcast i8* %26 to %nest.unpack.20* * * * * * * * * * * * * * * * * * * * * * * * * * of type: %nest.unpack.20 = type { %msgpack.Unpacker* } * * * * * * * * * * * * * * * * * * * * * * * * * Variable: this * * * * * * * * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * * * * * * * * Function: beginRaw * * * * * * * * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * * * * * * * * Addr: %this7 = getelementptr %nest.unpack.20, %nest.unpack.20* %27, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * * * * * * * of type: %msgpack.Unpacker** * * * * * * * * * * * * * * * * * * * * * * * * * Was byref, now: %28 = load %msgpack.Unpacker*, %msgpack.Unpacker** %this7, align 8 * * * * * * * * * * * * * * * * * * * * * * * * * of type: %msgpack.Unpacker* * * * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * * * * * * * %28 = load %msgpack.Unpacker*, %msgpack.Unpacker** %this7, align 8 * * * * * * * * * * * * * * * * * * * * * * * Function type: @safe void(const(ulong) size, const(ulong) offset = 1LU) * * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 2LU @ const(ulong) * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 2LU @ const(ulong) * * * * * * * * * * * * * * * * * * * * * * * * * * value = i64 2 * * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ const(ulong) * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ const(ulong) * * * * * * * * * * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(2260) * * * * * * * * * * * * * * * * * * * * * AssignExp::toElem: length = load16To(this.read(2LU)) | (ulong)(ulong = ulong) * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: length @ ulong * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('length' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * CallExp::toElem: load16To(this.read(2LU)) @ ulong * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: load16To @ pure nothrow @nogc @trusted ulong(ubyte[] buffer) * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('load16To' of type 'pure nothrow @nogc @trusted ulong(ubyte[] buffer)') * * * * * * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @trusted ulong(ubyte[] buffer) * * * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * * * CallExp::toElem: this.read(2LU) @ ubyte[] * * * * * * * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: this.read @ nothrow @safe ubyte[](const(ulong) size) * * * * * * * * * * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * * * * * * * * * * * * * * * * * * * * nested this exp * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for this @ msgpack-d/src/msgpack.d(2260) * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.Unpacker.unpack!(char[]).unpack * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Context: %30 = bitcast i8* %29 to %nest.unpack.20* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * of type: %nest.unpack.20 = type { %msgpack.Unpacker* } * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Variable: this * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Function: beginRaw * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Addr: %this8 = getelementptr %nest.unpack.20, %nest.unpack.20* %30, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * of type: %msgpack.Unpacker** * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Was byref, now: %31 = load %msgpack.Unpacker*, %msgpack.Unpacker** %this8, align 8 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * of type: %msgpack.Unpacker* * * * * * * * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * * * * * * * * * * * %31 = load %msgpack.Unpacker*, %msgpack.Unpacker** %this8, align 8 * * * * * * * * * * * * * * * * * * * * * * * * * * * Function type: nothrow @safe ubyte[](const(ulong) size) * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 2LU @ const(ulong) * * * * * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 2LU @ const(ulong) * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * value = i64 2 * * * * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * * * * lhs: %length = alloca i64, align 8 * * * * * * * * * * * * * * * * * * * * * * * rhs: %33 = call i64 @_D7msgpack15__T8load16ToTmZ8load16ToFNaNbNiNeAhZm({ i64, i8* } %32) * * * * * * * * * * * * * * * * * * * * BreakStatement::toIR(): msgpack-d/src/msgpack.d(2261) * * * * * * * * * * * * * * * * CaseStatement::toIR(): msgpack-d/src/msgpack.d(2262) * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 198 @ int * * * * * * * * * * * * * * * * * * value = i32 198 * * * * * * * * * * * * * * * * * CaseStatement::toIR(): msgpack-d/src/msgpack.d(2262) * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 219 @ int * * * * * * * * * * * * * * * * * * * value = i32 219 * * * * * * * * * * * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(2262) * * * * * * * * * * * * * * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(2262) * * * * * * * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(2263) * * * * * * * * * * * * * * * * * * * * * CallExp::toElem: this.canRead(4LU, 1LU) @ void * * * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: this.canRead @ @safe void(const(ulong) size, const(ulong) offset = 1LU) * * * * * * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * * * * * * * * * * * * * * * * nested this exp * * * * * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for this @ msgpack-d/src/msgpack.d(2263) * * * * * * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.Unpacker.unpack!(char[]).unpack * * * * * * * * * * * * * * * * * * * * * * * * * Context: %35 = bitcast i8* %34 to %nest.unpack.20* * * * * * * * * * * * * * * * * * * * * * * * * * of type: %nest.unpack.20 = type { %msgpack.Unpacker* } * * * * * * * * * * * * * * * * * * * * * * * * * Variable: this * * * * * * * * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * * * * * * * * Function: beginRaw * * * * * * * * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * * * * * * * * Addr: %this12 = getelementptr %nest.unpack.20, %nest.unpack.20* %35, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * * * * * * * of type: %msgpack.Unpacker** * * * * * * * * * * * * * * * * * * * * * * * * * Was byref, now: %36 = load %msgpack.Unpacker*, %msgpack.Unpacker** %this12, align 8 * * * * * * * * * * * * * * * * * * * * * * * * * of type: %msgpack.Unpacker* * * * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * * * * * * * %36 = load %msgpack.Unpacker*, %msgpack.Unpacker** %this12, align 8 * * * * * * * * * * * * * * * * * * * * * * * Function type: @safe void(const(ulong) size, const(ulong) offset = 1LU) * * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 4LU @ const(ulong) * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 4LU @ const(ulong) * * * * * * * * * * * * * * * * * * * * * * * * * * value = i64 4 * * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ const(ulong) * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ const(ulong) * * * * * * * * * * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(2264) * * * * * * * * * * * * * * * * * * * * * AssignExp::toElem: length = load32To(this.read(4LU)) | (ulong)(ulong = ulong) * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: length @ ulong * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('length' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * CallExp::toElem: load32To(this.read(4LU)) @ ulong * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: load32To @ pure nothrow @nogc @trusted ulong(ubyte[] buffer) * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('load32To' of type 'pure nothrow @nogc @trusted ulong(ubyte[] buffer)') * * * * * * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @trusted ulong(ubyte[] buffer) * * * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * * * CallExp::toElem: this.read(4LU) @ ubyte[] * * * * * * * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: this.read @ nothrow @safe ubyte[](const(ulong) size) * * * * * * * * * * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * * * * * * * * * * * * * * * * * * * * nested this exp * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for this @ msgpack-d/src/msgpack.d(2264) * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.Unpacker.unpack!(char[]).unpack * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Context: %38 = bitcast i8* %37 to %nest.unpack.20* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * of type: %nest.unpack.20 = type { %msgpack.Unpacker* } * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Variable: this * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Function: beginRaw * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Addr: %this13 = getelementptr %nest.unpack.20, %nest.unpack.20* %38, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * of type: %msgpack.Unpacker** * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Was byref, now: %39 = load %msgpack.Unpacker*, %msgpack.Unpacker** %this13, align 8 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * of type: %msgpack.Unpacker* * * * * * * * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * * * * * * * * * * * %39 = load %msgpack.Unpacker*, %msgpack.Unpacker** %this13, align 8 * * * * * * * * * * * * * * * * * * * * * * * * * * * Function type: nothrow @safe ubyte[](const(ulong) size) * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 4LU @ const(ulong) * * * * * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 4LU @ const(ulong) * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * value = i64 4 * * * * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * * * * lhs: %length = alloca i64, align 8 * * * * * * * * * * * * * * * * * * * * * * * rhs: %41 = call i64 @_D7msgpack15__T8load32ToTmZ8load32ToFNaNbNiNeAhZm({ i64, i8* } %40) * * * * * * * * * * * * * * * * * * * * BreakStatement::toIR(): msgpack-d/src/msgpack.d(2265) * * * * * * * * * * * * * * * * CaseStatement::toIR(): msgpack-d/src/msgpack.d(2266) * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 192 @ int * * * * * * * * * * * * * * * * * * value = i32 192 * * * * * * * * * * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(2266) * * * * * * * * * * * * * * * * * * BreakStatement::toIR(): msgpack-d/src/msgpack.d(2267) * * * * * * * * * * * * * * * * DefaultStatement::toIR(): msgpack-d/src/msgpack.d(2268) * * * * * * * * * * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(2268) * * * * * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(2269) * * * * * * * * * * * * * * * * * * * CallExp::toElem: this.rollback(0LU) @ void * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: this.rollback @ @safe void(const(ulong) size = 0LU) * * * * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * * * * * * * * * * * * * * nested this exp * * * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for this @ msgpack-d/src/msgpack.d(2269) * * * * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.Unpacker.unpack!(char[]).unpack * * * * * * * * * * * * * * * * * * * * * * * Context: %43 = bitcast i8* %42 to %nest.unpack.20* * * * * * * * * * * * * * * * * * * * * * * * of type: %nest.unpack.20 = type { %msgpack.Unpacker* } * * * * * * * * * * * * * * * * * * * * * * * Variable: this * * * * * * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * * * * * * Function: beginRaw * * * * * * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * * * * * * Addr: %this18 = getelementptr %nest.unpack.20, %nest.unpack.20* %43, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * * * * * of type: %msgpack.Unpacker** * * * * * * * * * * * * * * * * * * * * * * * Was byref, now: %44 = load %msgpack.Unpacker*, %msgpack.Unpacker** %this18, align 8 * * * * * * * * * * * * * * * * * * * * * * * of type: %msgpack.Unpacker* * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * * * * * %44 = load %msgpack.Unpacker*, %msgpack.Unpacker** %this18, align 8 * * * * * * * * * * * * * * * * * * * * * Function type: @safe void(const(ulong) size = 0LU) * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ const(ulong) * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ const(ulong) * * * * * * * * * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * * CastExp::toElem: cast(int)header @ int * * * * * * * * * * * * * * * VarExp::toElem: header @ const(ubyte) * * * * * * * * * * * * * * * * DtoSymbolAddress ('header' of type 'const(ubyte)') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * Casting from 'const(ubyte)' to 'int' * * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * ReturnStatement::toIR(): msgpack-d/src/msgpack.d(2273) * * * * * * * * * * * * VarExp::toElem: length @ ulong * * * * * * * * * * * * * DtoSymbolAddress ('length' of type 'ulong') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * return value is '0x13503208' * * * * * IfStatement::toIR(): msgpack-d/src/msgpack.d(2277) * * * * * * CallExp::toElem: this.checkNil() @ bool * * * * * * * DotVarExp::toElem: this.checkNil @ @safe bool() * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * normal this exp * * * * * * * DtoCallFunction() * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (1) * * * * * * * * * %msgpack.Unpacker* %.this_arg * * * * * * * * Function type: @safe bool() * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(2277) * * * * * * * ReturnStatement::toIR(): msgpack-d/src/msgpack.d(2281) * * * * * * * * AddrExp::toElem: &this.unpackNil(array) @ Unpacker* * * * * * * * * * CallExp::toElem: this.unpackNil(array) @ Unpacker * * * * * * * * * * DotVarExp::toElem: this.unpackNil @ ref @safe Unpacker(ref char[] value) * * * * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * * * * normal this exp * * * * * * * * * * * isMember = this is: Unpacker * * * * * * * * * * * DtoFunctionType(ref @safe Unpacker(ref char[] value)) * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * Final function type: %msgpack.Unpacker* (%msgpack.Unpacker*, { i64, i8* }*) * * * * * * * * * * * DtoResolveFunction(msgpack.Unpacker.unpackNil!(char[]).unpackNil): msgpack-d/src/msgpack.d(2669) * * * * * * * * * * * * DtoDeclareFunction(msgpack.Unpacker.unpackNil!(char[]).unpackNil): msgpack-d/src/msgpack.d(2669) * * * * * * * * * * * * * isMember = this is: Unpacker * * * * * * * * * * * * * DtoFunctionType(ref @safe Unpacker(ref char[] value)) * * * * * * * * * * * * * func = declare %msgpack.Unpacker* @_D7msgpack8Unpacker17__T9unpackNilTAaZ9unpackNilMFNcNfKAaZS7msgpack8Unpacker(%msgpack.Unpacker*, { i64, i8* }*) * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * Building type: ref @safe Unpacker(ref char[] value) * * * * * * * * * * * * DtoFunctionType(ref @safe Unpacker(ref char[] value)) * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * Final function type: %msgpack.Unpacker* ({ i64, i8* }*) * * * * * * * * * * * doing normal arguments * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * %msgpack.Unpacker* %.this_arg * * * * * * * * * * * Function type: ref @safe Unpacker(ref char[] value) * * * * * * * * * * * DtoArgument * * * * * * * * * * * * VarExp::toElem: array @ char[] * * * * * * * * * * * * * DtoSymbolAddress ('array' of type 'char[]') * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * type: char[] * * * * * * * * * is nothing special * * * * * * * * * lval: %2 = call %msgpack.Unpacker* @_D7msgpack8Unpacker17__T9unpackNilTAaZ9unpackNilMFNcNfKAaZS7msgpack8Unpacker(%msgpack.Unpacker* %.this_arg, { i64, i8* }* %array_arg) * * * * * * * * return value is '0x13504e58' * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(2287) * * * * * * DeclarationExp::toElem: ulong length = beginRaw(); | T=void * * * * * * * DtoDeclarationExp: length * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * llvm value for decl: %length = alloca i64, align 8 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: length = beginRaw() | (ulong)(ulong = ulong) * * * * * * * * * * VarExp::toElem: length @ ulong * * * * * * * * * * * DtoSymbolAddress ('length' of type 'ulong') * * * * * * * * * * * * a normal variable * * * * * * * * * * CallExp::toElem: beginRaw() @ ulong * * * * * * * * * * * VarExp::toElem: beginRaw @ @safe ulong() * * * * * * * * * * * * DtoSymbolAddress ('beginRaw' of type '@safe ulong()') * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * Building type: @safe ulong() * * * * * * * * * * * * * DtoFunctionType(@safe ulong()) * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * Final function type: i64 () * * * * * * * * * * * * DtoNestedContext for msgpack.Unpacker.unpack!(char[]).unpack.beginRaw * * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.Unpacker.unpack!(char[]).unpack.beginRaw * * * * * * * * * * * * * Parent frame is from unpack * * * * * * * * * * * * * Current function is unpack * * * * * * * * * * * * * Context is from unpack * * * * * * * * * * * * * Needed depth: 0 * * * * * * * * * * * * * Context depth: 0 * * * * * * * * * * * * * Calling sibling function or directly nested function * * * * * * * * * * * * * result = %.frame = alloca %nest.unpack.20, align 8 * * * * * * * * * * * * * of type %nest.unpack.20* * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * %3 = bitcast %nest.unpack.20* %.frame to i8* * * * * * * * * * * * * Function type: @safe ulong() * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %length = alloca i64, align 8 * * * * * * * * * * * rhs: %4 = call i64 @_D7msgpack8Unpacker14__T6unpackTAaZ6unpackMFNcNeKAaZ8beginRawMFNfZm(i8* %3) * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(2288) * * * * * * DeclarationExp::toElem: ulong offset = this.calculateSize(length); | T=void * * * * * * * DtoDeclarationExp: offset * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * llvm value for decl: %offset = alloca i64, align 8 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: offset = this.calculateSize(length) | (ulong)(ulong = ulong) * * * * * * * * * * VarExp::toElem: offset @ ulong * * * * * * * * * * * DtoSymbolAddress ('offset' of type 'ulong') * * * * * * * * * * * * a normal variable * * * * * * * * * * CallExp::toElem: this.calculateSize(length) @ ulong * * * * * * * * * * * DotVarExp::toElem: this.calculateSize @ pure nothrow @nogc @trusted ulong(const(ulong) length) * * * * * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * * * * * normal this exp * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * %msgpack.Unpacker* %.this_arg * * * * * * * * * * * * Function type: pure nothrow @nogc @trusted ulong(const(ulong) length) * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * VarExp::toElem: length @ const(ulong) * * * * * * * * * * * * * * DtoSymbolAddress ('length' of type 'ulong') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %offset = alloca i64, align 8 * * * * * * * * * * * rhs: %6 = call i64 @_D7msgpack8Unpacker23__T13calculateSizeVbi1Z13calculateSizeMFNaNbNiNexmZm(%msgpack.Unpacker* %.this_arg, i64 %5) * * * * * IfStatement::toIR(): msgpack-d/src/msgpack.d(2289) * * * * * * EqualExp::toElem: length == 0LU @ bool * * * * * * * VarExp::toElem: length @ ulong * * * * * * * * DtoSymbolAddress ('length' of type 'ulong') * * * * * * * * * a normal variable * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * value = i64 0 * * * * * * * integral or pointer or interface * * * * * * * lv: %7 = load i64, i64* %length * * * * * * * rv: i64 0 * * * * * * ReturnStatement::toIR(): msgpack-d/src/msgpack.d(2290) * * * * * * * AddrExp::toElem: &this @ Unpacker* * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * normal this exp * * * * * * * * is nothing special * * * * * * * * lval: %msgpack.Unpacker* %.this_arg * * * * * * * return value is '0x13494d40' * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(2297) * * * * * * CallExp::toElem: this.canRead(length, offset + 1LU) @ void * * * * * * * DotVarExp::toElem: this.canRead @ @safe void(const(ulong) size, const(ulong) offset = 1LU) * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * normal this exp * * * * * * * DtoCallFunction() * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (1) * * * * * * * * * %msgpack.Unpacker* %.this_arg * * * * * * * * Function type: @safe void(const(ulong) size, const(ulong) offset = 1LU) * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: length @ const(ulong) * * * * * * * * * * DtoSymbolAddress ('length' of type 'ulong') * * * * * * * * * * * a normal variable * * * * * * * * DtoArgument * * * * * * * * * AddExp::toElem: offset + 1LU @ const(ulong) * * * * * * * * * * VarExp::toElem: offset @ ulong * * * * * * * * * * * DtoSymbolAddress ('offset' of type 'ulong') * * * * * * * * * * * * a normal variable * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * value = i64 1 * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(2301) * * * * * * AssignExp::toElem: array = cast(char[])this.read(length) | (char[])(char[] = char[]) * * * * * * * VarExp::toElem: array @ char[] * * * * * * * * DtoSymbolAddress ('array' of type 'char[]') * * * * * * * * * function param * * * * * * * * * type: char[] * * * * * * * CastExp::toElem: cast(char[])this.read(length) @ char[] * * * * * * * * CallExp::toElem: this.read(length) @ ubyte[] * * * * * * * * * DotVarExp::toElem: this.read @ nothrow @safe ubyte[](const(ulong) size) * * * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * * * normal this exp * * * * * * * * * DtoCallFunction() * * * * * * * * * * doing normal arguments * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * %msgpack.Unpacker* %.this_arg * * * * * * * * * * Function type: nothrow @safe ubyte[](const(ulong) size) * * * * * * * * * * DtoArgument * * * * * * * * * * * VarExp::toElem: length @ const(ulong) * * * * * * * * * * * * DtoSymbolAddress ('length' of type 'ulong') * * * * * * * * * * * * * a normal variable * * * * * * * * Casting from 'ubyte[]' to 'char[]' * * * * * * * * * DtoCastArray * * * * * * * * * * from array or sarray * * * * * * * * * * to array * * * * * * * * * * DtoArrayLen * * * * * * * * * * DtoArrayPtr * * * * * * * * * * isslice * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * DtoAssign() * * * * * * * * DtoArrayAssign * * * * * * * * * DtoArrayPtr * * * * * * * * * DtoArrayLen * * * * * * * * * SetArray * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(2305) * * * * * * AssignExp::toElem: this.hasRaw_ = true | (bool)(bool = bool) * * * * * * * DotVarExp::toElem: this.hasRaw_ @ bool * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * normal this exp * * * * * * * * Indexing aggregate field msgpack.Unpacker.InternalBuffer!().hasRaw_: * * * * * * * * * Value: %16 = getelementptr %msgpack.Unpacker, %msgpack.Unpacker* %.this_arg, i32 0, i32 4 * * * * * * * IntegerExp::toElem: true @ bool * * * * * * * * IntegerExp::toConstElem: true @ bool * * * * * * * * * value = i1 true * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * DtoAssign() * * * * * ReturnStatement::toIR(): msgpack-d/src/msgpack.d(2322) * * * * * * AddrExp::toElem: &this @ Unpacker* * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * normal this exp * * * * * * * is nothing special * * * * * * * lval: %msgpack.Unpacker* %.this_arg * * * * * * return value is '0x13494d40' * TemplateInstance::codegen: 'msgpack.Unpacker.unpackNil!(char[])' * * DtoDefineFunction(msgpack.Unpacker.unpackNil!(char[]).unpackNil): msgpack-d/src/msgpack.d(2669) * * * Doing function body for: unpackNil * * * DtoCreateNestedContext for unpackNil * * * * DtoCreateNestedContextType for msgpack.Unpacker.unpackNil!(char[]).unpackNil * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(2670) * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(2671) * * * * * * CallExp::toElem: this.canRead(1LU, 0LU) @ void * * * * * * * DotVarExp::toElem: this.canRead @ @safe void(const(ulong) size, const(ulong) offset = 1LU) * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * normal this exp * * * * * * * DtoCallFunction() * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (1) * * * * * * * * * %msgpack.Unpacker* %.this_arg * * * * * * * * Function type: @safe void(const(ulong) size, const(ulong) offset = 1LU) * * * * * * * * DtoArgument * * * * * * * * * IntegerExp::toElem: 1LU @ const(ulong) * * * * * * * * * * IntegerExp::toConstElem: 1LU @ const(ulong) * * * * * * * * * * * value = i64 1 * * * * * * * * DtoArgument * * * * * * * * * IntegerExp::toElem: 0LU @ const(ulong) * * * * * * * * * * IntegerExp::toConstElem: 0LU @ const(ulong) * * * * * * * * * * * value = i64 0 * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(2672) * * * * * * DeclarationExp::toElem: const const(ubyte) header = this.read(); | T=void * * * * * * * DtoDeclarationExp: header * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = const(ubyte)) * * * * * * * * * llvm value for decl: %header = alloca i8, align 1 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: header = this.read() | (const(ubyte))(const(ubyte) = const(ubyte)) * * * * * * * * * * VarExp::toElem: header @ const(ubyte) * * * * * * * * * * * DtoSymbolAddress ('header' of type 'const(ubyte)') * * * * * * * * * * * * a normal variable * * * * * * * * * * CallExp::toElem: this.read() @ const(ubyte) * * * * * * * * * * * DotVarExp::toElem: this.read @ nothrow @safe ubyte() * * * * * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * * * * * normal this exp * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * %msgpack.Unpacker* %.this_arg * * * * * * * * * * * * Function type: nothrow @safe ubyte() * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %header = alloca i8, align 1 * * * * * * * * * * * rhs: %1 = call zeroext i8 @_D7msgpack8Unpacker4readMFNbNfZh(%msgpack.Unpacker* %.this_arg) * * * * * IfStatement::toIR(): msgpack-d/src/msgpack.d(2674) * * * * * * EqualExp::toElem: cast(int)header == 192 @ bool * * * * * * * CastExp::toElem: cast(int)header @ int * * * * * * * * VarExp::toElem: header @ const(ubyte) * * * * * * * * * DtoSymbolAddress ('header' of type 'const(ubyte)') * * * * * * * * * * a normal variable * * * * * * * * Casting from 'const(ubyte)' to 'int' * * * * * * * * * cast to: i32 * * * * * * * IntegerExp::toElem: 192 @ int * * * * * * * * IntegerExp::toConstElem: 192 @ int * * * * * * * * * value = i32 192 * * * * * * * integral or pointer or interface * * * * * * * lv: %3 = zext i8 %2 to i32 * * * * * * * rv: i32 192 * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(2675) * * * * * * * AssignExp::toElem: value = null | (char[])(char[] = char[]) * * * * * * * * VarExp::toElem: value @ char[] * * * * * * * * * DtoSymbolAddress ('value' of type 'char[]') * * * * * * * * * * function param * * * * * * * * * * type: char[] * * * * * * * * NullExp::toElem(type=char[]): null * * * * * * * * * NullExp::toConstElem(type=char[]): null * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * DtoAssign() * * * * * * * * * DtoArrayAssign * * * * * * * * * * DtoSetArrayToNull * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(2677) * * * * * * * CallExp::toElem: this.rollback(0LU) @ void * * * * * * * * DotVarExp::toElem: this.rollback @ @safe void(const(ulong) size = 0LU) * * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * * normal this exp * * * * * * * * DtoCallFunction() * * * * * * * * * doing normal arguments * * * * * * * * * Arguments so far: (1) * * * * * * * * * * %msgpack.Unpacker* %.this_arg * * * * * * * * * Function type: @safe void(const(ulong) size = 0LU) * * * * * * * * * DtoArgument * * * * * * * * * * IntegerExp::toElem: 0LU @ const(ulong) * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ const(ulong) * * * * * * * * * * * * value = i64 0 * * * * * ReturnStatement::toIR(): msgpack-d/src/msgpack.d(2679) * * * * * * AddrExp::toElem: &this @ Unpacker* * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * normal this exp * * * * * * * is nothing special * * * * * * * lval: %msgpack.Unpacker* %.this_arg * * * * * * return value is '0x135045c0' * TemplateInstance::codegen: 'msgpack.isByte!char' * * VarDeclaration::codegen(): 'msgpack.isByte!char.isByte' * * * DtoResolveVariable(msgpack.isByte!char.isByte) * TemplateInstance::codegen: 'msgpack.Unpacker.unpack!(ulong[])' * * DtoDefineFunction(msgpack.Unpacker.unpack!(ulong[]).unpack): msgpack-d/src/msgpack.d(2236) * * * Doing function body for: unpack * * * DtoCreateNestedContext for unpack * * * * DtoCreateNestedContextType for msgpack.Unpacker.unpack!(ulong[]).unpack * * * * * has nested frame * * * * * Function unpack has depth 0 * * * * * Nested var 'this' of type %msgpack.Unpacker* * * * * * frameType = %nest.unpack.21 = type { %msgpack.Unpacker* } * * * * nested param: this * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(2237) * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(2238) * * * * * * DeclarationExp::toElem: alias U = ulong; | T=void * * * * * * * DtoDeclarationExp: U * * * * * * * * Ignoring Symbol: alias * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(2243) * * * * * * DeclarationExp::toElem: @safe ulong beginRaw() { this.canRead(1LU, 0LU); const const(ubyte) header = this.read(); ulong length = 0LU; if (160 <= cast(int)header && cast(int)header <= 191) { length = cast(ulong)(cast(int)header & 31); } else { switch (cast(int)header) { case 196: case 217: { this.canRead(1LU, 1LU); length = cast(ulong)this.read(); break; } case 197: case 218: { this.canRead(2LU, 1LU); length = load16To(this.read(2LU)); break; } case 198: case 219: { this.canRead(4LU, 1LU); length = load32To(this.read(4LU)); break; } case 192: { break; } default: { this.rollback(0LU); } } } return length; } | T=void * * * * * * * DtoDeclarationExp: beginRaw * * * * * * * * FuncDeclaration * * * * * * * * DtoDefineFunction(msgpack.Unpacker.unpack!(ulong[]).unpack.beginRaw): msgpack-d/src/msgpack.d(2244) * * * * * * * * * DtoFunctionType(@safe ulong()) * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: i64 (i8*) * * * * * * * * * DtoResolveFunction(msgpack.Unpacker.unpack!(ulong[]).unpack.beginRaw): msgpack-d/src/msgpack.d(2244) * * * * * * * * * * DtoDeclareFunction(msgpack.Unpacker.unpack!(ulong[]).unpack.beginRaw): msgpack-d/src/msgpack.d(2244) * * * * * * * * * * * DtoFunctionType(@safe ulong()) * * * * * * * * * * * func = declare i64 @_D7msgpack8Unpacker14__T6unpackTAmZ6unpackMFNcNeKAmZ8beginRawMFNfZm(i8*) * * * * * * * * * Doing function body for: beginRaw * * * * * * * * * DtoCreateNestedContext for beginRaw * * * * * * * * * * DtoCreateNestedContextType for msgpack.Unpacker.unpack!(ulong[]).unpack.beginRaw * * * * * * * * * * * DtoCreateNestedContextType for msgpack.Unpacker.unpack!(ulong[]).unpack * * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(2245) * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(2246) * * * * * * * * * * * * CallExp::toElem: this.canRead(1LU, 0LU) @ void * * * * * * * * * * * * * DotVarExp::toElem: this.canRead @ @safe void(const(ulong) size, const(ulong) offset = 1LU) * * * * * * * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * * * * * * * nested this exp * * * * * * * * * * * * * * * DtoNestedVariable for this @ msgpack-d/src/msgpack.d(2246) * * * * * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.Unpacker.unpack!(ulong[]).unpack * * * * * * * * * * * * * * * * Context: %2 = bitcast i8* %1 to %nest.unpack.21* * * * * * * * * * * * * * * * * of type: %nest.unpack.21 = type { %msgpack.Unpacker* } * * * * * * * * * * * * * * * * Variable: this * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * Function: beginRaw * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * Addr: %this = getelementptr %nest.unpack.21, %nest.unpack.21* %2, i32 0, i32 0 * * * * * * * * * * * * * * * * of type: %msgpack.Unpacker** * * * * * * * * * * * * * * * * Was byref, now: %3 = load %msgpack.Unpacker*, %msgpack.Unpacker** %this, align 8 * * * * * * * * * * * * * * * * of type: %msgpack.Unpacker* * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * %3 = load %msgpack.Unpacker*, %msgpack.Unpacker** %this, align 8 * * * * * * * * * * * * * * Function type: @safe void(const(ulong) size, const(ulong) offset = 1LU) * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ const(ulong) * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ const(ulong) * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ const(ulong) * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ const(ulong) * * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(2247) * * * * * * * * * * * * DeclarationExp::toElem: const const(ubyte) header = this.read(); | T=void * * * * * * * * * * * * * DtoDeclarationExp: header * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = const(ubyte)) * * * * * * * * * * * * * * * llvm value for decl: %header = alloca i8, align 1 * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * AssignExp::toElem: header = this.read() | (const(ubyte))(const(ubyte) = const(ubyte)) * * * * * * * * * * * * * * * * VarExp::toElem: header @ const(ubyte) * * * * * * * * * * * * * * * * * DtoSymbolAddress ('header' of type 'const(ubyte)') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * CallExp::toElem: this.read() @ const(ubyte) * * * * * * * * * * * * * * * * * DotVarExp::toElem: this.read @ nothrow @safe ubyte() * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * * * * * * * * * * * nested this exp * * * * * * * * * * * * * * * * * * * DtoNestedVariable for this @ msgpack-d/src/msgpack.d(2247) * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.Unpacker.unpack!(ulong[]).unpack * * * * * * * * * * * * * * * * * * * * Context: %5 = bitcast i8* %4 to %nest.unpack.21* * * * * * * * * * * * * * * * * * * * * of type: %nest.unpack.21 = type { %msgpack.Unpacker* } * * * * * * * * * * * * * * * * * * * * Variable: this * * * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * * * Function: beginRaw * * * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * * * Addr: %this1 = getelementptr %nest.unpack.21, %nest.unpack.21* %5, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * * of type: %msgpack.Unpacker** * * * * * * * * * * * * * * * * * * * * Was byref, now: %6 = load %msgpack.Unpacker*, %msgpack.Unpacker** %this1, align 8 * * * * * * * * * * * * * * * * * * * * of type: %msgpack.Unpacker* * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * * %6 = load %msgpack.Unpacker*, %msgpack.Unpacker** %this1, align 8 * * * * * * * * * * * * * * * * * * Function type: nothrow @safe ubyte() * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * lhs: %header = alloca i8, align 1 * * * * * * * * * * * * * * * * * rhs: %7 = call zeroext i8 @_D7msgpack8Unpacker4readMFNbNfZh(%msgpack.Unpacker* %6) * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(2248) * * * * * * * * * * * * DeclarationExp::toElem: ulong length = 0LU; | T=void * * * * * * * * * * * * * DtoDeclarationExp: length * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * * * * * * * llvm value for decl: %length = alloca i64, align 8 * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * AssignExp::toElem: length = 0LU | (ulong)(ulong = ulong) * * * * * * * * * * * * * * * * VarExp::toElem: length @ ulong * * * * * * * * * * * * * * * * * DtoSymbolAddress ('length' of type 'ulong') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * lhs: %length = alloca i64, align 8 * * * * * * * * * * * * * * * * * rhs: i64 0 * * * * * * * * * * * IfStatement::toIR(): msgpack-d/src/msgpack.d(2250) * * * * * * * * * * * * AndAndExp::toElem: 160 <= cast(int)header && cast(int)header <= 191 @ bool * * * * * * * * * * * * * CmpExp::toElem: 160 <= cast(int)header @ bool * * * * * * * * * * * * * * IntegerExp::toElem: 160 @ int * * * * * * * * * * * * * * * IntegerExp::toConstElem: 160 @ int * * * * * * * * * * * * * * * * value = i32 160 * * * * * * * * * * * * * * CastExp::toElem: cast(int)header @ int * * * * * * * * * * * * * * * VarExp::toElem: header @ const(ubyte) * * * * * * * * * * * * * * * * DtoSymbolAddress ('header' of type 'const(ubyte)') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * Casting from 'const(ubyte)' to 'int' * * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * * * type 1: i32 160 * * * * * * * * * * * * * * type 2: %9 = zext i8 %8 to i32 * * * * * * * * * * * * * CmpExp::toElem: cast(int)header <= 191 @ bool * * * * * * * * * * * * * * CastExp::toElem: cast(int)header @ int * * * * * * * * * * * * * * * VarExp::toElem: header @ const(ubyte) * * * * * * * * * * * * * * * * DtoSymbolAddress ('header' of type 'const(ubyte)') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * Casting from 'const(ubyte)' to 'int' * * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * * * IntegerExp::toElem: 191 @ int * * * * * * * * * * * * * * * IntegerExp::toConstElem: 191 @ int * * * * * * * * * * * * * * * * value = i32 191 * * * * * * * * * * * * * * type 1: %12 = zext i8 %11 to i32 * * * * * * * * * * * * * * type 2: i32 191 * * * * * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(2250) * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(2251) * * * * * * * * * * * * * * AssignExp::toElem: length = cast(ulong)(cast(int)header & 31) | (ulong)(ulong = ulong) * * * * * * * * * * * * * * * VarExp::toElem: length @ ulong * * * * * * * * * * * * * * * * DtoSymbolAddress ('length' of type 'ulong') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * CastExp::toElem: cast(ulong)(cast(int)header & 31) @ ulong * * * * * * * * * * * * * * * * AndExp::toElem: cast(int)header & 31 @ int * * * * * * * * * * * * * * * * * CastExp::toElem: cast(int)header @ int * * * * * * * * * * * * * * * * * * VarExp::toElem: header @ const(ubyte) * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('header' of type 'const(ubyte)') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * Casting from 'const(ubyte)' to 'int' * * * * * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * * * * * * IntegerExp::toElem: 31 @ int * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 31 @ int * * * * * * * * * * * * * * * * * * * value = i32 31 * * * * * * * * * * * * * * * * Casting from 'int' to 'ulong' * * * * * * * * * * * * * * * * * cast to: i64 * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * lhs: %length = alloca i64, align 8 * * * * * * * * * * * * * * * * rhs: %17 = sext i32 %16 to i64 * * * * * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(2252) * * * * * * * * * * * * * SwitchStatement::toIR(): msgpack-d/src/msgpack.d(2253) * * * * * * * * * * * * * * has default * * * * * * * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(2253) * * * * * * * * * * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(2253) * * * * * * * * * * * * * * * * CaseStatement::toIR(): msgpack-d/src/msgpack.d(2254) * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 196 @ int * * * * * * * * * * * * * * * * * * value = i32 196 * * * * * * * * * * * * * * * * * CaseStatement::toIR(): msgpack-d/src/msgpack.d(2254) * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 217 @ int * * * * * * * * * * * * * * * * * * * value = i32 217 * * * * * * * * * * * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(2254) * * * * * * * * * * * * * * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(2254) * * * * * * * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(2255) * * * * * * * * * * * * * * * * * * * * * CallExp::toElem: this.canRead(1LU, 1LU) @ void * * * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: this.canRead @ @safe void(const(ulong) size, const(ulong) offset = 1LU) * * * * * * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * * * * * * * * * * * * * * * * nested this exp * * * * * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for this @ msgpack-d/src/msgpack.d(2255) * * * * * * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.Unpacker.unpack!(ulong[]).unpack * * * * * * * * * * * * * * * * * * * * * * * * * Context: %19 = bitcast i8* %18 to %nest.unpack.21* * * * * * * * * * * * * * * * * * * * * * * * * * of type: %nest.unpack.21 = type { %msgpack.Unpacker* } * * * * * * * * * * * * * * * * * * * * * * * * * Variable: this * * * * * * * * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * * * * * * * * Function: beginRaw * * * * * * * * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * * * * * * * * Addr: %this3 = getelementptr %nest.unpack.21, %nest.unpack.21* %19, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * * * * * * * of type: %msgpack.Unpacker** * * * * * * * * * * * * * * * * * * * * * * * * * Was byref, now: %20 = load %msgpack.Unpacker*, %msgpack.Unpacker** %this3, align 8 * * * * * * * * * * * * * * * * * * * * * * * * * of type: %msgpack.Unpacker* * * * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * * * * * * * %20 = load %msgpack.Unpacker*, %msgpack.Unpacker** %this3, align 8 * * * * * * * * * * * * * * * * * * * * * * * Function type: @safe void(const(ulong) size, const(ulong) offset = 1LU) * * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ const(ulong) * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ const(ulong) * * * * * * * * * * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ const(ulong) * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ const(ulong) * * * * * * * * * * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(2256) * * * * * * * * * * * * * * * * * * * * * AssignExp::toElem: length = cast(ulong)this.read() | (ulong)(ulong = ulong) * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: length @ ulong * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('length' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * CastExp::toElem: cast(ulong)this.read() @ ulong * * * * * * * * * * * * * * * * * * * * * * * CallExp::toElem: this.read() @ ubyte * * * * * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: this.read @ nothrow @safe ubyte() * * * * * * * * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * * * * * * * * * * * * * * * * * * nested this exp * * * * * * * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for this @ msgpack-d/src/msgpack.d(2256) * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.Unpacker.unpack!(ulong[]).unpack * * * * * * * * * * * * * * * * * * * * * * * * * * * Context: %22 = bitcast i8* %21 to %nest.unpack.21* * * * * * * * * * * * * * * * * * * * * * * * * * * * of type: %nest.unpack.21 = type { %msgpack.Unpacker* } * * * * * * * * * * * * * * * * * * * * * * * * * * * Variable: this * * * * * * * * * * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * * * * * * * * * * Function: beginRaw * * * * * * * * * * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * * * * * * * * * * Addr: %this4 = getelementptr %nest.unpack.21, %nest.unpack.21* %22, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * * * * * * * * * of type: %msgpack.Unpacker** * * * * * * * * * * * * * * * * * * * * * * * * * * * Was byref, now: %23 = load %msgpack.Unpacker*, %msgpack.Unpacker** %this4, align 8 * * * * * * * * * * * * * * * * * * * * * * * * * * * of type: %msgpack.Unpacker* * * * * * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * * * * * * * * * %23 = load %msgpack.Unpacker*, %msgpack.Unpacker** %this4, align 8 * * * * * * * * * * * * * * * * * * * * * * * * * Function type: nothrow @safe ubyte() * * * * * * * * * * * * * * * * * * * * * * * Casting from 'ubyte' to 'ulong' * * * * * * * * * * * * * * * * * * * * * * * * cast to: i64 * * * * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * * * * lhs: %length = alloca i64, align 8 * * * * * * * * * * * * * * * * * * * * * * * rhs: %25 = zext i8 %24 to i64 * * * * * * * * * * * * * * * * * * * * BreakStatement::toIR(): msgpack-d/src/msgpack.d(2257) * * * * * * * * * * * * * * * * CaseStatement::toIR(): msgpack-d/src/msgpack.d(2258) * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 197 @ int * * * * * * * * * * * * * * * * * * value = i32 197 * * * * * * * * * * * * * * * * * CaseStatement::toIR(): msgpack-d/src/msgpack.d(2258) * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 218 @ int * * * * * * * * * * * * * * * * * * * value = i32 218 * * * * * * * * * * * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(2258) * * * * * * * * * * * * * * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(2258) * * * * * * * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(2259) * * * * * * * * * * * * * * * * * * * * * CallExp::toElem: this.canRead(2LU, 1LU) @ void * * * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: this.canRead @ @safe void(const(ulong) size, const(ulong) offset = 1LU) * * * * * * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * * * * * * * * * * * * * * * * nested this exp * * * * * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for this @ msgpack-d/src/msgpack.d(2259) * * * * * * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.Unpacker.unpack!(ulong[]).unpack * * * * * * * * * * * * * * * * * * * * * * * * * Context: %27 = bitcast i8* %26 to %nest.unpack.21* * * * * * * * * * * * * * * * * * * * * * * * * * of type: %nest.unpack.21 = type { %msgpack.Unpacker* } * * * * * * * * * * * * * * * * * * * * * * * * * Variable: this * * * * * * * * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * * * * * * * * Function: beginRaw * * * * * * * * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * * * * * * * * Addr: %this7 = getelementptr %nest.unpack.21, %nest.unpack.21* %27, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * * * * * * * of type: %msgpack.Unpacker** * * * * * * * * * * * * * * * * * * * * * * * * * Was byref, now: %28 = load %msgpack.Unpacker*, %msgpack.Unpacker** %this7, align 8 * * * * * * * * * * * * * * * * * * * * * * * * * of type: %msgpack.Unpacker* * * * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * * * * * * * %28 = load %msgpack.Unpacker*, %msgpack.Unpacker** %this7, align 8 * * * * * * * * * * * * * * * * * * * * * * * Function type: @safe void(const(ulong) size, const(ulong) offset = 1LU) * * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 2LU @ const(ulong) * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 2LU @ const(ulong) * * * * * * * * * * * * * * * * * * * * * * * * * * value = i64 2 * * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ const(ulong) * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ const(ulong) * * * * * * * * * * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(2260) * * * * * * * * * * * * * * * * * * * * * AssignExp::toElem: length = load16To(this.read(2LU)) | (ulong)(ulong = ulong) * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: length @ ulong * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('length' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * CallExp::toElem: load16To(this.read(2LU)) @ ulong * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: load16To @ pure nothrow @nogc @trusted ulong(ubyte[] buffer) * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('load16To' of type 'pure nothrow @nogc @trusted ulong(ubyte[] buffer)') * * * * * * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @trusted ulong(ubyte[] buffer) * * * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * * * CallExp::toElem: this.read(2LU) @ ubyte[] * * * * * * * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: this.read @ nothrow @safe ubyte[](const(ulong) size) * * * * * * * * * * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * * * * * * * * * * * * * * * * * * * * nested this exp * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for this @ msgpack-d/src/msgpack.d(2260) * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.Unpacker.unpack!(ulong[]).unpack * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Context: %30 = bitcast i8* %29 to %nest.unpack.21* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * of type: %nest.unpack.21 = type { %msgpack.Unpacker* } * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Variable: this * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Function: beginRaw * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Addr: %this8 = getelementptr %nest.unpack.21, %nest.unpack.21* %30, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * of type: %msgpack.Unpacker** * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Was byref, now: %31 = load %msgpack.Unpacker*, %msgpack.Unpacker** %this8, align 8 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * of type: %msgpack.Unpacker* * * * * * * * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * * * * * * * * * * * %31 = load %msgpack.Unpacker*, %msgpack.Unpacker** %this8, align 8 * * * * * * * * * * * * * * * * * * * * * * * * * * * Function type: nothrow @safe ubyte[](const(ulong) size) * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 2LU @ const(ulong) * * * * * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 2LU @ const(ulong) * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * value = i64 2 * * * * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * * * * lhs: %length = alloca i64, align 8 * * * * * * * * * * * * * * * * * * * * * * * rhs: %33 = call i64 @_D7msgpack15__T8load16ToTmZ8load16ToFNaNbNiNeAhZm({ i64, i8* } %32) * * * * * * * * * * * * * * * * * * * * BreakStatement::toIR(): msgpack-d/src/msgpack.d(2261) * * * * * * * * * * * * * * * * CaseStatement::toIR(): msgpack-d/src/msgpack.d(2262) * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 198 @ int * * * * * * * * * * * * * * * * * * value = i32 198 * * * * * * * * * * * * * * * * * CaseStatement::toIR(): msgpack-d/src/msgpack.d(2262) * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 219 @ int * * * * * * * * * * * * * * * * * * * value = i32 219 * * * * * * * * * * * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(2262) * * * * * * * * * * * * * * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(2262) * * * * * * * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(2263) * * * * * * * * * * * * * * * * * * * * * CallExp::toElem: this.canRead(4LU, 1LU) @ void * * * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: this.canRead @ @safe void(const(ulong) size, const(ulong) offset = 1LU) * * * * * * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * * * * * * * * * * * * * * * * nested this exp * * * * * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for this @ msgpack-d/src/msgpack.d(2263) * * * * * * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.Unpacker.unpack!(ulong[]).unpack * * * * * * * * * * * * * * * * * * * * * * * * * Context: %35 = bitcast i8* %34 to %nest.unpack.21* * * * * * * * * * * * * * * * * * * * * * * * * * of type: %nest.unpack.21 = type { %msgpack.Unpacker* } * * * * * * * * * * * * * * * * * * * * * * * * * Variable: this * * * * * * * * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * * * * * * * * Function: beginRaw * * * * * * * * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * * * * * * * * Addr: %this12 = getelementptr %nest.unpack.21, %nest.unpack.21* %35, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * * * * * * * of type: %msgpack.Unpacker** * * * * * * * * * * * * * * * * * * * * * * * * * Was byref, now: %36 = load %msgpack.Unpacker*, %msgpack.Unpacker** %this12, align 8 * * * * * * * * * * * * * * * * * * * * * * * * * of type: %msgpack.Unpacker* * * * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * * * * * * * %36 = load %msgpack.Unpacker*, %msgpack.Unpacker** %this12, align 8 * * * * * * * * * * * * * * * * * * * * * * * Function type: @safe void(const(ulong) size, const(ulong) offset = 1LU) * * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 4LU @ const(ulong) * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 4LU @ const(ulong) * * * * * * * * * * * * * * * * * * * * * * * * * * value = i64 4 * * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ const(ulong) * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ const(ulong) * * * * * * * * * * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(2264) * * * * * * * * * * * * * * * * * * * * * AssignExp::toElem: length = load32To(this.read(4LU)) | (ulong)(ulong = ulong) * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: length @ ulong * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('length' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * * CallExp::toElem: load32To(this.read(4LU)) @ ulong * * * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: load32To @ pure nothrow @nogc @trusted ulong(ubyte[] buffer) * * * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('load32To' of type 'pure nothrow @nogc @trusted ulong(ubyte[] buffer)') * * * * * * * * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @trusted ulong(ubyte[] buffer) * * * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * * * CallExp::toElem: this.read(4LU) @ ubyte[] * * * * * * * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: this.read @ nothrow @safe ubyte[](const(ulong) size) * * * * * * * * * * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * * * * * * * * * * * * * * * * * * * * nested this exp * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for this @ msgpack-d/src/msgpack.d(2264) * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.Unpacker.unpack!(ulong[]).unpack * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Context: %38 = bitcast i8* %37 to %nest.unpack.21* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * of type: %nest.unpack.21 = type { %msgpack.Unpacker* } * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Variable: this * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Function: beginRaw * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Addr: %this13 = getelementptr %nest.unpack.21, %nest.unpack.21* %38, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * of type: %msgpack.Unpacker** * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Was byref, now: %39 = load %msgpack.Unpacker*, %msgpack.Unpacker** %this13, align 8 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * of type: %msgpack.Unpacker* * * * * * * * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * * * * * * * * * * * %39 = load %msgpack.Unpacker*, %msgpack.Unpacker** %this13, align 8 * * * * * * * * * * * * * * * * * * * * * * * * * * * Function type: nothrow @safe ubyte[](const(ulong) size) * * * * * * * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 4LU @ const(ulong) * * * * * * * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 4LU @ const(ulong) * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * value = i64 4 * * * * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * * * * lhs: %length = alloca i64, align 8 * * * * * * * * * * * * * * * * * * * * * * * rhs: %41 = call i64 @_D7msgpack15__T8load32ToTmZ8load32ToFNaNbNiNeAhZm({ i64, i8* } %40) * * * * * * * * * * * * * * * * * * * * BreakStatement::toIR(): msgpack-d/src/msgpack.d(2265) * * * * * * * * * * * * * * * * CaseStatement::toIR(): msgpack-d/src/msgpack.d(2266) * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 192 @ int * * * * * * * * * * * * * * * * * * value = i32 192 * * * * * * * * * * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(2266) * * * * * * * * * * * * * * * * * * BreakStatement::toIR(): msgpack-d/src/msgpack.d(2267) * * * * * * * * * * * * * * * * DefaultStatement::toIR(): msgpack-d/src/msgpack.d(2268) * * * * * * * * * * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(2268) * * * * * * * * * * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(2269) * * * * * * * * * * * * * * * * * * * CallExp::toElem: this.rollback(0LU) @ void * * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: this.rollback @ @safe void(const(ulong) size = 0LU) * * * * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * * * * * * * * * * * * * * nested this exp * * * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for this @ msgpack-d/src/msgpack.d(2269) * * * * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.Unpacker.unpack!(ulong[]).unpack * * * * * * * * * * * * * * * * * * * * * * * Context: %43 = bitcast i8* %42 to %nest.unpack.21* * * * * * * * * * * * * * * * * * * * * * * * of type: %nest.unpack.21 = type { %msgpack.Unpacker* } * * * * * * * * * * * * * * * * * * * * * * * Variable: this * * * * * * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * * * * * * Function: beginRaw * * * * * * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * * * * * * Addr: %this18 = getelementptr %nest.unpack.21, %nest.unpack.21* %43, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * * * * * of type: %msgpack.Unpacker** * * * * * * * * * * * * * * * * * * * * * * * Was byref, now: %44 = load %msgpack.Unpacker*, %msgpack.Unpacker** %this18, align 8 * * * * * * * * * * * * * * * * * * * * * * * of type: %msgpack.Unpacker* * * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * * * * * %44 = load %msgpack.Unpacker*, %msgpack.Unpacker** %this18, align 8 * * * * * * * * * * * * * * * * * * * * * Function type: @safe void(const(ulong) size = 0LU) * * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ const(ulong) * * * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ const(ulong) * * * * * * * * * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * * CastExp::toElem: cast(int)header @ int * * * * * * * * * * * * * * * VarExp::toElem: header @ const(ubyte) * * * * * * * * * * * * * * * * DtoSymbolAddress ('header' of type 'const(ubyte)') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * Casting from 'const(ubyte)' to 'int' * * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * ReturnStatement::toIR(): msgpack-d/src/msgpack.d(2273) * * * * * * * * * * * * VarExp::toElem: length @ ulong * * * * * * * * * * * * * DtoSymbolAddress ('length' of type 'ulong') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * return value is '0x1351df38' * * * * * IfStatement::toIR(): msgpack-d/src/msgpack.d(2277) * * * * * * CallExp::toElem: this.checkNil() @ bool * * * * * * * DotVarExp::toElem: this.checkNil @ @safe bool() * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * normal this exp * * * * * * * DtoCallFunction() * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (1) * * * * * * * * * %msgpack.Unpacker* %.this_arg * * * * * * * * Function type: @safe bool() * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(2277) * * * * * * * ReturnStatement::toIR(): msgpack-d/src/msgpack.d(2281) * * * * * * * * AddrExp::toElem: &this.unpackNil(array) @ Unpacker* * * * * * * * * * CallExp::toElem: this.unpackNil(array) @ Unpacker * * * * * * * * * * DotVarExp::toElem: this.unpackNil @ ref @safe Unpacker(ref ulong[] value) * * * * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * * * * normal this exp * * * * * * * * * * * isMember = this is: Unpacker * * * * * * * * * * * DtoFunctionType(ref @safe Unpacker(ref ulong[] value)) * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * Final function type: %msgpack.Unpacker* (%msgpack.Unpacker*, { i64, i64* }*) * * * * * * * * * * * DtoResolveFunction(msgpack.Unpacker.unpackNil!(ulong[]).unpackNil): msgpack-d/src/msgpack.d(2669) * * * * * * * * * * * * DtoDeclareFunction(msgpack.Unpacker.unpackNil!(ulong[]).unpackNil): msgpack-d/src/msgpack.d(2669) * * * * * * * * * * * * * isMember = this is: Unpacker * * * * * * * * * * * * * DtoFunctionType(ref @safe Unpacker(ref ulong[] value)) * * * * * * * * * * * * * func = declare %msgpack.Unpacker* @_D7msgpack8Unpacker17__T9unpackNilTAmZ9unpackNilMFNcNfKAmZS7msgpack8Unpacker(%msgpack.Unpacker*, { i64, i64* }*) * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * Building type: ref @safe Unpacker(ref ulong[] value) * * * * * * * * * * * * DtoFunctionType(ref @safe Unpacker(ref ulong[] value)) * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * Final function type: %msgpack.Unpacker* ({ i64, i64* }*) * * * * * * * * * * * doing normal arguments * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * %msgpack.Unpacker* %.this_arg * * * * * * * * * * * Function type: ref @safe Unpacker(ref ulong[] value) * * * * * * * * * * * DtoArgument * * * * * * * * * * * * VarExp::toElem: array @ ulong[] * * * * * * * * * * * * * DtoSymbolAddress ('array' of type 'ulong[]') * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * type: ulong[] * * * * * * * * * is nothing special * * * * * * * * * lval: %2 = call %msgpack.Unpacker* @_D7msgpack8Unpacker17__T9unpackNilTAmZ9unpackNilMFNcNfKAmZS7msgpack8Unpacker(%msgpack.Unpacker* %.this_arg, { i64, i64* }* %array_arg) * * * * * * * * return value is '0x1351fb88' * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(2307) * * * * * * DeclarationExp::toElem: ulong length = this.beginArray(); | T=void * * * * * * * DtoDeclarationExp: length * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * llvm value for decl: %length = alloca i64, align 8 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: length = this.beginArray() | (ulong)(ulong = ulong) * * * * * * * * * * VarExp::toElem: length @ ulong * * * * * * * * * * * DtoSymbolAddress ('length' of type 'ulong') * * * * * * * * * * * * a normal variable * * * * * * * * * * CallExp::toElem: this.beginArray() @ ulong * * * * * * * * * * * DotVarExp::toElem: this.beginArray @ @safe ulong() * * * * * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * * * * * normal this exp * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * %msgpack.Unpacker* %.this_arg * * * * * * * * * * * * Function type: @safe ulong() * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %length = alloca i64, align 8 * * * * * * * * * * * rhs: %3 = call i64 @_D7msgpack8Unpacker10beginArrayMFNfZm(%msgpack.Unpacker* %.this_arg) * * * * * IfStatement::toIR(): msgpack-d/src/msgpack.d(2308) * * * * * * EqualExp::toElem: length == 0LU @ bool * * * * * * * VarExp::toElem: length @ ulong * * * * * * * * DtoSymbolAddress ('length' of type 'ulong') * * * * * * * * * a normal variable * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * value = i64 0 * * * * * * * integral or pointer or interface * * * * * * * lv: %4 = load i64, i64* %length * * * * * * * rv: i64 0 * * * * * * ReturnStatement::toIR(): msgpack-d/src/msgpack.d(2309) * * * * * * * AddrExp::toElem: &this @ Unpacker* * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * normal this exp * * * * * * * * is nothing special * * * * * * * * lval: %msgpack.Unpacker* %.this_arg * * * * * * * return value is '0x134975e0' * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(2315) * * * * * * AssignExp::toElem: array.length = length | (ulong)(ulong = ulong) * * * * * * * performing array.length assignment * * * * * * * VarExp::toElem: array @ ulong[] * * * * * * * * DtoSymbolAddress ('array' of type 'ulong[]') * * * * * * * * * function param * * * * * * * * * type: ulong[] * * * * * * * VarExp::toElem: length @ ulong * * * * * * * * DtoSymbolAddress ('length' of type 'ulong') * * * * * * * * * a normal variable * * * * * * * DtoResizeDynArray : ulong[] * * * * * * * * DtoTypeInfoOf(type = 'ulong[]', base='1') * * * * * * * * * Type::getTypeInfo(): ulong[] * * * * * * * * * TypeInfoDeclaration::codegen(typeid(ulong[])) * * * * * * * * * * type = 'ulong[]' * * * * * * * * * * typeinfo mangle: _D11TypeInfo_Am6__initZ * * * * * * * DtoAssign() * * * * * * * * DtoArrayAssign * * * * * * * * * DtoArrayPtr * * * * * * * * * DtoArrayLen * * * * * * * * * SetArray * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(2318) * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(2318) * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(2318) * * * * * * * * DeclarationExp::toElem: ulong __key2695 = 0LU; | T=void * * * * * * * * * DtoDeclarationExp: __key2695 * * * * * * * * * * VarDeclaration * * * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * * * llvm value for decl: %__key2695 = alloca i64, align 8 * * * * * * * * * * * expression initializer * * * * * * * * * * * AssignExp::toElem: __key2695 = 0LU | (ulong)(ulong = ulong) * * * * * * * * * * * * VarExp::toElem: __key2695 @ ulong * * * * * * * * * * * * * DtoSymbolAddress ('__key2695' of type 'ulong') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * lhs: %__key2695 = alloca i64, align 8 * * * * * * * * * * * * * rhs: i64 0 * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(2318) * * * * * * * * DeclarationExp::toElem: ulong __limit2696 = length; | T=void * * * * * * * * * DtoDeclarationExp: __limit2696 * * * * * * * * * * VarDeclaration * * * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * * * llvm value for decl: %__limit2696 = alloca i64, align 8 * * * * * * * * * * * expression initializer * * * * * * * * * * * AssignExp::toElem: __limit2696 = length | (ulong)(ulong = ulong) * * * * * * * * * * * * VarExp::toElem: __limit2696 @ ulong * * * * * * * * * * * * * DtoSymbolAddress ('__limit2696' of type 'ulong') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * VarExp::toElem: length @ ulong * * * * * * * * * * * * * DtoSymbolAddress ('length' of type 'ulong') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * lhs: %__limit2696 = alloca i64, align 8 * * * * * * * * * * * * * rhs: %10 = load i64, i64* %length * * * * * * * ForStatement::toIR(): msgpack-d/src/msgpack.d(2318) * * * * * * * * CmpExp::toElem: __key2695 < __limit2696 @ bool * * * * * * * * * VarExp::toElem: __key2695 @ ulong * * * * * * * * * * DtoSymbolAddress ('__key2695' of type 'ulong') * * * * * * * * * * * a normal variable * * * * * * * * * VarExp::toElem: __limit2696 @ ulong * * * * * * * * * * DtoSymbolAddress ('__limit2696' of type 'ulong') * * * * * * * * * * * a normal variable * * * * * * * * * type 1: %11 = load i64, i64* %__key2695 * * * * * * * * * type 2: %12 = load i64, i64* %__limit2696 * * * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(2318) * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(2318) * * * * * * * * * * DeclarationExp::toElem: ulong i = __key2695; | T=void * * * * * * * * * * * DtoDeclarationExp: i * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * * * * * llvm value for decl: %i = alloca i64, align 8 * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * AssignExp::toElem: i = __key2695 | (ulong)(ulong = ulong) * * * * * * * * * * * * * * VarExp::toElem: i @ ulong * * * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'ulong') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * VarExp::toElem: __key2695 @ ulong * * * * * * * * * * * * * * * DtoSymbolAddress ('__key2695' of type 'ulong') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * lhs: %i = alloca i64, align 8 * * * * * * * * * * * * * * * rhs: %14 = load i64, i64* %__key2695 * * * * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(2319) * * * * * * * * * * CallExp::toElem: this.unpack(array[i]) @ Unpacker * * * * * * * * * * * DotVarExp::toElem: this.unpack @ ref @trusted Unpacker(ref ulong value) * * * * * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * * * * * normal this exp * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * %msgpack.Unpacker* %.this_arg * * * * * * * * * * * * Function type: ref @trusted Unpacker(ref ulong value) * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * IndexExp::toElem: array[i] @ ulong * * * * * * * * * * * * * * VarExp::toElem: array @ ulong[] * * * * * * * * * * * * * * * DtoSymbolAddress ('array' of type 'ulong[]') * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * type: ulong[] * * * * * * * * * * * * * * VarExp::toElem: i @ ulong * * * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'ulong') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * AddAssignExp::toElem: __key2695 += 1LU @ ulong * * * * * * * * * Caching l-value of __key2695 += 1LU => __key2695 * * * * * * * * * * VarExp::toElem: __key2695 @ ulong * * * * * * * * * * * DtoSymbolAddress ('__key2695' of type 'ulong') * * * * * * * * * * * * a normal variable * * * * * * * * * AddExp::toElem: __key2695 + 1LU @ ulong * * * * * * * * * * VarExp::toElem: __key2695 @ ulong * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * value = i64 1 * * * * * * * * * DtoAssign() * * * * * * * * * * lhs: %__key2695 = alloca i64, align 8 * * * * * * * * * * rhs: %20 = add i64 %19, 1 * * * * * ReturnStatement::toIR(): msgpack-d/src/msgpack.d(2322) * * * * * * AddrExp::toElem: &this @ Unpacker* * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * normal this exp * * * * * * * is nothing special * * * * * * * lval: %msgpack.Unpacker* %.this_arg * * * * * * return value is '0x134975e0' * TemplateInstance::codegen: 'msgpack.Unpacker.unpackNil!(ulong[])' * * DtoDefineFunction(msgpack.Unpacker.unpackNil!(ulong[]).unpackNil): msgpack-d/src/msgpack.d(2669) * * * Doing function body for: unpackNil * * * DtoCreateNestedContext for unpackNil * * * * DtoCreateNestedContextType for msgpack.Unpacker.unpackNil!(ulong[]).unpackNil * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(2670) * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(2671) * * * * * * CallExp::toElem: this.canRead(1LU, 0LU) @ void * * * * * * * DotVarExp::toElem: this.canRead @ @safe void(const(ulong) size, const(ulong) offset = 1LU) * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * normal this exp * * * * * * * DtoCallFunction() * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (1) * * * * * * * * * %msgpack.Unpacker* %.this_arg * * * * * * * * Function type: @safe void(const(ulong) size, const(ulong) offset = 1LU) * * * * * * * * DtoArgument * * * * * * * * * IntegerExp::toElem: 1LU @ const(ulong) * * * * * * * * * * IntegerExp::toConstElem: 1LU @ const(ulong) * * * * * * * * * * * value = i64 1 * * * * * * * * DtoArgument * * * * * * * * * IntegerExp::toElem: 0LU @ const(ulong) * * * * * * * * * * IntegerExp::toConstElem: 0LU @ const(ulong) * * * * * * * * * * * value = i64 0 * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(2672) * * * * * * DeclarationExp::toElem: const const(ubyte) header = this.read(); | T=void * * * * * * * DtoDeclarationExp: header * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = const(ubyte)) * * * * * * * * * llvm value for decl: %header = alloca i8, align 1 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: header = this.read() | (const(ubyte))(const(ubyte) = const(ubyte)) * * * * * * * * * * VarExp::toElem: header @ const(ubyte) * * * * * * * * * * * DtoSymbolAddress ('header' of type 'const(ubyte)') * * * * * * * * * * * * a normal variable * * * * * * * * * * CallExp::toElem: this.read() @ const(ubyte) * * * * * * * * * * * DotVarExp::toElem: this.read @ nothrow @safe ubyte() * * * * * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * * * * * normal this exp * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * %msgpack.Unpacker* %.this_arg * * * * * * * * * * * * Function type: nothrow @safe ubyte() * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %header = alloca i8, align 1 * * * * * * * * * * * rhs: %1 = call zeroext i8 @_D7msgpack8Unpacker4readMFNbNfZh(%msgpack.Unpacker* %.this_arg) * * * * * IfStatement::toIR(): msgpack-d/src/msgpack.d(2674) * * * * * * EqualExp::toElem: cast(int)header == 192 @ bool * * * * * * * CastExp::toElem: cast(int)header @ int * * * * * * * * VarExp::toElem: header @ const(ubyte) * * * * * * * * * DtoSymbolAddress ('header' of type 'const(ubyte)') * * * * * * * * * * a normal variable * * * * * * * * Casting from 'const(ubyte)' to 'int' * * * * * * * * * cast to: i32 * * * * * * * IntegerExp::toElem: 192 @ int * * * * * * * * IntegerExp::toConstElem: 192 @ int * * * * * * * * * value = i32 192 * * * * * * * integral or pointer or interface * * * * * * * lv: %3 = zext i8 %2 to i32 * * * * * * * rv: i32 192 * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(2675) * * * * * * * AssignExp::toElem: value = null | (ulong[])(ulong[] = ulong[]) * * * * * * * * VarExp::toElem: value @ ulong[] * * * * * * * * * DtoSymbolAddress ('value' of type 'ulong[]') * * * * * * * * * * function param * * * * * * * * * * type: ulong[] * * * * * * * * NullExp::toElem(type=ulong[]): null * * * * * * * * * NullExp::toConstElem(type=ulong[]): null * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * DtoAssign() * * * * * * * * * DtoArrayAssign * * * * * * * * * * DtoSetArrayToNull * * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(2677) * * * * * * * CallExp::toElem: this.rollback(0LU) @ void * * * * * * * * DotVarExp::toElem: this.rollback @ @safe void(const(ulong) size = 0LU) * * * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * * * normal this exp * * * * * * * * DtoCallFunction() * * * * * * * * * doing normal arguments * * * * * * * * * Arguments so far: (1) * * * * * * * * * * %msgpack.Unpacker* %.this_arg * * * * * * * * * Function type: @safe void(const(ulong) size = 0LU) * * * * * * * * * DtoArgument * * * * * * * * * * IntegerExp::toElem: 0LU @ const(ulong) * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ const(ulong) * * * * * * * * * * * * value = i64 0 * * * * * ReturnStatement::toIR(): msgpack-d/src/msgpack.d(2679) * * * * * * AddrExp::toElem: &this @ Unpacker* * * * * * * * ThisExp::toElem: this @ Unpacker * * * * * * * * normal this exp * * * * * * * is nothing special * * * * * * * lval: %msgpack.Unpacker* %.this_arg * * * * * * return value is '0x1351f2f0' * TemplateInstance::codegen: 'msgpack.isByte!ulong' * * VarDeclaration::codegen(): 'msgpack.isByte!ulong.isByte' * * * DtoResolveVariable(msgpack.isByte!ulong.isByte) * TemplateInstance::codegen: 'std.stdio.write!(string, string, string)' * * DtoDefineFunction(std.stdio.write!(string, string, string).write): /usr/include/dlang/ldc/std/stdio.d(2963) * * * Doing function body for: write * * * DtoCreateNestedContext for write * * * * DtoCreateNestedContextType for std.stdio.write!(string, string, string).write * * * CompoundStatement::toIR(): * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(2965) * * * * * CallExp::toElem: (File __tmpfordtor3259 = trustedStdout(); , __tmpfordtor3259).write(_param_0, _param_1, _param_2) @ void * * * * * * DotVarExp::toElem: (File __tmpfordtor3259 = trustedStdout(); , __tmpfordtor3259).write @ @safe void(string _param_0, string _param_1, string _param_2) * * * * * * * CommaExp::toElem: File __tmpfordtor3259 = trustedStdout(); , __tmpfordtor3259 @ File * * * * * * * * DeclarationExp::toElem: File __tmpfordtor3259 = trustedStdout(); | T=void * * * * * * * * * DtoDeclarationExp: __tmpfordtor3259 * * * * * * * * * * VarDeclaration * * * * * * * * * * DtoVarDeclaration(vdtype = File) * * * * * * * * * * * VarExp::toElem: trustedStdout @ @property @trusted File() * * * * * * * * * * * * DtoSymbolAddress ('trustedStdout' of type '@property @trusted File()') * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * DtoFunctionType(@property @trusted File()) * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * Final function type: void (%std.stdio.File*) * * * * * * * * * * * * * DtoResolveFunction(std.stdio.trustedStdout): /usr/include/dlang/ldc/std/stdio.d(2953) * * * * * * * * * * * * * * DtoDeclareFunction(std.stdio.trustedStdout): /usr/include/dlang/ldc/std/stdio.d(2953) * * * * * * * * * * * * * * * DtoFunctionType(@property @trusted File()) * * * * * * * * * * * * * * * func = declare void @_D3std5stdio13trustedStdoutFNdNeZS3std5stdio4File(%std.stdio.File*) * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * Building type: @property @trusted File() * * * * * * * * * * * * * DtoFunctionType(@property @trusted File()) * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * Final function type: void (%std.stdio.File*) * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * %__tmpfordtor3259 = alloca %std.stdio.File, align 8 * * * * * * * * * * * * Function type: @property @trusted File() * * * * * * * * * CallExp::toElem: __tmpfordtor3259.~this() @ void * * * * * * * * * * DotVarExp::toElem: __tmpfordtor3259.~this @ @safe void() * * * * * * * * * * * VarExp::toElem: __tmpfordtor3259 @ File * * * * * * * * * * * * DtoSymbolAddress ('__tmpfordtor3259' of type 'File') * * * * * * * * * * * * * a normal variable * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * doing normal arguments * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * %__tmpfordtor3259 = alloca %std.stdio.File, align 8 * * * * * * * * * * * Function type: @safe void() * * * * * * * * VarExp::toElem: __tmpfordtor3259 @ File * * * * * * * * * DtoSymbolAddress ('__tmpfordtor3259' of type 'File') * * * * * * * * * * a normal variable * * * * * * * isMember = this is: File * * * * * * * DtoFunctionType(@safe void(string _param_0, string _param_1, string _param_2)) * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * Passing implicitly ByVal: string ({ i64, i8* }) * * * * * * * * Final function type: void (%std.stdio.File*, { i64, i8* }, { i64, i8* }, { i64, i8* }*) * * * * * * * DtoResolveFunction(std.stdio.File.write!(string, string, string).write): /usr/include/dlang/ldc/std/stdio.d(1289) * * * * * * * * DtoDeclareFunction(std.stdio.File.write!(string, string, string).write): /usr/include/dlang/ldc/std/stdio.d(1289) * * * * * * * * * isMember = this is: File * * * * * * * * * DtoFunctionType(@safe void(string _param_0, string _param_1, string _param_2)) * * * * * * * * * func = declare void @_D3std5stdio4File22__T5writeTAyaTAyaTAyaZ5writeMFNfAyaAyaAyaZv(%std.stdio.File*, { i64, i8* }, { i64, i8* }, { i64, i8* }*) * * * * * * DtoCallFunction() * * * * * * * Building type: @safe void(string _param_0, string _param_1, string _param_2) * * * * * * * * DtoFunctionType(@safe void(string _param_0, string _param_1, string _param_2)) * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * Final function type: void ({ i64, i8* }, { i64, i8* }, { i64, i8* }) * * * * * * * doing normal arguments * * * * * * * Arguments so far: (1) * * * * * * * * %__tmpfordtor3259 = alloca %std.stdio.File, align 8 * * * * * * * Function type: @safe void(string _param_0, string _param_1, string _param_2) * * * * * * * DtoArgument * * * * * * * * VarExp::toElem: _param_0 @ string * * * * * * * * * DtoSymbolAddress ('_param_0' of type 'string') * * * * * * * * * * function param * * * * * * * * * * type: string * * * * * * * DtoArgument * * * * * * * * VarExp::toElem: _param_1 @ string * * * * * * * * * DtoSymbolAddress ('_param_1' of type 'string') * * * * * * * * * * function param * * * * * * * * * * type: string * * * * * * * DtoArgument * * * * * * * * VarExp::toElem: _param_2 @ string * * * * * * * * * DtoSymbolAddress ('_param_2' of type 'string') * * * * * * * * * * function param * * * * * * * * * * type: string * * * * * * * Rewrite: putParam * TemplateInstance::codegen: 'std.stdio.File.write!(string, string, string)' * * DtoDefineFunction(std.stdio.File.write!(string, string, string).write): /usr/include/dlang/ldc/std/stdio.d(1289) * * * Doing function body for: write * * * Rewrite: getParam (getL) * * * DtoCreateNestedContext for write * * * * DtoCreateNestedContextType for std.stdio.File.write!(string, string, string).write * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(1290) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(1292) * * * * * * DeclarationExp::toElem: LockingTextWriter w = this.lockingTextWriter(); | T=void * * * * * * * DtoDeclarationExp: w * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = LockingTextWriter) * * * * * * * * * DotVarExp::toElem: this.lockingTextWriter @ @safe LockingTextWriter() * * * * * * * * * * ThisExp::toElem: this @ File * * * * * * * * * * * normal this exp * * * * * * * * * * isMember = this is: File * * * * * * * * * * DtoFunctionType(@safe LockingTextWriter()) * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * Final function type: void (%std.stdio.File.LockingTextWriter*, %std.stdio.File*) * * * * * * * * * * DtoResolveFunction(std.stdio.File.lockingTextWriter): /usr/include/dlang/ldc/std/stdio.d(2549) * * * * * * * * * * * DtoDeclareFunction(std.stdio.File.lockingTextWriter): /usr/include/dlang/ldc/std/stdio.d(2549) * * * * * * * * * * * * isMember = this is: File * * * * * * * * * * * * DtoFunctionType(@safe LockingTextWriter()) * * * * * * * * * * * * func = declare void @_D3std5stdio4File17lockingTextWriterMFNfZS3std5stdio4File17LockingTextWriter(%std.stdio.File.LockingTextWriter*, %std.stdio.File*) * * * * * * * * * DtoCallFunction() * * * * * * * * * * Building type: @safe LockingTextWriter() * * * * * * * * * * * DtoFunctionType(@safe LockingTextWriter()) * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * Final function type: void (%std.stdio.File.LockingTextWriter*) * * * * * * * * * * doing normal arguments * * * * * * * * * * Arguments so far: (2) * * * * * * * * * * * %w = alloca %std.stdio.File.LockingTextWriter, align 8 * * * * * * * * * * * %std.stdio.File* %.this_arg * * * * * * * * * * Function type: @safe LockingTextWriter() * * * * * TryFinallyStatement::toIR(): * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(1292) * * * * * * * CallExp::toElem: w.~this() @ void * * * * * * * * DotVarExp::toElem: w.~this @ @trusted void() * * * * * * * * * VarExp::toElem: w @ LockingTextWriter * * * * * * * * * * DtoSymbolAddress ('w' of type 'LockingTextWriter') * * * * * * * * * * * a normal variable * * * * * * * * DtoCallFunction() * * * * * * * * * doing normal arguments * * * * * * * * * Arguments so far: (1) * * * * * * * * * * %w = alloca %std.stdio.File.LockingTextWriter, align 8 * * * * * * * * * Function type: @trusted void() * * * * * * UnrolledLoopStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(1293) * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(1293) * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(1293) * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(1293) * * * * * * * * * * DeclarationExp::toElem: string arg = _param_0; | T=void * * * * * * * * * * * DtoDeclarationExp: arg * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * DtoVarDeclaration(vdtype = string) * * * * * * * * * * * * * llvm value for decl: %arg = alloca { i64, i8* }, align 8 * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * AssignExp::toElem: arg = _param_0 | (string)(string = string) * * * * * * * * * * * * * * VarExp::toElem: arg @ string * * * * * * * * * * * * * * * DtoSymbolAddress ('arg' of type 'string') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * VarExp::toElem: _param_0 @ string * * * * * * * * * * * * * * * DtoSymbolAddress ('_param_0' of type 'string') * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * type: string * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * SetArray * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(1295) * * * * * * * * * * DeclarationExp::toElem: alias A = string; | T=void * * * * * * * * * * * DtoDeclarationExp: A * * * * * * * * * * * * Ignoring Symbol: alias * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(1305) * * * * * * * * * * CallExp::toElem: put(w, arg) @ void * * * * * * * * * * * VarExp::toElem: put @ @safe void(ref LockingTextWriter r, string e) * * * * * * * * * * * * DtoSymbolAddress ('put' of type '@safe void(ref LockingTextWriter r, string e)') * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * Function type: @safe void(ref LockingTextWriter r, string e) * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * VarExp::toElem: w @ LockingTextWriter * * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'LockingTextWriter') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * VarExp::toElem: arg @ string * * * * * * * * * * * * * * DtoSymbolAddress ('arg' of type 'string') * * * * * * * * * * * * * * * a normal variable * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(1293) * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(1293) * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(1293) * * * * * * * * * * DeclarationExp::toElem: string arg = _param_1; | T=void * * * * * * * * * * * DtoDeclarationExp: arg * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * DtoVarDeclaration(vdtype = string) * * * * * * * * * * * * * llvm value for decl: %arg3 = alloca { i64, i8* }, align 8 * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * AssignExp::toElem: arg = _param_1 | (string)(string = string) * * * * * * * * * * * * * * VarExp::toElem: arg @ string * * * * * * * * * * * * * * * DtoSymbolAddress ('arg' of type 'string') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * VarExp::toElem: _param_1 @ string * * * * * * * * * * * * * * * DtoSymbolAddress ('_param_1' of type 'string') * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * type: string * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * SetArray * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(1295) * * * * * * * * * * DeclarationExp::toElem: alias A = string; | T=void * * * * * * * * * * * DtoDeclarationExp: A * * * * * * * * * * * * Ignoring Symbol: alias * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(1305) * * * * * * * * * * CallExp::toElem: put(w, arg) @ void * * * * * * * * * * * VarExp::toElem: put @ @safe void(ref LockingTextWriter r, string e) * * * * * * * * * * * * DtoSymbolAddress ('put' of type '@safe void(ref LockingTextWriter r, string e)') * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * Function type: @safe void(ref LockingTextWriter r, string e) * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * VarExp::toElem: w @ LockingTextWriter * * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'LockingTextWriter') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * VarExp::toElem: arg @ string * * * * * * * * * * * * * * DtoSymbolAddress ('arg' of type 'string') * * * * * * * * * * * * * * * a normal variable * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(1293) * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(1293) * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(1293) * * * * * * * * * * DeclarationExp::toElem: string arg = _param_2; | T=void * * * * * * * * * * * DtoDeclarationExp: arg * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * DtoVarDeclaration(vdtype = string) * * * * * * * * * * * * * llvm value for decl: %arg7 = alloca { i64, i8* }, align 8 * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * AssignExp::toElem: arg = _param_2 | (string)(string = string) * * * * * * * * * * * * * * VarExp::toElem: arg @ string * * * * * * * * * * * * * * * DtoSymbolAddress ('arg' of type 'string') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * VarExp::toElem: _param_2 @ string * * * * * * * * * * * * * * * DtoSymbolAddress ('_param_2' of type 'string') * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * type: string * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * SetArray * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(1295) * * * * * * * * * * DeclarationExp::toElem: alias A = string; | T=void * * * * * * * * * * * DtoDeclarationExp: A * * * * * * * * * * * * Ignoring Symbol: alias * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(1305) * * * * * * * * * * CallExp::toElem: put(w, arg) @ void * * * * * * * * * * * VarExp::toElem: put @ @safe void(ref LockingTextWriter r, string e) * * * * * * * * * * * * DtoSymbolAddress ('put' of type '@safe void(ref LockingTextWriter r, string e)') * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * Function type: @safe void(ref LockingTextWriter r, string e) * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * VarExp::toElem: w @ LockingTextWriter * * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'LockingTextWriter') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * VarExp::toElem: arg @ string * * * * * * * * * * * * * * DtoSymbolAddress ('arg' of type 'string') * * * * * * * * * * * * * * * a normal variable * TemplateInstance::codegen: 'std.stdio.File.LockingTextWriter.put!string' * * DtoDefineFunction(std.stdio.File.LockingTextWriter.put!string.put): /usr/include/dlang/ldc/std/stdio.d(2416) * * * Doing function body for: put * * * DtoCreateNestedContext for put * * * * DtoCreateNestedContextType for std.stdio.File.LockingTextWriter.put!string.put * * * * * has nested frame * * * * * Function put has depth 0 * * * * * Nested var 'this' of type %std.stdio.File.LockingTextWriter* * * * * * frameType = %nest.put.22 = type { %std.stdio.File.LockingTextWriter* } * * * * nested param: this * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(2420) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(2423) * * * * * * DeclarationExp::toElem: alias C = immutable(char); | T=void * * * * * * * DtoDeclarationExp: C * * * * * * * * Ignoring Symbol: alias * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(2427) * * * * * * CmpExp::toElem: this.orientation_ <= 0 @ bool * * * * * * * DotVarExp::toElem: this.orientation_ @ int * * * * * * * * ThisExp::toElem: this @ LockingTextWriter * * * * * * * * * normal this exp * * * * * * * * Indexing aggregate field std.stdio.File.LockingTextWriter.orientation_: * * * * * * * * * Resolving struct type: LockingTextWriter (/usr/include/dlang/ldc/std/stdio.d(2370)) * * * * * * * * * Value: %1 = getelementptr %std.stdio.File.LockingTextWriter, %std.stdio.File.LockingTextWriter* %.this_arg, i32 0, i32 2 * * * * * * * IntegerExp::toElem: 0 @ int * * * * * * * * IntegerExp::toConstElem: 0 @ int * * * * * * * * * value = i32 0 * * * * * * * type 1: %2 = load i32, i32* %1 * * * * * * * type 2: i32 0 * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(2428) * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(2428) * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(2431) * * * * * * * * * DeclarationExp::toElem: auto static nothrow @nogc @trusted ulong trustedFwrite(const(void*) ptr, ulong size, ulong nmemb, shared(_IO_FILE)* stream) { return fwrite(ptr, size, nmemb, stream); } | T=void * * * * * * * * * * DtoDeclarationExp: trustedFwrite * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * DtoDefineFunction(std.stdio.File.LockingTextWriter.put!string.put.trustedFwrite): /usr/include/dlang/ldc/std/stdio.d(2431) * * * * * * * * * * * * DtoFunctionType(nothrow @nogc @trusted ulong(const(void*) ptr, ulong size, ulong nmemb, shared(_IO_FILE)* stream)) * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * Final function type: i64 (%core.stdc.stdio._IO_FILE*, i64, i64, i8*) * * * * * * * * * * * * DtoResolveFunction(std.stdio.File.LockingTextWriter.put!string.put.trustedFwrite): /usr/include/dlang/ldc/std/stdio.d(2431) * * * * * * * * * * * * * DtoDeclareFunction(std.stdio.File.LockingTextWriter.put!string.put.trustedFwrite): /usr/include/dlang/ldc/std/stdio.d(2431) * * * * * * * * * * * * * * DtoFunctionType(nothrow @nogc @trusted ulong(const(void*) ptr, ulong size, ulong nmemb, shared(_IO_FILE)* stream)) * * * * * * * * * * * * * * func = declare i64 @_D3std5stdio4File17LockingTextWriter12__T3putTAyaZ3putMFAyaZ13trustedFwriteFNbNiNexPvmmPOS4core4stdc5stdio8_IO_FILEZm(%core.stdc.stdio._IO_FILE*, i64, i64, i8*) * * * * * * * * * * * * Doing function body for: trustedFwrite * * * * * * * * * * * * DtoCreateNestedContext for trustedFwrite * * * * * * * * * * * * * DtoCreateNestedContextType for std.stdio.File.LockingTextWriter.put!string.put.trustedFwrite * * * * * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(2433) * * * * * * * * * * * * * * CallExp::toElem: fwrite(ptr, size, nmemb, stream) @ ulong * * * * * * * * * * * * * * * VarExp::toElem: fwrite @ nothrow @nogc @system extern (C) ulong(const(void*) ptr, ulong size, ulong nmemb, shared(_IO_FILE)* stream) * * * * * * * * * * * * * * * * DtoSymbolAddress ('fwrite' of type 'nothrow @nogc @system extern (C) ulong(const(void*) ptr, ulong size, ulong nmemb, shared(_IO_FILE)* stream)') * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * DtoFunctionType(nothrow @nogc @system extern (C) ulong(const(void*) ptr, ulong size, ulong nmemb, shared(_IO_FILE)* stream)) * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * Final function type: i64 (i8*, i64, i64, %core.stdc.stdio._IO_FILE*) * * * * * * * * * * * * * * * * * DtoResolveFunction(core.stdc.stdio.fwrite): /usr/include/dlang/ldc/core/stdc/stdio.d(857) * * * * * * * * * * * * * * * * * * DtoDeclareFunction(core.stdc.stdio.fwrite): /usr/include/dlang/ldc/core/stdc/stdio.d(857) * * * * * * * * * * * * * * * * * * * DtoFunctionType(nothrow @nogc @system extern (C) ulong(const(void*) ptr, ulong size, ulong nmemb, shared(_IO_FILE)* stream)) * * * * * * * * * * * * * * * * * * * func = declare i64 @fwrite(i8*, i64, i64, %core.stdc.stdio._IO_FILE*) * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * Building type: nothrow @nogc @system extern (C) ulong(const(void*) ptr, ulong size, ulong nmemb, shared(_IO_FILE)* stream) * * * * * * * * * * * * * * * * * DtoFunctionType(nothrow @nogc @system extern (C) ulong(const(void*) ptr, ulong size, ulong nmemb, shared(_IO_FILE)* stream)) * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * Final function type: i64 (i8*, i64, i64, %core.stdc.stdio._IO_FILE*) * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * Function type: nothrow @nogc @system extern (C) ulong(const(void*) ptr, ulong size, ulong nmemb, shared(_IO_FILE)* stream) * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * VarExp::toElem: ptr @ const(void*) * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('ptr' of type 'const(void*)') * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * type: const(void*) * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * VarExp::toElem: size @ ulong * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('size' of type 'ulong') * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * type: ulong * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * VarExp::toElem: nmemb @ ulong * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('nmemb' of type 'ulong') * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * type: ulong * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * VarExp::toElem: stream @ shared(_IO_FILE)* * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('stream' of type 'shared(_IO_FILE)*') * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * type: shared(_IO_FILE)* * * * * * * * * * * * * * * return value is '0x1353b828' * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(2435) * * * * * * * * * DeclarationExp::toElem: ulong result = trustedFwrite(cast(const(void*))cast(immutable(char)*)writeme, 1LU, writeme.length, this.fps_); | T=void * * * * * * * * * * DtoDeclarationExp: result * * * * * * * * * * * VarDeclaration * * * * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * * * * llvm value for decl: %result = alloca i64, align 8 * * * * * * * * * * * * expression initializer * * * * * * * * * * * * AssignExp::toElem: result = trustedFwrite(cast(const(void*))cast(immutable(char)*)writeme, 1LU, writeme.length, this.fps_) | (ulong)(ulong = ulong) * * * * * * * * * * * * * VarExp::toElem: result @ ulong * * * * * * * * * * * * * * DtoSymbolAddress ('result' of type 'ulong') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * CallExp::toElem: trustedFwrite(cast(const(void*))cast(immutable(char)*)writeme, 1LU, writeme.length, this.fps_) @ ulong * * * * * * * * * * * * * * VarExp::toElem: trustedFwrite @ nothrow @nogc @trusted ulong(const(void*) ptr, ulong size, ulong nmemb, shared(_IO_FILE)* stream) * * * * * * * * * * * * * * * DtoSymbolAddress ('trustedFwrite' of type 'nothrow @nogc @trusted ulong(const(void*) ptr, ulong size, ulong nmemb, shared(_IO_FILE)* stream)') * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * Building type: nothrow @nogc @trusted ulong(const(void*) ptr, ulong size, ulong nmemb, shared(_IO_FILE)* stream) * * * * * * * * * * * * * * * * DtoFunctionType(nothrow @nogc @trusted ulong(const(void*) ptr, ulong size, ulong nmemb, shared(_IO_FILE)* stream)) * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * Final function type: i64 (%core.stdc.stdio._IO_FILE*, i64, i64, i8*) * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * Function type: nothrow @nogc @trusted ulong(const(void*) ptr, ulong size, ulong nmemb, shared(_IO_FILE)* stream) * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * CastExp::toElem: cast(const(void*))cast(immutable(char)*)writeme @ const(void*) * * * * * * * * * * * * * * * * * CastExp::toElem: cast(immutable(char)*)writeme @ immutable(char)* * * * * * * * * * * * * * * * * * * VarExp::toElem: writeme @ string * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('writeme' of type 'string') * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * type: string * * * * * * * * * * * * * * * * * * Casting from 'string' to 'immutable(char)*' * * * * * * * * * * * * * * * * * * * DtoCastArray * * * * * * * * * * * * * * * * * * * * from array or sarray * * * * * * * * * * * * * * * * * * * * to pointer * * * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * Casting from 'immutable(char)*' to 'const(void*)' * * * * * * * * * * * * * * * * * * src: %.ptr = load i8*, i8** %4 * * * * * * * * * * * * * * * * * * to type: i8* * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * ArrayLengthExp::toElem: writeme.length @ ulong * * * * * * * * * * * * * * * * * VarExp::toElem: writeme @ string * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('writeme' of type 'string') * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * type: string * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * DotVarExp::toElem: this.fps_ @ shared(_IO_FILE)* * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ LockingTextWriter * * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * * Indexing aggregate field std.stdio.File.LockingTextWriter.fps_: * * * * * * * * * * * * * * * * * * Value: %6 = getelementptr %std.stdio.File.LockingTextWriter, %std.stdio.File.LockingTextWriter* %.this_arg, i32 0, i32 0 * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * lhs: %result = alloca i64, align 8 * * * * * * * * * * * * * * rhs: %8 = call i64 @_D3std5stdio4File17LockingTextWriter12__T3putTAyaZ3putMFAyaZ13trustedFwriteFNbNiNexPvmmPOS4core4stdc5stdio8_IO_FILEZm(%core.stdc.stdio._IO_FILE* %7, i64 %.len, i64 1, i8* %.ptr) * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(2437) * * * * * * * * * EqualExp::toElem: result != writeme.length @ bool * * * * * * * * * * VarExp::toElem: result @ ulong * * * * * * * * * * * DtoSymbolAddress ('result' of type 'ulong') * * * * * * * * * * * * a normal variable * * * * * * * * * * ArrayLengthExp::toElem: writeme.length @ ulong * * * * * * * * * * * VarExp::toElem: writeme @ string * * * * * * * * * * * * DtoSymbolAddress ('writeme' of type 'string') * * * * * * * * * * * * * function param * * * * * * * * * * * * * type: string * * * * * * * * * * * DtoArrayLen * * * * * * * * * * integral or pointer or interface * * * * * * * * * * lv: %10 = load i64, i64* %result * * * * * * * * * * rv: %.len1 = load i64, i64* %9 * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(2437) * * * * * * * * * * CallExp::toElem: errnoEnforce(0, delegate string() => null) @ int * * * * * * * * * * * VarExp::toElem: errnoEnforce @ @safe int(int value, lazy string msg = null) * * * * * * * * * * * * DtoSymbolAddress ('errnoEnforce' of type '@safe int(int value, lazy string msg = null)') * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * Building type: @safe int(int value, lazy string msg = null) * * * * * * * * * * * * * DtoFunctionType(@safe int(int value, lazy string msg = null)) * * * * * * * * * * * * * * lazy param * * * * * * * * * * * * * * Building type: string delegate() * * * * * * * * * * * * * * * DtoFunctionType(string()) * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * Final function type: { i64, i8* } (i8*) * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * Final function type: i32 ({ i8*, { i64, i8* } (i8*)* }, i32) * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * Function type: @safe int(int value, lazy string msg = null) * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * IntegerExp::toElem: 0 @ int * * * * * * * * * * * * * * IntegerExp::toConstElem: 0 @ int * * * * * * * * * * * * * * * value = i32 0 * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * FuncExp::toElem: __dgliteral3 @ string delegate() pure nothrow @nogc @safe * * * * * * * * * * * * * * nested * * * * * * * * * * * * * * kind = delegate * * * * * * * * * * * * * * DtoDefineFunction(std.stdio.File.LockingTextWriter.put!string.put.__dgliteral3): /usr/include/dlang/ldc/std/exception.d(547) * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe string()) * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * Final function type: { i64, i8* } (i8*) * * * * * * * * * * * * * * * DtoResolveFunction(std.stdio.File.LockingTextWriter.put!string.put.__dgliteral3): /usr/include/dlang/ldc/std/exception.d(547) * * * * * * * * * * * * * * * * DtoDeclareFunction(std.stdio.File.LockingTextWriter.put!string.put.__dgliteral3): /usr/include/dlang/ldc/std/exception.d(547) * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe string()) * * * * * * * * * * * * * * * * * func = declare { i64, i8* } @_D3std5stdio4File17LockingTextWriter12__T3putTAyaZ3putMFAyaZ12__dgliteral3MFNaNbNiNfZAya(i8*) * * * * * * * * * * * * * * * Doing function body for: __dgliteral3 * * * * * * * * * * * * * * * DtoCreateNestedContext for __dgliteral3 * * * * * * * * * * * * * * * * DtoCreateNestedContextType for std.stdio.File.LockingTextWriter.put!string.put.__dgliteral3 * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for std.stdio.File.LockingTextWriter.put!string.put * * * * * * * * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * * * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/exception.d(547) * * * * * * * * * * * * * * * * * NullExp::toElem(type=string): null * * * * * * * * * * * * * * * * * * NullExp::toConstElem(type=string): null * * * * * * * * * * * * * * * * * return value is '0x120dd7b0' * * * * * * * * * * * * * * Building type: string delegate() pure nothrow @nogc @safe * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe string()) * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * Final function type: { i64, i8* } (i8*) * * * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(2438) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(2443) * * * * * * CallExp::toElem: _aApplycd1(writeme, delegate int(ref dchar __applyArg0) => 0) @ int * * * * * * * VarExp::toElem: _aApplycd1 @ extern (C) int(in string, int delegate(void*)) * * * * * * * * DtoSymbolAddress ('_aApplycd1' of type 'extern (C) int(in string, int delegate(void*))') * * * * * * * * * FuncDeclaration * * * * * * * * * DtoFunctionType(extern (C) int(in string, int delegate(void*))) * * * * * * * * * * Building type: int delegate(void*) * * * * * * * * * * * DtoFunctionType(int(void*)) * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * Final function type: i32 (i8*, i8*) * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: i32 ({ i64, i8* }, { i8*, i32 (i8*, i8*)* }) * * * * * * * * * DtoResolveFunction(_aApplycd1): * * * * * * * * * * DtoDeclareFunction(_aApplycd1): * * * * * * * * * * * DtoFunctionType(extern (C) int(in string, int delegate(void*))) * * * * * * * * * * * func = declare i32 @_aApplycd1({ i64, i8* }, { i8*, i32 (i8*, i8*)* }) * * * * * * * DtoCallFunction() * * * * * * * * Building type: extern (C) int(in string, int delegate(void*)) * * * * * * * * * DtoFunctionType(extern (C) int(in string, int delegate(void*))) * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: i32 ({ i64, i8* }, { i8*, i32 (i8*, i8*)* }) * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (0) * * * * * * * * Function type: extern (C) int(in string, int delegate(void*)) * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: writeme @ string * * * * * * * * * * DtoSymbolAddress ('writeme' of type 'string') * * * * * * * * * * * function param * * * * * * * * * * * type: string * * * * * * * * DtoArgument * * * * * * * * * FuncExp::toElem: __foreachbody4 @ int delegate(void*) * * * * * * * * * * nested * * * * * * * * * * kind = delegate * * * * * * * * * * DtoDefineFunction(std.stdio.File.LockingTextWriter.put!string.put.__foreachbody4): /usr/include/dlang/ldc/std/stdio.d(2443) * * * * * * * * * * * DtoFunctionType(nothrow @nogc @safe int(ref dchar __applyArg0)) * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * Final function type: i32 (i8*, i32*) * * * * * * * * * * * DtoResolveFunction(std.stdio.File.LockingTextWriter.put!string.put.__foreachbody4): /usr/include/dlang/ldc/std/stdio.d(2443) * * * * * * * * * * * * DtoDeclareFunction(std.stdio.File.LockingTextWriter.put!string.put.__foreachbody4): /usr/include/dlang/ldc/std/stdio.d(2443) * * * * * * * * * * * * * DtoFunctionType(nothrow @nogc @safe int(ref dchar __applyArg0)) * * * * * * * * * * * * * func = declare i32 @_D3std5stdio4File17LockingTextWriter12__T3putTAyaZ3putMFAyaZ14__foreachbody4MFNbNiNfKwZi(i8*, i32*) * * * * * * * * * * * Doing function body for: __foreachbody4 * * * * * * * * * * * DtoCreateNestedContext for __foreachbody4 * * * * * * * * * * * * DtoCreateNestedContextType for std.stdio.File.LockingTextWriter.put!string.put.__foreachbody4 * * * * * * * * * * * * * DtoCreateNestedContextType for std.stdio.File.LockingTextWriter.put!string.put * * * * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(2443) * * * * * * * * * * * * * * ExpStatement::toIR(): * * * * * * * * * * * * * * * DeclarationExp::toElem: dchar c = __applyArg0; | T=void * * * * * * * * * * * * * * * * DtoDeclarationExp: c * * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = dchar) * * * * * * * * * * * * * * * * * * llvm value for decl: %c = alloca i32, align 4 * * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * * AssignExp::toElem: c = __applyArg0 | (dchar)(dchar = dchar) * * * * * * * * * * * * * * * * * * * VarExp::toElem: c @ dchar * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('c' of type 'dchar') * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * VarExp::toElem: __applyArg0 @ dchar * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__applyArg0' of type 'dchar') * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * type: dchar * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * lhs: %c = alloca i32, align 4 * * * * * * * * * * * * * * * * * * * * rhs: %1 = load i32, i32* %__applyArg0_arg * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(2445) * * * * * * * * * * * * * * * CallExp::toElem: this.put(c) @ void * * * * * * * * * * * * * * * * DotVarExp::toElem: this.put @ nothrow @nogc @safe void(dchar c) * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ LockingTextWriter * * * * * * * * * * * * * * * * * * nested this exp * * * * * * * * * * * * * * * * * * DtoNestedVariable for this @ /usr/include/dlang/ldc/std/stdio.d(2445) * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for std.stdio.File.LockingTextWriter.put!string.put * * * * * * * * * * * * * * * * * * * Context: %3 = bitcast i8* %2 to %nest.put.22* * * * * * * * * * * * * * * * * * * * of type: %nest.put.22 = type { %std.stdio.File.LockingTextWriter* } * * * * * * * * * * * * * * * * * * * Variable: this * * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * * Function: __foreachbody4 * * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * * Addr: %this = getelementptr %nest.put.22, %nest.put.22* %3, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * of type: %std.stdio.File.LockingTextWriter** * * * * * * * * * * * * * * * * * * * Was byref, now: %4 = load %std.stdio.File.LockingTextWriter*, %std.stdio.File.LockingTextWriter** %this, align 8 * * * * * * * * * * * * * * * * * * * of type: %std.stdio.File.LockingTextWriter* * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * %4 = load %std.stdio.File.LockingTextWriter*, %std.stdio.File.LockingTextWriter** %this, align 8 * * * * * * * * * * * * * * * * * Function type: nothrow @nogc @safe void(dchar c) * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * VarExp::toElem: c @ dchar * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('c' of type 'dchar') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * ReturnStatement::toIR(): * * * * * * * * * * * * * * IntegerExp::toElem: 0 @ int * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0 @ int * * * * * * * * * * * * * * * * value = i32 0 * * * * * * * * * * * * * * return value is '0x120e1350' * TemplateInstance::codegen: 'std.stdio.File.LockingTextWriter.put!dchar' * * DtoDefineFunction(std.stdio.File.LockingTextWriter.put!dchar.put): /usr/include/dlang/ldc/std/stdio.d(2452) * * * Doing function body for: put * * * DtoCreateNestedContext for put * * * * DtoCreateNestedContextType for std.stdio.File.LockingTextWriter.put!dchar.put * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(2453) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(2455) * * * * * * DeclarationExp::toElem: auto static nothrow @nogc @trusted int trustedFPUTC(int ch, _IO_FILE* h) { return fputc_unlocked(ch, h); } | T=void * * * * * * * DtoDeclarationExp: trustedFPUTC * * * * * * * * FuncDeclaration * * * * * * * * DtoDefineFunction(std.stdio.File.LockingTextWriter.put!dchar.put.trustedFPUTC): /usr/include/dlang/ldc/std/stdio.d(2455) * * * * * * * * * DtoFunctionType(nothrow @nogc @trusted int(int ch, _IO_FILE* h)) * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: i32 (%core.stdc.stdio._IO_FILE*, i32) * * * * * * * * * DtoResolveFunction(std.stdio.File.LockingTextWriter.put!dchar.put.trustedFPUTC): /usr/include/dlang/ldc/std/stdio.d(2455) * * * * * * * * * * DtoDeclareFunction(std.stdio.File.LockingTextWriter.put!dchar.put.trustedFPUTC): /usr/include/dlang/ldc/std/stdio.d(2455) * * * * * * * * * * * DtoFunctionType(nothrow @nogc @trusted int(int ch, _IO_FILE* h)) * * * * * * * * * * * func = declare i32 @_D3std5stdio4File17LockingTextWriter10__T3putTwZ3putMFNfwZ12trustedFPUTCFNbNiNeiPS4core4stdc5stdio8_IO_FILEZi(%core.stdc.stdio._IO_FILE*, i32) * * * * * * * * * Doing function body for: trustedFPUTC * * * * * * * * * DtoCreateNestedContext for trustedFPUTC * * * * * * * * * * DtoCreateNestedContextType for std.stdio.File.LockingTextWriter.put!dchar.put.trustedFPUTC * * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(2457) * * * * * * * * * * * CallExp::toElem: fputc_unlocked(ch, h) @ int * * * * * * * * * * * * VarExp::toElem: fputc_unlocked @ nothrow @nogc extern (C) int(int, _IO_FILE*) * * * * * * * * * * * * * DtoSymbolAddress ('fputc_unlocked' of type 'nothrow @nogc extern (C) int(int, _IO_FILE*)') * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * DtoFunctionType(nothrow @nogc extern (C) int(int, _IO_FILE*)) * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * Final function type: i32 (i32, %core.stdc.stdio._IO_FILE*) * * * * * * * * * * * * * * DtoResolveFunction(std.stdio.fputc_unlocked): /usr/include/dlang/ldc/std/stdio.d(170) * * * * * * * * * * * * * * * DtoDeclareFunction(std.stdio.fputc_unlocked): /usr/include/dlang/ldc/std/stdio.d(170) * * * * * * * * * * * * * * * * DtoFunctionType(nothrow @nogc extern (C) int(int, _IO_FILE*)) * * * * * * * * * * * * * * * * func = declare i32 @fputc_unlocked(i32, %core.stdc.stdio._IO_FILE*) * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * Building type: nothrow @nogc extern (C) int(int, _IO_FILE*) * * * * * * * * * * * * * * DtoFunctionType(nothrow @nogc extern (C) int(int, _IO_FILE*)) * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * Final function type: i32 (i32, %core.stdc.stdio._IO_FILE*) * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * Function type: nothrow @nogc extern (C) int(int, _IO_FILE*) * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * VarExp::toElem: ch @ int * * * * * * * * * * * * * * * DtoSymbolAddress ('ch' of type 'int') * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * type: int * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * VarExp::toElem: h @ _IO_FILE* * * * * * * * * * * * * * * * DtoSymbolAddress ('h' of type '_IO_FILE*') * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * type: _IO_FILE* * * * * * * * * * * * return value is '0x1354a088' * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(2459) * * * * * * DeclarationExp::toElem: auto static nothrow @nogc @trusted int trustedFPUTWC(dchar ch, _IO_FILE* h) { return fputwc_unlocked(ch, h); } | T=void * * * * * * * DtoDeclarationExp: trustedFPUTWC * * * * * * * * FuncDeclaration * * * * * * * * DtoDefineFunction(std.stdio.File.LockingTextWriter.put!dchar.put.trustedFPUTWC): /usr/include/dlang/ldc/std/stdio.d(2459) * * * * * * * * * DtoFunctionType(nothrow @nogc @trusted int(dchar ch, _IO_FILE* h)) * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: i32 (%core.stdc.stdio._IO_FILE*, i32) * * * * * * * * * DtoResolveFunction(std.stdio.File.LockingTextWriter.put!dchar.put.trustedFPUTWC): /usr/include/dlang/ldc/std/stdio.d(2459) * * * * * * * * * * DtoDeclareFunction(std.stdio.File.LockingTextWriter.put!dchar.put.trustedFPUTWC): /usr/include/dlang/ldc/std/stdio.d(2459) * * * * * * * * * * * DtoFunctionType(nothrow @nogc @trusted int(dchar ch, _IO_FILE* h)) * * * * * * * * * * * func = declare i32 @_D3std5stdio4File17LockingTextWriter10__T3putTwZ3putMFNfwZ13trustedFPUTWCFNbNiNewPS4core4stdc5stdio8_IO_FILEZi(%core.stdc.stdio._IO_FILE*, i32) * * * * * * * * * Doing function body for: trustedFPUTWC * * * * * * * * * DtoCreateNestedContext for trustedFPUTWC * * * * * * * * * * DtoCreateNestedContextType for std.stdio.File.LockingTextWriter.put!dchar.put.trustedFPUTWC * * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(2461) * * * * * * * * * * * CallExp::toElem: fputwc_unlocked(ch, h) @ int * * * * * * * * * * * * VarExp::toElem: fputwc_unlocked @ nothrow @nogc extern (C) int(dchar, _IO_FILE*) * * * * * * * * * * * * * DtoSymbolAddress ('fputwc_unlocked' of type 'nothrow @nogc extern (C) int(dchar, _IO_FILE*)') * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * DtoFunctionType(nothrow @nogc extern (C) int(dchar, _IO_FILE*)) * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * Final function type: i32 (i32, %core.stdc.stdio._IO_FILE*) * * * * * * * * * * * * * * DtoResolveFunction(std.stdio.fputwc_unlocked): /usr/include/dlang/ldc/std/stdio.d(171) * * * * * * * * * * * * * * * DtoDeclareFunction(std.stdio.fputwc_unlocked): /usr/include/dlang/ldc/std/stdio.d(171) * * * * * * * * * * * * * * * * DtoFunctionType(nothrow @nogc extern (C) int(dchar, _IO_FILE*)) * * * * * * * * * * * * * * * * func = declare i32 @fputwc_unlocked(i32, %core.stdc.stdio._IO_FILE*) * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * Building type: nothrow @nogc extern (C) int(dchar, _IO_FILE*) * * * * * * * * * * * * * * DtoFunctionType(nothrow @nogc extern (C) int(dchar, _IO_FILE*)) * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * Final function type: i32 (i32, %core.stdc.stdio._IO_FILE*) * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * Function type: nothrow @nogc extern (C) int(dchar, _IO_FILE*) * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * VarExp::toElem: ch @ dchar * * * * * * * * * * * * * * * DtoSymbolAddress ('ch' of type 'dchar') * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * type: dchar * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * VarExp::toElem: h @ _IO_FILE* * * * * * * * * * * * * * * * DtoSymbolAddress ('h' of type '_IO_FILE*') * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * type: _IO_FILE* * * * * * * * * * * * return value is '0x1354d678' * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(2497) * * * * * * CmpExp::toElem: this.orientation_ <= 0 @ bool * * * * * * * DotVarExp::toElem: this.orientation_ @ int * * * * * * * * ThisExp::toElem: this @ LockingTextWriter * * * * * * * * * normal this exp * * * * * * * * Indexing aggregate field std.stdio.File.LockingTextWriter.orientation_: * * * * * * * * * Value: %1 = getelementptr %std.stdio.File.LockingTextWriter, %std.stdio.File.LockingTextWriter* %.this_arg, i32 0, i32 2 * * * * * * * IntegerExp::toElem: 0 @ int * * * * * * * * IntegerExp::toConstElem: 0 @ int * * * * * * * * * value = i32 0 * * * * * * * type 1: %2 = load i32, i32* %1 * * * * * * * type 2: i32 0 * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(2498) * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(2499) * * * * * * * * CmpExp::toElem: cast(uint)c <= 127u @ bool * * * * * * * * * CastExp::toElem: cast(uint)c @ uint * * * * * * * * * * VarExp::toElem: c @ dchar * * * * * * * * * * * DtoSymbolAddress ('c' of type 'dchar') * * * * * * * * * * * * function param * * * * * * * * * * * * type: dchar * * * * * * * * * * Casting from 'dchar' to 'uint' * * * * * * * * * IntegerExp::toElem: 127u @ uint * * * * * * * * * * IntegerExp::toConstElem: 127u @ uint * * * * * * * * * * * value = i32 127 * * * * * * * * * type 1: %4 = load i32, i32* %c * * * * * * * * * type 2: i32 127 * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(2500) * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(2501) * * * * * * * * * * CallExp::toElem: trustedFPUTC(cast(int)c, this.handle_) @ int * * * * * * * * * * * VarExp::toElem: trustedFPUTC @ nothrow @nogc @trusted int(int ch, _IO_FILE* h) * * * * * * * * * * * * DtoSymbolAddress ('trustedFPUTC' of type 'nothrow @nogc @trusted int(int ch, _IO_FILE* h)') * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * Building type: nothrow @nogc @trusted int(int ch, _IO_FILE* h) * * * * * * * * * * * * * DtoFunctionType(nothrow @nogc @trusted int(int ch, _IO_FILE* h)) * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * Final function type: i32 (%core.stdc.stdio._IO_FILE*, i32) * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * Function type: nothrow @nogc @trusted int(int ch, _IO_FILE* h) * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * CastExp::toElem: cast(int)c @ int * * * * * * * * * * * * * * VarExp::toElem: c @ dchar * * * * * * * * * * * * * * * DtoSymbolAddress ('c' of type 'dchar') * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * type: dchar * * * * * * * * * * * * * * Casting from 'dchar' to 'int' * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * DotVarExp::toElem: this.handle_ @ _IO_FILE* * * * * * * * * * * * * * * ThisExp::toElem: this @ LockingTextWriter * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * Indexing aggregate field std.stdio.File.LockingTextWriter.handle_: * * * * * * * * * * * * * * * Value: %7 = getelementptr %std.stdio.File.LockingTextWriter, %std.stdio.File.LockingTextWriter* %.this_arg, i32 0, i32 1 * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(2504) * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(2504) * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(2505) * * * * * * * * * * * DeclarationExp::toElem: char[4] buf = void; | T=void * * * * * * * * * * * * DtoDeclarationExp: buf * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * DtoVarDeclaration(vdtype = char[4]) * * * * * * * * * * * * * * Building type: char[4] * * * * * * * * * * * * * * llvm value for decl: %buf = alloca [4 x i8], align 1 * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(2506) * * * * * * * * * * * DeclarationExp::toElem: char[] b = toUTF8(buf, c); | T=void * * * * * * * * * * * * DtoDeclarationExp: b * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * DtoVarDeclaration(vdtype = char[]) * * * * * * * * * * * * * * llvm value for decl: %b = alloca { i64, i8* }, align 8 * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * AssignExp::toElem: b = toUTF8(buf, c) | (char[])(char[] = char[]) * * * * * * * * * * * * * * * VarExp::toElem: b @ char[] * * * * * * * * * * * * * * * * DtoSymbolAddress ('b' of type 'char[]') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * CallExp::toElem: toUTF8(buf, c) @ char[] * * * * * * * * * * * * * * * * VarExp::toElem: toUTF8 @ pure nothrow @nogc @safe char[](return out char[4] buf, dchar c) * * * * * * * * * * * * * * * * * DtoSymbolAddress ('toUTF8' of type 'pure nothrow @nogc @safe char[](return out char[4] buf, dchar c)') * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe char[](return out char[4] buf, dchar c)) * * * * * * * * * * * * * * * * * * * Building type: char[4]* * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * Final function type: { i64, i8* } (i32, [4 x i8]*) * * * * * * * * * * * * * * * * * * DtoResolveFunction(std.utf.toUTF8): /usr/include/dlang/ldc/std/utf.d(2102) * * * * * * * * * * * * * * * * * * * DtoDeclareFunction(std.utf.toUTF8): /usr/include/dlang/ldc/std/utf.d(2102) * * * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe char[](return out char[4] buf, dchar c)) * * * * * * * * * * * * * * * * * * * * func = declare { i64, i8* } @_D3std3utf6toUTF8FNaNbNiNfNkJG4awZAa(i32, [4 x i8]*) * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * Building type: pure nothrow @nogc @safe char[](return out char[4] buf, dchar c) * * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe char[](return out char[4] buf, dchar c)) * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * * * Final function type: { i64, i8* } (i32, [4 x i8]*) * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @safe char[](return out char[4] buf, dchar c) * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * VarExp::toElem: buf @ char[4] * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('buf' of type 'char[4]') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * VarExp::toElem: c @ dchar * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('c' of type 'dchar') * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * type: dchar * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * SetArray * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(2507) * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(2507) * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(2507) * * * * * * * * * * * * * DeclarationExp::toElem: ulong __key3257 = 0LU; | T=void * * * * * * * * * * * * * * DtoDeclarationExp: __key3257 * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * * * * * * * * llvm value for decl: %__key3257 = alloca i64, align 8 * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * AssignExp::toElem: __key3257 = 0LU | (ulong)(ulong = ulong) * * * * * * * * * * * * * * * * * VarExp::toElem: __key3257 @ ulong * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__key3257' of type 'ulong') * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * lhs: %__key3257 = alloca i64, align 8 * * * * * * * * * * * * * * * * * * rhs: i64 0 * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(2507) * * * * * * * * * * * * * DeclarationExp::toElem: ulong __limit3258 = b.length; | T=void * * * * * * * * * * * * * * DtoDeclarationExp: __limit3258 * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * * * * * * * * llvm value for decl: %__limit3258 = alloca i64, align 8 * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * AssignExp::toElem: __limit3258 = b.length | (ulong)(ulong = ulong) * * * * * * * * * * * * * * * * * VarExp::toElem: __limit3258 @ ulong * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__limit3258' of type 'ulong') * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * ArrayLengthExp::toElem: b.length @ ulong * * * * * * * * * * * * * * * * * * VarExp::toElem: b @ char[] * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('b' of type 'char[]') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * lhs: %__limit3258 = alloca i64, align 8 * * * * * * * * * * * * * * * * * * rhs: %.len4 = load i64, i64* %14 * * * * * * * * * * * * ForStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(2507) * * * * * * * * * * * * * CmpExp::toElem: __key3257 < __limit3258 @ bool * * * * * * * * * * * * * * VarExp::toElem: __key3257 @ ulong * * * * * * * * * * * * * * * DtoSymbolAddress ('__key3257' of type 'ulong') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * VarExp::toElem: __limit3258 @ ulong * * * * * * * * * * * * * * * DtoSymbolAddress ('__limit3258' of type 'ulong') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * type 1: %15 = load i64, i64* %__key3257 * * * * * * * * * * * * * * type 2: %16 = load i64, i64* %__limit3258 * * * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(2507) * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(2507) * * * * * * * * * * * * * * * DeclarationExp::toElem: ulong i = __key3257; | T=void * * * * * * * * * * * * * * * * DtoDeclarationExp: i * * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * * * * * * * * * * llvm value for decl: %i = alloca i64, align 8 * * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * * AssignExp::toElem: i = __key3257 | (ulong)(ulong = ulong) * * * * * * * * * * * * * * * * * * * VarExp::toElem: i @ ulong * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * VarExp::toElem: __key3257 @ ulong * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__key3257' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * lhs: %i = alloca i64, align 8 * * * * * * * * * * * * * * * * * * * * rhs: %18 = load i64, i64* %__key3257 * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(2508) * * * * * * * * * * * * * * * CallExp::toElem: trustedFPUTC(cast(int)b[i], this.handle_) @ int * * * * * * * * * * * * * * * * VarExp::toElem: trustedFPUTC @ nothrow @nogc @trusted int(int ch, _IO_FILE* h) * * * * * * * * * * * * * * * * * DtoSymbolAddress ('trustedFPUTC' of type 'nothrow @nogc @trusted int(int ch, _IO_FILE* h)') * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * Function type: nothrow @nogc @trusted int(int ch, _IO_FILE* h) * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * CastExp::toElem: cast(int)b[i] @ int * * * * * * * * * * * * * * * * * * * IndexExp::toElem: b[i] @ char * * * * * * * * * * * * * * * * * * * * VarExp::toElem: b @ char[] * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('b' of type 'char[]') * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * VarExp::toElem: i @ ulong * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * * Casting from 'char' to 'int' * * * * * * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * DotVarExp::toElem: this.handle_ @ _IO_FILE* * * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ LockingTextWriter * * * * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * * * * Indexing aggregate field std.stdio.File.LockingTextWriter.handle_: * * * * * * * * * * * * * * * * * * * * Value: %26 = getelementptr %std.stdio.File.LockingTextWriter, %std.stdio.File.LockingTextWriter* %.this_arg, i32 0, i32 1 * * * * * * * * * * * * * AddAssignExp::toElem: __key3257 += 1LU @ ulong * * * * * * * * * * * * * * Caching l-value of __key3257 += 1LU => __key3257 * * * * * * * * * * * * * * * VarExp::toElem: __key3257 @ ulong * * * * * * * * * * * * * * * * DtoSymbolAddress ('__key3257' of type 'ulong') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * AddExp::toElem: __key3257 + 1LU @ ulong * * * * * * * * * * * * * * * VarExp::toElem: __key3257 @ ulong * * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * lhs: %__key3257 = alloca i64, align 8 * * * * * * * * * * * * * * * rhs: %22 = add i64 %21, 1 * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(2512) * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(2534) * * * * * * * * CallExp::toElem: trustedFPUTWC(c, this.handle_) @ int * * * * * * * * * VarExp::toElem: trustedFPUTWC @ nothrow @nogc @trusted int(dchar ch, _IO_FILE* h) * * * * * * * * * * DtoSymbolAddress ('trustedFPUTWC' of type 'nothrow @nogc @trusted int(dchar ch, _IO_FILE* h)') * * * * * * * * * * * FuncDeclaration * * * * * * * * * DtoCallFunction() * * * * * * * * * * Building type: nothrow @nogc @trusted int(dchar ch, _IO_FILE* h) * * * * * * * * * * * DtoFunctionType(nothrow @nogc @trusted int(dchar ch, _IO_FILE* h)) * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * Final function type: i32 (%core.stdc.stdio._IO_FILE*, i32) * * * * * * * * * * doing normal arguments * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * Function type: nothrow @nogc @trusted int(dchar ch, _IO_FILE* h) * * * * * * * * * * DtoArgument * * * * * * * * * * * VarExp::toElem: c @ dchar * * * * * * * * * * * * DtoSymbolAddress ('c' of type 'dchar') * * * * * * * * * * * * * function param * * * * * * * * * * * * * type: dchar * * * * * * * * * * DtoArgument * * * * * * * * * * * DotVarExp::toElem: this.handle_ @ _IO_FILE* * * * * * * * * * * * * ThisExp::toElem: this @ LockingTextWriter * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * Indexing aggregate field std.stdio.File.LockingTextWriter.handle_: * * * * * * * * * * * * * Value: %6 = getelementptr %std.stdio.File.LockingTextWriter, %std.stdio.File.LockingTextWriter* %.this_arg, i32 0, i32 1 * TemplateInstance::codegen: 'std.stdio.writeln!(string)' * * DtoDefineFunction(std.stdio.writeln!(string).writeln): /usr/include/dlang/ldc/std/stdio.d(2999) * * * Doing function body for: writeln * * * DtoCreateNestedContext for writeln * * * * DtoCreateNestedContextType for std.stdio.writeln!(string).writeln * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(3000) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(3017) * * * * * * DeclarationExp::toElem: LockingTextWriter w = (File __tmpfordtor3260 = trustedStdout(); , __tmpfordtor3260).lockingTextWriter(); | T=void * * * * * * * DtoDeclarationExp: w * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = LockingTextWriter) * * * * * * * * * DotVarExp::toElem: (File __tmpfordtor3260 = trustedStdout(); , __tmpfordtor3260).lockingTextWriter @ @safe LockingTextWriter() * * * * * * * * * * CommaExp::toElem: File __tmpfordtor3260 = trustedStdout(); , __tmpfordtor3260 @ File * * * * * * * * * * * DeclarationExp::toElem: File __tmpfordtor3260 = trustedStdout(); | T=void * * * * * * * * * * * * DtoDeclarationExp: __tmpfordtor3260 * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * DtoVarDeclaration(vdtype = File) * * * * * * * * * * * * * * VarExp::toElem: trustedStdout @ @property @trusted File() * * * * * * * * * * * * * * * DtoSymbolAddress ('trustedStdout' of type '@property @trusted File()') * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * %__tmpfordtor3260 = alloca %std.stdio.File, align 8 * * * * * * * * * * * * * * * Function type: @property @trusted File() * * * * * * * * * * * * CallExp::toElem: __tmpfordtor3260.~this() @ void * * * * * * * * * * * * * DotVarExp::toElem: __tmpfordtor3260.~this @ @safe void() * * * * * * * * * * * * * * VarExp::toElem: __tmpfordtor3260 @ File * * * * * * * * * * * * * * * DtoSymbolAddress ('__tmpfordtor3260' of type 'File') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * %__tmpfordtor3260 = alloca %std.stdio.File, align 8 * * * * * * * * * * * * * * Function type: @safe void() * * * * * * * * * * * VarExp::toElem: __tmpfordtor3260 @ File * * * * * * * * * * * * DtoSymbolAddress ('__tmpfordtor3260' of type 'File') * * * * * * * * * * * * * a normal variable * * * * * * * * * DtoCallFunction() * * * * * * * * * * doing normal arguments * * * * * * * * * * Arguments so far: (2) * * * * * * * * * * * %w = alloca %std.stdio.File.LockingTextWriter, align 8 * * * * * * * * * * * %__tmpfordtor3260 = alloca %std.stdio.File, align 8 * * * * * * * * * * Function type: @safe LockingTextWriter() * * * * * TryFinallyStatement::toIR(): * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(3017) * * * * * * * CallExp::toElem: w.~this() @ void * * * * * * * * DotVarExp::toElem: w.~this @ @trusted void() * * * * * * * * * VarExp::toElem: w @ LockingTextWriter * * * * * * * * * * DtoSymbolAddress ('w' of type 'LockingTextWriter') * * * * * * * * * * * a normal variable * * * * * * * * DtoCallFunction() * * * * * * * * * doing normal arguments * * * * * * * * * Arguments so far: (1) * * * * * * * * * * %w = alloca %std.stdio.File.LockingTextWriter, align 8 * * * * * * * * * Function type: @trusted void() * * * * * * CompoundStatement::toIR(): * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(3025) * * * * * * * * CallExp::toElem: w.put(_param_0) @ void * * * * * * * * * DotVarExp::toElem: w.put @ @safe void(string writeme) * * * * * * * * * * VarExp::toElem: w @ LockingTextWriter * * * * * * * * * * * DtoSymbolAddress ('w' of type 'LockingTextWriter') * * * * * * * * * * * * a normal variable * * * * * * * * * DtoCallFunction() * * * * * * * * * * doing normal arguments * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * %w = alloca %std.stdio.File.LockingTextWriter, align 8 * * * * * * * * * * Function type: @safe void(string writeme) * * * * * * * * * * DtoArgument * * * * * * * * * * * VarExp::toElem: _param_0 @ string * * * * * * * * * * * * DtoSymbolAddress ('_param_0' of type 'string') * * * * * * * * * * * * * function param * * * * * * * * * * * * * type: string * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(3027) * * * * * * * * CallExp::toElem: w.put('\x0a') @ void * * * * * * * * * DotVarExp::toElem: w.put @ nothrow @nogc @safe void(char c) * * * * * * * * * * VarExp::toElem: w @ LockingTextWriter * * * * * * * * * * * DtoSymbolAddress ('w' of type 'LockingTextWriter') * * * * * * * * * * * * a normal variable * * * * * * * * * DtoCallFunction() * * * * * * * * * * doing normal arguments * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * %w = alloca %std.stdio.File.LockingTextWriter, align 8 * * * * * * * * * * Function type: nothrow @nogc @safe void(char c) * * * * * * * * * * DtoArgument * * * * * * * * * * * IntegerExp::toElem: '\x0a' @ char * * * * * * * * * * * * IntegerExp::toConstElem: '\x0a' @ char * * * * * * * * * * * * * value = i8 10 * TemplateInstance::codegen: 'std.stdio.File.LockingTextWriter.put!char' * * DtoDefineFunction(std.stdio.File.LockingTextWriter.put!char.put): /usr/include/dlang/ldc/std/stdio.d(2452) * * * Doing function body for: put * * * DtoCreateNestedContext for put * * * * DtoCreateNestedContextType for std.stdio.File.LockingTextWriter.put!char.put * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(2453) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(2455) * * * * * * DeclarationExp::toElem: auto static nothrow @nogc @trusted int trustedFPUTC(int ch, _IO_FILE* h) { return fputc_unlocked(ch, h); } | T=void * * * * * * * DtoDeclarationExp: trustedFPUTC * * * * * * * * FuncDeclaration * * * * * * * * DtoDefineFunction(std.stdio.File.LockingTextWriter.put!char.put.trustedFPUTC): /usr/include/dlang/ldc/std/stdio.d(2455) * * * * * * * * * DtoFunctionType(nothrow @nogc @trusted int(int ch, _IO_FILE* h)) * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: i32 (%core.stdc.stdio._IO_FILE*, i32) * * * * * * * * * DtoResolveFunction(std.stdio.File.LockingTextWriter.put!char.put.trustedFPUTC): /usr/include/dlang/ldc/std/stdio.d(2455) * * * * * * * * * * DtoDeclareFunction(std.stdio.File.LockingTextWriter.put!char.put.trustedFPUTC): /usr/include/dlang/ldc/std/stdio.d(2455) * * * * * * * * * * * DtoFunctionType(nothrow @nogc @trusted int(int ch, _IO_FILE* h)) * * * * * * * * * * * func = declare i32 @_D3std5stdio4File17LockingTextWriter10__T3putTaZ3putMFNfaZ12trustedFPUTCFNbNiNeiPS4core4stdc5stdio8_IO_FILEZi(%core.stdc.stdio._IO_FILE*, i32) * * * * * * * * * Doing function body for: trustedFPUTC * * * * * * * * * DtoCreateNestedContext for trustedFPUTC * * * * * * * * * * DtoCreateNestedContextType for std.stdio.File.LockingTextWriter.put!char.put.trustedFPUTC * * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(2457) * * * * * * * * * * * CallExp::toElem: fputc_unlocked(ch, h) @ int * * * * * * * * * * * * VarExp::toElem: fputc_unlocked @ nothrow @nogc extern (C) int(int, _IO_FILE*) * * * * * * * * * * * * * DtoSymbolAddress ('fputc_unlocked' of type 'nothrow @nogc extern (C) int(int, _IO_FILE*)') * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * Function type: nothrow @nogc extern (C) int(int, _IO_FILE*) * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * VarExp::toElem: ch @ int * * * * * * * * * * * * * * * DtoSymbolAddress ('ch' of type 'int') * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * type: int * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * VarExp::toElem: h @ _IO_FILE* * * * * * * * * * * * * * * * DtoSymbolAddress ('h' of type '_IO_FILE*') * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * type: _IO_FILE* * * * * * * * * * * * return value is '0x1355dd28' * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(2459) * * * * * * DeclarationExp::toElem: auto static nothrow @nogc @trusted int trustedFPUTWC(dchar ch, _IO_FILE* h) { return fputwc_unlocked(ch, h); } | T=void * * * * * * * DtoDeclarationExp: trustedFPUTWC * * * * * * * * FuncDeclaration * * * * * * * * DtoDefineFunction(std.stdio.File.LockingTextWriter.put!char.put.trustedFPUTWC): /usr/include/dlang/ldc/std/stdio.d(2459) * * * * * * * * * DtoFunctionType(nothrow @nogc @trusted int(dchar ch, _IO_FILE* h)) * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: i32 (%core.stdc.stdio._IO_FILE*, i32) * * * * * * * * * DtoResolveFunction(std.stdio.File.LockingTextWriter.put!char.put.trustedFPUTWC): /usr/include/dlang/ldc/std/stdio.d(2459) * * * * * * * * * * DtoDeclareFunction(std.stdio.File.LockingTextWriter.put!char.put.trustedFPUTWC): /usr/include/dlang/ldc/std/stdio.d(2459) * * * * * * * * * * * DtoFunctionType(nothrow @nogc @trusted int(dchar ch, _IO_FILE* h)) * * * * * * * * * * * func = declare i32 @_D3std5stdio4File17LockingTextWriter10__T3putTaZ3putMFNfaZ13trustedFPUTWCFNbNiNewPS4core4stdc5stdio8_IO_FILEZi(%core.stdc.stdio._IO_FILE*, i32) * * * * * * * * * Doing function body for: trustedFPUTWC * * * * * * * * * DtoCreateNestedContext for trustedFPUTWC * * * * * * * * * * DtoCreateNestedContextType for std.stdio.File.LockingTextWriter.put!char.put.trustedFPUTWC * * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(2461) * * * * * * * * * * * CallExp::toElem: fputwc_unlocked(ch, h) @ int * * * * * * * * * * * * VarExp::toElem: fputwc_unlocked @ nothrow @nogc extern (C) int(dchar, _IO_FILE*) * * * * * * * * * * * * * DtoSymbolAddress ('fputwc_unlocked' of type 'nothrow @nogc extern (C) int(dchar, _IO_FILE*)') * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * Function type: nothrow @nogc extern (C) int(dchar, _IO_FILE*) * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * VarExp::toElem: ch @ dchar * * * * * * * * * * * * * * * DtoSymbolAddress ('ch' of type 'dchar') * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * type: dchar * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * VarExp::toElem: h @ _IO_FILE* * * * * * * * * * * * * * * * DtoSymbolAddress ('h' of type '_IO_FILE*') * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * type: _IO_FILE* * * * * * * * * * * * return value is '0x1355fe98' * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(2467) * * * * * * CmpExp::toElem: this.orientation_ <= 0 @ bool * * * * * * * DotVarExp::toElem: this.orientation_ @ int * * * * * * * * ThisExp::toElem: this @ LockingTextWriter * * * * * * * * * normal this exp * * * * * * * * Indexing aggregate field std.stdio.File.LockingTextWriter.orientation_: * * * * * * * * * Value: %1 = getelementptr %std.stdio.File.LockingTextWriter, %std.stdio.File.LockingTextWriter* %.this_arg, i32 0, i32 2 * * * * * * * IntegerExp::toElem: 0 @ int * * * * * * * * IntegerExp::toConstElem: 0 @ int * * * * * * * * * value = i32 0 * * * * * * * type 1: %2 = load i32, i32* %1 * * * * * * * type 2: i32 0 * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(2467) * * * * * * * CallExp::toElem: trustedFPUTC(cast(int)c, this.handle_) @ int * * * * * * * * VarExp::toElem: trustedFPUTC @ nothrow @nogc @trusted int(int ch, _IO_FILE* h) * * * * * * * * * DtoSymbolAddress ('trustedFPUTC' of type 'nothrow @nogc @trusted int(int ch, _IO_FILE* h)') * * * * * * * * * * FuncDeclaration * * * * * * * * DtoCallFunction() * * * * * * * * * Building type: nothrow @nogc @trusted int(int ch, _IO_FILE* h) * * * * * * * * * * DtoFunctionType(nothrow @nogc @trusted int(int ch, _IO_FILE* h)) * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * Final function type: i32 (%core.stdc.stdio._IO_FILE*, i32) * * * * * * * * * doing normal arguments * * * * * * * * * Arguments so far: (0) * * * * * * * * * Function type: nothrow @nogc @trusted int(int ch, _IO_FILE* h) * * * * * * * * * DtoArgument * * * * * * * * * * CastExp::toElem: cast(int)c @ int * * * * * * * * * * * VarExp::toElem: c @ char * * * * * * * * * * * * DtoSymbolAddress ('c' of type 'char') * * * * * * * * * * * * * function param * * * * * * * * * * * * * type: char * * * * * * * * * * * Casting from 'char' to 'int' * * * * * * * * * * * * cast to: i32 * * * * * * * * * DtoArgument * * * * * * * * * * DotVarExp::toElem: this.handle_ @ _IO_FILE* * * * * * * * * * * * ThisExp::toElem: this @ LockingTextWriter * * * * * * * * * * * * normal this exp * * * * * * * * * * * Indexing aggregate field std.stdio.File.LockingTextWriter.handle_: * * * * * * * * * * * * Value: %6 = getelementptr %std.stdio.File.LockingTextWriter, %std.stdio.File.LockingTextWriter* %.this_arg, i32 0, i32 1 * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(2468) * * * * * * * CallExp::toElem: trustedFPUTWC(cast(dchar)c, this.handle_) @ int * * * * * * * * VarExp::toElem: trustedFPUTWC @ nothrow @nogc @trusted int(dchar ch, _IO_FILE* h) * * * * * * * * * DtoSymbolAddress ('trustedFPUTWC' of type 'nothrow @nogc @trusted int(dchar ch, _IO_FILE* h)') * * * * * * * * * * FuncDeclaration * * * * * * * * DtoCallFunction() * * * * * * * * * Building type: nothrow @nogc @trusted int(dchar ch, _IO_FILE* h) * * * * * * * * * * DtoFunctionType(nothrow @nogc @trusted int(dchar ch, _IO_FILE* h)) * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * Final function type: i32 (%core.stdc.stdio._IO_FILE*, i32) * * * * * * * * * doing normal arguments * * * * * * * * * Arguments so far: (0) * * * * * * * * * Function type: nothrow @nogc @trusted int(dchar ch, _IO_FILE* h) * * * * * * * * * DtoArgument * * * * * * * * * * CastExp::toElem: cast(dchar)c @ dchar * * * * * * * * * * * VarExp::toElem: c @ char * * * * * * * * * * * * DtoSymbolAddress ('c' of type 'char') * * * * * * * * * * * * * function param * * * * * * * * * * * * * type: char * * * * * * * * * * * Casting from 'char' to 'dchar' * * * * * * * * * * * * cast to: i32 * * * * * * * * * DtoArgument * * * * * * * * * * DotVarExp::toElem: this.handle_ @ _IO_FILE* * * * * * * * * * * * ThisExp::toElem: this @ LockingTextWriter * * * * * * * * * * * * normal this exp * * * * * * * * * * * Indexing aggregate field std.stdio.File.LockingTextWriter.handle_: * * * * * * * * * * * * Value: %11 = getelementptr %std.stdio.File.LockingTextWriter, %std.stdio.File.LockingTextWriter* %.this_arg, i32 0, i32 1 * TemplateInstance::codegen: 'std.stdio.File.writefln!(char, string)' * * DtoDefineFunction(std.stdio.File.writefln!(char, string).writefln): /usr/include/dlang/ldc/std/stdio.d(1364) * * * Doing function body for: writefln * * * DtoCreateNestedContext for writefln * * * * DtoCreateNestedContextType for std.stdio.File.writefln!(char, string).writefln * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(1365) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(1368) * * * * * * DeclarationExp::toElem: LockingTextWriter w = this.lockingTextWriter(); | T=void * * * * * * * DtoDeclarationExp: w * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = LockingTextWriter) * * * * * * * * * DotVarExp::toElem: this.lockingTextWriter @ @safe LockingTextWriter() * * * * * * * * * * ThisExp::toElem: this @ File * * * * * * * * * * * normal this exp * * * * * * * * * DtoCallFunction() * * * * * * * * * * doing normal arguments * * * * * * * * * * Arguments so far: (2) * * * * * * * * * * * %w = alloca %std.stdio.File.LockingTextWriter, align 8 * * * * * * * * * * * %std.stdio.File* %.this_arg * * * * * * * * * * Function type: @safe LockingTextWriter() * * * * * TryFinallyStatement::toIR(): * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(1368) * * * * * * * CallExp::toElem: w.~this() @ void * * * * * * * * DotVarExp::toElem: w.~this @ @trusted void() * * * * * * * * * VarExp::toElem: w @ LockingTextWriter * * * * * * * * * * DtoSymbolAddress ('w' of type 'LockingTextWriter') * * * * * * * * * * * a normal variable * * * * * * * * DtoCallFunction() * * * * * * * * * doing normal arguments * * * * * * * * * Arguments so far: (1) * * * * * * * * * * %w = alloca %std.stdio.File.LockingTextWriter, align 8 * * * * * * * * * Function type: @trusted void() * * * * * * CompoundStatement::toIR(): * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(1369) * * * * * * * * CallExp::toElem: formattedWrite((LockingTextWriter __copytmp3357 = (__copytmp3357 = w).__postblit(); , __copytmp3357), fmt, _param_1) @ uint * * * * * * * * * VarExp::toElem: formattedWrite @ @safe uint(LockingTextWriter w, const(char[]) fmt, string _param_2) * * * * * * * * * * DtoSymbolAddress ('formattedWrite' of type '@safe uint(LockingTextWriter w, const(char[]) fmt, string _param_2)') * * * * * * * * * * * FuncDeclaration * * * * * * * * * DtoCallFunction() * * * * * * * * * * Building type: @safe uint(LockingTextWriter w, const(char[]) fmt, string _param_2) * * * * * * * * * * * DtoFunctionType(@safe uint(LockingTextWriter w, const(char[]) fmt, string _param_2)) * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * Final function type: i32 ({ i64, i8* }, { i64, i8* }, %std.stdio.File.LockingTextWriter*) * * * * * * * * * * doing normal arguments * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * Function type: @safe uint(LockingTextWriter w, const(char[]) fmt, string _param_2) * * * * * * * * * * DtoArgument * * * * * * * * * * * CommaExp::toElem: LockingTextWriter __copytmp3357 = (__copytmp3357 = w).__postblit(); , __copytmp3357 @ LockingTextWriter * * * * * * * * * * * * DeclarationExp::toElem: LockingTextWriter __copytmp3357 = (__copytmp3357 = w).__postblit(); | T=void * * * * * * * * * * * * * DtoDeclarationExp: __copytmp3357 * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = LockingTextWriter) * * * * * * * * * * * * * * * llvm value for decl: %__copytmp3357 = alloca %std.stdio.File.LockingTextWriter, align 8 * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * CallExp::toElem: (__copytmp3357 = w).__postblit() @ void * * * * * * * * * * * * * * * * DotVarExp::toElem: (__copytmp3357 = w).__postblit @ @trusted void() * * * * * * * * * * * * * * * * * AssignExp::toElem: __copytmp3357 = w | (LockingTextWriter)(LockingTextWriter = LockingTextWriter) * * * * * * * * * * * * * * * * * * VarExp::toElem: __copytmp3357 @ LockingTextWriter * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__copytmp3357' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * VarExp::toElem: w @ LockingTextWriter * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * %__copytmp3357 = alloca %std.stdio.File.LockingTextWriter, align 8 * * * * * * * * * * * * * * * * * Function type: @trusted void() * * * * * * * * * * * * VarExp::toElem: __copytmp3357 @ LockingTextWriter * * * * * * * * * * * * * DtoSymbolAddress ('__copytmp3357' of type 'LockingTextWriter') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * DtoArgument * * * * * * * * * * * VarExp::toElem: fmt @ const(char[]) * * * * * * * * * * * * DtoSymbolAddress ('fmt' of type 'const(char[])') * * * * * * * * * * * * * function param * * * * * * * * * * * * * type: const(char[]) * * * * * * * * * * DtoArgument * * * * * * * * * * * VarExp::toElem: _param_1 @ string * * * * * * * * * * * * DtoSymbolAddress ('_param_1' of type 'string') * * * * * * * * * * * * * function param * * * * * * * * * * * * * type: string * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(1370) * * * * * * * * CallExp::toElem: w.put('\x0a') @ void * * * * * * * * * DotVarExp::toElem: w.put @ nothrow @nogc @safe void(char c) * * * * * * * * * * VarExp::toElem: w @ LockingTextWriter * * * * * * * * * * * DtoSymbolAddress ('w' of type 'LockingTextWriter') * * * * * * * * * * * * a normal variable * * * * * * * * * DtoCallFunction() * * * * * * * * * * doing normal arguments * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * %w = alloca %std.stdio.File.LockingTextWriter, align 8 * * * * * * * * * * Function type: nothrow @nogc @safe void(char c) * * * * * * * * * * DtoArgument * * * * * * * * * * * IntegerExp::toElem: '\x0a' @ char * * * * * * * * * * * * IntegerExp::toConstElem: '\x0a' @ char * * * * * * * * * * * * * value = i8 10 * TemplateInstance::codegen: 'std.stdio.File.LockingTextWriter.put!(immutable(char))' * * DtoDefineFunction(std.stdio.File.LockingTextWriter.put!(immutable(char)).put): /usr/include/dlang/ldc/std/stdio.d(2452) * * * Doing function body for: put * * * DtoCreateNestedContext for put * * * * DtoCreateNestedContextType for std.stdio.File.LockingTextWriter.put!(immutable(char)).put * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(2453) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(2455) * * * * * * DeclarationExp::toElem: auto static nothrow @nogc @trusted int trustedFPUTC(int ch, _IO_FILE* h) { return fputc_unlocked(ch, h); } | T=void * * * * * * * DtoDeclarationExp: trustedFPUTC * * * * * * * * FuncDeclaration * * * * * * * * DtoDefineFunction(std.stdio.File.LockingTextWriter.put!(immutable(char)).put.trustedFPUTC): /usr/include/dlang/ldc/std/stdio.d(2455) * * * * * * * * * DtoFunctionType(nothrow @nogc @trusted int(int ch, _IO_FILE* h)) * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: i32 (%core.stdc.stdio._IO_FILE*, i32) * * * * * * * * * DtoResolveFunction(std.stdio.File.LockingTextWriter.put!(immutable(char)).put.trustedFPUTC): /usr/include/dlang/ldc/std/stdio.d(2455) * * * * * * * * * * DtoDeclareFunction(std.stdio.File.LockingTextWriter.put!(immutable(char)).put.trustedFPUTC): /usr/include/dlang/ldc/std/stdio.d(2455) * * * * * * * * * * * DtoFunctionType(nothrow @nogc @trusted int(int ch, _IO_FILE* h)) * * * * * * * * * * * func = declare i32 @_D3std5stdio4File17LockingTextWriter11__T3putTyaZ3putMFNfyaZ12trustedFPUTCFNbNiNeiPS4core4stdc5stdio8_IO_FILEZi(%core.stdc.stdio._IO_FILE*, i32) * * * * * * * * * Doing function body for: trustedFPUTC * * * * * * * * * DtoCreateNestedContext for trustedFPUTC * * * * * * * * * * DtoCreateNestedContextType for std.stdio.File.LockingTextWriter.put!(immutable(char)).put.trustedFPUTC * * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(2457) * * * * * * * * * * * CallExp::toElem: fputc_unlocked(ch, h) @ int * * * * * * * * * * * * VarExp::toElem: fputc_unlocked @ nothrow @nogc extern (C) int(int, _IO_FILE*) * * * * * * * * * * * * * DtoSymbolAddress ('fputc_unlocked' of type 'nothrow @nogc extern (C) int(int, _IO_FILE*)') * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * Function type: nothrow @nogc extern (C) int(int, _IO_FILE*) * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * VarExp::toElem: ch @ int * * * * * * * * * * * * * * * DtoSymbolAddress ('ch' of type 'int') * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * type: int * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * VarExp::toElem: h @ _IO_FILE* * * * * * * * * * * * * * * * DtoSymbolAddress ('h' of type '_IO_FILE*') * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * type: _IO_FILE* * * * * * * * * * * * return value is '0x12c30648' * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(2459) * * * * * * DeclarationExp::toElem: auto static nothrow @nogc @trusted int trustedFPUTWC(dchar ch, _IO_FILE* h) { return fputwc_unlocked(ch, h); } | T=void * * * * * * * DtoDeclarationExp: trustedFPUTWC * * * * * * * * FuncDeclaration * * * * * * * * DtoDefineFunction(std.stdio.File.LockingTextWriter.put!(immutable(char)).put.trustedFPUTWC): /usr/include/dlang/ldc/std/stdio.d(2459) * * * * * * * * * DtoFunctionType(nothrow @nogc @trusted int(dchar ch, _IO_FILE* h)) * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: i32 (%core.stdc.stdio._IO_FILE*, i32) * * * * * * * * * DtoResolveFunction(std.stdio.File.LockingTextWriter.put!(immutable(char)).put.trustedFPUTWC): /usr/include/dlang/ldc/std/stdio.d(2459) * * * * * * * * * * DtoDeclareFunction(std.stdio.File.LockingTextWriter.put!(immutable(char)).put.trustedFPUTWC): /usr/include/dlang/ldc/std/stdio.d(2459) * * * * * * * * * * * DtoFunctionType(nothrow @nogc @trusted int(dchar ch, _IO_FILE* h)) * * * * * * * * * * * func = declare i32 @_D3std5stdio4File17LockingTextWriter11__T3putTyaZ3putMFNfyaZ13trustedFPUTWCFNbNiNewPS4core4stdc5stdio8_IO_FILEZi(%core.stdc.stdio._IO_FILE*, i32) * * * * * * * * * Doing function body for: trustedFPUTWC * * * * * * * * * DtoCreateNestedContext for trustedFPUTWC * * * * * * * * * * DtoCreateNestedContextType for std.stdio.File.LockingTextWriter.put!(immutable(char)).put.trustedFPUTWC * * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(2461) * * * * * * * * * * * CallExp::toElem: fputwc_unlocked(ch, h) @ int * * * * * * * * * * * * VarExp::toElem: fputwc_unlocked @ nothrow @nogc extern (C) int(dchar, _IO_FILE*) * * * * * * * * * * * * * DtoSymbolAddress ('fputwc_unlocked' of type 'nothrow @nogc extern (C) int(dchar, _IO_FILE*)') * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * Function type: nothrow @nogc extern (C) int(dchar, _IO_FILE*) * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * VarExp::toElem: ch @ dchar * * * * * * * * * * * * * * * DtoSymbolAddress ('ch' of type 'dchar') * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * type: dchar * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * VarExp::toElem: h @ _IO_FILE* * * * * * * * * * * * * * * * DtoSymbolAddress ('h' of type '_IO_FILE*') * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * type: _IO_FILE* * * * * * * * * * * * return value is '0x12c32798' * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(2467) * * * * * * CmpExp::toElem: this.orientation_ <= 0 @ bool * * * * * * * DotVarExp::toElem: this.orientation_ @ int * * * * * * * * ThisExp::toElem: this @ LockingTextWriter * * * * * * * * * normal this exp * * * * * * * * Indexing aggregate field std.stdio.File.LockingTextWriter.orientation_: * * * * * * * * * Value: %1 = getelementptr %std.stdio.File.LockingTextWriter, %std.stdio.File.LockingTextWriter* %.this_arg, i32 0, i32 2 * * * * * * * IntegerExp::toElem: 0 @ int * * * * * * * * IntegerExp::toConstElem: 0 @ int * * * * * * * * * value = i32 0 * * * * * * * type 1: %2 = load i32, i32* %1 * * * * * * * type 2: i32 0 * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(2467) * * * * * * * CallExp::toElem: trustedFPUTC(cast(int)c, this.handle_) @ int * * * * * * * * VarExp::toElem: trustedFPUTC @ nothrow @nogc @trusted int(int ch, _IO_FILE* h) * * * * * * * * * DtoSymbolAddress ('trustedFPUTC' of type 'nothrow @nogc @trusted int(int ch, _IO_FILE* h)') * * * * * * * * * * FuncDeclaration * * * * * * * * DtoCallFunction() * * * * * * * * * Building type: nothrow @nogc @trusted int(int ch, _IO_FILE* h) * * * * * * * * * * DtoFunctionType(nothrow @nogc @trusted int(int ch, _IO_FILE* h)) * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * Final function type: i32 (%core.stdc.stdio._IO_FILE*, i32) * * * * * * * * * doing normal arguments * * * * * * * * * Arguments so far: (0) * * * * * * * * * Function type: nothrow @nogc @trusted int(int ch, _IO_FILE* h) * * * * * * * * * DtoArgument * * * * * * * * * * CastExp::toElem: cast(int)c @ int * * * * * * * * * * * VarExp::toElem: c @ immutable(char) * * * * * * * * * * * * DtoSymbolAddress ('c' of type 'immutable(char)') * * * * * * * * * * * * * function param * * * * * * * * * * * * * type: immutable(char) * * * * * * * * * * * Casting from 'immutable(char)' to 'int' * * * * * * * * * * * * cast to: i32 * * * * * * * * * DtoArgument * * * * * * * * * * DotVarExp::toElem: this.handle_ @ _IO_FILE* * * * * * * * * * * * ThisExp::toElem: this @ LockingTextWriter * * * * * * * * * * * * normal this exp * * * * * * * * * * * Indexing aggregate field std.stdio.File.LockingTextWriter.handle_: * * * * * * * * * * * * Value: %6 = getelementptr %std.stdio.File.LockingTextWriter, %std.stdio.File.LockingTextWriter* %.this_arg, i32 0, i32 1 * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(2468) * * * * * * * CallExp::toElem: trustedFPUTWC(cast(dchar)c, this.handle_) @ int * * * * * * * * VarExp::toElem: trustedFPUTWC @ nothrow @nogc @trusted int(dchar ch, _IO_FILE* h) * * * * * * * * * DtoSymbolAddress ('trustedFPUTWC' of type 'nothrow @nogc @trusted int(dchar ch, _IO_FILE* h)') * * * * * * * * * * FuncDeclaration * * * * * * * * DtoCallFunction() * * * * * * * * * Building type: nothrow @nogc @trusted int(dchar ch, _IO_FILE* h) * * * * * * * * * * DtoFunctionType(nothrow @nogc @trusted int(dchar ch, _IO_FILE* h)) * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * Final function type: i32 (%core.stdc.stdio._IO_FILE*, i32) * * * * * * * * * doing normal arguments * * * * * * * * * Arguments so far: (0) * * * * * * * * * Function type: nothrow @nogc @trusted int(dchar ch, _IO_FILE* h) * * * * * * * * * DtoArgument * * * * * * * * * * CastExp::toElem: cast(dchar)c @ dchar * * * * * * * * * * * VarExp::toElem: c @ immutable(char) * * * * * * * * * * * * DtoSymbolAddress ('c' of type 'immutable(char)') * * * * * * * * * * * * * function param * * * * * * * * * * * * * type: immutable(char) * * * * * * * * * * * Casting from 'immutable(char)' to 'dchar' * * * * * * * * * * * * cast to: i32 * * * * * * * * * DtoArgument * * * * * * * * * * DotVarExp::toElem: this.handle_ @ _IO_FILE* * * * * * * * * * * * ThisExp::toElem: this @ LockingTextWriter * * * * * * * * * * * * normal this exp * * * * * * * * * * * Indexing aggregate field std.stdio.File.LockingTextWriter.handle_: * * * * * * * * * * * * Value: %11 = getelementptr %std.stdio.File.LockingTextWriter, %std.stdio.File.LockingTextWriter* %.this_arg, i32 0, i32 1 * TemplateInstance::codegen: 'std.stdio.File.LockingTextWriter.put!(const(char))' * * DtoDefineFunction(std.stdio.File.LockingTextWriter.put!(const(char)).put): /usr/include/dlang/ldc/std/stdio.d(2452) * * * Doing function body for: put * * * DtoCreateNestedContext for put * * * * DtoCreateNestedContextType for std.stdio.File.LockingTextWriter.put!(const(char)).put * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(2453) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(2455) * * * * * * DeclarationExp::toElem: auto static nothrow @nogc @trusted int trustedFPUTC(int ch, _IO_FILE* h) { return fputc_unlocked(ch, h); } | T=void * * * * * * * DtoDeclarationExp: trustedFPUTC * * * * * * * * FuncDeclaration * * * * * * * * DtoDefineFunction(std.stdio.File.LockingTextWriter.put!(const(char)).put.trustedFPUTC): /usr/include/dlang/ldc/std/stdio.d(2455) * * * * * * * * * DtoFunctionType(nothrow @nogc @trusted int(int ch, _IO_FILE* h)) * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: i32 (%core.stdc.stdio._IO_FILE*, i32) * * * * * * * * * DtoResolveFunction(std.stdio.File.LockingTextWriter.put!(const(char)).put.trustedFPUTC): /usr/include/dlang/ldc/std/stdio.d(2455) * * * * * * * * * * DtoDeclareFunction(std.stdio.File.LockingTextWriter.put!(const(char)).put.trustedFPUTC): /usr/include/dlang/ldc/std/stdio.d(2455) * * * * * * * * * * * DtoFunctionType(nothrow @nogc @trusted int(int ch, _IO_FILE* h)) * * * * * * * * * * * func = declare i32 @_D3std5stdio4File17LockingTextWriter11__T3putTxaZ3putMFNfxaZ12trustedFPUTCFNbNiNeiPS4core4stdc5stdio8_IO_FILEZi(%core.stdc.stdio._IO_FILE*, i32) * * * * * * * * * Doing function body for: trustedFPUTC * * * * * * * * * DtoCreateNestedContext for trustedFPUTC * * * * * * * * * * DtoCreateNestedContextType for std.stdio.File.LockingTextWriter.put!(const(char)).put.trustedFPUTC * * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(2457) * * * * * * * * * * * CallExp::toElem: fputc_unlocked(ch, h) @ int * * * * * * * * * * * * VarExp::toElem: fputc_unlocked @ nothrow @nogc extern (C) int(int, _IO_FILE*) * * * * * * * * * * * * * DtoSymbolAddress ('fputc_unlocked' of type 'nothrow @nogc extern (C) int(int, _IO_FILE*)') * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * Function type: nothrow @nogc extern (C) int(int, _IO_FILE*) * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * VarExp::toElem: ch @ int * * * * * * * * * * * * * * * DtoSymbolAddress ('ch' of type 'int') * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * type: int * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * VarExp::toElem: h @ _IO_FILE* * * * * * * * * * * * * * * * DtoSymbolAddress ('h' of type '_IO_FILE*') * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * type: _IO_FILE* * * * * * * * * * * * return value is '0x12c377b8' * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(2459) * * * * * * DeclarationExp::toElem: auto static nothrow @nogc @trusted int trustedFPUTWC(dchar ch, _IO_FILE* h) { return fputwc_unlocked(ch, h); } | T=void * * * * * * * DtoDeclarationExp: trustedFPUTWC * * * * * * * * FuncDeclaration * * * * * * * * DtoDefineFunction(std.stdio.File.LockingTextWriter.put!(const(char)).put.trustedFPUTWC): /usr/include/dlang/ldc/std/stdio.d(2459) * * * * * * * * * DtoFunctionType(nothrow @nogc @trusted int(dchar ch, _IO_FILE* h)) * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: i32 (%core.stdc.stdio._IO_FILE*, i32) * * * * * * * * * DtoResolveFunction(std.stdio.File.LockingTextWriter.put!(const(char)).put.trustedFPUTWC): /usr/include/dlang/ldc/std/stdio.d(2459) * * * * * * * * * * DtoDeclareFunction(std.stdio.File.LockingTextWriter.put!(const(char)).put.trustedFPUTWC): /usr/include/dlang/ldc/std/stdio.d(2459) * * * * * * * * * * * DtoFunctionType(nothrow @nogc @trusted int(dchar ch, _IO_FILE* h)) * * * * * * * * * * * func = declare i32 @_D3std5stdio4File17LockingTextWriter11__T3putTxaZ3putMFNfxaZ13trustedFPUTWCFNbNiNewPS4core4stdc5stdio8_IO_FILEZi(%core.stdc.stdio._IO_FILE*, i32) * * * * * * * * * Doing function body for: trustedFPUTWC * * * * * * * * * DtoCreateNestedContext for trustedFPUTWC * * * * * * * * * * DtoCreateNestedContextType for std.stdio.File.LockingTextWriter.put!(const(char)).put.trustedFPUTWC * * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(2461) * * * * * * * * * * * CallExp::toElem: fputwc_unlocked(ch, h) @ int * * * * * * * * * * * * VarExp::toElem: fputwc_unlocked @ nothrow @nogc extern (C) int(dchar, _IO_FILE*) * * * * * * * * * * * * * DtoSymbolAddress ('fputwc_unlocked' of type 'nothrow @nogc extern (C) int(dchar, _IO_FILE*)') * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * Function type: nothrow @nogc extern (C) int(dchar, _IO_FILE*) * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * VarExp::toElem: ch @ dchar * * * * * * * * * * * * * * * DtoSymbolAddress ('ch' of type 'dchar') * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * type: dchar * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * VarExp::toElem: h @ _IO_FILE* * * * * * * * * * * * * * * * DtoSymbolAddress ('h' of type '_IO_FILE*') * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * type: _IO_FILE* * * * * * * * * * * * return value is '0x12c398b8' * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(2467) * * * * * * CmpExp::toElem: this.orientation_ <= 0 @ bool * * * * * * * DotVarExp::toElem: this.orientation_ @ int * * * * * * * * ThisExp::toElem: this @ LockingTextWriter * * * * * * * * * normal this exp * * * * * * * * Indexing aggregate field std.stdio.File.LockingTextWriter.orientation_: * * * * * * * * * Value: %1 = getelementptr %std.stdio.File.LockingTextWriter, %std.stdio.File.LockingTextWriter* %.this_arg, i32 0, i32 2 * * * * * * * IntegerExp::toElem: 0 @ int * * * * * * * * IntegerExp::toConstElem: 0 @ int * * * * * * * * * value = i32 0 * * * * * * * type 1: %2 = load i32, i32* %1 * * * * * * * type 2: i32 0 * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(2467) * * * * * * * CallExp::toElem: trustedFPUTC(cast(int)c, this.handle_) @ int * * * * * * * * VarExp::toElem: trustedFPUTC @ nothrow @nogc @trusted int(int ch, _IO_FILE* h) * * * * * * * * * DtoSymbolAddress ('trustedFPUTC' of type 'nothrow @nogc @trusted int(int ch, _IO_FILE* h)') * * * * * * * * * * FuncDeclaration * * * * * * * * DtoCallFunction() * * * * * * * * * Building type: nothrow @nogc @trusted int(int ch, _IO_FILE* h) * * * * * * * * * * DtoFunctionType(nothrow @nogc @trusted int(int ch, _IO_FILE* h)) * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * Final function type: i32 (%core.stdc.stdio._IO_FILE*, i32) * * * * * * * * * doing normal arguments * * * * * * * * * Arguments so far: (0) * * * * * * * * * Function type: nothrow @nogc @trusted int(int ch, _IO_FILE* h) * * * * * * * * * DtoArgument * * * * * * * * * * CastExp::toElem: cast(int)c @ int * * * * * * * * * * * VarExp::toElem: c @ const(char) * * * * * * * * * * * * DtoSymbolAddress ('c' of type 'const(char)') * * * * * * * * * * * * * function param * * * * * * * * * * * * * type: const(char) * * * * * * * * * * * Casting from 'const(char)' to 'int' * * * * * * * * * * * * cast to: i32 * * * * * * * * * DtoArgument * * * * * * * * * * DotVarExp::toElem: this.handle_ @ _IO_FILE* * * * * * * * * * * * ThisExp::toElem: this @ LockingTextWriter * * * * * * * * * * * * normal this exp * * * * * * * * * * * Indexing aggregate field std.stdio.File.LockingTextWriter.handle_: * * * * * * * * * * * * Value: %6 = getelementptr %std.stdio.File.LockingTextWriter, %std.stdio.File.LockingTextWriter* %.this_arg, i32 0, i32 1 * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(2468) * * * * * * * CallExp::toElem: trustedFPUTWC(cast(dchar)c, this.handle_) @ int * * * * * * * * VarExp::toElem: trustedFPUTWC @ nothrow @nogc @trusted int(dchar ch, _IO_FILE* h) * * * * * * * * * DtoSymbolAddress ('trustedFPUTWC' of type 'nothrow @nogc @trusted int(dchar ch, _IO_FILE* h)') * * * * * * * * * * FuncDeclaration * * * * * * * * DtoCallFunction() * * * * * * * * * Building type: nothrow @nogc @trusted int(dchar ch, _IO_FILE* h) * * * * * * * * * * DtoFunctionType(nothrow @nogc @trusted int(dchar ch, _IO_FILE* h)) * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * Final function type: i32 (%core.stdc.stdio._IO_FILE*, i32) * * * * * * * * * doing normal arguments * * * * * * * * * Arguments so far: (0) * * * * * * * * * Function type: nothrow @nogc @trusted int(dchar ch, _IO_FILE* h) * * * * * * * * * DtoArgument * * * * * * * * * * CastExp::toElem: cast(dchar)c @ dchar * * * * * * * * * * * VarExp::toElem: c @ const(char) * * * * * * * * * * * * DtoSymbolAddress ('c' of type 'const(char)') * * * * * * * * * * * * * function param * * * * * * * * * * * * * type: const(char) * * * * * * * * * * * Casting from 'const(char)' to 'dchar' * * * * * * * * * * * * cast to: i32 * * * * * * * * * DtoArgument * * * * * * * * * * DotVarExp::toElem: this.handle_ @ _IO_FILE* * * * * * * * * * * * ThisExp::toElem: this @ LockingTextWriter * * * * * * * * * * * * normal this exp * * * * * * * * * * * Indexing aggregate field std.stdio.File.LockingTextWriter.handle_: * * * * * * * * * * * * Value: %11 = getelementptr %std.stdio.File.LockingTextWriter, %std.stdio.File.LockingTextWriter* %.this_arg, i32 0, i32 1 * TemplateInstance::codegen: 'std.stdio.File.LockingTextWriter.put!(char[])' * * DtoDefineFunction(std.stdio.File.LockingTextWriter.put!(char[]).put): /usr/include/dlang/ldc/std/stdio.d(2416) * * * Doing function body for: put * * * DtoCreateNestedContext for put * * * * DtoCreateNestedContextType for std.stdio.File.LockingTextWriter.put!(char[]).put * * * * * has nested frame * * * * * Function put has depth 0 * * * * * Nested var 'this' of type %std.stdio.File.LockingTextWriter* * * * * * frameType = %nest.put.23 = type { %std.stdio.File.LockingTextWriter* } * * * * nested param: this * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(2420) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(2423) * * * * * * DeclarationExp::toElem: alias C = char; | T=void * * * * * * * DtoDeclarationExp: C * * * * * * * * Ignoring Symbol: alias * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(2427) * * * * * * CmpExp::toElem: this.orientation_ <= 0 @ bool * * * * * * * DotVarExp::toElem: this.orientation_ @ int * * * * * * * * ThisExp::toElem: this @ LockingTextWriter * * * * * * * * * normal this exp * * * * * * * * Indexing aggregate field std.stdio.File.LockingTextWriter.orientation_: * * * * * * * * * Value: %1 = getelementptr %std.stdio.File.LockingTextWriter, %std.stdio.File.LockingTextWriter* %.this_arg, i32 0, i32 2 * * * * * * * IntegerExp::toElem: 0 @ int * * * * * * * * IntegerExp::toConstElem: 0 @ int * * * * * * * * * value = i32 0 * * * * * * * type 1: %2 = load i32, i32* %1 * * * * * * * type 2: i32 0 * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(2428) * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(2428) * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(2431) * * * * * * * * * DeclarationExp::toElem: auto static nothrow @nogc @trusted ulong trustedFwrite(const(void*) ptr, ulong size, ulong nmemb, shared(_IO_FILE)* stream) { return fwrite(ptr, size, nmemb, stream); } | T=void * * * * * * * * * * DtoDeclarationExp: trustedFwrite * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * DtoDefineFunction(std.stdio.File.LockingTextWriter.put!(char[]).put.trustedFwrite): /usr/include/dlang/ldc/std/stdio.d(2431) * * * * * * * * * * * * DtoFunctionType(nothrow @nogc @trusted ulong(const(void*) ptr, ulong size, ulong nmemb, shared(_IO_FILE)* stream)) * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * Final function type: i64 (%core.stdc.stdio._IO_FILE*, i64, i64, i8*) * * * * * * * * * * * * DtoResolveFunction(std.stdio.File.LockingTextWriter.put!(char[]).put.trustedFwrite): /usr/include/dlang/ldc/std/stdio.d(2431) * * * * * * * * * * * * * DtoDeclareFunction(std.stdio.File.LockingTextWriter.put!(char[]).put.trustedFwrite): /usr/include/dlang/ldc/std/stdio.d(2431) * * * * * * * * * * * * * * DtoFunctionType(nothrow @nogc @trusted ulong(const(void*) ptr, ulong size, ulong nmemb, shared(_IO_FILE)* stream)) * * * * * * * * * * * * * * func = declare i64 @_D3std5stdio4File17LockingTextWriter11__T3putTAaZ3putMFAaZ13trustedFwriteFNbNiNexPvmmPOS4core4stdc5stdio8_IO_FILEZm(%core.stdc.stdio._IO_FILE*, i64, i64, i8*) * * * * * * * * * * * * Doing function body for: trustedFwrite * * * * * * * * * * * * DtoCreateNestedContext for trustedFwrite * * * * * * * * * * * * * DtoCreateNestedContextType for std.stdio.File.LockingTextWriter.put!(char[]).put.trustedFwrite * * * * * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(2433) * * * * * * * * * * * * * * CallExp::toElem: fwrite(ptr, size, nmemb, stream) @ ulong * * * * * * * * * * * * * * * VarExp::toElem: fwrite @ nothrow @nogc @system extern (C) ulong(const(void*) ptr, ulong size, ulong nmemb, shared(_IO_FILE)* stream) * * * * * * * * * * * * * * * * DtoSymbolAddress ('fwrite' of type 'nothrow @nogc @system extern (C) ulong(const(void*) ptr, ulong size, ulong nmemb, shared(_IO_FILE)* stream)') * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * Function type: nothrow @nogc @system extern (C) ulong(const(void*) ptr, ulong size, ulong nmemb, shared(_IO_FILE)* stream) * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * VarExp::toElem: ptr @ const(void*) * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('ptr' of type 'const(void*)') * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * type: const(void*) * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * VarExp::toElem: size @ ulong * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('size' of type 'ulong') * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * type: ulong * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * VarExp::toElem: nmemb @ ulong * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('nmemb' of type 'ulong') * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * type: ulong * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * VarExp::toElem: stream @ shared(_IO_FILE)* * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('stream' of type 'shared(_IO_FILE)*') * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * type: shared(_IO_FILE)* * * * * * * * * * * * * * * return value is '0x12c40158' * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(2435) * * * * * * * * * DeclarationExp::toElem: ulong result = trustedFwrite(cast(const(void*))cast(char*)writeme, 1LU, writeme.length, this.fps_); | T=void * * * * * * * * * * DtoDeclarationExp: result * * * * * * * * * * * VarDeclaration * * * * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * * * * llvm value for decl: %result = alloca i64, align 8 * * * * * * * * * * * * expression initializer * * * * * * * * * * * * AssignExp::toElem: result = trustedFwrite(cast(const(void*))cast(char*)writeme, 1LU, writeme.length, this.fps_) | (ulong)(ulong = ulong) * * * * * * * * * * * * * VarExp::toElem: result @ ulong * * * * * * * * * * * * * * DtoSymbolAddress ('result' of type 'ulong') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * CallExp::toElem: trustedFwrite(cast(const(void*))cast(char*)writeme, 1LU, writeme.length, this.fps_) @ ulong * * * * * * * * * * * * * * VarExp::toElem: trustedFwrite @ nothrow @nogc @trusted ulong(const(void*) ptr, ulong size, ulong nmemb, shared(_IO_FILE)* stream) * * * * * * * * * * * * * * * DtoSymbolAddress ('trustedFwrite' of type 'nothrow @nogc @trusted ulong(const(void*) ptr, ulong size, ulong nmemb, shared(_IO_FILE)* stream)') * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * Building type: nothrow @nogc @trusted ulong(const(void*) ptr, ulong size, ulong nmemb, shared(_IO_FILE)* stream) * * * * * * * * * * * * * * * * DtoFunctionType(nothrow @nogc @trusted ulong(const(void*) ptr, ulong size, ulong nmemb, shared(_IO_FILE)* stream)) * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * Final function type: i64 (%core.stdc.stdio._IO_FILE*, i64, i64, i8*) * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * Function type: nothrow @nogc @trusted ulong(const(void*) ptr, ulong size, ulong nmemb, shared(_IO_FILE)* stream) * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * CastExp::toElem: cast(const(void*))cast(char*)writeme @ const(void*) * * * * * * * * * * * * * * * * * CastExp::toElem: cast(char*)writeme @ char* * * * * * * * * * * * * * * * * * * VarExp::toElem: writeme @ char[] * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('writeme' of type 'char[]') * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * type: char[] * * * * * * * * * * * * * * * * * * Casting from 'char[]' to 'char*' * * * * * * * * * * * * * * * * * * * DtoCastArray * * * * * * * * * * * * * * * * * * * * from array or sarray * * * * * * * * * * * * * * * * * * * * to pointer * * * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * Casting from 'char*' to 'const(void*)' * * * * * * * * * * * * * * * * * * src: %.ptr = load i8*, i8** %4 * * * * * * * * * * * * * * * * * * to type: i8* * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * ArrayLengthExp::toElem: writeme.length @ ulong * * * * * * * * * * * * * * * * * VarExp::toElem: writeme @ char[] * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('writeme' of type 'char[]') * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * type: char[] * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * DotVarExp::toElem: this.fps_ @ shared(_IO_FILE)* * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ LockingTextWriter * * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * * Indexing aggregate field std.stdio.File.LockingTextWriter.fps_: * * * * * * * * * * * * * * * * * * Value: %6 = getelementptr %std.stdio.File.LockingTextWriter, %std.stdio.File.LockingTextWriter* %.this_arg, i32 0, i32 0 * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * lhs: %result = alloca i64, align 8 * * * * * * * * * * * * * * rhs: %8 = call i64 @_D3std5stdio4File17LockingTextWriter11__T3putTAaZ3putMFAaZ13trustedFwriteFNbNiNexPvmmPOS4core4stdc5stdio8_IO_FILEZm(%core.stdc.stdio._IO_FILE* %7, i64 %.len, i64 1, i8* %.ptr) * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(2437) * * * * * * * * * EqualExp::toElem: result != writeme.length @ bool * * * * * * * * * * VarExp::toElem: result @ ulong * * * * * * * * * * * DtoSymbolAddress ('result' of type 'ulong') * * * * * * * * * * * * a normal variable * * * * * * * * * * ArrayLengthExp::toElem: writeme.length @ ulong * * * * * * * * * * * VarExp::toElem: writeme @ char[] * * * * * * * * * * * * DtoSymbolAddress ('writeme' of type 'char[]') * * * * * * * * * * * * * function param * * * * * * * * * * * * * type: char[] * * * * * * * * * * * DtoArrayLen * * * * * * * * * * integral or pointer or interface * * * * * * * * * * lv: %10 = load i64, i64* %result * * * * * * * * * * rv: %.len1 = load i64, i64* %9 * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(2437) * * * * * * * * * * CallExp::toElem: errnoEnforce(0, delegate string() => null) @ int * * * * * * * * * * * VarExp::toElem: errnoEnforce @ @safe int(int value, lazy string msg = null) * * * * * * * * * * * * DtoSymbolAddress ('errnoEnforce' of type '@safe int(int value, lazy string msg = null)') * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * Function type: @safe int(int value, lazy string msg = null) * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * IntegerExp::toElem: 0 @ int * * * * * * * * * * * * * * IntegerExp::toConstElem: 0 @ int * * * * * * * * * * * * * * * value = i32 0 * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * FuncExp::toElem: __dgliteral3 @ string delegate() pure nothrow @nogc @safe * * * * * * * * * * * * * * nested * * * * * * * * * * * * * * kind = delegate * * * * * * * * * * * * * * DtoDefineFunction(std.stdio.File.LockingTextWriter.put!(char[]).put.__dgliteral3): /usr/include/dlang/ldc/std/exception.d(547) * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe string()) * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * Final function type: { i64, i8* } (i8*) * * * * * * * * * * * * * * * DtoResolveFunction(std.stdio.File.LockingTextWriter.put!(char[]).put.__dgliteral3): /usr/include/dlang/ldc/std/exception.d(547) * * * * * * * * * * * * * * * * DtoDeclareFunction(std.stdio.File.LockingTextWriter.put!(char[]).put.__dgliteral3): /usr/include/dlang/ldc/std/exception.d(547) * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe string()) * * * * * * * * * * * * * * * * * func = declare { i64, i8* } @_D3std5stdio4File17LockingTextWriter11__T3putTAaZ3putMFAaZ12__dgliteral3MFNaNbNiNfZAya(i8*) * * * * * * * * * * * * * * * Doing function body for: __dgliteral3 * * * * * * * * * * * * * * * DtoCreateNestedContext for __dgliteral3 * * * * * * * * * * * * * * * * DtoCreateNestedContextType for std.stdio.File.LockingTextWriter.put!(char[]).put.__dgliteral3 * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for std.stdio.File.LockingTextWriter.put!(char[]).put * * * * * * * * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * * * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/exception.d(547) * * * * * * * * * * * * * * * * * NullExp::toElem(type=string): null * * * * * * * * * * * * * * * * * * NullExp::toConstElem(type=string): null * * * * * * * * * * * * * * * * * return value is '0x120dd7b0' * * * * * * * * * * * * * * Building type: string delegate() pure nothrow @nogc @safe * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe string()) * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * Final function type: { i64, i8* } (i8*) * * * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(2438) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(2443) * * * * * * CallExp::toElem: _aApplycd1(writeme, delegate int(ref dchar __applyArg0) => 0) @ int * * * * * * * VarExp::toElem: _aApplycd1 @ extern (C) int(in string, int delegate(void*)) * * * * * * * * DtoSymbolAddress ('_aApplycd1' of type 'extern (C) int(in string, int delegate(void*))') * * * * * * * * * FuncDeclaration * * * * * * * DtoCallFunction() * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (0) * * * * * * * * Function type: extern (C) int(in string, int delegate(void*)) * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: writeme @ char[] * * * * * * * * * * DtoSymbolAddress ('writeme' of type 'char[]') * * * * * * * * * * * function param * * * * * * * * * * * type: char[] * * * * * * * * DtoArgument * * * * * * * * * FuncExp::toElem: __foreachbody4 @ int delegate(void*) * * * * * * * * * * nested * * * * * * * * * * kind = delegate * * * * * * * * * * DtoDefineFunction(std.stdio.File.LockingTextWriter.put!(char[]).put.__foreachbody4): /usr/include/dlang/ldc/std/stdio.d(2443) * * * * * * * * * * * DtoFunctionType(nothrow @nogc @safe int(ref dchar __applyArg0)) * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * Final function type: i32 (i8*, i32*) * * * * * * * * * * * DtoResolveFunction(std.stdio.File.LockingTextWriter.put!(char[]).put.__foreachbody4): /usr/include/dlang/ldc/std/stdio.d(2443) * * * * * * * * * * * * DtoDeclareFunction(std.stdio.File.LockingTextWriter.put!(char[]).put.__foreachbody4): /usr/include/dlang/ldc/std/stdio.d(2443) * * * * * * * * * * * * * DtoFunctionType(nothrow @nogc @safe int(ref dchar __applyArg0)) * * * * * * * * * * * * * func = declare i32 @_D3std5stdio4File17LockingTextWriter11__T3putTAaZ3putMFAaZ14__foreachbody4MFNbNiNfKwZi(i8*, i32*) * * * * * * * * * * * Doing function body for: __foreachbody4 * * * * * * * * * * * DtoCreateNestedContext for __foreachbody4 * * * * * * * * * * * * DtoCreateNestedContextType for std.stdio.File.LockingTextWriter.put!(char[]).put.__foreachbody4 * * * * * * * * * * * * * DtoCreateNestedContextType for std.stdio.File.LockingTextWriter.put!(char[]).put * * * * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(2443) * * * * * * * * * * * * * * ExpStatement::toIR(): * * * * * * * * * * * * * * * DeclarationExp::toElem: dchar c = __applyArg0; | T=void * * * * * * * * * * * * * * * * DtoDeclarationExp: c * * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = dchar) * * * * * * * * * * * * * * * * * * llvm value for decl: %c = alloca i32, align 4 * * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * * AssignExp::toElem: c = __applyArg0 | (dchar)(dchar = dchar) * * * * * * * * * * * * * * * * * * * VarExp::toElem: c @ dchar * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('c' of type 'dchar') * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * VarExp::toElem: __applyArg0 @ dchar * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__applyArg0' of type 'dchar') * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * type: dchar * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * lhs: %c = alloca i32, align 4 * * * * * * * * * * * * * * * * * * * * rhs: %1 = load i32, i32* %__applyArg0_arg * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(2445) * * * * * * * * * * * * * * * CallExp::toElem: this.put(c) @ void * * * * * * * * * * * * * * * * DotVarExp::toElem: this.put @ nothrow @nogc @safe void(dchar c) * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ LockingTextWriter * * * * * * * * * * * * * * * * * * nested this exp * * * * * * * * * * * * * * * * * * DtoNestedVariable for this @ /usr/include/dlang/ldc/std/stdio.d(2445) * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for std.stdio.File.LockingTextWriter.put!(char[]).put * * * * * * * * * * * * * * * * * * * Context: %3 = bitcast i8* %2 to %nest.put.23* * * * * * * * * * * * * * * * * * * * of type: %nest.put.23 = type { %std.stdio.File.LockingTextWriter* } * * * * * * * * * * * * * * * * * * * Variable: this * * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * * Function: __foreachbody4 * * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * * Addr: %this = getelementptr %nest.put.23, %nest.put.23* %3, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * of type: %std.stdio.File.LockingTextWriter** * * * * * * * * * * * * * * * * * * * Was byref, now: %4 = load %std.stdio.File.LockingTextWriter*, %std.stdio.File.LockingTextWriter** %this, align 8 * * * * * * * * * * * * * * * * * * * of type: %std.stdio.File.LockingTextWriter* * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * %4 = load %std.stdio.File.LockingTextWriter*, %std.stdio.File.LockingTextWriter** %this, align 8 * * * * * * * * * * * * * * * * * Function type: nothrow @nogc @safe void(dchar c) * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * VarExp::toElem: c @ dchar * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('c' of type 'dchar') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * ReturnStatement::toIR(): * * * * * * * * * * * * * * IntegerExp::toElem: 0 @ int * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0 @ int * * * * * * * * * * * * * * * * value = i32 0 * * * * * * * * * * * * * * return value is '0x120e1350' * * * * * * * * * * Building type: int delegate(void*) * * * * * * * * * * * DtoFunctionType(int(void*)) * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * Final function type: i32 (i8*, i8*) * TemplateInstance::codegen: 'std.stdio.File.LockingTextWriter.put!(const(char)[])' * * DtoDefineFunction(std.stdio.File.LockingTextWriter.put!(const(char)[]).put): /usr/include/dlang/ldc/std/stdio.d(2416) * * * Doing function body for: put * * * DtoCreateNestedContext for put * * * * DtoCreateNestedContextType for std.stdio.File.LockingTextWriter.put!(const(char)[]).put * * * * * has nested frame * * * * * Function put has depth 0 * * * * * Nested var 'this' of type %std.stdio.File.LockingTextWriter* * * * * * frameType = %nest.put.24 = type { %std.stdio.File.LockingTextWriter* } * * * * nested param: this * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(2420) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(2423) * * * * * * DeclarationExp::toElem: alias C = const(char); | T=void * * * * * * * DtoDeclarationExp: C * * * * * * * * Ignoring Symbol: alias * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(2427) * * * * * * CmpExp::toElem: this.orientation_ <= 0 @ bool * * * * * * * DotVarExp::toElem: this.orientation_ @ int * * * * * * * * ThisExp::toElem: this @ LockingTextWriter * * * * * * * * * normal this exp * * * * * * * * Indexing aggregate field std.stdio.File.LockingTextWriter.orientation_: * * * * * * * * * Value: %1 = getelementptr %std.stdio.File.LockingTextWriter, %std.stdio.File.LockingTextWriter* %.this_arg, i32 0, i32 2 * * * * * * * IntegerExp::toElem: 0 @ int * * * * * * * * IntegerExp::toConstElem: 0 @ int * * * * * * * * * value = i32 0 * * * * * * * type 1: %2 = load i32, i32* %1 * * * * * * * type 2: i32 0 * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(2428) * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(2428) * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(2431) * * * * * * * * * DeclarationExp::toElem: auto static nothrow @nogc @trusted ulong trustedFwrite(const(void*) ptr, ulong size, ulong nmemb, shared(_IO_FILE)* stream) { return fwrite(ptr, size, nmemb, stream); } | T=void * * * * * * * * * * DtoDeclarationExp: trustedFwrite * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * DtoDefineFunction(std.stdio.File.LockingTextWriter.put!(const(char)[]).put.trustedFwrite): /usr/include/dlang/ldc/std/stdio.d(2431) * * * * * * * * * * * * DtoFunctionType(nothrow @nogc @trusted ulong(const(void*) ptr, ulong size, ulong nmemb, shared(_IO_FILE)* stream)) * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * Final function type: i64 (%core.stdc.stdio._IO_FILE*, i64, i64, i8*) * * * * * * * * * * * * DtoResolveFunction(std.stdio.File.LockingTextWriter.put!(const(char)[]).put.trustedFwrite): /usr/include/dlang/ldc/std/stdio.d(2431) * * * * * * * * * * * * * DtoDeclareFunction(std.stdio.File.LockingTextWriter.put!(const(char)[]).put.trustedFwrite): /usr/include/dlang/ldc/std/stdio.d(2431) * * * * * * * * * * * * * * DtoFunctionType(nothrow @nogc @trusted ulong(const(void*) ptr, ulong size, ulong nmemb, shared(_IO_FILE)* stream)) * * * * * * * * * * * * * * func = declare i64 @_D3std5stdio4File17LockingTextWriter12__T3putTAxaZ3putMFAxaZ13trustedFwriteFNbNiNexPvmmPOS4core4stdc5stdio8_IO_FILEZm(%core.stdc.stdio._IO_FILE*, i64, i64, i8*) * * * * * * * * * * * * Doing function body for: trustedFwrite * * * * * * * * * * * * DtoCreateNestedContext for trustedFwrite * * * * * * * * * * * * * DtoCreateNestedContextType for std.stdio.File.LockingTextWriter.put!(const(char)[]).put.trustedFwrite * * * * * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(2433) * * * * * * * * * * * * * * CallExp::toElem: fwrite(ptr, size, nmemb, stream) @ ulong * * * * * * * * * * * * * * * VarExp::toElem: fwrite @ nothrow @nogc @system extern (C) ulong(const(void*) ptr, ulong size, ulong nmemb, shared(_IO_FILE)* stream) * * * * * * * * * * * * * * * * DtoSymbolAddress ('fwrite' of type 'nothrow @nogc @system extern (C) ulong(const(void*) ptr, ulong size, ulong nmemb, shared(_IO_FILE)* stream)') * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * Function type: nothrow @nogc @system extern (C) ulong(const(void*) ptr, ulong size, ulong nmemb, shared(_IO_FILE)* stream) * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * VarExp::toElem: ptr @ const(void*) * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('ptr' of type 'const(void*)') * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * type: const(void*) * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * VarExp::toElem: size @ ulong * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('size' of type 'ulong') * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * type: ulong * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * VarExp::toElem: nmemb @ ulong * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('nmemb' of type 'ulong') * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * type: ulong * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * VarExp::toElem: stream @ shared(_IO_FILE)* * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('stream' of type 'shared(_IO_FILE)*') * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * type: shared(_IO_FILE)* * * * * * * * * * * * * * * return value is '0x12c4c678' * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(2435) * * * * * * * * * DeclarationExp::toElem: ulong result = trustedFwrite(cast(const(void*))cast(const(char)*)writeme, 1LU, writeme.length, this.fps_); | T=void * * * * * * * * * * DtoDeclarationExp: result * * * * * * * * * * * VarDeclaration * * * * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * * * * llvm value for decl: %result = alloca i64, align 8 * * * * * * * * * * * * expression initializer * * * * * * * * * * * * AssignExp::toElem: result = trustedFwrite(cast(const(void*))cast(const(char)*)writeme, 1LU, writeme.length, this.fps_) | (ulong)(ulong = ulong) * * * * * * * * * * * * * VarExp::toElem: result @ ulong * * * * * * * * * * * * * * DtoSymbolAddress ('result' of type 'ulong') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * CallExp::toElem: trustedFwrite(cast(const(void*))cast(const(char)*)writeme, 1LU, writeme.length, this.fps_) @ ulong * * * * * * * * * * * * * * VarExp::toElem: trustedFwrite @ nothrow @nogc @trusted ulong(const(void*) ptr, ulong size, ulong nmemb, shared(_IO_FILE)* stream) * * * * * * * * * * * * * * * DtoSymbolAddress ('trustedFwrite' of type 'nothrow @nogc @trusted ulong(const(void*) ptr, ulong size, ulong nmemb, shared(_IO_FILE)* stream)') * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * Building type: nothrow @nogc @trusted ulong(const(void*) ptr, ulong size, ulong nmemb, shared(_IO_FILE)* stream) * * * * * * * * * * * * * * * * DtoFunctionType(nothrow @nogc @trusted ulong(const(void*) ptr, ulong size, ulong nmemb, shared(_IO_FILE)* stream)) * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * * Final function type: i64 (%core.stdc.stdio._IO_FILE*, i64, i64, i8*) * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * Function type: nothrow @nogc @trusted ulong(const(void*) ptr, ulong size, ulong nmemb, shared(_IO_FILE)* stream) * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * CastExp::toElem: cast(const(void*))cast(const(char)*)writeme @ const(void*) * * * * * * * * * * * * * * * * * CastExp::toElem: cast(const(char)*)writeme @ const(char)* * * * * * * * * * * * * * * * * * * VarExp::toElem: writeme @ const(char)[] * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('writeme' of type 'const(char)[]') * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * type: const(char)[] * * * * * * * * * * * * * * * * * * Casting from 'const(char)[]' to 'const(char)*' * * * * * * * * * * * * * * * * * * * DtoCastArray * * * * * * * * * * * * * * * * * * * * from array or sarray * * * * * * * * * * * * * * * * * * * * to pointer * * * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * Casting from 'const(char)*' to 'const(void*)' * * * * * * * * * * * * * * * * * * src: %.ptr = load i8*, i8** %4 * * * * * * * * * * * * * * * * * * to type: i8* * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * ArrayLengthExp::toElem: writeme.length @ ulong * * * * * * * * * * * * * * * * * VarExp::toElem: writeme @ const(char)[] * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('writeme' of type 'const(char)[]') * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * type: const(char)[] * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * DotVarExp::toElem: this.fps_ @ shared(_IO_FILE)* * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ LockingTextWriter * * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * * Indexing aggregate field std.stdio.File.LockingTextWriter.fps_: * * * * * * * * * * * * * * * * * * Value: %6 = getelementptr %std.stdio.File.LockingTextWriter, %std.stdio.File.LockingTextWriter* %.this_arg, i32 0, i32 0 * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * lhs: %result = alloca i64, align 8 * * * * * * * * * * * * * * rhs: %8 = call i64 @_D3std5stdio4File17LockingTextWriter12__T3putTAxaZ3putMFAxaZ13trustedFwriteFNbNiNexPvmmPOS4core4stdc5stdio8_IO_FILEZm(%core.stdc.stdio._IO_FILE* %7, i64 %.len, i64 1, i8* %.ptr) * * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(2437) * * * * * * * * * EqualExp::toElem: result != writeme.length @ bool * * * * * * * * * * VarExp::toElem: result @ ulong * * * * * * * * * * * DtoSymbolAddress ('result' of type 'ulong') * * * * * * * * * * * * a normal variable * * * * * * * * * * ArrayLengthExp::toElem: writeme.length @ ulong * * * * * * * * * * * VarExp::toElem: writeme @ const(char)[] * * * * * * * * * * * * DtoSymbolAddress ('writeme' of type 'const(char)[]') * * * * * * * * * * * * * function param * * * * * * * * * * * * * type: const(char)[] * * * * * * * * * * * DtoArrayLen * * * * * * * * * * integral or pointer or interface * * * * * * * * * * lv: %10 = load i64, i64* %result * * * * * * * * * * rv: %.len1 = load i64, i64* %9 * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(2437) * * * * * * * * * * CallExp::toElem: errnoEnforce(0, delegate string() => null) @ int * * * * * * * * * * * VarExp::toElem: errnoEnforce @ @safe int(int value, lazy string msg = null) * * * * * * * * * * * * DtoSymbolAddress ('errnoEnforce' of type '@safe int(int value, lazy string msg = null)') * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * Function type: @safe int(int value, lazy string msg = null) * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * IntegerExp::toElem: 0 @ int * * * * * * * * * * * * * * IntegerExp::toConstElem: 0 @ int * * * * * * * * * * * * * * * value = i32 0 * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * FuncExp::toElem: __dgliteral3 @ string delegate() pure nothrow @nogc @safe * * * * * * * * * * * * * * nested * * * * * * * * * * * * * * kind = delegate * * * * * * * * * * * * * * DtoDefineFunction(std.stdio.File.LockingTextWriter.put!(const(char)[]).put.__dgliteral3): /usr/include/dlang/ldc/std/exception.d(547) * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe string()) * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * Final function type: { i64, i8* } (i8*) * * * * * * * * * * * * * * * DtoResolveFunction(std.stdio.File.LockingTextWriter.put!(const(char)[]).put.__dgliteral3): /usr/include/dlang/ldc/std/exception.d(547) * * * * * * * * * * * * * * * * DtoDeclareFunction(std.stdio.File.LockingTextWriter.put!(const(char)[]).put.__dgliteral3): /usr/include/dlang/ldc/std/exception.d(547) * * * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe string()) * * * * * * * * * * * * * * * * * func = declare { i64, i8* } @_D3std5stdio4File17LockingTextWriter12__T3putTAxaZ3putMFAxaZ12__dgliteral3MFNaNbNiNfZAya(i8*) * * * * * * * * * * * * * * * Doing function body for: __dgliteral3 * * * * * * * * * * * * * * * DtoCreateNestedContext for __dgliteral3 * * * * * * * * * * * * * * * * DtoCreateNestedContextType for std.stdio.File.LockingTextWriter.put!(const(char)[]).put.__dgliteral3 * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for std.stdio.File.LockingTextWriter.put!(const(char)[]).put * * * * * * * * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * * * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/exception.d(547) * * * * * * * * * * * * * * * * * NullExp::toElem(type=string): null * * * * * * * * * * * * * * * * * * NullExp::toConstElem(type=string): null * * * * * * * * * * * * * * * * * return value is '0x120dd7b0' * * * * * * * * * * * * * * Building type: string delegate() pure nothrow @nogc @safe * * * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe string()) * * * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * * * Final function type: { i64, i8* } (i8*) * * * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(2438) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(2443) * * * * * * CallExp::toElem: _aApplycd1(writeme, delegate int(ref dchar __applyArg0) => 0) @ int * * * * * * * VarExp::toElem: _aApplycd1 @ extern (C) int(in string, int delegate(void*)) * * * * * * * * DtoSymbolAddress ('_aApplycd1' of type 'extern (C) int(in string, int delegate(void*))') * * * * * * * * * FuncDeclaration * * * * * * * DtoCallFunction() * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (0) * * * * * * * * Function type: extern (C) int(in string, int delegate(void*)) * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: writeme @ const(char)[] * * * * * * * * * * DtoSymbolAddress ('writeme' of type 'const(char)[]') * * * * * * * * * * * function param * * * * * * * * * * * type: const(char)[] * * * * * * * * DtoArgument * * * * * * * * * FuncExp::toElem: __foreachbody4 @ int delegate(void*) * * * * * * * * * * nested * * * * * * * * * * kind = delegate * * * * * * * * * * DtoDefineFunction(std.stdio.File.LockingTextWriter.put!(const(char)[]).put.__foreachbody4): /usr/include/dlang/ldc/std/stdio.d(2443) * * * * * * * * * * * DtoFunctionType(nothrow @nogc @safe int(ref dchar __applyArg0)) * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * Final function type: i32 (i8*, i32*) * * * * * * * * * * * DtoResolveFunction(std.stdio.File.LockingTextWriter.put!(const(char)[]).put.__foreachbody4): /usr/include/dlang/ldc/std/stdio.d(2443) * * * * * * * * * * * * DtoDeclareFunction(std.stdio.File.LockingTextWriter.put!(const(char)[]).put.__foreachbody4): /usr/include/dlang/ldc/std/stdio.d(2443) * * * * * * * * * * * * * DtoFunctionType(nothrow @nogc @safe int(ref dchar __applyArg0)) * * * * * * * * * * * * * func = declare i32 @_D3std5stdio4File17LockingTextWriter12__T3putTAxaZ3putMFAxaZ14__foreachbody4MFNbNiNfKwZi(i8*, i32*) * * * * * * * * * * * Doing function body for: __foreachbody4 * * * * * * * * * * * DtoCreateNestedContext for __foreachbody4 * * * * * * * * * * * * DtoCreateNestedContextType for std.stdio.File.LockingTextWriter.put!(const(char)[]).put.__foreachbody4 * * * * * * * * * * * * * DtoCreateNestedContextType for std.stdio.File.LockingTextWriter.put!(const(char)[]).put * * * * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(2443) * * * * * * * * * * * * * * ExpStatement::toIR(): * * * * * * * * * * * * * * * DeclarationExp::toElem: dchar c = __applyArg0; | T=void * * * * * * * * * * * * * * * * DtoDeclarationExp: c * * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = dchar) * * * * * * * * * * * * * * * * * * llvm value for decl: %c = alloca i32, align 4 * * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * * AssignExp::toElem: c = __applyArg0 | (dchar)(dchar = dchar) * * * * * * * * * * * * * * * * * * * VarExp::toElem: c @ dchar * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('c' of type 'dchar') * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * VarExp::toElem: __applyArg0 @ dchar * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__applyArg0' of type 'dchar') * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * type: dchar * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * lhs: %c = alloca i32, align 4 * * * * * * * * * * * * * * * * * * * * rhs: %1 = load i32, i32* %__applyArg0_arg * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(2445) * * * * * * * * * * * * * * * CallExp::toElem: this.put(c) @ void * * * * * * * * * * * * * * * * DotVarExp::toElem: this.put @ nothrow @nogc @safe void(dchar c) * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ LockingTextWriter * * * * * * * * * * * * * * * * * * nested this exp * * * * * * * * * * * * * * * * * * DtoNestedVariable for this @ /usr/include/dlang/ldc/std/stdio.d(2445) * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for std.stdio.File.LockingTextWriter.put!(const(char)[]).put * * * * * * * * * * * * * * * * * * * Context: %3 = bitcast i8* %2 to %nest.put.24* * * * * * * * * * * * * * * * * * * * of type: %nest.put.24 = type { %std.stdio.File.LockingTextWriter* } * * * * * * * * * * * * * * * * * * * Variable: this * * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * * Function: __foreachbody4 * * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * * Addr: %this = getelementptr %nest.put.24, %nest.put.24* %3, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * of type: %std.stdio.File.LockingTextWriter** * * * * * * * * * * * * * * * * * * * Was byref, now: %4 = load %std.stdio.File.LockingTextWriter*, %std.stdio.File.LockingTextWriter** %this, align 8 * * * * * * * * * * * * * * * * * * * of type: %std.stdio.File.LockingTextWriter* * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * %4 = load %std.stdio.File.LockingTextWriter*, %std.stdio.File.LockingTextWriter** %this, align 8 * * * * * * * * * * * * * * * * * Function type: nothrow @nogc @safe void(dchar c) * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * VarExp::toElem: c @ dchar * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('c' of type 'dchar') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * ReturnStatement::toIR(): * * * * * * * * * * * * * * IntegerExp::toElem: 0 @ int * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0 @ int * * * * * * * * * * * * * * * * value = i32 0 * * * * * * * * * * * * * * return value is '0x120e1350' * * * * * * * * * * Building type: int delegate(void*) * * * * * * * * * * * DtoFunctionType(int(void*)) * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * Final function type: i32 (i8*, i8*) * TemplateInstance::codegen: 'std.stdio.File.LockingTextWriter.put!(const(dchar))' * * DtoDefineFunction(std.stdio.File.LockingTextWriter.put!(const(dchar)).put): /usr/include/dlang/ldc/std/stdio.d(2452) * * * Doing function body for: put * * * DtoCreateNestedContext for put * * * * DtoCreateNestedContextType for std.stdio.File.LockingTextWriter.put!(const(dchar)).put * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(2453) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(2455) * * * * * * DeclarationExp::toElem: auto static nothrow @nogc @trusted int trustedFPUTC(int ch, _IO_FILE* h) { return fputc_unlocked(ch, h); } | T=void * * * * * * * DtoDeclarationExp: trustedFPUTC * * * * * * * * FuncDeclaration * * * * * * * * DtoDefineFunction(std.stdio.File.LockingTextWriter.put!(const(dchar)).put.trustedFPUTC): /usr/include/dlang/ldc/std/stdio.d(2455) * * * * * * * * * DtoFunctionType(nothrow @nogc @trusted int(int ch, _IO_FILE* h)) * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: i32 (%core.stdc.stdio._IO_FILE*, i32) * * * * * * * * * DtoResolveFunction(std.stdio.File.LockingTextWriter.put!(const(dchar)).put.trustedFPUTC): /usr/include/dlang/ldc/std/stdio.d(2455) * * * * * * * * * * DtoDeclareFunction(std.stdio.File.LockingTextWriter.put!(const(dchar)).put.trustedFPUTC): /usr/include/dlang/ldc/std/stdio.d(2455) * * * * * * * * * * * DtoFunctionType(nothrow @nogc @trusted int(int ch, _IO_FILE* h)) * * * * * * * * * * * func = declare i32 @_D3std5stdio4File17LockingTextWriter11__T3putTxwZ3putMFNfxwZ12trustedFPUTCFNbNiNeiPS4core4stdc5stdio8_IO_FILEZi(%core.stdc.stdio._IO_FILE*, i32) * * * * * * * * * Doing function body for: trustedFPUTC * * * * * * * * * DtoCreateNestedContext for trustedFPUTC * * * * * * * * * * DtoCreateNestedContextType for std.stdio.File.LockingTextWriter.put!(const(dchar)).put.trustedFPUTC * * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(2457) * * * * * * * * * * * CallExp::toElem: fputc_unlocked(ch, h) @ int * * * * * * * * * * * * VarExp::toElem: fputc_unlocked @ nothrow @nogc extern (C) int(int, _IO_FILE*) * * * * * * * * * * * * * DtoSymbolAddress ('fputc_unlocked' of type 'nothrow @nogc extern (C) int(int, _IO_FILE*)') * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * Function type: nothrow @nogc extern (C) int(int, _IO_FILE*) * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * VarExp::toElem: ch @ int * * * * * * * * * * * * * * * DtoSymbolAddress ('ch' of type 'int') * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * type: int * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * VarExp::toElem: h @ _IO_FILE* * * * * * * * * * * * * * * * DtoSymbolAddress ('h' of type '_IO_FILE*') * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * type: _IO_FILE* * * * * * * * * * * * return value is '0x12c573c8' * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(2459) * * * * * * DeclarationExp::toElem: auto static nothrow @nogc @trusted int trustedFPUTWC(dchar ch, _IO_FILE* h) { return fputwc_unlocked(ch, h); } | T=void * * * * * * * DtoDeclarationExp: trustedFPUTWC * * * * * * * * FuncDeclaration * * * * * * * * DtoDefineFunction(std.stdio.File.LockingTextWriter.put!(const(dchar)).put.trustedFPUTWC): /usr/include/dlang/ldc/std/stdio.d(2459) * * * * * * * * * DtoFunctionType(nothrow @nogc @trusted int(dchar ch, _IO_FILE* h)) * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: i32 (%core.stdc.stdio._IO_FILE*, i32) * * * * * * * * * DtoResolveFunction(std.stdio.File.LockingTextWriter.put!(const(dchar)).put.trustedFPUTWC): /usr/include/dlang/ldc/std/stdio.d(2459) * * * * * * * * * * DtoDeclareFunction(std.stdio.File.LockingTextWriter.put!(const(dchar)).put.trustedFPUTWC): /usr/include/dlang/ldc/std/stdio.d(2459) * * * * * * * * * * * DtoFunctionType(nothrow @nogc @trusted int(dchar ch, _IO_FILE* h)) * * * * * * * * * * * func = declare i32 @_D3std5stdio4File17LockingTextWriter11__T3putTxwZ3putMFNfxwZ13trustedFPUTWCFNbNiNewPS4core4stdc5stdio8_IO_FILEZi(%core.stdc.stdio._IO_FILE*, i32) * * * * * * * * * Doing function body for: trustedFPUTWC * * * * * * * * * DtoCreateNestedContext for trustedFPUTWC * * * * * * * * * * DtoCreateNestedContextType for std.stdio.File.LockingTextWriter.put!(const(dchar)).put.trustedFPUTWC * * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(2461) * * * * * * * * * * * CallExp::toElem: fputwc_unlocked(ch, h) @ int * * * * * * * * * * * * VarExp::toElem: fputwc_unlocked @ nothrow @nogc extern (C) int(dchar, _IO_FILE*) * * * * * * * * * * * * * DtoSymbolAddress ('fputwc_unlocked' of type 'nothrow @nogc extern (C) int(dchar, _IO_FILE*)') * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * Function type: nothrow @nogc extern (C) int(dchar, _IO_FILE*) * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * VarExp::toElem: ch @ dchar * * * * * * * * * * * * * * * DtoSymbolAddress ('ch' of type 'dchar') * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * type: dchar * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * VarExp::toElem: h @ _IO_FILE* * * * * * * * * * * * * * * * DtoSymbolAddress ('h' of type '_IO_FILE*') * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * type: _IO_FILE* * * * * * * * * * * * return value is '0x12c594c8' * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(2497) * * * * * * CmpExp::toElem: this.orientation_ <= 0 @ bool * * * * * * * DotVarExp::toElem: this.orientation_ @ int * * * * * * * * ThisExp::toElem: this @ LockingTextWriter * * * * * * * * * normal this exp * * * * * * * * Indexing aggregate field std.stdio.File.LockingTextWriter.orientation_: * * * * * * * * * Value: %1 = getelementptr %std.stdio.File.LockingTextWriter, %std.stdio.File.LockingTextWriter* %.this_arg, i32 0, i32 2 * * * * * * * IntegerExp::toElem: 0 @ int * * * * * * * * IntegerExp::toConstElem: 0 @ int * * * * * * * * * value = i32 0 * * * * * * * type 1: %2 = load i32, i32* %1 * * * * * * * type 2: i32 0 * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(2498) * * * * * * * IfStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(2499) * * * * * * * * CmpExp::toElem: cast(uint)c <= 127u @ bool * * * * * * * * * CastExp::toElem: cast(uint)c @ uint * * * * * * * * * * VarExp::toElem: c @ const(dchar) * * * * * * * * * * * DtoSymbolAddress ('c' of type 'const(dchar)') * * * * * * * * * * * * function param * * * * * * * * * * * * type: const(dchar) * * * * * * * * * * Casting from 'const(dchar)' to 'uint' * * * * * * * * * IntegerExp::toElem: 127u @ uint * * * * * * * * * * IntegerExp::toConstElem: 127u @ uint * * * * * * * * * * * value = i32 127 * * * * * * * * * type 1: %4 = load i32, i32* %c * * * * * * * * * type 2: i32 127 * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(2500) * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(2501) * * * * * * * * * * CallExp::toElem: trustedFPUTC(cast(int)c, this.handle_) @ int * * * * * * * * * * * VarExp::toElem: trustedFPUTC @ nothrow @nogc @trusted int(int ch, _IO_FILE* h) * * * * * * * * * * * * DtoSymbolAddress ('trustedFPUTC' of type 'nothrow @nogc @trusted int(int ch, _IO_FILE* h)') * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * Building type: nothrow @nogc @trusted int(int ch, _IO_FILE* h) * * * * * * * * * * * * * DtoFunctionType(nothrow @nogc @trusted int(int ch, _IO_FILE* h)) * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * Final function type: i32 (%core.stdc.stdio._IO_FILE*, i32) * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * Function type: nothrow @nogc @trusted int(int ch, _IO_FILE* h) * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * CastExp::toElem: cast(int)c @ int * * * * * * * * * * * * * * VarExp::toElem: c @ const(dchar) * * * * * * * * * * * * * * * DtoSymbolAddress ('c' of type 'const(dchar)') * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * type: const(dchar) * * * * * * * * * * * * * * Casting from 'const(dchar)' to 'int' * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * DotVarExp::toElem: this.handle_ @ _IO_FILE* * * * * * * * * * * * * * * ThisExp::toElem: this @ LockingTextWriter * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * Indexing aggregate field std.stdio.File.LockingTextWriter.handle_: * * * * * * * * * * * * * * * Value: %7 = getelementptr %std.stdio.File.LockingTextWriter, %std.stdio.File.LockingTextWriter* %.this_arg, i32 0, i32 1 * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(2504) * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(2504) * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(2505) * * * * * * * * * * * DeclarationExp::toElem: char[4] buf = void; | T=void * * * * * * * * * * * * DtoDeclarationExp: buf * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * DtoVarDeclaration(vdtype = char[4]) * * * * * * * * * * * * * * llvm value for decl: %buf = alloca [4 x i8], align 1 * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(2506) * * * * * * * * * * * DeclarationExp::toElem: char[] b = toUTF8(buf, c); | T=void * * * * * * * * * * * * DtoDeclarationExp: b * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * DtoVarDeclaration(vdtype = char[]) * * * * * * * * * * * * * * llvm value for decl: %b = alloca { i64, i8* }, align 8 * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * AssignExp::toElem: b = toUTF8(buf, c) | (char[])(char[] = char[]) * * * * * * * * * * * * * * * VarExp::toElem: b @ char[] * * * * * * * * * * * * * * * * DtoSymbolAddress ('b' of type 'char[]') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * CallExp::toElem: toUTF8(buf, c) @ char[] * * * * * * * * * * * * * * * * VarExp::toElem: toUTF8 @ pure nothrow @nogc @safe char[](return out char[4] buf, dchar c) * * * * * * * * * * * * * * * * * DtoSymbolAddress ('toUTF8' of type 'pure nothrow @nogc @safe char[](return out char[4] buf, dchar c)') * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * Function type: pure nothrow @nogc @safe char[](return out char[4] buf, dchar c) * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * VarExp::toElem: buf @ char[4] * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('buf' of type 'char[4]') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * VarExp::toElem: c @ dchar * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('c' of type 'const(dchar)') * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * type: const(dchar) * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * SetArray * * * * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(2507) * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(2507) * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(2507) * * * * * * * * * * * * * DeclarationExp::toElem: ulong __key3309 = 0LU; | T=void * * * * * * * * * * * * * * DtoDeclarationExp: __key3309 * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * * * * * * * * llvm value for decl: %__key3309 = alloca i64, align 8 * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * AssignExp::toElem: __key3309 = 0LU | (ulong)(ulong = ulong) * * * * * * * * * * * * * * * * * VarExp::toElem: __key3309 @ ulong * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__key3309' of type 'ulong') * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * * * * * * * * * * value = i64 0 * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * lhs: %__key3309 = alloca i64, align 8 * * * * * * * * * * * * * * * * * * rhs: i64 0 * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(2507) * * * * * * * * * * * * * DeclarationExp::toElem: ulong __limit3310 = b.length; | T=void * * * * * * * * * * * * * * DtoDeclarationExp: __limit3310 * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * * * * * * * * llvm value for decl: %__limit3310 = alloca i64, align 8 * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * AssignExp::toElem: __limit3310 = b.length | (ulong)(ulong = ulong) * * * * * * * * * * * * * * * * * VarExp::toElem: __limit3310 @ ulong * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__limit3310' of type 'ulong') * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * ArrayLengthExp::toElem: b.length @ ulong * * * * * * * * * * * * * * * * * * VarExp::toElem: b @ char[] * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('b' of type 'char[]') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * lhs: %__limit3310 = alloca i64, align 8 * * * * * * * * * * * * * * * * * * rhs: %.len4 = load i64, i64* %14 * * * * * * * * * * * * ForStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(2507) * * * * * * * * * * * * * CmpExp::toElem: __key3309 < __limit3310 @ bool * * * * * * * * * * * * * * VarExp::toElem: __key3309 @ ulong * * * * * * * * * * * * * * * DtoSymbolAddress ('__key3309' of type 'ulong') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * VarExp::toElem: __limit3310 @ ulong * * * * * * * * * * * * * * * DtoSymbolAddress ('__limit3310' of type 'ulong') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * type 1: %15 = load i64, i64* %__key3309 * * * * * * * * * * * * * * type 2: %16 = load i64, i64* %__limit3310 * * * * * * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(2507) * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(2507) * * * * * * * * * * * * * * * DeclarationExp::toElem: ulong i = __key3309; | T=void * * * * * * * * * * * * * * * * DtoDeclarationExp: i * * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = ulong) * * * * * * * * * * * * * * * * * * llvm value for decl: %i = alloca i64, align 8 * * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * * AssignExp::toElem: i = __key3309 | (ulong)(ulong = ulong) * * * * * * * * * * * * * * * * * * * VarExp::toElem: i @ ulong * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * VarExp::toElem: __key3309 @ ulong * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__key3309' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * * lhs: %i = alloca i64, align 8 * * * * * * * * * * * * * * * * * * * * rhs: %18 = load i64, i64* %__key3309 * * * * * * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(2508) * * * * * * * * * * * * * * * CallExp::toElem: trustedFPUTC(cast(int)b[i], this.handle_) @ int * * * * * * * * * * * * * * * * VarExp::toElem: trustedFPUTC @ nothrow @nogc @trusted int(int ch, _IO_FILE* h) * * * * * * * * * * * * * * * * * DtoSymbolAddress ('trustedFPUTC' of type 'nothrow @nogc @trusted int(int ch, _IO_FILE* h)') * * * * * * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * * * * * * Function type: nothrow @nogc @trusted int(int ch, _IO_FILE* h) * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * CastExp::toElem: cast(int)b[i] @ int * * * * * * * * * * * * * * * * * * * IndexExp::toElem: b[i] @ char * * * * * * * * * * * * * * * * * * * * VarExp::toElem: b @ char[] * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('b' of type 'char[]') * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * VarExp::toElem: i @ ulong * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('i' of type 'ulong') * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * * * * Casting from 'char' to 'int' * * * * * * * * * * * * * * * * * * * * cast to: i32 * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * DotVarExp::toElem: this.handle_ @ _IO_FILE* * * * * * * * * * * * * * * * * * * * ThisExp::toElem: this @ LockingTextWriter * * * * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * * * * Indexing aggregate field std.stdio.File.LockingTextWriter.handle_: * * * * * * * * * * * * * * * * * * * * Value: %26 = getelementptr %std.stdio.File.LockingTextWriter, %std.stdio.File.LockingTextWriter* %.this_arg, i32 0, i32 1 * * * * * * * * * * * * * AddAssignExp::toElem: __key3309 += 1LU @ ulong * * * * * * * * * * * * * * Caching l-value of __key3309 += 1LU => __key3309 * * * * * * * * * * * * * * * VarExp::toElem: __key3309 @ ulong * * * * * * * * * * * * * * * * DtoSymbolAddress ('__key3309' of type 'ulong') * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * AddExp::toElem: __key3309 + 1LU @ ulong * * * * * * * * * * * * * * * VarExp::toElem: __key3309 @ ulong * * * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * lhs: %__key3309 = alloca i64, align 8 * * * * * * * * * * * * * * * rhs: %22 = add i64 %21, 1 * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(2512) * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(2534) * * * * * * * * CallExp::toElem: trustedFPUTWC(c, this.handle_) @ int * * * * * * * * * VarExp::toElem: trustedFPUTWC @ nothrow @nogc @trusted int(dchar ch, _IO_FILE* h) * * * * * * * * * * DtoSymbolAddress ('trustedFPUTWC' of type 'nothrow @nogc @trusted int(dchar ch, _IO_FILE* h)') * * * * * * * * * * * FuncDeclaration * * * * * * * * * DtoCallFunction() * * * * * * * * * * Building type: nothrow @nogc @trusted int(dchar ch, _IO_FILE* h) * * * * * * * * * * * DtoFunctionType(nothrow @nogc @trusted int(dchar ch, _IO_FILE* h)) * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * Final function type: i32 (%core.stdc.stdio._IO_FILE*, i32) * * * * * * * * * * doing normal arguments * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * Function type: nothrow @nogc @trusted int(dchar ch, _IO_FILE* h) * * * * * * * * * * DtoArgument * * * * * * * * * * * VarExp::toElem: c @ dchar * * * * * * * * * * * * DtoSymbolAddress ('c' of type 'const(dchar)') * * * * * * * * * * * * * function param * * * * * * * * * * * * * type: const(dchar) * * * * * * * * * * DtoArgument * * * * * * * * * * * DotVarExp::toElem: this.handle_ @ _IO_FILE* * * * * * * * * * * * * ThisExp::toElem: this @ LockingTextWriter * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * Indexing aggregate field std.stdio.File.LockingTextWriter.handle_: * * * * * * * * * * * * * Value: %6 = getelementptr %std.stdio.File.LockingTextWriter, %std.stdio.File.LockingTextWriter* %.this_arg, i32 0, i32 1 * TemplateInstance::codegen: 'std.stdio.File.rawRead!ubyte' * * DtoDefineFunction(std.stdio.File.rawRead!ubyte.rawRead): /usr/include/dlang/ldc/std/stdio.d(811) * * * Doing function body for: rawRead * * * DtoCreateNestedContext for rawRead * * * * DtoCreateNestedContextType for std.stdio.File.rawRead!ubyte.rawRead * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(812) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(815) * * * * * * CallExp::toElem: enforce(buffer.length, delegate const(char)[]() => "rawRead must take a non-empty buffer", "/usr/include/dlang/ldc/std/stdio.d", 815LU) @ ulong * * * * * * * VarExp::toElem: enforce @ pure @safe ulong(ulong value, lazy const(char)[] msg = null, string file = __FILE__, ulong line = cast(ulong)__LINE__) * * * * * * * * DtoSymbolAddress ('enforce' of type 'pure @safe ulong(ulong value, lazy const(char)[] msg = null, string file = __FILE__, ulong line = cast(ulong)__LINE__)') * * * * * * * * * FuncDeclaration * * * * * * * DtoCallFunction() * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (0) * * * * * * * * Function type: pure @safe ulong(ulong value, lazy const(char)[] msg = null, string file = __FILE__, ulong line = cast(ulong)__LINE__) * * * * * * * * DtoArgument * * * * * * * * * ArrayLengthExp::toElem: buffer.length @ ulong * * * * * * * * * * VarExp::toElem: buffer @ ubyte[] * * * * * * * * * * * DtoSymbolAddress ('buffer' of type 'ubyte[]') * * * * * * * * * * * * function param * * * * * * * * * * * * type: ubyte[] * * * * * * * * * * DtoArrayLen * * * * * * * * DtoArgument * * * * * * * * * FuncExp::toElem: __dgliteral2 @ const(char)[] delegate() pure nothrow @nogc @safe * * * * * * * * * * nested * * * * * * * * * * kind = delegate * * * * * * * * * * DtoDefineFunction(std.stdio.File.rawRead!ubyte.rawRead.__dgliteral2): /usr/include/dlang/ldc/std/stdio.d(815) * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe const(char)[]()) * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * Final function type: { i64, i8* } (i8*) * * * * * * * * * * * DtoResolveFunction(std.stdio.File.rawRead!ubyte.rawRead.__dgliteral2): /usr/include/dlang/ldc/std/stdio.d(815) * * * * * * * * * * * * DtoDeclareFunction(std.stdio.File.rawRead!ubyte.rawRead.__dgliteral2): /usr/include/dlang/ldc/std/stdio.d(815) * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe const(char)[]()) * * * * * * * * * * * * * func = declare { i64, i8* } @_D3std5stdio4File14__T7rawReadThZ7rawReadMFAhZ12__dgliteral2MFNaNbNiNfZAxa(i8*) * * * * * * * * * * * Doing function body for: __dgliteral2 * * * * * * * * * * * DtoCreateNestedContext for __dgliteral2 * * * * * * * * * * * * DtoCreateNestedContextType for std.stdio.File.rawRead!ubyte.rawRead.__dgliteral2 * * * * * * * * * * * * * DtoCreateNestedContextType for std.stdio.File.rawRead!ubyte.rawRead * * * * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(815) * * * * * * * * * * * * * StringExp::toElem: "rawRead must take a non-empty buffer" @ const(char)[] * * * * * * * * * * * * * * type: [37 x i8] * * * * * * * * * * * * * * init: [37 x i8] c"rawRead must take a non-empty buffer\00" * * * * * * * * * * * * * return value is '0x12c645d0' * * * * * * * * * * Building type: const(char)[] delegate() pure nothrow @nogc @safe * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe const(char)[]()) * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * Final function type: { i64, i8* } (i8*) * * * * * * * * DtoArgument * * * * * * * * * StringExp::toElem: "/usr/include/dlang/ldc/std/stdio.d" @ string * * * * * * * * DtoArgument * * * * * * * * * IntegerExp::toElem: 815LU @ ulong * * * * * * * * * * IntegerExp::toConstElem: 815LU @ ulong * * * * * * * * * * * value = i64 815 * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(831) * * * * * * DeclarationExp::toElem: immutable immutable(ulong) result = fread(cast(void*)cast(ubyte*)buffer, 1LU, buffer.length, (*this._p).handle); | T=void * * * * * * * DtoDeclarationExp: result * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = immutable(ulong)) * * * * * * * * * llvm value for decl: %result = alloca i64, align 8 * * * * * * * * * expression initializer * * * * * * * * * AssignExp::toElem: result = fread(cast(void*)cast(ubyte*)buffer, 1LU, buffer.length, (*this._p).handle) | (immutable(ulong))(immutable(ulong) = immutable(ulong)) * * * * * * * * * * VarExp::toElem: result @ immutable(ulong) * * * * * * * * * * * DtoSymbolAddress ('result' of type 'immutable(ulong)') * * * * * * * * * * * * a normal variable * * * * * * * * * * CallExp::toElem: fread(cast(void*)cast(ubyte*)buffer, 1LU, buffer.length, (*this._p).handle) @ immutable(ulong) * * * * * * * * * * * VarExp::toElem: fread @ nothrow @nogc @system extern (C) ulong(void* ptr, ulong size, ulong nmemb, shared(_IO_FILE)* stream) * * * * * * * * * * * * DtoSymbolAddress ('fread' of type 'nothrow @nogc @system extern (C) ulong(void* ptr, ulong size, ulong nmemb, shared(_IO_FILE)* stream)') * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * * * DtoFunctionType(nothrow @nogc @system extern (C) ulong(void* ptr, ulong size, ulong nmemb, shared(_IO_FILE)* stream)) * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * Final function type: i64 (i8*, i64, i64, %core.stdc.stdio._IO_FILE*) * * * * * * * * * * * * * DtoResolveFunction(core.stdc.stdio.fread): /usr/include/dlang/ldc/core/stdc/stdio.d(855) * * * * * * * * * * * * * * DtoDeclareFunction(core.stdc.stdio.fread): /usr/include/dlang/ldc/core/stdc/stdio.d(855) * * * * * * * * * * * * * * * DtoFunctionType(nothrow @nogc @system extern (C) ulong(void* ptr, ulong size, ulong nmemb, shared(_IO_FILE)* stream)) * * * * * * * * * * * * * * * func = declare i64 @fread(i8*, i64, i64, %core.stdc.stdio._IO_FILE*) * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * Building type: nothrow @nogc @system extern (C) ulong(void* ptr, ulong size, ulong nmemb, shared(_IO_FILE)* stream) * * * * * * * * * * * * * DtoFunctionType(nothrow @nogc @system extern (C) ulong(void* ptr, ulong size, ulong nmemb, shared(_IO_FILE)* stream)) * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * Final function type: i64 (i8*, i64, i64, %core.stdc.stdio._IO_FILE*) * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * Function type: nothrow @nogc @system extern (C) ulong(void* ptr, ulong size, ulong nmemb, shared(_IO_FILE)* stream) * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * CastExp::toElem: cast(void*)cast(ubyte*)buffer @ void* * * * * * * * * * * * * * * CastExp::toElem: cast(ubyte*)buffer @ ubyte* * * * * * * * * * * * * * * * VarExp::toElem: buffer @ ubyte[] * * * * * * * * * * * * * * * * DtoSymbolAddress ('buffer' of type 'ubyte[]') * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * type: ubyte[] * * * * * * * * * * * * * * * Casting from 'ubyte[]' to 'ubyte*' * * * * * * * * * * * * * * * * DtoCastArray * * * * * * * * * * * * * * * * * from array or sarray * * * * * * * * * * * * * * * * * to pointer * * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * Casting from 'ubyte*' to 'void*' * * * * * * * * * * * * * * * src: %.ptr = load i8*, i8** %3 * * * * * * * * * * * * * * * to type: i8* * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * * * * value = i64 1 * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * ArrayLengthExp::toElem: buffer.length @ ulong * * * * * * * * * * * * * * VarExp::toElem: buffer @ ubyte[] * * * * * * * * * * * * * * * DtoSymbolAddress ('buffer' of type 'ubyte[]') * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * type: ubyte[] * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * DotVarExp::toElem: (*this._p).handle @ shared(_IO_FILE)* * * * * * * * * * * * * * * PtrExp::toElem: *this._p @ Impl * * * * * * * * * * * * * * * DotVarExp::toElem: this._p @ Impl* * * * * * * * * * * * * * * * * ThisExp::toElem: this @ File * * * * * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * * * * * Indexing aggregate field std.stdio.File._p: * * * * * * * * * * * * * * * * * Resolving struct type: File (/usr/include/dlang/ldc/std/stdio.d(426)) * * * * * * * * * * * * * * * * * Value: %5 = getelementptr %std.stdio.File, %std.stdio.File* %.this_arg, i32 0, i32 0 * * * * * * * * * * * * * * Indexing aggregate field std.stdio.File.Impl.handle: * * * * * * * * * * * * * * * Resolving struct type: Impl (/usr/include/dlang/ldc/std/stdio.d(431)) * * * * * * * * * * * * * * * Value: %7 = getelementptr %std.stdio.File.Impl, %std.stdio.File.Impl* %6, i32 0, i32 0 * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * DtoAssign() * * * * * * * * * * * lhs: %result = alloca i64, align 8 * * * * * * * * * * * rhs: %9 = call i64 @fread(i8* %.ptr, i64 1, i64 %.len1, %core.stdc.stdio._IO_FILE* %8) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(833) * * * * * * CallExp::toElem: errnoEnforce(!this.error(), delegate string() => null) @ bool * * * * * * * VarExp::toElem: errnoEnforce @ @safe bool(bool value, lazy string msg = null) * * * * * * * * DtoSymbolAddress ('errnoEnforce' of type '@safe bool(bool value, lazy string msg = null)') * * * * * * * * * FuncDeclaration * * * * * * * DtoCallFunction() * * * * * * * * Building type: @safe bool(bool value, lazy string msg = null) * * * * * * * * * DtoFunctionType(@safe bool(bool value, lazy string msg = null)) * * * * * * * * * * lazy param * * * * * * * * * * Building type: string delegate() * * * * * * * * * * * DtoFunctionType(string()) * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * Final function type: { i64, i8* } (i8*) * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: i1 ({ i8*, { i64, i8* } (i8*)* }, i1) * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (0) * * * * * * * * Function type: @safe bool(bool value, lazy string msg = null) * * * * * * * * DtoArgument * * * * * * * * * NotExp::toElem: !this.error() @ bool * * * * * * * * * * CallExp::toElem: this.error() @ bool * * * * * * * * * * * DotVarExp::toElem: this.error @ const pure nothrow @property @trusted bool() * * * * * * * * * * * * ThisExp::toElem: this @ File * * * * * * * * * * * * * normal this exp * * * * * * * * * * * * isMember = this is: File * * * * * * * * * * * * DtoFunctionType(const pure nothrow @property @trusted bool()) * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * Final function type: i1 (%std.stdio.File*) * * * * * * * * * * * * DtoResolveFunction(std.stdio.File.error): /usr/include/dlang/ldc/std/stdio.d(662) * * * * * * * * * * * * * DtoDeclareFunction(std.stdio.File.error): /usr/include/dlang/ldc/std/stdio.d(662) * * * * * * * * * * * * * * isMember = this is: File * * * * * * * * * * * * * * DtoFunctionType(const pure nothrow @property @trusted bool()) * * * * * * * * * * * * * * func = declare i1 @_D3std5stdio4File5errorMxFNaNbNdNeZb(%std.stdio.File*) * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * Building type: const pure nothrow @property @trusted bool() * * * * * * * * * * * * * DtoFunctionType(const pure nothrow @property @trusted bool()) * * * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * * * Final function type: i1 () * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * %std.stdio.File* %.this_arg * * * * * * * * * * * * Function type: const pure nothrow @property @trusted bool() * * * * * * * * DtoArgument * * * * * * * * * FuncExp::toElem: __dgliteral3 @ string delegate() pure nothrow @nogc @safe * * * * * * * * * * nested * * * * * * * * * * kind = delegate * * * * * * * * * * DtoDefineFunction(std.stdio.File.rawRead!ubyte.rawRead.__dgliteral3): /usr/include/dlang/ldc/std/exception.d(547) * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe string()) * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * Final function type: { i64, i8* } (i8*) * * * * * * * * * * * DtoResolveFunction(std.stdio.File.rawRead!ubyte.rawRead.__dgliteral3): /usr/include/dlang/ldc/std/exception.d(547) * * * * * * * * * * * * DtoDeclareFunction(std.stdio.File.rawRead!ubyte.rawRead.__dgliteral3): /usr/include/dlang/ldc/std/exception.d(547) * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe string()) * * * * * * * * * * * * * func = declare { i64, i8* } @_D3std5stdio4File14__T7rawReadThZ7rawReadMFAhZ12__dgliteral3MFNaNbNiNfZAya(i8*) * * * * * * * * * * * Doing function body for: __dgliteral3 * * * * * * * * * * * DtoCreateNestedContext for __dgliteral3 * * * * * * * * * * * * DtoCreateNestedContextType for std.stdio.File.rawRead!ubyte.rawRead.__dgliteral3 * * * * * * * * * * * * * DtoCreateNestedContextType for std.stdio.File.rawRead!ubyte.rawRead * * * * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/exception.d(547) * * * * * * * * * * * * * NullExp::toElem(type=string): null * * * * * * * * * * * * * * NullExp::toConstElem(type=string): null * * * * * * * * * * * * * return value is '0x120dd7b0' * * * * * * * * * * Building type: string delegate() pure nothrow @nogc @safe * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe string()) * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * Final function type: { i64, i8* } (i8*) * * * * * ReturnStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(834) * * * * * * CondExp::toElem: result ? buffer[0..result] : null @ ubyte[] * * * * * * * VarExp::toElem: result @ immutable(ulong) * * * * * * * * DtoSymbolAddress ('result' of type 'immutable(ulong)') * * * * * * * * * a normal variable * * * * * * * Casting from 'immutable(ulong)' to 'bool' * * * * * * * SliceExp::toElem: buffer[0..result] @ ubyte[] * * * * * * * * VarExp::toElem: buffer @ ubyte[] * * * * * * * * * DtoSymbolAddress ('buffer' of type 'ubyte[]') * * * * * * * * * * function param * * * * * * * * * * type: ubyte[] * * * * * * * * DtoArrayPtr * * * * * * * * IntegerExp::toElem: 0LU @ ulong * * * * * * * * * IntegerExp::toConstElem: 0LU @ ulong * * * * * * * * * * value = i64 0 * * * * * * * * VarExp::toElem: result @ ulong * * * * * * * * * DtoSymbolAddress ('result' of type 'immutable(ulong)') * * * * * * * * * * a normal variable * * * * * * * DtoAssign() * * * * * * * * DtoArrayAssign * * * * * * * * * DtoArrayPtr * * * * * * * * * DtoArrayLen * * * * * * * * * SetArray * * * * * * * NullExp::toElem(type=ubyte[]): null * * * * * * * * NullExp::toConstElem(type=ubyte[]): null * * * * * * return value is '0x135e6668' * TemplateInstance::codegen: 'std.stdio.File.writeln!(string, string)' * * DtoDefineFunction(std.stdio.File.writeln!(string, string).writeln): /usr/include/dlang/ldc/std/stdio.d(1338) * * * Doing function body for: writeln * * * DtoCreateNestedContext for writeln * * * * DtoCreateNestedContextType for std.stdio.File.writeln!(string, string).writeln * * * CompoundStatement::toIR(): * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(1340) * * * * * CallExp::toElem: this.write(_param_0, _param_1, '\x0a') @ void * * * * * * DotVarExp::toElem: this.write @ @safe void(string _param_0, string _param_1, char _param_2) * * * * * * * ThisExp::toElem: this @ File * * * * * * * * normal this exp * * * * * * * isMember = this is: File * * * * * * * DtoFunctionType(@safe void(string _param_0, string _param_1, char _param_2)) * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * Final function type: void (%std.stdio.File*, i8, { i64, i8* }, { i64, i8* }) * * * * * * * DtoResolveFunction(std.stdio.File.write!(string, string, char).write): /usr/include/dlang/ldc/std/stdio.d(1289) * * * * * * * * DtoDeclareFunction(std.stdio.File.write!(string, string, char).write): /usr/include/dlang/ldc/std/stdio.d(1289) * * * * * * * * * isMember = this is: File * * * * * * * * * DtoFunctionType(@safe void(string _param_0, string _param_1, char _param_2)) * * * * * * * * * func = declare void @_D3std5stdio4File20__T5writeTAyaTAyaTaZ5writeMFNfAyaAyaaZv(%std.stdio.File*, i8, { i64, i8* }, { i64, i8* }) * * * * * * DtoCallFunction() * * * * * * * Building type: @safe void(string _param_0, string _param_1, char _param_2) * * * * * * * * DtoFunctionType(@safe void(string _param_0, string _param_1, char _param_2)) * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * Final function type: void (i8, { i64, i8* }, { i64, i8* }) * * * * * * * doing normal arguments * * * * * * * Arguments so far: (1) * * * * * * * * %std.stdio.File* %.this_arg * * * * * * * Function type: @safe void(string _param_0, string _param_1, char _param_2) * * * * * * * DtoArgument * * * * * * * * VarExp::toElem: _param_0 @ string * * * * * * * * * DtoSymbolAddress ('_param_0' of type 'string') * * * * * * * * * * function param * * * * * * * * * * type: string * * * * * * * DtoArgument * * * * * * * * VarExp::toElem: _param_1 @ string * * * * * * * * * DtoSymbolAddress ('_param_1' of type 'string') * * * * * * * * * * function param * * * * * * * * * * type: string * * * * * * * DtoArgument * * * * * * * * IntegerExp::toElem: '\x0a' @ char * * * * * * * * * IntegerExp::toConstElem: '\x0a' @ char * * * * * * * * * * value = i8 10 * TemplateInstance::codegen: 'std.stdio.File.write!(string, string, char)' * * DtoDefineFunction(std.stdio.File.write!(string, string, char).write): /usr/include/dlang/ldc/std/stdio.d(1289) * * * Doing function body for: write * * * DtoCreateNestedContext for write * * * * DtoCreateNestedContextType for std.stdio.File.write!(string, string, char).write * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(1290) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(1292) * * * * * * DeclarationExp::toElem: LockingTextWriter w = this.lockingTextWriter(); | T=void * * * * * * * DtoDeclarationExp: w * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = LockingTextWriter) * * * * * * * * * DotVarExp::toElem: this.lockingTextWriter @ @safe LockingTextWriter() * * * * * * * * * * ThisExp::toElem: this @ File * * * * * * * * * * * normal this exp * * * * * * * * * DtoCallFunction() * * * * * * * * * * doing normal arguments * * * * * * * * * * Arguments so far: (2) * * * * * * * * * * * %w = alloca %std.stdio.File.LockingTextWriter, align 8 * * * * * * * * * * * %std.stdio.File* %.this_arg * * * * * * * * * * Function type: @safe LockingTextWriter() * * * * * TryFinallyStatement::toIR(): * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(1292) * * * * * * * CallExp::toElem: w.~this() @ void * * * * * * * * DotVarExp::toElem: w.~this @ @trusted void() * * * * * * * * * VarExp::toElem: w @ LockingTextWriter * * * * * * * * * * DtoSymbolAddress ('w' of type 'LockingTextWriter') * * * * * * * * * * * a normal variable * * * * * * * * DtoCallFunction() * * * * * * * * * doing normal arguments * * * * * * * * * Arguments so far: (1) * * * * * * * * * * %w = alloca %std.stdio.File.LockingTextWriter, align 8 * * * * * * * * * Function type: @trusted void() * * * * * * UnrolledLoopStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(1293) * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(1293) * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(1293) * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(1293) * * * * * * * * * * DeclarationExp::toElem: string arg = _param_0; | T=void * * * * * * * * * * * DtoDeclarationExp: arg * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * DtoVarDeclaration(vdtype = string) * * * * * * * * * * * * * llvm value for decl: %arg = alloca { i64, i8* }, align 8 * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * AssignExp::toElem: arg = _param_0 | (string)(string = string) * * * * * * * * * * * * * * VarExp::toElem: arg @ string * * * * * * * * * * * * * * * DtoSymbolAddress ('arg' of type 'string') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * VarExp::toElem: _param_0 @ string * * * * * * * * * * * * * * * DtoSymbolAddress ('_param_0' of type 'string') * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * type: string * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * SetArray * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(1295) * * * * * * * * * * DeclarationExp::toElem: alias A = string; | T=void * * * * * * * * * * * DtoDeclarationExp: A * * * * * * * * * * * * Ignoring Symbol: alias * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(1305) * * * * * * * * * * CallExp::toElem: put(w, arg) @ void * * * * * * * * * * * VarExp::toElem: put @ @safe void(ref LockingTextWriter r, string e) * * * * * * * * * * * * DtoSymbolAddress ('put' of type '@safe void(ref LockingTextWriter r, string e)') * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * Function type: @safe void(ref LockingTextWriter r, string e) * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * VarExp::toElem: w @ LockingTextWriter * * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'LockingTextWriter') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * VarExp::toElem: arg @ string * * * * * * * * * * * * * * DtoSymbolAddress ('arg' of type 'string') * * * * * * * * * * * * * * * a normal variable * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(1293) * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(1293) * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(1293) * * * * * * * * * * DeclarationExp::toElem: string arg = _param_1; | T=void * * * * * * * * * * * DtoDeclarationExp: arg * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * DtoVarDeclaration(vdtype = string) * * * * * * * * * * * * * llvm value for decl: %arg3 = alloca { i64, i8* }, align 8 * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * AssignExp::toElem: arg = _param_1 | (string)(string = string) * * * * * * * * * * * * * * VarExp::toElem: arg @ string * * * * * * * * * * * * * * * DtoSymbolAddress ('arg' of type 'string') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * VarExp::toElem: _param_1 @ string * * * * * * * * * * * * * * * DtoSymbolAddress ('_param_1' of type 'string') * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * type: string * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * DtoArrayAssign * * * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * * * * * * SetArray * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(1295) * * * * * * * * * * DeclarationExp::toElem: alias A = string; | T=void * * * * * * * * * * * DtoDeclarationExp: A * * * * * * * * * * * * Ignoring Symbol: alias * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(1305) * * * * * * * * * * CallExp::toElem: put(w, arg) @ void * * * * * * * * * * * VarExp::toElem: put @ @safe void(ref LockingTextWriter r, string e) * * * * * * * * * * * * DtoSymbolAddress ('put' of type '@safe void(ref LockingTextWriter r, string e)') * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * Function type: @safe void(ref LockingTextWriter r, string e) * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * VarExp::toElem: w @ LockingTextWriter * * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'LockingTextWriter') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * VarExp::toElem: arg @ string * * * * * * * * * * * * * * DtoSymbolAddress ('arg' of type 'string') * * * * * * * * * * * * * * * a normal variable * * * * * * * ScopeStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(1293) * * * * * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(1293) * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(1293) * * * * * * * * * * DeclarationExp::toElem: char arg = _param_2; | T=void * * * * * * * * * * * DtoDeclarationExp: arg * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * DtoVarDeclaration(vdtype = char) * * * * * * * * * * * * * llvm value for decl: %arg7 = alloca i8, align 1 * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * AssignExp::toElem: arg = _param_2 | (char)(char = char) * * * * * * * * * * * * * * VarExp::toElem: arg @ char * * * * * * * * * * * * * * * DtoSymbolAddress ('arg' of type 'char') * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * VarExp::toElem: _param_2 @ char * * * * * * * * * * * * * * * DtoSymbolAddress ('_param_2' of type 'char') * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * type: char * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * lhs: %arg7 = alloca i8, align 1 * * * * * * * * * * * * * * * rhs: %11 = load i8, i8* %_param_2 * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(1295) * * * * * * * * * * DeclarationExp::toElem: alias A = char; | T=void * * * * * * * * * * * DtoDeclarationExp: A * * * * * * * * * * * * Ignoring Symbol: alias * * * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(1320) * * * * * * * * * * CallExp::toElem: put(w, arg) @ void * * * * * * * * * * * VarExp::toElem: put @ nothrow @nogc @safe void(ref LockingTextWriter r, char e) * * * * * * * * * * * * DtoSymbolAddress ('put' of type 'nothrow @nogc @safe void(ref LockingTextWriter r, char e)') * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * * * Function type: nothrow @nogc @safe void(ref LockingTextWriter r, char e) * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * VarExp::toElem: w @ LockingTextWriter * * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'LockingTextWriter') * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * VarExp::toElem: arg @ char * * * * * * * * * * * * * * DtoSymbolAddress ('arg' of type 'char') * * * * * * * * * * * * * * * a normal variable * TemplateInstance::codegen: 'std.stdio.writefln!(string, string)' * * DtoDefineFunction(std.stdio.writefln!(string, string).writefln): /usr/include/dlang/ldc/std/stdio.d(3205) * * * Doing function body for: writefln * * * DtoCreateNestedContext for writefln * * * * DtoCreateNestedContextType for std.stdio.writefln!(string, string).writefln * * * CompoundStatement::toIR(): * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(3207) * * * * * CallExp::toElem: (File __tmpfordtor3359 = trustedStdout(); , __tmpfordtor3359).writefln(_param_0, _param_1) @ void * * * * * * DotVarExp::toElem: (File __tmpfordtor3359 = trustedStdout(); , __tmpfordtor3359).writefln @ @safe void(const(char[]) fmt, string _param_1) * * * * * * * CommaExp::toElem: File __tmpfordtor3359 = trustedStdout(); , __tmpfordtor3359 @ File * * * * * * * * DeclarationExp::toElem: File __tmpfordtor3359 = trustedStdout(); | T=void * * * * * * * * * DtoDeclarationExp: __tmpfordtor3359 * * * * * * * * * * VarDeclaration * * * * * * * * * * DtoVarDeclaration(vdtype = File) * * * * * * * * * * * VarExp::toElem: trustedStdout @ @property @trusted File() * * * * * * * * * * * * DtoSymbolAddress ('trustedStdout' of type '@property @trusted File()') * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * %__tmpfordtor3359 = alloca %std.stdio.File, align 8 * * * * * * * * * * * * Function type: @property @trusted File() * * * * * * * * * CallExp::toElem: __tmpfordtor3359.~this() @ void * * * * * * * * * * DotVarExp::toElem: __tmpfordtor3359.~this @ @safe void() * * * * * * * * * * * VarExp::toElem: __tmpfordtor3359 @ File * * * * * * * * * * * * DtoSymbolAddress ('__tmpfordtor3359' of type 'File') * * * * * * * * * * * * * a normal variable * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * doing normal arguments * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * %__tmpfordtor3359 = alloca %std.stdio.File, align 8 * * * * * * * * * * * Function type: @safe void() * * * * * * * * VarExp::toElem: __tmpfordtor3359 @ File * * * * * * * * * DtoSymbolAddress ('__tmpfordtor3359' of type 'File') * * * * * * * * * * a normal variable * * * * * * DtoCallFunction() * * * * * * * doing normal arguments * * * * * * * Arguments so far: (1) * * * * * * * * %__tmpfordtor3359 = alloca %std.stdio.File, align 8 * * * * * * * Function type: @safe void(const(char[]) fmt, string _param_1) * * * * * * * DtoArgument * * * * * * * * VarExp::toElem: _param_0 @ const(char[]) * * * * * * * * * DtoSymbolAddress ('_param_0' of type 'string') * * * * * * * * * * function param * * * * * * * * * * type: string * * * * * * * DtoArgument * * * * * * * * VarExp::toElem: _param_1 @ string * * * * * * * * * DtoSymbolAddress ('_param_1' of type 'string') * * * * * * * * * * function param * * * * * * * * * * type: string * TemplateInstance::codegen: 'std.stdio.writefln!(string, string, ulong)' * * DtoDefineFunction(std.stdio.writefln!(string, string, ulong).writefln): /usr/include/dlang/ldc/std/stdio.d(3205) * * * Doing function body for: writefln * * * DtoCreateNestedContext for writefln * * * * DtoCreateNestedContextType for std.stdio.writefln!(string, string, ulong).writefln * * * CompoundStatement::toIR(): * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(3207) * * * * * CallExp::toElem: (File __tmpfordtor3401 = trustedStdout(); , __tmpfordtor3401).writefln(_param_0, _param_1, _param_2) @ void * * * * * * DotVarExp::toElem: (File __tmpfordtor3401 = trustedStdout(); , __tmpfordtor3401).writefln @ @safe void(const(char[]) fmt, string _param_1, ulong _param_2) * * * * * * * CommaExp::toElem: File __tmpfordtor3401 = trustedStdout(); , __tmpfordtor3401 @ File * * * * * * * * DeclarationExp::toElem: File __tmpfordtor3401 = trustedStdout(); | T=void * * * * * * * * * DtoDeclarationExp: __tmpfordtor3401 * * * * * * * * * * VarDeclaration * * * * * * * * * * DtoVarDeclaration(vdtype = File) * * * * * * * * * * * VarExp::toElem: trustedStdout @ @property @trusted File() * * * * * * * * * * * * DtoSymbolAddress ('trustedStdout' of type '@property @trusted File()') * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * %__tmpfordtor3401 = alloca %std.stdio.File, align 8 * * * * * * * * * * * * Function type: @property @trusted File() * * * * * * * * * CallExp::toElem: __tmpfordtor3401.~this() @ void * * * * * * * * * * DotVarExp::toElem: __tmpfordtor3401.~this @ @safe void() * * * * * * * * * * * VarExp::toElem: __tmpfordtor3401 @ File * * * * * * * * * * * * DtoSymbolAddress ('__tmpfordtor3401' of type 'File') * * * * * * * * * * * * * a normal variable * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * doing normal arguments * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * %__tmpfordtor3401 = alloca %std.stdio.File, align 8 * * * * * * * * * * * Function type: @safe void() * * * * * * * * VarExp::toElem: __tmpfordtor3401 @ File * * * * * * * * * DtoSymbolAddress ('__tmpfordtor3401' of type 'File') * * * * * * * * * * a normal variable * * * * * * * isMember = this is: File * * * * * * * DtoFunctionType(@safe void(const(char[]) fmt, string _param_1, ulong _param_2)) * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * Final function type: void (%std.stdio.File*, i64, { i64, i8* }, { i64, i8* }) * * * * * * * DtoResolveFunction(std.stdio.File.writefln!(char, string, ulong).writefln): /usr/include/dlang/ldc/std/stdio.d(1364) * * * * * * * * DtoDeclareFunction(std.stdio.File.writefln!(char, string, ulong).writefln): /usr/include/dlang/ldc/std/stdio.d(1364) * * * * * * * * * isMember = this is: File * * * * * * * * * DtoFunctionType(@safe void(const(char[]) fmt, string _param_1, ulong _param_2)) * * * * * * * * * func = declare void @_D3std5stdio4File21__T8writeflnTaTAyaTmZ8writeflnMFNfxAaAyamZv(%std.stdio.File*, i64, { i64, i8* }, { i64, i8* }) * * * * * * DtoCallFunction() * * * * * * * Building type: @safe void(const(char[]) fmt, string _param_1, ulong _param_2) * * * * * * * * DtoFunctionType(@safe void(const(char[]) fmt, string _param_1, ulong _param_2)) * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * Final function type: void (i64, { i64, i8* }, { i64, i8* }) * * * * * * * doing normal arguments * * * * * * * Arguments so far: (1) * * * * * * * * %__tmpfordtor3401 = alloca %std.stdio.File, align 8 * * * * * * * Function type: @safe void(const(char[]) fmt, string _param_1, ulong _param_2) * * * * * * * DtoArgument * * * * * * * * VarExp::toElem: _param_0 @ const(char[]) * * * * * * * * * DtoSymbolAddress ('_param_0' of type 'string') * * * * * * * * * * function param * * * * * * * * * * type: string * * * * * * * DtoArgument * * * * * * * * VarExp::toElem: _param_1 @ string * * * * * * * * * DtoSymbolAddress ('_param_1' of type 'string') * * * * * * * * * * function param * * * * * * * * * * type: string * * * * * * * DtoArgument * * * * * * * * VarExp::toElem: _param_2 @ ulong * * * * * * * * * DtoSymbolAddress ('_param_2' of type 'ulong') * * * * * * * * * * function param * * * * * * * * * * type: ulong * TemplateInstance::codegen: 'std.stdio.File.writefln!(char, string, ulong)' * * DtoDefineFunction(std.stdio.File.writefln!(char, string, ulong).writefln): /usr/include/dlang/ldc/std/stdio.d(1364) * * * Doing function body for: writefln * * * DtoCreateNestedContext for writefln * * * * DtoCreateNestedContextType for std.stdio.File.writefln!(char, string, ulong).writefln * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(1365) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(1368) * * * * * * DeclarationExp::toElem: LockingTextWriter w = this.lockingTextWriter(); | T=void * * * * * * * DtoDeclarationExp: w * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = LockingTextWriter) * * * * * * * * * DotVarExp::toElem: this.lockingTextWriter @ @safe LockingTextWriter() * * * * * * * * * * ThisExp::toElem: this @ File * * * * * * * * * * * normal this exp * * * * * * * * * DtoCallFunction() * * * * * * * * * * doing normal arguments * * * * * * * * * * Arguments so far: (2) * * * * * * * * * * * %w = alloca %std.stdio.File.LockingTextWriter, align 8 * * * * * * * * * * * %std.stdio.File* %.this_arg * * * * * * * * * * Function type: @safe LockingTextWriter() * * * * * TryFinallyStatement::toIR(): * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(1368) * * * * * * * CallExp::toElem: w.~this() @ void * * * * * * * * DotVarExp::toElem: w.~this @ @trusted void() * * * * * * * * * VarExp::toElem: w @ LockingTextWriter * * * * * * * * * * DtoSymbolAddress ('w' of type 'LockingTextWriter') * * * * * * * * * * * a normal variable * * * * * * * * DtoCallFunction() * * * * * * * * * doing normal arguments * * * * * * * * * Arguments so far: (1) * * * * * * * * * * %w = alloca %std.stdio.File.LockingTextWriter, align 8 * * * * * * * * * Function type: @trusted void() * * * * * * CompoundStatement::toIR(): * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(1369) * * * * * * * * CallExp::toElem: formattedWrite((LockingTextWriter __copytmp3400 = (__copytmp3400 = w).__postblit(); , __copytmp3400), fmt, _param_1, _param_2) @ uint * * * * * * * * * VarExp::toElem: formattedWrite @ @safe uint(LockingTextWriter w, const(char[]) fmt, string _param_2, ulong _param_3) * * * * * * * * * * DtoSymbolAddress ('formattedWrite' of type '@safe uint(LockingTextWriter w, const(char[]) fmt, string _param_2, ulong _param_3)') * * * * * * * * * * * FuncDeclaration * * * * * * * * * DtoCallFunction() * * * * * * * * * * Building type: @safe uint(LockingTextWriter w, const(char[]) fmt, string _param_2, ulong _param_3) * * * * * * * * * * * DtoFunctionType(@safe uint(LockingTextWriter w, const(char[]) fmt, string _param_2, ulong _param_3)) * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * Final function type: i32 (i64, { i64, i8* }, { i64, i8* }, %std.stdio.File.LockingTextWriter*) * * * * * * * * * * doing normal arguments * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * Function type: @safe uint(LockingTextWriter w, const(char[]) fmt, string _param_2, ulong _param_3) * * * * * * * * * * DtoArgument * * * * * * * * * * * CommaExp::toElem: LockingTextWriter __copytmp3400 = (__copytmp3400 = w).__postblit(); , __copytmp3400 @ LockingTextWriter * * * * * * * * * * * * DeclarationExp::toElem: LockingTextWriter __copytmp3400 = (__copytmp3400 = w).__postblit(); | T=void * * * * * * * * * * * * * DtoDeclarationExp: __copytmp3400 * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = LockingTextWriter) * * * * * * * * * * * * * * * llvm value for decl: %__copytmp3400 = alloca %std.stdio.File.LockingTextWriter, align 8 * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * CallExp::toElem: (__copytmp3400 = w).__postblit() @ void * * * * * * * * * * * * * * * * DotVarExp::toElem: (__copytmp3400 = w).__postblit @ @trusted void() * * * * * * * * * * * * * * * * * AssignExp::toElem: __copytmp3400 = w | (LockingTextWriter)(LockingTextWriter = LockingTextWriter) * * * * * * * * * * * * * * * * * * VarExp::toElem: __copytmp3400 @ LockingTextWriter * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__copytmp3400' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * VarExp::toElem: w @ LockingTextWriter * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * %__copytmp3400 = alloca %std.stdio.File.LockingTextWriter, align 8 * * * * * * * * * * * * * * * * * Function type: @trusted void() * * * * * * * * * * * * VarExp::toElem: __copytmp3400 @ LockingTextWriter * * * * * * * * * * * * * DtoSymbolAddress ('__copytmp3400' of type 'LockingTextWriter') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * DtoArgument * * * * * * * * * * * VarExp::toElem: fmt @ const(char[]) * * * * * * * * * * * * DtoSymbolAddress ('fmt' of type 'const(char[])') * * * * * * * * * * * * * function param * * * * * * * * * * * * * type: const(char[]) * * * * * * * * * * DtoArgument * * * * * * * * * * * VarExp::toElem: _param_1 @ string * * * * * * * * * * * * DtoSymbolAddress ('_param_1' of type 'string') * * * * * * * * * * * * * function param * * * * * * * * * * * * * type: string * * * * * * * * * * DtoArgument * * * * * * * * * * * VarExp::toElem: _param_2 @ ulong * * * * * * * * * * * * DtoSymbolAddress ('_param_2' of type 'ulong') * * * * * * * * * * * * * function param * * * * * * * * * * * * * type: ulong * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(1370) * * * * * * * * CallExp::toElem: w.put('\x0a') @ void * * * * * * * * * DotVarExp::toElem: w.put @ nothrow @nogc @safe void(char c) * * * * * * * * * * VarExp::toElem: w @ LockingTextWriter * * * * * * * * * * * DtoSymbolAddress ('w' of type 'LockingTextWriter') * * * * * * * * * * * * a normal variable * * * * * * * * * DtoCallFunction() * * * * * * * * * * doing normal arguments * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * %w = alloca %std.stdio.File.LockingTextWriter, align 8 * * * * * * * * * * Function type: nothrow @nogc @safe void(char c) * * * * * * * * * * DtoArgument * * * * * * * * * * * IntegerExp::toElem: '\x0a' @ char * * * * * * * * * * * * IntegerExp::toConstElem: '\x0a' @ char * * * * * * * * * * * * * value = i8 10 * TemplateInstance::codegen: 'std.stdio.writefln!(string, string, const(char), const(ulong))' * * DtoDefineFunction(std.stdio.writefln!(string, string, const(char), const(ulong)).writefln): /usr/include/dlang/ldc/std/stdio.d(3205) * * * Doing function body for: writefln * * * DtoCreateNestedContext for writefln * * * * DtoCreateNestedContextType for std.stdio.writefln!(string, string, const(char), const(ulong)).writefln * * * CompoundStatement::toIR(): * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(3207) * * * * * CallExp::toElem: (File __tmpfordtor3475 = trustedStdout(); , __tmpfordtor3475).writefln(_param_0, _param_1, _param_2, _param_3) @ void * * * * * * DotVarExp::toElem: (File __tmpfordtor3475 = trustedStdout(); , __tmpfordtor3475).writefln @ @safe void(const(char[]) fmt, string _param_1, const(char) _param_2, const(ulong) _param_3) * * * * * * * CommaExp::toElem: File __tmpfordtor3475 = trustedStdout(); , __tmpfordtor3475 @ File * * * * * * * * DeclarationExp::toElem: File __tmpfordtor3475 = trustedStdout(); | T=void * * * * * * * * * DtoDeclarationExp: __tmpfordtor3475 * * * * * * * * * * VarDeclaration * * * * * * * * * * DtoVarDeclaration(vdtype = File) * * * * * * * * * * * VarExp::toElem: trustedStdout @ @property @trusted File() * * * * * * * * * * * * DtoSymbolAddress ('trustedStdout' of type '@property @trusted File()') * * * * * * * * * * * * * FuncDeclaration * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * %__tmpfordtor3475 = alloca %std.stdio.File, align 8 * * * * * * * * * * * * Function type: @property @trusted File() * * * * * * * * * CallExp::toElem: __tmpfordtor3475.~this() @ void * * * * * * * * * * DotVarExp::toElem: __tmpfordtor3475.~this @ @safe void() * * * * * * * * * * * VarExp::toElem: __tmpfordtor3475 @ File * * * * * * * * * * * * DtoSymbolAddress ('__tmpfordtor3475' of type 'File') * * * * * * * * * * * * * a normal variable * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * doing normal arguments * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * %__tmpfordtor3475 = alloca %std.stdio.File, align 8 * * * * * * * * * * * Function type: @safe void() * * * * * * * * VarExp::toElem: __tmpfordtor3475 @ File * * * * * * * * * DtoSymbolAddress ('__tmpfordtor3475' of type 'File') * * * * * * * * * * a normal variable * * * * * * * isMember = this is: File * * * * * * * DtoFunctionType(@safe void(const(char[]) fmt, string _param_1, const(char) _param_2, const(ulong) _param_3)) * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * Passing implicitly ByVal: const(char[]) ({ i64, i8* }) * * * * * * * * Final function type: void (%std.stdio.File*, i64, i8, { i64, i8* }, { i64, i8* }*) * * * * * * * DtoResolveFunction(std.stdio.File.writefln!(char, string, const(char), const(ulong)).writefln): /usr/include/dlang/ldc/std/stdio.d(1364) * * * * * * * * DtoDeclareFunction(std.stdio.File.writefln!(char, string, const(char), const(ulong)).writefln): /usr/include/dlang/ldc/std/stdio.d(1364) * * * * * * * * * isMember = this is: File * * * * * * * * * DtoFunctionType(@safe void(const(char[]) fmt, string _param_1, const(char) _param_2, const(ulong) _param_3)) * * * * * * * * * func = declare void @_D3std5stdio4File25__T8writeflnTaTAyaTxaTxmZ8writeflnMFNfxAaAyaxaxmZv(%std.stdio.File*, i64, i8, { i64, i8* }, { i64, i8* }*) * * * * * * DtoCallFunction() * * * * * * * Building type: @safe void(const(char[]) fmt, string _param_1, const(char) _param_2, const(ulong) _param_3) * * * * * * * * DtoFunctionType(@safe void(const(char[]) fmt, string _param_1, const(char) _param_2, const(ulong) _param_3)) * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * Final function type: void (i64, i8, { i64, i8* }, { i64, i8* }) * * * * * * * doing normal arguments * * * * * * * Arguments so far: (1) * * * * * * * * %__tmpfordtor3475 = alloca %std.stdio.File, align 8 * * * * * * * Function type: @safe void(const(char[]) fmt, string _param_1, const(char) _param_2, const(ulong) _param_3) * * * * * * * DtoArgument * * * * * * * * VarExp::toElem: _param_0 @ const(char[]) * * * * * * * * * DtoSymbolAddress ('_param_0' of type 'string') * * * * * * * * * * function param * * * * * * * * * * type: string * * * * * * * DtoArgument * * * * * * * * VarExp::toElem: _param_1 @ string * * * * * * * * * DtoSymbolAddress ('_param_1' of type 'string') * * * * * * * * * * function param * * * * * * * * * * type: string * * * * * * * DtoArgument * * * * * * * * VarExp::toElem: _param_2 @ const(char) * * * * * * * * * DtoSymbolAddress ('_param_2' of type 'const(char)') * * * * * * * * * * function param * * * * * * * * * * type: const(char) * * * * * * * DtoArgument * * * * * * * * VarExp::toElem: _param_3 @ const(ulong) * * * * * * * * * DtoSymbolAddress ('_param_3' of type 'const(ulong)') * * * * * * * * * * function param * * * * * * * * * * type: const(ulong) * * * * * * * Rewrite: putParam * TemplateInstance::codegen: 'std.stdio.File.writefln!(char, string, const(char), const(ulong))' * * DtoDefineFunction(std.stdio.File.writefln!(char, string, const(char), const(ulong)).writefln): /usr/include/dlang/ldc/std/stdio.d(1364) * * * Doing function body for: writefln * * * Rewrite: getParam (getL) * * * DtoCreateNestedContext for writefln * * * * DtoCreateNestedContextType for std.stdio.File.writefln!(char, string, const(char), const(ulong)).writefln * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(1365) * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(1368) * * * * * * DeclarationExp::toElem: LockingTextWriter w = this.lockingTextWriter(); | T=void * * * * * * * DtoDeclarationExp: w * * * * * * * * VarDeclaration * * * * * * * * DtoVarDeclaration(vdtype = LockingTextWriter) * * * * * * * * * DotVarExp::toElem: this.lockingTextWriter @ @safe LockingTextWriter() * * * * * * * * * * ThisExp::toElem: this @ File * * * * * * * * * * * normal this exp * * * * * * * * * DtoCallFunction() * * * * * * * * * * doing normal arguments * * * * * * * * * * Arguments so far: (2) * * * * * * * * * * * %w = alloca %std.stdio.File.LockingTextWriter, align 8 * * * * * * * * * * * %std.stdio.File* %.this_arg * * * * * * * * * * Function type: @safe LockingTextWriter() * * * * * TryFinallyStatement::toIR(): * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(1368) * * * * * * * CallExp::toElem: w.~this() @ void * * * * * * * * DotVarExp::toElem: w.~this @ @trusted void() * * * * * * * * * VarExp::toElem: w @ LockingTextWriter * * * * * * * * * * DtoSymbolAddress ('w' of type 'LockingTextWriter') * * * * * * * * * * * a normal variable * * * * * * * * DtoCallFunction() * * * * * * * * * doing normal arguments * * * * * * * * * Arguments so far: (1) * * * * * * * * * * %w = alloca %std.stdio.File.LockingTextWriter, align 8 * * * * * * * * * Function type: @trusted void() * * * * * * CompoundStatement::toIR(): * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(1369) * * * * * * * * CallExp::toElem: formattedWrite((LockingTextWriter __copytmp3474 = (__copytmp3474 = w).__postblit(); , __copytmp3474), fmt, _param_1, _param_2, _param_3) @ uint * * * * * * * * * VarExp::toElem: formattedWrite @ @safe uint(LockingTextWriter w, const(char[]) fmt, string _param_2, const(char) _param_3, const(ulong) _param_4) * * * * * * * * * * DtoSymbolAddress ('formattedWrite' of type '@safe uint(LockingTextWriter w, const(char[]) fmt, string _param_2, const(char) _param_3, const(ulong) _param_4)') * * * * * * * * * * * FuncDeclaration * * * * * * * * * DtoCallFunction() * * * * * * * * * * Building type: @safe uint(LockingTextWriter w, const(char[]) fmt, string _param_2, const(char) _param_3, const(ulong) _param_4) * * * * * * * * * * * DtoFunctionType(@safe uint(LockingTextWriter w, const(char[]) fmt, string _param_2, const(char) _param_3, const(ulong) _param_4)) * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * Final function type: i32 (i64, i8, { i64, i8* }, { i64, i8* }, %std.stdio.File.LockingTextWriter*) * * * * * * * * * * doing normal arguments * * * * * * * * * * Arguments so far: (0) * * * * * * * * * * Function type: @safe uint(LockingTextWriter w, const(char[]) fmt, string _param_2, const(char) _param_3, const(ulong) _param_4) * * * * * * * * * * DtoArgument * * * * * * * * * * * CommaExp::toElem: LockingTextWriter __copytmp3474 = (__copytmp3474 = w).__postblit(); , __copytmp3474 @ LockingTextWriter * * * * * * * * * * * * DeclarationExp::toElem: LockingTextWriter __copytmp3474 = (__copytmp3474 = w).__postblit(); | T=void * * * * * * * * * * * * * DtoDeclarationExp: __copytmp3474 * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = LockingTextWriter) * * * * * * * * * * * * * * * llvm value for decl: %__copytmp3474 = alloca %std.stdio.File.LockingTextWriter, align 8 * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * CallExp::toElem: (__copytmp3474 = w).__postblit() @ void * * * * * * * * * * * * * * * * DotVarExp::toElem: (__copytmp3474 = w).__postblit @ @trusted void() * * * * * * * * * * * * * * * * * AssignExp::toElem: __copytmp3474 = w | (LockingTextWriter)(LockingTextWriter = LockingTextWriter) * * * * * * * * * * * * * * * * * * VarExp::toElem: __copytmp3474 @ LockingTextWriter * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__copytmp3474' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * VarExp::toElem: w @ LockingTextWriter * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('w' of type 'LockingTextWriter') * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * %__copytmp3474 = alloca %std.stdio.File.LockingTextWriter, align 8 * * * * * * * * * * * * * * * * * Function type: @trusted void() * * * * * * * * * * * * VarExp::toElem: __copytmp3474 @ LockingTextWriter * * * * * * * * * * * * * DtoSymbolAddress ('__copytmp3474' of type 'LockingTextWriter') * * * * * * * * * * * * * * a normal variable * * * * * * * * * * DtoArgument * * * * * * * * * * * VarExp::toElem: fmt @ const(char[]) * * * * * * * * * * * * DtoSymbolAddress ('fmt' of type 'const(char[])') * * * * * * * * * * * * * function param * * * * * * * * * * * * * type: const(char[]) * * * * * * * * * * DtoArgument * * * * * * * * * * * VarExp::toElem: _param_1 @ string * * * * * * * * * * * * DtoSymbolAddress ('_param_1' of type 'string') * * * * * * * * * * * * * function param * * * * * * * * * * * * * type: string * * * * * * * * * * DtoArgument * * * * * * * * * * * VarExp::toElem: _param_2 @ const(char) * * * * * * * * * * * * DtoSymbolAddress ('_param_2' of type 'const(char)') * * * * * * * * * * * * * function param * * * * * * * * * * * * * type: const(char) * * * * * * * * * * DtoArgument * * * * * * * * * * * VarExp::toElem: _param_3 @ const(ulong) * * * * * * * * * * * * DtoSymbolAddress ('_param_3' of type 'const(ulong)') * * * * * * * * * * * * * function param * * * * * * * * * * * * * type: const(ulong) * * * * * * * ExpStatement::toIR(): /usr/include/dlang/ldc/std/stdio.d(1370) * * * * * * * * CallExp::toElem: w.put('\x0a') @ void * * * * * * * * * DotVarExp::toElem: w.put @ nothrow @nogc @safe void(char c) * * * * * * * * * * VarExp::toElem: w @ LockingTextWriter * * * * * * * * * * * DtoSymbolAddress ('w' of type 'LockingTextWriter') * * * * * * * * * * * * a normal variable * * * * * * * * * DtoCallFunction() * * * * * * * * * * doing normal arguments * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * %w = alloca %std.stdio.File.LockingTextWriter, align 8 * * * * * * * * * * Function type: nothrow @nogc @safe void(char c) * * * * * * * * * * DtoArgument * * * * * * * * * * * IntegerExp::toElem: '\x0a' @ char * * * * * * * * * * * * IntegerExp::toConstElem: '\x0a' @ char * * * * * * * * * * * * * value = i8 10 * TypeInfoDeclaration::codegen(typeid(immutable(ulong))) * TypeInfoDeclaration::codegen(typeid(const(Chunk[]))) * TypeInfoDeclaration::codegen(typeid(const(iovec[]))) * TemplateInstance::codegen: 'msgpack.Value.toHash.getHash!(const(bool))' * * DtoDefineFunction(msgpack.Value.toHash.getHash!(const(bool)).getHash): msgpack-d/src/msgpack.d(3595) * * * Doing function body for: getHash * * * DtoCreateNestedContext for getHash * * * * DtoCreateNestedContextType for msgpack.Value.toHash.getHash!(const(bool)).getHash * * * CompoundStatement::toIR(): * * * * ReturnStatement::toIR(): msgpack-d/src/msgpack.d(3597) * * * * * CallExp::toElem: typeid(const(bool)).getHash(cast(const(void*))v) @ ulong * * * * * * DotVarExp::toElem: typeid(const(bool)).getHash @ const nothrow @trusted ulong(const(void*) p) * * * * * * * SymOffExp::toElem: typeid(const(bool)) @ object.TypeInfo * * * * * * * * DtoSymbolAddress ('typeid(const(bool))' of type 'object.TypeInfo_Const') * * * * * * * * * TypeInfoDeclaration * * * * * * * * Casting from 'TypeInfo_Const*' to 'object.TypeInfo' * * * * * * * * * src: %object.TypeInfo_Const* bitcast (%"typeid(const(bool))"* @_D11TypeInfo_xb6__initZ to %object.TypeInfo_Const*) * * * * * * * * * to type: %object.TypeInfo* * * * * * * * vthis: %object.TypeInfo* bitcast (%"typeid(const(bool))"* @_D11TypeInfo_xb6__initZ to %object.TypeInfo*) * * * * * * * funcval: %3 = load i64 (%object.TypeInfo*, i8*)*, i64 (%object.TypeInfo*, i8*)** %"typeid(const(bool)).getHash@vtbl", align 8 * * * * * * * isMember = this is: object.TypeInfo * * * * * * * DtoFunctionType(const nothrow @trusted ulong(const(void*) p)) * * * * * * * funcval casted: %"typeid(const(bool)).getHash" = load i64 (%object.TypeInfo*, i8*)*, i64 (%object.TypeInfo*, i8*)** %"typeid(const(bool)).getHash@vtbl", align 8 * * * * * * DtoCallFunction() * * * * * * * doing normal arguments * * * * * * * Arguments so far: (1) * * * * * * * * %object.TypeInfo* bitcast (%"typeid(const(bool))"* @_D11TypeInfo_xb6__initZ to %object.TypeInfo*) * * * * * * * Function type: const nothrow @trusted ulong(const(void*) p) * * * * * * * DtoArgument * * * * * * * * CastExp::toElem: cast(const(void*))v @ const(void*) * * * * * * * * * VarExp::toElem: v @ const(bool)* * * * * * * * * * * DtoSymbolAddress ('v' of type 'const(bool)*') * * * * * * * * * * * function param * * * * * * * * * * * type: const(bool)* * * * * * * * * * Casting from 'const(bool)*' to 'const(void*)' * * * * * * * * * * src: %3 = load i8*, i8** %v * * * * * * * * * * to type: i8* * * * * * return value is '0x13604868' * TemplateInstance::codegen: 'msgpack.Value.toHash.getHash!(const(ulong))' * * DtoDefineFunction(msgpack.Value.toHash.getHash!(const(ulong)).getHash): msgpack-d/src/msgpack.d(3595) * * * Doing function body for: getHash * * * DtoCreateNestedContext for getHash * * * * DtoCreateNestedContextType for msgpack.Value.toHash.getHash!(const(ulong)).getHash * * * CompoundStatement::toIR(): * * * * ReturnStatement::toIR(): msgpack-d/src/msgpack.d(3597) * * * * * CallExp::toElem: typeid(const(ulong)).getHash(cast(const(void*))v) @ ulong * * * * * * DotVarExp::toElem: typeid(const(ulong)).getHash @ const nothrow @trusted ulong(const(void*) p) * * * * * * * SymOffExp::toElem: typeid(const(ulong)) @ object.TypeInfo * * * * * * * * DtoSymbolAddress ('typeid(const(ulong))' of type 'object.TypeInfo_Const') * * * * * * * * * TypeInfoDeclaration * * * * * * * * Casting from 'TypeInfo_Const*' to 'object.TypeInfo' * * * * * * * * * src: %object.TypeInfo_Const* bitcast (%"typeid(const(ulong))"* @_D11TypeInfo_xm6__initZ to %object.TypeInfo_Const*) * * * * * * * * * to type: %object.TypeInfo* * * * * * * * vthis: %object.TypeInfo* bitcast (%"typeid(const(ulong))"* @_D11TypeInfo_xm6__initZ to %object.TypeInfo*) * * * * * * * funcval: %3 = load i64 (%object.TypeInfo*, i8*)*, i64 (%object.TypeInfo*, i8*)** %"typeid(const(ulong)).getHash@vtbl", align 8 * * * * * * * isMember = this is: object.TypeInfo * * * * * * * DtoFunctionType(const nothrow @trusted ulong(const(void*) p)) * * * * * * * funcval casted: %"typeid(const(ulong)).getHash" = load i64 (%object.TypeInfo*, i8*)*, i64 (%object.TypeInfo*, i8*)** %"typeid(const(ulong)).getHash@vtbl", align 8 * * * * * * DtoCallFunction() * * * * * * * doing normal arguments * * * * * * * Arguments so far: (1) * * * * * * * * %object.TypeInfo* bitcast (%"typeid(const(ulong))"* @_D11TypeInfo_xm6__initZ to %object.TypeInfo*) * * * * * * * Function type: const nothrow @trusted ulong(const(void*) p) * * * * * * * DtoArgument * * * * * * * * CastExp::toElem: cast(const(void*))v @ const(void*) * * * * * * * * * VarExp::toElem: v @ const(ulong)* * * * * * * * * * * DtoSymbolAddress ('v' of type 'const(ulong)*') * * * * * * * * * * * function param * * * * * * * * * * * type: const(ulong)* * * * * * * * * * Casting from 'const(ulong)*' to 'const(void*)' * * * * * * * * * * src: %3 = load i64*, i64** %v * * * * * * * * * * to type: i8* * * * * * return value is '0x13605ef8' * TemplateInstance::codegen: 'msgpack.Value.toHash.getHash!(const(long))' * * DtoDefineFunction(msgpack.Value.toHash.getHash!(const(long)).getHash): msgpack-d/src/msgpack.d(3595) * * * Doing function body for: getHash * * * DtoCreateNestedContext for getHash * * * * DtoCreateNestedContextType for msgpack.Value.toHash.getHash!(const(long)).getHash * * * CompoundStatement::toIR(): * * * * ReturnStatement::toIR(): msgpack-d/src/msgpack.d(3597) * * * * * CallExp::toElem: typeid(const(long)).getHash(cast(const(void*))v) @ ulong * * * * * * DotVarExp::toElem: typeid(const(long)).getHash @ const nothrow @trusted ulong(const(void*) p) * * * * * * * SymOffExp::toElem: typeid(const(long)) @ object.TypeInfo * * * * * * * * DtoSymbolAddress ('typeid(const(long))' of type 'object.TypeInfo_Const') * * * * * * * * * TypeInfoDeclaration * * * * * * * * * TypeInfoDeclaration::codegen(typeid(const(long))) * * * * * * * * * * type = 'const(long)' * * * * * * * * * * typeinfo mangle: _D11TypeInfo_xl6__initZ * * * * * * * * * * TypeInfoConstDeclaration::llvmDefine() typeid(const(long)) * * * * * * * * * * * DtoTypeInfoOf(type = 'long', base='1') * * * * * * * * * * * * Type::getTypeInfo(): long * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(long)) * * * * * * * * Casting from 'TypeInfo_Const*' to 'object.TypeInfo' * * * * * * * * * src: %object.TypeInfo_Const* bitcast (%"typeid(const(long))"* @_D11TypeInfo_xl6__initZ to %object.TypeInfo_Const*) * * * * * * * * * to type: %object.TypeInfo* * * * * * * * vthis: %object.TypeInfo* bitcast (%"typeid(const(long))"* @_D11TypeInfo_xl6__initZ to %object.TypeInfo*) * * * * * * * funcval: %3 = load i64 (%object.TypeInfo*, i8*)*, i64 (%object.TypeInfo*, i8*)** %"typeid(const(long)).getHash@vtbl", align 8 * * * * * * * isMember = this is: object.TypeInfo * * * * * * * DtoFunctionType(const nothrow @trusted ulong(const(void*) p)) * * * * * * * funcval casted: %"typeid(const(long)).getHash" = load i64 (%object.TypeInfo*, i8*)*, i64 (%object.TypeInfo*, i8*)** %"typeid(const(long)).getHash@vtbl", align 8 * * * * * * DtoCallFunction() * * * * * * * doing normal arguments * * * * * * * Arguments so far: (1) * * * * * * * * %object.TypeInfo* bitcast (%"typeid(const(long))"* @_D11TypeInfo_xl6__initZ to %object.TypeInfo*) * * * * * * * Function type: const nothrow @trusted ulong(const(void*) p) * * * * * * * DtoArgument * * * * * * * * CastExp::toElem: cast(const(void*))v @ const(void*) * * * * * * * * * VarExp::toElem: v @ const(long)* * * * * * * * * * * DtoSymbolAddress ('v' of type 'const(long)*') * * * * * * * * * * * function param * * * * * * * * * * * type: const(long)* * * * * * * * * * Casting from 'const(long)*' to 'const(void*)' * * * * * * * * * * src: %3 = load i64*, i64** %v * * * * * * * * * * to type: i8* * * * * * return value is '0x13607ec8' * TypeInfoDeclaration::codegen(typeid(const(long))) * TemplateInstance::codegen: 'msgpack.Value.toHash.getHash!(const(real))' * * DtoDefineFunction(msgpack.Value.toHash.getHash!(const(real)).getHash): msgpack-d/src/msgpack.d(3595) * * * Doing function body for: getHash * * * DtoCreateNestedContext for getHash * * * * DtoCreateNestedContextType for msgpack.Value.toHash.getHash!(const(real)).getHash * * * CompoundStatement::toIR(): * * * * ReturnStatement::toIR(): msgpack-d/src/msgpack.d(3597) * * * * * CallExp::toElem: typeid(const(real)).getHash(cast(const(void*))v) @ ulong * * * * * * DotVarExp::toElem: typeid(const(real)).getHash @ const nothrow @trusted ulong(const(void*) p) * * * * * * * SymOffExp::toElem: typeid(const(real)) @ object.TypeInfo * * * * * * * * DtoSymbolAddress ('typeid(const(real))' of type 'object.TypeInfo_Const') * * * * * * * * * TypeInfoDeclaration * * * * * * * * Casting from 'TypeInfo_Const*' to 'object.TypeInfo' * * * * * * * * * src: %object.TypeInfo_Const* bitcast (%"typeid(const(real))"* @_D11TypeInfo_xe6__initZ to %object.TypeInfo_Const*) * * * * * * * * * to type: %object.TypeInfo* * * * * * * * vthis: %object.TypeInfo* bitcast (%"typeid(const(real))"* @_D11TypeInfo_xe6__initZ to %object.TypeInfo*) * * * * * * * funcval: %3 = load i64 (%object.TypeInfo*, i8*)*, i64 (%object.TypeInfo*, i8*)** %"typeid(const(real)).getHash@vtbl", align 8 * * * * * * * isMember = this is: object.TypeInfo * * * * * * * DtoFunctionType(const nothrow @trusted ulong(const(void*) p)) * * * * * * * funcval casted: %"typeid(const(real)).getHash" = load i64 (%object.TypeInfo*, i8*)*, i64 (%object.TypeInfo*, i8*)** %"typeid(const(real)).getHash@vtbl", align 8 * * * * * * DtoCallFunction() * * * * * * * doing normal arguments * * * * * * * Arguments so far: (1) * * * * * * * * %object.TypeInfo* bitcast (%"typeid(const(real))"* @_D11TypeInfo_xe6__initZ to %object.TypeInfo*) * * * * * * * Function type: const nothrow @trusted ulong(const(void*) p) * * * * * * * DtoArgument * * * * * * * * CastExp::toElem: cast(const(void*))v @ const(void*) * * * * * * * * * VarExp::toElem: v @ const(real)* * * * * * * * * * * DtoSymbolAddress ('v' of type 'const(real)*') * * * * * * * * * * * function param * * * * * * * * * * * type: const(real)* * * * * * * * * * Casting from 'const(real)*' to 'const(void*)' * * * * * * * * * * src: %3 = load x86_fp80*, x86_fp80** %v * * * * * * * * * * to type: i8* * * * * * return value is '0x13609688' * TemplateInstance::codegen: 'msgpack.Value.toHash.getHash!(const(ubyte[]))' * * DtoDefineFunction(msgpack.Value.toHash.getHash!(const(ubyte[])).getHash): msgpack-d/src/msgpack.d(3595) * * * Doing function body for: getHash * * * DtoCreateNestedContext for getHash * * * * DtoCreateNestedContextType for msgpack.Value.toHash.getHash!(const(ubyte[])).getHash * * * CompoundStatement::toIR(): * * * * ReturnStatement::toIR(): msgpack-d/src/msgpack.d(3597) * * * * * CallExp::toElem: typeid(const(ubyte[])).getHash(cast(const(void*))v) @ ulong * * * * * * DotVarExp::toElem: typeid(const(ubyte[])).getHash @ const nothrow @trusted ulong(const(void*) p) * * * * * * * SymOffExp::toElem: typeid(const(ubyte[])) @ object.TypeInfo * * * * * * * * DtoSymbolAddress ('typeid(const(ubyte[]))' of type 'object.TypeInfo_Const') * * * * * * * * * TypeInfoDeclaration * * * * * * * * Casting from 'TypeInfo_Const*' to 'object.TypeInfo' * * * * * * * * * src: %object.TypeInfo_Const* bitcast (%"typeid(const(ubyte[]))"* @_D12TypeInfo_xAh6__initZ to %object.TypeInfo_Const*) * * * * * * * * * to type: %object.TypeInfo* * * * * * * * vthis: %object.TypeInfo* bitcast (%"typeid(const(ubyte[]))"* @_D12TypeInfo_xAh6__initZ to %object.TypeInfo*) * * * * * * * funcval: %3 = load i64 (%object.TypeInfo*, i8*)*, i64 (%object.TypeInfo*, i8*)** %"typeid(const(ubyte[])).getHash@vtbl", align 8 * * * * * * * isMember = this is: object.TypeInfo * * * * * * * DtoFunctionType(const nothrow @trusted ulong(const(void*) p)) * * * * * * * funcval casted: %"typeid(const(ubyte[])).getHash" = load i64 (%object.TypeInfo*, i8*)*, i64 (%object.TypeInfo*, i8*)** %"typeid(const(ubyte[])).getHash@vtbl", align 8 * * * * * * DtoCallFunction() * * * * * * * doing normal arguments * * * * * * * Arguments so far: (1) * * * * * * * * %object.TypeInfo* bitcast (%"typeid(const(ubyte[]))"* @_D12TypeInfo_xAh6__initZ to %object.TypeInfo*) * * * * * * * Function type: const nothrow @trusted ulong(const(void*) p) * * * * * * * DtoArgument * * * * * * * * CastExp::toElem: cast(const(void*))v @ const(void*) * * * * * * * * * VarExp::toElem: v @ const(ubyte[])* * * * * * * * * * * DtoSymbolAddress ('v' of type 'const(ubyte[])*') * * * * * * * * * * * function param * * * * * * * * * * * type: const(ubyte[])* * * * * * * * * * Casting from 'const(ubyte[])*' to 'const(void*)' * * * * * * * * * * src: %3 = load { i64, i8* }*, { i64, i8* }** %v * * * * * * * * * * to type: i8* * * * * * return value is '0x1360b588' * TemplateInstance::codegen: 'msgpack.Value.opEquals!bool' * * DtoDefineFunction(msgpack.Value.opEquals!bool.opEquals): msgpack-d/src/msgpack.d(3501) * * * Doing function body for: opEquals * * * DtoCreateNestedContext for opEquals * * * * DtoCreateNestedContextType for msgpack.Value.opEquals!bool.opEquals * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(3502) * * * * * IfStatement::toIR(): msgpack-d/src/msgpack.d(3503) * * * * * * EqualExp::toElem: this.type != cast(Type)1 @ bool * * * * * * * DotVarExp::toElem: this.type @ const(Type) * * * * * * * * ThisExp::toElem: this @ const(Value) * * * * * * * * * normal this exp * * * * * * * * Indexing aggregate field msgpack.Value.type: * * * * * * * * * Building type: Type * * * * * * * * * Value: %2 = getelementptr %msgpack.Value, %msgpack.Value* %.this_arg, i32 0, i32 0 * * * * * * * IntegerExp::toElem: cast(Type)1 @ Type * * * * * * * * IntegerExp::toConstElem: cast(Type)1 @ Type * * * * * * * * * Building type: Type * * * * * * * * * value = i32 1 * * * * * * * integral or pointer or interface * * * * * * * lv: %3 = load i32, i32* %2 * * * * * * * rv: i32 1 * * * * * * ReturnStatement::toIR(): msgpack-d/src/msgpack.d(3504) * * * * * * * IntegerExp::toElem: false @ bool * * * * * * * * IntegerExp::toConstElem: false @ bool * * * * * * * * * value = i1 false * * * * * * * return value is '0x120e69a0' * * * * * ReturnStatement::toIR(): msgpack-d/src/msgpack.d(3506) * * * * * * EqualExp::toElem: cast(int)this.via.boolean == cast(int)other @ bool * * * * * * * CastExp::toElem: cast(int)this.via.boolean @ int * * * * * * * * DotVarExp::toElem: this.via.boolean @ const(bool) * * * * * * * * * DotVarExp::toElem: this.via @ const(Via) * * * * * * * * * * ThisExp::toElem: this @ const(Value) * * * * * * * * * * * normal this exp * * * * * * * * * * Indexing aggregate field msgpack.Value.via: * * * * * * * * * * * Value: %5 = getelementptr %msgpack.Value, %msgpack.Value* %.this_arg, i32 0, i32 2 * * * * * * * * * Indexing aggregate field msgpack.Value.Via.boolean: * * * * * * * * * * Value: %6 = getelementptr %msgpack.Value.Via, %msgpack.Value.Via* %5, i32 0, i32 0 * * * * * * * * Casting from 'const(bool)' to 'int' * * * * * * * * * cast to: i32 * * * * * * * CastExp::toElem: cast(int)other @ int * * * * * * * * VarExp::toElem: other @ const(bool) * * * * * * * * * DtoSymbolAddress ('other' of type 'const(bool)') * * * * * * * * * * function param * * * * * * * * * * type: const(bool) * * * * * * * * Casting from 'const(bool)' to 'int' * * * * * * * * * cast to: i32 * * * * * * * integral or pointer or interface * * * * * * * lv: %9 = zext i1 %8 to i32 * * * * * * * rv: %12 = zext i1 %11 to i32 * * * * * * return value is '0x1360d470' * TemplateInstance::codegen: 'msgpack.Value.opEquals!ulong' * * DtoDefineFunction(msgpack.Value.opEquals!ulong.opEquals): msgpack-d/src/msgpack.d(3512) * * * Doing function body for: opEquals * * * DtoCreateNestedContext for opEquals * * * * DtoCreateNestedContextType for msgpack.Value.opEquals!ulong.opEquals * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(3513) * * * * * IfStatement::toIR(): msgpack-d/src/msgpack.d(3515) * * * * * * EqualExp::toElem: this.type != cast(Type)2 @ bool * * * * * * * DotVarExp::toElem: this.type @ const(Type) * * * * * * * * ThisExp::toElem: this @ const(Value) * * * * * * * * * normal this exp * * * * * * * * Indexing aggregate field msgpack.Value.type: * * * * * * * * * Building type: Type * * * * * * * * * Value: %1 = getelementptr %msgpack.Value, %msgpack.Value* %.this_arg, i32 0, i32 0 * * * * * * * IntegerExp::toElem: cast(Type)2 @ Type * * * * * * * * IntegerExp::toConstElem: cast(Type)2 @ Type * * * * * * * * * Building type: Type * * * * * * * * * value = i32 2 * * * * * * * integral or pointer or interface * * * * * * * lv: %2 = load i32, i32* %1 * * * * * * * rv: i32 2 * * * * * * ReturnStatement::toIR(): msgpack-d/src/msgpack.d(3516) * * * * * * * IntegerExp::toElem: false @ bool * * * * * * * * IntegerExp::toConstElem: false @ bool * * * * * * * * * value = i1 false * * * * * * * return value is '0x120e69a0' * * * * * ReturnStatement::toIR(): msgpack-d/src/msgpack.d(3518) * * * * * * EqualExp::toElem: this.via.uinteger == other @ bool * * * * * * * DotVarExp::toElem: this.via.uinteger @ const(ulong) * * * * * * * * DotVarExp::toElem: this.via @ const(Via) * * * * * * * * * ThisExp::toElem: this @ const(Value) * * * * * * * * * * normal this exp * * * * * * * * * Indexing aggregate field msgpack.Value.via: * * * * * * * * * * Value: %4 = getelementptr %msgpack.Value, %msgpack.Value* %.this_arg, i32 0, i32 2 * * * * * * * * Indexing aggregate field msgpack.Value.Via.uinteger: * * * * * * * * * Value: %6 = bitcast i8* %5 to i64* * * * * * * * VarExp::toElem: other @ const(ulong) * * * * * * * * DtoSymbolAddress ('other' of type 'const(ulong)') * * * * * * * * * function param * * * * * * * * * type: const(ulong) * * * * * * * integral or pointer or interface * * * * * * * lv: %7 = load i64, i64* %6 * * * * * * * rv: %8 = load i64, i64* %other * * * * * * return value is '0x1360f080' * TemplateInstance::codegen: 'msgpack.Value.opEquals!long' * * DtoDefineFunction(msgpack.Value.opEquals!long.opEquals): msgpack-d/src/msgpack.d(3512) * * * Doing function body for: opEquals * * * DtoCreateNestedContext for opEquals * * * * DtoCreateNestedContextType for msgpack.Value.opEquals!long.opEquals * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(3513) * * * * * IfStatement::toIR(): msgpack-d/src/msgpack.d(3520) * * * * * * EqualExp::toElem: this.type != cast(Type)3 @ bool * * * * * * * DotVarExp::toElem: this.type @ const(Type) * * * * * * * * ThisExp::toElem: this @ const(Value) * * * * * * * * * normal this exp * * * * * * * * Indexing aggregate field msgpack.Value.type: * * * * * * * * * Building type: Type * * * * * * * * * Value: %1 = getelementptr %msgpack.Value, %msgpack.Value* %.this_arg, i32 0, i32 0 * * * * * * * IntegerExp::toElem: cast(Type)3 @ Type * * * * * * * * IntegerExp::toConstElem: cast(Type)3 @ Type * * * * * * * * * Building type: Type * * * * * * * * * value = i32 3 * * * * * * * integral or pointer or interface * * * * * * * lv: %2 = load i32, i32* %1 * * * * * * * rv: i32 3 * * * * * * ReturnStatement::toIR(): msgpack-d/src/msgpack.d(3521) * * * * * * * IntegerExp::toElem: false @ bool * * * * * * * * IntegerExp::toConstElem: false @ bool * * * * * * * * * value = i1 false * * * * * * * return value is '0x120e69a0' * * * * * ReturnStatement::toIR(): msgpack-d/src/msgpack.d(3523) * * * * * * EqualExp::toElem: this.via.integer == other @ bool * * * * * * * DotVarExp::toElem: this.via.integer @ const(long) * * * * * * * * DotVarExp::toElem: this.via @ const(Via) * * * * * * * * * ThisExp::toElem: this @ const(Value) * * * * * * * * * * normal this exp * * * * * * * * * Indexing aggregate field msgpack.Value.via: * * * * * * * * * * Value: %4 = getelementptr %msgpack.Value, %msgpack.Value* %.this_arg, i32 0, i32 2 * * * * * * * * Indexing aggregate field msgpack.Value.Via.integer: * * * * * * * * * Value: %6 = bitcast i8* %5 to i64* * * * * * * * VarExp::toElem: other @ const(long) * * * * * * * * DtoSymbolAddress ('other' of type 'const(long)') * * * * * * * * * function param * * * * * * * * * type: const(long) * * * * * * * integral or pointer or interface * * * * * * * lv: %7 = load i64, i64* %6 * * * * * * * rv: %8 = load i64, i64* %other * * * * * * return value is '0x13610c90' * TemplateInstance::codegen: 'msgpack.Value.opEquals!real' * * DtoDefineFunction(msgpack.Value.opEquals!real.opEquals): msgpack-d/src/msgpack.d(3530) * * * Doing function body for: opEquals * * * DtoCreateNestedContext for opEquals * * * * DtoCreateNestedContextType for msgpack.Value.opEquals!real.opEquals * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(3531) * * * * * IfStatement::toIR(): msgpack-d/src/msgpack.d(3532) * * * * * * EqualExp::toElem: this.type != cast(Type)4 @ bool * * * * * * * DotVarExp::toElem: this.type @ const(Type) * * * * * * * * ThisExp::toElem: this @ const(Value) * * * * * * * * * normal this exp * * * * * * * * Indexing aggregate field msgpack.Value.type: * * * * * * * * * Building type: Type * * * * * * * * * Value: %1 = getelementptr %msgpack.Value, %msgpack.Value* %.this_arg, i32 0, i32 0 * * * * * * * IntegerExp::toElem: cast(Type)4 @ Type * * * * * * * * IntegerExp::toConstElem: cast(Type)4 @ Type * * * * * * * * * Building type: Type * * * * * * * * * value = i32 4 * * * * * * * integral or pointer or interface * * * * * * * lv: %2 = load i32, i32* %1 * * * * * * * rv: i32 4 * * * * * * ReturnStatement::toIR(): msgpack-d/src/msgpack.d(3533) * * * * * * * IntegerExp::toElem: false @ bool * * * * * * * * IntegerExp::toConstElem: false @ bool * * * * * * * * * value = i1 false * * * * * * * return value is '0x120e69a0' * * * * * ReturnStatement::toIR(): msgpack-d/src/msgpack.d(3535) * * * * * * EqualExp::toElem: this.via.floating == other @ bool * * * * * * * DotVarExp::toElem: this.via.floating @ const(real) * * * * * * * * DotVarExp::toElem: this.via @ const(Via) * * * * * * * * * ThisExp::toElem: this @ const(Value) * * * * * * * * * * normal this exp * * * * * * * * * Indexing aggregate field msgpack.Value.via: * * * * * * * * * * Value: %4 = getelementptr %msgpack.Value, %msgpack.Value* %.this_arg, i32 0, i32 2 * * * * * * * * Indexing aggregate field msgpack.Value.Via.floating: * * * * * * * * * Value: %6 = bitcast i8* %5 to x86_fp80* * * * * * * * VarExp::toElem: other @ const(real) * * * * * * * * DtoSymbolAddress ('other' of type 'const(real)') * * * * * * * * * function param * * * * * * * * * type: const(real) * * * * * * * numeric equality * * * * * * * floating * * * * * * return value is '0x13612820' * TemplateInstance::codegen: 'msgpack.Value.opEquals!(const(ubyte)[])' * * DtoDefineFunction(msgpack.Value.opEquals!(const(ubyte)[]).opEquals): msgpack-d/src/msgpack.d(3573) * * * Doing function body for: opEquals * * * DtoCreateNestedContext for opEquals * * * * DtoCreateNestedContextType for msgpack.Value.opEquals!(const(ubyte)[]).opEquals * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(3574) * * * * * IfStatement::toIR(): msgpack-d/src/msgpack.d(3575) * * * * * * EqualExp::toElem: this.type != cast(Type)7 @ bool * * * * * * * DotVarExp::toElem: this.type @ const(Type) * * * * * * * * ThisExp::toElem: this @ const(Value) * * * * * * * * * normal this exp * * * * * * * * Indexing aggregate field msgpack.Value.type: * * * * * * * * * Building type: Type * * * * * * * * * Value: %1 = getelementptr %msgpack.Value, %msgpack.Value* %.this_arg, i32 0, i32 0 * * * * * * * IntegerExp::toElem: cast(Type)7 @ Type * * * * * * * * IntegerExp::toConstElem: cast(Type)7 @ Type * * * * * * * * * Building type: Type * * * * * * * * * value = i32 7 * * * * * * * integral or pointer or interface * * * * * * * lv: %2 = load i32, i32* %1 * * * * * * * rv: i32 7 * * * * * * ReturnStatement::toIR(): msgpack-d/src/msgpack.d(3576) * * * * * * * IntegerExp::toElem: false @ bool * * * * * * * * IntegerExp::toConstElem: false @ bool * * * * * * * * * value = i1 false * * * * * * * return value is '0x120e69a0' * * * * * ReturnStatement::toIR(): msgpack-d/src/msgpack.d(3578) * * * * * * EqualExp::toElem: this.via.raw == other @ bool * * * * * * * DotVarExp::toElem: this.via.raw @ const(ubyte[]) * * * * * * * * DotVarExp::toElem: this.via @ const(Via) * * * * * * * * * ThisExp::toElem: this @ const(Value) * * * * * * * * * * normal this exp * * * * * * * * * Indexing aggregate field msgpack.Value.via: * * * * * * * * * * Value: %4 = getelementptr %msgpack.Value, %msgpack.Value* %.this_arg, i32 0, i32 2 * * * * * * * * Indexing aggregate field msgpack.Value.Via.raw: * * * * * * * * * Value: %6 = bitcast i8* %5 to { i64, i8* }* * * * * * * * VarExp::toElem: other @ const(ubyte[]) * * * * * * * * DtoSymbolAddress ('other' of type 'const(ubyte[])') * * * * * * * * * function param * * * * * * * * * type: const(ubyte[]) * * * * * * * static or dynamic array * * * * * * * comparing arrays * * * * * * * casting to dynamic arrays * * * * * * * DtoCastArray * * * * * * * * from array or sarray * * * * * * * * to array * * * * * * * * DtoArrayLen * * * * * * * * DtoArrayPtr * * * * * * * * isslice * * * * * * * DtoCastArray * * * * * * * * from array or sarray * * * * * * * * to array * * * * * * * * DtoArrayLen * * * * * * * * DtoArrayPtr * * * * * * * * isslice * * * * * * * DtoTypeInfoOf(type = 'const(ubyte)[]', base='1') * * * * * * * * Type::getTypeInfo(): const(ubyte)[] * * * * * * * * TypeInfoDeclaration::codegen(typeid(const(ubyte)[])) * * * * * * return value is '0x136152c0' * TemplateInstance::codegen: 'msgpack.Value.opEquals!(const(Value)[])' * * DtoDefineFunction(msgpack.Value.opEquals!(const(Value)[]).opEquals): msgpack-d/src/msgpack.d(3541) * * * Doing function body for: opEquals * * * DtoCreateNestedContext for opEquals * * * * DtoCreateNestedContextType for msgpack.Value.opEquals!(const(Value)[]).opEquals * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(3542) * * * * * IfStatement::toIR(): msgpack-d/src/msgpack.d(3543) * * * * * * EqualExp::toElem: this.type != cast(Type)5 @ bool * * * * * * * DotVarExp::toElem: this.type @ const(Type) * * * * * * * * ThisExp::toElem: this @ const(Value) * * * * * * * * * normal this exp * * * * * * * * Indexing aggregate field msgpack.Value.type: * * * * * * * * * Building type: Type * * * * * * * * * Value: %1 = getelementptr %msgpack.Value, %msgpack.Value* %.this_arg, i32 0, i32 0 * * * * * * * IntegerExp::toElem: cast(Type)5 @ Type * * * * * * * * IntegerExp::toConstElem: cast(Type)5 @ Type * * * * * * * * * Building type: Type * * * * * * * * * value = i32 5 * * * * * * * integral or pointer or interface * * * * * * * lv: %2 = load i32, i32* %1 * * * * * * * rv: i32 5 * * * * * * ReturnStatement::toIR(): msgpack-d/src/msgpack.d(3544) * * * * * * * IntegerExp::toElem: false @ bool * * * * * * * * IntegerExp::toConstElem: false @ bool * * * * * * * * * value = i1 false * * * * * * * return value is '0x120e69a0' * * * * * ReturnStatement::toIR(): msgpack-d/src/msgpack.d(3546) * * * * * * CallExp::toElem: _ArrayEq(this.via.array, other) @ bool * * * * * * * VarExp::toElem: _ArrayEq @ @safe bool(const(Value)[] a1, const(Value)[] a2) * * * * * * * * DtoSymbolAddress ('_ArrayEq' of type '@safe bool(const(Value)[] a1, const(Value)[] a2)') * * * * * * * * * FuncDeclaration * * * * * * * DtoCallFunction() * * * * * * * * Building type: @safe bool(const(Value)[] a1, const(Value)[] a2) * * * * * * * * * DtoFunctionType(@safe bool(const(Value)[] a1, const(Value)[] a2)) * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * Final function type: i1 ({ i64, %msgpack.Value* }, { i64, %msgpack.Value* }) * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (0) * * * * * * * * Function type: @safe bool(const(Value)[] a1, const(Value)[] a2) * * * * * * * * DtoArgument * * * * * * * * * DotVarExp::toElem: this.via.array @ const(Value)[] * * * * * * * * * * DotVarExp::toElem: this.via @ const(Via) * * * * * * * * * * * ThisExp::toElem: this @ const(Value) * * * * * * * * * * * * normal this exp * * * * * * * * * * * Indexing aggregate field msgpack.Value.via: * * * * * * * * * * * * Value: %4 = getelementptr %msgpack.Value, %msgpack.Value* %.this_arg, i32 0, i32 2 * * * * * * * * * * Indexing aggregate field msgpack.Value.Via.array: * * * * * * * * * * * Value: %6 = bitcast i8* %5 to { i64, %msgpack.Value* }* * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: other @ const(Value)[] * * * * * * * * * * DtoSymbolAddress ('other' of type 'const(Value[])') * * * * * * * * * * * function param * * * * * * * * * * * type: const(Value[]) * * * * * * return value is '0x13617718' * TemplateInstance::codegen: 'msgpack.Value.opEquals!(const(Value)[Value])' * * DtoDefineFunction(msgpack.Value.opEquals!(const(Value)[Value]).opEquals): msgpack-d/src/msgpack.d(3552) * * * Doing function body for: opEquals * * * Building type: const(Value)[Value] * * * DtoCreateNestedContext for opEquals * * * * DtoCreateNestedContextType for msgpack.Value.opEquals!(const(Value)[Value]).opEquals * * * * * has nested frame * * * * * Function opEquals has depth 0 * * * * * Building type: const(Value)[Value] * * * * * Nested var 'other' of type i8* * * * * * Nested var '__result' of type i8 * * * * * frameType = %nest.opEquals = type { i8*, i8 } * * * * nested param: other * * * * * Copying to nested frame * * * * nested var: __result * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(3553) * * * * * IfStatement::toIR(): msgpack-d/src/msgpack.d(3554) * * * * * * EqualExp::toElem: this.type != cast(Type)6 @ bool * * * * * * * DotVarExp::toElem: this.type @ const(Type) * * * * * * * * ThisExp::toElem: this @ const(Value) * * * * * * * * * normal this exp * * * * * * * * Indexing aggregate field msgpack.Value.type: * * * * * * * * * Building type: Type * * * * * * * * * Value: %3 = getelementptr %msgpack.Value, %msgpack.Value* %.this_arg, i32 0, i32 0 * * * * * * * IntegerExp::toElem: cast(Type)6 @ Type * * * * * * * * IntegerExp::toConstElem: cast(Type)6 @ Type * * * * * * * * * Building type: Type * * * * * * * * * value = i32 6 * * * * * * * integral or pointer or interface * * * * * * * lv: %4 = load i32, i32* %3 * * * * * * * rv: i32 6 * * * * * * ReturnStatement::toIR(): msgpack-d/src/msgpack.d(3555) * * * * * * * AssignExp::toElem: __result = false | (const(bool))(const(bool) = bool) * * * * * * * * VarExp::toElem: __result @ const(bool) * * * * * * * * * DtoSymbolAddress ('__result' of type 'const(bool)') * * * * * * * * * * nested variable * * * * * * * * * * DtoNestedVariable for __result @ * * * * * * * * IntegerExp::toElem: false @ bool * * * * * * * * * IntegerExp::toConstElem: false @ bool * * * * * * * * * * value = i1 false * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * DtoAssign() * * * * * * * return value is '0x1361a368' * * * * * SwitchStatement::toIR(): msgpack-d/src/msgpack.d(3558) * * * * * * has default * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(3558) * * * * * * * DefaultStatement::toIR(): * * * * * * * * BreakStatement::toIR(): * * * * * * * CaseStatement::toIR(): * * * * * * * * IntegerExp::toConstElem: 2 @ int * * * * * * * * * value = i32 2 * * * * * * * * ReturnStatement::toIR(): * * * * * * * * * VarExp::toElem: __result @ bool * * * * * * * * * * DtoSymbolAddress ('__result' of type 'const(bool)') * * * * * * * * * * * nested variable * * * * * * * * * * * DtoNestedVariable for __result @ * * * * * * * * * return value is '0x1361b018' * * * * * * * CaseStatement::toIR(): * * * * * * * * IntegerExp::toConstElem: 3 @ int * * * * * * * * * value = i32 3 * * * * * * * * ReturnStatement::toIR(): * * * * * * * * * VarExp::toElem: __result @ bool * * * * * * * * * * DtoSymbolAddress ('__result' of type 'const(bool)') * * * * * * * * * * * nested variable * * * * * * * * * * * DtoNestedVariable for __result @ * * * * * * * * * return value is '0x1361b598' * * * * * * CallExp::toElem: _aaApply2(this.via.map, 32LU, delegate int(ref Value __applyArg0, ref const(Value) __applyArg1) => 0) @ int * * * * * * * VarExp::toElem: _aaApply2 @ extern (C) int(void*, in ulong, int delegate(void*, void*)) * * * * * * * * DtoSymbolAddress ('_aaApply2' of type 'extern (C) int(void*, in ulong, int delegate(void*, void*))') * * * * * * * * * FuncDeclaration * * * * * * * DtoCallFunction() * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (0) * * * * * * * * Function type: extern (C) int(void*, in ulong, int delegate(void*, void*)) * * * * * * * * DtoArgument * * * * * * * * * DotVarExp::toElem: this.via.map @ const(Value[Value]) * * * * * * * * * * DotVarExp::toElem: this.via @ const(Via) * * * * * * * * * * * ThisExp::toElem: this @ const(Value) * * * * * * * * * * * * normal this exp * * * * * * * * * * * Indexing aggregate field msgpack.Value.via: * * * * * * * * * * * * Value: %10 = getelementptr %msgpack.Value, %msgpack.Value* %.this_arg, i32 0, i32 2 * * * * * * * * * * Indexing aggregate field msgpack.Value.Via.map: * * * * * * * * * * * Building type: Value[Value] * * * * * * * * * * * Value: %12 = bitcast i8* %11 to i8** * * * * * * * * DtoArgument * * * * * * * * * IntegerExp::toElem: 32LU @ ulong * * * * * * * * * * IntegerExp::toConstElem: 32LU @ ulong * * * * * * * * * * * value = i64 32 * * * * * * * * DtoArgument * * * * * * * * * FuncExp::toElem: __foreachbody2 @ int delegate(void*, void*) * * * * * * * * * * nested * * * * * * * * * * kind = delegate * * * * * * * * * * DtoDefineFunction(msgpack.Value.opEquals!(const(Value)[Value]).opEquals.__foreachbody2): msgpack-d/src/msgpack.d(3558) * * * * * * * * * * * DtoFunctionType(@trusted int(ref Value __applyArg0, ref const(Value) __applyArg1)) * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * Final function type: i32 (i8*, %msgpack.Value*, %msgpack.Value*) * * * * * * * * * * * DtoResolveFunction(msgpack.Value.opEquals!(const(Value)[Value]).opEquals.__foreachbody2): msgpack-d/src/msgpack.d(3558) * * * * * * * * * * * * DtoDeclareFunction(msgpack.Value.opEquals!(const(Value)[Value]).opEquals.__foreachbody2): msgpack-d/src/msgpack.d(3558) * * * * * * * * * * * * * DtoFunctionType(@trusted int(ref Value __applyArg0, ref const(Value) __applyArg1)) * * * * * * * * * * * * * func = declare i32 @_D7msgpack5Value47__T8opEqualsHTHS7msgpack5ValuexS7msgpack5ValueZ8opEqualsMxFNexHS7msgpack5ValueS7msgpack5ValueZ14__foreachbody2MFNeKS7msgpack5ValueKxS7msgpack5ValueZi(i8*, %msgpack.Value*, %msgpack.Value*) * * * * * * * * * * * Doing function body for: __foreachbody2 * * * * * * * * * * * DtoCreateNestedContext for __foreachbody2 * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.Value.opEquals!(const(Value)[Value]).opEquals.__foreachbody2 * * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.Value.opEquals!(const(Value)[Value]).opEquals * * * * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(3558) * * * * * * * * * * * * * * ExpStatement::toIR(): * * * * * * * * * * * * * * * DeclarationExp::toElem: const const(Value) value = __applyArg1; | T=void * * * * * * * * * * * * * * * * DtoDeclarationExp: value * * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = const(Value)) * * * * * * * * * * * * * * * * * * llvm value for decl: %value = alloca %msgpack.Value, align 16 * * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * * AssignExp::toElem: value = __applyArg1 | (const(Value))(const(Value) = const(Value)) * * * * * * * * * * * * * * * * * * * VarExp::toElem: value @ const(Value) * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('value' of type 'const(Value)') * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * VarExp::toElem: __applyArg1 @ const(Value) * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__applyArg1' of type 'const(Value)') * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * type: const(Value) * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * ExpStatement::toIR(): * * * * * * * * * * * * * * * DeclarationExp::toElem: Value key = __applyArg0; | T=void * * * * * * * * * * * * * * * * DtoDeclarationExp: key * * * * * * * * * * * * * * * * * VarDeclaration * * * * * * * * * * * * * * * * * DtoVarDeclaration(vdtype = Value) * * * * * * * * * * * * * * * * * * llvm value for decl: %key = alloca %msgpack.Value, align 16 * * * * * * * * * * * * * * * * * * expression initializer * * * * * * * * * * * * * * * * * * AssignExp::toElem: key = __applyArg0 | (Value)(Value = Value) * * * * * * * * * * * * * * * * * * * VarExp::toElem: key @ Value * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('key' of type 'Value') * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * VarExp::toElem: __applyArg0 @ Value * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__applyArg0' of type 'Value') * * * * * * * * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * * * * * * * * type: Value * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * IfStatement::toIR(): msgpack-d/src/msgpack.d(3559) * * * * * * * * * * * * * * * InExp::toElem: key in other @ const(Value)* * * * * * * * * * * * * * * * * VarExp::toElem: key @ Value * * * * * * * * * * * * * * * * * DtoSymbolAddress ('key' of type 'Value') * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * VarExp::toElem: other @ const(Value[Value]) * * * * * * * * * * * * * * * * * DtoSymbolAddress ('other' of type 'const(Value[Value])') * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * DtoNestedVariable for other @ msgpack-d/src/msgpack.d(3559) * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.Value.opEquals!(const(Value)[Value]).opEquals * * * * * * * * * * * * * * * * * * * Context: %6 = bitcast i8* %5 to %nest.opEquals* * * * * * * * * * * * * * * * * * * * of type: %nest.opEquals = type { i8*, i8 } * * * * * * * * * * * * * * * * * * * Variable: other * * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * * Function: __foreachbody2 * * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * * Addr: %other = getelementptr %nest.opEquals, %nest.opEquals* %6, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * of type: i8** * * * * * * * * * * * * * * * * _aaIn = ; Function Attrs: readonly declare i8* @_aaInX(i8* nocapture, %object.TypeInfo*, i8* nocapture) #1 * * * * * * * * * * * * * * * * aaval: %7 = load i8*, i8** %other * * * * * * * * * * * * * * * * totype: i8* * * * * * * * * * * * * * * * * DtoTypeInfoOf(type = 'Value', base='0') * * * * * * * * * * * * * * * * * Type::getTypeInfo(): Value * * * * * * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(Value)) * * * * * * * * * * * * * * * if conditional: %9 = bitcast i8* %aa.in to %msgpack.Value* * * * * * * * * * * * * * * * Casting from 'const(Value)*' to 'bool' * * * * * * * * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(3559) * * * * * * * * * * * * * * * * IfStatement::toIR(): msgpack-d/src/msgpack.d(3560) * * * * * * * * * * * * * * * * * NotExp::toElem: !other[key].opEquals(value) @ bool * * * * * * * * * * * * * * * * * * CallExp::toElem: other[key].opEquals(value) @ bool * * * * * * * * * * * * * * * * * * * DotVarExp::toElem: other[key].opEquals @ const @trusted bool(ref const(Value) other) * * * * * * * * * * * * * * * * * * * * IndexExp::toElem: other[key] @ const(Value) * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: other @ const(Value[Value]) * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('other' of type 'const(Value[Value])') * * * * * * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for other @ msgpack-d/src/msgpack.d(3560) * * * * * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.Value.opEquals!(const(Value)[Value]).opEquals * * * * * * * * * * * * * * * * * * * * * * * * Context: %12 = bitcast i8* %11 to %nest.opEquals* * * * * * * * * * * * * * * * * * * * * * * * * of type: %nest.opEquals = type { i8*, i8 } * * * * * * * * * * * * * * * * * * * * * * * * Variable: other * * * * * * * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * * * * * * * Function: __foreachbody2 * * * * * * * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * * * * * * * Addr: %other1 = getelementptr %nest.opEquals, %nest.opEquals* %12, i32 0, i32 0 * * * * * * * * * * * * * * * * * * * * * * * * of type: i8** * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: key @ Value * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('key' of type 'Value') * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * * * * * DtoTypeInfoOf(type = 'Value', base='0') * * * * * * * * * * * * * * * * * * * * * * Type::getTypeInfo(): Value * * * * * * * * * * * * * * * * * * * * * * TypeInfoDeclaration::codegen(typeid(Value)) * * * * * * * * * * * * * * * * * * * DtoCallFunction() * * * * * * * * * * * * * * * * * * * * doing normal arguments * * * * * * * * * * * * * * * * * * * * Arguments so far: (1) * * * * * * * * * * * * * * * * * * * * * %15 = bitcast i8* %aa.index to %msgpack.Value* * * * * * * * * * * * * * * * * * * * * Function type: const @trusted bool(ref const(Value) other) * * * * * * * * * * * * * * * * * * * * DtoArgument * * * * * * * * * * * * * * * * * * * * * VarExp::toElem: value @ const(Value) * * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('value' of type 'const(Value)') * * * * * * * * * * * * * * * * * * * * * * * a normal variable * * * * * * * * * * * * * * * * * ReturnStatement::toIR(): msgpack-d/src/msgpack.d(3561) * * * * * * * * * * * * * * * * * * CommaExp::toElem: __result = false , 2 @ int * * * * * * * * * * * * * * * * * * * AssignExp::toElem: __result = false | (const(bool))(const(bool) = bool) * * * * * * * * * * * * * * * * * * * * VarExp::toElem: __result @ const(bool) * * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__result' of type 'const(bool)') * * * * * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for __result @ * * * * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.Value.opEquals!(const(Value)[Value]).opEquals * * * * * * * * * * * * * * * * * * * * * * * Context: %19 = bitcast i8* %18 to %nest.opEquals* * * * * * * * * * * * * * * * * * * * * * * * of type: %nest.opEquals = type { i8*, i8 } * * * * * * * * * * * * * * * * * * * * * * * Variable: __result * * * * * * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * * * * * * Function: __foreachbody2 * * * * * * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * * * * * * Addr: %__result = getelementptr %nest.opEquals, %nest.opEquals* %19, i32 0, i32 1 * * * * * * * * * * * * * * * * * * * * * * * of type: i8* * * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: false @ bool * * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: false @ bool * * * * * * * * * * * * * * * * * * * * * * value = i1 false * * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 2 @ int * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 2 @ int * * * * * * * * * * * * * * * * * * * * * value = i32 2 * * * * * * * * * * * * * * * * * * return value is '0x12115050' * * * * * * * * * * * * * * * ScopeStatement::toIR(): msgpack-d/src/msgpack.d(3562) * * * * * * * * * * * * * * * * ReturnStatement::toIR(): msgpack-d/src/msgpack.d(3563) * * * * * * * * * * * * * * * * * CommaExp::toElem: __result = false , 3 @ int * * * * * * * * * * * * * * * * * * AssignExp::toElem: __result = false | (const(bool))(const(bool) = bool) * * * * * * * * * * * * * * * * * * * VarExp::toElem: __result @ const(bool) * * * * * * * * * * * * * * * * * * * * DtoSymbolAddress ('__result' of type 'const(bool)') * * * * * * * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * * * * * * * DtoNestedVariable for __result @ * * * * * * * * * * * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.Value.opEquals!(const(Value)[Value]).opEquals * * * * * * * * * * * * * * * * * * * * * * Context: %19 = bitcast i8* %18 to %nest.opEquals* * * * * * * * * * * * * * * * * * * * * * * of type: %nest.opEquals = type { i8*, i8 } * * * * * * * * * * * * * * * * * * * * * * Variable: __result * * * * * * * * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * * * * * * * * Function: __foreachbody2 * * * * * * * * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * * * * * * * Addr: %__result4 = getelementptr %nest.opEquals, %nest.opEquals* %19, i32 0, i32 1 * * * * * * * * * * * * * * * * * * * * * * of type: i8* * * * * * * * * * * * * * * * * * * * IntegerExp::toElem: false @ bool * * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: false @ bool * * * * * * * * * * * * * * * * * * * * * value = i1 false * * * * * * * * * * * * * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * * * * * * * * * * * * * DtoAssign() * * * * * * * * * * * * * * * * * * IntegerExp::toElem: 3 @ int * * * * * * * * * * * * * * * * * * * IntegerExp::toConstElem: 3 @ int * * * * * * * * * * * * * * * * * * * * value = i32 3 * * * * * * * * * * * * * * * * * return value is '0x120e6e40' * * * * * * * * * * * * * ReturnStatement::toIR(): * * * * * * * * * * * * * * IntegerExp::toElem: 0 @ int * * * * * * * * * * * * * * * IntegerExp::toConstElem: 0 @ int * * * * * * * * * * * * * * * * value = i32 0 * * * * * * * * * * * * * * return value is '0x120e1350' * * * * * ReturnStatement::toIR(): msgpack-d/src/msgpack.d(3567) * * * * * * AssignExp::toElem: __result = true | (const(bool))(const(bool) = bool) * * * * * * * VarExp::toElem: __result @ const(bool) * * * * * * * * DtoSymbolAddress ('__result' of type 'const(bool)') * * * * * * * * * nested variable * * * * * * * * * DtoNestedVariable for __result @ * * * * * * * IntegerExp::toElem: true @ bool * * * * * * * * IntegerExp::toConstElem: true @ bool * * * * * * * * * value = i1 true * * * * * * * performing normal assignment (rhs has lvalue elems = 0) * * * * * * * DtoAssign() * * * * * * return value is '0x136226b8' * TypeInfoDeclaration::codegen(typeid(const(Value))) * TypeInfoDeclaration::codegen(typeid(const(ContainerElement))) * TypeInfoDeclaration::codegen(typeid(const(State))) * TypeInfoDeclaration::codegen(typeid(const(Container[]))) * TemplateInstance::codegen: 'msgpack.StreamingUnpacker.execute.startContainer!"Array"' * * DtoDefineFunction(msgpack.StreamingUnpacker.execute.startContainer!"Array".startContainer): msgpack-d/src/msgpack.d(4126) * * * Doing function body for: startContainer * * * Building type: ContainerElement * * * DtoCreateNestedContext for startContainer * * * * DtoCreateNestedContextType for msgpack.StreamingUnpacker.execute.startContainer!"Array".startContainer * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(4127) * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d-mixin-4128(4128) * * * * * * CallExp::toElem: callbackArray((*stack)[top].value, length) @ void * * * * * * * VarExp::toElem: callbackArray @ @trusted void(ref Value value, ulong length) * * * * * * * * DtoSymbolAddress ('callbackArray' of type '@trusted void(ref Value value, ulong length)') * * * * * * * * * FuncDeclaration * * * * * * * DtoCallFunction() * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (0) * * * * * * * * Function type: @trusted void(ref Value value, ulong length) * * * * * * * * DtoArgument * * * * * * * * * DotVarExp::toElem: (*stack)[top].value @ Value * * * * * * * * * * IndexExp::toElem: (*stack)[top] @ Container * * * * * * * * * * * PtrExp::toElem: *stack @ Container[] * * * * * * * * * * * * VarExp::toElem: stack @ Container[]* * * * * * * * * * * * * * DtoSymbolAddress ('stack' of type 'Container[]*') * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * DtoNestedVariable for stack @ msgpack-d/src/msgpack.d-mixin-4128(4128) * * * * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.StreamingUnpacker.execute * * * * * * * * * * * * * * * Context: %2 = bitcast i8* %1 to %nest.execute* * * * * * * * * * * * * * * * of type: %nest.execute = type { { i64, %msgpack.StreamingUnpacker.Context.Container* }*, i64 } * * * * * * * * * * * * * * * Variable: stack * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * Function: startContainer * * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * Addr: %stack = getelementptr %nest.execute, %nest.execute* %2, i32 0, i32 0 * * * * * * * * * * * * * * * of type: { i64, %msgpack.StreamingUnpacker.Context.Container* }** * * * * * * * * * * * VarExp::toElem: top @ ulong * * * * * * * * * * * * DtoSymbolAddress ('top' of type 'ulong') * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * DtoNestedVariable for top @ msgpack-d/src/msgpack.d-mixin-4128(4128) * * * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.StreamingUnpacker.execute * * * * * * * * * * * * * * Context: %5 = bitcast i8* %4 to %nest.execute* * * * * * * * * * * * * * * of type: %nest.execute = type { { i64, %msgpack.StreamingUnpacker.Context.Container* }*, i64 } * * * * * * * * * * * * * * Variable: top * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * Function: startContainer * * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * Addr: %top = getelementptr %nest.execute, %nest.execute* %5, i32 0, i32 1 * * * * * * * * * * * * * * of type: i64* * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.Context.Container.value: * * * * * * * * * * * Value: %11 = getelementptr %msgpack.StreamingUnpacker.Context.Container, %msgpack.StreamingUnpacker.Context.Container* %10, i32 0, i32 2 * * * * * * * * DtoArgument * * * * * * * * * VarExp::toElem: length @ ulong * * * * * * * * * * DtoSymbolAddress ('length' of type 'ulong') * * * * * * * * * * * function param * * * * * * * * * * * type: ulong * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(4130) * * * * * * AssignExp::toElem: (*stack)[top].type = type | (ContainerElement)(ContainerElement = ContainerElement) * * * * * * * DotVarExp::toElem: (*stack)[top].type @ ContainerElement * * * * * * * * IndexExp::toElem: (*stack)[top] @ Container * * * * * * * * * PtrExp::toElem: *stack @ Container[] * * * * * * * * * * VarExp::toElem: stack @ Container[]* * * * * * * * * * * * DtoSymbolAddress ('stack' of type 'Container[]*') * * * * * * * * * * * * nested variable * * * * * * * * * * * * DtoNestedVariable for stack @ msgpack-d/src/msgpack.d(4130) * * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.StreamingUnpacker.execute * * * * * * * * * * * * * Context: %14 = bitcast i8* %13 to %nest.execute* * * * * * * * * * * * * * of type: %nest.execute = type { { i64, %msgpack.StreamingUnpacker.Context.Container* }*, i64 } * * * * * * * * * * * * * Variable: stack * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * Function: startContainer * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * Addr: %stack1 = getelementptr %nest.execute, %nest.execute* %14, i32 0, i32 0 * * * * * * * * * * * * * of type: { i64, %msgpack.StreamingUnpacker.Context.Container* }** * * * * * * * * * VarExp::toElem: top @ ulong * * * * * * * * * * DtoSymbolAddress ('top' of type 'ulong') * * * * * * * * * * * nested variable * * * * * * * * * * * DtoNestedVariable for top @ msgpack-d/src/msgpack.d(4130) * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.StreamingUnpacker.execute * * * * * * * * * * * * Context: %17 = bitcast i8* %16 to %nest.execute* * * * * * * * * * * * * of type: %nest.execute = type { { i64, %msgpack.StreamingUnpacker.Context.Container* }*, i64 } * * * * * * * * * * * * Variable: top * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * Function: startContainer * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * Same depth * * * * * * * * * * * * Addr: %top2 = getelementptr %nest.execute, %nest.execute* %17, i32 0, i32 1 * * * * * * * * * * * * of type: i64* * * * * * * * * * DtoArrayLen * * * * * * * * * DtoArrayPtr * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.Context.Container.type: * * * * * * * * * Building type: ContainerElement * * * * * * * * * Value: %23 = getelementptr %msgpack.StreamingUnpacker.Context.Container, %msgpack.StreamingUnpacker.Context.Container* %22, i32 0, i32 0 * * * * * * * VarExp::toElem: type @ ContainerElement * * * * * * * * DtoSymbolAddress ('type' of type 'ContainerElement') * * * * * * * * * function param * * * * * * * * * type: ContainerElement * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * DtoAssign() * * * * * * * * lhs: %23 = getelementptr %msgpack.StreamingUnpacker.Context.Container, %msgpack.StreamingUnpacker.Context.Container* %22, i32 0, i32 0 * * * * * * * * rhs: %24 = load i32, i32* %type * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(4131) * * * * * * AssignExp::toElem: (*stack)[top].count = length | (ulong)(ulong = ulong) * * * * * * * DotVarExp::toElem: (*stack)[top].count @ ulong * * * * * * * * IndexExp::toElem: (*stack)[top] @ Container * * * * * * * * * PtrExp::toElem: *stack @ Container[] * * * * * * * * * * VarExp::toElem: stack @ Container[]* * * * * * * * * * * * DtoSymbolAddress ('stack' of type 'Container[]*') * * * * * * * * * * * * nested variable * * * * * * * * * * * * DtoNestedVariable for stack @ msgpack-d/src/msgpack.d(4131) * * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.StreamingUnpacker.execute * * * * * * * * * * * * * Context: %26 = bitcast i8* %25 to %nest.execute* * * * * * * * * * * * * * of type: %nest.execute = type { { i64, %msgpack.StreamingUnpacker.Context.Container* }*, i64 } * * * * * * * * * * * * * Variable: stack * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * Function: startContainer * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * Addr: %stack8 = getelementptr %nest.execute, %nest.execute* %26, i32 0, i32 0 * * * * * * * * * * * * * of type: { i64, %msgpack.StreamingUnpacker.Context.Container* }** * * * * * * * * * VarExp::toElem: top @ ulong * * * * * * * * * * DtoSymbolAddress ('top' of type 'ulong') * * * * * * * * * * * nested variable * * * * * * * * * * * DtoNestedVariable for top @ msgpack-d/src/msgpack.d(4131) * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.StreamingUnpacker.execute * * * * * * * * * * * * Context: %29 = bitcast i8* %28 to %nest.execute* * * * * * * * * * * * * of type: %nest.execute = type { { i64, %msgpack.StreamingUnpacker.Context.Container* }*, i64 } * * * * * * * * * * * * Variable: top * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * Function: startContainer * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * Same depth * * * * * * * * * * * * Addr: %top9 = getelementptr %nest.execute, %nest.execute* %29, i32 0, i32 1 * * * * * * * * * * * * of type: i64* * * * * * * * * * DtoArrayLen * * * * * * * * * DtoArrayPtr * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.Context.Container.count: * * * * * * * * * Value: %35 = getelementptr %msgpack.StreamingUnpacker.Context.Container, %msgpack.StreamingUnpacker.Context.Container* %34, i32 0, i32 4 * * * * * * * VarExp::toElem: length @ ulong * * * * * * * * DtoSymbolAddress ('length' of type 'ulong') * * * * * * * * * function param * * * * * * * * * type: ulong * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * DtoAssign() * * * * * * * * lhs: %35 = getelementptr %msgpack.StreamingUnpacker.Context.Container, %msgpack.StreamingUnpacker.Context.Container* %34, i32 0, i32 4 * * * * * * * * rhs: %36 = load i64, i64* %length * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(4132) * * * * * * AssignExp::toElem: (*stack).length = (top += 1LU) + 1LU | (ulong)(ulong = ulong) * * * * * * * performing array.length assignment * * * * * * * PtrExp::toElem: *stack @ Container[] * * * * * * * * VarExp::toElem: stack @ Container[]* * * * * * * * * * DtoSymbolAddress ('stack' of type 'Container[]*') * * * * * * * * * * nested variable * * * * * * * * * * DtoNestedVariable for stack @ msgpack-d/src/msgpack.d(4132) * * * * * * * * * * * DtoCreateNestedContextType for msgpack.StreamingUnpacker.execute * * * * * * * * * * * Context: %38 = bitcast i8* %37 to %nest.execute* * * * * * * * * * * * of type: %nest.execute = type { { i64, %msgpack.StreamingUnpacker.Context.Container* }*, i64 } * * * * * * * * * * * Variable: stack * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * Function: startContainer * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * Same depth * * * * * * * * * * * Addr: %stack15 = getelementptr %nest.execute, %nest.execute* %38, i32 0, i32 0 * * * * * * * * * * * of type: { i64, %msgpack.StreamingUnpacker.Context.Container* }** * * * * * * * AddExp::toElem: (top += 1LU) + 1LU @ ulong * * * * * * * * AddAssignExp::toElem: top += 1LU @ ulong * * * * * * * * * Caching l-value of top += 1LU => top * * * * * * * * * * VarExp::toElem: top @ ulong * * * * * * * * * * * DtoSymbolAddress ('top' of type 'ulong') * * * * * * * * * * * * nested variable * * * * * * * * * * * * DtoNestedVariable for top @ msgpack-d/src/msgpack.d(4132) * * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.StreamingUnpacker.execute * * * * * * * * * * * * * Context: %41 = bitcast i8* %40 to %nest.execute* * * * * * * * * * * * * * of type: %nest.execute = type { { i64, %msgpack.StreamingUnpacker.Context.Container* }*, i64 } * * * * * * * * * * * * * Variable: top * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * Function: startContainer * * * * * * * * * * * * * Function depth: 0 * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * Addr: %top16 = getelementptr %nest.execute, %nest.execute* %41, i32 0, i32 1 * * * * * * * * * * * * * of type: i64* * * * * * * * * * AddExp::toElem: top + 1LU @ ulong * * * * * * * * * * VarExp::toElem: top @ ulong * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * value = i64 1 * * * * * * * * * DtoAssign() * * * * * * * * * * lhs: %top16 = getelementptr %nest.execute, %nest.execute* %41, i32 0, i32 1 * * * * * * * * * * rhs: %43 = add i64 %42, 1 * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * value = i64 1 * * * * * * * DtoResizeDynArray : Container[] * * * * * * * * DtoTypeInfoOf(type = 'Container[]', base='1') * * * * * * * * * Type::getTypeInfo(): Container[] * * * * * * * * * TypeInfoDeclaration::codegen(typeid(Container[])) * * * * * * * DtoAssign() * * * * * * * * DtoArrayAssign * * * * * * * * * DtoArrayPtr * * * * * * * * * DtoArrayLen * * * * * * * * * SetArray * TemplateInstance::codegen: 'msgpack.StreamingUnpacker.execute.startContainer!"Map"' * * DtoDefineFunction(msgpack.StreamingUnpacker.execute.startContainer!"Map".startContainer): msgpack-d/src/msgpack.d(4126) * * * Doing function body for: startContainer * * * Building type: ContainerElement * * * DtoCreateNestedContext for startContainer * * * * DtoCreateNestedContextType for msgpack.StreamingUnpacker.execute.startContainer!"Map".startContainer * * * * nested param: length * * * * * Copying to nested frame * * * CompoundStatement::toIR(): * * * * CompoundStatement::toIR(): msgpack-d/src/msgpack.d(4127) * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d-mixin-4128(4128) * * * * * * CallExp::toElem: callbackMap((*stack)[top].value, delegate ulong() => length) @ void * * * * * * * VarExp::toElem: callbackMap @ @trusted void(ref Value value, lazy ulong length) * * * * * * * * DtoSymbolAddress ('callbackMap' of type '@trusted void(ref Value value, lazy ulong length)') * * * * * * * * * FuncDeclaration * * * * * * * DtoCallFunction() * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (0) * * * * * * * * Function type: @trusted void(ref Value value, lazy ulong length) * * * * * * * * DtoArgument * * * * * * * * * DotVarExp::toElem: (*stack)[top].value @ Value * * * * * * * * * * IndexExp::toElem: (*stack)[top] @ Container * * * * * * * * * * * PtrExp::toElem: *stack @ Container[] * * * * * * * * * * * * VarExp::toElem: stack @ Container[]* * * * * * * * * * * * * * DtoSymbolAddress ('stack' of type 'Container[]*') * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * DtoNestedVariable for stack @ msgpack-d/src/msgpack.d-mixin-4128(4128) * * * * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.StreamingUnpacker.execute * * * * * * * * * * * * * * * Context: %.frame = alloca %nest.startContainer, align 8 * * * * * * * * * * * * * * * of type: %nest.startContainer = type { %nest.execute*, i64 } * * * * * * * * * * * * * * * Variable: stack * * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * * Function: startContainer * * * * * * * * * * * * * * * Function depth: 1 * * * * * * * * * * * * * * * Lower depth * * * * * * * * * * * * * * * Frame index: %6 = getelementptr %nest.startContainer, %nest.startContainer* %.frame, i32 0, i32 0 * * * * * * * * * * * * * * * Frame: %.frame.execute = load %nest.execute*, %nest.execute** %6, align 8 * * * * * * * * * * * * * * * Addr: %stack = getelementptr %nest.execute, %nest.execute* %.frame.execute, i32 0, i32 0 * * * * * * * * * * * * * * * of type: { i64, %msgpack.StreamingUnpacker.Context.Container* }** * * * * * * * * * * * VarExp::toElem: top @ ulong * * * * * * * * * * * * DtoSymbolAddress ('top' of type 'ulong') * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * DtoNestedVariable for top @ msgpack-d/src/msgpack.d-mixin-4128(4128) * * * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.StreamingUnpacker.execute * * * * * * * * * * * * * * Context: %.frame = alloca %nest.startContainer, align 8 * * * * * * * * * * * * * * of type: %nest.startContainer = type { %nest.execute*, i64 } * * * * * * * * * * * * * * Variable: top * * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * * Function: startContainer * * * * * * * * * * * * * * Function depth: 1 * * * * * * * * * * * * * * Lower depth * * * * * * * * * * * * * * Frame index: %8 = getelementptr %nest.startContainer, %nest.startContainer* %.frame, i32 0, i32 0 * * * * * * * * * * * * * * Frame: %.frame.execute2 = load %nest.execute*, %nest.execute** %8, align 8 * * * * * * * * * * * * * * Addr: %top = getelementptr %nest.execute, %nest.execute* %.frame.execute2, i32 0, i32 1 * * * * * * * * * * * * * * of type: i64* * * * * * * * * * * * DtoArrayLen * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.Context.Container.value: * * * * * * * * * * * Value: %14 = getelementptr %msgpack.StreamingUnpacker.Context.Container, %msgpack.StreamingUnpacker.Context.Container* %13, i32 0, i32 2 * * * * * * * * DtoArgument * * * * * * * * * FuncExp::toElem: __dgliteral3 @ ulong delegate() pure nothrow @nogc @safe * * * * * * * * * * nested * * * * * * * * * * kind = delegate * * * * * * * * * * DtoDefineFunction(msgpack.StreamingUnpacker.execute.startContainer!"Map".startContainer.__dgliteral3): msgpack-d/src/msgpack.d-mixin-4128(4128) * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe ulong()) * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * Final function type: i64 (i8*) * * * * * * * * * * * DtoResolveFunction(msgpack.StreamingUnpacker.execute.startContainer!"Map".startContainer.__dgliteral3): msgpack-d/src/msgpack.d-mixin-4128(4128) * * * * * * * * * * * * DtoDeclareFunction(msgpack.StreamingUnpacker.execute.startContainer!"Map".startContainer.__dgliteral3): msgpack-d/src/msgpack.d-mixin-4128(4128) * * * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe ulong()) * * * * * * * * * * * * * func = declare i64 @_D7msgpack17StreamingUnpacker7executeMFNeZ33__T14startContainerVAyaa3_4d6170Z14startContainerMFE7msgpack17StreamingUnpacker16ContainerElementmZ12__dgliteral3MFNaNbNiNfZm(i8*) * * * * * * * * * * * Doing function body for: __dgliteral3 * * * * * * * * * * * DtoCreateNestedContext for __dgliteral3 * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.StreamingUnpacker.execute.startContainer!"Map".startContainer.__dgliteral3 * * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.StreamingUnpacker.execute.startContainer!"Map".startContainer * * * * * * * * * * * CompoundStatement::toIR(): * * * * * * * * * * * * ReturnStatement::toIR(): msgpack-d/src/msgpack.d-mixin-4128(4128) * * * * * * * * * * * * * VarExp::toElem: length @ ulong * * * * * * * * * * * * * * DtoSymbolAddress ('length' of type 'ulong') * * * * * * * * * * * * * * * nested variable * * * * * * * * * * * * * * * DtoNestedVariable for length @ msgpack-d/src/msgpack.d-mixin-4128(4128) * * * * * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.StreamingUnpacker.execute.startContainer!"Map".startContainer * * * * * * * * * * * * * * * * Context: %2 = bitcast i8* %1 to %nest.startContainer* * * * * * * * * * * * * * * * * of type: %nest.startContainer = type { %nest.execute*, i64 } * * * * * * * * * * * * * * * * Variable: length * * * * * * * * * * * * * * * * Variable depth: 1 * * * * * * * * * * * * * * * * Function: __dgliteral3 * * * * * * * * * * * * * * * * Function depth: 1 * * * * * * * * * * * * * * * * Same depth * * * * * * * * * * * * * * * * Addr: %length = getelementptr %nest.startContainer, %nest.startContainer* %2, i32 0, i32 1 * * * * * * * * * * * * * * * * of type: i64* * * * * * * * * * * * * * return value is '0x1362d4c8' * * * * * * * * * * Building type: ulong delegate() pure nothrow @nogc @safe * * * * * * * * * * * DtoFunctionType(pure nothrow @nogc @safe ulong()) * * * * * * * * * * * * x86-64 ABI: Transforming return type * * * * * * * * * * * * x86-64 ABI: Transforming argument types * * * * * * * * * * * * Final function type: i64 (i8*) * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(4130) * * * * * * AssignExp::toElem: (*stack)[top].type = type | (ContainerElement)(ContainerElement = ContainerElement) * * * * * * * DotVarExp::toElem: (*stack)[top].type @ ContainerElement * * * * * * * * IndexExp::toElem: (*stack)[top] @ Container * * * * * * * * * PtrExp::toElem: *stack @ Container[] * * * * * * * * * * VarExp::toElem: stack @ Container[]* * * * * * * * * * * * DtoSymbolAddress ('stack' of type 'Container[]*') * * * * * * * * * * * * nested variable * * * * * * * * * * * * DtoNestedVariable for stack @ msgpack-d/src/msgpack.d(4130) * * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.StreamingUnpacker.execute * * * * * * * * * * * * * Context: %.frame = alloca %nest.startContainer, align 8 * * * * * * * * * * * * * of type: %nest.startContainer = type { %nest.execute*, i64 } * * * * * * * * * * * * * Variable: stack * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * Function: startContainer * * * * * * * * * * * * * Function depth: 1 * * * * * * * * * * * * * Lower depth * * * * * * * * * * * * * Frame index: %17 = getelementptr %nest.startContainer, %nest.startContainer* %.frame, i32 0, i32 0 * * * * * * * * * * * * * Frame: %.frame.execute3 = load %nest.execute*, %nest.execute** %17, align 8 * * * * * * * * * * * * * Addr: %stack4 = getelementptr %nest.execute, %nest.execute* %.frame.execute3, i32 0, i32 0 * * * * * * * * * * * * * of type: { i64, %msgpack.StreamingUnpacker.Context.Container* }** * * * * * * * * * VarExp::toElem: top @ ulong * * * * * * * * * * DtoSymbolAddress ('top' of type 'ulong') * * * * * * * * * * * nested variable * * * * * * * * * * * DtoNestedVariable for top @ msgpack-d/src/msgpack.d(4130) * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.StreamingUnpacker.execute * * * * * * * * * * * * Context: %.frame = alloca %nest.startContainer, align 8 * * * * * * * * * * * * of type: %nest.startContainer = type { %nest.execute*, i64 } * * * * * * * * * * * * Variable: top * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * Function: startContainer * * * * * * * * * * * * Function depth: 1 * * * * * * * * * * * * Lower depth * * * * * * * * * * * * Frame index: %19 = getelementptr %nest.startContainer, %nest.startContainer* %.frame, i32 0, i32 0 * * * * * * * * * * * * Frame: %.frame.execute5 = load %nest.execute*, %nest.execute** %19, align 8 * * * * * * * * * * * * Addr: %top6 = getelementptr %nest.execute, %nest.execute* %.frame.execute5, i32 0, i32 1 * * * * * * * * * * * * of type: i64* * * * * * * * * * DtoArrayLen * * * * * * * * * DtoArrayPtr * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.Context.Container.type: * * * * * * * * * Building type: ContainerElement * * * * * * * * * Value: %25 = getelementptr %msgpack.StreamingUnpacker.Context.Container, %msgpack.StreamingUnpacker.Context.Container* %24, i32 0, i32 0 * * * * * * * VarExp::toElem: type @ ContainerElement * * * * * * * * DtoSymbolAddress ('type' of type 'ContainerElement') * * * * * * * * * function param * * * * * * * * * type: ContainerElement * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * DtoAssign() * * * * * * * * lhs: %25 = getelementptr %msgpack.StreamingUnpacker.Context.Container, %msgpack.StreamingUnpacker.Context.Container* %24, i32 0, i32 0 * * * * * * * * rhs: %26 = load i32, i32* %type * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(4131) * * * * * * AssignExp::toElem: (*stack)[top].count = length | (ulong)(ulong = ulong) * * * * * * * DotVarExp::toElem: (*stack)[top].count @ ulong * * * * * * * * IndexExp::toElem: (*stack)[top] @ Container * * * * * * * * * PtrExp::toElem: *stack @ Container[] * * * * * * * * * * VarExp::toElem: stack @ Container[]* * * * * * * * * * * * DtoSymbolAddress ('stack' of type 'Container[]*') * * * * * * * * * * * * nested variable * * * * * * * * * * * * DtoNestedVariable for stack @ msgpack-d/src/msgpack.d(4131) * * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.StreamingUnpacker.execute * * * * * * * * * * * * * Context: %.frame = alloca %nest.startContainer, align 8 * * * * * * * * * * * * * of type: %nest.startContainer = type { %nest.execute*, i64 } * * * * * * * * * * * * * Variable: stack * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * Function: startContainer * * * * * * * * * * * * * Function depth: 1 * * * * * * * * * * * * * Lower depth * * * * * * * * * * * * * Frame index: %27 = getelementptr %nest.startContainer, %nest.startContainer* %.frame, i32 0, i32 0 * * * * * * * * * * * * * Frame: %.frame.execute12 = load %nest.execute*, %nest.execute** %27, align 8 * * * * * * * * * * * * * Addr: %stack13 = getelementptr %nest.execute, %nest.execute* %.frame.execute12, i32 0, i32 0 * * * * * * * * * * * * * of type: { i64, %msgpack.StreamingUnpacker.Context.Container* }** * * * * * * * * * VarExp::toElem: top @ ulong * * * * * * * * * * DtoSymbolAddress ('top' of type 'ulong') * * * * * * * * * * * nested variable * * * * * * * * * * * DtoNestedVariable for top @ msgpack-d/src/msgpack.d(4131) * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.StreamingUnpacker.execute * * * * * * * * * * * * Context: %.frame = alloca %nest.startContainer, align 8 * * * * * * * * * * * * of type: %nest.startContainer = type { %nest.execute*, i64 } * * * * * * * * * * * * Variable: top * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * Function: startContainer * * * * * * * * * * * * Function depth: 1 * * * * * * * * * * * * Lower depth * * * * * * * * * * * * Frame index: %29 = getelementptr %nest.startContainer, %nest.startContainer* %.frame, i32 0, i32 0 * * * * * * * * * * * * Frame: %.frame.execute14 = load %nest.execute*, %nest.execute** %29, align 8 * * * * * * * * * * * * Addr: %top15 = getelementptr %nest.execute, %nest.execute* %.frame.execute14, i32 0, i32 1 * * * * * * * * * * * * of type: i64* * * * * * * * * * DtoArrayLen * * * * * * * * * DtoArrayPtr * * * * * * * * Indexing aggregate field msgpack.StreamingUnpacker.Context.Container.count: * * * * * * * * * Value: %35 = getelementptr %msgpack.StreamingUnpacker.Context.Container, %msgpack.StreamingUnpacker.Context.Container* %34, i32 0, i32 4 * * * * * * * VarExp::toElem: length @ ulong * * * * * * * * DtoSymbolAddress ('length' of type 'ulong') * * * * * * * * * nested variable * * * * * * * * * DtoNestedVariable for length @ msgpack-d/src/msgpack.d(4131) * * * * * * * performing normal assignment (rhs has lvalue elems = 1) * * * * * * * DtoAssign() * * * * * * * * lhs: %35 = getelementptr %msgpack.StreamingUnpacker.Context.Container, %msgpack.StreamingUnpacker.Context.Container* %34, i32 0, i32 4 * * * * * * * * rhs: %36 = load i64, i64* %length * * * * * ExpStatement::toIR(): msgpack-d/src/msgpack.d(4132) * * * * * * AssignExp::toElem: (*stack).length = (top += 1LU) + 1LU | (ulong)(ulong = ulong) * * * * * * * performing array.length assignment * * * * * * * PtrExp::toElem: *stack @ Container[] * * * * * * * * VarExp::toElem: stack @ Container[]* * * * * * * * * * DtoSymbolAddress ('stack' of type 'Container[]*') * * * * * * * * * * nested variable * * * * * * * * * * DtoNestedVariable for stack @ msgpack-d/src/msgpack.d(4132) * * * * * * * * * * * DtoCreateNestedContextType for msgpack.StreamingUnpacker.execute * * * * * * * * * * * Context: %.frame = alloca %nest.startContainer, align 8 * * * * * * * * * * * of type: %nest.startContainer = type { %nest.execute*, i64 } * * * * * * * * * * * Variable: stack * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * Function: startContainer * * * * * * * * * * * Function depth: 1 * * * * * * * * * * * Lower depth * * * * * * * * * * * Frame index: %37 = getelementptr %nest.startContainer, %nest.startContainer* %.frame, i32 0, i32 0 * * * * * * * * * * * Frame: %.frame.execute21 = load %nest.execute*, %nest.execute** %37, align 8 * * * * * * * * * * * Addr: %stack22 = getelementptr %nest.execute, %nest.execute* %.frame.execute21, i32 0, i32 0 * * * * * * * * * * * of type: { i64, %msgpack.StreamingUnpacker.Context.Container* }** * * * * * * * AddExp::toElem: (top += 1LU) + 1LU @ ulong * * * * * * * * AddAssignExp::toElem: top += 1LU @ ulong * * * * * * * * * Caching l-value of top += 1LU => top * * * * * * * * * * VarExp::toElem: top @ ulong * * * * * * * * * * * DtoSymbolAddress ('top' of type 'ulong') * * * * * * * * * * * * nested variable * * * * * * * * * * * * DtoNestedVariable for top @ msgpack-d/src/msgpack.d(4132) * * * * * * * * * * * * * DtoCreateNestedContextType for msgpack.StreamingUnpacker.execute * * * * * * * * * * * * * Context: %.frame = alloca %nest.startContainer, align 8 * * * * * * * * * * * * * of type: %nest.startContainer = type { %nest.execute*, i64 } * * * * * * * * * * * * * Variable: top * * * * * * * * * * * * * Variable depth: 0 * * * * * * * * * * * * * Function: startContainer * * * * * * * * * * * * * Function depth: 1 * * * * * * * * * * * * * Lower depth * * * * * * * * * * * * * Frame index: %39 = getelementptr %nest.startContainer, %nest.startContainer* %.frame, i32 0, i32 0 * * * * * * * * * * * * * Frame: %.frame.execute23 = load %nest.execute*, %nest.execute** %39, align 8 * * * * * * * * * * * * * Addr: %top24 = getelementptr %nest.execute, %nest.execute* %.frame.execute23, i32 0, i32 1 * * * * * * * * * * * * * of type: i64* * * * * * * * * * AddExp::toElem: top + 1LU @ ulong * * * * * * * * * * VarExp::toElem: top @ ulong * * * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * * * value = i64 1 * * * * * * * * * DtoAssign() * * * * * * * * * * lhs: %top24 = getelementptr %nest.execute, %nest.execute* %.frame.execute23, i32 0, i32 1 * * * * * * * * * * rhs: %41 = add i64 %40, 1 * * * * * * * * IntegerExp::toElem: 1LU @ ulong * * * * * * * * * IntegerExp::toConstElem: 1LU @ ulong * * * * * * * * * * value = i64 1 * * * * * * * DtoResizeDynArray : Container[] * * * * * * * * DtoTypeInfoOf(type = 'Container[]', base='1') * * * * * * * * * Type::getTypeInfo(): Container[] * * * * * * * * * TypeInfoDeclaration::codegen(typeid(Container[])) * * * * * * * DtoAssign() * * * * * * * * DtoArrayAssign * * * * * * * * * DtoArrayPtr * * * * * * * * * DtoArrayLen * * * * * * * * * SetArray * TemplateInstance::codegen: 'msgpack.load16To!long' * * DtoDefineFunction(msgpack.load16To!long.load16To): msgpack-d/src/msgpack.d(5177) * * * Doing function body for: load16To * * * DtoCreateNestedContext for load16To * * * * DtoCreateNestedContextType for msgpack.load16To!long.load16To * * * CompoundStatement::toIR(): * * * * ReturnStatement::toIR(): msgpack-d/src/msgpack.d(5179) * * * * * CastExp::toElem: cast(long)convertEndianTo(*cast(ushort*)cast(ubyte*)buffer) @ long * * * * * * CallExp::toElem: convertEndianTo(*cast(ushort*)cast(ubyte*)buffer) @ ushort * * * * * * * VarExp::toElem: convertEndianTo @ pure nothrow @nogc @trusted ushort(const(ushort) value) * * * * * * * * DtoSymbolAddress ('convertEndianTo' of type 'pure nothrow @nogc @trusted ushort(const(ushort) value)') * * * * * * * * * FuncDeclaration * * * * * * * DtoCallFunction() * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (0) * * * * * * * * Function type: pure nothrow @nogc @trusted ushort(const(ushort) value) * * * * * * * * DtoArgument * * * * * * * * * PtrExp::toElem: *cast(ushort*)cast(ubyte*)buffer @ const(ushort) * * * * * * * * * * CastExp::toElem: cast(ushort*)cast(ubyte*)buffer @ ushort* * * * * * * * * * * * CastExp::toElem: cast(ubyte*)buffer @ ubyte* * * * * * * * * * * * * VarExp::toElem: buffer @ ubyte[] * * * * * * * * * * * * * DtoSymbolAddress ('buffer' of type 'ubyte[]') * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * type: ubyte[] * * * * * * * * * * * * Casting from 'ubyte[]' to 'ubyte*' * * * * * * * * * * * * * DtoCastArray * * * * * * * * * * * * * * from array or sarray * * * * * * * * * * * * * * to pointer * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * Casting from 'ubyte*' to 'ushort*' * * * * * * * * * * * * src: %.ptr = load i8*, i8** %1 * * * * * * * * * * * * to type: i16* * * * * * * Casting from 'ushort' to 'long' * * * * * * * cast to: i64 * * * * * return value is '0x13633658' * TemplateInstance::codegen: 'msgpack.load32To!long' * * DtoDefineFunction(msgpack.load32To!long.load32To): msgpack-d/src/msgpack.d(5184) * * * Doing function body for: load32To * * * DtoCreateNestedContext for load32To * * * * DtoCreateNestedContextType for msgpack.load32To!long.load32To * * * CompoundStatement::toIR(): * * * * ReturnStatement::toIR(): msgpack-d/src/msgpack.d(5186) * * * * * CastExp::toElem: cast(long)convertEndianTo(*cast(uint*)cast(ubyte*)buffer) @ long * * * * * * CallExp::toElem: convertEndianTo(*cast(uint*)cast(ubyte*)buffer) @ uint * * * * * * * VarExp::toElem: convertEndianTo @ pure nothrow @nogc @trusted uint(const(uint) value) * * * * * * * * DtoSymbolAddress ('convertEndianTo' of type 'pure nothrow @nogc @trusted uint(const(uint) value)') * * * * * * * * * FuncDeclaration * * * * * * * DtoCallFunction() * * * * * * * * doing normal arguments * * * * * * * * Arguments so far: (0) * * * * * * * * Function type: pure nothrow @nogc @trusted uint(const(uint) value) * * * * * * * * DtoArgument * * * * * * * * * PtrExp::toElem: *cast(uint*)cast(ubyte*)buffer @ const(uint) * * * * * * * * * * CastExp::toElem: cast(uint*)cast(ubyte*)buffer @ uint* * * * * * * * * * * * CastExp::toElem: cast(ubyte*)buffer @ ubyte* * * * * * * * * * * * * VarExp::toElem: buffer @ ubyte[] * * * * * * * * * * * * * DtoSymbolAddress ('buffer' of type 'ubyte[]') * * * * * * * * * * * * * * function param * * * * * * * * * * * * * * type: ubyte[] * * * * * * * * * * * * Casting from 'ubyte[]' to 'ubyte*' * * * * * * * * * * * * * DtoCastArray * * * * * * * * * * * * * * from array or sarray * * * * * * * * * * * * * * to pointer * * * * * * * * * * * * * * DtoArrayPtr * * * * * * * * * * * Casting from 'ubyte*' to 'uint*' * * * * * * * * * * * * src: %.ptr = load i8*, i8** %1 * * * * * * * * * * * * to type: i32* * * * * * * Casting from 'uint' to 'long' * * * * * * * cast to: i64 * * * * * return value is '0x13634678' * TemplateInstance::codegen: 'msgpack.load64To!long' * * DtoDefineFunction(msgpacmakefile:150: recipe for target 'ldcclient' failed